@amityco/ts-sdk 6.7.2 → 6.7.3-cbeeb97.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 (189) hide show
  1. package/dist/@types/core/events.d.ts +9 -3
  2. package/dist/@types/core/events.d.ts.map +1 -1
  3. package/dist/@types/core/marker.d.ts +3 -0
  4. package/dist/@types/core/marker.d.ts.map +1 -1
  5. package/dist/@types/core/model.d.ts +2 -2
  6. package/dist/@types/core/model.d.ts.map +1 -1
  7. package/dist/@types/core/payload.d.ts +40 -36
  8. package/dist/@types/core/payload.d.ts.map +1 -1
  9. package/dist/@types/domains/channel.d.ts +1 -0
  10. package/dist/@types/domains/channel.d.ts.map +1 -1
  11. package/dist/@types/domains/client.d.ts +1 -0
  12. package/dist/@types/domains/client.d.ts.map +1 -1
  13. package/dist/@types/domains/comment.d.ts +20 -8
  14. package/dist/@types/domains/comment.d.ts.map +1 -1
  15. package/dist/@types/domains/partials.d.ts +3 -0
  16. package/dist/@types/domains/partials.d.ts.map +1 -1
  17. package/dist/@types/domains/post.d.ts +1 -1
  18. package/dist/@types/domains/post.d.ts.map +1 -1
  19. package/dist/@types/domains/subChannel.d.ts +1 -0
  20. package/dist/@types/domains/subChannel.d.ts.map +1 -1
  21. package/dist/channelRepsitory/api/markAsRead.d.ts.map +1 -1
  22. package/dist/channelRepsitory/observers/getChannels.d.ts.map +1 -1
  23. package/dist/channelRepsitory/utils/getChannelHasMentioned.d.ts +7 -0
  24. package/dist/channelRepsitory/utils/getChannelHasMentioned.d.ts.map +1 -0
  25. package/dist/channelRepsitory/utils/prepareChannelPayload.d.ts.map +1 -1
  26. package/dist/client/api/markerSync.d.ts.map +1 -1
  27. package/dist/client/observers/getTotalUnreadCount.d.ts +2 -0
  28. package/dist/client/observers/getTotalUnreadCount.d.ts.map +1 -1
  29. package/dist/client/observers/getUserUnread.d.ts +19 -0
  30. package/dist/client/observers/getUserUnread.d.ts.map +1 -0
  31. package/dist/client/observers/index.d.ts +1 -0
  32. package/dist/client/observers/index.d.ts.map +1 -1
  33. package/dist/client/utils/markerSyncEngine.d.ts.map +1 -1
  34. package/dist/client/utils/onOnline.d.ts +2 -0
  35. package/dist/client/utils/onOnline.d.ts.map +1 -0
  36. package/dist/commentRepository/api/createComment.d.ts +4 -4
  37. package/dist/commentRepository/api/createComment.d.ts.map +1 -1
  38. package/dist/commentRepository/api/deleteComment.d.ts +4 -4
  39. package/dist/commentRepository/api/deleteComment.d.ts.map +1 -1
  40. package/dist/commentRepository/api/flagComment.d.ts +1 -1
  41. package/dist/commentRepository/api/flagComment.d.ts.map +1 -1
  42. package/dist/commentRepository/api/getComment.d.ts +8 -8
  43. package/dist/commentRepository/api/getComment.d.ts.map +1 -1
  44. package/dist/commentRepository/api/getCommentByIds.d.ts +8 -8
  45. package/dist/commentRepository/api/getCommentByIds.d.ts.map +1 -1
  46. package/dist/commentRepository/api/hardDeleteComment.d.ts +4 -4
  47. package/dist/commentRepository/api/hardDeleteComment.d.ts.map +1 -1
  48. package/dist/commentRepository/api/isCommentFlaggedByMe.d.ts +1 -1
  49. package/dist/commentRepository/api/isCommentFlaggedByMe.d.ts.map +1 -1
  50. package/dist/commentRepository/api/queryComments.d.ts +3 -3
  51. package/dist/commentRepository/api/queryComments.d.ts.map +1 -1
  52. package/dist/commentRepository/api/softDeleteComment.d.ts +4 -4
  53. package/dist/commentRepository/api/softDeleteComment.d.ts.map +1 -1
  54. package/dist/commentRepository/api/unflagComment.d.ts +1 -1
  55. package/dist/commentRepository/api/unflagComment.d.ts.map +1 -1
  56. package/dist/commentRepository/api/updateComment.d.ts +4 -4
  57. package/dist/commentRepository/api/updateComment.d.ts.map +1 -1
  58. package/dist/commentRepository/events/onCommentCreated.d.ts +3 -3
  59. package/dist/commentRepository/events/onCommentCreated.d.ts.map +1 -1
  60. package/dist/commentRepository/events/onCommentDeleted.d.ts +3 -3
  61. package/dist/commentRepository/events/onCommentDeleted.d.ts.map +1 -1
  62. package/dist/commentRepository/events/onCommentFlagged.d.ts +3 -3
  63. package/dist/commentRepository/events/onCommentFlagged.d.ts.map +1 -1
  64. package/dist/commentRepository/events/onCommentReactionAdded.d.ts +3 -3
  65. package/dist/commentRepository/events/onCommentReactionAdded.d.ts.map +1 -1
  66. package/dist/commentRepository/events/onCommentReactionRemoved.d.ts +3 -3
  67. package/dist/commentRepository/events/onCommentReactionRemoved.d.ts.map +1 -1
  68. package/dist/commentRepository/events/onCommentUnflagged.d.ts +3 -3
  69. package/dist/commentRepository/events/onCommentUnflagged.d.ts.map +1 -1
  70. package/dist/commentRepository/events/onCommentUpdated.d.ts +3 -3
  71. package/dist/commentRepository/events/onCommentUpdated.d.ts.map +1 -1
  72. package/dist/commentRepository/events/utils.d.ts +1 -1
  73. package/dist/commentRepository/events/utils.d.ts.map +1 -1
  74. package/dist/commentRepository/observers/getComment.d.ts +3 -3
  75. package/dist/commentRepository/observers/getComment.d.ts.map +1 -1
  76. package/dist/commentRepository/observers/getComments.d.ts +4 -4
  77. package/dist/commentRepository/observers/getComments.d.ts.map +1 -1
  78. package/dist/commentRepository/observers/observeComment.d.ts +3 -3
  79. package/dist/commentRepository/observers/observeComment.d.ts.map +1 -1
  80. package/dist/commentRepository/observers/observeComments.d.ts +3 -3
  81. package/dist/commentRepository/observers/observeComments.d.ts.map +1 -1
  82. package/dist/index.cjs.js +2253 -18192
  83. package/dist/index.esm.js +273 -107
  84. package/dist/index.umd.js +4 -4
  85. package/dist/marker/api/getChannelMarkers.d.ts.map +1 -1
  86. package/dist/marker/api/getMessageMarkers.d.ts.map +1 -1
  87. package/dist/marker/api/getSubChannelMarkers.d.ts.map +1 -1
  88. package/dist/marker/api/getUserMarker.d.ts.map +1 -1
  89. package/dist/marker/events/onUserMarkerSync.d.ts.map +1 -1
  90. package/dist/messageRepository/api/getDeliveredUsers.d.ts.map +1 -1
  91. package/dist/messageRepository/api/getReadUsers.d.ts.map +1 -1
  92. package/dist/messageRepository/api/markAsDelivered.d.ts.map +1 -1
  93. package/dist/reactionRepository/events/onReactionAdded.d.ts +1 -1
  94. package/dist/reactionRepository/events/onReactionAdded.d.ts.map +1 -1
  95. package/dist/reactionRepository/events/onReactionRemoved.d.ts +1 -1
  96. package/dist/reactionRepository/events/onReactionRemoved.d.ts.map +1 -1
  97. package/dist/reactionRepository/utils/fetchReference.d.ts +1 -1
  98. package/dist/reactionRepository/utils/fetchReference.d.ts.map +1 -1
  99. package/dist/subChannelRepository/api/readingAPI.d.ts.map +1 -1
  100. package/dist/subChannelRepository/api/startReadingAPI.d.ts.map +1 -1
  101. package/dist/subChannelRepository/api/stopReadingAPI.d.ts.map +1 -1
  102. package/dist/subChannelRepository/utils/getSubChannelHasMentioned.d.ts +2 -0
  103. package/dist/subChannelRepository/utils/getSubChannelHasMentioned.d.ts.map +1 -0
  104. package/dist/subChannelRepository/utils/markReadEngine.d.ts.map +1 -1
  105. package/dist/subChannelRepository/utils/prepareSubChannelPayload.d.ts.map +1 -1
  106. package/dist/utils/linkedObject/commentLinkedObject.d.ts +2 -0
  107. package/dist/utils/linkedObject/commentLinkedObject.d.ts.map +1 -0
  108. package/dist/utils/linkedObject/index.d.ts +4 -0
  109. package/dist/utils/linkedObject/index.d.ts.map +1 -0
  110. package/dist/utils/marker.d.ts +4 -0
  111. package/dist/utils/marker.d.ts.map +1 -0
  112. package/dist/utils/tests/dummy/channel.d.ts.map +1 -1
  113. package/dist/utils/tests/dummy/comment.d.ts +20 -14
  114. package/dist/utils/tests/dummy/comment.d.ts.map +1 -1
  115. package/dist/utils/tests/dummy/marker.d.ts +3 -0
  116. package/dist/utils/tests/dummy/marker.d.ts.map +1 -1
  117. package/package.json +3 -1
  118. package/rollup.config.js +2 -0
  119. package/src/@types/core/events.ts +3 -9
  120. package/src/@types/core/marker.ts +3 -0
  121. package/src/@types/core/model.ts +2 -2
  122. package/src/@types/core/payload.ts +41 -36
  123. package/src/@types/domains/channel.ts +1 -0
  124. package/src/@types/domains/client.ts +2 -0
  125. package/src/@types/domains/comment.ts +20 -8
  126. package/src/@types/domains/partials.ts +4 -0
  127. package/src/@types/domains/post.ts +1 -1
  128. package/src/@types/domains/subChannel.ts +1 -0
  129. package/src/channelRepsitory/api/markAsRead.ts +22 -1
  130. package/src/channelRepsitory/observers/getChannels.ts +3 -2
  131. package/src/channelRepsitory/observers/tests/getChannels.test.ts +6 -2
  132. package/src/channelRepsitory/utils/getChannelHasMentioned.ts +28 -0
  133. package/src/channelRepsitory/utils/prepareChannelPayload.ts +4 -0
  134. package/src/channelRepsitory/utils/tests/prepareChannelPayload.test.ts +3 -0
  135. package/src/client/api/markerSync.ts +17 -2
  136. package/src/client/observers/getTotalUnreadCount.ts +2 -0
  137. package/src/client/observers/getUserUnread.ts +47 -0
  138. package/src/client/observers/index.ts +1 -0
  139. package/src/client/utils/markerSyncEngine.ts +5 -13
  140. package/src/client/utils/onOnline.ts +15 -0
  141. package/src/commentRepository/api/createComment.ts +5 -5
  142. package/src/commentRepository/api/deleteComment.ts +6 -5
  143. package/src/commentRepository/api/flagComment.ts +3 -1
  144. package/src/commentRepository/api/getComment.ts +13 -12
  145. package/src/commentRepository/api/getCommentByIds.ts +11 -11
  146. package/src/commentRepository/api/hardDeleteComment.ts +5 -5
  147. package/src/commentRepository/api/isCommentFlaggedByMe.ts +1 -1
  148. package/src/commentRepository/api/queryComments.ts +4 -4
  149. package/src/commentRepository/api/softDeleteComment.ts +5 -5
  150. package/src/commentRepository/api/tests/queryComments.test.ts +9 -9
  151. package/src/commentRepository/api/unflagComment.ts +3 -1
  152. package/src/commentRepository/api/updateComment.ts +6 -6
  153. package/src/commentRepository/events/onCommentCreated.ts +5 -4
  154. package/src/commentRepository/events/onCommentDeleted.ts +5 -4
  155. package/src/commentRepository/events/onCommentFlagged.ts +5 -4
  156. package/src/commentRepository/events/onCommentReactionAdded.ts +4 -4
  157. package/src/commentRepository/events/onCommentReactionRemoved.ts +4 -4
  158. package/src/commentRepository/events/onCommentUnflagged.ts +5 -4
  159. package/src/commentRepository/events/onCommentUpdated.ts +5 -4
  160. package/src/commentRepository/events/utils.ts +3 -3
  161. package/src/commentRepository/observers/getComment.ts +4 -4
  162. package/src/commentRepository/observers/getComments.ts +9 -8
  163. package/src/commentRepository/observers/observeComment.ts +14 -8
  164. package/src/commentRepository/observers/observeComments.ts +9 -6
  165. package/src/commentRepository/observers/tests/getComment.test.ts +3 -1
  166. package/src/marker/api/getChannelMarkers.ts +9 -3
  167. package/src/marker/api/getMessageMarkers.ts +5 -2
  168. package/src/marker/api/getSubChannelMarkers.ts +16 -2
  169. package/src/marker/api/getUserMarker.ts +9 -2
  170. package/src/marker/api/tests/getMessageMarkers.test.ts +3 -1
  171. package/src/marker/api/tests/getSubChannelMarkers.test.ts +16 -8
  172. package/src/marker/events/onUserMarkerSync.ts +18 -2
  173. package/src/messageRepository/api/getDeliveredUsers.ts +9 -2
  174. package/src/messageRepository/api/getReadUsers.ts +6 -2
  175. package/src/messageRepository/api/markAsDelivered.ts +17 -1
  176. package/src/messageRepository/api/tests/markAsDelivered.test.ts +11 -4
  177. package/src/reactionRepository/utils/prepareReactionPayloadFormEvent.ts +1 -1
  178. package/src/subChannelRepository/api/readingAPI.ts +17 -2
  179. package/src/subChannelRepository/api/startReadingAPI.ts +17 -2
  180. package/src/subChannelRepository/api/stopReadingAPI.ts +17 -2
  181. package/src/subChannelRepository/utils/getSubChannelHasMentioned.ts +34 -0
  182. package/src/subChannelRepository/utils/markReadEngine.ts +7 -15
  183. package/src/subChannelRepository/utils/prepareSubChannelPayload.ts +4 -0
  184. package/src/utils/linkedObject/commentLinkedObject.ts +44 -0
  185. package/src/utils/linkedObject/index.ts +5 -0
  186. package/src/utils/marker.ts +29 -0
  187. package/src/utils/tests/dummy/channel.ts +2 -0
  188. package/src/utils/tests/dummy/comment.ts +25 -8
  189. package/src/utils/tests/dummy/marker.ts +46 -0
