@amityco/ts-sdk 7.8.0 → 7.8.1-1b0200c.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 (174) hide show
  1. package/.env +26 -26
  2. package/.rollup.cache/home/runner/work/AmityTypescriptSDK/AmityTypescriptSDK/packages/sdk/dist/@types/domains/feed.d.ts +4 -0
  3. package/.rollup.cache/home/runner/work/AmityTypescriptSDK/AmityTypescriptSDK/packages/sdk/dist/@types/domains/feed.d.ts.map +1 -1
  4. package/.rollup.cache/home/runner/work/AmityTypescriptSDK/AmityTypescriptSDK/packages/sdk/dist/@types/domains/feed.js.map +1 -1
  5. package/.rollup.cache/home/runner/work/AmityTypescriptSDK/AmityTypescriptSDK/packages/sdk/dist/@types/domains/notification.d.ts +2 -1
  6. package/.rollup.cache/home/runner/work/AmityTypescriptSDK/AmityTypescriptSDK/packages/sdk/dist/@types/domains/notification.d.ts.map +1 -1
  7. package/.rollup.cache/home/runner/work/AmityTypescriptSDK/AmityTypescriptSDK/packages/sdk/dist/@types/domains/notification.js.map +1 -1
  8. package/.rollup.cache/home/runner/work/AmityTypescriptSDK/AmityTypescriptSDK/packages/sdk/dist/commentRepository/api/deleteComment.js +6 -6
  9. package/.rollup.cache/home/runner/work/AmityTypescriptSDK/AmityTypescriptSDK/packages/sdk/dist/commentRepository/api/deleteComment.js.map +1 -1
  10. package/.rollup.cache/home/runner/work/AmityTypescriptSDK/AmityTypescriptSDK/packages/sdk/dist/core/model/index.d.ts.map +1 -1
  11. package/.rollup.cache/home/runner/work/AmityTypescriptSDK/AmityTypescriptSDK/packages/sdk/dist/core/model/index.js +2 -1
  12. package/.rollup.cache/home/runner/work/AmityTypescriptSDK/AmityTypescriptSDK/packages/sdk/dist/core/model/index.js.map +1 -1
  13. package/.rollup.cache/home/runner/work/AmityTypescriptSDK/AmityTypescriptSDK/packages/sdk/dist/feedRepository/api/index.d.ts +0 -1
  14. package/.rollup.cache/home/runner/work/AmityTypescriptSDK/AmityTypescriptSDK/packages/sdk/dist/feedRepository/api/index.d.ts.map +1 -1
  15. package/.rollup.cache/home/runner/work/AmityTypescriptSDK/AmityTypescriptSDK/packages/sdk/dist/feedRepository/api/index.js +0 -1
  16. package/.rollup.cache/home/runner/work/AmityTypescriptSDK/AmityTypescriptSDK/packages/sdk/dist/feedRepository/api/index.js.map +1 -1
  17. package/.rollup.cache/home/runner/work/AmityTypescriptSDK/AmityTypescriptSDK/packages/sdk/dist/feedRepository/api/queryGlobalFeed.d.ts +3 -0
  18. package/.rollup.cache/home/runner/work/AmityTypescriptSDK/AmityTypescriptSDK/packages/sdk/dist/feedRepository/api/queryGlobalFeed.d.ts.map +1 -1
  19. package/.rollup.cache/home/runner/work/AmityTypescriptSDK/AmityTypescriptSDK/packages/sdk/dist/feedRepository/api/queryGlobalFeed.js +3 -0
  20. package/.rollup.cache/home/runner/work/AmityTypescriptSDK/AmityTypescriptSDK/packages/sdk/dist/feedRepository/api/queryGlobalFeed.js.map +1 -1
  21. package/.rollup.cache/home/runner/work/AmityTypescriptSDK/AmityTypescriptSDK/packages/sdk/dist/feedRepository/index.d.ts +2 -1
  22. package/.rollup.cache/home/runner/work/AmityTypescriptSDK/AmityTypescriptSDK/packages/sdk/dist/feedRepository/index.d.ts.map +1 -1
  23. package/.rollup.cache/home/runner/work/AmityTypescriptSDK/AmityTypescriptSDK/packages/sdk/dist/feedRepository/index.js +2 -1
  24. package/.rollup.cache/home/runner/work/AmityTypescriptSDK/AmityTypescriptSDK/packages/sdk/dist/feedRepository/index.js.map +1 -1
  25. package/.rollup.cache/home/runner/work/AmityTypescriptSDK/AmityTypescriptSDK/packages/sdk/dist/feedRepository/observers/getCustomRankingGlobalFeed/LiveCollectionController.d.ts +13 -0
  26. package/.rollup.cache/home/runner/work/AmityTypescriptSDK/AmityTypescriptSDK/packages/sdk/dist/feedRepository/observers/getCustomRankingGlobalFeed/LiveCollectionController.d.ts.map +1 -0
  27. package/.rollup.cache/home/runner/work/AmityTypescriptSDK/AmityTypescriptSDK/packages/sdk/dist/feedRepository/observers/getCustomRankingGlobalFeed/LiveCollectionController.js +60 -0
  28. package/.rollup.cache/home/runner/work/AmityTypescriptSDK/AmityTypescriptSDK/packages/sdk/dist/feedRepository/observers/getCustomRankingGlobalFeed/LiveCollectionController.js.map +1 -0
  29. package/.rollup.cache/home/runner/work/AmityTypescriptSDK/AmityTypescriptSDK/packages/sdk/dist/feedRepository/observers/getCustomRankingGlobalFeed/PaginationController.d.ts +5 -0
  30. package/.rollup.cache/home/runner/work/AmityTypescriptSDK/AmityTypescriptSDK/packages/sdk/dist/feedRepository/observers/getCustomRankingGlobalFeed/PaginationController.d.ts.map +1 -0
  31. package/.rollup.cache/home/runner/work/AmityTypescriptSDK/AmityTypescriptSDK/packages/sdk/dist/feedRepository/observers/getCustomRankingGlobalFeed/PaginationController.js +13 -0
  32. package/.rollup.cache/home/runner/work/AmityTypescriptSDK/AmityTypescriptSDK/packages/sdk/dist/feedRepository/observers/getCustomRankingGlobalFeed/PaginationController.js.map +1 -0
  33. package/.rollup.cache/home/runner/work/AmityTypescriptSDK/AmityTypescriptSDK/packages/sdk/dist/feedRepository/observers/getCustomRankingGlobalFeed/QueryStreamController.d.ts +15 -0
  34. package/.rollup.cache/home/runner/work/AmityTypescriptSDK/AmityTypescriptSDK/packages/sdk/dist/feedRepository/observers/getCustomRankingGlobalFeed/QueryStreamController.d.ts.map +1 -0
  35. package/.rollup.cache/home/runner/work/AmityTypescriptSDK/AmityTypescriptSDK/packages/sdk/dist/feedRepository/observers/getCustomRankingGlobalFeed/QueryStreamController.js +66 -0
  36. package/.rollup.cache/home/runner/work/AmityTypescriptSDK/AmityTypescriptSDK/packages/sdk/dist/feedRepository/observers/getCustomRankingGlobalFeed/QueryStreamController.js.map +1 -0
  37. package/.rollup.cache/home/runner/work/AmityTypescriptSDK/AmityTypescriptSDK/packages/sdk/dist/feedRepository/observers/getCustomRankingGlobalFeed.d.ts +22 -0
  38. package/.rollup.cache/home/runner/work/AmityTypescriptSDK/AmityTypescriptSDK/packages/sdk/dist/feedRepository/observers/getCustomRankingGlobalFeed.d.ts.map +1 -0
  39. package/.rollup.cache/home/runner/work/AmityTypescriptSDK/AmityTypescriptSDK/packages/sdk/dist/feedRepository/observers/getCustomRankingGlobalFeed.js +45 -0
  40. package/.rollup.cache/home/runner/work/AmityTypescriptSDK/AmityTypescriptSDK/packages/sdk/dist/feedRepository/observers/getCustomRankingGlobalFeed.js.map +1 -0
  41. package/.rollup.cache/home/runner/work/AmityTypescriptSDK/AmityTypescriptSDK/packages/sdk/dist/feedRepository/observers/getGlobalFeed/LiveCollectionController.d.ts +13 -0
  42. package/.rollup.cache/home/runner/work/AmityTypescriptSDK/AmityTypescriptSDK/packages/sdk/dist/feedRepository/observers/getGlobalFeed/LiveCollectionController.d.ts.map +1 -0
  43. package/.rollup.cache/home/runner/work/AmityTypescriptSDK/AmityTypescriptSDK/packages/sdk/dist/feedRepository/observers/getGlobalFeed/LiveCollectionController.js +60 -0
  44. package/.rollup.cache/home/runner/work/AmityTypescriptSDK/AmityTypescriptSDK/packages/sdk/dist/feedRepository/observers/getGlobalFeed/LiveCollectionController.js.map +1 -0
  45. package/.rollup.cache/home/runner/work/AmityTypescriptSDK/AmityTypescriptSDK/packages/sdk/dist/feedRepository/observers/getGlobalFeed/PaginationController.d.ts +5 -0
  46. package/.rollup.cache/home/runner/work/AmityTypescriptSDK/AmityTypescriptSDK/packages/sdk/dist/feedRepository/observers/getGlobalFeed/PaginationController.d.ts.map +1 -0
  47. package/.rollup.cache/home/runner/work/AmityTypescriptSDK/AmityTypescriptSDK/packages/sdk/dist/feedRepository/observers/getGlobalFeed/PaginationController.js +13 -0
  48. package/.rollup.cache/home/runner/work/AmityTypescriptSDK/AmityTypescriptSDK/packages/sdk/dist/feedRepository/observers/getGlobalFeed/PaginationController.js.map +1 -0
  49. package/.rollup.cache/home/runner/work/AmityTypescriptSDK/AmityTypescriptSDK/packages/sdk/dist/feedRepository/observers/getGlobalFeed/QueryStreamController.d.ts +15 -0
  50. package/.rollup.cache/home/runner/work/AmityTypescriptSDK/AmityTypescriptSDK/packages/sdk/dist/feedRepository/observers/getGlobalFeed/QueryStreamController.d.ts.map +1 -0
  51. package/.rollup.cache/home/runner/work/AmityTypescriptSDK/AmityTypescriptSDK/packages/sdk/dist/feedRepository/observers/getGlobalFeed/QueryStreamController.js +66 -0
  52. package/.rollup.cache/home/runner/work/AmityTypescriptSDK/AmityTypescriptSDK/packages/sdk/dist/feedRepository/observers/getGlobalFeed/QueryStreamController.js.map +1 -0
  53. package/.rollup.cache/home/runner/work/AmityTypescriptSDK/AmityTypescriptSDK/packages/sdk/dist/feedRepository/observers/getGlobalFeed.d.ts +22 -0
  54. package/.rollup.cache/home/runner/work/AmityTypescriptSDK/AmityTypescriptSDK/packages/sdk/dist/feedRepository/observers/getGlobalFeed.d.ts.map +1 -0
  55. package/.rollup.cache/home/runner/work/AmityTypescriptSDK/AmityTypescriptSDK/packages/sdk/dist/feedRepository/observers/getGlobalFeed.js +45 -0
  56. package/.rollup.cache/home/runner/work/AmityTypescriptSDK/AmityTypescriptSDK/packages/sdk/dist/feedRepository/observers/getGlobalFeed.js.map +1 -0
  57. package/.rollup.cache/home/runner/work/AmityTypescriptSDK/AmityTypescriptSDK/packages/sdk/dist/feedRepository/observers/index.d.ts +3 -0
  58. package/.rollup.cache/home/runner/work/AmityTypescriptSDK/AmityTypescriptSDK/packages/sdk/dist/feedRepository/observers/index.d.ts.map +1 -0
  59. package/.rollup.cache/home/runner/work/AmityTypescriptSDK/AmityTypescriptSDK/packages/sdk/dist/feedRepository/observers/index.js +3 -0
  60. package/.rollup.cache/home/runner/work/AmityTypescriptSDK/AmityTypescriptSDK/packages/sdk/dist/feedRepository/observers/index.js.map +1 -0
  61. package/.rollup.cache/home/runner/work/AmityTypescriptSDK/AmityTypescriptSDK/packages/sdk/dist/feedRepository/observers/utils.d.ts +6 -0
  62. package/.rollup.cache/home/runner/work/AmityTypescriptSDK/AmityTypescriptSDK/packages/sdk/dist/feedRepository/observers/utils.d.ts.map +1 -0
  63. package/.rollup.cache/home/runner/work/AmityTypescriptSDK/AmityTypescriptSDK/packages/sdk/dist/feedRepository/observers/utils.js +60 -0
  64. package/.rollup.cache/home/runner/work/AmityTypescriptSDK/AmityTypescriptSDK/packages/sdk/dist/feedRepository/observers/utils.js.map +1 -0
  65. package/.rollup.cache/home/runner/work/AmityTypescriptSDK/AmityTypescriptSDK/packages/sdk/dist/postRepository/events/utils.d.ts.map +1 -1
  66. package/.rollup.cache/home/runner/work/AmityTypescriptSDK/AmityTypescriptSDK/packages/sdk/dist/postRepository/events/utils.js +26 -1
  67. package/.rollup.cache/home/runner/work/AmityTypescriptSDK/AmityTypescriptSDK/packages/sdk/dist/postRepository/events/utils.js.map +1 -1
  68. package/.rollup.cache/home/runner/work/AmityTypescriptSDK/AmityTypescriptSDK/packages/sdk/dist/postRepository/observers/getGlobalPinnedPosts/GlobalPinnedPostLiveCollectionController.d.ts.map +1 -1
  69. package/.rollup.cache/home/runner/work/AmityTypescriptSDK/AmityTypescriptSDK/packages/sdk/dist/postRepository/observers/getGlobalPinnedPosts/GlobalPinnedPostLiveCollectionController.js +5 -0
  70. package/.rollup.cache/home/runner/work/AmityTypescriptSDK/AmityTypescriptSDK/packages/sdk/dist/postRepository/observers/getGlobalPinnedPosts/GlobalPinnedPostLiveCollectionController.js.map +1 -1
  71. package/.rollup.cache/home/runner/work/AmityTypescriptSDK/AmityTypescriptSDK/packages/sdk/dist/postRepository/observers/getPinnedPosts/PinnedPostLiveCollectionController.d.ts.map +1 -1
  72. package/.rollup.cache/home/runner/work/AmityTypescriptSDK/AmityTypescriptSDK/packages/sdk/dist/postRepository/observers/getPinnedPosts/PinnedPostLiveCollectionController.js +5 -1
  73. package/.rollup.cache/home/runner/work/AmityTypescriptSDK/AmityTypescriptSDK/packages/sdk/dist/postRepository/observers/getPinnedPosts/PinnedPostLiveCollectionController.js.map +1 -1
  74. package/.rollup.cache/home/runner/work/AmityTypescriptSDK/AmityTypescriptSDK/packages/sdk/dist/postRepository/observers/getPinnedPosts/PinnedPostQueryStreamController.d.ts +6 -0
  75. package/.rollup.cache/home/runner/work/AmityTypescriptSDK/AmityTypescriptSDK/packages/sdk/dist/postRepository/observers/getPinnedPosts/PinnedPostQueryStreamController.d.ts.map +1 -1
  76. package/.rollup.cache/home/runner/work/AmityTypescriptSDK/AmityTypescriptSDK/packages/sdk/dist/postRepository/observers/getPinnedPosts/PinnedPostQueryStreamController.js +17 -0
  77. package/.rollup.cache/home/runner/work/AmityTypescriptSDK/AmityTypescriptSDK/packages/sdk/dist/postRepository/observers/getPinnedPosts/PinnedPostQueryStreamController.js.map +1 -1
  78. package/.rollup.cache/home/runner/work/AmityTypescriptSDK/AmityTypescriptSDK/packages/sdk/dist/postRepository/observers/getPosts/PostLiveCollectionController.d.ts.map +1 -1
  79. package/.rollup.cache/home/runner/work/AmityTypescriptSDK/AmityTypescriptSDK/packages/sdk/dist/postRepository/observers/getPosts/PostLiveCollectionController.js +2 -50
  80. package/.rollup.cache/home/runner/work/AmityTypescriptSDK/AmityTypescriptSDK/packages/sdk/dist/postRepository/observers/getPosts/PostLiveCollectionController.js.map +1 -1
  81. package/.rollup.cache/home/runner/work/AmityTypescriptSDK/AmityTypescriptSDK/packages/sdk/dist/postRepository/observers/utils.d.ts +13 -0
  82. package/.rollup.cache/home/runner/work/AmityTypescriptSDK/AmityTypescriptSDK/packages/sdk/dist/postRepository/observers/utils.d.ts.map +1 -0
  83. package/.rollup.cache/home/runner/work/AmityTypescriptSDK/AmityTypescriptSDK/packages/sdk/dist/postRepository/observers/utils.js +61 -0
  84. package/.rollup.cache/home/runner/work/AmityTypescriptSDK/AmityTypescriptSDK/packages/sdk/dist/postRepository/observers/utils.js.map +1 -0
  85. package/.rollup.cache/home/runner/work/AmityTypescriptSDK/AmityTypescriptSDK/packages/sdk/dist/reactionRepository/api/addReaction.d.ts.map +1 -1
  86. package/.rollup.cache/home/runner/work/AmityTypescriptSDK/AmityTypescriptSDK/packages/sdk/dist/reactionRepository/api/addReaction.js +1 -1
  87. package/.rollup.cache/home/runner/work/AmityTypescriptSDK/AmityTypescriptSDK/packages/sdk/dist/reactionRepository/api/addReaction.js.map +1 -1
  88. package/.rollup.cache/home/runner/work/AmityTypescriptSDK/AmityTypescriptSDK/packages/sdk/dist/reactionRepository/api/removeReaction.d.ts.map +1 -1
  89. package/.rollup.cache/home/runner/work/AmityTypescriptSDK/AmityTypescriptSDK/packages/sdk/dist/reactionRepository/api/removeReaction.js +1 -1
  90. package/.rollup.cache/home/runner/work/AmityTypescriptSDK/AmityTypescriptSDK/packages/sdk/dist/reactionRepository/api/removeReaction.js.map +1 -1
  91. package/.rollup.cache/home/runner/work/AmityTypescriptSDK/AmityTypescriptSDK/packages/sdk/dist/utils/linkedObject/postLinkedObject.d.ts.map +1 -1
  92. package/.rollup.cache/home/runner/work/AmityTypescriptSDK/AmityTypescriptSDK/packages/sdk/dist/utils/linkedObject/postLinkedObject.js +9 -4
  93. package/.rollup.cache/home/runner/work/AmityTypescriptSDK/AmityTypescriptSDK/packages/sdk/dist/utils/linkedObject/postLinkedObject.js.map +1 -1
  94. package/.rollup.cache/home/runner/work/AmityTypescriptSDK/AmityTypescriptSDK/packages/sdk/tsconfig.tsbuildinfo +1 -1
  95. package/dist/@types/domains/feed.d.ts +4 -0
  96. package/dist/@types/domains/feed.d.ts.map +1 -1
  97. package/dist/@types/domains/notification.d.ts +2 -1
  98. package/dist/@types/domains/notification.d.ts.map +1 -1
  99. package/dist/core/model/index.d.ts.map +1 -1
  100. package/dist/feedRepository/api/index.d.ts +0 -1
  101. package/dist/feedRepository/api/index.d.ts.map +1 -1
  102. package/dist/feedRepository/api/queryGlobalFeed.d.ts +3 -0
  103. package/dist/feedRepository/api/queryGlobalFeed.d.ts.map +1 -1
  104. package/dist/feedRepository/index.d.ts +2 -1
  105. package/dist/feedRepository/index.d.ts.map +1 -1
  106. package/dist/feedRepository/observers/getCustomRankingGlobalFeed/LiveCollectionController.d.ts +13 -0
  107. package/dist/feedRepository/observers/getCustomRankingGlobalFeed/LiveCollectionController.d.ts.map +1 -0
  108. package/dist/feedRepository/observers/getCustomRankingGlobalFeed/PaginationController.d.ts +5 -0
  109. package/dist/feedRepository/observers/getCustomRankingGlobalFeed/PaginationController.d.ts.map +1 -0
  110. package/dist/feedRepository/observers/getCustomRankingGlobalFeed/QueryStreamController.d.ts +15 -0
  111. package/dist/feedRepository/observers/getCustomRankingGlobalFeed/QueryStreamController.d.ts.map +1 -0
  112. package/dist/feedRepository/observers/getCustomRankingGlobalFeed.d.ts +22 -0
  113. package/dist/feedRepository/observers/getCustomRankingGlobalFeed.d.ts.map +1 -0
  114. package/dist/feedRepository/observers/getGlobalFeed/LiveCollectionController.d.ts +13 -0
  115. package/dist/feedRepository/observers/getGlobalFeed/LiveCollectionController.d.ts.map +1 -0
  116. package/dist/feedRepository/observers/getGlobalFeed/PaginationController.d.ts +5 -0
  117. package/dist/feedRepository/observers/getGlobalFeed/PaginationController.d.ts.map +1 -0
  118. package/dist/feedRepository/observers/getGlobalFeed/QueryStreamController.d.ts +15 -0
  119. package/dist/feedRepository/observers/getGlobalFeed/QueryStreamController.d.ts.map +1 -0
  120. package/dist/feedRepository/observers/getGlobalFeed.d.ts +22 -0
  121. package/dist/feedRepository/observers/getGlobalFeed.d.ts.map +1 -0
  122. package/dist/feedRepository/observers/index.d.ts +3 -0
  123. package/dist/feedRepository/observers/index.d.ts.map +1 -0
  124. package/dist/feedRepository/observers/utils.d.ts +6 -0
  125. package/dist/feedRepository/observers/utils.d.ts.map +1 -0
  126. package/dist/index.cjs.js +1608 -1250
  127. package/dist/index.esm.js +1535 -1177
  128. package/dist/index.umd.js +4 -4
  129. package/dist/postRepository/events/utils.d.ts.map +1 -1
  130. package/dist/postRepository/observers/getGlobalPinnedPosts/GlobalPinnedPostLiveCollectionController.d.ts.map +1 -1
  131. package/dist/postRepository/observers/getPinnedPosts/PinnedPostLiveCollectionController.d.ts.map +1 -1
  132. package/dist/postRepository/observers/getPinnedPosts/PinnedPostQueryStreamController.d.ts +6 -0
  133. package/dist/postRepository/observers/getPinnedPosts/PinnedPostQueryStreamController.d.ts.map +1 -1
  134. package/dist/postRepository/observers/getPosts/PostLiveCollectionController.d.ts.map +1 -1
  135. package/dist/postRepository/observers/utils.d.ts +13 -0
  136. package/dist/postRepository/observers/utils.d.ts.map +1 -0
  137. package/dist/reactionRepository/api/addReaction.d.ts.map +1 -1
  138. package/dist/reactionRepository/api/removeReaction.d.ts.map +1 -1
  139. package/dist/utils/linkedObject/postLinkedObject.d.ts.map +1 -1
  140. package/package.json +1 -1
  141. package/src/@types/domains/feed.ts +16 -0
  142. package/src/@types/domains/notification.ts +1 -0
  143. package/src/commentRepository/api/deleteComment.ts +6 -6
  144. package/src/core/model/index.ts +2 -1
  145. package/src/feedRepository/api/index.ts +0 -1
  146. package/src/feedRepository/api/queryGlobalFeed.ts +3 -0
  147. package/src/feedRepository/index.ts +2 -1
  148. package/src/feedRepository/observers/getCustomRankingGlobalFeed/LiveCollectionController.ts +95 -0
  149. package/src/feedRepository/observers/getCustomRankingGlobalFeed/PaginationController.ts +25 -0
  150. package/src/feedRepository/observers/getCustomRankingGlobalFeed/QueryStreamController.ts +101 -0
  151. package/src/feedRepository/observers/getCustomRankingGlobalFeed.ts +56 -0
  152. package/src/feedRepository/observers/getGlobalFeed/LiveCollectionController.ts +91 -0
  153. package/src/feedRepository/observers/getGlobalFeed/PaginationController.ts +23 -0
  154. package/src/feedRepository/observers/getGlobalFeed/QueryStreamController.ts +99 -0
  155. package/src/feedRepository/observers/getGlobalFeed.ts +56 -0
  156. package/src/feedRepository/observers/index.ts +2 -0
  157. package/src/feedRepository/observers/utils.ts +85 -0
  158. package/src/postRepository/events/utils.ts +35 -1
  159. package/src/postRepository/observers/getGlobalPinnedPosts/GlobalPinnedPostLiveCollectionController.ts +5 -0
  160. package/src/postRepository/observers/getPinnedPosts/PinnedPostLiveCollectionController.ts +7 -1
  161. package/src/postRepository/observers/getPinnedPosts/PinnedPostQueryStreamController.ts +27 -0
  162. package/src/postRepository/observers/getPosts/PostLiveCollectionController.ts +2 -74
  163. package/src/postRepository/observers/utils.ts +97 -0
  164. package/src/reactionRepository/api/addReaction.ts +1 -0
  165. package/src/reactionRepository/api/removeReaction.ts +1 -0
  166. package/src/utils/linkedObject/postLinkedObject.ts +3 -3
  167. package/tsconfig.tsbuildinfo +1 -1
  168. package/.rollup.cache/home/runner/work/AmityTypescriptSDK/AmityTypescriptSDK/packages/sdk/dist/feedRepository/api/getCustomRankingGlobalFeed.d.ts +0 -37
  169. package/.rollup.cache/home/runner/work/AmityTypescriptSDK/AmityTypescriptSDK/packages/sdk/dist/feedRepository/api/getCustomRankingGlobalFeed.d.ts.map +0 -1
  170. package/.rollup.cache/home/runner/work/AmityTypescriptSDK/AmityTypescriptSDK/packages/sdk/dist/feedRepository/api/getCustomRankingGlobalFeed.js +0 -83
  171. package/.rollup.cache/home/runner/work/AmityTypescriptSDK/AmityTypescriptSDK/packages/sdk/dist/feedRepository/api/getCustomRankingGlobalFeed.js.map +0 -1
  172. package/dist/feedRepository/api/getCustomRankingGlobalFeed.d.ts +0 -37
  173. package/dist/feedRepository/api/getCustomRankingGlobalFeed.d.ts.map +0 -1
  174. package/src/feedRepository/api/getCustomRankingGlobalFeed.ts +0 -115
