@towns-labs/sdk 2.0.12 → 2.1.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (436) hide show
  1. package/dist/client.d.ts +11 -31
  2. package/dist/client.d.ts.map +1 -1
  3. package/dist/client.js +68 -327
  4. package/dist/client.js.map +1 -1
  5. package/dist/clientDecryptionExtensions.d.ts.map +1 -1
  6. package/dist/clientDecryptionExtensions.js +10 -28
  7. package/dist/clientDecryptionExtensions.js.map +1 -1
  8. package/dist/createApp.d.ts +1 -1
  9. package/dist/createApp.d.ts.map +1 -1
  10. package/dist/createApp.js +6 -2
  11. package/dist/createApp.js.map +1 -1
  12. package/dist/id.d.ts +1 -17
  13. package/dist/id.d.ts.map +1 -1
  14. package/dist/id.js +1 -53
  15. package/dist/id.js.map +1 -1
  16. package/dist/index.d.ts +0 -20
  17. package/dist/index.d.ts.map +1 -1
  18. package/dist/index.js +0 -20
  19. package/dist/index.js.map +1 -1
  20. package/dist/migrations/snapshotMigration0001.d.ts.map +1 -1
  21. package/dist/migrations/snapshotMigration0001.js +0 -4
  22. package/dist/migrations/snapshotMigration0001.js.map +1 -1
  23. package/dist/migrations/snapshotMigration0002.d.ts.map +1 -1
  24. package/dist/migrations/snapshotMigration0002.js +1 -19
  25. package/dist/migrations/snapshotMigration0002.js.map +1 -1
  26. package/dist/migrations/snapshotMigration0004.d.ts.map +1 -1
  27. package/dist/migrations/snapshotMigration0004.js +1 -27
  28. package/dist/migrations/snapshotMigration0004.js.map +1 -1
  29. package/dist/migrations/snapshotMigration0005.d.ts.map +1 -1
  30. package/dist/migrations/snapshotMigration0005.js +1 -26
  31. package/dist/migrations/snapshotMigration0005.js.map +1 -1
  32. package/dist/notificationsClient.d.ts +1 -5
  33. package/dist/notificationsClient.d.ts.map +1 -1
  34. package/dist/notificationsClient.js +2 -103
  35. package/dist/notificationsClient.js.map +1 -1
  36. package/dist/persistenceStore.d.ts.map +1 -1
  37. package/dist/persistenceStore.js +6 -18
  38. package/dist/persistenceStore.js.map +1 -1
  39. package/dist/streamEvents.d.ts +0 -6
  40. package/dist/streamEvents.d.ts.map +1 -1
  41. package/dist/streamStateView.d.ts +0 -9
  42. package/dist/streamStateView.d.ts.map +1 -1
  43. package/dist/streamStateView.js +3 -64
  44. package/dist/streamStateView.js.map +1 -1
  45. package/dist/streamStateView_MemberMetadata.d.ts +3 -36
  46. package/dist/streamStateView_MemberMetadata.d.ts.map +1 -1
  47. package/dist/streamStateView_MemberMetadata.js +3 -83
  48. package/dist/streamStateView_MemberMetadata.js.map +1 -1
  49. package/dist/streamStateView_Members.d.ts +1 -5
  50. package/dist/streamStateView_Members.d.ts.map +1 -1
  51. package/dist/streamStateView_Members.js +4 -91
  52. package/dist/streamStateView_Members.js.map +1 -1
  53. package/dist/streamUtils.d.ts.map +1 -1
  54. package/dist/streamUtils.js +0 -8
  55. package/dist/streamUtils.js.map +1 -1
  56. package/dist/sync/SyncedStreamsControllerLite.d.ts.map +1 -1
  57. package/dist/sync/SyncedStreamsControllerLite.js +7 -11
  58. package/dist/sync/SyncedStreamsControllerLite.js.map +1 -1
  59. package/dist/sync-agent/db.d.ts +13 -0
  60. package/dist/sync-agent/db.d.ts.map +1 -0
  61. package/dist/sync-agent/db.js +24 -0
  62. package/dist/sync-agent/db.js.map +1 -0
  63. package/dist/sync-agent/gdms/models/gdm.d.ts +3 -3
  64. package/dist/sync-agent/gdms/models/gdm.d.ts.map +1 -1
  65. package/dist/sync-agent/river-connection/riverConnection.d.ts +1 -6
  66. package/dist/sync-agent/river-connection/riverConnection.d.ts.map +1 -1
  67. package/dist/sync-agent/river-connection/riverConnection.js +3 -8
  68. package/dist/sync-agent/river-connection/riverConnection.js.map +1 -1
  69. package/dist/sync-agent/syncAgent.d.ts +0 -6
  70. package/dist/sync-agent/syncAgent.d.ts.map +1 -1
  71. package/dist/sync-agent/syncAgent.js +0 -8
  72. package/dist/sync-agent/syncAgent.js.map +1 -1
  73. package/dist/syncedStreamsExtension.d.ts.map +1 -1
  74. package/dist/syncedStreamsExtension.js +10 -22
  75. package/dist/syncedStreamsExtension.js.map +1 -1
  76. package/dist/syncedStreamsLoop.d.ts.map +1 -1
  77. package/dist/syncedStreamsLoop.js +4 -18
  78. package/dist/syncedStreamsLoop.js.map +1 -1
  79. package/dist/tests/bob_testUtils.d.ts.map +1 -1
  80. package/dist/tests/bob_testUtils.js +35 -69
  81. package/dist/tests/bob_testUtils.js.map +1 -1
  82. package/dist/tests/multi_ne/aliceAndFriends10for10.test.js +1 -1
  83. package/dist/tests/multi_ne/aliceAndFriends10for10.test.js.map +1 -1
  84. package/dist/tests/multi_ne/aliceAndFriendslongAndRandom.test.js +1 -1
  85. package/dist/tests/multi_ne/aliceAndFriendslongAndRandom.test.js.map +1 -1
  86. package/dist/tests/multi_ne/bobFlushes.test.js.map +1 -1
  87. package/dist/tests/multi_ne/channels.test.js +6 -9
  88. package/dist/tests/multi_ne/channels.test.js.map +1 -1
  89. package/dist/tests/multi_ne/client.test.js +24 -98
  90. package/dist/tests/multi_ne/client.test.js.map +1 -1
  91. package/dist/tests/multi_ne/clientCrypto.test.js +3 -3
  92. package/dist/tests/multi_ne/clientCrypto.test.js.map +1 -1
  93. package/dist/tests/multi_ne/clientDecryptionExtensions.test.js +12 -47
  94. package/dist/tests/multi_ne/clientDecryptionExtensions.test.js.map +1 -1
  95. package/dist/tests/multi_ne/ephemeralEvents.test.js +1 -1
  96. package/dist/tests/multi_ne/ephemeralEvents.test.js.map +1 -1
  97. package/dist/tests/multi_ne/id.test.js +6 -20
  98. package/dist/tests/multi_ne/id.test.js.map +1 -1
  99. package/dist/tests/multi_ne/media.test.js +20 -61
  100. package/dist/tests/multi_ne/media.test.js.map +1 -1
  101. package/dist/tests/multi_ne/memberMetadata.test.d.ts +0 -3
  102. package/dist/tests/multi_ne/memberMetadata.test.d.ts.map +1 -1
  103. package/dist/tests/multi_ne/memberMetadata.test.js +14 -582
  104. package/dist/tests/multi_ne/memberMetadata.test.js.map +1 -1
  105. package/dist/tests/multi_ne/outboundGroupSession.test.js +15 -13
  106. package/dist/tests/multi_ne/outboundGroupSession.test.js.map +1 -1
  107. package/dist/tests/multi_ne/restart.test.js +11 -34
  108. package/dist/tests/multi_ne/restart.test.js.map +1 -1
  109. package/dist/tests/multi_ne/sign.test.js +2 -2
  110. package/dist/tests/multi_ne/sign.test.js.map +1 -1
  111. package/dist/tests/multi_ne/streamMembershipHardening.test.js +0 -3
  112. package/dist/tests/multi_ne/streamMembershipHardening.test.js.map +1 -1
  113. package/dist/tests/multi_ne/streamRpcClient.test.js +58 -349
  114. package/dist/tests/multi_ne/streamRpcClient.test.js.map +1 -1
  115. package/dist/tests/multi_ne/streamRpcClientSync.test.js +63 -124
  116. package/dist/tests/multi_ne/streamRpcClientSync.test.js.map +1 -1
  117. package/dist/tests/multi_ne/streamStateView_User.test.js +23 -20
  118. package/dist/tests/multi_ne/streamStateView_User.test.js.map +1 -1
  119. package/dist/tests/{multi/spaceDapp.test.d.ts → multi_ne/sync-agent/gdms.test.d.ts} +1 -1
  120. package/dist/tests/multi_ne/sync-agent/gdms.test.d.ts.map +1 -0
  121. package/dist/tests/multi_ne/sync-agent/gdms.test.js +34 -0
  122. package/dist/tests/multi_ne/sync-agent/gdms.test.js.map +1 -0
  123. package/dist/tests/multi_ne/sync-agent/member.test.d.ts +3 -0
  124. package/dist/tests/multi_ne/sync-agent/member.test.d.ts.map +1 -1
  125. package/dist/tests/multi_ne/sync-agent/member.test.js +19 -8
  126. package/dist/tests/multi_ne/sync-agent/member.test.js.map +1 -1
  127. package/dist/tests/multi_ne/sync-agent/members.test.d.ts +3 -0
  128. package/dist/tests/multi_ne/sync-agent/members.test.d.ts.map +1 -1
  129. package/dist/tests/multi_ne/sync-agent/members.test.js +24 -19
  130. package/dist/tests/multi_ne/sync-agent/members.test.js.map +1 -1
  131. package/dist/tests/multi_ne/sync-agent/streams.test.d.ts +3 -0
  132. package/dist/tests/multi_ne/sync-agent/streams.test.d.ts.map +1 -1
  133. package/dist/tests/multi_ne/sync-agent/streams.test.js +14 -14
  134. package/dist/tests/multi_ne/sync-agent/streams.test.js.map +1 -1
  135. package/dist/tests/multi_ne/sync-agent/syncAgent.test.d.ts +3 -0
  136. package/dist/tests/multi_ne/sync-agent/syncAgent.test.d.ts.map +1 -1
  137. package/dist/tests/multi_ne/sync-agent/syncAgent.test.js +23 -15
  138. package/dist/tests/multi_ne/sync-agent/syncAgent.test.js.map +1 -1
  139. package/dist/tests/multi_ne/sync-agent/syncAgents.test.d.ts +3 -0
  140. package/dist/tests/multi_ne/sync-agent/syncAgents.test.d.ts.map +1 -1
  141. package/dist/tests/multi_ne/sync-agent/syncAgents.test.js +34 -70
  142. package/dist/tests/multi_ne/sync-agent/syncAgents.test.js.map +1 -1
  143. package/dist/tests/multi_ne/sync-agent/timeline.test.js +68 -119
  144. package/dist/tests/multi_ne/sync-agent/timeline.test.js.map +1 -1
  145. package/dist/tests/multi_ne/sync-agent/user.test.js +10 -5
  146. package/dist/tests/multi_ne/sync-agent/user.test.js.map +1 -1
  147. package/dist/tests/multi_ne/syncWithBlocks.test.d.ts +3 -0
  148. package/dist/tests/multi_ne/syncWithBlocks.test.d.ts.map +1 -1
  149. package/dist/tests/multi_ne/syncWithBlocks.test.js +47 -77
  150. package/dist/tests/multi_ne/syncWithBlocks.test.js.map +1 -1
  151. package/dist/tests/multi_ne/syncedStream.test.js +1 -1
  152. package/dist/tests/multi_ne/syncedStream.test.js.map +1 -1
  153. package/dist/tests/multi_ne/syncedStreams.test.js +1 -1
  154. package/dist/tests/multi_ne/syncedStreams.test.js.map +1 -1
  155. package/dist/tests/multi_ne/userInboxMessage.test.js +4 -4
  156. package/dist/tests/multi_ne/userInboxMessage.test.js.map +1 -1
  157. package/dist/tests/multi_ne/userSettings.test.js +3 -16
  158. package/dist/tests/multi_ne/userSettings.test.js.map +1 -1
  159. package/dist/tests/multi_ne/workflows.test.js +22 -50
  160. package/dist/tests/multi_ne/workflows.test.js.map +1 -1
  161. package/dist/tests/testDriver_testUtils.d.ts.map +1 -1
  162. package/dist/tests/testDriver_testUtils.js +6 -22
  163. package/dist/tests/testDriver_testUtils.js.map +1 -1
  164. package/dist/tests/testUtils.d.ts +3 -104
  165. package/dist/tests/testUtils.d.ts.map +1 -1
  166. package/dist/tests/testUtils.js +6 -625
  167. package/dist/tests/testUtils.js.map +1 -1
  168. package/dist/tests/unit/snapshotMigration0001.test.js +4 -20
  169. package/dist/tests/unit/snapshotMigration0001.test.js.map +1 -1
  170. package/dist/tests/unit/snapshotMigration0004.test.js +5 -43
  171. package/dist/tests/unit/snapshotMigration0004.test.js.map +1 -1
  172. package/dist/tests/unit/snapshotMigration0005.test.js +5 -43
  173. package/dist/tests/unit/snapshotMigration0005.test.js.map +1 -1
  174. package/dist/tests/unit/streamUtils.test.js +21 -22
  175. package/dist/tests/unit/streamUtils.test.js.map +1 -1
  176. package/dist/tests/unit/tags.test.js +5 -7
  177. package/dist/tests/unit/tags.test.js.map +1 -1
  178. package/dist/types.d.ts +1 -21
  179. package/dist/types.d.ts.map +1 -1
  180. package/dist/types.js +2 -231
  181. package/dist/types.js.map +1 -1
  182. package/dist/views/models/timelineEvent.d.ts.map +1 -1
  183. package/dist/views/models/timelineEvent.js +1 -178
  184. package/dist/views/models/timelineEvent.js.map +1 -1
  185. package/dist/views/models/timelineTypes.d.ts +3 -29
  186. package/dist/views/models/timelineTypes.d.ts.map +1 -1
  187. package/dist/views/models/timelineTypes.js +0 -4
  188. package/dist/views/models/timelineTypes.js.map +1 -1
  189. package/dist/views/streams/timelines.d.ts +1 -1
  190. package/dist/views/streams/timelines.d.ts.map +1 -1
  191. package/dist/views/streams/timelines.js +3 -3
  192. package/dist/views/streams/timelines.js.map +1 -1
  193. package/dist/views/streamsView.d.ts +0 -6
  194. package/dist/views/streamsView.d.ts.map +1 -1
  195. package/dist/views/streamsView.js +0 -11
  196. package/dist/views/streamsView.js.map +1 -1
  197. package/dist/views/transforms/dmsAndGdmsTransform.d.ts +0 -2
  198. package/dist/views/transforms/dmsAndGdmsTransform.d.ts.map +1 -1
  199. package/dist/views/transforms/dmsAndGdmsTransform.js +1 -26
  200. package/dist/views/transforms/dmsAndGdmsTransform.js.map +1 -1
  201. package/dist/views/transforms/dmsAndGdmsUnreadIdsTransform.d.ts +1 -2
  202. package/dist/views/transforms/dmsAndGdmsUnreadIdsTransform.d.ts.map +1 -1
  203. package/dist/views/transforms/dmsAndGdmsUnreadIdsTransform.js +2 -5
  204. package/dist/views/transforms/dmsAndGdmsUnreadIdsTransform.js.map +1 -1
  205. package/dist/views/transforms/spaceIdsTransform.d.ts +1 -1
  206. package/dist/views/transforms/spaceIdsTransform.d.ts.map +1 -1
  207. package/dist/views/transforms/spaceIdsTransform.js +3 -10
  208. package/dist/views/transforms/spaceIdsTransform.js.map +1 -1
  209. package/dist/views/transforms/spaceMentionsTransform.d.ts.map +1 -1
  210. package/dist/views/transforms/spaceMentionsTransform.js +13 -14
  211. package/dist/views/transforms/spaceMentionsTransform.js.map +1 -1
  212. package/dist/views/transforms/spaceUnreadsTransform.d.ts.map +1 -1
  213. package/dist/views/transforms/spaceUnreadsTransform.js +21 -22
  214. package/dist/views/transforms/spaceUnreadsTransform.js.map +1 -1
  215. package/dist/views/transforms/unreadMarkersTransform.js +2 -4
  216. package/dist/views/transforms/unreadMarkersTransform.js.map +1 -1
  217. package/package.json +9 -9
  218. package/dist/memberMetadata_DisplayNames.d.ts +0 -26
  219. package/dist/memberMetadata_DisplayNames.d.ts.map +0 -1
  220. package/dist/memberMetadata_DisplayNames.js +0 -95
  221. package/dist/memberMetadata_DisplayNames.js.map +0 -1
  222. package/dist/memberMetadata_EnsAddresses.d.ts +0 -25
  223. package/dist/memberMetadata_EnsAddresses.d.ts.map +0 -1
  224. package/dist/memberMetadata_EnsAddresses.js +0 -86
  225. package/dist/memberMetadata_EnsAddresses.js.map +0 -1
  226. package/dist/memberMetadata_Nft.d.ts +0 -31
  227. package/dist/memberMetadata_Nft.d.ts.map +0 -1
  228. package/dist/memberMetadata_Nft.js +0 -95
  229. package/dist/memberMetadata_Nft.js.map +0 -1
  230. package/dist/memberMetadata_Usernames.d.ts +0 -35
  231. package/dist/memberMetadata_Usernames.d.ts.map +0 -1
  232. package/dist/memberMetadata_Usernames.js +0 -162
  233. package/dist/memberMetadata_Usernames.js.map +0 -1
  234. package/dist/streamStateView_Channel.d.ts +0 -16
  235. package/dist/streamStateView_Channel.d.ts.map +0 -1
  236. package/dist/streamStateView_Channel.js +0 -76
  237. package/dist/streamStateView_Channel.js.map +0 -1
  238. package/dist/streamStateView_DMChannel.d.ts +0 -25
  239. package/dist/streamStateView_DMChannel.d.ts.map +0 -1
  240. package/dist/streamStateView_DMChannel.js +0 -114
  241. package/dist/streamStateView_DMChannel.js.map +0 -1
  242. package/dist/streamStateView_Space.d.ts +0 -31
  243. package/dist/streamStateView_Space.d.ts.map +0 -1
  244. package/dist/streamStateView_Space.js +0 -193
  245. package/dist/streamStateView_Space.js.map +0 -1
  246. package/dist/sync-agent/dms/dms.d.ts +0 -24
  247. package/dist/sync-agent/dms/dms.d.ts.map +0 -1
  248. package/dist/sync-agent/dms/dms.js +0 -45
  249. package/dist/sync-agent/dms/dms.js.map +0 -1
  250. package/dist/sync-agent/dms/models/dm.d.ts +0 -73
  251. package/dist/sync-agent/dms/models/dm.d.ts.map +0 -1
  252. package/dist/sync-agent/dms/models/dm.js +0 -143
  253. package/dist/sync-agent/dms/models/dm.js.map +0 -1
  254. package/dist/sync-agent/spaces/models/channel.d.ts +0 -102
  255. package/dist/sync-agent/spaces/models/channel.d.ts.map +0 -1
  256. package/dist/sync-agent/spaces/models/channel.js +0 -169
  257. package/dist/sync-agent/spaces/models/channel.js.map +0 -1
  258. package/dist/sync-agent/spaces/models/space.d.ts +0 -56
  259. package/dist/sync-agent/spaces/models/space.d.ts.map +0 -1
  260. package/dist/sync-agent/spaces/models/space.js +0 -115
  261. package/dist/sync-agent/spaces/models/space.js.map +0 -1
  262. package/dist/sync-agent/spaces/spaces.d.ts +0 -25
  263. package/dist/sync-agent/spaces/spaces.d.ts.map +0 -1
  264. package/dist/sync-agent/spaces/spaces.js +0 -56
  265. package/dist/sync-agent/spaces/spaces.js.map +0 -1
  266. package/dist/tests/multi/channelSpaceSettings.test.d.ts +0 -5
  267. package/dist/tests/multi/channelSpaceSettings.test.d.ts.map +0 -1
  268. package/dist/tests/multi/channelSpaceSettings.test.js +0 -204
  269. package/dist/tests/multi/channelSpaceSettings.test.js.map +0 -1
  270. package/dist/tests/multi/disableChannel.test.d.ts +0 -5
  271. package/dist/tests/multi/disableChannel.test.d.ts.map +0 -1
  272. package/dist/tests/multi/disableChannel.test.js +0 -30
  273. package/dist/tests/multi/disableChannel.test.js.map +0 -1
  274. package/dist/tests/multi/disableSpace.test.d.ts +0 -5
  275. package/dist/tests/multi/disableSpace.test.d.ts.map +0 -1
  276. package/dist/tests/multi/disableSpace.test.js +0 -37
  277. package/dist/tests/multi/disableSpace.test.js.map +0 -1
  278. package/dist/tests/multi/entitlements/channelEntitlementPermissions.test.d.ts +0 -5
  279. package/dist/tests/multi/entitlements/channelEntitlementPermissions.test.d.ts.map +0 -1
  280. package/dist/tests/multi/entitlements/channelEntitlementPermissions.test.js +0 -129
  281. package/dist/tests/multi/entitlements/channelEntitlementPermissions.test.js.map +0 -1
  282. package/dist/tests/multi/entitlements/channelWithThreeNestedEntitlement.test.d.ts +0 -5
  283. package/dist/tests/multi/entitlements/channelWithThreeNestedEntitlement.test.d.ts.map +0 -1
  284. package/dist/tests/multi/entitlements/channelWithThreeNestedEntitlement.test.js +0 -44
  285. package/dist/tests/multi/entitlements/channelWithThreeNestedEntitlement.test.js.map +0 -1
  286. package/dist/tests/multi/entitlements/channelsWithComplexEntitlements.test.d.ts +0 -5
  287. package/dist/tests/multi/entitlements/channelsWithComplexEntitlements.test.d.ts.map +0 -1
  288. package/dist/tests/multi/entitlements/channelsWithComplexEntitlements.test.js +0 -125
  289. package/dist/tests/multi/entitlements/channelsWithComplexEntitlements.test.js.map +0 -1
  290. package/dist/tests/multi/entitlements/channelsWithEntitlementLoss.test.d.ts +0 -5
  291. package/dist/tests/multi/entitlements/channelsWithEntitlementLoss.test.d.ts.map +0 -1
  292. package/dist/tests/multi/entitlements/channelsWithEntitlementLoss.test.js +0 -72
  293. package/dist/tests/multi/entitlements/channelsWithEntitlementLoss.test.js.map +0 -1
  294. package/dist/tests/multi/entitlements/channelsWithEntitlements.test.d.ts +0 -5
  295. package/dist/tests/multi/entitlements/channelsWithEntitlements.test.d.ts.map +0 -1
  296. package/dist/tests/multi/entitlements/channelsWithEntitlements.test.js +0 -57
  297. package/dist/tests/multi/entitlements/channelsWithEntitlements.test.js.map +0 -1
  298. package/dist/tests/multi/entitlements/channelsWithErc20Entitlements.test.d.ts +0 -5
  299. package/dist/tests/multi/entitlements/channelsWithErc20Entitlements.test.d.ts.map +0 -1
  300. package/dist/tests/multi/entitlements/channelsWithErc20Entitlements.test.js +0 -86
  301. package/dist/tests/multi/entitlements/channelsWithErc20Entitlements.test.js.map +0 -1
  302. package/dist/tests/multi/entitlements/channelsWithErc721Entitlements.test.d.ts +0 -5
  303. package/dist/tests/multi/entitlements/channelsWithErc721Entitlements.test.d.ts.map +0 -1
  304. package/dist/tests/multi/entitlements/channelsWithErc721Entitlements.test.js +0 -69
  305. package/dist/tests/multi/entitlements/channelsWithErc721Entitlements.test.js.map +0 -1
  306. package/dist/tests/multi/entitlements/channelsWithEthBalanceEntitlements.test.d.ts +0 -5
  307. package/dist/tests/multi/entitlements/channelsWithEthBalanceEntitlements.test.d.ts.map +0 -1
  308. package/dist/tests/multi/entitlements/channelsWithEthBalanceEntitlements.test.js +0 -145
  309. package/dist/tests/multi/entitlements/channelsWithEthBalanceEntitlements.test.js.map +0 -1
  310. package/dist/tests/multi/entitlements/channelsWithUserEntitlements.test.d.ts +0 -5
  311. package/dist/tests/multi/entitlements/channelsWithUserEntitlements.test.d.ts.map +0 -1
  312. package/dist/tests/multi/entitlements/channelsWithUserEntitlements.test.js +0 -53
  313. package/dist/tests/multi/entitlements/channelsWithUserEntitlements.test.js.map +0 -1
  314. package/dist/tests/multi/entitlements/membershipRenewals.test.d.ts +0 -5
  315. package/dist/tests/multi/entitlements/membershipRenewals.test.d.ts.map +0 -1
  316. package/dist/tests/multi/entitlements/membershipRenewals.test.js +0 -150
  317. package/dist/tests/multi/entitlements/membershipRenewals.test.js.map +0 -1
  318. package/dist/tests/multi/entitlements/spaceWithComplexEntitlements.test.d.ts +0 -5
  319. package/dist/tests/multi/entitlements/spaceWithComplexEntitlements.test.d.ts.map +0 -1
  320. package/dist/tests/multi/entitlements/spaceWithComplexEntitlements.test.js +0 -131
  321. package/dist/tests/multi/entitlements/spaceWithComplexEntitlements.test.js.map +0 -1
  322. package/dist/tests/multi/entitlements/spaceWithEntitlements.test.d.ts +0 -5
  323. package/dist/tests/multi/entitlements/spaceWithEntitlements.test.d.ts.map +0 -1
  324. package/dist/tests/multi/entitlements/spaceWithEntitlements.test.js +0 -109
  325. package/dist/tests/multi/entitlements/spaceWithEntitlements.test.js.map +0 -1
  326. package/dist/tests/multi/entitlements/spaceWithErc20Entitlements.test.d.ts +0 -5
  327. package/dist/tests/multi/entitlements/spaceWithErc20Entitlements.test.d.ts.map +0 -1
  328. package/dist/tests/multi/entitlements/spaceWithErc20Entitlements.test.js +0 -103
  329. package/dist/tests/multi/entitlements/spaceWithErc20Entitlements.test.js.map +0 -1
  330. package/dist/tests/multi/entitlements/spaceWithErc721Entitlements.test.d.ts +0 -5
  331. package/dist/tests/multi/entitlements/spaceWithErc721Entitlements.test.d.ts.map +0 -1
  332. package/dist/tests/multi/entitlements/spaceWithErc721Entitlements.test.js +0 -84
  333. package/dist/tests/multi/entitlements/spaceWithErc721Entitlements.test.js.map +0 -1
  334. package/dist/tests/multi/entitlements/spaceWithEthBalanceEntitlements.test.d.ts +0 -5
  335. package/dist/tests/multi/entitlements/spaceWithEthBalanceEntitlements.test.d.ts.map +0 -1
  336. package/dist/tests/multi/entitlements/spaceWithEthBalanceEntitlements.test.js +0 -168
  337. package/dist/tests/multi/entitlements/spaceWithEthBalanceEntitlements.test.js.map +0 -1
  338. package/dist/tests/multi/entitlements/spaceWithThreeNestedEntitlement.test.d.ts +0 -5
  339. package/dist/tests/multi/entitlements/spaceWithThreeNestedEntitlement.test.d.ts.map +0 -1
  340. package/dist/tests/multi/entitlements/spaceWithThreeNestedEntitlement.test.js +0 -45
  341. package/dist/tests/multi/entitlements/spaceWithThreeNestedEntitlement.test.js.map +0 -1
  342. package/dist/tests/multi/entitlements/spaceWithUserEntitlements.test.d.ts +0 -5
  343. package/dist/tests/multi/entitlements/spaceWithUserEntitlements.test.d.ts.map +0 -1
  344. package/dist/tests/multi/entitlements/spaceWithUserEntitlements.test.js +0 -79
  345. package/dist/tests/multi/entitlements/spaceWithUserEntitlements.test.js.map +0 -1
  346. package/dist/tests/multi/legacySpace.test.d.ts +0 -5
  347. package/dist/tests/multi/legacySpace.test.d.ts.map +0 -1
  348. package/dist/tests/multi/legacySpace.test.js +0 -48
  349. package/dist/tests/multi/legacySpace.test.js.map +0 -1
  350. package/dist/tests/multi/mediaWithEntitlements.test.d.ts +0 -5
  351. package/dist/tests/multi/mediaWithEntitlements.test.d.ts.map +0 -1
  352. package/dist/tests/multi/mediaWithEntitlements.test.js +0 -152
  353. package/dist/tests/multi/mediaWithEntitlements.test.js.map +0 -1
  354. package/dist/tests/multi/membershipManagement.test.d.ts +0 -5
  355. package/dist/tests/multi/membershipManagement.test.d.ts.map +0 -1
  356. package/dist/tests/multi/membershipManagement.test.js +0 -76
  357. package/dist/tests/multi/membershipManagement.test.js.map +0 -1
  358. package/dist/tests/multi/riverAirdropDapp.test.d.ts +0 -5
  359. package/dist/tests/multi/riverAirdropDapp.test.d.ts.map +0 -1
  360. package/dist/tests/multi/riverAirdropDapp.test.js +0 -43
  361. package/dist/tests/multi/riverAirdropDapp.test.js.map +0 -1
  362. package/dist/tests/multi/spaceDapp.test.d.ts.map +0 -1
  363. package/dist/tests/multi/spaceDapp.test.js +0 -61
  364. package/dist/tests/multi/spaceDapp.test.js.map +0 -1
  365. package/dist/tests/multi/spaceWithVariousPriceConfigurations.test.d.ts +0 -2
  366. package/dist/tests/multi/spaceWithVariousPriceConfigurations.test.d.ts.map +0 -1
  367. package/dist/tests/multi/spaceWithVariousPriceConfigurations.test.js +0 -63
  368. package/dist/tests/multi/spaceWithVariousPriceConfigurations.test.js.map +0 -1
  369. package/dist/tests/multi/withEntitlements.test.d.ts +0 -5
  370. package/dist/tests/multi/withEntitlements.test.d.ts.map +0 -1
  371. package/dist/tests/multi/withEntitlements.test.js +0 -125
  372. package/dist/tests/multi/withEntitlements.test.js.map +0 -1
  373. package/dist/tests/multi_ne/dms.test.d.ts +0 -5
  374. package/dist/tests/multi_ne/dms.test.d.ts.map +0 -1
  375. package/dist/tests/multi_ne/dms.test.js +0 -131
  376. package/dist/tests/multi_ne/dms.test.js.map +0 -1
  377. package/dist/tests/multi_ne/memberMetadata_DisplayNames.test.d.ts +0 -5
  378. package/dist/tests/multi_ne/memberMetadata_DisplayNames.test.d.ts.map +0 -1
  379. package/dist/tests/multi_ne/memberMetadata_DisplayNames.test.js +0 -54
  380. package/dist/tests/multi_ne/memberMetadata_DisplayNames.test.js.map +0 -1
  381. package/dist/tests/multi_ne/memberMetadata_EnsAddresses.test.d.ts +0 -5
  382. package/dist/tests/multi_ne/memberMetadata_EnsAddresses.test.d.ts.map +0 -1
  383. package/dist/tests/multi_ne/memberMetadata_EnsAddresses.test.js +0 -37
  384. package/dist/tests/multi_ne/memberMetadata_EnsAddresses.test.js.map +0 -1
  385. package/dist/tests/multi_ne/memberMetadata_Nft.test.d.ts +0 -5
  386. package/dist/tests/multi_ne/memberMetadata_Nft.test.d.ts.map +0 -1
  387. package/dist/tests/multi_ne/memberMetadata_Nft.test.js +0 -49
  388. package/dist/tests/multi_ne/memberMetadata_Nft.test.js.map +0 -1
  389. package/dist/tests/multi_ne/memberMetadata_Usernames.test.d.ts +0 -5
  390. package/dist/tests/multi_ne/memberMetadata_Usernames.test.d.ts.map +0 -1
  391. package/dist/tests/multi_ne/memberMetadata_Usernames.test.js +0 -126
  392. package/dist/tests/multi_ne/memberMetadata_Usernames.test.js.map +0 -1
  393. package/dist/tests/multi_ne/space.test.d.ts +0 -5
  394. package/dist/tests/multi_ne/space.test.d.ts.map +0 -1
  395. package/dist/tests/multi_ne/space.test.js +0 -284
  396. package/dist/tests/multi_ne/space.test.js.map +0 -1
  397. package/dist/tests/multi_ne/sync-agent/spaces.test.d.ts +0 -2
  398. package/dist/tests/multi_ne/sync-agent/spaces.test.d.ts.map +0 -1
  399. package/dist/tests/multi_ne/sync-agent/spaces.test.js +0 -33
  400. package/dist/tests/multi_ne/sync-agent/spaces.test.js.map +0 -1
  401. package/dist/tests/multi_v2/entitlements/channelsWithCrossChainEntitlements.test.d.ts +0 -6
  402. package/dist/tests/multi_v2/entitlements/channelsWithCrossChainEntitlements.test.d.ts.map +0 -1
  403. package/dist/tests/multi_v2/entitlements/channelsWithCrossChainEntitlements.test.js +0 -78
  404. package/dist/tests/multi_v2/entitlements/channelsWithCrossChainEntitlements.test.js.map +0 -1
  405. package/dist/tests/multi_v2/entitlements/channelsWithErc1155Entitlement.test.d.ts +0 -6
  406. package/dist/tests/multi_v2/entitlements/channelsWithErc1155Entitlement.test.d.ts.map +0 -1
  407. package/dist/tests/multi_v2/entitlements/channelsWithErc1155Entitlement.test.js +0 -89
  408. package/dist/tests/multi_v2/entitlements/channelsWithErc1155Entitlement.test.js.map +0 -1
  409. package/dist/tests/multi_v2/entitlements/spaceWithCrossChainEntitlements.test.d.ts +0 -6
  410. package/dist/tests/multi_v2/entitlements/spaceWithCrossChainEntitlements.test.d.ts.map +0 -1
  411. package/dist/tests/multi_v2/entitlements/spaceWithCrossChainEntitlements.test.js +0 -88
  412. package/dist/tests/multi_v2/entitlements/spaceWithCrossChainEntitlements.test.js.map +0 -1
  413. package/dist/tests/multi_v2/entitlements/spaceWithErc1155Entitlements.test.d.ts +0 -6
  414. package/dist/tests/multi_v2/entitlements/spaceWithErc1155Entitlements.test.d.ts.map +0 -1
  415. package/dist/tests/multi_v2/entitlements/spaceWithErc1155Entitlements.test.js +0 -105
  416. package/dist/tests/multi_v2/entitlements/spaceWithErc1155Entitlements.test.js.map +0 -1
  417. package/dist/tests/multi_v2/updateRole.test.d.ts +0 -5
  418. package/dist/tests/multi_v2/updateRole.test.d.ts.map +0 -1
  419. package/dist/tests/multi_v2/updateRole.test.js +0 -25
  420. package/dist/tests/multi_v2/updateRole.test.js.map +0 -1
  421. package/dist/tests/unit/snapshotMigration0002.test.d.ts +0 -2
  422. package/dist/tests/unit/snapshotMigration0002.test.d.ts.map +0 -1
  423. package/dist/tests/unit/snapshotMigration0002.test.js +0 -31
  424. package/dist/tests/unit/snapshotMigration0002.test.js.map +0 -1
  425. package/dist/views/streams/channelStreams.d.ts +0 -8
  426. package/dist/views/streams/channelStreams.d.ts.map +0 -1
  427. package/dist/views/streams/channelStreams.js +0 -9
  428. package/dist/views/streams/channelStreams.js.map +0 -1
  429. package/dist/views/streams/dmStreams.d.ts +0 -13
  430. package/dist/views/streams/dmStreams.d.ts.map +0 -1
  431. package/dist/views/streams/dmStreams.js +0 -33
  432. package/dist/views/streams/dmStreams.js.map +0 -1
  433. package/dist/views/streams/spaceStreams.d.ts +0 -17
  434. package/dist/views/streams/spaceStreams.d.ts.map +0 -1
  435. package/dist/views/streams/spaceStreams.js +0 -52
  436. package/dist/views/streams/spaceStreams.js.map +0 -1