@@ -19,7 +19,9 @@ import { fireEvent } from '~/core/events';
19
19
  * @category Comment API
20
20
  * @async
21
21
  * */
22
- export const unflagComment = async (commentId: Amity.Comment['commentId']): Promise<boolean> => {
22
+ export const unflagComment = async (
23
+ commentId: Amity.InternalComment['commentId'],
24
+ ): Promise<boolean> => {
23
25
  const client = getActiveClient();
24
26
  client.log('comment/unflagComment', commentId);
25
27
 
@@ -14,19 +14,19 @@ import { fireEvent } from '~/core/events';
14
14
  * })
15
15
  * ```
16
16
  *
17
- * Updates an {@link Amity.Comment}
17
+ * Updates an {@link Amity.InternalComment}
18
18
  *
19
- * @param commentId The ID of the {@link Amity.Comment} to edit
19
+ * @param commentId The ID of the {@link Amity.InternalComment} to edit
20
20
  * @param patch The patch data to apply
21
- * @returns the updated {@link Amity.Comment} object
21
+ * @returns the updated {@link Amity.InternalComment} object
22
22
  *
23
23
  * @category Comment API
24
24
  * @async
25
25
  */
26
26
  export const updateComment = async (
27
- commentId: Amity.Comment['commentId'],
28
- patch: Patch<Amity.Comment, 'data' | 'metadata' | 'mentionees'>,
29
- ): Promise<Amity.Cached<Amity.Comment>> => {
27
+ commentId: Amity.InternalComment['commentId'],
28
+ patch: Patch<Amity.InternalComment, 'data' | 'metadata' | 'mentionees'>,
29
+ ): Promise<Amity.Cached<Amity.InternalComment>> => {
30
30
  const client = getActiveClient();
31
31
  client.log('user/updateComment', patch);
32
32
 
@@ -8,12 +8,13 @@ import { createCommentEventSubscriber } from './utils';
8
8
  * })
9
9
  * ```