@@ -0,0 +1,99 @@
1
+ import { QueryStreamController } from '~/core/liveCollection/QueryStreamController';
2
+ import { pullFromCache, pushToCache } from '~/cache/api';
3
+ import { ingestInCache } from '~/cache/api/ingestInCache';
4
+ import { getResolver } from '~/core/model';
5
+ import { getActiveClient } from '~/client';
6
+ import { EnumPostActions } from '~/postRepository/observers/enums';
7
+
8
+ export class GlobalFeedQueryStreamController extends QueryStreamController<
9
+ Amity.PostPayload,
10
+ Amity.GlobalFeedLiveCollection
11
+ > {
12
+ private notifyChange: (params: Amity.LiveCollectionNotifyParams) => void;
13
+
14
+ private preparePayload: (response: Amity.PostPayload) => Amity.ProcessedPostPayload;
15
+
16
+ constructor(
17
+ query: Amity.GlobalFeedLiveCollection,
18
+ cacheKey: string[],
19
+ notifyChange: (params: Amity.LiveCollectionNotifyParams) => void,
20
+ preparePayload: (response: Amity.PostPayload) => Amity.ProcessedPostPayload,
21
+ ) {
22
+ super(query, cacheKey);
23
+ this.notifyChange = notifyChange;
24
+ this.preparePayload = preparePayload;
25
+ }
26
+
27
+ async saveToMainDB(response: Amity.PostPayload) {
28
+ const processedPayload = await this.preparePayload(response);
29
+
30
+ const client = getActiveClient();
31
+ const cachedAt = client.cache && Date.now();
32
+
33
+ if (client.cache) {
34
+ ingestInCache(processedPayload, { cachedAt });
35
+ }
36
+ }
37
+
38
+ appendToQueryStream(
39
+ response: Amity.PostPayload & Partial<Amity.Pagination>,
40
+ direction: Amity.LiveCollectionPageDirection,
41
+ refresh = false,
42
+ ) {
43
+ if (refresh) {
44
+ pushToCache(this.cacheKey, {
45
+ data: response.posts.map(getResolver('post')),
46
+ });
47
+ } else {
48
+ const collection = pullFromCache<Amity.CommunityLiveCollectionCache>(this.cacheKey)?.data;
49
+
50
+ const posts = collection?.data ?? [];
51
+
52
+ pushToCache(this.cacheKey, {
53
+ ...collection,
54
+ data: [...new Set([...posts, ...response.posts.map(getResolver('post'))])],
55
+ });
56
+ }
57
+ }
58
+
59
+ reactor(action: EnumPostActions) {
60
+ return (post: Amity.InternalPost) => {
61
+ const collection = pullFromCache<Amity.GlobalFeedLiveCollectionCache>(this.cacheKey)?.data;
62
+
63
+ if (!collection) return;
64
+
65
+ if (post.parentPostId && !collection.data.includes(post.parentPostId)) return;
66
+
67
+ // Delete Action
68
+ if (action === EnumPostActions.OnPostDeleted) {
69
+ // Parent Post - Remove from collection
70
+ collection.data = collection.data.filter(postId => postId !== post.postId);
71
+ }
72
+
73
+ if (action === EnumPostActions.OnPostCreated || action === EnumPostActions.OnPostApproved) {
74
+ // If the query has dataTypes array with value, check if post.dataType is include in the array
75
+ if (this.query.dataTypes && this.query.dataTypes.length > 0) {
76
+ if (!this.query.dataTypes.includes(post.dataType)) return;
77
+ }
78
+
79
+ collection.data = [...new Set([post.postId, ...collection.data])];
80
+ }
81
+
82
+ if (action === EnumPostActions.OnPostDeclined) {
83
+ collection.data = collection.data.filter(postId => postId !== post.postId);
84
+ }
85
+
86
+ pushToCache(this.cacheKey, collection);
87
+ this.notifyChange({ origin: Amity.LiveDataOrigin.EVENT, loading: false });
88
+ };
89
+ }
90
+
91
+ subscribeRTE(
92
+ createSubscriber: {
93
+ fn: (reactor: (post: Amity.InternalPost) => void) => Amity.Unsubscriber;
94
+ action: EnumPostActions;
95
+ }[],
96
+ ) {
97
+ return createSubscriber.map(subscriber => subscriber.fn(this.reactor(subscriber.action)));
98
+ }
99
+ }
@@ -0,0 +1,56 @@
1
+ import { getActiveClient } from '~/client/api';
2
+ import { dropFromCache } from '~/cache/api';
3
+
4
+ import { ENABLE_CACHE_MESSAGE } from '~/utils/constants';
5
+ import { GlobalFeedLiveCollectionController } from './getGlobalFeed/LiveCollectionController';
6
+
7
+ /* begin_public_function
8
+ id: feed.query.global_feed
9
+ */
10
+ /**
11
+ * ```js
12
+ * import { FeedRepository } from '@amityco/ts-sdk'
13
+ *
14
+ * let posts = []
15
+ * const unsub = FeedRepository.getGlobalFeed({
16
+ * dataTypes: ['video','image'],
17
+ * resolveParent: true,
18
+ * }, response => processResponse(response))
19
+ * ```
20
+ *
21
+ * Observe all mutations on a list of {@link Amity.Post} for global feed
22
+ * @param params.dataTypes array of data types for the posts
23
+ * @param params.resolveParent
24
+ * @param callback the function to call when new data are available
25
+ * @param config
26
+ * @returns An {@link Amity.Unsubscriber} function to run when willing to stop observing the messages
27
+ *
28
+ * @category Posts Live Collection
29
+ */
30
+ export const getGlobalFeed = (
31
+ params: Amity.GlobalFeedLiveCollection,
32
+ callback: Amity.LiveCollectionCallback<Amity.Post>,
33
+ config?: Amity.LiveCollectionConfig,
34
+ ): Amity.Unsubscriber => {
35
+ const { log, cache } = getActiveClient();
36
+
37
+ if (!cache) {
38
+ console.log(ENABLE_CACHE_MESSAGE);
39
+ }
40
+
41
+ const timestamp = Date.now();
42
+ log(`getGlobalFeed(tmpid: ${timestamp}) > listen`);
43
+
44
+ const liveCollection = new GlobalFeedLiveCollectionController(params, callback);
45
+ const disposers = liveCollection.startSubscription();
46
+
47
+ const cacheKey = liveCollection.getCacheKey();
48
+
49
+ disposers.push(() => dropFromCache(cacheKey));
50
+
51
+ return () => {
52
+ log(`getGlobalFeed(tmpid: ${timestamp}) > dispose`);
53
+ disposers.forEach(fn => fn());
54
+ };
55
+ };
56
+ /* end_public_function */
@@ -0,0 +1,2 @@
1
+ export { getCustomRankingGlobalFeed } from './getCustomRankingGlobalFeed';
2
+ export { getGlobalFeed } from './getGlobalFeed';
@@ -0,0 +1,85 @@
1
+ import { pullFromCache } from '~/cache/api';
2
+ import { onCommentCreated, onCommentDeleted } from '~/commentRepository';
3
+ import { getPost } from '~/postRepository/internalApi';
4
+ import {
5
+ onPostCreated,
6
+ onPostUpdated,
7
+ onPostDeleted,
8
+ onPostFlagged,
9
+ onPostUnflagged,
10
+ onPostReactionAdded,
11
+ onPostReactionRemoved,
12
+ onPostApproved,
13
+ onPostDeclined,
14
+ } from '~/postRepository/events';
15
+ import { onLocalPostDeleted } from '~/postRepository/events/onLocalPostDeleted';
16
+ import { onLocalPostReactionAdded } from '~/postRepository/events/onLocalPostReactionAdded';
17
+ import { onLocalPostReactionRemoved } from '~/postRepository/events/onLocalPostReactionRemoved';
18
+ import { onPostUpdatedLocal } from '~/postRepository/events/onPostUpdatedLocal';
19
+ import { EnumPostActions } from '~/postRepository/observers/enums';
20
+ import { convertEventPayload } from '~/utils/event';
21
+ import { onCommentCreatedLocal } from '~/commentRepository/events/onCommentCreatedLocal';
22
+ import { onCommentDeleteLocal } from '~/commentRepository/events/onCommentDeletedLocal';
23
+ import { onCommentReactionAdded, onCommentReactionRemoved } from '~/commentRepository/events';
24
+ import { onLocalCommentReactionAdded } from '~/commentRepository/events/onLocalCommentReactionAdded';
25
+ import { onLocalCommentReactionRemoved } from '~/commentRepository/events/onLocalCommentReactionRemoved';
26
+
27
+ type CommentEventHandler = (callback: Amity.Listener<Amity.InternalComment>) => Amity.Unsubscriber;
28
+
29
+ const commentEventHandler = (
30
+ callback: Amity.Listener<Amity.InternalComment>,
31
+ eventHandler: CommentEventHandler,
32
+ cacheKey: Amity.CacheKey,
33
+ ) => {
34
+ return eventHandler(async (comment: Amity.InternalComment) => {
35
+ const currentCollection =
36
+ pullFromCache<Amity.CustomRankingGlobalFeedLiveCollectionCache>(cacheKey)?.data;
37
+
38
+ if (!currentCollection || !currentCollection.data.includes(comment.referenceId)) return;
39
+
40
+ await getPost(comment.referenceId);
41
+ callback(comment);
42
+ });
43
+ };
44
+
45
+ const generateCommentSubscriptions = (cacheKey: Amity.CacheKey) => {
46
+ const eventHandlers = [
47
+ onCommentCreated,
48
+ onCommentDeleted,
49
+ onCommentReactionAdded,
50
+ onCommentReactionRemoved,
51
+ onCommentCreatedLocal,
52
+ onCommentDeleteLocal,
53
+ onLocalCommentReactionAdded,
54
+ onLocalCommentReactionRemoved,
55
+ ];
56
+
57
+ return eventHandlers.map(handler => ({
58
+ fn: convertEventPayload(
59
+ (callback: Amity.Listener<Amity.InternalComment>) =>
60
+ commentEventHandler(callback, handler, cacheKey),
61
+ 'referenceId',
62
+ 'post',
63
+ ),
64
+ action: EnumPostActions.OnPostUpdated,
65
+ }));
66
+ };
67
+
68
+ export const getGlobalFeedSubscriptions = (cacheKey: Amity.CacheKey) => {
69
+ return [
70
+ { fn: onPostCreated, action: EnumPostActions.OnPostCreated },
71
+ { fn: onPostUpdated, action: EnumPostActions.OnPostUpdated },
72
+ { fn: onPostUpdatedLocal, action: EnumPostActions.OnPostUpdated },
73
+ { fn: onPostDeleted, action: EnumPostActions.OnPostDeleted },
74
+ { fn: onPostFlagged, action: EnumPostActions.OnPostFlagged },
75
+ { fn: onPostUnflagged, action: EnumPostActions.OnPostUnflagged },
76
+ { fn: onPostApproved, action: EnumPostActions.OnPostApproved },
77
+ { fn: onPostDeclined, action: EnumPostActions.OnPostDeclined },
78
+ { fn: onPostReactionAdded, action: EnumPostActions.OnPostReactionAdded },
79
+ { fn: onPostReactionRemoved, action: EnumPostActions.OnPostReactionRemoved },
80
+ { fn: onLocalPostReactionAdded, action: EnumPostActions.OnPostReactionAdded },
81
+ { fn: onLocalPostReactionRemoved, action: EnumPostActions.OnPostReactionRemoved },
82
+ { fn: onLocalPostDeleted, action: EnumPostActions.OnPostDeleted },
83
+ ...generateCommentSubscriptions(cacheKey),
84
+ ];
85
+ };
@@ -1,10 +1,38 @@
1
1
  import { getActiveClient } from '~/client/api';