@@ -1,94 +1,61 @@
1
1
  /**
2
2
  * @group main
3
3
  */
4
- import { makeEvent, makeEvents, unpackStreamEnvelopes } from '../../sign';
5
- import { MembershipOp, SyncOp } from '@towns-labs/proto';
4
+ import { makeEvent, makeEvents } from '../../sign';
5
+ import { MembershipOp } from '@towns-labs/proto';
6
6
  import { bin_equal, dlog } from '@towns-labs/utils';
7
- import { makeEvent_test, makeRandomUserContext, makeUserContextFromWallet, makeTestRpcClient, makeUniqueSpaceStreamId, iterableWrapper, TEST_ENCRYPTED_MESSAGE_PROPS, waitForSyncStreams, } from '../testUtils';
8
- import { addressFromUserId, makeUniqueChannelStreamId, makeUserStreamId, streamIdAsString, streamIdToBytes, userIdFromAddress, } from '../../id';
9
- import { make_ChannelPayload_Inception, make_ChannelPayload_Message, make_MemberPayload_Membership2, make_SpacePayload_Inception, make_UserPayload_Inception, make_UserPayload_UserMembership, make_UserPayload_UserMembershipAction, } from '../../types';
7
+ import { makeEvent_test, makeRandomUserContext, makeUserContextFromWallet, makeTestRpcClient, TEST_ENCRYPTED_MESSAGE_PROPS, } from '../testUtils';
8
+ import { makeUniqueGDMChannelStreamId, makeUserStreamId, streamIdToBytes, userIdFromAddress, } from '../../id';
9
+ import { make_GDMChannelPayload_Inception, make_GDMChannelPayload_Message, make_MemberPayload_Membership2, make_UserPayload_Inception, make_UserPayload_UserMembership, } from '../../types';
10
10
  import { bobTalksToHimself } from '../bob_testUtils';
