@amityco/ts-sdk 0.0.1-02f0fa3.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 (611) hide show
  1. package/LICENSE +390 -0
  2. package/README.md +137 -0
  3. package/dist/@types/core/cache.d.ts +21 -0
  4. package/dist/@types/core/cache.d.ts.map +1 -0
  5. package/dist/@types/core/errors.d.ts +32 -0
  6. package/dist/@types/core/errors.d.ts.map +1 -0
  7. package/dist/@types/core/events.d.ts +46 -0
  8. package/dist/@types/core/events.d.ts.map +1 -0
  9. package/dist/@types/core/model.d.ts +41 -0
  10. package/dist/@types/core/model.d.ts.map +1 -0
  11. package/dist/@types/core/payload.d.ts +88 -0
  12. package/dist/@types/core/payload.d.ts.map +1 -0
  13. package/dist/@types/core/permissions.d.ts +71 -0
  14. package/dist/@types/core/permissions.d.ts.map +1 -0
  15. package/dist/@types/core/query.d.ts +72 -0
  16. package/dist/@types/core/query.d.ts.map +1 -0
  17. package/dist/@types/core/store.d.ts +46 -0
  18. package/dist/@types/core/store.d.ts.map +1 -0
  19. package/dist/@types/core/transport.d.ts +27 -0
  20. package/dist/@types/core/transport.d.ts.map +1 -0
  21. package/dist/@types/domains/category.d.ts +11 -0
  22. package/dist/@types/domains/category.d.ts.map +1 -0
  23. package/dist/@types/domains/channel.d.ts +26 -0
  24. package/dist/@types/domains/channel.d.ts.map +1 -0
  25. package/dist/@types/domains/client.d.ts +31 -0
  26. package/dist/@types/domains/client.d.ts.map +1 -0
  27. package/dist/@types/domains/comment.d.ts +17 -0
  28. package/dist/@types/domains/comment.d.ts.map +1 -0
  29. package/dist/@types/domains/community.d.ts +24 -0
  30. package/dist/@types/domains/community.d.ts.map +1 -0
  31. package/dist/@types/domains/content.d.ts +26 -0
  32. package/dist/@types/domains/content.d.ts.map +1 -0
  33. package/dist/@types/domains/feed.d.ts +14 -0
  34. package/dist/@types/domains/feed.d.ts.map +1 -0
  35. package/dist/@types/domains/file.d.ts +29 -0
  36. package/dist/@types/domains/file.d.ts.map +1 -0
  37. package/dist/@types/domains/group.d.ts +26 -0
  38. package/dist/@types/domains/group.d.ts.map +1 -0
  39. package/dist/@types/domains/message.d.ts +16 -0
  40. package/dist/@types/domains/message.d.ts.map +1 -0
  41. package/dist/@types/domains/partials.d.ts +42 -0
  42. package/dist/@types/domains/partials.d.ts.map +1 -0
  43. package/dist/@types/domains/post.d.ts +22 -0
  44. package/dist/@types/domains/post.d.ts.map +1 -0
  45. package/dist/@types/domains/reaction.d.ts +24 -0
  46. package/dist/@types/domains/reaction.d.ts.map +1 -0
  47. package/dist/@types/domains/stream.d.ts +47 -0
  48. package/dist/@types/domains/stream.d.ts.map +1 -0
  49. package/dist/@types/domains/user.d.ts +12 -0
  50. package/dist/@types/domains/user.d.ts.map +1 -0
  51. package/dist/@types/global.d.ts +13 -0
  52. package/dist/@types/global.d.ts.map +1 -0
  53. package/dist/@types/index.d.ts +23 -0
  54. package/dist/@types/index.d.ts.map +1 -0
  55. package/dist/category/api/getCategory.d.ts +16 -0
  56. package/dist/category/api/getCategory.d.ts.map +1 -0
  57. package/dist/category/api/index.d.ts +3 -0
  58. package/dist/category/api/index.d.ts.map +1 -0
  59. package/dist/category/api/queryCategories.d.ts +23 -0
  60. package/dist/category/api/queryCategories.d.ts.map +1 -0
  61. package/dist/channel/api/addChannelMembers.d.ts +17 -0
  62. package/dist/channel/api/addChannelMembers.d.ts.map +1 -0
  63. package/dist/channel/api/addChannelMembersRole.d.ts +18 -0
  64. package/dist/channel/api/addChannelMembersRole.d.ts.map +1 -0
  65. package/dist/channel/api/createChannel.d.ts +19 -0
  66. package/dist/channel/api/createChannel.d.ts.map +1 -0
  67. package/dist/channel/api/deleteChannel.d.ts +16 -0
  68. package/dist/channel/api/deleteChannel.d.ts.map +1 -0
  69. package/dist/channel/api/getChannel.d.ts +32 -0
  70. package/dist/channel/api/getChannel.d.ts.map +1 -0
  71. package/dist/channel/api/getChannels.d.ts +32 -0
  72. package/dist/channel/api/getChannels.d.ts.map +1 -0
  73. package/dist/channel/api/index.d.ts +14 -0
  74. package/dist/channel/api/index.d.ts.map +1 -0
  75. package/dist/channel/api/joinChannel.d.ts +16 -0
  76. package/dist/channel/api/joinChannel.d.ts.map +1 -0
  77. package/dist/channel/api/leaveChannel.d.ts +16 -0
  78. package/dist/channel/api/leaveChannel.d.ts.map +1 -0
  79. package/dist/channel/api/queryChannelMembers.d.ts +42 -0
  80. package/dist/channel/api/queryChannelMembers.d.ts.map +1 -0
  81. package/dist/channel/api/queryChannels.d.ts +43 -0
  82. package/dist/channel/api/queryChannels.d.ts.map +1 -0
  83. package/dist/channel/api/removeChannelMembers.d.ts +17 -0
  84. package/dist/channel/api/removeChannelMembers.d.ts.map +1 -0
  85. package/dist/channel/api/removeChannelMembersRole.d.ts +18 -0
  86. package/dist/channel/api/removeChannelMembersRole.d.ts.map +1 -0
  87. package/dist/channel/api/updateChannel.d.ts +17 -0
  88. package/dist/channel/api/updateChannel.d.ts.map +1 -0
  89. package/dist/channel/events/index.d.ts +7 -0
  90. package/dist/channel/events/index.d.ts.map +1 -0
  91. package/dist/channel/events/onChannelCreated.d.ts +17 -0
  92. package/dist/channel/events/onChannelCreated.d.ts.map +1 -0
  93. package/dist/channel/events/onChannelDeleted.d.ts +17 -0
  94. package/dist/channel/events/onChannelDeleted.d.ts.map +1 -0
  95. package/dist/channel/events/onChannelJoined.d.ts +17 -0
  96. package/dist/channel/events/onChannelJoined.d.ts.map +1 -0
  97. package/dist/channel/events/onChannelLeft.d.ts +17 -0
  98. package/dist/channel/events/onChannelLeft.d.ts.map +1 -0
  99. package/dist/channel/events/onChannelUpdated.d.ts +17 -0
  100. package/dist/channel/events/onChannelUpdated.d.ts.map +1 -0
  101. package/dist/channel/events/onMemberAdded.d.ts +17 -0
  102. package/dist/channel/events/onMemberAdded.d.ts.map +1 -0
  103. package/dist/channel/events/onMemberRemoved.d.ts +17 -0
  104. package/dist/channel/events/onMemberRemoved.d.ts.map +1 -0
  105. package/dist/channel/observers/index.d.ts +2 -0
  106. package/dist/channel/observers/index.d.ts.map +1 -0
  107. package/dist/channel/observers/observeChannel.d.ts +20 -0
  108. package/dist/channel/observers/observeChannel.d.ts.map +1 -0
  109. package/dist/client/api/activeClient.d.ts +17 -0
  110. package/dist/client/api/activeClient.d.ts.map +1 -0
  111. package/dist/client/api/clearCache.d.ts +15 -0
  112. package/dist/client/api/clearCache.d.ts.map +1 -0
  113. package/dist/client/api/connectClient.d.ts +26 -0
  114. package/dist/client/api/connectClient.d.ts.map +1 -0
  115. package/dist/client/api/createClient.d.ts +17 -0
  116. package/dist/client/api/createClient.d.ts.map +1 -0
  117. package/dist/client/api/disconnectClient.d.ts +16 -0
  118. package/dist/client/api/disconnectClient.d.ts.map +1 -0
  119. package/dist/client/api/enableCache.d.ts +15 -0
  120. package/dist/client/api/enableCache.d.ts.map +1 -0
  121. package/dist/client/api/getToken.d.ts +19 -0
  122. package/dist/client/api/getToken.d.ts.map +1 -0
  123. package/dist/client/api/index.d.ts +8 -0
  124. package/dist/client/api/index.d.ts.map +1 -0
  125. package/dist/client/api/isConnected.d.ts +14 -0
  126. package/dist/client/api/isConnected.d.ts.map +1 -0
  127. package/dist/client/events/index.d.ts +2 -0
  128. package/dist/client/events/index.d.ts.map +1 -0
  129. package/dist/client/events/onClientDisconnected.d.ts +17 -0
  130. package/dist/client/events/onClientDisconnected.d.ts.map +1 -0
  131. package/dist/comment/api/createComment.d.ts +16 -0
  132. package/dist/comment/api/createComment.d.ts.map +1 -0
  133. package/dist/comment/api/deleteComment.d.ts +16 -0
  134. package/dist/comment/api/deleteComment.d.ts.map +1 -0
  135. package/dist/comment/api/getComment.d.ts +32 -0
  136. package/dist/comment/api/getComment.d.ts.map +1 -0
  137. package/dist/comment/api/getComments.d.ts +32 -0
  138. package/dist/comment/api/getComments.d.ts.map +1 -0
  139. package/dist/comment/api/index.d.ts +7 -0
  140. package/dist/comment/api/index.d.ts.map +1 -0
  141. package/dist/comment/api/queryComments.d.ts +53 -0
  142. package/dist/comment/api/queryComments.d.ts.map +1 -0
  143. package/dist/comment/api/updateComment.d.ts +19 -0
  144. package/dist/comment/api/updateComment.d.ts.map +1 -0
  145. package/dist/comment/events/index.d.ts +4 -0
  146. package/dist/comment/events/index.d.ts.map +1 -0
  147. package/dist/comment/events/onCommentCreated.d.ts +17 -0
  148. package/dist/comment/events/onCommentCreated.d.ts.map +1 -0
  149. package/dist/comment/events/onCommentDeleted.d.ts +17 -0
  150. package/dist/comment/events/onCommentDeleted.d.ts.map +1 -0
  151. package/dist/comment/events/onCommentUpdated.d.ts +17 -0
  152. package/dist/comment/events/onCommentUpdated.d.ts.map +1 -0
  153. package/dist/comment/observers/index.d.ts +3 -0
  154. package/dist/comment/observers/index.d.ts.map +1 -0
  155. package/dist/comment/observers/observeComment.d.ts +20 -0
  156. package/dist/comment/observers/observeComment.d.ts.map +1 -0
  157. package/dist/comment/observers/observeComments.d.ts +22 -0
  158. package/dist/comment/observers/observeComments.d.ts.map +1 -0
  159. package/dist/community/api/addCommunityMembers.d.ts +17 -0
  160. package/dist/community/api/addCommunityMembers.d.ts.map +1 -0
  161. package/dist/community/api/addCommunityMembersRole.d.ts +18 -0
  162. package/dist/community/api/addCommunityMembersRole.d.ts.map +1 -0
  163. package/dist/community/api/createCommunity.d.ts +20 -0
  164. package/dist/community/api/createCommunity.d.ts.map +1 -0
  165. package/dist/community/api/deleteCommunity.d.ts +16 -0
  166. package/dist/community/api/deleteCommunity.d.ts.map +1 -0
  167. package/dist/community/api/getCommunities.d.ts +32 -0
  168. package/dist/community/api/getCommunities.d.ts.map +1 -0
  169. package/dist/community/api/getCommunity.d.ts +32 -0
  170. package/dist/community/api/getCommunity.d.ts.map +1 -0
  171. package/dist/community/api/index.d.ts +14 -0
  172. package/dist/community/api/index.d.ts.map +1 -0
  173. package/dist/community/api/joinCommunity.d.ts +16 -0
  174. package/dist/community/api/joinCommunity.d.ts.map +1 -0
  175. package/dist/community/api/leaveCommunity.d.ts +16 -0
  176. package/dist/community/api/leaveCommunity.d.ts.map +1 -0
  177. package/dist/community/api/queryCommunities.d.ts +46 -0
  178. package/dist/community/api/queryCommunities.d.ts.map +1 -0
  179. package/dist/community/api/queryCommunityMembers.d.ts +42 -0
  180. package/dist/community/api/queryCommunityMembers.d.ts.map +1 -0
  181. package/dist/community/api/removeCommunityMembers.d.ts +17 -0
  182. package/dist/community/api/removeCommunityMembers.d.ts.map +1 -0
  183. package/dist/community/api/removeCommunityMembersRole.d.ts +18 -0
  184. package/dist/community/api/removeCommunityMembersRole.d.ts.map +1 -0
  185. package/dist/community/api/updateCommunity.d.ts +17 -0
  186. package/dist/community/api/updateCommunity.d.ts.map +1 -0
  187. package/dist/community/events/index.d.ts +6 -0
  188. package/dist/community/events/index.d.ts.map +1 -0
  189. package/dist/community/events/onCommunityCreated.d.ts +17 -0
  190. package/dist/community/events/onCommunityCreated.d.ts.map +1 -0
  191. package/dist/community/events/onCommunityDeleted.d.ts +17 -0
  192. package/dist/community/events/onCommunityDeleted.d.ts.map +1 -0
  193. package/dist/community/events/onCommunityJoined.d.ts +17 -0
  194. package/dist/community/events/onCommunityJoined.d.ts.map +1 -0
  195. package/dist/community/events/onCommunityLeft.d.ts +17 -0
  196. package/dist/community/events/onCommunityLeft.d.ts.map +1 -0
  197. package/dist/community/events/onCommunityUpdated.d.ts +17 -0
  198. package/dist/community/events/onCommunityUpdated.d.ts.map +1 -0
  199. package/dist/community/observers/index.d.ts +2 -0
  200. package/dist/community/observers/index.d.ts.map +1 -0
  201. package/dist/community/observers/observeCommunity.d.ts +20 -0
  202. package/dist/community/observers/observeCommunity.d.ts.map +1 -0
  203. package/dist/core/cache/drop.d.ts +11 -0
  204. package/dist/core/cache/drop.d.ts.map +1 -0
  205. package/dist/core/cache/index.d.ts +19 -0
  206. package/dist/core/cache/index.d.ts.map +1 -0
  207. package/dist/core/cache/ingest.d.ts +10 -0
  208. package/dist/core/cache/ingest.d.ts.map +1 -0
  209. package/dist/core/cache/merge.d.ts +10 -0
  210. package/dist/core/cache/merge.d.ts.map +1 -0
  211. package/dist/core/cache/mutate.d.ts +10 -0
  212. package/dist/core/cache/mutate.d.ts.map +1 -0
  213. package/dist/core/cache/pull.d.ts +11 -0
  214. package/dist/core/cache/pull.d.ts.map +1 -0
  215. package/dist/core/cache/push.d.ts +10 -0
  216. package/dist/core/cache/push.d.ts.map +1 -0
  217. package/dist/core/cache/sync.d.ts +10 -0
  218. package/dist/core/cache/sync.d.ts.map +1 -0
  219. package/dist/core/debug.d.ts +15 -0
  220. package/dist/core/debug.d.ts.map +1 -0
  221. package/dist/core/device.d.ts +7 -0
  222. package/dist/core/device.d.ts.map +1 -0
  223. package/dist/core/errors.d.ts +59 -0
  224. package/dist/core/errors.d.ts.map +1 -0
  225. package/dist/core/events.d.ts +33 -0
  226. package/dist/core/events.d.ts.map +1 -0
  227. package/dist/core/model/idResolvers.d.ts +20 -0
  228. package/dist/core/model/idResolvers.d.ts.map +1 -0
  229. package/dist/core/model/identifyModel.d.ts +8 -0
  230. package/dist/core/model/identifyModel.d.ts.map +1 -0
  231. package/dist/core/model/index.d.ts +4 -0
  232. package/dist/core/model/index.d.ts.map +1 -0
  233. package/dist/core/model/toRecord.d.ts +10 -0
  234. package/dist/core/model/toRecord.d.ts.map +1 -0
  235. package/dist/core/query/decorate.d.ts +23 -0
  236. package/dist/core/query/decorate.d.ts.map +1 -0
  237. package/dist/core/query/filtering.d.ts +12 -0
  238. package/dist/core/query/filtering.d.ts.map +1 -0
  239. package/dist/core/query/index.d.ts +6 -0
  240. package/dist/core/query/index.d.ts.map +1 -0
  241. package/dist/core/query/paging.d.ts +58 -0
  242. package/dist/core/query/paging.d.ts.map +1 -0
  243. package/dist/core/query/query.d.ts +121 -0
  244. package/dist/core/query/query.d.ts.map +1 -0
  245. package/dist/core/query/sorting.d.ts +39 -0
  246. package/dist/core/query/sorting.d.ts.map +1 -0
  247. package/dist/core/stores/index.d.ts +3 -0
  248. package/dist/core/stores/index.d.ts.map +1 -0
  249. package/dist/core/stores/memory.d.ts +30 -0
  250. package/dist/core/stores/memory.d.ts.map +1 -0
  251. package/dist/core/stores/persistent.d.ts +13 -0
  252. package/dist/core/stores/persistent.d.ts.map +1 -0
  253. package/dist/core/transports.d.ts +49 -0
  254. package/dist/core/transports.d.ts.map +1 -0
  255. package/dist/core/uuid.d.ts +2 -0
  256. package/dist/core/uuid.d.ts.map +1 -0
  257. package/dist/feed/api/index.d.ts +2 -0
  258. package/dist/feed/api/index.d.ts.map +1 -0
  259. package/dist/feed/api/queryGlobalFeed.d.ts +23 -0
  260. package/dist/feed/api/queryGlobalFeed.d.ts.map +1 -0
  261. package/dist/file/api/createFile.d.ts +16 -0
  262. package/dist/file/api/createFile.d.ts.map +1 -0
  263. package/dist/file/api/deleteFile.d.ts +16 -0
  264. package/dist/file/api/deleteFile.d.ts.map +1 -0
  265. package/dist/file/api/fileUrlWithSize.d.ts +9 -0
  266. package/dist/file/api/fileUrlWithSize.d.ts.map +1 -0
  267. package/dist/file/api/getFile.d.ts +32 -0
  268. package/dist/file/api/getFile.d.ts.map +1 -0
  269. package/dist/file/api/index.d.ts +5 -0
  270. package/dist/file/api/index.d.ts.map +1 -0
  271. package/dist/file/observers/index.d.ts +2 -0
  272. package/dist/file/observers/index.d.ts.map +1 -0
  273. package/dist/file/observers/observeFile.d.ts +20 -0
  274. package/dist/file/observers/observeFile.d.ts.map +1 -0
  275. package/dist/index.cjs.js +4884 -0
  276. package/dist/index.d.ts +32 -0
  277. package/dist/index.d.ts.map +1 -0
  278. package/dist/index.esm.js +4734 -0
  279. package/dist/index.umd.js +4880 -0
  280. package/dist/message/api/createMessage.d.ts +38 -0
  281. package/dist/message/api/createMessage.d.ts.map +1 -0
  282. package/dist/message/api/deleteMessage.d.ts +32 -0
  283. package/dist/message/api/deleteMessage.d.ts.map +1 -0
  284. package/dist/message/api/getMessage.d.ts +32 -0
  285. package/dist/message/api/getMessage.d.ts.map +1 -0
  286. package/dist/message/api/getMessages.d.ts +32 -0
  287. package/dist/message/api/getMessages.d.ts.map +1 -0
  288. package/dist/message/api/index.d.ts +7 -0
  289. package/dist/message/api/index.d.ts.map +1 -0
  290. package/dist/message/api/queryMessages.d.ts +55 -0
  291. package/dist/message/api/queryMessages.d.ts.map +1 -0
  292. package/dist/message/api/updateMessage.d.ts +38 -0
  293. package/dist/message/api/updateMessage.d.ts.map +1 -0
  294. package/dist/message/events/index.d.ts +4 -0
  295. package/dist/message/events/index.d.ts.map +1 -0
  296. package/dist/message/events/onMessageCreated.d.ts +17 -0
  297. package/dist/message/events/onMessageCreated.d.ts.map +1 -0
  298. package/dist/message/events/onMessageDeleted.d.ts +17 -0
  299. package/dist/message/events/onMessageDeleted.d.ts.map +1 -0
  300. package/dist/message/events/onMessageUpdated.d.ts +17 -0
  301. package/dist/message/events/onMessageUpdated.d.ts.map +1 -0
  302. package/dist/message/observers/index.d.ts +3 -0
  303. package/dist/message/observers/index.d.ts.map +1 -0
  304. package/dist/message/observers/observeMessage.d.ts +22 -0
  305. package/dist/message/observers/observeMessage.d.ts.map +1 -0
  306. package/dist/message/observers/observeMessages.d.ts +19 -0
  307. package/dist/message/observers/observeMessages.d.ts.map +1 -0
  308. package/dist/post/api/createPost.d.ts +21 -0
  309. package/dist/post/api/createPost.d.ts.map +1 -0
  310. package/dist/post/api/deletePost.d.ts +16 -0
  311. package/dist/post/api/deletePost.d.ts.map +1 -0
  312. package/dist/post/api/getPost.d.ts +32 -0
  313. package/dist/post/api/getPost.d.ts.map +1 -0
  314. package/dist/post/api/getPosts.d.ts +32 -0
  315. package/dist/post/api/getPosts.d.ts.map +1 -0
  316. package/dist/post/api/index.d.ts +7 -0
  317. package/dist/post/api/index.d.ts.map +1 -0
  318. package/dist/post/api/queryPosts.d.ts +45 -0
  319. package/dist/post/api/queryPosts.d.ts.map +1 -0
  320. package/dist/post/api/updatePost.d.ts +19 -0
  321. package/dist/post/api/updatePost.d.ts.map +1 -0
  322. package/dist/post/events/index.d.ts +4 -0
  323. package/dist/post/events/index.d.ts.map +1 -0
  324. package/dist/post/events/onPostCreated.d.ts +17 -0
  325. package/dist/post/events/onPostCreated.d.ts.map +1 -0
  326. package/dist/post/events/onPostDeleted.d.ts +17 -0
  327. package/dist/post/events/onPostDeleted.d.ts.map +1 -0
  328. package/dist/post/events/onPostUpdated.d.ts +17 -0
  329. package/dist/post/events/onPostUpdated.d.ts.map +1 -0
  330. package/dist/post/observers/index.d.ts +3 -0
  331. package/dist/post/observers/index.d.ts.map +1 -0
  332. package/dist/post/observers/observePost.d.ts +20 -0
  333. package/dist/post/observers/observePost.d.ts.map +1 -0
  334. package/dist/post/observers/observePosts.d.ts +25 -0
  335. package/dist/post/observers/observePosts.d.ts.map +1 -0
  336. package/dist/reaction/api/addReaction.d.ts +36 -0
  337. package/dist/reaction/api/addReaction.d.ts.map +1 -0
  338. package/dist/reaction/api/index.d.ts +3 -0
  339. package/dist/reaction/api/index.d.ts.map +1 -0
  340. package/dist/reaction/api/removeReaction.d.ts +36 -0
  341. package/dist/reaction/api/removeReaction.d.ts.map +1 -0
  342. package/dist/reaction/events/index.d.ts +2 -0
  343. package/dist/reaction/events/index.d.ts.map +1 -0
  344. package/dist/reaction/events/onReactionAdded.d.ts +17 -0
  345. package/dist/reaction/events/onReactionAdded.d.ts.map +1 -0
  346. package/dist/reaction/events/onReactionRemoved.d.ts +17 -0
  347. package/dist/reaction/events/onReactionRemoved.d.ts.map +1 -0
  348. package/dist/reaction/utils/dispatchReactable.d.ts +3 -0
  349. package/dist/reaction/utils/dispatchReactable.d.ts.map +1 -0
  350. package/dist/reaction/utils/fetchReference.d.ts +3 -0
  351. package/dist/reaction/utils/fetchReference.d.ts.map +1 -0
  352. package/dist/reaction/utils/index.d.ts +3 -0
  353. package/dist/reaction/utils/index.d.ts.map +1 -0
  354. package/dist/report/api/createReport.d.ts +16 -0
  355. package/dist/report/api/createReport.d.ts.map +1 -0
  356. package/dist/report/api/deleteReport.d.ts +16 -0
  357. package/dist/report/api/deleteReport.d.ts.map +1 -0
  358. package/dist/report/api/index.d.ts +4 -0
  359. package/dist/report/api/index.d.ts.map +1 -0
  360. package/dist/report/api/isReportedByMe.d.ts +16 -0
  361. package/dist/report/api/isReportedByMe.d.ts.map +1 -0
  362. package/dist/report/constants/referenceTypes.d.ts +24 -0
  363. package/dist/report/constants/referenceTypes.d.ts.map +1 -0
  364. package/dist/role/api/getRole.d.ts +32 -0
  365. package/dist/role/api/getRole.d.ts.map +1 -0
  366. package/dist/role/api/index.d.ts +3 -0
  367. package/dist/role/api/index.d.ts.map +1 -0
  368. package/dist/role/api/queryRoles.d.ts +42 -0
  369. package/dist/role/api/queryRoles.d.ts.map +1 -0
  370. package/dist/stream/api/createStream.d.ts +18 -0
  371. package/dist/stream/api/createStream.d.ts.map +1 -0
  372. package/dist/stream/api/deleteStream.d.ts +16 -0
  373. package/dist/stream/api/deleteStream.d.ts.map +1 -0
  374. package/dist/stream/api/getStream.d.ts +12 -0
  375. package/dist/stream/api/getStream.d.ts.map +1 -0
  376. package/dist/stream/api/index.d.ts +6 -0
  377. package/dist/stream/api/index.d.ts.map +1 -0
  378. package/dist/stream/api/queryStreams.d.ts +23 -0
  379. package/dist/stream/api/queryStreams.d.ts.map +1 -0
  380. package/dist/stream/api/updateStream.d.ts +17 -0
  381. package/dist/stream/api/updateStream.d.ts.map +1 -0
  382. package/dist/stream/events/index.d.ts +4 -0
  383. package/dist/stream/events/index.d.ts.map +1 -0
  384. package/dist/stream/events/onStreamRecorded.d.ts +17 -0
  385. package/dist/stream/events/onStreamRecorded.d.ts.map +1 -0
  386. package/dist/stream/events/onStreamStarted.d.ts +17 -0
  387. package/dist/stream/events/onStreamStarted.d.ts.map +1 -0
  388. package/dist/stream/events/onStreamStopped.d.ts +17 -0
  389. package/dist/stream/events/onStreamStopped.d.ts.map +1 -0
  390. package/dist/user/api/getUser.d.ts +32 -0
  391. package/dist/user/api/getUser.d.ts.map +1 -0
  392. package/dist/user/api/getUsers.d.ts +32 -0
  393. package/dist/user/api/getUsers.d.ts.map +1 -0
  394. package/dist/user/api/index.d.ts +5 -0
  395. package/dist/user/api/index.d.ts.map +1 -0
  396. package/dist/user/api/queryUsers.d.ts +43 -0
  397. package/dist/user/api/queryUsers.d.ts.map +1 -0
  398. package/dist/user/api/updateUser.d.ts +17 -0
  399. package/dist/user/api/updateUser.d.ts.map +1 -0
  400. package/dist/user/events/index.d.ts +2 -0
  401. package/dist/user/events/index.d.ts.map +1 -0
  402. package/dist/user/events/onUserUpdated.d.ts +17 -0
  403. package/dist/user/events/onUserUpdated.d.ts.map +1 -0
  404. package/dist/user/observers/index.d.ts +2 -0
  405. package/dist/user/observers/index.d.ts.map +1 -0
  406. package/dist/user/observers/observeUser.d.ts +19 -0
  407. package/dist/user/observers/observeUser.d.ts.map +1 -0
  408. package/package.json +59 -0
  409. package/rollup.config.js +41 -0
  410. package/src/@types/core/cache.ts +22 -0
  411. package/src/@types/core/errors.ts +34 -0
  412. package/src/@types/core/events.ts +60 -0
  413. package/src/@types/core/model.ts +51 -0
  414. package/src/@types/core/payload.ts +102 -0
  415. package/src/@types/core/permissions.ts +76 -0
  416. package/src/@types/core/query.ts +95 -0
  417. package/src/@types/core/store.ts +52 -0
  418. package/src/@types/core/transport.ts +32 -0
  419. package/src/@types/domains/category.ts +15 -0
  420. package/src/@types/domains/channel.ts +38 -0
  421. package/src/@types/domains/client.ts +36 -0
  422. package/src/@types/domains/comment.ts +26 -0
  423. package/src/@types/domains/community.ts +35 -0
  424. package/src/@types/domains/content.ts +35 -0
  425. package/src/@types/domains/feed.ts +16 -0
  426. package/src/@types/domains/file.ts +41 -0
  427. package/src/@types/domains/group.ts +38 -0
  428. package/src/@types/domains/message.ts +27 -0
  429. package/src/@types/domains/partials.ts +52 -0
  430. package/src/@types/domains/post.ts +31 -0
  431. package/src/@types/domains/reaction.ts +30 -0
  432. package/src/@types/domains/stream.ts +57 -0
  433. package/src/@types/domains/user.ts +18 -0
  434. package/src/@types/global.ts +25 -0
  435. package/src/@types/index.ts +31 -0
  436. package/src/category/api/getCategory.ts +35 -0
  437. package/src/category/api/index.ts +2 -0
  438. package/src/category/api/queryCategories.ts +49 -0
  439. package/src/channel/api/addChannelMembers.ts +45 -0
  440. package/src/channel/api/addChannelMembersRole.ts +43 -0
  441. package/src/channel/api/createChannel.ts +37 -0
  442. package/src/channel/api/deleteChannel.ts +34 -0
  443. package/src/channel/api/getChannel.ts +59 -0
  444. package/src/channel/api/getChannels.ts +63 -0
  445. package/src/channel/api/index.ts +18 -0
  446. package/src/channel/api/joinChannel.ts +38 -0
  447. package/src/channel/api/leaveChannel.ts +38 -0
  448. package/src/channel/api/queryChannelMembers.ts +79 -0
  449. package/src/channel/api/queryChannels.ts +89 -0
  450. package/src/channel/api/removeChannelMembers.ts +45 -0
  451. package/src/channel/api/removeChannelMembersRole.ts +43 -0
  452. package/src/channel/api/updateChannel.ts +38 -0
  453. package/src/channel/events/index.ts +6 -0
  454. package/src/channel/events/onChannelCreated.ts +37 -0
  455. package/src/channel/events/onChannelDeleted.ts +37 -0
  456. package/src/channel/events/onChannelJoined.ts +37 -0
  457. package/src/channel/events/onChannelLeft.ts +37 -0
  458. package/src/channel/events/onChannelUpdated.ts +37 -0
  459. package/src/channel/events/onMemberAdded.ts +37 -0
  460. package/src/channel/events/onMemberRemoved.ts +37 -0
  461. package/src/channel/observers/index.ts +1 -0
  462. package/src/channel/observers/observeChannel.ts +80 -0
  463. package/src/client/api/activeClient.ts +33 -0
  464. package/src/client/api/clearCache.ts +23 -0
  465. package/src/client/api/connectClient.ts +63 -0
  466. package/src/client/api/createClient.ts +56 -0
  467. package/src/client/api/disconnectClient.ts +31 -0
  468. package/src/client/api/enableCache.ts +35 -0
  469. package/src/client/api/getToken.ts +35 -0
  470. package/src/client/api/index.ts +7 -0
  471. package/src/client/api/isConnected.ts +24 -0
  472. package/src/client/events/index.ts +1 -0
  473. package/src/client/events/onClientDisconnected.ts +29 -0
  474. package/src/comment/api/createComment.ts +43 -0
  475. package/src/comment/api/deleteComment.ts +40 -0
  476. package/src/comment/api/getComment.ts +59 -0
  477. package/src/comment/api/getComments.ts +63 -0
  478. package/src/comment/api/index.ts +7 -0
  479. package/src/comment/api/queryComments.ts +169 -0
  480. package/src/comment/api/updateComment.ts +41 -0
  481. package/src/comment/events/index.ts +3 -0
  482. package/src/comment/events/onCommentCreated.ts +39 -0
  483. package/src/comment/events/onCommentDeleted.ts +39 -0
  484. package/src/comment/events/onCommentUpdated.ts +39 -0
  485. package/src/comment/observers/index.ts +2 -0
  486. package/src/comment/observers/observeComment.ts +73 -0
  487. package/src/comment/observers/observeComments.ts +61 -0
  488. package/src/community/api/addCommunityMembers.ts +46 -0
  489. package/src/community/api/addCommunityMembersRole.ts +43 -0
  490. package/src/community/api/createCommunity.ts +43 -0
  491. package/src/community/api/deleteCommunity.ts +35 -0
  492. package/src/community/api/getCommunities.ts +63 -0
  493. package/src/community/api/getCommunity.ts +58 -0
  494. package/src/community/api/index.ts +17 -0
  495. package/src/community/api/joinCommunity.ts +41 -0
  496. package/src/community/api/leaveCommunity.ts +41 -0
  497. package/src/community/api/queryCommunities.ts +92 -0
  498. package/src/community/api/queryCommunityMembers.ts +78 -0
  499. package/src/community/api/removeCommunityMembers.ts +46 -0
  500. package/src/community/api/removeCommunityMembersRole.ts +43 -0
  501. package/src/community/api/updateCommunity.ts +40 -0
  502. package/src/community/events/index.ts +6 -0
  503. package/src/community/events/onCommunityCreated.ts +37 -0
  504. package/src/community/events/onCommunityDeleted.ts +37 -0
  505. package/src/community/events/onCommunityJoined.ts +37 -0
  506. package/src/community/events/onCommunityLeft.ts +37 -0
  507. package/src/community/events/onCommunityUpdated.ts +37 -0
  508. package/src/community/observers/index.ts +1 -0
  509. package/src/community/observers/observeCommunity.ts +74 -0
  510. package/src/core/cache/drop.ts +24 -0
  511. package/src/core/cache/index.ts +24 -0
  512. package/src/core/cache/ingest.ts +24 -0
  513. package/src/core/cache/merge.ts +19 -0
  514. package/src/core/cache/mutate.ts +25 -0
  515. package/src/core/cache/pull.ts +31 -0
  516. package/src/core/cache/push.ts +41 -0
  517. package/src/core/cache/sync.ts +41 -0
  518. package/src/core/debug.ts +26 -0
  519. package/src/core/device.ts +38 -0
  520. package/src/core/errors.ts +85 -0
  521. package/src/core/events.ts +93 -0
  522. package/src/core/model/idResolvers.ts +66 -0
  523. package/src/core/model/identifyModel.ts +32 -0
  524. package/src/core/model/index.ts +3 -0
  525. package/src/core/model/toRecord.ts +11 -0
  526. package/src/core/query/decorate.ts +64 -0
  527. package/src/core/query/filtering.ts +17 -0
  528. package/src/core/query/index.ts +5 -0
  529. package/src/core/query/paging.ts +166 -0
  530. package/src/core/query/query.ts +300 -0
  531. package/src/core/query/sorting.ts +50 -0
  532. package/src/core/stores/index.ts +2 -0
  533. package/src/core/stores/memory.ts +59 -0
  534. package/src/core/stores/persistent.ts +63 -0
  535. package/src/core/transports.ts +157 -0
  536. package/src/core/uuid.ts +2 -0
  537. package/src/feed/api/index.ts +1 -0
  538. package/src/feed/api/queryGlobalFeed.ts +50 -0
  539. package/src/file/api/createFile.ts +51 -0
  540. package/src/file/api/deleteFile.ts +35 -0
  541. package/src/file/api/fileUrlWithSize.ts +13 -0
  542. package/src/file/api/getFile.ts +60 -0
  543. package/src/file/api/index.ts +4 -0
  544. package/src/file/observers/index.ts +1 -0
  545. package/src/file/observers/observeFile.ts +57 -0
  546. package/src/index.ts +55 -0
  547. package/src/message/api/createMessage.ts +90 -0
  548. package/src/message/api/deleteMessage.ts +75 -0
  549. package/src/message/api/getMessage.ts +60 -0
  550. package/src/message/api/getMessages.ts +63 -0
  551. package/src/message/api/index.ts +6 -0
  552. package/src/message/api/queryMessages.ts +145 -0
  553. package/src/message/api/updateMessage.ts +79 -0
  554. package/src/message/events/index.ts +3 -0
  555. package/src/message/events/onMessageCreated.ts +39 -0
  556. package/src/message/events/onMessageDeleted.ts +39 -0
  557. package/src/message/events/onMessageUpdated.ts +39 -0
  558. package/src/message/observers/index.ts +2 -0
  559. package/src/message/observers/observeMessage.ts +76 -0
  560. package/src/message/observers/observeMessages.ts +60 -0
  561. package/src/post/api/createPost.ts +45 -0
  562. package/src/post/api/deletePost.ts +43 -0
  563. package/src/post/api/getPost.ts +60 -0
  564. package/src/post/api/getPosts.ts +63 -0
  565. package/src/post/api/index.ts +7 -0
  566. package/src/post/api/queryPosts.ts +86 -0
  567. package/src/post/api/updatePost.ts +42 -0
  568. package/src/post/events/index.ts +3 -0
  569. package/src/post/events/onPostCreated.ts +39 -0
  570. package/src/post/events/onPostDeleted.ts +39 -0
  571. package/src/post/events/onPostUpdated.ts +39 -0
  572. package/src/post/observers/index.ts +2 -0
  573. package/src/post/observers/observePost.ts +72 -0
  574. package/src/post/observers/observePosts.ts +66 -0
  575. package/src/reaction/api/addReaction.ts +84 -0
  576. package/src/reaction/api/index.ts +2 -0
  577. package/src/reaction/api/removeReaction.ts +84 -0
  578. package/src/reaction/events/index.ts +1 -0
  579. package/src/reaction/events/onReactionAdded.ts +43 -0
  580. package/src/reaction/events/onReactionRemoved.ts +41 -0
  581. package/src/reaction/utils/dispatchReactable.ts +19 -0
  582. package/src/reaction/utils/fetchReference.ts +18 -0
  583. package/src/reaction/utils/index.ts +2 -0
  584. package/src/report/api/createReport.ts +40 -0
  585. package/src/report/api/deleteReport.ts +40 -0
  586. package/src/report/api/index.ts +4 -0
  587. package/src/report/api/isReportedByMe.ts +37 -0
  588. package/src/report/constants/referenceTypes.ts +22 -0
  589. package/src/role/api/getRole.ts +53 -0
  590. package/src/role/api/index.ts +2 -0
  591. package/src/role/api/queryRoles.ts +79 -0
  592. package/src/stream/api/createStream.ts +33 -0
  593. package/src/stream/api/deleteStream.ts +38 -0
  594. package/src/stream/api/getStream.ts +29 -0
  595. package/src/stream/api/index.ts +7 -0
  596. package/src/stream/api/queryStreams.ts +44 -0
  597. package/src/stream/api/updateStream.ts +36 -0
  598. package/src/stream/events/index.ts +3 -0
  599. package/src/stream/events/onStreamRecorded.ts +39 -0
  600. package/src/stream/events/onStreamStarted.ts +39 -0
  601. package/src/stream/events/onStreamStopped.ts +39 -0
  602. package/src/user/api/getUser.ts +59 -0
  603. package/src/user/api/getUsers.ts +60 -0
  604. package/src/user/api/index.ts +5 -0
  605. package/src/user/api/queryUsers.ts +88 -0
  606. package/src/user/api/updateUser.ts +44 -0
  607. package/src/user/events/index.ts +1 -0
  608. package/src/user/events/onUserUpdated.ts +39 -0
  609. package/src/user/observers/index.ts +1 -0
  610. package/src/user/observers/observeUser.ts +64 -0
  611. package/tsconfig.json +28 -0