2
2
  import { ingestInCache } from '~/cache/api/ingestInCache';
3
3
  import { createEventSubscriber, fireEvent } from '~/core/events';
4
- import { dropFromCache, pullFromCache, queryCache, upsertInCache } from '~/cache/api';
4
+ import { dropFromCache, pullFromCache, pushToCache, queryCache, upsertInCache } from '~/cache/api';
5
5
  import { isInTombstone } from '~/cache/api/isInTombstone';
6
6
  import { preparePostPayload } from '~/postRepository/utils/payload';
7
7
 
8
+ const processDeleteChildPost = (payload: Amity.PostPayload) => {
9
+ const post = payload.posts[0];
10
+ if (!post.parentId) return;
11
+
12
+ const parentPost = pullFromCache<Amity.InternalPost>(['post', 'get', post.parentPostId])?.data;
13
+
14
+ if (!parentPost) return;
15
+
16
+ pushToCache(['post', 'get', parentPost.postId], {
17
+ ...parentPost,
18
+ children: parentPost.children.filter(childId => childId !== post.postId),
19
+ });
20
+ };
21
+
22
+ const processCreateChildPost = (payload: Amity.PostPayload) => {
23
+ const post = payload.posts[0];
24
+ if (!post.parentId) return;
25
+
26
+ const parentPost = pullFromCache<Amity.InternalPost>(['post', 'get', post.parentPostId])?.data;
27
+
28
+ if (!parentPost) return;
29
+
30
+ pushToCache(['post', 'get', parentPost.postId], {
31
+ ...parentPost,
32
+ children: [...new Set([post.postId, ...parentPost.children])],
33
+ });
34
+ };
35
+
8
36
  export const createPostEventSubscriber = (
9
37
  event: keyof Amity.MqttPostEvents,
10
38
  callback: Amity.Listener<Amity.InternalPost>,
@@ -36,6 +64,8 @@ export const createPostEventSubscriber = (
36
64
  if (event === 'post.deleted') {
37
65
  const { postId, postedUserId } = payload.posts[0];
38
66
 
67
+ processDeleteChildPost(payload);
68
+
39
69
  try {
40
70
  isInTombstone('post', postId);
41
71
  } catch (e) {
@@ -70,6 +100,8 @@ export const createPostEventSubscriber = (
70
100
  queries?.map(({ key, data }) => upsertInCache(key, data as any, { cachedAt: -1 }));
71
101
  }
72
102
 
103
+ if (event === 'post.created') processCreateChildPost(payload);
104
+
73
105
  callback(post.data);
74
106
  }
75
107
  };
@@ -106,6 +138,8 @@ export const createLocalPostEventSubscriber = (
106
138
 
107
139
  const post = pullFromCache<Amity.InternalPost>(['post', 'get', payload.posts[0].postId])!;
108
140
 
141
+ if (event === 'local.post.deleted') processDeleteChildPost(payload);
142
+
109
143
  callback(post.data);
110
144
  }
111
145
  };
@@ -8,6 +8,7 @@ import { LinkedObject } from '~/utils/linkedObject';
8
8
  import { onPostDeleted } from '~/postRepository/events';
9
9
  import { EnumPostActions } from '../enums';
10
10
  import { onLocalPostDeleted } from '~/postRepository/events/onLocalPostDeleted';
11
+ import { generateCommentSubscriptions } from '../utils';
11
12
 
12
13
  export class GlobalPinnedPostLiveCollectionController extends LiveCollectionController<
13
14
  'pinnedPost',
@@ -71,6 +72,10 @@ export class GlobalPinnedPostLiveCollectionController extends LiveCollectionCont
71
72
  fn: onPostDeleted,
72
73
  action: EnumPostActions.OnPostDeleted,
73
74
  },