11
11
  import { ethers } from 'ethers';
12
12
  import { makeSignerContext } from '../../signerContext';
13
13
  const log = dlog('csb:test:streamRpcClient');
14
14
  describe('streamRpcClient', () => {
15
15
  let bobsContext;
16
- let alicesContext;
17
16
  beforeEach(async () => {
18
17
  bobsContext = await makeRandomUserContext();
19
- alicesContext = await makeRandomUserContext();
20
18
  });
21
19
  test('makeStreamRpcClient', async () => {
22
20
  const client = await makeTestRpcClient();
23
- log('makeStreamRpcClient', 'url', client.url);
24
21
  expect(client).toBeDefined();
25
22
  const result = await client.info({ debug: ['graffiti'] });
26
23
  expect(result).toBeDefined();
27
24
  expect(result.graffiti).toEqual('River Node welcomes you!');
28
25
  });
29
26
  test('ping', async () => {
30
- // ping is a debug endpoint, so it's not available in production
31
27
  const client = await makeTestRpcClient();
32
- log('ping', 'url', client.url);
33
- expect(client).toBeDefined();
34
28
  const result = await client.info({ debug: ['ping'] });
35
29
  expect(result).toBeDefined();
36
30
  expect(result.graffiti).toEqual('pong');
37
31
  });
38
32
  test('error', async () => {
39
33
  const client = await makeTestRpcClient();
40
- expect(client).toBeDefined();
41
- let err = undefined;
42
- try {
43
- await client.info({ debug: ['error'] });
44
- }
45
- catch (e) {
46
- expect(e).toBeInstanceOf(Error);
47
- err = e;
48
- }
49
- log('error', err);
50
- expect(err).toBeDefined();
51
- log('error', err.toString());
52
- expect(err.toString()).toContain('Error requested through Info request');
34
+ await expect(client.info({ debug: ['error'] })).rejects.toThrow('Error requested through Info request');
53
35
  });
54
36
  test('error_untyped', async () => {
55
37
  const client = await makeTestRpcClient();
56
- expect(client).toBeDefined();
57
- let err = undefined;
58
- try {
59
- await client.info({ debug: ['error_untyped'] });
60
- }
61
- catch (e) {
62
- expect(e).toBeInstanceOf(Error);
63
- err = e;
64
- }
65
- log('error_untyped', err);
66
- expect(err).toBeDefined();
67
- log('error_untyped', err.toString());
68
- expect(err.toString()).toContain('[unknown] error requested through Info request');
38
+ await expect(client.info({ debug: ['error_untyped'] })).rejects.toThrow('[unknown] error requested through Info request');
69
39
  });
70
40
  test('charlieUsesRegularOldWallet', async () => {
71
41
  const wallet = ethers.Wallet.createRandom();
72
42
  const charliesContext = await makeUserContextFromWallet(wallet);
73
43
  const charlie = await makeTestRpcClient();
74
44
  const userId = userIdFromAddress(charliesContext.creatorAddress);
75
- const streamIdStr = makeUserStreamId(userId);
76
- const streamId = streamIdToBytes(streamIdStr);
45
+ const streamId = streamIdToBytes(makeUserStreamId(userId));
77
46
  await charlie.createStream({
78
47
  events: [
79
48
  await makeEvent(charliesContext, make_UserPayload_Inception({
80
- streamId: streamId,
49
+ streamId,
81
50
  })),
82
51
  ],
83
- streamId: streamId,
52
+ streamId,
84
53
  });
85
54
  });
86
55
  test('bobSendsMismatchedPayloadCase', async () => {
87
- log('bobSendsMismatchedPayloadCase', 'start');
88
56
  const bob = await makeTestRpcClient();
89
57
  const bobsUserId = userIdFromAddress(bobsContext.creatorAddress);
90
- const bobsUserStreamIdStr = makeUserStreamId(bobsUserId);
91
- const bobsUserStreamId = streamIdToBytes(bobsUserStreamIdStr);
58
+ const bobsUserStreamId = streamIdToBytes(makeUserStreamId(bobsUserId));
92
59
  const inceptionEvent = await makeEvent(bobsContext, make_UserPayload_Inception({
93
60
  streamId: bobsUserStreamId,
94
61
  }));
@@ -99,8 +66,7 @@ describe('streamRpcClient', () => {
99
66
  const userStream = await bob.getStream({ streamId: bobsUserStreamId });
100
67
  expect(userStream).toBeDefined();
101
68
  expect(bin_equal(userStream.stream?.nextSyncCookie?.streamId, bobsUserStreamId)).toBeTruthy();
102
- // try to send a channel message
103
- const event = await makeEvent(bobsContext, make_ChannelPayload_Message({
69
+ const event = await makeEvent(bobsContext, make_GDMChannelPayload_Message({
104
70
  ...TEST_ENCRYPTED_MESSAGE_PROPS,
105
71
  ciphertext: 'hello',
106
72
  }), userStream.stream?.miniblocks.at(-1)?.header?.hash);
@@ -108,8 +74,7 @@ describe('streamRpcClient', () => {
108
74
  streamId: bobsUserStreamId,
109
75
  event,
110
76
  });
111
- await expect(promise).rejects.toThrow('inception type mismatch: *protocol.StreamEvent_ChannelPayload::*protocol.ChannelPayload_Message vs *protocol.UserPayload_Inception');
112
- log('bobSendsMismatchedPayloadCase', 'done');
77
+ await expect(promise).rejects.toThrow('inception type mismatch');
113
78
  });
114
79
  test.each([
115
80
  ['bobTalksToHimself-noflush-nopresync', false],
@@ -117,192 +82,10 @@ describe('streamRpcClient', () => {
117
82
  ])('%s', async (name, presync) => {
118
83
  await bobTalksToHimself(log.extend(name), bobsContext, false, presync);
119
84
  });
120
- test('aliceTalksToBob', async () => {
121
- log('bobAndAliceConverse start');
122
- const bob = await makeTestRpcClient();
123
- const bobsUserId = userIdFromAddress(bobsContext.creatorAddress);
124
- const bobsUserStreamIdStr = makeUserStreamId(bobsUserId);
125
- const bobsUserStreamId = streamIdToBytes(bobsUserStreamIdStr);
126
- const alice = await makeTestRpcClient();
127
- const alicesUserId = userIdFromAddress(alicesContext.creatorAddress);
128
- const alicesUserStreamIdStr = makeUserStreamId(alicesUserId);
129
- const alicesUserStreamId = streamIdToBytes(alicesUserStreamIdStr);
130
- // Create accounts for Bob and Alice
131
- const bobsStream = await bob.createStream({
132
- events: [
133
- await makeEvent(bobsContext, make_UserPayload_Inception({
134
- streamId: bobsUserStreamId,
135
- })),
136
- ],
137
- streamId: bobsUserStreamId,
138
- });
139
- const alicesStream = await alice.createStream({
140
- events: [
141
- await makeEvent(alicesContext, make_UserPayload_Inception({
142
- streamId: alicesUserStreamId,
143
- })),
144
- ],
145
- streamId: alicesUserStreamId,
146
- });
147
- // Bob creates space
148
- const spaceIdStr = makeUniqueSpaceStreamId();
149
- const spaceId = streamIdToBytes(spaceIdStr);
150
- const inceptionEvent = await makeEvent(bobsContext, make_SpacePayload_Inception({
151
- streamId: spaceId,
152
- }));
153
- const joinEvent = await makeEvent(bobsContext, make_MemberPayload_Membership2({
154
- userId: bobsUserId,
155
- op: MembershipOp.SO_JOIN,
156
- initiatorId: bobsUserId,
157
- }));
158
- await bob.createStream({
159
- events: [inceptionEvent, joinEvent],
160
- streamId: spaceId,
161
- });
162
- // Bob creates channel
163
- const channelIdStr = makeUniqueChannelStreamId(spaceIdStr);
164
- const channelId = streamIdToBytes(channelIdStr);
165
- const channelInceptionEvent = await makeEvent(bobsContext, make_ChannelPayload_Inception({
166
- streamId: channelId,
167
- }));
168
- let event = await makeEvent(bobsContext, make_MemberPayload_Membership2({
169
- userId: bobsUserId,
170
- op: MembershipOp.SO_JOIN,
171
- initiatorId: bobsUserId,
172
- }));
173
- const createChannelResponse = await bob.createStream({
174
- events: [channelInceptionEvent, event],
175
- streamId: channelId,
176
- });
177
- // Bob succesdfully posts a message
178
- event = await makeEvent(bobsContext, make_ChannelPayload_Message({
179
- ...TEST_ENCRYPTED_MESSAGE_PROPS,
180
- ciphertext: 'hello',
181
- }), createChannelResponse.stream?.miniblocks.at(-1)?.header?.hash);
182
- await bob.addEvent({
183
- streamId: channelId,
184
- event,
185
- });
186
- // Alice fails to post a message if she hasn't joined the channel
187
- log("Alice fails to post a message if she hasn't joined the channel");
188
- await expect(alice.addEvent({
189
- streamId: channelId,
190
- event: await makeEvent(alicesContext, make_ChannelPayload_Message({
191
- ...TEST_ENCRYPTED_MESSAGE_PROPS,
192
- ciphertext: 'hello',
193
- }), createChannelResponse.stream?.miniblocks.at(-1)?.header?.hash),
194
- })).rejects.toThrow(expect.objectContaining({
195
- message: expect.stringContaining('7:PERMISSION_DENIED'),
196
- }));
197
- // Alice syncs her user stream waiting for invite
198
- const userAlice = await alice.getStream({
199
- streamId: alicesUserStreamId,
200
- });
201
- if (!userAlice.stream)
202
- throw new Error('userAlice stream not found');
203
- let aliceSyncCookie = userAlice.stream.nextSyncCookie;
204
- const aliceSyncStreams = alice.syncStreams({
205
- syncPos: aliceSyncCookie ? [aliceSyncCookie] : [],
206
- }, {
207
- timeoutMs: -1,
208
- headers: { 'X-Use-Shared-Sync': 'true' },
209
- });
210
- let syncId;
211
- log("Alice waits for Bob's channel creation event");
212
- await expect(waitForSyncStreams(aliceSyncStreams, async (res) => {
213
- syncId = res.syncId;
214
- return res.syncOp === SyncOp.SYNC_NEW && res.syncId !== undefined;
215
- })).resolves.not.toThrow();
216
- // Bob invites Alice to the channel
217
- log('Bob invites Alice to the channel');
218
- event = await makeEvent(bobsContext, make_UserPayload_UserMembershipAction({
219
- op: MembershipOp.SO_INVITE,
220
- userId: addressFromUserId(alicesUserId),
221
- streamId: channelId,
222
- }), bobsStream.stream?.miniblocks.at(-1)?.header?.hash);
223
- await bob.addEvent({
224
- streamId: bobsUserStreamId,
225
- event,
226
- });
227
- log("Alice waits for Bob's invite event");
228
- aliceSyncCookie = await waitForEvent(aliceSyncStreams, alicesUserStreamIdStr, (e) => {
229
- if (e.event.payload?.case === 'userPayload' &&
230
- e.event.payload?.value.content.case === 'userMembership') {
231
- log("Alice's received over sync:", {
232
- op: e.event.payload?.value.content.value.op,
233
- streamId: streamIdAsString(e.event.payload?.value.content.value.streamId),
234
- inviter: e.event.payload?.value.content.value.inviter,
235
- inviterId: e.event.payload?.value.content.value.inviter
236
- ? userIdFromAddress(e.event.payload?.value.content.value.inviter)
237
- : undefined,
238
- bob: bobsUserId,
239
- bobAddress: addressFromUserId(bobsUserId),
240
- bobAddress2: bobsContext.creatorAddress,
241
- bobAddress3: userIdFromAddress(bobsContext.creatorAddress),
242
- inviterEquals: bin_equal(e.event.payload?.value.content.value.inviter, bobsContext.creatorAddress),
243
- channelIdEquals: bin_equal(e.event.payload?.value.content.value.streamId, channelId),
244
- inviteEquals: e.event.payload?.value.content.value.op === MembershipOp.SO_INVITE,
245
- });
246
- return (e.event.payload?.value.content.value.op === MembershipOp.SO_INVITE &&
247
- bin_equal(e.event.payload?.value.content.value.streamId, channelId) &&
248
- bin_equal(e.event.payload?.value.content.value.inviter, bobsContext.creatorAddress));
249
- }
250
- return false;
251
- });
252
- // Alice joins the channel
253
- event = await makeEvent(alicesContext, make_UserPayload_UserMembership({
254
- op: MembershipOp.SO_JOIN,
255
- streamId: channelId,
256
- }), alicesStream.stream?.miniblocks.at(-1)?.header?.hash);
257
- await alice.addEvent({
258
- streamId: alicesUserStreamId,
259
- event,
260
- });
261
- log('Alice waits for join event in her user stream');
262
- // Alice sees derived join event in her user stream
263
- aliceSyncCookie = await waitForEvent(aliceSyncStreams, alicesUserStreamIdStr, (e) => e.event.payload?.case === 'userPayload' &&
264
- e.event.payload?.value.content.case === 'userMembership' &&
265
- e.event.payload?.value.content.value.op === MembershipOp.SO_JOIN &&
266
- bin_equal(e.event.payload?.value.content.value.streamId, channelId));
267
- // Alice reads previouse messages from the channel
268
- const channel = await alice.getStream({ streamId: channelId });
269
- let messageCount = 0;
270
- if (!channel.stream)
271
- throw new Error('channel stream not found');
272
- const envelopes = await unpackStreamEnvelopes(channel.stream, undefined);
273
- envelopes.forEach((e) => {
274
- const p = e.event.payload;
275
- if (p?.case === 'channelPayload' && p.value.content.case === 'message') {
276
- messageCount++;
277
- expect(p.value.content.value.ciphertext).toEqual('hello');
278
- }
279
- });
280
- expect(messageCount).toEqual(1);
281
- await alice.modifySync({
282
- syncId,
283
- addStreams: [channel.stream.nextSyncCookie],
284
- });
285
- // Bob posts another message
286
- event = await makeEvent(bobsContext, make_ChannelPayload_Message({
287
- ...TEST_ENCRYPTED_MESSAGE_PROPS,
288
- ciphertext: 'Hello, Alice!',
289
- }), channel.stream?.miniblocks.at(-1)?.header?.hash);
290
- await bob.addEvent({
291
- streamId: channelId,
292
- event,
293
- });
294
- log('Alice waits for Bob to post another message');
295
- // Alice sees the message in the channel stream
296
- await expect(waitForEvent(aliceSyncStreams, channelIdStr, (e) => e.event.payload?.case === 'channelPayload' &&
297
- e.event.payload?.value.content.case === 'message' &&
298
- e.event.payload?.value.content.value.ciphertext === 'Hello, Alice!')).resolves.not.toThrow();
299
- await alice.cancelSync({ syncId });
300
- });
301
85
  test.each([
302
86
  [0n, 'never'],
303
87
  [{ days: 2 }, 'in two days'],
304
- ])('cantAddOrCreateWithExpiredDelegateSig expiry: %o expires %s', async (goodExpiry, desc) => {
305
- log('testing with good expiry of', goodExpiry, 'which expires', desc);
88
+ ])('cantAddOrCreateWithExpiredDelegateSig expiry: %o expires %s', async (goodExpiry, _expiresDescription) => {
306
89
  const jimmy = await makeTestRpcClient();
307
90
  const jimmysWallet = ethers.Wallet.createRandom();
308
91
  const jimmysDelegateWallet = ethers.Wallet.createRandom();
@@ -322,16 +105,14 @@ describe('streamRpcClient', () => {
322
105
  streamId: jimmysUserStreamId,
323
106
  });
324
107
  };
325
- // test create stream
326
108
  await expect(makeUserStreamWith(jimmysExpiredContext)).rejects.toThrow(expect.objectContaining({
327
109
  message: expect.stringContaining('7:PERMISSION_DENIED'),
328
110
  }));
329
111
  await expect(makeUserStreamWith(jimmysGoodContext)).resolves.not.toThrow();
330
- // create a space
331
- const spacedStreamId = streamIdToBytes(makeUniqueSpaceStreamId());
332
- const spaceEvents = await makeEvents(jimmysGoodContext, [
333
- make_SpacePayload_Inception({
334
- streamId: spacedStreamId,
112
+ const gdmId = streamIdToBytes(makeUniqueGDMChannelStreamId());
113
+ const gdmEvents = await makeEvents(jimmysGoodContext, [
114
+ make_GDMChannelPayload_Inception({
115
+ streamId: gdmId,
335
116
  }),
336
117
  make_MemberPayload_Membership2({
337
118
  userId: jimmysUserId,
@@ -340,22 +121,20 @@ describe('streamRpcClient', () => {
340
121
  }),
341
122
  ]);
342
123
  await jimmy.createStream({
343
- events: spaceEvents,
344
- streamId: spacedStreamId,
124
+ events: gdmEvents,
125
+ streamId: gdmId,
345
126
  });
346
- // try to leave, first with expired context, then with good context
347
127
  const addEventWith = async (context) => {
348
128
  const lastMiniblockHash = (await jimmy.getLastMiniblockHash({ streamId: jimmysUserStreamId })).hash;
349
- const messageEvent = await makeEvent(context, make_UserPayload_UserMembership({
350
- streamId: spacedStreamId,
129
+ const membershipEvent = await makeEvent(context, make_UserPayload_UserMembership({
130
+ streamId: gdmId,
351
131
  op: MembershipOp.SO_LEAVE,
352
132
  }), lastMiniblockHash);
353
133
  return jimmy.addEvent({
354
134
  streamId: jimmysUserStreamId,
355
- event: messageEvent,
135
+ event: membershipEvent,
356
136
  });
357
137
  };
358
- // test add event
359
138
  await expect(addEventWith(jimmysExpiredContext)).rejects.toThrow(expect.objectContaining({
360
139
  message: expect.stringContaining('7:PERMISSION_DENIED'),
361
140
  }));
@@ -364,8 +143,7 @@ describe('streamRpcClient', () => {
364
143
  test('cantAddWithBadHash', async () => {
365
144
  const bob = await makeTestRpcClient();
366
145
  const bobsUserId = userIdFromAddress(bobsContext.creatorAddress);
367
- const bobsUserStreamIdStr = makeUserStreamId(bobsUserId);
368
- const bobsUserStreamId = streamIdToBytes(bobsUserStreamIdStr);
146
+ const bobsUserStreamId = streamIdToBytes(makeUserStreamId(bobsUserId));
369
147
  await expect(bob.createStream({
370
148
  events: [
371
149
  await makeEvent(bobsContext, make_UserPayload_Inception({
@@ -374,13 +152,10 @@ describe('streamRpcClient', () => {
374
152
  ],
375
153
  streamId: bobsUserStreamId,
376
154
  })).resolves.not.toThrow();
377
- log('Bob created user, about to create space');
378
- // Bob creates space and channel
379
- const spacedStreamIdStr = makeUniqueSpaceStreamId();
380
- const spacedStreamId = streamIdToBytes(spacedStreamIdStr);
381
- const spaceEvents = await makeEvents(bobsContext, [
382
- make_SpacePayload_Inception({
383
- streamId: spacedStreamId,
155
+ const gdmId = streamIdToBytes(makeUniqueGDMChannelStreamId());
156
+ const gdmEvents = await makeEvents(bobsContext, [
157
+ make_GDMChannelPayload_Inception({
158
+ streamId: gdmId,
384
159
  }),
385
160
  make_MemberPayload_Membership2({
386
161
  userId: bobsUserId,
@@ -389,60 +164,36 @@ describe('streamRpcClient', () => {
389
164
  }),
390
165
  ]);
391
166
  await bob.createStream({
392
- events: spaceEvents,
393
- streamId: spacedStreamId,
167
+ events: gdmEvents,
168
+ streamId: gdmId,
394
169
  });
395
- log('Bob created space, about to create channel');
396
- const channelIdStr = makeUniqueChannelStreamId(spacedStreamIdStr);
397
- const channelId = streamIdToBytes(channelIdStr);
398
- const channelEvents = await makeEvents(bobsContext, [
399
- make_ChannelPayload_Inception({
400
- streamId: channelId,
401
- }),
402
- make_MemberPayload_Membership2({
403
- userId: bobsUserId,
404
- op: MembershipOp.SO_JOIN,
405
- initiatorId: bobsUserId,
406
- }),
407
- ]);
408
- await bob.createStream({
409
- events: channelEvents,
410
- streamId: channelId,
411
- });
412
- log('Bob created channel');
413
- log('Bob fails to create channel with badly chained initial events, hash empty');
414
- const channelId2Str = makeUniqueChannelStreamId(spacedStreamIdStr);
415
- const channelId2 = streamIdToBytes(channelId2Str);
416
- const channelEvent2_0 = await makeEvent(bobsContext, make_ChannelPayload_Inception({
417
- streamId: channelId2,
170
+ const gdmId2 = streamIdToBytes(makeUniqueGDMChannelStreamId());
171
+ const gdmEvent2_0 = await makeEvent(bobsContext, make_GDMChannelPayload_Inception({
172
+ streamId: gdmId2,
418
173
  }));
419
- log('Bob fails to create channel with badly chained initial events, wrong hash value');
420
- const channelEvent2_2 = await makeEvent(bobsContext, make_MemberPayload_Membership2({
174
+ const gdmEvent2_1 = await makeEvent(bobsContext, make_MemberPayload_Membership2({
421
175
  userId: bobsUserId,
422
176
  op: MembershipOp.SO_JOIN,
423
177
  initiatorId: bobsUserId,
424
- }), Uint8Array.from(Array(32).fill('1')));
425
- // TODO: fix up error codes Err.BAD_PREV_EVENTS
178
+ }), Uint8Array.from(Array(32).fill(1)));
426
179
  await expect(bob.createStream({
427
- events: [channelEvent2_0, channelEvent2_2],
428
- streamId: channelId2,
180
+ events: [gdmEvent2_0, gdmEvent2_1],
181
+ streamId: gdmId2,
429
182
  })).rejects.toThrow(expect.objectContaining({
430
183
  message: expect.stringContaining('19:BAD_STREAM_CREATION_PARAMS'),
431
184
  }));
432
- log('Bob adds event with correct hash');
433
- const lastMiniblockHash = (await bob.getLastMiniblockHash({ streamId: channelId })).hash;
434
- const messageEvent = await makeEvent(bobsContext, make_ChannelPayload_Message({
185
+ const lastMiniblockHash = (await bob.getLastMiniblockHash({ streamId: gdmId })).hash;
186
+ const messageEvent = await makeEvent(bobsContext, make_GDMChannelPayload_Message({
435
187
  ...TEST_ENCRYPTED_MESSAGE_PROPS,
436
188
  ciphertext: 'Hello, World!',
437
189
  }), lastMiniblockHash);
438
190
  await expect(bob.addEvent({
439
- streamId: channelId,
191
+ streamId: gdmId,
440
192
  event: messageEvent,
441
193
  })).resolves.not.toThrow();
442
- log('Bob fails to add event with empty hash');
443
194
  await expect(bob.addEvent({
444
- streamId: channelId,
445
- event: await makeEvent_test(bobsContext, make_ChannelPayload_Message({
195
+ streamId: gdmId,
196
+ event: await makeEvent_test(bobsContext, make_GDMChannelPayload_Message({
446
197
  ...TEST_ENCRYPTED_MESSAGE_PROPS,
447
198
  ciphertext: 'Hello, World!',
448
199
  })),
@@ -453,8 +204,7 @@ describe('streamRpcClient', () => {
453
204
  test('cantAddWithBadSignature', async () => {
454
205
  const bob = await makeTestRpcClient();
455
206
  const bobsUserId = userIdFromAddress(bobsContext.creatorAddress);
456
- const bobsUserStreamIdStr = makeUserStreamId(bobsUserId);
457
- const bobsUserStreamId = streamIdToBytes(bobsUserStreamIdStr);
207
+ const bobsUserStreamId = streamIdToBytes(makeUserStreamId(bobsUserId));
458
208
  await expect(bob.createStream({
459
209
  events: [
460
210
  await makeEvent(bobsContext, make_UserPayload_Inception({
@@ -463,30 +213,10 @@ describe('streamRpcClient', () => {
463
213
  ],
464
214
  streamId: bobsUserStreamId,
465
215
  })).resolves.not.toThrow();
466
- log('Bob created user, about to create space');
467
- // Bob creates space and channel
468
- const spacedStreamIdStr = makeUniqueSpaceStreamId();
469
- const spacedStreamId = streamIdToBytes(spacedStreamIdStr);
470
- const spaceEvents = await makeEvents(bobsContext, [
471
- make_SpacePayload_Inception({
472
- streamId: spacedStreamId,
473
- }),
474
- make_MemberPayload_Membership2({
475
- userId: bobsUserId,
476
- op: MembershipOp.SO_JOIN,
477
- initiatorId: bobsUserId,
478
- }),
479
- ]);
480
- await bob.createStream({
481
- events: spaceEvents,
482
- streamId: spacedStreamId,
483
- });
484
- log('Bob created space, about to create channel');
485
- const channelIdStr = makeUniqueChannelStreamId(spacedStreamIdStr);
486
- const channelId = streamIdToBytes(channelIdStr);
487
- const channelEvents = await makeEvents(bobsContext, [
488
- make_ChannelPayload_Inception({
489
- streamId: channelId,
216
+ const gdmId = streamIdToBytes(makeUniqueGDMChannelStreamId());
217
+ const gdmEvents = await makeEvents(bobsContext, [
218
+ make_GDMChannelPayload_Inception({
219
+ streamId: gdmId,
490
220
  }),
491
221
  make_MemberPayload_Membership2({
492
222
  userId: bobsUserId,
@@ -495,60 +225,39 @@ describe('streamRpcClient', () => {
495
225
  }),
496
226
  ]);
497
227
  await bob.createStream({
498
- events: channelEvents,
499
- streamId: channelId,
228
+ events: gdmEvents,
229
+ streamId: gdmId,
500
230
  });
501
- log('Bob created channel');
502
- log('Bob adds event with correct signature');
503
- const lastMiniblockHash = (await bob.getLastMiniblockHash({ streamId: channelId })).hash;
504
- const messageEvent = await makeEvent(bobsContext, make_ChannelPayload_Message({
231
+ const lastMiniblockHash = (await bob.getLastMiniblockHash({ streamId: gdmId })).hash;
232
+ const messageEvent = await makeEvent(bobsContext, make_GDMChannelPayload_Message({
505
233
  ...TEST_ENCRYPTED_MESSAGE_PROPS,
506
234
  ciphertext: 'Hello, World!',
507
235
  }), lastMiniblockHash);
508
- channelEvents.push(messageEvent);
509
236
  await expect(bob.addEvent({
510
- streamId: channelId,
237
+ streamId: gdmId,
511
238
  event: messageEvent,
512
239
  })).resolves.not.toThrow();
513
- log('Adding event again succeeds (noop)');
514
240
  await expect(bob.addEvent({
515
- streamId: channelId,
241
+ streamId: gdmId,
516
242
  event: messageEvent,
517
243
  })).resolves.not.toThrow();
518
- log('Bob failes to add event with bad signature');
519
- const badEvent = await makeEvent(bobsContext, make_ChannelPayload_Message({
244
+ const badEvent = await makeEvent(bobsContext, make_GDMChannelPayload_Message({
520
245
  ...TEST_ENCRYPTED_MESSAGE_PROPS,
521
246
  ciphertext: 'Nah, not really',
522
247
  }), lastMiniblockHash);
523
248
  badEvent.signature = messageEvent.signature;
524
249
  await expect(bob.addEvent({
525
- streamId: channelId,
250
+ streamId: gdmId,
526
251
  event: badEvent,
527
252
  })).rejects.toThrow('22:BAD_EVENT_SIGNATURE');
528
- log('Bob fails with outdated prev minibloc hash');
529
- const expiredEvent = await makeEvent(bobsContext, make_ChannelPayload_Message({
253
+ const expiredEvent = await makeEvent(bobsContext, make_GDMChannelPayload_Message({
530
254
  ...TEST_ENCRYPTED_MESSAGE_PROPS,
531
255
  ciphertext: 'Nah, not really',
532
- }), Uint8Array.from(Array(32).fill('1')));
256
+ }), Uint8Array.from(Array(32).fill(1)));
533
257
  await expect(bob.addEvent({
534
- streamId: channelId,
258
+ streamId: gdmId,
535
259
  event: expiredEvent,
536
260
  })).rejects.toThrow('24:BAD_PREV_MINIBLOCK_HASH');
537
261
  });
538
262
  });
539
- const waitForEvent = async (syncStream, streamId, matcher) => {
540
- for await (const res of iterableWrapper(syncStream)) {
541
- const stream = res.stream;
542
- if (stream?.nextSyncCookie?.streamId &&
543
- bin_equal(stream.nextSyncCookie.streamId, streamIdToBytes(streamId))) {
544
- const events = await unpackStreamEnvelopes(stream, undefined);
545
- for (const e of events) {
546
- if (matcher(e)) {
547
- return stream.nextSyncCookie;
548
- }
549
- }
550
- }
551
- }
552
- throw new Error('unreachable');
553
- };
554
263
  //# sourceMappingURL=streamRpcClient.test.js.map