@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,63 @@
1
+ import { getDeviceId } from '~/core/device'
2
+ import { proxyWebsocketEvents } from '~/core/events'
3
+
4
+ import { getActiveClient } from './activeClient'
5
+
6
+ import { getToken } from './getToken'
7
+
8
+ /**
9
+ * ```js
10
+ * import { connectClient } from '@amityco/ts-sdk/client/api'
11
+ * const success = await connectClient({
12
+ * userId: 'XYZ123456789',
13
+ * })
14
+ * ```
15
+ *
16
+ * Connects an {@link Amity.Client} instance to ASC servers
17
+ *
18
+ * @param userId the user ID for the current session
19
+ * @param displayName the user's displayName for the current session
20
+ * @param deviceId Manual override of the user's device id (for device management)
21
+ * @param authToken The authentication token - necessary when network option is set to secure
22
+ * @returns a success boolean if connected
23
+ *
24
+ * @category Client API
25
+ * @async
26
+ */
27
+ export const connectClient = async (params: {
28
+ userId: Amity.User['userId'],
29
+ displayName?: Amity.User['displayName'],
30
+ authToken?: string,
31
+ deviceId?: Amity.Device['deviceId'],
32
+ }): Promise<boolean> => {
33
+ const client = getActiveClient()
34
+ client.log('client/api/connectClient', {apiKey: client.apiKey, ...params})
35
+
36
+ // default values
37
+ params.displayName ??= params.userId
38
+ params.deviceId ??= getDeviceId()
39
+
40
+ // @ts-ignore: in that particular case, typing can be
41
+ // ignored since we enforce default values just before.
42
+ const { accessToken } = await getToken(params)
43
+
44
+ // manually setup the token for http transport
45
+ client.http.defaults.headers.common['Authorization'] = `Bearer ${accessToken}`
46
+
47
+ // manually setup the token for ws transport
48
+ client.ws.io.opts.query = {token: accessToken}
49
+
50
+ // wire websocket events to our event emitter
51
+ proxyWebsocketEvents(client.ws, client.emitter)
52
+
53
+ // TODO: in phase 2, this should not be necessary. we should have WS
54
+ // to be connected "on demand" rather than "by default"
55
+ await new Promise(resolve => {
56
+ client.ws.once('connect', resolve)
57
+ client.ws.open()
58
+ })
59
+
60
+ client.userId = params.userId
61
+
62
+ return client.ws.connected
63
+ }
@@ -0,0 +1,56 @@
1
+ import { createLogger } from '~/core/debug'
2
+
3
+ import {
4
+ createHttpTransport,
5
+ createWebsocketTransport,
6
+ } from '~/core/transports'
7
+
8
+ import { createEventEmitter } from '~/core/events'
9
+
10
+ import {
11
+ getActiveClient,
12
+ setActiveClient,
13
+ } from './activeClient'
14
+
15
+ /**
16
+ * ```js
17
+ * import { createClient } from '@amityco/ts-sdk'
18
+ * const client = createClient(apiKey, 'https://asc.server/', 'myClient')
19
+ * ```
20
+ *
21
+ * Creates a new {@link Amity.Client} instance
22
+ *
23
+ * @param apiKey for the {@link Amity.Client} instance
24
+ * @param apiEndpoint endpoint to connect to
25
+ * @param debugSession session's identifier for the client's logger instance
26
+ * @returns A {@link Amity.Client} instance
27
+ *
28
+ * @category Client API
29
+ **/
30
+ export const createClient = (
31
+ apiKey: string,
32
+ apiEndpoint: string = 'https://api.amity.co',
33
+ debugSession: string = 'amity',
34
+ ): Amity.Client => {
35
+ const log = createLogger(debugSession)
36
+
37
+ log('client/api/createClient', {
38
+ apiKey: apiKey.replace(/.{5}$/g, 'xxxxx'),
39
+ apiEndpoint,
40
+ })
41
+
42
+ const http = createHttpTransport(apiEndpoint)
43
+ const ws = createWebsocketTransport(apiEndpoint)
44
+
45
+ const emitter = createEventEmitter()
46
+
47
+ const client = {
48
+ apiKey, log, http, ws, emitter,
49
+ use: () => setActiveClient(client),
50
+ }
51
+
52
+ try { getActiveClient() }
53
+ catch { setActiveClient(client) }
54
+
55
+ return client
56
+ }
@@ -0,0 +1,31 @@
1
+ import { getActiveClient } from './activeClient'
2
+
3
+ /**
4
+ * ```js
5
+ * import { disconnectClient } from '@amityco/ts-sdk'
6
+ * const success = await disconnectClient()
7
+ * ```
8
+ *
9
+ * Disconnects an {@link Amity.Client} instance from ASC servers
10
+ *
11
+ * @param client The {@link Amity.Client} instance to disconnect
12
+ * @returns a success boolean if disconnected
13
+ *
14
+ * @category Client API
15
+ * @async
16
+ */
17
+ export const disconnectClient = async (): Promise<boolean> => {
18
+ const client = getActiveClient()
19
+ client.log('client/api/disconnectClient')
20
+
21
+ await new Promise(resolve => {
22
+ client.ws.once('disconnect', resolve)
23
+ client.ws.disconnect()
24
+ })
25
+
26
+ client.emitter.all.clear()
27
+ client.ws.removeAllListeners()
28
+ client.userId = undefined
29
+
30
+ return !client.ws.connected
31
+ }
@@ -0,0 +1,35 @@
1
+ import { getActiveClient } from './activeClient'
2
+
3
+ import { createCache } from '~/core/cache'
4
+ import { memoryStores } from '~/core/stores'
5
+
6
+ /**
7
+ * ```js
8
+ * import { enableCache } from '@amityco/ts-sdk'
9
+ * enableCache()
10
+ * ```
11
+ *
12
+ * Adds a new {@link Amity.Cache} object to an {@link Amity.Client} instance
13
+ *
14
+ * @param stores a partial dictionary of stores to be used for caching
15
+ *
16
+ * @category Client API
17
+ */
18
+ export const enableCache = (
19
+ stores: Parameters<typeof createCache>[0] = memoryStores(
20
+ 'user',
21
+ 'file',
22
+ 'channel',
23
+ 'message',
24
+ 'community',
25
+ 'post',
26
+ 'comment',
27
+ 'communityUsers',
28
+ 'channelUsers'
29
+ ),
30
+ ) => {
31
+ const client = getActiveClient()
32
+ client.log('client/api/enableCache')
33
+
34
+ client.cache = createCache(stores)
35
+ }
@@ -0,0 +1,35 @@
1
+ import { getActiveClient } from './activeClient'
2
+
3
+ import { getDeviceId, getDeviceInfo } from '~/core/device'
4
+
5
+ /**
6
+ * Retrieves a pair of {@link Amity.Tokens} necessary for connection
7
+ *
8
+ * @param userId The userId to use to issue a token
9
+ * @param displayName The user's displayName
10
+ * @param deviceId The user's device Id (can be manually set for native users)
11
+ * @param authToken The authentication token - necessary when network option is set to secure
12
+ * @return The accessToken for the given userId
13
+ *
14
+ * @category Client API
15
+ * @hidden
16
+ */
17
+ export const getToken = async (params: {
18
+ userId: Amity.User['userId'],
19
+ displayName: Amity.User['displayName'],
20
+ authToken?: string,
21
+ deviceId: Amity.Device['deviceId'],
22
+ }) => {
23
+ const client = getActiveClient()
24
+ client.log('client/api/getToken', params)
25
+
26
+ const deviceInfo = await getDeviceInfo()
27
+
28
+ const { data } = await client.http.post<Amity.Tokens>('/v1/device', {
29
+ ...params, deviceInfo,
30
+ } , {
31
+ headers: { 'X-API-Key': client.apiKey }
32
+ })
33
+
34
+ return data
35
+ }
@@ -0,0 +1,7 @@
1
+ export { getActiveClient } from './activeClient'
2
+ export * from './createClient'
3
+ export * from './connectClient'
4
+ export * from './disconnectClient'
5
+ export * from './isConnected'
6
+ export * from './enableCache'
7
+ export * from './clearCache'
@@ -0,0 +1,24 @@
1
+ import { getActiveClient } from './activeClient'
2
+
3
+ /**
4
+ * ```js
5
+ * import { isConnected } from '@amityco/ts-sdk'
6
+ * const connected = isConnected()
7
+ * ```
8
+ *
9
+ * Checks if a {@link Amity.Client} instance is connected to ASC servers
10
+ *
11
+ * @returns a success boolean if connected
12
+ *
13
+ * @category Client API
14
+ */
15
+ export const isConnected = (): boolean => {
16
+ const client = getActiveClient()
17
+ client.log('client/api/isConnected', client)
18
+
19
+ return !!(
20
+ client.userId
21
+ && client.http.defaults.headers.common?.['Authorization']?.length
22
+ && client.ws.connected
23
+ )
24
+ }
@@ -0,0 +1 @@
1
+ export * from './onClientDisconnected'
@@ -0,0 +1,29 @@
1
+ import { getActiveClient } from '~/client/api'
2
+
3
+ import { createEventSubscriber } from '~/core/events'
4
+
5
+ /**
6
+ * ```js
7
+ * import { onClientDisconnected } from '@amityco/ts-sdk'
8
+ * const dispose = onClientDisconnected(reason => {
9
+ * // ...
10
+ * })
11
+ * ```
12
+ *
13
+ * Fired when any {@link Amity.Client} have been disconnected
14
+ *
15
+ * @param callback The function to call when the event was fired
16
+ * @returns an {@link Amity.Unsubscriber} function to stop listening
17
+ *
18
+ * @category Client Events
19
+ */
20
+ export const onClientDisconnected = (
21
+ callback: Amity.Listener<void>,
22
+ ): Amity.Unsubscriber => {
23
+ return createEventSubscriber(
24
+ getActiveClient(),
25
+ 'client/onClientDisconnected',
26
+ 'disconnected',
27
+ () => callback(),
28
+ )
29
+ }
@@ -0,0 +1,43 @@
1
+ import { getActiveClient } from '~/client/api'
2
+
3
+ import { decoratePayload } from '~/core/query'
4
+ import { ingestInCache, mutateCache } from '~/core/cache'
5
+ import { fireEvent } from '~/core/events'
6
+
7
+ import { getPost } from '~/post/api/getPost'
8
+
9
+ /**
10
+ * ```js
11
+ * import { createComment } from '@amityco/ts-sdk'
12
+ * const newComment = await createComment(bundle)
13
+ * ```
14
+ *
15
+ * Creates an {@link Amity.Comment}
16
+ *
17
+ * @param bundle The data necessary to create a new {@link Amity.Comment}
18
+ * @returns The newly created {@link Amity.Comment}
19
+ *
20
+ * @category Comment API
21
+ * @async
22
+ */
23
+ export const createComment = async <T extends Amity.CommentContentType>(
24
+ bundle: Pick<Amity.Comment<T>, 'referenceType' | 'referenceId' | 'parentId' | 'data' | 'metadata'>,
25
+ ) => {
26
+ const client = getActiveClient()
27
+ client.log('comment/createComment', bundle)
28
+
29
+ const { data } = await client.http.post<Amity.CommentPayload>(
30
+ '/api/v3/comments', bundle,
31
+ )
32
+
33
+ decoratePayload(data)
34
+ ingestInCache(data)
35
+
36
+ const post = await getPost(bundle.referenceId)
37
+
38
+ fireEvent('v3.post.didUpdate', { posts: [post] })
39
+ fireEvent('v3.comment.didCreate', data)
40
+
41
+ const { comments } = data
42
+ return comments[0]
43
+ }
@@ -0,0 +1,40 @@
1
+ import { getActiveClient } from '~/client/api'
2
+ import { fireEvent } from '~/core/events'
3
+
4
+ import { getComment } from './getComment'
5
+
6
+ import { getPost } from '~/post/api/getPost'
7
+
8
+ /**
9
+ * ```js
10
+ * import { deleteComment } from '@amityco/ts-sdk'
11
+ * const success = await deleteComment('foobar')
12
+ * ```
13
+ *
14
+ * Deletes a {@link Amity.Comment}
15
+ *
16
+ * @param commentId The {@link Amity.Comment} ID to delete
17
+ * @return A success boolean if the {@link Amity.Comment} was deleted
18
+ *
19
+ * @category Comment API
20
+ * @async
21
+ */
22
+ export const deleteComment = async (
23
+ commentId: Amity.Comment['commentId'],
24
+ ) => {
25
+ const client = getActiveClient()
26
+ client.log('comment/deleteComment', commentId)
27
+
28
+ // API-FIX: This endpoint has not been implemented yet.
29
+ await client.http.delete<{ success: boolean }>(
30
+ `/api/v3/comments/${commentId}`,
31
+ )
32
+
33
+ const deleted = await getComment(commentId)
34
+ const post = await getPost(deleted.referenceId)
35
+
36
+ fireEvent('v3.post.didUpdate', { posts: [post] })
37
+ fireEvent('v3.comment.didDelete', { comments: [deleted] })
38
+
39
+ return deleted
40
+ }
@@ -0,0 +1,59 @@
1
+ import { getActiveClient } from '~/client/api'
2
+
3
+ import { ingestInCache, pullFromCache } from '~/core/cache'
4
+ import { decoratePayload } from '~/core/query'
5
+
6
+ /**
7
+ * ```js
8
+ * import { getComment } from '@amityco/ts-sdk'
9
+ * const comment = await getComment('foobar')
10
+ * ```
11
+ *
12
+ * Fetches a {@link Amity.Comment} object
13
+ *
14
+ * @param commentId the ID of the {@link Amity.Comment} to fetch
15
+ * @returns the associated {@link Amity.Comment} object
16
+ *
17
+ * @category Comment API
18
+ * @async
19
+ */
20
+ export const getComment = async (
21
+ commentId: Amity.Comment['commentId']
22
+ ) => {
23
+ const client = getActiveClient()
24
+ client.log('comment/getComment', commentId)
25
+
26
+ // API-FIX: endpoint should not be /list, parameters should be querystring.
27
+ const { data } = await client.http.get<Amity.CommentPayload>(
28
+ `/api/v3/comments/${commentId}`,
29
+ )
30
+
31
+ decoratePayload(data)
32
+ ingestInCache(data)
33
+
34
+ const { comments } = data
35
+ return comments.find(comment => comment.commentId === commentId)!
36
+ }
37
+
38
+ /**
39
+ * ```js
40
+ * import { getComment } from '@amityco/ts-sdk'
41
+ * const comment = getComment.locally('foobar')
42
+ * ```
43
+ *
44
+ * Fetches a {@link Amity.Comment} object
45
+ *
46
+ * @param commentId the ID of the {@link Amity.Comment} to fetch
47
+ * @returns the associated {@link Amity.Comment} object
48
+ *
49
+ * @category Comment API
50
+ */
51
+ getComment.locally = (
52
+ commentId: Amity.Comment['commentId']
53
+ ) => {
54
+ const client = getActiveClient()
55
+ client.log('comment/getComment.locally', commentId)
56
+
57
+ const [comment] = pullFromCache('comment', commentId) ?? []
58
+ return comment
59
+ }
@@ -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 { getComments } from '@amityco/ts-sdk'
10
+ * const comments = await getComments(['foo', 'bar'])
11
+ * ```
12
+ *
13
+ * Fetches a collection of {@link Amity.Comment} objects
14
+ *
15
+ * @param commentIds the IDs of the {@link Amity.Comment} to fetch
16
+ * @returns the associated collection of {@link Amity.Comment} objects
17
+ *
18
+ * @category Comment API
19
+ * @async
20
+ */
21
+ export const getComments = async (
22
+ commentIds: Amity.Comment['commentId'][],
23
+ ) => {
24
+ const client = getActiveClient()
25
+ client.log('comment/getComments', commentIds)
26
+
27
+ // API-FIX: endpoint should not be /list, parameters should be querystring.
28
+ const { data } = await client.http.get<Amity.CommentPayload>(
29
+ `/api/v3/comments/list`,
30
+ { params: { commentIds } },
31
+ )
32
+
33
+ decoratePayload(data)
34
+ ingestInCache(data)
35
+
36
+ const { comments } = data
37
+ return toRecord(comments)
38
+ }
39
+
40
+ /**
41
+ * ```js
42
+ * import { getComments } from '@amityco/ts-sdk'
43
+ * const comments = getComments.locally(['foo', 'bar'])
44
+ * ```
45
+ *
46
+ * Fetches a collection of {@link Amity.Comment} objects from cache
47
+ *
48
+ * @param commentIds the IDs of the {@link Amity.Comment} to fetch
49
+ * @returns the associated collection of {@link Amity.Comment} objects
50
+ *
51
+ * @category Comment API
52
+ */
53
+ getComments.locally = (
54
+ commentIds: Amity.Comment['commentId'][]
55
+ ) => {
56
+ const client = getActiveClient()
57
+ client.log('comment/getComments.locally', commentIds)
58
+
59
+ const cached = pullFromCache('comment', ...commentIds) ?? []
60
+
61
+ if (cached?.length === commentIds.length)
62
+ return toRecord(cached)
63
+ }
@@ -0,0 +1,7 @@
1
+ export * from './queryComments'
2
+ export * from './getComments'
3
+ export * from './getComment'
4
+
5
+ export * from './createComment'
6
+ export * from './updateComment'
7
+ export * from './deleteComment'
@@ -0,0 +1,169 @@
1
+ import { getActiveClient } from '~/client/api'
2
+
3
+ import {
4
+ decoratePayload,
5
+ filterByPropEquality,
6
+ sortBySegmentNumber,
7
+ toPage,
8
+ toToken,
9
+ } from '~/core/query'
10
+
11
+ import { ingestInCache, pullFromCache } from '~/core/cache'
12
+ import { toRecord } from '~/core/model'
13
+
14
+ /**
15
+ * ```js
16
+ * import { queryComments } from '@amityco/ts-sdk'
17
+ * const comments = await queryComments({ postId })
18
+ * ```
19
+ *
20
+ * Queries a paginable list of {@link Amity.Comment} objects
21
+ *
22
+ * @param query The query parameters
23
+ * @returns A page of {@link Amity.Comment} objects
24
+ *
25
+ * @category Comment API
26
+ * @async
27
+ */
28
+ export const queryComments = async (query: {
29
+ referenceType: Amity.Comment['referenceType'],
30
+ referenceId: Amity.Comment['referenceId'],
31
+ parentId?: Amity.Comment['commentId'] | null
32
+ hasFlag?: boolean
33
+ isDeleted?: Amity.Comment['isDeleted']
34
+ page?: Amity.Page
35
+ }) => {
36
+ const client = getActiveClient()
37
+ client.log('comment/queryComments', query)
38
+
39
+ const { page, ...params } = query
40
+
41
+ const filterByParentId = query.parentId !== undefined
42
+
43
+ // API-FIX: parameters should be querystring. (1)
44
+ // API-FIX: backend should answer Amity.Response (2)
45
+ // const { data } = await client.http.get<Amity.Response<Amity.PagedResponse<Amity.CommentPayload>>>(
46
+ const { data } = await client.http.get<Amity.CommentPayload & Amity.Pagination>(`/api/v3/comments`, {
47
+ params: {
48
+ ...params,
49
+ // filterByParentId, API-FIX: backend does not support this boolean LOL. what the hell seriously.
50
+ options: {
51
+ token: toToken(page, 'afterbefore'),
52
+ },
53
+ },
54
+ })
55
+
56
+ // API-FIX: backend should answer Amity.Response (2)
57
+ // const { paging, comments } = unwrapPayload(data)
58
+ const { paging, ...response } = data
59
+
60
+ decoratePayload(response as unknown as Record<string, Object[]>)
61
+ ingestInCache(response as unknown as Record<string, Object[]>)
62
+
63
+ const prevPage = toPage(paging.previous)
64
+ const nextPage = toPage(paging.next)
65
+
66
+ const { comments } = response
67
+ return { data: toRecord(comments), prevPage, nextPage }
68
+ }
69
+
70
+ /**
71
+ * ```js
72
+ * import { queryComments } from '@amityco/ts-sdk'
73
+ * const comments = queryComments.locally({ postId })
74
+ * ```
75
+ *
76
+ * Queries a paginable list of {@link Amity.Comment} objects from cache
77
+ *
78
+ * @param query The query parameters
79
+ * @returns comments
80
+ *
81
+ * @category Comment API
82
+ */
83
+ queryComments.locally = (
84
+ query: Parameters<typeof queryComments>[0],
85
+ ) => {
86
+ const client = getActiveClient()
87
+ client.log('post/queryComments.locally', query)
88
+
89
+ const {
90
+ referenceId,
91
+ referenceType,
92
+ parentId,
93
+ isDeleted,
94
+ page = { before: 0, limit: 5 },
95
+ } = query
96
+
97
+ if (isNaN(page.after!) && isNaN(page.before!))
98
+ page.before = 0;
99
+
100
+ if (isNaN(page.limit))
101
+ page.limit = 5
102
+
103
+ let comments: Amity.Comment[] = pullFromCache('comment') ?? []
104
+
105
+ // no cache
106
+ if (!comments.length)
107
+ return
108
+
109
+ // filter
110
+ comments = filterByPropEquality(comments, 'referenceId', referenceId)
111
+ comments = filterByPropEquality(comments, 'referenceType', referenceType)
112
+ comments = filterByPropEquality(comments, 'parentId', parentId)
113
+ comments = filterByPropEquality(comments, 'isDeleted', isDeleted)
114
+
115
+ // no interesting cache
116
+ if (!comments.length)
117
+ return
118
+
119
+ // sort
120
+ comments = comments.sort(sortBySegmentNumber)
121
+
122
+ // paging
123
+ // API-FIX we can't reuse proper page because the message page is done
124
+ // by segmentNumber which is sadly unique to the entire platform.
125
+ // this part is copied and adapted from sliceByPaging function
126
+
127
+ const afterIndex = !isNaN(page.after!)
128
+ ? comments.findIndex(({ segmentNumber }) => segmentNumber === page.after! + 1)
129
+ : 0
130
+
131
+ const beforeIndex = !isNaN(page.before!) && page.before !== 0
132
+ ? comments.findIndex(({ segmentNumber }) => segmentNumber === page.before! - 1) + 1
133
+ : comments.length
134
+
135
+ if (afterIndex < 0 || beforeIndex < 0)
136
+ return
137
+
138
+ let slice = comments.slice(
139
+ afterIndex !== -1 ? afterIndex : 0,
140
+ beforeIndex !== -1 ? beforeIndex : undefined,
141
+ )
142
+
143
+ // nothing left after slicing
144
+ if (!slice.length)
145
+ return
146
+
147
+ if (!isNaN(page.after!) && !isNaN(page.before!)) {
148
+ // do nothing
149
+ } else if (!isNaN(page.after!)) {
150
+ slice = slice.slice(0, page.limit)
151
+ } else if (!isNaN(page.before!)) {
152
+ slice = slice.slice(-page.limit)
153
+ }
154
+
155
+ for (let i = 0; i < slice.length - 1; i++)
156
+ if (slice[i].segmentNumber !== slice[i + 1].segmentNumber - 1)
157
+ return
158
+
159
+ const prevPage = slice[0].segmentNumber > 1
160
+ ? { before: slice[0].segmentNumber, limit: page.limit }
161
+ : undefined
162
+
163
+ const nextPage = {
164
+ after: slice[slice.length - 1].segmentNumber,
165
+ limit: page.limit,
166
+ }
167
+
168
+ return { data: toRecord(slice), nextPage, prevPage }
169
+ }