75
+ ...generateCommentSubscriptions({
76
+ cacheKey: this.cacheKey,
77
+ resolveId: id => `global#${id}`,
78
+ }),
74
79
  ]);
75
80
  }
76
81
 
@@ -6,6 +6,7 @@ import { LiveCollectionController } from '~/core/liveCollection/LiveCollectionCo
6
6
  import { isNonNullable } from '~/utils';
7
7
  import { LinkedObject } from '~/utils/linkedObject';
8
8
  import { sortByLastCreated } from '~/core/query';
9
+ import { generateCommentSubscriptions } from '../utils';
9
10
 
10
11
  export class PinnedPostLiveCollectionController extends LiveCollectionController<
11
12
  'pinnedPost',
@@ -63,7 +64,12 @@ export class PinnedPostLiveCollectionController extends LiveCollectionController
63
64
 
64
65
  // eslint-disable-next-line class-methods-use-this
65
66
  startSubscription() {
66
- return [] as Amity.Unsubscriber[];
67
+ return this.queryStreamController.subscribeRTE(
68
+ generateCommentSubscriptions({
69
+ cacheKey: this.cacheKey,
70
+ resolveId: id => `${this.query.placement}#${id}`,
71
+ }),
72
+ );
67
73
  }
68
74
 
69
75
  notifyChange({ origin, loading, error }: Amity.LiveCollectionNotifyParams) {
@@ -4,6 +4,7 @@ import { ingestInCache } from '~/cache/api/ingestInCache';
4
4
  import { getResolver } from '~/core/model';
5
5
  import { getActiveClient } from '~/client';
6
6
  import { convertRawUserToInternalUser } from '~/userRepository/utils/convertRawUserToInternalUser';
7
+ import { EnumPostActions } from '../enums';
7
8
 
8
9
  export class PinnedPostQueryStreamController extends QueryStreamController<
9
10
  Amity.PinnedPostPayload,
@@ -64,4 +65,30 @@ export class PinnedPostQueryStreamController extends QueryStreamController<
64
65
  });
