@amityco/ts-sdk 0.0.1-be4fc2f.0 → 0.0.1-beta.10

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 (527) hide show
  1. package/README.md +2 -2
  2. package/dist/@types/core/cache.d.ts +49 -9
  3. package/dist/@types/core/cache.d.ts.map +1 -1
  4. package/dist/@types/core/events.d.ts +22 -12
  5. package/dist/@types/core/events.d.ts.map +1 -1
  6. package/dist/@types/core/model.d.ts +1 -0
  7. package/dist/@types/core/model.d.ts.map +1 -1
  8. package/dist/@types/core/paging.d.ts +59 -0
  9. package/dist/@types/core/paging.d.ts.map +1 -0
  10. package/dist/@types/core/permissions.d.ts +1 -1
  11. package/dist/@types/core/permissions.d.ts.map +1 -1
  12. package/dist/@types/core/query.d.ts +13 -43
  13. package/dist/@types/core/query.d.ts.map +1 -1
  14. package/dist/@types/core/transport.d.ts +3 -2
  15. package/dist/@types/core/transport.d.ts.map +1 -1
  16. package/dist/@types/domains/category.d.ts +1 -1
  17. package/dist/@types/domains/category.d.ts.map +1 -1
  18. package/dist/@types/domains/channel.d.ts +1 -1
  19. package/dist/@types/domains/channel.d.ts.map +1 -1
  20. package/dist/@types/domains/client.d.ts +2 -0
  21. package/dist/@types/domains/client.d.ts.map +1 -1
  22. package/dist/@types/domains/comment.d.ts +1 -1
  23. package/dist/@types/domains/comment.d.ts.map +1 -1
  24. package/dist/@types/domains/community.d.ts +1 -1
  25. package/dist/@types/domains/community.d.ts.map +1 -1
  26. package/dist/@types/domains/content.d.ts +1 -2
  27. package/dist/@types/domains/content.d.ts.map +1 -1
  28. package/dist/@types/domains/file.d.ts +1 -1
  29. package/dist/@types/domains/file.d.ts.map +1 -1
  30. package/dist/@types/domains/group.d.ts +3 -3
  31. package/dist/@types/domains/group.d.ts.map +1 -1
  32. package/dist/@types/domains/message.d.ts +1 -1
  33. package/dist/@types/domains/message.d.ts.map +1 -1
  34. package/dist/@types/domains/post.d.ts +1 -1
  35. package/dist/@types/domains/post.d.ts.map +1 -1
  36. package/dist/@types/domains/stream.d.ts +1 -1
  37. package/dist/@types/domains/stream.d.ts.map +1 -1
  38. package/dist/@types/domains/user.d.ts +2 -1
  39. package/dist/@types/domains/user.d.ts.map +1 -1
  40. package/dist/@types/index.d.ts +1 -1
  41. package/dist/@types/index.d.ts.map +1 -1
  42. package/dist/cache/api/backupCache.d.ts +24 -0
  43. package/dist/cache/api/backupCache.d.ts.map +1 -0
  44. package/dist/cache/api/disableCache.d.ts +13 -0
  45. package/dist/cache/api/disableCache.d.ts.map +1 -0
  46. package/dist/cache/api/dropFromCache.d.ts +17 -0
  47. package/dist/cache/api/dropFromCache.d.ts.map +1 -0
  48. package/dist/cache/api/enableCache.d.ts +18 -0
  49. package/dist/cache/api/enableCache.d.ts.map +1 -0
  50. package/dist/cache/api/index.d.ts +12 -0
  51. package/dist/cache/api/index.d.ts.map +1 -0
  52. package/dist/cache/api/ingestInCache.d.ts +11 -0
  53. package/dist/cache/api/ingestInCache.d.ts.map +1 -0
  54. package/dist/cache/api/mergeInCache.d.ts +20 -0
  55. package/dist/cache/api/mergeInCache.d.ts.map +1 -0
  56. package/dist/cache/api/pullFromCache.d.ts +17 -0
  57. package/dist/cache/api/pullFromCache.d.ts.map +1 -0
  58. package/dist/cache/api/pushToCache.d.ts +17 -0
  59. package/dist/cache/api/pushToCache.d.ts.map +1 -0
  60. package/dist/cache/api/queryCache.d.ts +17 -0
  61. package/dist/cache/api/queryCache.d.ts.map +1 -0
  62. package/dist/cache/api/restoreCache.d.ts +22 -0
  63. package/dist/cache/api/restoreCache.d.ts.map +1 -0
  64. package/dist/cache/api/snipeIdFromCollection.d.ts +18 -0
  65. package/dist/cache/api/snipeIdFromCollection.d.ts.map +1 -0
  66. package/dist/cache/api/upsertInCache.d.ts +19 -0
  67. package/dist/cache/api/upsertInCache.d.ts.map +1 -0
  68. package/dist/cache/api/wipeCache.d.ts +21 -0
  69. package/dist/cache/api/wipeCache.d.ts.map +1 -0
  70. package/dist/cache/utils/index.d.ts +41 -0
  71. package/dist/cache/utils/index.d.ts.map +1 -0
  72. package/dist/category/api/getCategory.d.ts.map +1 -1
  73. package/dist/category/api/queryCategories.d.ts +5 -4
  74. package/dist/category/api/queryCategories.d.ts.map +1 -1
  75. package/dist/channel/api/addChannelMembers.d.ts.map +1 -1
  76. package/dist/channel/api/addChannelMembersRole.d.ts.map +1 -1
  77. package/dist/channel/api/createChannel.d.ts +1 -1
  78. package/dist/channel/api/createChannel.d.ts.map +1 -1
  79. package/dist/channel/api/deleteChannel.d.ts +1 -1
  80. package/dist/channel/api/deleteChannel.d.ts.map +1 -1
  81. package/dist/channel/api/getChannel.d.ts +2 -2
  82. package/dist/channel/api/getChannel.d.ts.map +1 -1
  83. package/dist/channel/api/getChannels.d.ts +2 -2
  84. package/dist/channel/api/getChannels.d.ts.map +1 -1
  85. package/dist/channel/api/joinChannel.d.ts.map +1 -1
  86. package/dist/channel/api/leaveChannel.d.ts.map +1 -1
  87. package/dist/channel/api/queryChannelMembers.d.ts +1 -5
  88. package/dist/channel/api/queryChannelMembers.d.ts.map +1 -1
  89. package/dist/channel/api/queryChannels.d.ts +1 -5
  90. package/dist/channel/api/queryChannels.d.ts.map +1 -1
  91. package/dist/channel/api/removeChannelMembers.d.ts.map +1 -1
  92. package/dist/channel/api/removeChannelMembersRole.d.ts.map +1 -1
  93. package/dist/channel/api/updateChannel.d.ts +1 -1
  94. package/dist/channel/api/updateChannel.d.ts.map +1 -1
  95. package/dist/channel/events/onChannelDeleted.d.ts.map +1 -1
  96. package/dist/channel/events/onChannelJoined.d.ts.map +1 -1
  97. package/dist/channel/events/onChannelLeft.d.ts.map +1 -1
  98. package/dist/channel/events/onChannelUpdated.d.ts.map +1 -1
  99. package/dist/channel/events/onMemberAdded.d.ts.map +1 -1
  100. package/dist/channel/events/onMemberRemoved.d.ts.map +1 -1
  101. package/dist/channel/observers/observeChannel.d.ts +1 -3
  102. package/dist/channel/observers/observeChannel.d.ts.map +1 -1
  103. package/dist/client/api/connectClient.d.ts.map +1 -1
  104. package/dist/client/api/disconnectClient.d.ts.map +1 -1
  105. package/dist/client/api/getToken.d.ts +3 -1
  106. package/dist/client/api/getToken.d.ts.map +1 -1
  107. package/dist/client/api/index.d.ts +0 -2
  108. package/dist/client/api/index.d.ts.map +1 -1
  109. package/dist/comment/api/createComment.d.ts +1 -1
  110. package/dist/comment/api/createComment.d.ts.map +1 -1
  111. package/dist/comment/api/deleteComment.d.ts +1 -37
  112. package/dist/comment/api/deleteComment.d.ts.map +1 -1
  113. package/dist/comment/api/getComment.d.ts +2 -2
  114. package/dist/comment/api/getComment.d.ts.map +1 -1
  115. package/dist/comment/api/getComments.d.ts +2 -2
  116. package/dist/comment/api/getComments.d.ts.map +1 -1
  117. package/dist/comment/api/queryComments.d.ts +4 -18
  118. package/dist/comment/api/queryComments.d.ts.map +1 -1
  119. package/dist/comment/api/updateComment.d.ts +1 -1
  120. package/dist/comment/api/updateComment.d.ts.map +1 -1
  121. package/dist/comment/events/onCommentCreated.d.ts +2 -2
  122. package/dist/comment/events/onCommentCreated.d.ts.map +1 -1
  123. package/dist/comment/events/onCommentDeleted.d.ts +2 -2
  124. package/dist/comment/events/onCommentDeleted.d.ts.map +1 -1
  125. package/dist/comment/events/onCommentFlagged.d.ts +2 -2
  126. package/dist/comment/events/onCommentFlagged.d.ts.map +1 -1
  127. package/dist/comment/events/onCommentReactionAdded.d.ts +2 -2
  128. package/dist/comment/events/onCommentReactionAdded.d.ts.map +1 -1
  129. package/dist/comment/events/onCommentReactionRemoved.d.ts +2 -2
  130. package/dist/comment/events/onCommentReactionRemoved.d.ts.map +1 -1
  131. package/dist/comment/events/onCommentUnflagged.d.ts +2 -2
  132. package/dist/comment/events/onCommentUnflagged.d.ts.map +1 -1
  133. package/dist/comment/events/onCommentUpdated.d.ts +2 -2
  134. package/dist/comment/events/onCommentUpdated.d.ts.map +1 -1
  135. package/dist/comment/events/utils.d.ts +1 -1
  136. package/dist/comment/events/utils.d.ts.map +1 -1
  137. package/dist/comment/observers/observeComment.d.ts +1 -3
  138. package/dist/comment/observers/observeComment.d.ts.map +1 -1
  139. package/dist/community/api/addCommunityMembers.d.ts.map +1 -1
  140. package/dist/community/api/addCommunityMembersRole.d.ts.map +1 -1
  141. package/dist/community/api/createCommunity.d.ts +1 -1
  142. package/dist/community/api/createCommunity.d.ts.map +1 -1
  143. package/dist/community/api/deleteCommunity.d.ts.map +1 -1
  144. package/dist/community/api/getCommunities.d.ts +2 -2
  145. package/dist/community/api/getCommunities.d.ts.map +1 -1
  146. package/dist/community/api/getCommunity.d.ts +2 -2
  147. package/dist/community/api/getCommunity.d.ts.map +1 -1
  148. package/dist/community/api/joinCommunity.d.ts.map +1 -1
  149. package/dist/community/api/leaveCommunity.d.ts.map +1 -1
  150. package/dist/community/api/queryCommunities.d.ts +1 -5
  151. package/dist/community/api/queryCommunities.d.ts.map +1 -1
  152. package/dist/community/api/queryCommunityMembers.d.ts +1 -5
  153. package/dist/community/api/queryCommunityMembers.d.ts.map +1 -1
  154. package/dist/community/api/removeCommunityMembers.d.ts.map +1 -1
  155. package/dist/community/api/removeCommunityMembersRole.d.ts.map +1 -1
  156. package/dist/community/api/updateCommunity.d.ts +1 -1
  157. package/dist/community/api/updateCommunity.d.ts.map +1 -1
  158. package/dist/community/events/onCommunityCreated.d.ts +1 -1
  159. package/dist/community/events/onCommunityDeleted.d.ts +1 -1
  160. package/dist/community/events/onCommunityJoined.d.ts +3 -3
  161. package/dist/community/events/onCommunityJoined.d.ts.map +1 -1
  162. package/dist/community/events/onCommunityLeft.d.ts +3 -3
  163. package/dist/community/events/onCommunityLeft.d.ts.map +1 -1
  164. package/dist/community/events/onCommunityUpdated.d.ts +1 -1
  165. package/dist/community/events/onCommunityUserAdded.d.ts +3 -3
  166. package/dist/community/events/onCommunityUserAdded.d.ts.map +1 -1
  167. package/dist/community/events/onCommunityUserBanned.d.ts +3 -3
  168. package/dist/community/events/onCommunityUserBanned.d.ts.map +1 -1
  169. package/dist/community/events/onCommunityUserRemoved.d.ts +3 -3
  170. package/dist/community/events/onCommunityUserRemoved.d.ts.map +1 -1
  171. package/dist/community/events/onCommunityUserUnbanned.d.ts +3 -3
  172. package/dist/community/events/onCommunityUserUnbanned.d.ts.map +1 -1
  173. package/dist/community/events/utils.d.ts +1 -0
  174. package/dist/community/events/utils.d.ts.map +1 -1
  175. package/dist/community/observers/observeCommunity.d.ts +1 -3
  176. package/dist/community/observers/observeCommunity.d.ts.map +1 -1
  177. package/dist/core/events.d.ts +3 -3
  178. package/dist/core/events.d.ts.map +1 -1
  179. package/dist/core/model/idResolvers.d.ts +9 -11
  180. package/dist/core/model/idResolvers.d.ts.map +1 -1
  181. package/dist/core/model/identifyModel.d.ts +1 -1
  182. package/dist/core/model/identifyModel.d.ts.map +1 -1
  183. package/dist/core/model/index.d.ts +6 -2
  184. package/dist/core/model/index.d.ts.map +1 -1
  185. package/dist/core/query/index.d.ts +0 -1
  186. package/dist/core/query/index.d.ts.map +1 -1
  187. package/dist/core/query/paging.d.ts +21 -3
  188. package/dist/core/query/paging.d.ts.map +1 -1
  189. package/dist/core/query/query.d.ts +9 -21
  190. package/dist/core/query/query.d.ts.map +1 -1
  191. package/dist/core/subscription.d.ts +13 -2
  192. package/dist/core/subscription.d.ts.map +1 -1
  193. package/dist/core/transports/mqtt.d.ts +2 -1
  194. package/dist/core/transports/mqtt.d.ts.map +1 -1
  195. package/dist/core/transports/ws.d.ts.map +1 -1
  196. package/dist/feed/api/queryGlobalFeed.d.ts +1 -5
  197. package/dist/feed/api/queryGlobalFeed.d.ts.map +1 -1
  198. package/dist/file/api/createFile.d.ts +1 -1
  199. package/dist/file/api/createFile.d.ts.map +1 -1
  200. package/dist/file/api/deleteFile.d.ts.map +1 -1
  201. package/dist/file/api/getFile.d.ts +2 -2
  202. package/dist/file/api/getFile.d.ts.map +1 -1
  203. package/dist/file/observers/observeFile.d.ts +1 -3
  204. package/dist/file/observers/observeFile.d.ts.map +1 -1
  205. package/dist/index.cjs.js +17428 -2854
  206. package/dist/index.d.ts +3 -2
  207. package/dist/index.d.ts.map +1 -1
  208. package/dist/index.esm.js +17411 -2840
  209. package/dist/index.umd.js +6 -4
  210. package/dist/message/api/createMessage.d.ts +2 -2
  211. package/dist/message/api/createMessage.d.ts.map +1 -1
  212. package/dist/message/api/deleteMessage.d.ts +2 -2
  213. package/dist/message/api/deleteMessage.d.ts.map +1 -1
  214. package/dist/message/api/getMessage.d.ts +2 -2
  215. package/dist/message/api/getMessage.d.ts.map +1 -1
  216. package/dist/message/api/getMessages.d.ts +2 -2
  217. package/dist/message/api/getMessages.d.ts.map +1 -1
  218. package/dist/message/api/queryMessages.d.ts +2 -16
  219. package/dist/message/api/queryMessages.d.ts.map +1 -1
  220. package/dist/message/api/updateMessage.d.ts +2 -2
  221. package/dist/message/api/updateMessage.d.ts.map +1 -1
  222. package/dist/message/events/onMessageCreated.d.ts.map +1 -1
  223. package/dist/message/events/onMessageDeleted.d.ts.map +1 -1
  224. package/dist/message/events/onMessageUpdated.d.ts.map +1 -1
  225. package/dist/message/observers/observeMessage.d.ts +1 -3
  226. package/dist/message/observers/observeMessage.d.ts.map +1 -1
  227. package/dist/message/observers/observeMessages.d.ts +1 -1
  228. package/dist/message/observers/observeMessages.d.ts.map +1 -1
  229. package/dist/post/api/createPost.d.ts +1 -1
  230. package/dist/post/api/createPost.d.ts.map +1 -1
  231. package/dist/post/api/deletePost.d.ts +1 -40
  232. package/dist/post/api/deletePost.d.ts.map +1 -1
  233. package/dist/post/api/getPost.d.ts +5 -5
  234. package/dist/post/api/getPost.d.ts.map +1 -1
  235. package/dist/post/api/getPosts.d.ts +4 -4
  236. package/dist/post/api/getPosts.d.ts.map +1 -1
  237. package/dist/post/api/queryPosts.d.ts +4 -8
  238. package/dist/post/api/queryPosts.d.ts.map +1 -1
  239. package/dist/post/api/updatePost.d.ts +1 -1
  240. package/dist/post/api/updatePost.d.ts.map +1 -1
  241. package/dist/post/events/onPostApproved.d.ts +1 -1
  242. package/dist/post/events/onPostCreated.d.ts +1 -1
  243. package/dist/post/events/onPostDeclined.d.ts +1 -1
  244. package/dist/post/events/onPostDeleted.d.ts +1 -1
  245. package/dist/post/events/onPostDeleted.d.ts.map +1 -1
  246. package/dist/post/events/onPostFlagged.d.ts +1 -1
  247. package/dist/post/events/onPostReactionAdded.d.ts +1 -1
  248. package/dist/post/events/onPostReactionAdded.d.ts.map +1 -1
  249. package/dist/post/events/onPostReactionRemoved.d.ts +1 -1
  250. package/dist/post/events/onPostReactionRemoved.d.ts.map +1 -1
  251. package/dist/post/events/onPostUnflagged.d.ts +1 -1
  252. package/dist/post/events/onPostUpdated.d.ts +1 -1
  253. package/dist/post/events/utils.d.ts.map +1 -1
  254. package/dist/post/observers/observePost.d.ts +1 -3
  255. package/dist/post/observers/observePost.d.ts.map +1 -1
  256. package/dist/reaction/api/addReaction.d.ts +1 -1
  257. package/dist/reaction/api/addReaction.d.ts.map +1 -1
  258. package/dist/reaction/api/removeReaction.d.ts +1 -1
  259. package/dist/reaction/api/removeReaction.d.ts.map +1 -1
  260. package/dist/reaction/events/onReactionAdded.d.ts +4 -2
  261. package/dist/reaction/events/onReactionAdded.d.ts.map +1 -1
  262. package/dist/reaction/events/onReactionRemoved.d.ts +4 -2
  263. package/dist/reaction/events/onReactionRemoved.d.ts.map +1 -1
  264. package/dist/reaction/utils/fetchReference.d.ts +1 -1
  265. package/dist/reaction/utils/fetchReference.d.ts.map +1 -1
  266. package/dist/reaction/utils/index.d.ts +1 -0
  267. package/dist/reaction/utils/index.d.ts.map +1 -1
  268. package/dist/reaction/utils/preparePayloadForCache.d.ts +3 -0
  269. package/dist/reaction/utils/preparePayloadForCache.d.ts.map +1 -0
  270. package/dist/report/api/createReport.d.ts.map +1 -1
  271. package/dist/report/api/deleteReport.d.ts.map +1 -1
  272. package/dist/role/api/getRole.d.ts +2 -2
  273. package/dist/role/api/getRole.d.ts.map +1 -1
  274. package/dist/role/api/queryRoles.d.ts +1 -5
  275. package/dist/role/api/queryRoles.d.ts.map +1 -1
  276. package/dist/stream/api/createStream.d.ts +1 -1
  277. package/dist/stream/api/createStream.d.ts.map +1 -1
  278. package/dist/stream/api/deleteStream.d.ts.map +1 -1
  279. package/dist/stream/api/disposeStream.d.ts +1 -1
  280. package/dist/stream/api/disposeStream.d.ts.map +1 -1
  281. package/dist/stream/api/getStream.d.ts +2 -2
  282. package/dist/stream/api/getStream.d.ts.map +1 -1
  283. package/dist/stream/api/queryStreams.d.ts +1 -5
  284. package/dist/stream/api/queryStreams.d.ts.map +1 -1
  285. package/dist/stream/api/updateStream.d.ts +1 -1
  286. package/dist/stream/api/updateStream.d.ts.map +1 -1
  287. package/dist/stream/events/onStreamRecorded.d.ts.map +1 -1
  288. package/dist/stream/events/onStreamStarted.d.ts.map +1 -1
  289. package/dist/stream/events/onStreamStopped.d.ts.map +1 -1
  290. package/dist/user/api/getUser.d.ts +4 -4
  291. package/dist/user/api/getUser.d.ts.map +1 -1
  292. package/dist/user/api/getUsers.d.ts +4 -4
  293. package/dist/user/api/getUsers.d.ts.map +1 -1
  294. package/dist/user/api/queryUsers.d.ts +7 -11
  295. package/dist/user/api/queryUsers.d.ts.map +1 -1
  296. package/dist/user/api/updateUser.d.ts +1 -1
  297. package/dist/user/api/updateUser.d.ts.map +1 -1
  298. package/dist/user/events/onUserFlagCleared.d.ts +1 -1
  299. package/dist/user/events/onUserFlagged.d.ts +1 -1
  300. package/dist/user/events/onUserUnflagged.d.ts +1 -1
  301. package/dist/user/events/onUserUpdated.d.ts +1 -1
  302. package/dist/user/events/utils.d.ts.map +1 -1
  303. package/dist/user/observers/observeUser.d.ts +1 -3
  304. package/dist/user/observers/observeUser.d.ts.map +1 -1
  305. package/package.json +6 -5
  306. package/src/@types/core/cache.ts +56 -9
  307. package/src/@types/core/events.ts +14 -11
  308. package/src/@types/core/model.ts +2 -0
  309. package/src/@types/core/paging.ts +75 -0
  310. package/src/@types/core/permissions.ts +0 -1
  311. package/src/@types/core/query.ts +14 -55
  312. package/src/@types/core/transport.ts +4 -2
  313. package/src/@types/domains/category.ts +0 -1
  314. package/src/@types/domains/channel.ts +0 -1
  315. package/src/@types/domains/client.ts +2 -0
  316. package/src/@types/domains/comment.ts +0 -1
  317. package/src/@types/domains/community.ts +0 -1
  318. package/src/@types/domains/content.ts +17 -15
  319. package/src/@types/domains/file.ts +0 -1
  320. package/src/@types/domains/group.ts +2 -3
  321. package/src/@types/domains/message.ts +0 -1
  322. package/src/@types/domains/post.ts +8 -8
  323. package/src/@types/domains/stream.ts +0 -1
  324. package/src/@types/domains/user.ts +1 -1
  325. package/src/@types/index.ts +1 -1
  326. package/src/@types/mqtt.d.ts +3 -0
  327. package/src/cache/api/backupCache.ts +53 -0
  328. package/src/cache/api/disableCache.ts +23 -0
  329. package/src/cache/api/dropFromCache.ts +44 -0
  330. package/src/cache/api/enableCache.ts +29 -0
  331. package/src/cache/api/index.ts +23 -0
  332. package/src/cache/api/ingestInCache.ts +33 -0
  333. package/src/cache/api/mergeInCache.ts +45 -0
  334. package/src/cache/api/pullFromCache.ts +33 -0
  335. package/src/cache/api/pushToCache.ts +40 -0
  336. package/src/cache/api/queryCache.ts +35 -0
  337. package/src/cache/api/restoreCache.ts +43 -0
  338. package/src/cache/api/snipeIdFromCollection.ts +53 -0
  339. package/src/cache/api/upsertInCache.ts +39 -0
  340. package/src/cache/api/wipeCache.ts +36 -0
  341. package/src/cache/utils/index.ts +84 -0
  342. package/src/category/api/getCategory.ts +3 -4
  343. package/src/category/api/queryCategories.ts +5 -6
  344. package/src/channel/api/addChannelMembers.ts +4 -5
  345. package/src/channel/api/addChannelMembersRole.ts +3 -5
  346. package/src/channel/api/createChannel.ts +16 -11
  347. package/src/channel/api/deleteChannel.ts +2 -2
  348. package/src/channel/api/getChannel.ts +22 -9
  349. package/src/channel/api/getChannels.ts +25 -12
  350. package/src/channel/api/joinChannel.ts +5 -6
  351. package/src/channel/api/leaveChannel.ts +5 -6
  352. package/src/channel/api/queryChannelMembers.ts +9 -11
  353. package/src/channel/api/queryChannels.ts +19 -12
  354. package/src/channel/api/removeChannelMembers.ts +4 -5
  355. package/src/channel/api/removeChannelMembersRole.ts +3 -5
  356. package/src/channel/api/updateChannel.ts +9 -7
  357. package/src/channel/events/onChannelDeleted.ts +1 -3
  358. package/src/channel/events/onChannelJoined.ts +1 -3
  359. package/src/channel/events/onChannelLeft.ts +1 -3
  360. package/src/channel/events/onChannelUpdated.ts +1 -3
  361. package/src/channel/events/onMemberAdded.ts +1 -3
  362. package/src/channel/events/onMemberRemoved.ts +1 -3
  363. package/src/channel/observers/observeChannel.ts +20 -14
  364. package/src/client/api/connectClient.ts +7 -7
  365. package/src/client/api/disconnectClient.ts +3 -0
  366. package/src/client/api/getToken.ts +3 -2
  367. package/src/client/api/index.ts +3 -2
  368. package/src/comment/api/createComment.ts +10 -7
  369. package/src/comment/api/deleteComment.ts +9 -8
  370. package/src/comment/api/getComment.ts +22 -10
  371. package/src/comment/api/getComments.ts +25 -12
  372. package/src/comment/api/queryComments.ts +35 -89
  373. package/src/comment/api/updateComment.ts +9 -6
  374. package/src/comment/events/onCommentCreated.ts +3 -3
  375. package/src/comment/events/onCommentDeleted.ts +3 -3
  376. package/src/comment/events/onCommentFlagged.ts +3 -3
  377. package/src/comment/events/onCommentReactionAdded.ts +40 -6
  378. package/src/comment/events/onCommentReactionRemoved.ts +40 -6
  379. package/src/comment/events/onCommentUnflagged.ts +3 -3
  380. package/src/comment/events/onCommentUpdated.ts +3 -3
  381. package/src/comment/events/utils.ts +30 -8
  382. package/src/comment/observers/observeComment.ts +20 -25
  383. package/src/community/api/addCommunityMembers.ts +5 -6
  384. package/src/community/api/addCommunityMembersRole.ts +3 -5
  385. package/src/community/api/createCommunity.ts +9 -6
  386. package/src/community/api/deleteCommunity.ts +3 -3
  387. package/src/community/api/getCommunities.ts +25 -12
  388. package/src/community/api/getCommunity.ts +23 -9
  389. package/src/community/api/joinCommunity.ts +7 -5
  390. package/src/community/api/leaveCommunity.ts +7 -5
  391. package/src/community/api/queryCommunities.ts +18 -12
  392. package/src/community/api/queryCommunityMembers.ts +10 -11
  393. package/src/community/api/removeCommunityMembers.ts +4 -5
  394. package/src/community/api/removeCommunityMembersRole.ts +3 -5
  395. package/src/community/api/updateCommunity.ts +10 -7
  396. package/src/community/events/onCommunityCreated.ts +1 -1
  397. package/src/community/events/onCommunityDeleted.ts +1 -1
  398. package/src/community/events/onCommunityJoined.ts +5 -5
  399. package/src/community/events/onCommunityLeft.ts +5 -5
  400. package/src/community/events/onCommunityUpdated.ts +1 -1
  401. package/src/community/events/onCommunityUserAdded.ts +5 -5
  402. package/src/community/events/onCommunityUserBanned.ts +5 -5
  403. package/src/community/events/onCommunityUserRemoved.ts +5 -5
  404. package/src/community/events/onCommunityUserUnbanned.ts +5 -5
  405. package/src/community/events/utils.ts +94 -4
  406. package/src/community/observers/observeCommunity.ts +21 -22
  407. package/src/core/model/idResolvers.ts +10 -40
  408. package/src/core/model/identifyModel.ts +37 -16
  409. package/src/core/model/index.ts +22 -2
  410. package/src/core/query/index.ts +0 -1
  411. package/src/core/query/paging.ts +43 -3
  412. package/src/core/query/query.ts +63 -115
  413. package/src/core/subscription.ts +66 -17
  414. package/src/core/transports/mqtt.ts +86 -20
  415. package/src/core/transports/ws.ts +1 -0
  416. package/src/feed/api/queryGlobalFeed.ts +7 -10
  417. package/src/file/api/createFile.ts +8 -6
  418. package/src/file/api/deleteFile.ts +5 -6
  419. package/src/file/api/getFile.ts +21 -9
  420. package/src/file/observers/observeFile.ts +5 -7
  421. package/src/index.ts +6 -6
  422. package/src/message/api/createMessage.ts +21 -17
  423. package/src/message/api/deleteMessage.ts +12 -11
  424. package/src/message/api/getMessage.ts +22 -10
  425. package/src/message/api/getMessages.ts +25 -12
  426. package/src/message/api/queryMessages.ts +34 -68
  427. package/src/message/api/updateMessage.ts +22 -12
  428. package/src/message/events/onMessageCreated.ts +1 -3
  429. package/src/message/events/onMessageDeleted.ts +1 -3
  430. package/src/message/events/onMessageUpdated.ts +1 -3
  431. package/src/message/observers/observeMessage.ts +8 -10
  432. package/src/message/observers/observeMessages.ts +6 -6
  433. package/src/post/api/createPost.ts +9 -6
  434. package/src/post/api/deletePost.ts +11 -9
  435. package/src/post/api/getPost.ts +26 -14
  436. package/src/post/api/getPosts.ts +27 -14
  437. package/src/post/api/queryPosts.ts +46 -19
  438. package/src/post/api/updatePost.ts +10 -6
  439. package/src/post/events/onPostApproved.ts +1 -1
  440. package/src/post/events/onPostCreated.ts +1 -1
  441. package/src/post/events/onPostDeclined.ts +1 -1
  442. package/src/post/events/onPostDeleted.ts +2 -2
  443. package/src/post/events/onPostFlagged.ts +1 -1
  444. package/src/post/events/onPostReactionAdded.ts +38 -4
  445. package/src/post/events/onPostReactionRemoved.ts +38 -4
  446. package/src/post/events/onPostUnflagged.ts +1 -1
  447. package/src/post/events/onPostUpdated.ts +1 -1
  448. package/src/post/events/utils.ts +39 -6
  449. package/src/post/observers/observePost.ts +22 -27
  450. package/src/reaction/api/addReaction.ts +30 -20
  451. package/src/reaction/api/removeReaction.ts +30 -20
  452. package/src/reaction/events/onReactionAdded.ts +37 -18
  453. package/src/reaction/events/onReactionRemoved.ts +38 -15
  454. package/src/reaction/utils/fetchReference.ts +1 -1
  455. package/src/reaction/utils/index.ts +1 -0
  456. package/src/reaction/utils/preparePayloadForCache.ts +45 -0
  457. package/src/report/api/createReport.ts +4 -5
  458. package/src/report/api/deleteReport.ts +4 -5
  459. package/src/role/api/getRole.ts +25 -9
  460. package/src/role/api/queryRoles.ts +10 -12
  461. package/src/stream/api/createStream.ts +9 -6
  462. package/src/stream/api/deleteStream.ts +10 -1
  463. package/src/stream/api/disposeStream.ts +10 -6
  464. package/src/stream/api/getStream.ts +23 -10
  465. package/src/stream/api/queryStreams.ts +10 -11
  466. package/src/stream/api/updateStream.ts +9 -6
  467. package/src/stream/events/onStreamRecorded.ts +1 -3
  468. package/src/stream/events/onStreamStarted.ts +1 -3
  469. package/src/stream/events/onStreamStopped.ts +1 -3
  470. package/src/user/api/getUser.ts +14 -11
  471. package/src/user/api/getUsers.ts +30 -14
  472. package/src/user/api/queryUsers.ts +40 -17
  473. package/src/user/api/updateUser.ts +10 -7
  474. package/src/user/events/onUserFlagCleared.ts +1 -1
  475. package/src/user/events/onUserFlagged.ts +1 -1
  476. package/src/user/events/onUserUnflagged.ts +1 -1
  477. package/src/user/events/onUserUpdated.ts +1 -1
  478. package/src/user/events/utils.ts +6 -4
  479. package/src/user/observers/observeUser.ts +9 -11
  480. package/dist/@types/core/store.d.ts +0 -46
  481. package/dist/@types/core/store.d.ts.map +0 -1
  482. package/dist/client/api/clearCache.d.ts +0 -15
  483. package/dist/client/api/clearCache.d.ts.map +0 -1
  484. package/dist/client/api/enableCache.d.ts +0 -15
  485. package/dist/client/api/enableCache.d.ts.map +0 -1
  486. package/dist/core/cache/drop.d.ts +0 -11
  487. package/dist/core/cache/drop.d.ts.map +0 -1
  488. package/dist/core/cache/index.d.ts +0 -19
  489. package/dist/core/cache/index.d.ts.map +0 -1
  490. package/dist/core/cache/ingest.d.ts +0 -10
  491. package/dist/core/cache/ingest.d.ts.map +0 -1
  492. package/dist/core/cache/merge.d.ts +0 -10
  493. package/dist/core/cache/merge.d.ts.map +0 -1
  494. package/dist/core/cache/mutate.d.ts +0 -10
  495. package/dist/core/cache/mutate.d.ts.map +0 -1
  496. package/dist/core/cache/pull.d.ts +0 -11
  497. package/dist/core/cache/pull.d.ts.map +0 -1
  498. package/dist/core/cache/push.d.ts +0 -10
  499. package/dist/core/cache/push.d.ts.map +0 -1
  500. package/dist/core/cache/sync.d.ts +0 -10
  501. package/dist/core/cache/sync.d.ts.map +0 -1
  502. package/dist/core/model/toRecord.d.ts +0 -10
  503. package/dist/core/model/toRecord.d.ts.map +0 -1
  504. package/dist/core/query/decorate.d.ts +0 -23
  505. package/dist/core/query/decorate.d.ts.map +0 -1
  506. package/dist/core/stores/index.d.ts +0 -3
  507. package/dist/core/stores/index.d.ts.map +0 -1
  508. package/dist/core/stores/memory.d.ts +0 -30
  509. package/dist/core/stores/memory.d.ts.map +0 -1
  510. package/dist/core/stores/persistent.d.ts +0 -13
  511. package/dist/core/stores/persistent.d.ts.map +0 -1
  512. package/src/@types/core/store.ts +0 -52
  513. package/src/client/api/clearCache.ts +0 -23
  514. package/src/client/api/enableCache.ts +0 -36
  515. package/src/core/cache/drop.ts +0 -24
  516. package/src/core/cache/index.ts +0 -24
  517. package/src/core/cache/ingest.ts +0 -24
  518. package/src/core/cache/merge.ts +0 -19
  519. package/src/core/cache/mutate.ts +0 -25
  520. package/src/core/cache/pull.ts +0 -31
  521. package/src/core/cache/push.ts +0 -41
  522. package/src/core/cache/sync.ts +0 -41
  523. package/src/core/model/toRecord.ts +0 -11
  524. package/src/core/query/decorate.ts +0 -64
  525. package/src/core/stores/index.ts +0 -2
  526. package/src/core/stores/memory.ts +0 -59
  527. package/src/core/stores/persistent.ts +0 -63