10
10
  *
11
- * Fired when a {@link Amity.Comment} has been created
11
+ * Fired when a {@link Amity.InternalComment} has been created
12
12
  *
13
13
  * @param callback The function to call when the event was fired
14
14
  * @returns an {@link Amity.Unsubscriber} function to stop listening
15
15
  *
16
- * @category Comment Events
16
+ * @category InternalComment Events
17
17
  */
18
- export const onCommentCreated = (callback: Amity.Listener<Amity.Comment>): Amity.Unsubscriber =>
19
- createCommentEventSubscriber('comment.created', callback);
18
+ export const onCommentCreated = (
19
+ callback: Amity.Listener<Amity.InternalComment>,
20
+ ): Amity.Unsubscriber => createCommentEventSubscriber('comment.created', callback);
@@ -8,12 +8,13 @@ import { createCommentEventSubscriber } from './utils';
8
8
  * })
9
9
  * ```
10
10
  *
11
- * Fired when a {@link Amity.Comment} has been deleted
11
+ * Fired when a {@link Amity.InternalComment} has been deleted
12
12
  *
13
13
  * @param callback The function to call when the event was fired
14
14
  * @returns an {@link Amity.Unsubscriber} function to stop listening
15
15
  *
16
- * @category Comment Events
16
+ * @category InternalComment Events
17
17
  */
18
- export const onCommentDeleted = (callback: Amity.Listener<Amity.Comment>): Amity.Unsubscriber =>
19
- createCommentEventSubscriber('comment.deleted', callback);
18
+ export const onCommentDeleted = (
19
+ callback: Amity.Listener<Amity.InternalComment>,
20
+ ): Amity.Unsubscriber => createCommentEventSubscriber('comment.deleted', callback);
@@ -8,12 +8,13 @@ import { createCommentEventSubscriber } from './utils';
8
8
  * })
9
9
  * ```