65
66
  }
66
67
  }
68
+
69
+ reactor(action: EnumPostActions) {
70
+ return (post: Amity.InternalPost) => {
71
+ const collection = pullFromCache<Amity.PostLiveCollectionCache>(this.cacheKey)?.data;
72
+
73
+ if (!collection) return;
74
+
75
+ if (action === EnumPostActions.OnPostDeleted) {
76
+ collection.data = collection.data.filter(
77
+ referenceId => referenceId !== `global#${post.postId}`,
78
+ );
79
+ }
80
+
81
+ pushToCache(this.cacheKey, collection);
82
+ this.notifyChange({ origin: Amity.LiveDataOrigin.EVENT, loading: false });
83
+ };
84
+ }
85
+
86
+ subscribeRTE(
87
+ createSubscriber: {
88
+ fn: (reactor: (post: Amity.InternalPost) => void) => Amity.Unsubscriber;
89
+ action: EnumPostActions;
90
+ }[],
91
+ ) {
92
+ return createSubscriber.map(subscriber => subscriber.fn(this.reactor(subscriber.action)));
93
+ }
67
94
  }
@@ -3,17 +3,6 @@ import { pullFromCache, pushToCache } from '~/cache/api';
3
3
  import { PostPaginationController } from './PostPaginationController';