@@ -0,0 +1,75 @@
1
+ export {}
2
+
3
+ declare global {
4
+ namespace Amity {
5
+ type SkipLimitPagination = {
6
+ skip?: number
7
+ limit?: number
8
+ }
9
+
10
+ /*
11
+ WARNING:
12
+ in traditional "before/after" pagination, 'before' and 'after'
13
+ normally should be strings representing the unique id of the
14
+ resource. for some reason, our backend uses a number instead,
15
+ bound to "channelSegment" (for message) and "segmentNumber" (
16
+ for comments). so we have to cast this as number.
17
+ */
18
+ type AfterBeforePagination = {
19
+ before?: number
20
+ after?: number
21
+ first?: number
22
+ last?: number
23
+ }
24
+
25
+ type PrevPage = {
26
+ after?: never
27
+ before?: number
28
+ limit: number
29
+ }
30
+
31
+ type NextPage = {
32
+ after?: number
33
+ before?: never
34
+ limit: number
35
+ }
36
+
37
+ type Page = (PrevPage | NextPage)
38
+
39
+ type Pages = {
40
+ nextPage?: Page | null
41
+ prevPage?: Page | null
42
+ }
43
+
44
+ type Paged<T> = { data: T[] } & Pages
45
+
46
+ type AfterBeforeRawPagination = {
47
+ before?: string
48
+ after?: string
49
+ updatedAt?: string
50
+ }
51
+
52
+ type PrevPageRaw = {
53
+ after?: never
54
+ before?: string
55
+ limit: number
56
+ updatedAt?: string
57
+ }
58
+
59
+ type NextPageRaw = {
60
+ after?: string
61
+ before?: never
62
+ limit: number
63
+ updatedAt?: string
64
+ }
65
+
66
+ type PageRaw = (PrevPageRaw | NextPageRaw)
67
+
68
+ type PagesRaw = {
69
+ nextPage?: PageRaw | null
70
+ prevPage?: PageRaw | null
71
+ }
72
+
73
+ type PagedRaw<T> = { data: T[] } & PagesRaw
74
+ }
75
+ }
@@ -71,6 +71,5 @@ declare global {
71
71
  }