10
10
  *
11
- * Fired when a {@link Amity.Comment} has been flagged
11
+ * Fired when a {@link Amity.InternalComment} has been flagged
12
12
  *
13
13
  * @param callback The function to call when the event was fired
14
14
  * @returns an {@link Amity.Unsubscriber} function to stop listening
15
15
  *
16
- * @category Comment Events
16
+ * @category InternalComment Events
17
17
  */
18
- export const onCommentFlagged = (callback: Amity.Listener<Amity.Comment>): Amity.Unsubscriber =>
19
- createCommentEventSubscriber('comment.flagged', callback);
18
+ export const onCommentFlagged = (
19
+ callback: Amity.Listener<Amity.InternalComment>,
20
+ ): Amity.Unsubscriber => createCommentEventSubscriber('comment.flagged', callback);
@@ -12,15 +12,15 @@ import { prepareReactionPayloadFormEvent } from '~/reactionRepository/utils';
12
12
  * })
13
13
  * ```
14
14
  *
15
- * Fired when a {@link Amity.Comment} has been reacted
15
+ * Fired when a {@link Amity.InternalComment} has been reacted
16
16
  *
17
17
  * @param callback The function to call when the event was fired
18
18
  * @returns an {@link Amity.Unsubscriber} function to stop listening
19
19
  *
20
- * @category Comment Events
20
+ * @category InternalComment Events
21
21
  */
22
22
  export const onCommentReactionAdded = (
23
- callback: Amity.Listener<Amity.Comment>,
23
+ callback: Amity.Listener<Amity.InternalComment>,
24
24
  ): Amity.Unsubscriber => {
25
25
  const client = getActiveClient();
26
26
 
@@ -33,7 +33,7 @@ export const onCommentReactionAdded = (
33
33
 
34
34
  ingestInCache(commentPayload as Amity.CommentPayload);
35
35
 
36
- const comment = pullFromCache<Amity.Comment>([
36
+ const comment = pullFromCache<Amity.InternalComment>([
37
37
  'comment',
38
38
  'get',
39
39
  payload.comments[0].commentId,
@@ -12,15 +12,15 @@ import { prepareReactionPayloadFormEvent } from '~/reactionRepository/utils';
12
12
  * })
13
13
  * ```
14
14
  *
15
- * Fired when a reaction has been removed from a {@link Amity.Comment}
15
+ * Fired when a reaction has been removed from a {@link Amity.InternalComment}
16
16
  *
17
17
  * @param callback The function to call when the event was fired
18
18
  * @returns an {@link Amity.Unsubscriber} function to stop listening
19
19
  *
20
- * @category Comment Events
20
+ * @category InternalComment Events
21
21
  */