4
4
  import { PostQueryStreamController } from './PostQueryStreamController';
5
5
  import { LiveCollectionController } from '~/core/liveCollection/LiveCollectionController';
6
- import {
7
- onPostCreated,
8
- onPostUpdated,
9
- onPostDeleted,
10
- onPostFlagged,
11
- onPostUnflagged,
12
- onPostReactionAdded,
13
- onPostReactionRemoved,
14
- onPostApproved,
15
- onPostDeclined,
16
- } from '~/postRepository/events';
17
6
  import {
18
7
  filterByFeedType,
19
8
  filterByPostDataTypes,
@@ -22,16 +11,9 @@ import {
22
11
  sortByLastCreated,
23
12
  } from '~/core/query';
24
13
  import { isNonNullable } from '~/utils';
25
- import { EnumPostActions } from '../enums';
26
14
  import { LinkedObject } from '~/utils/linkedObject';
27
15
  import { preparePostPayload } from '~/postRepository/utils/payload';
28
- import { convertEventPayload } from '~/utils/event';
29
- import { onCommentCreated, onCommentDeleted } from '~/commentRepository';
30
- import { getPost } from '~/postRepository/internalApi/getPost';
31
- import { onPostUpdatedLocal } from '~/postRepository/events/onPostUpdatedLocal';
32
- import { onLocalPostReactionAdded } from '~/postRepository/events/onLocalPostReactionAdded';
33
- import { onLocalPostReactionRemoved } from '~/postRepository/events/onLocalPostReactionRemoved';
34
- import { onLocalPostDeleted } from '~/postRepository/events/onLocalPostDeleted';
16
+ import { getPostSubscription } from '../utils';
35
17
 
36
18
  export class PostLiveCollectionController extends LiveCollectionController<
37
19
  'post',
@@ -85,61 +67,7 @@ export class PostLiveCollectionController extends LiveCollectionController<
85
67
  }