72
72
  & Amity.Timestamps
73
73
  & Amity.SoftDelete
74
- & Amity.Syncable
75
74
  }
76
75
  }
@@ -2,14 +2,12 @@ export {}
2
2
 
3
3
  declare global {
4
4
  namespace Amity {
5
- type Syncable = {
6
- localId: string
7
- syncedAt: number
5
+ type Cachable = {
6
+ cachedAt: number
8
7
  }
9
8
 
10
9
  type Local = {
11
- localId: string
12
- syncedAt: -1
10
+ cachedAt: -1
13
11
  }
14
12
 
15
13
  type AsyncFunc<Args extends any[], Returned extends any> = {
@@ -18,12 +16,12 @@ declare global {
18
16
 
19
17
  type FetcherFunc<Args extends any[], Returned extends any> = {
20
18
  (...args: Args): Promise<Returned>
21
- locally: (...args: Args) => Returned
19
+ locally: (...args: Args) => Returned | undefined
22
20
  }
23
21
 
24
22
  type MutatorFunc<Args extends any[], Returned extends any> = {
25
23
  (...args: Args): Promise<Returned>
26
- optimistically: (...args: Args) => Returned
24
+ optimistically: (...args: Args) => Returned | undefined
27
25
  }
28
26
 
29
27
  type OfflineFunc<Args extends any[], Returned extends any> = (
@@ -41,55 +39,16 @@ declare global {
41
39
  lifeSpan: number
42
40
  }
43
41
 
44
- type QueryMetadata = {
45
- origin?: 'local' | 'server',
46
- loading?: boolean,
47
- error?: Error,
42
+ type SnapshotOptions = {
43
+ origin: 'local' | 'server' | 'event'
44
+ loading: boolean
45
+ error?: any
48
46
  }
49
47
 
50
- type QueryResult<T> = T extends Amity.Paged<infer U>
51
- ? { data?: U } & Amity.Pages & QueryMetadata
52
- : { data?: T } & QueryMetadata
53
-
54
- type SkipLimitPagination = {
55
- skip?: number
56
- limit?: number
57
- }
58
-
59
- /*
60
- WARNING:
61
- in traditional "before/after" pagination, 'before' and 'after'
62
- normally should be strings representing the unique id of the
63
- resource. for some reason, our backend uses a number instead,
64
- bound to "channelSegment" (for message) and "segmentNumber" (
65
- for comments). so we have to cast this as number.
66
- */
67
- type AfterBeforePagination = {
68
- before?: number
69
- after?: number
70
- first?: number
71
- last?: number
72
- }
73
-
74
- type PrevPage = {
75
- after?: never
76
- before?: number
77
- limit: number
78
- }
79
-
80
- type NextPage = {
81
- after?: number
82
- before?: never
83
- limit: number
84
- }
85
-
86
- type Page = (PrevPage | NextPage)
87
-
88
- type Pages = {
89
- nextPage: Page | null
90
- prevPage: Page | null
91
- }
92
-
93
- type Paged<T> = { data: T } & Pages
48
+ type Snapshot<T> = (
49
+ T extends Amity.Cached<infer K> ? { data: K } :
50
+ T extends (Amity.PagedRaw<any> | Amity.Paged<any>) ? T :
51
+ { data: T }
52
+ ) & SnapshotOptions
94
53
  }
95
54
  }
@@ -1,3 +1,5 @@
1
+ import { ASCError } from '~/core/errors'
2
+
1
3
  export {}
2
4
 
3
5
  declare global {
@@ -37,8 +39,8 @@ declare global {
37
39
  once: <T extends keyof Amity.MqttEvents>(event: T, handler: (payload: Amity.MqttEvents[T]) => void) => void
38
40
  off: <T extends keyof Amity.MqttEvents>(event: T, handler?: (payload: Amity.MqttEvents[T]) => void) => void
39
41
  removeAllListeners: () => void
40
- subscribe: (topic: string, handler?: (error: Error, granted: Object) => void) => void
41
- unsubscribe: (topic: string, handler?: (payload: Object) => void) => void
42
+ subscribe: (topic: string, callback?: Amity.Listener<ASCError | void>) => Amity.Unsubscriber
43
+ unsubscribe: (topic: string) => void
42
44
  }
43
45
  }
44
46
  }
@@ -10,6 +10,5 @@ declare global {
10
10
  & Amity.Metadata
11
11
  & Amity.Timestamps
12
12
  & Amity.SoftDelete
13
- & Amity.Syncable
14
13
  }
15
14
  }
@@ -33,6 +33,5 @@ declare global {
33
33
  & Amity.Taggable
34
34
  & Amity.Timestamps
35
35
  & Amity.SoftDelete
36
- & Amity.Syncable
37
36
  }
38
37
  }
@@ -18,6 +18,8 @@ declare global {
18
18
 
19
19
  apiKey?: string
20
20
  userId?: string
21
+ user?: Amity.User
22
+ accessToken?: string
21
23
 
22
24
  use: () => void
23
25
  }
@@ -21,7 +21,6 @@ declare global {
21
21
  & Amity.Reactable
22
22
  & Amity.Timestamps
23
23
  & Amity.SoftDelete
24
- & Amity.Syncable
25
24
  & Amity.Subscribable
26
25
  }
27
26
  }
@@ -30,7 +30,6 @@ declare global {
30
30
  & Amity.Metadata
31
31
  & Amity.Timestamps
32
32
  & Amity.SoftDelete
33
- & Amity.Syncable
34
33
  & Amity.Subscribable
35
34
  }
36
35
  }