@@ -0,0 +1,60 @@
1
+ import { getActiveClient } from '~/client/api'
2
+ import { ingestInCache, pullFromCache } from '~/core/cache'
3
+ import { decoratePayload } from '~/core/query'
4
+
5
+ import { getMessages } from './getMessages'
6
+
7
+ /**
8
+ * ```js
9
+ * import { getMessage } from '@amityco/ts-sdk'
10
+ * const message = await getMessage('foobar')
11
+ * ```
12
+ *
13
+ * Fetches a {@link Amity.Message} object
14
+ *
15
+ * @param messageId the ID of the {@link Amity.Message} to fetch
16
+ * @returns the associated {@link Amity.Message} object
17
+ *
18
+ * @category Message API
19
+ * @async
20
+ */
21
+ export const getMessage = async (
22
+ messageId: Amity.Message['messageId'],
23
+ ) => {
24
+ const client = getActiveClient()
25
+ client.log('message/getMessage', messageId)
26
+
27
+ // API-FIX: endpoint should not be /list, parameters should be querystring.
28
+ const { data } = await client.http.get<Amity.MessagePayload>(
29
+ `/api/v3/messages/${messageId}`,
30
+ )
31
+
32
+ decoratePayload(data)
33
+ ingestInCache(data)
34
+
35
+ const { messages } = data
36
+ return messages.find(message => message.messageId === messageId)!
37
+ }
38
+
39
+ /**
40
+ * ```js
41
+ * import { getMessage } from '@amityco/ts-sdk'
42
+ * const message = getMessage.locally('foobar')
43
+ * ```
44
+ *
45
+ * Fetches a {@link Amity.Message} object
46
+ *
47
+ * @param messageId the ID of the {@link Amity.Message} to fetch
48
+ * @returns the associated {@link Amity.Message} object
49
+ *
50
+ * @category Message API
51
+ */
52
+ getMessage.locally = (
53
+ messageId: Amity.Message['messageId'],
54
+ ) => {
55
+ const client = getActiveClient()
56
+ client.log('message/getMessage.locally', messageId)
57
+
58
+ const [message] = pullFromCache('message', messageId) ?? []
59
+ return message
60
+ }
@@ -0,0 +1,63 @@
1
+ import { getActiveClient } from '~/client/api'
2
+
3
+ import { decoratePayload } from '~/core/query'
4
+ import { ingestInCache, pullFromCache } from '~/core/cache'
5
+ import { toRecord } from '~/core/model'
6
+
7
+ /**
8
+ * ```js
9
+ * import { getMessages } from '@amityco/ts-sdk'
10
+ * const messages = await getMessages(['foo', 'bar'])
11
+ * ```
12
+ *
13
+ * Fetches a collection of {@link Amity.Message} objects
14
+ *
15
+ * @param messageIds the IDs of the {@link Amity.Message} to fetch
16
+ * @returns the associated collection of {@link Amity.Message} objects
17
+ *
18
+ * @category Message API
19
+ * @async
20
+ */
21
+ export const getMessages = async (
22
+ messageIds: Amity.Message['messageId'][],
23
+ ) => {
24
+ const client = getActiveClient()
25
+ client.log('message/getMessages', messageIds)
26
+
27
+ // API-FIX: endpoint should not be /list, parameters should be querystring.
28
+ const { data } = await client.http.get<Amity.MessagePayload>(
29
+ `/api/v3/messages/list`,
30
+ { params: { messageIds } },
31
+ )
32
+
33
+ decoratePayload(data)
34
+ ingestInCache(data)
35
+
36
+ const { messages } = data
37
+ return toRecord(messages)
38
+ }
39
+
40
+ /**
41
+ * ```js
42
+ * import { getMessages } from '@amityco/ts-sdk'
43
+ * const messages = getMessages.locally(['foo', 'bar']) ?? []
44
+ * ```
45
+ *
46
+ * Fetches a collection of {@link Amity.Message} objects from cache
47
+ *
48
+ * @param messageIds the IDs of the {@link Amity.Message} to fetch
49
+ * @returns the associated collection of {@link Amity.Message} objects
50
+ *
51
+ * @category Message API
52
+ */
53
+ getMessages.locally = (
54
+ messageIds: Amity.Message['messageId'][],
55
+ ) => {
56
+ const client = getActiveClient()
57
+ client.log('message/getMessages.locally', messageIds)
58
+
59
+ const cached = pullFromCache('message', ...messageIds) ?? []
60
+
61
+ if (cached?.length === messageIds.length)
62
+ return toRecord(cached)
63
+ }
@@ -0,0 +1,6 @@
1
+ export * from './getMessage'
2
+ export * from './getMessages'
3
+ export * from './queryMessages'
4
+ export * from './createMessage'
5
+ export * from './updateMessage'
6
+ export * from './deleteMessage'
@@ -0,0 +1,145 @@
1
+ import { getActiveClient } from '~/client/api'
2
+
3
+ import {
4
+ decoratePayload,
5
+ toPage,
6
+ toToken,
7
+ filterByPropEquality,
8
+ sortByChannelSegment,
9
+ } from '~/core/query'
10
+
11
+ import { ingestInCache, pullFromCache } from '~/core/cache'
12
+
13
+ import { toRecord } from '~/core/model'
14
+
15
+ /**
16
+ * ```js
17
+ * import { queryMessages } from '@amityco/ts-sdk'
18
+ * const messages = await queryMessages({ channelId })
19
+ * ```
20
+ *
21
+ * Queries a paginable list of {@link Amity.Message} objects
22
+ *
23
+ * @param query The query parameters
24
+ * @returns A page of {@link Amity.Message} objects
25
+ *
26
+ * @category Message API
27
+ * @async
28
+ */
29
+ export const queryMessages = async (query: {
30
+ channelId: Amity.Channel['channelId']
31
+ type?: Amity.MessageContentType
32
+ parentId?: Amity.Message['parentId']
33
+ filterByParentId?: boolean
34
+ isDeleted?: boolean
35
+ tags?: Amity.Taggable['tags']
36
+ excludeTags?: Amity.Taggable['tags']
37
+ page?: Amity.Page
38
+ }) => {
39
+ const client = getActiveClient()
40
+ client.log('message/queryMessages', query)
41
+
42
+ const { page, ...params } = query ?? {}
43
+
44
+ // API-FIX: parameters should be querystring. (1)
45
+ // API-FIX: backend should answer Amity.Response (2)
46
+ // API-FIX: pagination should not be indexed on channelSegment (3)
47
+ // const { data } = await client.http.get<Amity.Response<Amity.Paged<Amity.MessagePayload>>>(
48
+ const { data } = await client.http.get<Amity.MessagePayload & Amity.Pagination>(
49
+ `/api/v3/messages`, { params: {
50
+ ...params,
51
+ options: {
52
+ token: toToken(page, 'afterbefore'),
53
+ },
54
+ },}
55
+ )
56
+
57
+ // API-FIX: backend should answer Amity.Response (2)
58
+ // const { paging, messages } = unwrapPayload(data)
59
+ const { paging, ...response } = data
60
+
61
+ decoratePayload(response as unknown as Record<string, any[]>)
62
+ ingestInCache(response as unknown as Record<string, any[]>)
63
+
64
+ const { messages } = response
65
+
66
+ const nextPage = toPage(paging.next)
67
+ const prevPage = toPage(paging.previous)
68
+
69
+ return { data: toRecord(messages), nextPage, prevPage }
70
+ }
71
+
72
+ /**
73
+ * ```js
74
+ * import { queryMessages } from '@amityco/ts-sdk'
75
+ * const messages = queryMessages.locally!({ channelId })
76
+ * ```
77
+ *
78
+ * Queries a paginable list of {@link Amity.Message} objects from cache
79
+ *
80
+ * @param query The query parameters
81
+ * @returns A page of {@link Amity.Message} objects
82
+ *
83
+ * @category Message API
84
+ */
85
+ queryMessages.locally = (query: Parameters<typeof queryMessages>[0]) => {
86
+ const client = getActiveClient()
87
+ client.log('message/queryMessages.locally', query)
88
+
89
+ const { channelId, page } = query
90
+
91
+ const [channel] = pullFromCache('channel', channelId) ?? []
92
+
93
+ let messages: Amity.Message<any>[] = pullFromCache('message') ?? []
94
+
95
+ // filter
96
+ messages = filterByPropEquality(messages, 'channelId', channelId)
97
+
98
+ // API-FIX filter by isDeleted doesn't work in backend... srsly wtf... how do they test things???
99
+ // messages = filterByPropEquality(messages, 'isDeleted', query?.isDeleted)
100
+
101
+ // sort
102
+ messages = messages.sort(sortByChannelSegment)
103
+
104
+ // paging
105
+ if (page) {
106
+ // slice
107
+ // API-FIX we can't reuse proper page because the message page is done
108
+ // by channelSegment which is sadly unique to the entire platform.
109
+ // this part is copied and adapted from sliceByPaging function
110
+
111
+ let start: number | undefined = 0
112
+ let end: number | undefined = undefined
113
+
114
+ // next page behavior
115
+ if ('after' in page) {
116
+ start = page.after !== 0
117
+ ? messages.findIndex(message => message.channelSegment === page?.after) + 1
118
+ : 0
119
+
120
+ end = start + page.limit
121
+
122
+ // prev page behavior
123
+ } else if ('before' in page) {
124
+ end = page.before !== 0
125
+ ? messages.findIndex(message => message.channelSegment === page?.before) + 1
126
+ : messages.length - 1
127
+
128
+ start = end > page.limit ? end - page.limit : 0
129
+ }
130
+
131
+ const paged = messages.slice(start, end)
132
+
133
+ messages = paged.length === page.limit ? paged : []
134
+ }
135
+
136
+ const prevPage = messages[0]?.channelSegment > 0
137
+ ? { before: messages[0].channelSegment, limit: page?.limit }
138
+ : undefined
139
+
140
+ const nextPage = messages[messages.length - 1]?.channelSegment < (channel?.messageCount ?? 0)
141
+ ? { after: messages[messages.length - 1].channelSegment, limit: page?.limit }
142
+ : undefined
143
+
144
+ return { data: toRecord(messages), nextPage, prevPage }
145
+ }
@@ -0,0 +1,79 @@
1
+ import { getActiveClient } from '~/client/api'
2
+
3
+ import { decoratePayload } from '~/core/query'
4
+ import { ingestInCache, pullFromCache, pushToCache } from '~/core/cache'
5
+ import { fireEvent } from '~/core/events'
6
+
7
+ /**
8
+ * ```js
9
+ * import { updateMessage } from '@amityco/ts-sdk'
10
+ * const updated = await updateMessage(messageId, {
11
+ * data: { text: 'hello world' }
12
+ * })
13
+ * ```
14
+ *
15
+ * Updates an {@link Amity.Message}
16
+ *
17
+ * @param messageId The ID of the {@link Amity.Message} to edit
18
+ * @param patch The patch data to apply
19
+ * @returns the updated {@link Amity.Message} object
20
+ *
21
+ * @category Message API
22
+ * @async
23
+ */
24
+ export const updateMessage = async (
25
+ messageId: Amity.Message['messageId'],
26
+ patch: Patch<Amity.Message, 'data' | 'metadata'>,
27
+ ) => {
28
+ const client = getActiveClient()
29
+ client.log('user/updateMessage', patch)
30
+
31
+ const { data } = await client.http.put<Amity.MessagePayload>(
32
+ `/api/v3/messages/${messageId}`, patch,
33
+ )
34
+
35
+ decoratePayload(data)
36
+ ingestInCache(data)
37
+ // no need for event, fired by server
38
+
39
+ return data.messages.find(message => message.messageId === messageId)!
40
+ }
41
+
42
+ /**
43
+ * ```js
44
+ * import { updateMessage } from '@amityco/ts-sdk'
45
+ * const updated = updateMessage.locally('foobar', {
46
+ * data: { text: 'hello world' }
47
+ * })
48
+ * ```
49
+ *
50
+ * Updates an {@link Amity.Message} in cache
51
+ *
52
+ * @param messageId The ID of the {@link Amity.Message} to edit
53
+ * @param patch The patch data to apply
54
+ * @returns the updated {@link Amity.Message} object
55
+ *
56
+ * @category Message API
57
+ */
58
+ updateMessage.optimistically = (
59
+ messageId: Amity.Message['messageId'],
60
+ patch: Patch<Amity.Message, 'data' | 'metadata'>,
61
+ ) => {
62
+ const client = getActiveClient()
63
+ client.log('user/updateMessage', patch)
64
+
65
+ const [message] = pullFromCache('message', messageId) ?? []
66
+
67
+ if (!message) return
68
+
69
+ const updated: Amity.Message = {
70
+ ...message,
71
+ ...patch,
72
+ updatedAt: new Date().toISOString(),
73
+ }
74
+
75
+ pushToCache('message', updated)
76
+ fireEvent('v3.message.didUpdate', { messages: [updated] })
77
+
78
+ return updated
79
+ }
@@ -0,0 +1,3 @@
1
+ export * from './onMessageCreated'
2
+ export * from './onMessageUpdated'
3
+ export * from './onMessageDeleted'
@@ -0,0 +1,39 @@
1
+ import { getActiveClient } from '~/client/api'
2
+ import { createEventSubscriber } from '~/core/events'
3
+
4
+ import { decoratePayload } from '~/core/query'
5
+ import { ingestInCache } from '~/core/cache'
6
+
7
+ /**
8
+ * ```js
9
+ * import { onMessageCreated } from '@amityco/ts-sdk'
10
+ * const dispose = onMessageCreated(message => {
11
+ * // ...
12
+ * })
13
+ * ```
14
+ *
15
+ * Fired when an {@link Amity.Message} has been created
16
+ *
17
+ * @param callback The function to call when the event was fired
18
+ * @returns an {@link Amity.Unsubscriber} function to stop listening
19
+ *
20
+ * @category Message Events
21
+ */
22
+ export const onMessageCreated = (
23
+ callback: Amity.Listener<Amity.Message>,
24
+ ): Amity.Unsubscriber => {
25
+ const client = getActiveClient()
26
+
27
+ const filter = (payload: Amity.MessagePayload) => {
28
+ decoratePayload(payload)
29
+ ingestInCache(payload)
30
+ callback(payload.messages[0])
31
+ }
32
+
33
+ return createEventSubscriber(
34
+ client,
35
+ 'message/onMessageCreated',
36
+ 'v3.message.didCreate',
37
+ filter,
38
+ )
39
+ }
@@ -0,0 +1,39 @@
1
+ import { getActiveClient } from '~/client/api'
2
+ import { createEventSubscriber } from '~/core/events'
3
+
4
+ import { decoratePayload } from '~/core/query'
5
+ import { ingestInCache } from '~/core/cache'
6
+
7
+ /**
8
+ * ```js
9
+ * import { onMessageDeleted } from '@amityco/ts-sdk'
10
+ * const dispose = onMessageDeleted(message => {
11
+ * // ...
12
+ * })
13
+ * ```
14
+ *
15
+ * Fired when an {@link Amity.Message} was deleted
16
+ *
17
+ * @param callback The function to call when the event was fired
18
+ * @returns an {@link Amity.Unsubscriber} function to stop listening
19
+ *
20
+ * @category Message Events
21
+ */
22
+ export const onMessageDeleted = (
23
+ callback: Amity.Listener<Amity.Message>,
24
+ ): Amity.Unsubscriber => {
25
+ const client = getActiveClient()
26
+
27
+ const filter = (payload: Amity.MessagePayload) => {
28
+ decoratePayload(payload)
29
+ ingestInCache(payload)
30
+ callback(payload.messages[0])
31
+ }
32
+
33
+ return createEventSubscriber(
34
+ client,
35
+ 'message/onMessageDeleted',
36
+ 'v3.message.didDelete',
37
+ filter,
38
+ )
39
+ }
@@ -0,0 +1,39 @@
1
+ import { getActiveClient } from '~/client/api'
2
+ import { createEventSubscriber } from '~/core/events'
3
+
4
+ import { decoratePayload } from '~/core/query'
5
+ import { ingestInCache } from '~/core/cache'
6
+
7
+ /**
8
+ * ```js
9
+ * import { onMessageUpdated } from '@amityco/ts-sdk'
10
+ * const dispose = onMessageUpdated(message => {
11
+ * // ...
12
+ * })
13
+ * ```
14
+ *
15
+ * Fired when an {@link Amity.Message} has been updated
16
+ *
17
+ * @param callback The function to call when the event was fired
18
+ * @returns an {@link Amity.Unsubscriber} function to stop listening
19
+ *
20
+ * @category Message Events
21
+ */
22
+ export const onMessageUpdated = (
23
+ callback: Amity.Listener<Amity.Message>,
24
+ ): Amity.Unsubscriber => {
25
+ const client = getActiveClient()
26
+
27
+ const filter = (payload: Amity.MessagePayload) => {
28
+ decoratePayload(payload)
29
+ ingestInCache(payload)
30
+ callback(payload.messages[0])
31
+ }
32
+
33
+ return createEventSubscriber(
34
+ client,
35
+ 'message/onMessageUpdated',
36
+ 'v3.message.didUpdate',
37
+ filter,
38
+ )
39
+ }
@@ -0,0 +1,2 @@
1
+ export { observeMessage } from './observeMessage'
2
+ export { observeMessages } from './observeMessages'
@@ -0,0 +1,76 @@
1
+ import { getActiveClient } from '~/client/api'
2
+
3
+ import { createQuery, runQuery, queryOptions } from '~/core/query'
4
+
5
+ import { getMessage } from '../api'
6
+
7
+ import {
8
+ onMessageUpdated,
9
+ onMessageDeleted,
10
+ } from '../events'
11
+
12
+ /**
13
+ * ```js
14
+ * import { observeMessage } from '@amityco/ts-sdk'
15
+ *
16
+ * let message = {}
17
+ * const unsub = observeMessage(messageId, updated => message = updated)
18
+ * ```
19
+ *
20
+ * Observe all mutations on a {@link Amity.Message} given a single messageId
21
+ *
22
+ * @param client the client to observe the message with
23
+ * @param messageId the ID of the message to observe
24
+ * @param callback the function to call when new data are available
25
+ * @param policy a query policy option for this observer
26
+ * @returns An {@link Amity.Unsubscriber} function to run when willing to stop observing the message
27
+ *
28
+ * @category Message Observer
29
+ */
30
+ export const observeMessage = <Events extends ['onFetch', 'onUpdate', 'onDelete']>(
31
+ messageId: Amity.Message['messageId'],
32
+ callback: Amity.ObjectListener<Amity.QueryResult<Amity.Message>, Events>,
33
+ policy: Amity.QueryPolicy = 'cache_then_server',
34
+ ): Amity.Unsubscriber => {
35
+ const { log } = getActiveClient()
36
+
37
+ const timestamp = Date.now()
38
+ log(`observeMessage(tmpid: ${timestamp}) > listen`)
39
+
40
+ // wrapper function to make sure
41
+ const router = (
42
+ result: Amity.QueryResult<Amity.Message>,
43
+ action: Events[number]
44
+ ) => {
45
+ // filter function
46
+ if (result.data?.messageId !== messageId) return
47
+
48
+ if (callback instanceof Function)
49
+ return callback(result)
50
+
51
+ if (action !== 'onFetch')
52
+ callback.onEvent?.(action, result)
53
+
54
+ callback[action]?.(result)
55
+ }
56
+
57
+ const disposers: Amity.Unsubscriber[] = []
58
+
59
+ disposers.push(
60
+ onMessageUpdated(message => router(message, 'onUpdate')),
61
+ onMessageDeleted(message => router(message, 'onDelete')),
62
+ )
63
+
64
+ if (policy !== 'no_fetch') {
65
+ runQuery(
66
+ createQuery(getMessage, messageId),
67
+ (result) => result.data && router(result, 'onFetch'),
68
+ queryOptions(policy)
69
+ )
70
+ }
71
+
72
+ return () => {
73
+ log(`observeMessages(tmpid: ${timestamp}) > dispose`)
74
+ disposers.forEach(fn => fn())
75
+ }
76
+ }
@@ -0,0 +1,60 @@
1
+ import { getActiveClient } from '~/client/api'
2
+
3
+ import {
4
+ onMessageCreated,
5
+ onMessageUpdated,
6
+ onMessageDeleted,
7
+ } from '../events'
8
+
9
+ /**
10
+ * ```js
11
+ * import { observeMessages } from '@amityco/ts-sdk'
12
+ *
13
+ * let messages = []
14
+ * const unsub = observeMessages(channelId, message => merge(messages, message))
15
+ * ```
16
+ *
17
+ * Observe all mutations on a list of {@link Amity.Message} for a given {@link Amity.Channel} object
18
+ *
19
+ * @param client the client to observe the message with
20
+ * @param channelId the ID of the channel where to observe the messages
21
+ * @param callback the function to call when new data are available
22
+ * @returns An {@link Amity.Unsubscriber} function to run when willing to stop observing the messages
23
+ *
24
+ * @category Message Observer
25
+ */
26
+ export const observeMessages = (
27
+ channelId: Amity.Channel['channelId'],
28
+ callback: Amity.ObjectListener<Amity.Message, ['onCreate', 'onUpdate', 'onDelete']>,
29
+ ): Amity.Unsubscriber => {
30
+ const { log } = getActiveClient()
31
+
32
+ const timestamp = Date.now()
33
+ log(`observeMessages(tmpid: ${timestamp}) > listen`)
34
+
35
+ const disposers: Amity.Unsubscriber[] = []
36
+
37
+ const router = (
38
+ message: Amity.Message,
39
+ action: 'onCreate' | 'onUpdate' | 'onDelete',
40
+ ) => {
41
+ if (message.channelId !== channelId) return
42
+
43
+ if (callback instanceof Function)
44
+ return callback(message)
45
+
46
+ callback.onEvent?.(action, message)
47
+ callback[action]?.(message)
48
+ }
49
+
50
+ disposers.push(
51
+ onMessageCreated(message => router(message, 'onCreate')),
52
+ onMessageUpdated(message => router(message, 'onUpdate')),
53
+ onMessageDeleted(message => router(message, 'onDelete')),
54
+ )
55
+
56
+ return () => {
57
+ log(`observeMessages(tmpid: ${timestamp}) > dispose`)
58
+ disposers.forEach(fn => fn())
59
+ }
60
+ }
@@ -0,0 +1,45 @@
1
+ import { getActiveClient } from '~/client/api'
2
+
3
+ import { decoratePayload } from '~/core/query'
4
+ import { ingestInCache } from '~/core/cache'
5
+ import { fireEvent } from '~/core/events'
6
+
7
+ /**
8
+ * ```js
9
+ * import { createPost } from '@amityco/ts-sdk'
10
+ * const newPost = await createPost(bundle)
11
+ * ```
12
+ *
13
+ * Creates an {@link Amity.Post}
14
+ *
15
+ * @param bundle The data necessary to create a new {@link Amity.Post}
16
+ * @returns The newly created {@link Amity.Post}
17
+ *
18
+ * @category Post API
19
+ * @async
20
+ */
21
+ export const createPost = async <T extends Amity.PostContentType | string>(
22
+ bundle: Pick<Amity.Post, 'targetType' | 'targetId' | 'metadata'> & {
23
+ dataType?: T, data: { [k: string]: any }
24
+ },
25
+ ) => {
26
+ const client = getActiveClient()
27
+ client.log('post/createPost', bundle)
28
+
29
+ // API-FIX: backend rejects that we pass the dataType manually T_T
30
+ if (!bundle.dataType || ['text', 'image', 'file'].includes(bundle.dataType))
31
+ delete bundle.dataType
32
+
33
+ const { data } = await client.http.post<Amity.PostPayload>(
34
+ '/api/v3/posts', bundle
35
+ )
36
+
37
+ decoratePayload(data)
38
+ ingestInCache(data)
39
+
40
+ fireEvent('v3.community.didUpdate', { communities: data.communities! })
41
+ fireEvent('v3.post.didCreate', data)
42
+
43
+ const { posts } = data
44
+ return posts[0]
45
+ }