86
68
 
87
69
  startSubscription() {
88
- return this.queryStreamController.subscribeRTE([
89
- { fn: onPostCreated, action: EnumPostActions.OnPostCreated },
90
- { fn: onPostUpdated, action: EnumPostActions.OnPostUpdated },
91
- { fn: onPostUpdatedLocal, action: EnumPostActions.OnPostUpdated },
92
- { fn: onPostDeleted, action: EnumPostActions.OnPostDeleted },
93
- { fn: onPostFlagged, action: EnumPostActions.OnPostFlagged },
94
- { fn: onPostUnflagged, action: EnumPostActions.OnPostUnflagged },
95
- { fn: onPostApproved, action: EnumPostActions.OnPostApproved },
96
- { fn: onPostDeclined, action: EnumPostActions.OnPostDeclined },
97
- { fn: onPostReactionAdded, action: EnumPostActions.OnPostReactionAdded },
98
- { fn: onPostReactionRemoved, action: EnumPostActions.OnPostReactionRemoved },
99
- { fn: onLocalPostReactionAdded, action: EnumPostActions.OnPostReactionAdded },
100
- { fn: onLocalPostReactionRemoved, action: EnumPostActions.OnPostReactionRemoved },
101
- { fn: onLocalPostDeleted, action: EnumPostActions.OnPostDeleted },
102
- {
103
- fn: convertEventPayload(
104
- (callback: Amity.Listener<Amity.InternalComment>) => {
105
- return onCommentCreated(async (comment: Amity.InternalComment) => {
106
- const currentCollection = pullFromCache<Amity.PostLiveCollectionCache>(
107
- this.cacheKey,
108
- )?.data;
109
-
110
- if (!currentCollection || currentCollection.data.includes(comment.referenceId))
111
- return;
112
-
113
- await getPost(comment.referenceId);
114
- callback(comment);
115
- });
116
- },
117
- 'referenceId',
118
- 'post',
119
- ),
120
- action: EnumPostActions.OnPostUpdated,
121
- },
122
- {
123
- fn: convertEventPayload(
124
- (callback: Amity.Listener<Amity.InternalComment>) => {
125
- return onCommentDeleted(async (comment: Amity.InternalComment) => {
126
- const currentCollection = pullFromCache<Amity.PostLiveCollectionCache>(
127
- this.cacheKey,
128
- )?.data;
129
-
130
- if (!currentCollection || currentCollection.data.includes(comment.referenceId))
131
- return;
132
-
133
- await getPost(comment.referenceId);
134
- callback(comment);
135
- });
136
- },
137
- 'referenceId',
138
- 'post',
139
- ),
140
- action: EnumPostActions.OnPostUpdated,
141
- },
142
- ]);
70
+ return this.queryStreamController.subscribeRTE(getPostSubscription(this.cacheKey));
143
71
  }