@@ -4,30 +4,32 @@ declare global {
4
4
  namespace Amity {
5
5
  type ContentType = ('text' | 'image' | 'file' | 'video' | 'json' | string)
6
6
 
7
- type ContentDataText = { text: string }
8
- type ContentDataFile = { fileId: Amity.File<'file'>['fileId'] }
9
- type ContentDataImage = { imageId: Amity.File<'image'>['fileId'] }
10
- type ContentDataVideo = { videoId: Amity.File<'file'>['fileId'] }
7
+ type ContentDataText = {
8
+ text: string
9
+ }
10
+
11
+ type ContentDataFile = {
12
+ fileId: Amity.File<'file'>['fileId']
13
+ }
14
+
15
+ type ContentDataImage = {
16
+ imageId: Amity.File<'image'>['fileId']
17
+ }
18
+
19
+ type ContentDataVideo = {
20
+ videoId: Amity.File<'file'>['fileId']
21
+ }
11
22
 
12
23
  type ContentData<T extends ContentType> = (
13
24
  T extends 'text' ? ContentDataText :
14
25
  T extends 'file' ? ContentDataFile :
15
26
  T extends 'image' ? ContentDataImage :
16
27
  T extends 'video' ? ContentDataVideo :
17
- T extends 'json' ? object :
18
- T extends string ? any : // custom type
28
+ T extends 'json' ? Record<string, unknown> :
29
+ T extends string ? string | Record<string, unknown> : // custom type
19
30
  never
20
31
  )
21
32
 
22
- type ContentTypeFor<T> = (
23
- T extends ContentDataText ? 'text' :
24
- T extends ContentDataFile ? 'file' :
25
- T extends ContentDataImage ? 'image' :
26
- T extends ContentDataVideo ? 'video' :
27
- T extends object ? 'json' :
28
- 'custom'
29
- )
30
-
31
33
  type Content<T extends ContentType, K extends 'type' | 'dataType' = 'dataType'> = (
32
34
  { [S in K]?: T } & { data: ContentData<T> }
33
35
  )
@@ -36,6 +36,5 @@ declare global {
36
36
  }
37
37
  & Amity.Timestamps
38
38
  & Amity.SoftDelete
39
- & Amity.Syncable
40
39
  }
41
40
  }