22
22
  export const onCommentReactionRemoved = (
23
- callback: Amity.Listener<Amity.Comment>,
23
+ callback: Amity.Listener<Amity.InternalComment>,
24
24
  ): Amity.Unsubscriber => {
25
25
  const client = getActiveClient();
26
26
 
@@ -33,7 +33,7 @@ export const onCommentReactionRemoved = (
33
33
 
34
34
  ingestInCache(commentPayload as Amity.CommentPayload);
35
35
 
36
- const comment = pullFromCache<Amity.Comment>([
36
+ const comment = pullFromCache<Amity.InternalComment>([
37
37
  'comment',
38
38
  'get',
39
39
  payload.comments[0].commentId,
@@ -8,12 +8,13 @@ import { createCommentEventSubscriber } from './utils';
8
8
  * })
9
9
  * ```
10
10
  *
11
- * Fired when a flag has been removed from a {@link Amity.Comment}
11
+ * Fired when a flag has been removed from a {@link Amity.InternalComment}
12
12
  *
13
13
  * @param callback The function to call when the event was fired
14
14
  * @returns an {@link Amity.Unsubscriber} function to stop listening
15
15
  *
16
- * @category Comment Events
16
+ * @category InternalComment Events
17
17
  */
18
- export const onCommentUnflagged = (callback: Amity.Listener<Amity.Comment>): Amity.Unsubscriber =>
19
- createCommentEventSubscriber('comment.unflagged', callback);
18
+ export const onCommentUnflagged = (
19
+ callback: Amity.Listener<Amity.InternalComment>,
20
+ ): Amity.Unsubscriber => createCommentEventSubscriber('comment.unflagged', callback);
@@ -8,12 +8,13 @@ import { createCommentEventSubscriber } from './utils';
8
8
  * })
9
9
  * ```
10
10
  *
11
- * Fired when a {@link Amity.Comment} has been updated
11
+ * Fired when a {@link Amity.InternalComment} has been updated
12
12
  *
13
13
  * @param callback The function to call when the event was fired
14
14
  * @returns an {@link Amity.Unsubscriber} function to stop listening
15
15
  *
16
- * @category Comment Events
16
+ * @category InternalComment Events
17
17
  */
18
- export const onCommentUpdated = (callback: Amity.Listener<Amity.Comment>): Amity.Unsubscriber =>
19
- createCommentEventSubscriber('comment.updated', callback);
18
+ export const onCommentUpdated = (
19
+ callback: Amity.Listener<Amity.InternalComment>,
20
+ ): Amity.Unsubscriber => createCommentEventSubscriber('comment.updated', callback);
@@ -1,11 +1,11 @@
1
1
  import { getActiveClient } from '~/client/api';
2
2
  import { createEventSubscriber } from '~/core/events';
3
- import { queryCache, upsertInCache, pullFromCache } from '~/cache/api';
3
+ import { pullFromCache, queryCache, upsertInCache } from '~/cache/api';
4
4
  import { ingestInCache } from '~/cache/api/ingestInCache';
5
5
 
6
6
  export const createCommentEventSubscriber = (
7
7
  event: keyof Amity.MqttCommentEvents,
8
- callback: Amity.Listener<Amity.Comment>,
8
+ callback: Amity.Listener<Amity.InternalComment>,
9
9
  ) => {
10
10
  const client = getActiveClient();
11
11
 
@@ -16,7 +16,7 @@ export const createCommentEventSubscriber = (
16
16
  } else {
17
17
  ingestInCache(payload);
18
18
 
19
- const comment = pullFromCache<Amity.Comment>([
19
+ const comment = pullFromCache<Amity.InternalComment>([
20
20
  'comment',
21
21
  'get',
22
22
  payload.comments[0].commentId,
@@ -23,17 +23,17 @@ import {
23
23
  * });
24
24
  * ```
25
25
  *
26
- * Observe all mutation on a given {@link Amity.Comment}
26
+ * Observe all mutation on a given {@link Amity.InternalComment}
27
27
  *
28
28
  * @param commentId the ID of the comment to observe
29
29
  * @param callback the function to call when new data are available
30
30
  * @returns An {@link Amity.Unsubscriber} function to run when willing to stop observing the comment
31
31
  *
32
- * @category Comment Live Object
32
+ * @category InternalComment Live Object
33
33
  */
34
34
  export const getComment = (
35
- commentId: Amity.Comment['commentId'],
36
- callback: Amity.LiveObjectCallback<Amity.Comment>,
35
+ commentId: Amity.InternalComment['commentId'],
36
+ callback: Amity.LiveObjectCallback<Amity.InternalComment>,
37
37
  ): Amity.Unsubscriber => {
38
38
  return liveObject(commentId, callback, 'commentId', _getComment, [
39
39
  onCommentDeleted,
@@ -18,6 +18,7 @@ import {
18
18
  } from '~/utils/constants';
19
19
 
20
20
  import { CACHE_SHORTEN_LIFESPAN } from '~/cache/utils';
21
+ import { LinkedObject } from '~/utils/linkedObject';
21
22
  import {
22
23
  onCommentCreated,
23
24
  onCommentDeleted,
@@ -38,12 +39,12 @@ import { queryComments } from '../api/queryComments';
38
39
  *
39
40
  * let comments = []
40
41
  * const unsub = getComments({
41
- * referenceType: Amity.Comment['referenceType'];
42
- * referenceId: Amity.Comment['referenceId'];
42
+ * referenceType: Amity.InternalComment['referenceType'];
43
+ * referenceId: Amity.InternalComment['referenceId'];
43
44
  * }, response => merge(comments, response.data))
44
45
  * ```
45
46
  *
46
- * Observe all mutations on a list of {@link Amity.Comment} for a given target object
47
+ * Observe all mutations on a list of {@link Amity.InternalComment} for a given target object
47
48
  *
48
49
  * @param referenceType the type of the target
49
50
  * @param referenceId the ID of the target
@@ -54,7 +55,7 @@ import { queryComments } from '../api/queryComments';
54
55
  */
55
56
  export const getComments = (
56
57
  params: Amity.CommentLiveCollection,
57
- callback: Amity.LiveCollectionCallback<Amity.Comment>,
58
+ callback: Amity.LiveCollectionCallback<Amity.InternalComment>,
58
59
  config?: Amity.LiveCollectionConfig,
59
60
  ): Amity.Unsubscriber => {
60
61
  const { log, cache } = getActiveClient();
@@ -79,11 +80,11 @@ export const getComments = (
79
80
  ];
80
81
 
81
82
  const responder = (data: Amity.CommentLiveCollectionCache) => {
82
- let comments: Amity.Comment[] =
83
+ let comments: Amity.InternalComment[] =
83
84
  data.data
84
- .map(commentId => pullFromCache<Amity.Comment>(['comment', 'get', commentId])!)
85
+ .map(commentId => pullFromCache<Amity.InternalComment>(['comment', 'get', commentId])!)
85
86
  .filter(Boolean)
86
- .map(({ data }) => data) ?? [];
87
+ .map(({ data }) => LinkedObject.comment(data)) ?? [];
87
88
 
88
89
  if (!params.includeDeleted) {
89
90
  comments = filterByPropEquality(comments, 'isDeleted', false);
@@ -102,7 +103,7 @@ export const getComments = (
102
103
  });
103
104
  };
104
105
 
105
- const realtimeRouter = (action: Amity.CommentActionType) => (comment: Amity.Comment) => {
106
+ const realtimeRouter = (action: Amity.CommentActionType) => (comment: Amity.InternalComment) => {
106
107
  const collection = pullFromCache<Amity.CommentLiveCollectionCache>(cacheKey)?.data;
107
108
 
108
109
  if (
@@ -1,16 +1,16 @@
1
1
  import { getActiveClient } from '~/client/api';
2
2
 
3
- import { createQuery, runQuery, queryOptions } from '~/core/query';
3
+ import { createQuery, queryOptions, runQuery } from '~/core/query';
4
4
 
5
5
  import { getComment } from '../api/getComment';
6
6
 
7
7
  import {
8
- onCommentUpdated,
9
8
  onCommentDeleted,
10
9
  onCommentFlagged,
11
- onCommentUnflagged,
12
10
  onCommentReactionAdded,
13
11
  onCommentReactionRemoved,
12
+ onCommentUnflagged,
13
+ onCommentUpdated,
14
14
  } from '../events';
15
15
 
16
16
  /**
@@ -21,13 +21,13 @@ import {
21
21
  * const dispose = observeComment(commentId, ({ data }) => comment = data)
22
22
  * ```
23
23
  *
24
- * Observe all mutation on a given {@link Amity.Comment}
24
+ * Observe all mutation on a given {@link Amity.InternalComment}
25
25
  *
26
26
  * @param commentId the ID of the comment to observe
27
27
  * @param callback the function to call when new data are available
28
28
  * @returns An {@link Amity.Unsubscriber} function to run when willing to stop observing the comment
29
29
  *
30
- * @category Comment Observer
30
+ * @category InternalComment Observer
31
31
  */
32
32
  export const observeComment = <
33
33
  Events extends [
@@ -41,7 +41,7 @@ export const observeComment = <
41
41
  ],
42
42
  >(
43
43
  commentId: string,
44
- callback: Amity.ObjectListener<Amity.Snapshot<Amity.Comment | undefined>, Events>,
44
+ callback: Amity.ObjectListener<Amity.Snapshot<Amity.InternalComment | undefined>, Events>,
45
45
  policy: Amity.QueryPolicy = 'cache_then_server',
46
46
  ): Amity.Unsubscriber => {
47
47
  const { log } = getActiveClient();
@@ -50,7 +50,10 @@ export const observeComment = <
50
50
  log(`observeComment(tmpid: ${timestamp}) > listen`);
51
51
 
52
52
  // wrapper function to make sure
53
- const router = (result: Amity.Snapshot<Amity.Comment | undefined>, action: Events[number]) => {
53
+ const router = (
54
+ result: Amity.Snapshot<Amity.InternalComment | undefined>,
55
+ action: Events[number],
56
+ ) => {
54
57
  if (callback instanceof Function) return callback(result);
55
58
 
56
59
  if (action !== 'onFetch') callback.onEvent?.(action, result);
@@ -58,7 +61,10 @@ export const observeComment = <
58
61
  callback[action]?.(result);
59
62
  };
60
63
 
61
- const realtimeRouter = (result: Amity.Snapshot<Amity.Comment>, action: Events[number]) => {
64
+ const realtimeRouter = (
65
+ result: Amity.Snapshot<Amity.InternalComment>,
66
+ action: Events[number],
67
+ ) => {
62
68
  if (result.data?.commentId !== commentId) return;
63
69
 
64
70
  router(result, action);
@@ -2,12 +2,12 @@ import { getActiveClient } from '~/client/api';
2
2
 
3
3
  import {
4
4
  onCommentCreated,
5
- onCommentUpdated,
6
5
  onCommentDeleted,
7
6
  onCommentFlagged,
8
- onCommentUnflagged,
9
7
  onCommentReactionAdded,
10
8
  onCommentReactionRemoved,
9
+ onCommentUnflagged,
10
+ onCommentUpdated,
11
11
  } from '../events';
12
12
 
13
13
  /**
@@ -18,18 +18,18 @@ import {
18
18
  * const unsub = observeComments(postId, comment => merge(comments, comment))
19
19
  * ```
20
20
  *
21
- * Observe all mutations on a list of {@link Amity.Comment} for a given {@link Amity.Post} object
21
+ * Observe all mutations on a list of {@link Amity.InternalComment} for a given {@link Amity.Post} object
22
22
  *
23
23
  * @param postId the ID of the post where to observe the comments
24
24
  * @param callback the function to call when new data are available
25
25
  * @returns An {@link Amity.Unsubscriber} function to run when willing to stop observing the comments
26
26
  *
27
- * @category Comment Observer
27
+ * @category InternalComment Observer
28
28
  */
29
29
  export const observeComments = (
30
30
  postId: Amity.Post['postId'],
31
31
  callback: Amity.ObjectListener<
32
- Amity.Comment,
32
+ Amity.InternalComment,
33
33
  [
34
34
  'onCreate',
35
35
  'onUpdate',
@@ -48,7 +48,10 @@ export const observeComments = (
48
48
 
49
49
  const disposers: Amity.Unsubscriber[] = [];
50
50
 
51
- const router = (comment: Amity.Comment, action: Exclude<Amity.CommentActionType, 'onFetch'>) => {
51
+ const router = (
52
+ comment: Amity.InternalComment,
53
+ action: Exclude<Amity.CommentActionType, 'onFetch'>,
54
+ ) => {
52
55
  if (comment.referenceId !== postId) return;
53
56
 
54
57
  if (callback instanceof Function) return callback(comment);
@@ -1,10 +1,10 @@
1
1
  import { disableCache, enableCache } from '~/cache/api';
2
2
  import {
3
- pause,
4
3
  client,
5
4
  connectClient,
6
5
  disconnectClient,
7
6
  generateComment,
7
+ pause,
8
8
  user12,
9
9
  } from '~/utils/tests';
10
10
  import { getFutureDate } from '~/core/model';
@@ -50,6 +50,7 @@ describe('getComment', () => {
50
50
  client.emitter.emit(event, {
51
51
  comments: [update],
52
52
  commentChildren: [],
53
+ communityUsers: [],
53
54
  users: [],
54
55
  files: [],
55
56
  });
@@ -91,6 +92,7 @@ describe('getComment', () => {
91
92
  comments: [update],
92
93
  reactor,
93
94
  commentChildren: [],
95
+ communityUsers: [],
94
96
  users: [],
95
97
  files: [],
96
98
  });
@@ -2,6 +2,7 @@ import { getActiveClient } from '~/client/api/activeClient';
2
2
  import { fireEvent } from '~/core/events';
3
3
  import { toPage, toToken } from '~/core/query';
4
4
  import { ingestInCache } from '~/cache/api/ingestInCache';
5
+ import { convertChannelMarkerResponse, convertUserMarkerResponse } from '~/utils/marker';
5
6
 
6
7
  /**
7
8
  * ```js
@@ -38,12 +39,17 @@ export const getChannelMarkers = async (
38
39
  });
39
40
 
40
41
  const { paging, ...payload } = queryPayload;
41
- const { userEntityMarkers, userMarkers } = payload;
42
+ const { userEntityMarkers: userEntityMarkersPayload, userMarkers: userMarkersPayload } = payload;
43
+
44
+ const userMarkers = convertUserMarkerResponse(userMarkersPayload);
45
+ const userEntityMarkers = convertChannelMarkerResponse(userEntityMarkersPayload);
42
46
 
43
47
  const cachedAt = client.cache && Date.now();
44
- if (client.cache) ingestInCache(payload as Amity.ChannelMarkerPayload, { cachedAt });
48
+ if (client.cache) ingestInCache({ userEntityMarkers, userMarkers }, { cachedAt });
45
49
 
46
- fireEvent('local.channelMarker.fetched', { userEntityMarkers });
50
+ fireEvent('local.channelMarker.fetched', {
51
+ userEntityMarkers,
52
+ });
47
53
  fireEvent('local.userMarker.fetched', { userMarkers });
48
54
 
49
55
  const nextPage = toPage(paging.next);
@@ -2,6 +2,7 @@ import { getActiveClient } from '~/client/api/activeClient';
2
2
  import { fireEvent } from '~/core/events';
3
3
  import { toPage, toToken } from '~/core/query';
4
4
  import { ingestInCache } from '~/cache/api/ingestInCache';
5
+ import { convertUserMarkerResponse } from '~/utils/marker';
5
6
 
6
7
  /**
7
8
  * ```js
@@ -38,10 +39,12 @@ export const getMessageMarkers = async (
38
39
  });
39
40
 
40
41
  const { paging, ...payload } = queryPayload;
41
- const { contentMarkers, feedMarkers, userMarkers } = payload;
42
+ const { contentMarkers, feedMarkers, userMarkers: userMarkersPayload } = payload;
43
+
44
+ const userMarkers = convertUserMarkerResponse(userMarkersPayload);
42
45
 
43
46
  const cachedAt = client.cache && Date.now();
44
- if (client.cache) ingestInCache(payload as Amity.MessageMarkerPayload, { cachedAt });
47
+ if (client.cache) ingestInCache({ contentMarkers, feedMarkers, userMarkers }, { cachedAt });
45
48
 
46
49
  fireEvent('local.feedMarker.fetched', { feedMarkers });
47
50
  fireEvent('local.messageMarker.fetched', { contentMarkers });
@@ -2,6 +2,11 @@ import { getActiveClient } from '~/client/api/activeClient';
2
2
  import { fireEvent } from '~/core/events';
3
3
  import { toPage, toToken } from '~/core/query';
4
4
  import { ingestInCache } from '~/cache/api/ingestInCache';
5
+ import {
6
+ convertChannelMarkerResponse,
7
+ convertSubChannelMarkerResponse,
8
+ convertUserMarkerResponse,
9
+ } from '~/utils/marker';
5
10
 
6
11
  /**
7
12
  * ```js
@@ -38,10 +43,19 @@ export const getSubChannelMarkers = async (
38
43
  });
39
44
 
40
45
  const { paging, ...payload } = queryPayload;
41
- const { userEntityMarkers, userFeedMarkers, userMarkers } = payload;
46
+ const {
47
+ userEntityMarkers: userEntityMarkersPayload,
48
+ userFeedMarkers: userFeedMarkersPayload,
49
+ userMarkers: userMarkersPayload,
50
+ } = payload;
51
+
52
+ const userMarkers = convertUserMarkerResponse(userMarkersPayload);
53
+ const userEntityMarkers = convertChannelMarkerResponse(userEntityMarkersPayload);
54
+ const userFeedMarkers = convertSubChannelMarkerResponse(userFeedMarkersPayload);
42
55
 
43
56
  const cachedAt = client.cache && Date.now();
44
- if (client.cache) ingestInCache(payload as Amity.SubChannelMarkerPayload, { cachedAt });
57
+ if (client.cache)
58
+ ingestInCache({ userEntityMarkers, userFeedMarkers, userMarkers }, { cachedAt });
45
59
 
46
60
  fireEvent('local.channelMarker.fetched', { userEntityMarkers });
47
61
  fireEvent('local.subChannelMarker.fetched', { userFeedMarkers });
@@ -1,6 +1,8 @@
1
1
  import { ingestInCache } from '~/cache/api/ingestInCache';
2
2
  import { getActiveClient } from '~/client/api/activeClient';
3
3
  import { fireEvent } from '~/core/events';
4
+ // import { convertMarkerResponse } from '~/utils/marker';
5
+ import { convertUserMarkerResponse } from '~/utils/marker';
4
6
 
5
7
  export const getUserMarker = async (): Promise<Amity.Cached<Amity.UserMarker>> => {
6
8
  const client = getActiveClient();
@@ -10,10 +12,15 @@ export const getUserMarker = async (): Promise<Amity.Cached<Amity.UserMarker>> =
10
12
  `/api/v1/markers/userMarker`,
11
13
  );
12
14
 
13
- const { userMarkers } = payload;
15
+ const { userMarkers: UserMarkersPayload } = payload;
16
+
17
+ /*
18
+ change field isMentioned from backend to be hasMentioned
19
+ */
20
+ const userMarkers = convertUserMarkerResponse(UserMarkersPayload);
14
21
 
15
22
  const cachedAt = client.cache && Date.now();
16
- if (client.cache) ingestInCache(payload as Amity.UserMarkerPayload, { cachedAt });
23
+ if (client.cache) ingestInCache({ userMarkers }, { cachedAt });
17
24
 
18
25
  fireEvent('local.userMarker.fetched', { userMarkers });
19
26
 
@@ -7,6 +7,7 @@ import {
7
7
  generateFeedMarker,
8
8
  generateMessageMarker,
9
9
  generateUserMarker,
10
+ generateUserMarkerResponse,
10
11
  } from '~/utils/tests';
11
12
 
12
13
  import { getMessageMarkers } from '../getMessageMarkers';
@@ -25,6 +26,7 @@ const expectedMessageMarkers = [
25
26
 
26
27
  const expectedFeedMarkers = [generateFeedMarker({ feedId: 'sub-ch1', entityId: 'feed1' })];
27
28
 
29
+ const userMarkersResponse = [generateUserMarkerResponse({ userId: 'currentUser1' })];
28
30
  const expectedUserMarkers = [generateUserMarker({ userId: 'currentUser1' })];
29
31
 
30
32
  const messageIds = expectedMessageMarkers.map(({ contentId }) => contentId);
@@ -35,7 +37,7 @@ const resolvedGetValue = {
35
37
  data: {
36
38
  contentMarkers: expectedMessageMarkers,
37
39
  feedMarkers: expectedFeedMarkers,
38
- userMarkers: expectedUserMarkers,
40
+ userMarkers: userMarkersResponse,
39
41
  paging: pagingToken,
40
42
  } as Amity.MessageMarkerPayload,
41
43
  };
@@ -5,8 +5,11 @@ import { onSubChannelMarkerFetched, onUserMarkerFetched } from '~/marker/events'
5
5
  import {
6
6
  client,
7
7
  generateChannelMarker,
8
+ generateChannelMarkerResponse,
8
9
  generateSubChannelMarker,
10
+ generateSubChannelMarkerResponse,
9
11
  generateUserMarker,
12
+ generateUserMarkerResponse,
10
13
  } from '~/utils/tests';
11
14
 
12
15
  import { getSubChannelMarkers } from '../getSubChannelMarkers';
@@ -17,14 +20,19 @@ const pagingToken = {
17
20
  };
18
21
 
19
22
  const pagingCriteria = { limit: 10 };
23
+ const subChannelMarkerResponse = [
24
+ generateSubChannelMarkerResponse({ feedId: 'sub-ch1', entityId: 'ch1' }),
25
+ generateSubChannelMarkerResponse({ feedId: 'sub-ch2', entityId: 'ch1' }),
26
+ ];
27
+ const channelMarkersResponse = [
28
+ generateChannelMarkerResponse({ entityId: 'ch1', userId: 'user1' }),
29
+ ];
30
+ const userMarkersResponse = [generateUserMarkerResponse({ userId: 'currentUser1' })];
20
31
 
21
32
  const expectedSubChannelMarkers = [
22
33
  generateSubChannelMarker({ feedId: 'sub-ch1', entityId: 'ch1' }),
23
34
  generateSubChannelMarker({ feedId: 'sub-ch2', entityId: 'ch1' }),
24
35
  ];
25
-
26
- const expectedChannelMarkers = [generateChannelMarker({ entityId: 'ch1', userId: 'user1' })];
27
-
28
36
  const expectedUserMarkers = [generateUserMarker({ userId: 'currentUser1' })];
29
37
 
30
38
  const subChannelIds = expectedSubChannelMarkers.map(({ feedId }) => feedId);
@@ -33,9 +41,9 @@ const subChannelMarkerCacheIds = expectedSubChannelMarkers.map(subChannelMarkerR
33
41
 
34
42
  const resolvedGetValue = {
35
43
  data: {
36
- userFeedMarkers: expectedSubChannelMarkers,
37
- userEntityMarkers: expectedChannelMarkers,
38
- userMarkers: expectedUserMarkers,
44
+ userFeedMarkers: subChannelMarkerResponse,
45
+ userEntityMarkers: channelMarkersResponse,
46
+ userMarkers: userMarkersResponse,
39
47
  paging: pagingToken,
40
48
  } as Amity.SubChannelMarkerPayload,
41
49
  };
@@ -103,11 +111,11 @@ describe('getSubChannelMarkers', () => {
103
111
 
104
112
  test('should fire event `onUserMarkerFetched`', async () => {
105
113
  let dispose;
106
- client.http.get = jest.fn().mockResolvedValue(resolvedGetValue);
114
+ client.http.get = jest.fn().mockResolvedValue(resolvedGetValue); // isMentioned
107
115
 
108
116
  const callbackPromise = new Promise(resolve => {
109
117
  dispose = onUserMarkerFetched(resolve);
110
- }).finally(dispose);
118
+ }).finally(dispose); // hasMentioned
111
119
 
112
120
  await getSubChannelMarkers(subChannelIds);
113
121