144
72
 
145
73
  notifyChange({ origin, loading, error }: Amity.LiveCollectionNotifyParams) {
@@ -0,0 +1,97 @@
1
+ import { pullFromCache } from '~/cache/api';
2
+ import { onCommentCreated, onCommentDeleted } from '~/commentRepository';
3
+ import { getPost } from '~/postRepository/internalApi';
4
+ import {
5
+ onPostCreated,
6
+ onPostUpdated,
7
+ onPostDeleted,
8
+ onPostFlagged,
9
+ onPostUnflagged,
10
+ onPostReactionAdded,
11
+ onPostReactionRemoved,
12
+ onPostApproved,
13
+ onPostDeclined,
14
+ } from '~/postRepository/events';
15
+ import { onLocalPostDeleted } from '~/postRepository/events/onLocalPostDeleted';
16
+ import { onLocalPostReactionAdded } from '~/postRepository/events/onLocalPostReactionAdded';
17
+ import { onLocalPostReactionRemoved } from '~/postRepository/events/onLocalPostReactionRemoved';
18
+ import { onPostUpdatedLocal } from '~/postRepository/events/onPostUpdatedLocal';
19
+ import { EnumPostActions } from '~/postRepository/observers/enums';
20
+ import { convertEventPayload } from '~/utils/event';
21
+ import { onCommentCreatedLocal } from '~/commentRepository/events/onCommentCreatedLocal';
22
+ import { onCommentDeleteLocal } from '~/commentRepository/events/onCommentDeletedLocal';
23
+ import { onCommentReactionAdded, onCommentReactionRemoved } from '~/commentRepository/events';
24
+ import { onLocalCommentReactionAdded } from '~/commentRepository/events/onLocalCommentReactionAdded';
25
+ import { onLocalCommentReactionRemoved } from '~/commentRepository/events/onLocalCommentReactionRemoved';
26
+
27
+ type CommentEventHandler = (callback: Amity.Listener<Amity.InternalComment>) => Amity.Unsubscriber;
28
+
29
+ const commentEventHandler = (
30
+ callback: Amity.Listener<Amity.InternalComment>,
31
+ eventHandler: CommentEventHandler,
32
+ cacheKey: Amity.CacheKey,
33
+ resolveId?: (id: string) => string,
34
+ ) => {
35
+ return eventHandler(async (comment: Amity.InternalComment) => {
36
+ const currentCollection = pullFromCache<Amity.PinnedPostLiveCollectionCache>(cacheKey)?.data;
37
+
38
+ if (
39
+ !currentCollection ||
40
+ !currentCollection.data.includes(
41
+ resolveId ? resolveId(comment.referenceId) : comment.referenceId,
42
+ )
43
+ )
44
+ return;
45
+
46
+ await getPost(comment.referenceId);
47
+ callback(comment);
48
+ });
49
+ };
50
+
51
+ export const generateCommentSubscriptions = ({
52
+ cacheKey,
53
+ resolveId,
54
+ }: {
55
+ cacheKey: Amity.CacheKey;
56
+ resolveId?: (id: string) => string;
57
+ }) => {
58
+ const eventHandlers = [
59
+ onCommentCreated,
60
+ onCommentDeleted,
61
+ onCommentReactionAdded,
62
+ onCommentReactionRemoved,
63
+ onCommentCreatedLocal,
64
+ onCommentDeleteLocal,
65
+ onLocalCommentReactionAdded,
66
+ onLocalCommentReactionRemoved,
67
+ ];
68
+
69
+ return eventHandlers.map(handler => ({
70
+ fn: convertEventPayload(
71
+ (callback: Amity.Listener<Amity.InternalComment>) =>
72
+ commentEventHandler(callback, handler, cacheKey, resolveId),
73
+ 'referenceId',
74
+ 'post',
75
+ ),
76
+ action: EnumPostActions.OnPostUpdated,
77
+ }));
78
+ };
79
+
80
+ export const getPostSubscription = (cacheKey: Amity.CacheKey) => {
81
+ return [
82
+ { fn: onPostCreated, action: EnumPostActions.OnPostCreated },
83
+ { fn: onPostUpdated, action: EnumPostActions.OnPostUpdated },
84
+ { fn: onPostUpdatedLocal, action: EnumPostActions.OnPostUpdated },
85
+ { fn: onPostDeleted, action: EnumPostActions.OnPostDeleted },
86
+ { fn: onPostFlagged, action: EnumPostActions.OnPostFlagged },
87
+ { fn: onPostUnflagged, action: EnumPostActions.OnPostUnflagged },
88
+ { fn: onPostApproved, action: EnumPostActions.OnPostApproved },
89
+ { fn: onPostDeclined, action: EnumPostActions.OnPostDeclined },
90
+ { fn: onPostReactionAdded, action: EnumPostActions.OnPostReactionAdded },
91
+ { fn: onPostReactionRemoved, action: EnumPostActions.OnPostReactionRemoved },
92
+ { fn: onLocalPostReactionAdded, action: EnumPostActions.OnPostReactionAdded },
93
+ { fn: onLocalPostReactionRemoved, action: EnumPostActions.OnPostReactionRemoved },
94
+ { fn: onLocalPostDeleted, action: EnumPostActions.OnPostDeleted },
95
+ ...generateCommentSubscriptions({ cacheKey }),
96
+ ];
97
+ };
@@ -69,6 +69,7 @@ export const addReaction = async (
69
69
  ...model.data.reactions,
70
70
  [reactionName]: (model.data.reactions[reactionName] ?? 0) + 1,
71
71
  },
72
+ updatedAt: new Date().toISOString(),
72
73
  } as Amity.Models[Amity.ReactableType];
73
74
 
74
75
  if (referenceType === 'comment') {
@@ -72,6 +72,7 @@ export const removeReaction = async (
72
72
  ...model.data.reactions,
73
73
  [reactionName]: Math.max(0, (model.data.reactions[reactionName] ?? 0) - 1),
74
74
  },
75
+ updatedAt: new Date().toISOString(),
75
76
  } as Amity.Models[Amity.ReactableType];
76
77
 
77
78
  if (referenceType === 'comment') {
@@ -10,12 +10,12 @@ import {
10
10
  isAmityVideoPost,
11
11
  isAmityClipPost,
12
12
  } from '../postTypePredicate';
13
+ import { shallowClone } from '../shallowClone';
13
14
  import { streamLinkedObject } from './streamLinkedObject';
14
15
  import { isNonNullable } from '..';
15
16
 
16
17
  export const postLinkedObject = (post: Amity.InternalPost): Amity.Post => {
17
- return {
18
- ...post,
18
+ return shallowClone(post, {
19
19
  childrenPosts: post.children
20
20
  .map(childPost => pullFromCache<Amity.InternalPost>(['post', 'get', childPost])?.data)
21
21
  .filter(isNonNullable)
@@ -101,5 +101,5 @@ export const postLinkedObject = (post: Amity.InternalPost): Amity.Post => {
101
101
  ? pullFromCache<Amity.File<'clip'>>(['file', 'get', post?.data?.fileId])?.data
102
102
  : undefined;
103
103
  },
104
- };
104
+ });
105
105
  };