@@ -13,12 +13,12 @@ declare global {
13
13
  } & (
14
14
  T extends 'channel' ? {
15
15
  channelId: Amity.Channel['channelId']
16
- membership: 'member' | 'notMember' | 'banned'
16
+ membership: 'member' | 'none' | 'banned'
17
17
  readToSegment: number
18
18
  } :
19
19
  T extends 'community' ? {
20
20
  communityId: Amity.Community['communityId']
21
- communityMembership: 'member' | 'notMember' | 'banned'
21
+ communityMembership: 'member' | 'none' | 'banned'
22
22
  } :
23
23
  never
24
24
  )
@@ -33,6 +33,5 @@ declare global {
33
33
  }
34
34
  & Member<T>
35
35
  & Amity.Accredited
36
- & Amity.Syncable
37
36
  }
38
37
  }
@@ -21,7 +21,6 @@ declare global {
21
21
  & Amity.Metadata
22
22
  & Amity.Timestamps
23
23
  & Amity.SoftDelete
24
- & Amity.Syncable
25
24
  & Amity.Reactable
26
25
  }
27
26
  }
@@ -20,13 +20,13 @@ declare global {
20
20
  hasFlaggedChildren: false
21
21
  hasFlaggedComment: false
22
22
  editedAt: timestamp,
23
- } & Amity.Content<T, 'dataType'> &
24
- Amity.Metadata &
25
- Amity.Flaggable &
26
- Amity.Reactable &
27
- Amity.Timestamps &
28
- Amity.SoftDelete &
29
- Amity.Syncable
30
- & Amity.Subscribable
23
+ }
24
+ & Amity.Content<T, 'dataType'>
25
+ & Amity.Metadata
26
+ & Amity.Flaggable
27
+ & Amity.Reactable
28
+ & Amity.Timestamps
29
+ & Amity.SoftDelete
30
+ & Amity.Subscribable
31
31
  }
32
32
  }
@@ -64,6 +64,5 @@ declare global {
64
64
  & Amity.Metadata
65
65
  & Amity.Timestamps
66
66
  & Amity.SoftDelete
67
- & Amity.Syncable
68
67
  }
69
68
  }
@@ -3,6 +3,7 @@ export {}
3
3
  declare global {
4
4
  namespace Amity {
5
5
  type User = {
6
+ _id: string
6
7
  userId: string
7
8
  displayName?: string
8
9
  avatarFileId?: Amity.File<'image'>['fileId']
@@ -13,7 +14,6 @@ declare global {
13
14
  & Amity.Flaggable
14
15
  & Amity.Accredited
15
16
  & Amity.Timestamps
16
- & Amity.Syncable
17
17
  & Amity.Subscribable
18
18
  }
19
19
  }
@@ -5,8 +5,8 @@ import './core/permissions' // permissions enum
5
5
 
6
6
  import './core/payload' // backend payload definition
7
7
  import './core/events' // sdk events definitions
8
+ import './core/paging' // createQuery, runQuery
8
9
  import './core/query' // createQuery, runQuery
9
- import './core/store' // store definition
10
10
  import './core/cache' // cache.pull('user', ...)
11
11
 
12
12
  // domains
@@ -0,0 +1,3 @@
1
+ declare module 'mqtt/dist/mqtt' {
2
+ export * from 'mqtt';
3
+ }
@@ -0,0 +1,53 @@
1
+ import AsyncStorage from '@react-native-async-storage/async-storage'
2
+
3
+ import { getActiveClient } from '~/client/api/activeClient'
4
+
5
+ /**
6
+ * ```js
7
+ * import { backupCache } from '@amityco/ts-sdk'
8
+ * const success = await backupCache()
9
+ * ```
10
+ *
11
+ * Writes the {@link Amity.Cache} to a persistent storage.
12
+ *
13
+ * The strategy for persistent storage will depend on the runtime,
14
+ * which is supported by @react-native-async-storage/async-storage.
15
+ *
16
+ * The current userId will be appended to the given storageKey to avoid
17
+ * collision between multiple client instances over time.
18
+ *
19
+ * @param storageKey the name of the persistent storage
20
+ * @param persistIf a custom function to define the persistence policy. Default
21
+ * will check the value of {@link Amity.CacheEntry["offline"]}, which can be
22
+ * defined globally when customizing {@link Amity.Cache["persistIf"]}
23
+ * @returns a success boolean if the cache was dumped to persistent storage
24
+ *
25
+ * @category Cache API
26
+ */
27
+ export const backupCache = async (
28
+ storageKey: string = 'amitySdk',
29
+ persistIf = (entry: Amity.CacheEntry) => entry.offline,
30
+ ) => {
31
+ const { log, cache, userId } = getActiveClient()
32
+
33
+ if (!cache) return false
34
+ log('cache/api/backupCache', { storageKey })
35
+
36
+ // prepare a subset of the cache where only
37
+ // objects to backup are there
38
+ const offlineEntries = Object.fromEntries(
39
+ Object.entries(cache.data)
40
+ .filter(([_, entry]) => persistIf(entry))
41
+ )
42
+
43
+ // nothing to backup, abort
44
+ if (!Object.keys(offlineEntries).length)
45
+ return false
46
+
47
+ await AsyncStorage.setItem(
48
+ `${storageKey}#${userId}`,
49
+ JSON.stringify(offlineEntries),
50
+ )
51
+
52
+ return true
53
+ }
@@ -0,0 +1,23 @@
1
+ import { getActiveClient } from '~/client/api/activeClient'
2
+
3
+ /**
4
+ * ```js
5
+ * import { disableCache } from '@amityco/ts-sdk'
6
+ * disableCache()
7
+ * ```
8
+ *
9
+ * Wipes the existing {@link Amity.Cache} object attached to
10
+ * an {@link Amity.Client} instance
11
+ *
12
+ * @category Cache API
13
+ */
14
+ export const disableCache = () => {
15
+ const client = getActiveClient()
16
+
17
+ if (!client.cache) return
18
+ client.log('cache/api/disableCache')
19
+
20
+ // we do this so that testing if cache is enabled
21
+ // is only `if (client.cache)
22
+ delete client.cache
23
+ }
@@ -0,0 +1,44 @@
1
+ import { getActiveClient } from '~/client/api/activeClient'
2
+ import { decodeKey, encodeKey, partialMatch } from '../utils'
3
+
4
+ /**
5
+ * ```js
6
+ * import { dropFromCache } from '@amityco/ts-sdk'
7
+ * const success = dropFromCache(['user', 'foobar'])
8
+ * ```
9
+ *
10
+ * Removes an existing {@link Amity.CacheEntry} from the {@link Amity.Client}'s
11
+ * {@link Amity.Cache} from a given {@link Amity.CacheKey}
12
+ *
13
+ * @param key The key of the object to delete
14
+ * @param exact If false, the function will delete all keys satisfying the given key
15
+ * @returns A success boolean if the object was deleted
16
+ *
17
+ * @category Cache API
18
+ */
19
+ export const dropFromCache = (
20
+ key: Amity.CacheKey,
21
+ exact: boolean = false,
22
+ ): boolean => {
23
+ const { log, cache } = getActiveClient()
24
+
25
+ if (!cache) return false
26
+ log('cache/api/dropFromCache', { key, exact })
27
+
28
+ if (!exact) {
29
+ return (Object.keys(cache.data))
30
+ .map(stringKey => decodeKey(stringKey))
31
+ .filter(candidate => partialMatch(key, candidate))
32
+ .map<boolean>(filteredKey => dropFromCache(filteredKey, true))
33
+ .every(returned => returned)
34
+ }
35
+
36
+ const encodedKey = encodeKey(key)
37
+
38
+ if (encodedKey in cache.data) {
39
+ delete cache.data[encodedKey]
40
+ return true
41
+ }
42
+
43
+ return false
44
+ }
@@ -0,0 +1,29 @@
1
+ import { getActiveClient } from '~/client/api/activeClient'
2
+
3
+ /**
4
+ * ```js
5
+ * import { enableCache } from '@amityco/ts-sdk'
6
+ * enableCache()
7
+ * ```
8
+ *
9
+ * Adds a new {@link Amity.Cache} object to
10
+ * an {@link Amity.Client} instance
11
+ *
12
+ * @param prevState a previous state of cache instance (useful for SSR)
13
+ * @param persistIf a function to determine if an entry inserted in cache
14
+ * is destined to be also saved in the persistent storage when
15
+ * calling {@link backupCache}
16
+ *
17
+ * @category Cache API
18
+ */
19
+ export const enableCache = (
20
+ prevState: Amity.Cache['data'] = {},
21
+ persistIf?: Amity.Cache['persistIf'],
22
+ ) => {
23
+ const client = getActiveClient()
24
+
25
+ if (client.cache) return
26
+ client.log('cache/api/enableCache')
27
+
28
+ client.cache = { data: prevState, persistIf }
29
+ }
@@ -0,0 +1,23 @@
1
+ // on/off
2
+ export * from './enableCache'
3
+ export * from './disableCache'
4
+
5
+ // persistency
6
+ export * from './restoreCache'
7
+ export * from './backupCache'
8
+ export * from './wipeCache'
9
+
10
+ // fetch
11
+ export * from './queryCache'
12
+ export * from './pullFromCache'
13
+
14
+ // mutate
15
+ export * from './pushToCache'
16
+ export * from './mergeInCache'
17
+ export * from './upsertInCache'
18
+ export * from './dropFromCache'
19
+
20
+ /*
21
+ * ingestInCache and syncInCache are not exported ;
22
+ * we don't want it as part of the sdk's public api.
23
+ */
@@ -0,0 +1,33 @@
1
+ import { PAYLOAD2MODEL, getResolver } from '~/core/model'
2
+
3
+ import { upsertInCache } from './upsertInCache';
4
+
5
+ /**
6
+ * Ingest a payload (v3) into the cache
7
+ *
8
+ * @param payload a "backend v3" payload object
9
+ * @param order the order of the keys to process (in case of need)
10
+ *
11
+ * @category Cache
12
+ * @hidden
13
+ */
14
+ export const ingestInCache = (
15
+ payload: Record<string, Record<string, unknown>[]> = {},
16
+ options?: Amity.CacheOptions,
17
+ ) => {
18
+ Object.entries(payload)
19
+ .forEach(([key, models]) => {
20
+ const type = PAYLOAD2MODEL[key];
21
+ if (!type) return
22
+
23
+ const resolver = getResolver(type);
24
+ models.forEach(model => {
25
+ upsertInCache(
26
+ // eslint-disable @typescript-eslint no-explicit-any
27
+ [type, 'get', resolver(model as any)], // this 'any' cannot be avoided, sorry.
28
+ model,
29
+ options,
30
+ );
31
+ })
32
+ })
33
+ }
@@ -0,0 +1,45 @@
1
+ import { getActiveClient } from '~/client/api/activeClient'
2
+
3
+ import { pullFromCache } from './pullFromCache'
4
+ import { pushToCache } from './pushToCache'
5
+
6
+ /**
7
+ * ```js
8
+ * import { mergeInCache } from '@amityco/ts-sdk'
9
+ *
10
+ * mergeInCache(
11
+ * ["foo", "bar"],
12
+ * (oldVal) => ({ ...oldVal, ...newVal }).
13
+ * )
14
+ * ```
15
+ *
16
+ * Merges a new {@link Amity.Cache} object to an {@link Amity.Client} instance
17
+ *
18
+ * @param key the key matching the object to retrieve from cache
19
+ * @param mutation either a plain object to shallow merge, or a function.
20
+ * @returns a success boolean if the object was updated
21
+ *
22
+ * @category Cache API
23
+ */
24
+ export const mergeInCache = <T extends {}>(
25
+ key: Amity.CacheKey,
26
+ mutation: Partial<T> | ((oldVal: T) => T),
27
+ options?: Amity.CacheOptions,
28
+ ): boolean => {
29
+ const { log, cache } = getActiveClient()
30
+
31
+ if (!cache) return false
32
+ log('cache/api/mergeInCache', { key, mutation })
33
+
34
+ const oldVal = pullFromCache<T>(key);
35
+
36
+ if (!oldVal)
37
+ return false;
38
+
39
+ const newVal = typeof mutation === 'function'
40
+ ? mutation(oldVal.data)
41
+ : { ...oldVal.data, ...mutation };
42
+
43
+ pushToCache(key, newVal, options);
44
+ return true;
45
+ };