@amityco/ts-sdk 6.4.6-e12bdf9.0 → 6.5.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 (125) hide show
  1. package/dist/@types/core/events.d.ts +4 -4
  2. package/dist/@types/core/events.d.ts.map +1 -1
  3. package/dist/@types/core/model.d.ts +3 -1
  4. package/dist/@types/core/model.d.ts.map +1 -1
  5. package/dist/@types/core/payload.d.ts +1 -1
  6. package/dist/@types/core/payload.d.ts.map +1 -1
  7. package/dist/@types/domains/post.d.ts +1 -1
  8. package/dist/@types/domains/post.d.ts.map +1 -1
  9. package/dist/@types/domains/reaction.d.ts +4 -5
  10. package/dist/@types/domains/reaction.d.ts.map +1 -1
  11. package/dist/channelRepsitory/channelMembership/observers/getMembers.d.ts +1 -0
  12. package/dist/channelRepsitory/channelMembership/observers/getMembers.d.ts.map +1 -1
  13. package/dist/client/observers/getTotalUnreadCount.d.ts.map +1 -1
  14. package/dist/client/utils/markerSyncEngine.d.ts.map +1 -1
  15. package/dist/commentRepository/observers/getComment.d.ts +2 -2
  16. package/dist/communityRepository/api/getCommunity.d.ts +4 -4
  17. package/dist/communityRepository/api/getRecommendedCommunities.d.ts +4 -19
  18. package/dist/communityRepository/api/getRecommendedCommunities.d.ts.map +1 -1
  19. package/dist/communityRepository/api/getTopTrendingCommunities.d.ts +5 -2
  20. package/dist/communityRepository/api/getTopTrendingCommunities.d.ts.map +1 -1
  21. package/dist/communityRepository/api/getTrendingCommunities.d.ts +17 -0
  22. package/dist/communityRepository/api/getTrendingCommunities.d.ts.map +1 -0
  23. package/dist/communityRepository/api/index.d.ts +0 -1
  24. package/dist/communityRepository/api/index.d.ts.map +1 -1
  25. package/dist/communityRepository/api/test/getTrendingCommunities.test.d.ts +2 -0
  26. package/dist/communityRepository/api/test/getTrendingCommunities.test.d.ts.map +1 -0
  27. package/dist/communityRepository/communityMembership/observers/getMembers.d.ts +1 -0
  28. package/dist/communityRepository/communityMembership/observers/getMembers.d.ts.map +1 -1
  29. package/dist/communityRepository/observers/getCommunities.d.ts +2 -2
  30. package/dist/communityRepository/observers/getCommunity.d.ts +2 -2
  31. package/dist/communityRepository/observers/getRecommendedCommunities.d.ts +20 -0
  32. package/dist/communityRepository/observers/getRecommendedCommunities.d.ts.map +1 -0
  33. package/dist/communityRepository/observers/getTrendingCommunities.d.ts +20 -0
  34. package/dist/communityRepository/observers/getTrendingCommunities.d.ts.map +1 -0
  35. package/dist/communityRepository/observers/index.d.ts +2 -0
  36. package/dist/communityRepository/observers/index.d.ts.map +1 -1
  37. package/dist/communityRepository/utils/communityQueryFilter.d.ts +2 -0
  38. package/dist/communityRepository/utils/communityQueryFilter.d.ts.map +1 -0
  39. package/dist/core/model/idResolvers.d.ts.map +1 -1
  40. package/dist/core/model/identifyModel.d.ts.map +1 -1
  41. package/dist/index.cjs.js +554 -237
  42. package/dist/index.esm.js +554 -237
  43. package/dist/index.umd.js +4 -4
  44. package/dist/pollRepository/api/index.d.ts +0 -1
  45. package/dist/pollRepository/api/index.d.ts.map +1 -1
  46. package/dist/pollRepository/observers/getPoll.d.ts +21 -0
  47. package/dist/pollRepository/observers/getPoll.d.ts.map +1 -0
  48. package/dist/pollRepository/observers/index.d.ts +1 -0
  49. package/dist/pollRepository/observers/index.d.ts.map +1 -1
  50. package/dist/postRepository/observers/getPost.d.ts +2 -2
  51. package/dist/reactionRepository/api/addReaction.d.ts +2 -2
  52. package/dist/reactionRepository/api/addReaction.d.ts.map +1 -1
  53. package/dist/reactionRepository/api/queryReactions.d.ts +2 -2
  54. package/dist/reactionRepository/api/queryReactions.d.ts.map +1 -1
  55. package/dist/reactionRepository/api/queryReactor.d.ts +19 -0
  56. package/dist/reactionRepository/api/queryReactor.d.ts.map +1 -0
  57. package/dist/reactionRepository/api/removeReaction.d.ts +2 -2
  58. package/dist/reactionRepository/api/removeReaction.d.ts.map +1 -1
  59. package/dist/reactionRepository/observers/getReactions.d.ts +3 -3
  60. package/dist/reactionRepository/observers/getReactions.d.ts.map +1 -1
  61. package/dist/streamRepository/observers/getStreamById.d.ts +19 -2
  62. package/dist/streamRepository/observers/getStreamById.d.ts.map +1 -1
  63. package/dist/streamRepository/observers/getStreams.d.ts.map +1 -1
  64. package/dist/streamRepository/observers/tests/getStreamById.test.d.ts +2 -0
  65. package/dist/streamRepository/observers/tests/getStreamById.test.d.ts.map +1 -0
  66. package/dist/userRepository/observers/getUsers.d.ts +1 -0
  67. package/dist/userRepository/observers/getUsers.d.ts.map +1 -1
  68. package/dist/utils/tests/dummy/reaction.d.ts +1 -1
  69. package/dist/utils/tests/dummy/reaction.d.ts.map +1 -1
  70. package/dist/utils/tests/dummy/stream.d.ts +22 -0
  71. package/dist/utils/tests/dummy/stream.d.ts.map +1 -1
  72. package/package.json +1 -1
  73. package/src/@types/core/events.ts +4 -4
  74. package/src/@types/core/model.ts +3 -1
  75. package/src/@types/core/payload.ts +1 -1
  76. package/src/@types/domains/post.ts +1 -1
  77. package/src/@types/domains/reaction.ts +8 -9
  78. package/src/categoryRepository/api/queryCategories.ts +1 -1
  79. package/src/channelRepsitory/channelMembership/observers/getMembers.ts +47 -39
  80. package/src/channelRepsitory/channelMembership/observers/tests/getMembers.test.ts +82 -5
  81. package/src/client/observers/getTotalUnreadCount.ts +1 -7
  82. package/src/client/observers/tests/getTotalUnreadCount.test.ts +3 -10
  83. package/src/client/utils/markerSyncEngine.ts +13 -2
  84. package/src/commentRepository/events/onCommentReactionAdded.ts +1 -1
  85. package/src/commentRepository/events/onCommentReactionRemoved.ts +1 -1
  86. package/src/commentRepository/observers/getComment.ts +2 -2
  87. package/src/commentRepository/observers/tests/getComment.test.ts +1 -3
  88. package/src/communityRepository/api/getCommunity.ts +4 -4
  89. package/src/communityRepository/api/getRecommendedCommunities.ts +7 -48
  90. package/src/communityRepository/api/getTopTrendingCommunities.ts +5 -2
  91. package/src/communityRepository/api/getTrendingCommunities.ts +50 -0
  92. package/src/communityRepository/api/index.ts +1 -1
  93. package/src/communityRepository/api/test/getTrendingCommunities.test.ts +102 -0
  94. package/src/communityRepository/communityMembership/observers/getMembers.ts +31 -23
  95. package/src/communityRepository/communityMembership/observers/tests/getMembers.test.ts +80 -2
  96. package/src/communityRepository/observers/getCommunities.ts +2 -2
  97. package/src/communityRepository/observers/getCommunity.ts +2 -2
  98. package/src/communityRepository/observers/getRecommendedCommunities.ts +130 -0
  99. package/src/communityRepository/observers/getTrendingCommunities.ts +130 -0
  100. package/src/communityRepository/observers/index.ts +2 -0
  101. package/src/communityRepository/utils/communityQueryFilter.ts +55 -0
  102. package/src/core/model/idResolvers.ts +2 -1
  103. package/src/core/model/identifyModel.ts +5 -4
  104. package/src/pollRepository/api/index.ts +0 -2
  105. package/src/pollRepository/observers/getPoll.ts +33 -0
  106. package/src/pollRepository/observers/index.ts +1 -0
  107. package/src/pollRepository/observers/observePoll.ts +2 -2
  108. package/src/postRepository/events/tests/onPostReactionAdded.test.ts +6 -5
  109. package/src/postRepository/events/tests/onPostReactionRemoved.test.ts +5 -4
  110. package/src/postRepository/observers/getPost.ts +2 -2
  111. package/src/postRepository/observers/getPosts.ts +1 -1
  112. package/src/postRepository/observers/tests/getPost.test.ts +1 -3
  113. package/src/postRepository/observers/tests/getPosts.test.ts +1 -5
  114. package/src/reactionRepository/api/addReaction.ts +2 -2
  115. package/src/reactionRepository/api/queryReactions.ts +2 -2
  116. package/src/reactionRepository/api/queryReactor.ts +31 -0
  117. package/src/reactionRepository/api/removeReaction.ts +2 -2
  118. package/src/reactionRepository/observers/getReactions.ts +6 -8
  119. package/src/streamRepository/observers/getStreamById.ts +35 -1
  120. package/src/streamRepository/observers/getStreams.ts +6 -5
  121. package/src/streamRepository/observers/tests/getStreamById.test.ts +44 -0
  122. package/src/userRepository/observers/getUsers.ts +32 -24
  123. package/src/userRepository/observers/tests/getUsers.test.ts +46 -1
  124. package/src/utils/tests/dummy/reaction.ts +6 -10
  125. package/src/utils/tests/dummy/stream.ts +47 -0
@@ -1,4 +1,3 @@
1
- export * from './getPoll';
2
1
  export * from './createPoll';
3
2
  export * from './closePoll';
4
3
  export * from './deletePoll';
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/pollRepository/api/index.ts"],"names":[],"mappings":"AAAA,cAAc,WAAW,CAAC;AAE1B,cAAc,cAAc,CAAC;AAC7B,cAAc,aAAa,CAAC;AAC5B,cAAc,cAAc,CAAC;AAE7B,cAAc,YAAY,CAAC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/pollRepository/api/index.ts"],"names":[],"mappings":"AAAA,cAAc,cAAc,CAAC;AAC7B,cAAc,aAAa,CAAC;AAC5B,cAAc,cAAc,CAAC;AAE7B,cAAc,YAAY,CAAC"}
@@ -0,0 +1,21 @@
1
+ /**
2
+ * ```js
3
+ * import { PollRepository } from '@amityco/ts-sdk';
4
+ *
5
+ * let poll;
6
+ *
7
+ * const unsub = PollRepository.getPoll(commentId, response => {
8
+ * poll = response.data;
9
+ * });
10
+ * ```
11
+ *
12
+ * Observe all mutation on a given {@link Amity.Poll}
13
+ *
14
+ * @param pollId the ID of the poll to observe
15
+ * @param callback the function to call when new data are available
16
+ * @returns An {@link Amity.Unsubscriber} function to run when willing to stop observing the poll
17
+ *
18
+ * @category Poll Live Object
19
+ */
20
+ export declare const getPoll: (pollId: Amity.Poll['pollId'], callback: Amity.LiveObjectCallback<Amity.Poll>) => Amity.Unsubscriber;
21
+ //# sourceMappingURL=getPoll.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"getPoll.d.ts","sourceRoot":"","sources":["../../../src/pollRepository/observers/getPoll.ts"],"names":[],"mappings":"AAOA;;;;;;;;;;;;;;;;;;GAkBG;AACH,eAAO,MAAM,OAAO,WACV,MAAM,IAAI,CAAC,QAAQ,CAAC,YAClB,MAAM,kBAAkB,CAAC,MAAM,IAAI,CAAC,KAC7C,MAAM,YAER,CAAC"}
@@ -1,2 +1,3 @@
1
1
  export * from './observePoll';
2
+ export * from './getPoll';
2
3
  //# sourceMappingURL=index.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/pollRepository/observers/index.ts"],"names":[],"mappings":"AAAA,cAAc,eAAe,CAAC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/pollRepository/observers/index.ts"],"names":[],"mappings":"AAAA,cAAc,eAAe,CAAC;AAC9B,cAAc,WAAW,CAAC"}
@@ -1,10 +1,10 @@
1
1
  /**
2
2
  * ```js
3
- * import { getPost } from '@amityco/ts-sdk';
3
+ * import { PostRepository } from '@amityco/ts-sdk';
4
4
  *
5
5
  * let post;
6
6
  *
7
- * const unsubscribe = getPost(postId, response => {
7
+ * const unsub = PostRepository.getPost(postId, response => {
8
8
  * post = response.data;
9
9
  * });
10
10
  * ```
@@ -15,7 +15,7 @@
15
15
  * @async
16
16
  * */
17
17
  export declare const addReaction: {
18
- (referenceType: Amity.Reaction['referenceType'], referenceId: Amity.Reaction['referenceId'], reactionName: Amity.Reaction['reactionName']): Promise<boolean>;
18
+ (referenceType: Amity.Reaction['referenceType'], referenceId: Amity.Reaction['referenceId'], reactionName: Amity.Reactor['reactionName']): Promise<boolean>;
19
19
  /**
20
20
  * ```js
21
21
  * import { addReaction } from '@amityco/ts-sdk'
@@ -31,6 +31,6 @@ export declare const addReaction: {
31
31
  *
32
32
  * @category Reaction API
33
33
  * */
34
- optimistically(referenceType: Amity.ReactableType, referenceId: Amity.Reaction['referenceId'], reactionName: Amity.Reaction['reactionName']): boolean | undefined;
34
+ optimistically(referenceType: Amity.ReactableType, referenceId: Amity.Reaction['referenceId'], reactionName: Amity.Reactor['reactionName']): boolean | undefined;
35
35
  };
36
36
  //# sourceMappingURL=addReaction.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"addReaction.d.ts","sourceRoot":"","sources":["../../../src/reactionRepository/api/addReaction.ts"],"names":[],"mappings":"AAUA;;;;;;;;;;;;;;;KAeK;AACL,eAAO,MAAM,WAAW;oBACP,MAAM,QAAQ,CAAC,eAAe,CAAC,eACjC,MAAM,QAAQ,CAAC,aAAa,CAAC,gBAC5B,MAAM,QAAQ,CAAC,cAAc,CAAC,GAC3C,QAAQ,OAAO,CAAC;IA8BnB;;;;;;;;;;;;;;SAcK;kCAEY,MAAM,aAAa,eACrB,MAAM,QAAQ,CAAC,aAAa,CAAC,gBAC5B,MAAM,QAAQ,CAAC,cAAc,CAAC,GAC3C,OAAO,GAAG,SAAS;CAtBrB,CAAC"}
1
+ {"version":3,"file":"addReaction.d.ts","sourceRoot":"","sources":["../../../src/reactionRepository/api/addReaction.ts"],"names":[],"mappings":"AAUA;;;;;;;;;;;;;;;KAeK;AACL,eAAO,MAAM,WAAW;oBACP,MAAM,QAAQ,CAAC,eAAe,CAAC,eACjC,MAAM,QAAQ,CAAC,aAAa,CAAC,gBAC5B,MAAM,OAAO,CAAC,cAAc,CAAC,GAC1C,QAAQ,OAAO,CAAC;IA8BnB;;;;;;;;;;;;;;SAcK;kCAEY,MAAM,aAAa,eACrB,MAAM,QAAQ,CAAC,aAAa,CAAC,gBAC5B,MAAM,OAAO,CAAC,cAAc,CAAC,GAC1C,OAAO,GAAG,SAAS;CAtBrB,CAAC"}
@@ -7,7 +7,7 @@
7
7
  * })
8
8
  * ```
9
9
  *
10
- * Queries a paginable list of {@link Amity.ReactionQuery} objects
10
+ * Queries a paginable list of {@link Amity.Reaction} objects
11
11
  *
12
12
  * @param query The query parameters
13
13
  * @returns A page of {@link Amity.Reaction} objects
@@ -15,5 +15,5 @@
15
15
  * @reaction Reaction API
16
16
  * @async
17
17
  * */
18
- export declare const queryReactions: (query: Amity.QueryReactions) => Promise<Amity.Paged<Amity.ReactionQuery, Amity.Page<string>>>;
18
+ export declare const queryReactions: (query: Amity.QueryReactions) => Promise<Amity.Paged<Amity.Reaction, Amity.Page<string>>>;
19
19
  //# sourceMappingURL=queryReactions.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"queryReactions.d.ts","sourceRoot":"","sources":["../../../src/reactionRepository/api/queryReactions.ts"],"names":[],"mappings":"AAKA;;;;;;;;;;;;;;;;KAgBK;AACL,eAAO,MAAM,cAAc,UAClB,MAAM,cAAc,KAC1B,QAAQ,MAAM,KAAK,CAAC,MAAM,aAAa,EAAE,MAAM,IAAI,CAAC,MAAM,CAAC,CAAC,CA6B9D,CAAC"}
1
+ {"version":3,"file":"queryReactions.d.ts","sourceRoot":"","sources":["../../../src/reactionRepository/api/queryReactions.ts"],"names":[],"mappings":"AAKA;;;;;;;;;;;;;;;;KAgBK;AACL,eAAO,MAAM,cAAc,UAClB,MAAM,cAAc,KAC1B,QAAQ,MAAM,KAAK,CAAC,MAAM,QAAQ,EAAE,MAAM,IAAI,CAAC,MAAM,CAAC,CAAC,CA6BzD,CAAC"}
@@ -0,0 +1,19 @@
1
+ /**
2
+ * ```js
3
+ * import { queryReactor } from '@amityco/ts-sdk'
4
+ * const { data: reactions, prevPage, nextPage } = await queryReactor({
5
+ * referenceId: 'postId',
6
+ * referenceType: 'post',
7
+ * })
8
+ * ```
9
+ *
10
+ * Queries a paginable list of {@link Amity.Reactor} objects
11
+ *
12
+ * @param query The query parameters
13
+ * @returns A page of {@link Amity.Reactor} objects
14
+ *
15
+ * @reaction Reaction API
16
+ * @async
17
+ * */
18
+ export declare const queryReactor: (query: Amity.QueryReactions) => Promise<Amity.Paged<Amity.Reactor, Amity.Page<string>>>;
19
+ //# sourceMappingURL=queryReactor.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"queryReactor.d.ts","sourceRoot":"","sources":["../../../src/reactionRepository/api/queryReactor.ts"],"names":[],"mappings":"AAIA;;;;;;;;;;;;;;;;KAgBK;AACL,eAAO,MAAM,YAAY,UAChB,MAAM,cAAc,KAC1B,QAAQ,MAAM,KAAK,CAAC,MAAM,OAAO,EAAE,MAAM,IAAI,CAAC,MAAM,CAAC,CAAC,CAOxD,CAAC"}
@@ -15,7 +15,7 @@
15
15
  * @async
16
16
  * */
17
17
  export declare const removeReaction: {
18
- (referenceType: Amity.Reaction['referenceType'], referenceId: Amity.Reaction['referenceId'], reactionName: Amity.Reaction['reactionName']): Promise<boolean>;
18
+ (referenceType: Amity.Reaction['referenceType'], referenceId: Amity.Reaction['referenceId'], reactionName: Amity.Reactor['reactionName']): Promise<boolean>;
19
19
  /**
20
20
  * ```js
21
21
  * import { removeReaction } from '@amityco/ts-sdk'
@@ -31,6 +31,6 @@ export declare const removeReaction: {
31
31
  *
32
32
  * @category Reaction API
33
33
  * */
34
- optimistically(referenceType: Amity.ReactableType, referenceId: Amity.Reaction['referenceId'], reactionName: Amity.Reaction['reactionName']): boolean | undefined;
34
+ optimistically(referenceType: Amity.ReactableType, referenceId: Amity.Reaction['referenceId'], reactionName: Amity.Reactor['reactionName']): boolean | undefined;
35
35
  };
36
36
  //# sourceMappingURL=removeReaction.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"removeReaction.d.ts","sourceRoot":"","sources":["../../../src/reactionRepository/api/removeReaction.ts"],"names":[],"mappings":"AAWA;;;;;;;;;;;;;;;KAeK;AACL,eAAO,MAAM,cAAc;oBACV,MAAM,QAAQ,CAAC,eAAe,CAAC,eACjC,MAAM,QAAQ,CAAC,aAAa,CAAC,gBAC5B,MAAM,QAAQ,CAAC,cAAc,CAAC,GAC3C,QAAQ,OAAO,CAAC;IAgCnB;;;;;;;;;;;;;;SAcK;kCAEY,MAAM,aAAa,eACrB,MAAM,QAAQ,CAAC,aAAa,CAAC,gBAC5B,MAAM,QAAQ,CAAC,cAAc,CAAC,GAC3C,OAAO,GAAG,SAAS;CAtBrB,CAAC"}
1
+ {"version":3,"file":"removeReaction.d.ts","sourceRoot":"","sources":["../../../src/reactionRepository/api/removeReaction.ts"],"names":[],"mappings":"AAWA;;;;;;;;;;;;;;;KAeK;AACL,eAAO,MAAM,cAAc;oBACV,MAAM,QAAQ,CAAC,eAAe,CAAC,eACjC,MAAM,QAAQ,CAAC,aAAa,CAAC,gBAC5B,MAAM,OAAO,CAAC,cAAc,CAAC,GAC1C,QAAQ,OAAO,CAAC;IAgCnB;;;;;;;;;;;;;;SAcK;kCAEY,MAAM,aAAa,eACrB,MAAM,QAAQ,CAAC,aAAa,CAAC,gBAC5B,MAAM,OAAO,CAAC,cAAc,CAAC,GAC1C,OAAO,GAAG,SAAS;CAtBrB,CAAC"}
@@ -9,11 +9,11 @@
9
9
  * }, response => merge(reactions, response.data))
10
10
  * ```
11
11
  *
12
- * Observe all mutations on a list of {@link Amity.Reaction} for a given target object
12
+ * Observe all mutations on a list of {@link Amity.Reactor} for a given target object
13
13
  *
14
- * @param params.referenceType the type of the target
15
- * @param params.referenceId the ID of the target
14
+ * @param params for querying reactions
16
15
  * @param callback the function to call when new data are available
16
+ * @param config the live collection configuration
17
17
  * @returns An {@link Amity.Unsubscriber} function to run when willing to stop observing the messages
18
18
  *
19
19
  * @category Reactions Live Collection
@@ -1 +1 @@
1
- {"version":3,"file":"getReactions.d.ts","sourceRoot":"","sources":["../../../src/reactionRepository/observers/getReactions.ts"],"names":[],"mappings":"AAiBA;;;;;;;;;;;;;;;;;;;GAmBG;AACH,eAAO,MAAM,YAAY,WACf,MAAM,sBAAsB,YAC1B,MAAM,sBAAsB,CAAC,MAAM,OAAO,CAAC,WAC5C,MAAM,oBAAoB,KAClC,MAAM,YAuGR,CAAC"}
1
+ {"version":3,"file":"getReactions.d.ts","sourceRoot":"","sources":["../../../src/reactionRepository/observers/getReactions.ts"],"names":[],"mappings":"AAiBA;;;;;;;;;;;;;;;;;;;GAmBG;AACH,eAAO,MAAM,YAAY,WACf,MAAM,sBAAsB,YAC1B,MAAM,sBAAsB,CAAC,MAAM,OAAO,CAAC,WAC5C,MAAM,oBAAoB,KAClC,MAAM,YAqGR,CAAC"}
@@ -1,7 +1,8 @@
1
1
  /**
2
2
  * ```js
3
3
  * import { StreamRepository } from '@amityco/ts-sdk'
4
- * const stream = await StreamRepository.getStreamById('foobar')
4
+ * const unsub = StreamRepository.getStreamById('foobar')
5
+ * unsub()
5
6
  * ```
6
7
  *
7
8
  * Fetches a {@link Amity.Stream} object
@@ -11,5 +12,21 @@
11
12
  *
12
13
  * @category Stream Live Object
13
14
  */
14
- export declare const getStreamById: (streamId: Amity.Stream['streamId'], callback: Amity.LiveObjectCallback<Amity.Stream>) => Amity.Unsubscriber;
15
+ export declare const getStreamById: {
16
+ (streamId: Amity.Stream['streamId'], callback: Amity.LiveObjectCallback<Amity.Stream>): Amity.Unsubscriber;
17
+ /**
18
+ * ```js
19
+ * import { StreamRepository } from '@amityco/ts-sdk'
20
+ * const stream = StreamRepository.getStreamById.locally('foobar')
21
+ * ```
22
+ *
23
+ * Fetches a {@link Amity.Stream} live object
24
+ *
25
+ * @param streamId the ID of the {@link Amity.Stream} to fetch
26
+ * @returns the associated {@link Amity.Stream} live object
27
+ *
28
+ * @category Stream API
29
+ */
30
+ locally(streamId: Amity.Stream['streamId']): Amity.Cached<Amity.Stream> | undefined;
31
+ };
15
32
  //# sourceMappingURL=getStreamById.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"getStreamById.d.ts","sourceRoot":"","sources":["../../../src/streamRepository/observers/getStreamById.ts"],"names":[],"mappings":"AASA;;;;;;;;;;;;GAYG;AAEH,eAAO,MAAM,aAAa,aACd,MAAM,MAAM,CAAC,UAAU,CAAC,YACxB,MAAM,kBAAkB,CAAC,MAAM,MAAM,CAAC,KAC/C,MAAM,YAMR,CAAC"}
1
+ {"version":3,"file":"getStreamById.d.ts","sourceRoot":"","sources":["../../../src/streamRepository/observers/getStreamById.ts"],"names":[],"mappings":"AAWA;;;;;;;;;;;;;GAaG;AAEH,eAAO,MAAM,aAAa;eACd,MAAM,MAAM,CAAC,UAAU,CAAC,YACxB,MAAM,kBAAkB,CAAC,MAAM,MAAM,CAAC,GAC/C,MAAM,YAAY;IASrB;;;;;;;;;;;;OAYG;sBAES,MAAM,MAAM,CAAC,UAAU,CAAC,GACjC,MAAM,MAAM,CAAC,MAAM,MAAM,CAAC,GAAG,SAAS;CAlBxC,CAAC"}
@@ -1 +1 @@
1
- {"version":3,"file":"getStreams.d.ts","sourceRoot":"","sources":["../../../src/streamRepository/observers/getStreams.ts"],"names":[],"mappings":"AA0BA;;;;;;;;;;;;;GAaG;AACH,eAAO,MAAM,UAAU,WACb,MAAM,oBAAoB,YACxB,MAAM,sBAAsB,CAAC,MAAM,MAAM,CAAC,WAC3C,MAAM,oBAAoB,eAwGpC,CAAC"}
1
+ {"version":3,"file":"getStreams.d.ts","sourceRoot":"","sources":["../../../src/streamRepository/observers/getStreams.ts"],"names":[],"mappings":"AA0BA;;;;;;;;;;;;;GAaG;AACH,eAAO,MAAM,UAAU,WACb,MAAM,oBAAoB,YACxB,MAAM,sBAAsB,CAAC,MAAM,MAAM,CAAC,WAC3C,MAAM,oBAAoB,eAyGpC,CAAC"}
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=getStreamById.test.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"getStreamById.test.d.ts","sourceRoot":"","sources":["../../../../src/streamRepository/observers/tests/getStreamById.test.ts"],"names":[],"mappings":""}
@@ -1,3 +1,4 @@
1
+ export declare const applyFilter: <T extends Amity.User>(data: T[], params: Amity.UserLiveCollection) => T[];
1
2
  /**
2
3
  * ```js
3
4
  * import { liveUsers } from '@amityco/ts-sdk'
@@ -1 +1 @@
1
- {"version":3,"file":"getUsers.d.ts","sourceRoot":"","sources":["../../../src/userRepository/observers/getUsers.ts"],"names":[],"mappings":"AAiCA;;;;;;;;;;;;;;;GAeG;AACH,eAAO,MAAM,QAAQ,WACX,MAAM,kBAAkB,YACtB,MAAM,sBAAsB,CAAC,MAAM,IAAI,CAAC,WACzC,MAAM,oBAAoB,eAuHpC,CAAC"}
1
+ {"version":3,"file":"getUsers.d.ts","sourceRoot":"","sources":["../../../src/userRepository/observers/getUsers.ts"],"names":[],"mappings":"AAkCA,eAAO,MAAM,WAAW,4CAEd,MAAM,kBAAkB,QAsBjC,CAAC;AAKF;;;;;;;;;;;;;;;GAeG;AACH,eAAO,MAAM,QAAQ,WACX,MAAM,kBAAkB,YACtB,MAAM,sBAAsB,CAAC,MAAM,IAAI,CAAC,WACzC,MAAM,oBAAoB,eAiGpC,CAAC"}
@@ -1,4 +1,4 @@
1
- export declare const reaction11: Amity.Reaction;
2
1
  export declare const reactor11: Amity.Reactor;
2
+ export declare const reaction11: Amity.Reaction;
3
3
  export declare const reactionPayload: Amity.ReactionPayload;
4
4
  //# sourceMappingURL=reaction.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"reaction.d.ts","sourceRoot":"","sources":["../../../../src/utils/tests/dummy/reaction.ts"],"names":[],"mappings":"AAEA,eAAO,MAAM,UAAU,EAAE,KAAK,CAAC,QAO9B,CAAC;AAEF,eAAO,MAAM,SAAS,EAAE,KAAK,CAAC,OAK7B,CAAC;AAEF,eAAO,MAAM,eAAe,EAAE,KAAK,CAAC,eAGnC,CAAC"}
1
+ {"version":3,"file":"reaction.d.ts","sourceRoot":"","sources":["../../../../src/utils/tests/dummy/reaction.ts"],"names":[],"mappings":"AAEA,eAAO,MAAM,SAAS,EAAE,KAAK,CAAC,OAK7B,CAAC;AACF,eAAO,MAAM,UAAU,EAAE,KAAK,CAAC,QAI9B,CAAC;AAEF,eAAO,MAAM,eAAe,EAAE,KAAK,CAAC,eAGnC,CAAC"}
@@ -80,4 +80,26 @@ export declare const streamResponse: {
80
80
  }[];
81
81
  };
82
82
  };
83
+ export declare const streamsResponse: {
84
+ title: string;
85
+ description: string;
86
+ metadata: {};
87
+ streamerUrl: {};
88
+ watcherUrl: {};
89
+ status: string;
90
+ isLive: boolean;
91
+ isDeleted: boolean;
92
+ startedAt: string;
93
+ endedAt: string;
94
+ resolution: string;
95
+ updatedAt: string;
96
+ createdAt: string;
97
+ streamId: string;
98
+ userId: string;
99
+ thumbnailFileId: null;
100
+ platform: {
101
+ name: string;
102
+ version: string;
103
+ };
104
+ }[];
83
105
  //# sourceMappingURL=stream.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"stream.d.ts","sourceRoot":"","sources":["../../../../src/utils/tests/dummy/stream.ts"],"names":[],"mappings":"AAAA,eAAO,MAAM,cAAc;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CAqF1B,CAAC"}
1
+ {"version":3,"file":"stream.d.ts","sourceRoot":"","sources":["../../../../src/utils/tests/dummy/stream.ts"],"names":[],"mappings":"AAAA,eAAO,MAAM,cAAc;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CAqF1B,CAAC;AAEF,eAAO,MAAM,eAAe;;;;;;;;;;;;;;;;;;;;;GA6C3B,CAAC"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@amityco/ts-sdk",
3
- "version": "6.4.6-e12bdf9.0",
3
+ "version": "6.5.0",
4
4
  "license": "CC-BY-ND-4.0",
5
5
  "author": "amity.co <developers@amity.co> (https://amity.co)",
6
6
  "description": "Amity Social Cloud Typescript SDK",
@@ -101,8 +101,8 @@ declare global {
101
101
  'post.declined': Amity.PostPayload;
102
102
  'post.flagged': Amity.PostPayload;
103
103
  'post.unflagged': Amity.PostPayload;
104
- 'post.addReaction': Amity.PostPayload & { reactor: Amity.Reaction };
105
- 'post.removeReaction': Amity.PostPayload & { reactor: Amity.Reaction };
104
+ 'post.addReaction': Amity.PostPayload & { reactor: Amity.Reactor };
105
+ 'post.removeReaction': Amity.PostPayload & { reactor: Amity.Reactor };
106
106
  };
107
107
 
108
108
  type MqttCommentEvents = {
@@ -111,8 +111,8 @@ declare global {
111
111
  'comment.deleted': Amity.CommentPayload;
112
112
  'comment.flagged': Amity.CommentPayload;
113
113
  'comment.unflagged': Amity.CommentPayload;
114
- 'comment.addReaction': Amity.CommentPayload & { reactor: Amity.Reaction };
115
- 'comment.removeReaction': Amity.CommentPayload & { reactor: Amity.Reaction };
114
+ 'comment.addReaction': Amity.CommentPayload & { reactor: Amity.Reactor };
115
+ 'comment.removeReaction': Amity.CommentPayload & { reactor: Amity.Reactor };
116
116
  };
117
117
 
118
118
  type MqttUserEvents = {
@@ -29,6 +29,7 @@ declare global {
29
29
  comment: Amity.Comment;
30
30
  poll: Amity.Poll;
31
31
  reaction: Amity.Reaction;
32
+ reactor: Amity.Reactor;
32
33
 
33
34
  stream: Amity.Stream;
34
35
 
@@ -69,7 +70,8 @@ declare global {
69
70
  post: Pick<Amity.Post, 'postId'>;
70
71
  comment: Pick<Amity.Comment, 'commentId'>;
71
72
  poll: Pick<Amity.Poll, 'pollId'>;
72
- reaction: Pick<Amity.Reaction, 'reactionId'>;
73
+ reaction: Pick<Amity.Reaction, 'referenceType' | 'referenceId'>;
74
+ reactor: Pick<Amity.Reactor, 'reactionId'>;
73
75
 
74
76
  stream: Pick<Amity.Stream, 'streamId'>;
75
77
 
@@ -299,7 +299,7 @@ declare global {
299
299
  };
300
300
 
301
301
  type ReactionPayload = {
302
- reactions: Amity.ReactionQuery[];
302
+ reactions: Amity.Reaction[];
303
303
  users: Amity.User[];
304
304
  };
305
305
 
@@ -53,7 +53,7 @@ declare global {
53
53
  type QueryPosts = {
54
54
  targetId: string;
55
55
  targetType: Amity.Post['targetType'];
56
- sortBy?: 'lastCreated' | 'firstCreated' | 'lastUpdated' | 'firstUpdated';
56
+ sortBy?: 'lastCreated' | 'firstCreated';
57
57
  dataTypes?: Exclude<Amity.PostContentType, 'text'>[];
58
58
  includeDeleted?: boolean;
59
59
  hasFlag?: boolean;
@@ -10,29 +10,28 @@ declare global {
10
10
  reactionId: string;
11
11
  reactionName: string;
12
12
  userId: Amity.User['userId'];
13
- } & Amity.CreatedAt;
14
-
15
- type Reaction = Amity.Reactor & Amity.Relationship<ReactableType>;
13
+ } & Amity.Timestamps;
16
14
 
17
15
  type Reactable = {
18
16
  reactionsCount: number;
19
17
  reactions: Record<string, number>;
20
18
  myReactions?: string[];
21
19
 
22
- latestReaction?: Amity.Reaction & {
23
- eventName: 'add' | 'remove';
24
- userDisplayName: string;
25
- };
20
+ latestReaction?: Amity.Reactor &
21
+ Amity.Relationship<ReactableType> & {
22
+ eventName: 'add' | 'remove';
23
+ userDisplayName: string;
24
+ };
26
25
  };
27
26
 
28
- type ReactionQuery = {
27
+ type Reaction = {
29
28
  reactors: Reactor[];
30
29
  } & Amity.Relationship<ReactableType>;
31
30
 
32
31
  type QueryReactions = {
33
32
  referenceId: Amity.Reaction['referenceId'];
34
33
  referenceType: Amity.Reaction['referenceType'];
35
- reactionName?: Amity.Reaction['reactionName'];
34
+ reactionName?: Amity.Reactor['reactionName'];
36
35
  page?: Amity.Page<string>;
37
36
  };
38
37
 
@@ -54,7 +54,7 @@ export const queryCategories = async (
54
54
  const cacheKey = [
55
55
  'category',
56
56
  'query',
57
- { ...params, options: { ...page } } as Amity.Serializable,
57
+ { ...params, includeDeleted, options: { ...page } } as Amity.Serializable,
58
58
  ];
59
59
  pushToCache(cacheKey, { categories: categories.map(getResolver('category')), paging });
60
60
  }
@@ -26,6 +26,51 @@ import {
26
26
  } from '../../events';
27
27
  import { queryChannelMembers } from '../api/queryChannelMembers';
28
28
 
29
+ /*
30
+ * Exported for testing
31
+ * @hidden
32
+ */
33
+ export const applyFilter = <T extends Amity.Membership<'channel'>>(
34
+ data: T[],
35
+ params: Amity.ChannelMembersLiveCollection,
36
+ ): T[] => {
37
+ let channelMembers = filterByPropIntersection(data, 'roles', params.roles);
38
+
39
+ if (params.memberships) {
40
+ /*
41
+ * even though membership includes muted as a possible value
42
+ * when querying the server.
43
+ * Muted is specified under seperarte property namely isMuted
44
+ * Hence why I've seperately checked for it's equality
45
+ */
46
+ channelMembers = channelMembers.filter(member => {
47
+ // @ts-ignore
48
+ if (params.memberships.includes('muted') && member.isMuted) {
49
+ return true;
50
+ }
51
+
52
+ // @ts-ignore
53
+ return params.memberships.includes(member.membership);
54
+ });
55
+ }
56
+
57
+ if (params.search) {
58
+ // eslint-disable-next-line no-console
59
+ console.warn(
60
+ '`search` param will be deprecated in the next major release. If you want to search channel members by displayName, Please use `searchMembers()` instead.',
61
+ );
62
+ channelMembers = filterBySearchTerm(channelMembers, params.search);
63
+ }
64
+
65
+ // sort, 'lastCreated' is the default sort order
66
+ const sortBy = params.sortBy ? params.sortBy : 'lastCreated';
67
+ channelMembers = channelMembers.sort(
68
+ sortBy === 'lastCreated' ? sortByLastCreated : sortByFirstCreated,
69
+ );
70
+
71
+ return channelMembers;
72
+ };
73
+
29
74
  /* begin_public_function
30
75
  id: channel.member.query
31
76
  */
@@ -55,6 +100,7 @@ export const getMembers = (
55
100
  const { log, cache } = getActiveClient();
56
101
 
57
102
  if (!cache) {
103
+ // eslint-disable-next-line no-console
58
104
  console.log(ENABLE_CACHE_MESSAGE);
59
105
  }
60
106
 
@@ -69,44 +115,6 @@ export const getMembers = (
69
115
  const disposers: Amity.Unsubscriber[] = [];
70
116
  const cacheKey = ['channelUsers', 'collection', { channelId: params.channelId }];
71
117
 
72
- const applyFilter = <T extends Amity.Membership<'channel'>>(data: T[]): T[] => {
73
- let channelMembers = filterByPropIntersection(data, 'roles', params.roles);
74
-
75
- if (params.memberships) {
76
- /*
77
- * even though membership includes muted as a possible value
78
- * when querying the server.
79
- * Muted is specified under seperarte property namely isMuted
80
- * Hence why I've seperately checked for it's equality
81
- */
82
- channelMembers = channelMembers.filter(member => {
83
- // @ts-ignore
84
- if (params.memberships.includes('muted') && member.isMuted) {
85
- return true;
86
- }
87
-
88
- // @ts-ignore
89
- return params.memberships.includes(member.membership);
90
- });
91
- }
92
-
93
- if (params.search) {
94
- // eslint-disable-next-line no-console
95
- console.warn(
96
- '`search` param will be deprecated in the next major release. If you want to search channel members by displayName, Please use `searchMembers()` instead.',
97
- );
98
- channelMembers = filterBySearchTerm(channelMembers, params.search);
99
- }
100
-
101
- // sort, 'lastCreated' is the default sort order
102
- const sortBy = params.sortBy ? params.sortBy : 'lastCreated';
103
- channelMembers = channelMembers.sort(
104
- sortBy === 'lastCreated' ? sortByLastCreated : sortByFirstCreated,
105
- );
106
-
107
- return channelMembers;
108
- };
109
-
110
118
  const responder = (data: Amity.ChannelMembersLiveCollectionCache, isEventModel = false) => {
111
119
  const channelMembers: Amity.Membership<'channel'>[] =
112
120
  data.data
@@ -119,7 +127,7 @@ export const getMembers = (
119
127
  /*
120
128
  * Only apply filter to RTE Model
121
129
  */
122
- data: isEventModel ? applyFilter(channelMembers) : channelMembers,
130
+ data: isEventModel ? applyFilter(channelMembers, params) : channelMembers,
123
131
  hasNextPage: !!data.params?.page,
124
132
  loading: data.loading,
125
133
  error: data.error,
@@ -1,3 +1,4 @@
1
+ import { getPastDate } from '~/core/model';
1
2
  import { disableCache, enableCache } from '~/cache/api';
2
3
  import {
3
4
  bannedChannelUser,
@@ -7,15 +8,11 @@ import {
7
8
  channelUser3,
8
9
  channelUserModel,
9
10
  channelUserQueryResponse,
10
- channelUserQueryResponsePage2,
11
- channelUserQueryResponsePage3,
12
11
  channelUserWithRole,
13
12
  client,
14
13
  connectClient,
15
- convertRawChannelPayload,
16
14
  disconnectClient,
17
15
  emptyChannelUserQueryResponse,
18
- mutedChannelUser,
19
16
  pause,
20
17
  rawBannedChannelUser,
21
18
  rawChannelUser,
@@ -25,7 +22,10 @@ import {
25
22
  user14,
26
23
  } from '~/utils/tests';
27
24
 
28
- import { getMembers } from '../getMembers';
25
+ // makes it easier to spy on applyFilter
26
+ import * as getMembersModule from '../getMembers';
27
+
28
+ const { getMembers, applyFilter } = getMembersModule;
29
29
 
30
30
  const getSnapshot = (params?: Record<string, any>) => {
31
31
  return {
@@ -147,4 +147,81 @@ describe('getMembers', () => {
147
147
  expect.objectContaining(getSnapshot({ data: [bannedChannelUser], loading: false })),
148
148
  );
149
149
  });
150
+
151
+ test('it should apply filter on RTE only', async () => {
152
+ const callback = jest.fn();
153
+ const applyFilterSpy = jest.spyOn(getMembersModule, 'applyFilter');
154
+
155
+ client.http.get = jest.fn().mockResolvedValue(emptyChannelUserQueryResponse);
156
+
157
+ getMembers({ channelId, memberships: ['banned'] }, callback);
158
+ await pause();
159
+
160
+ expect(applyFilterSpy).not.toHaveBeenCalled();
161
+
162
+ client.emitter.emit('channel.banned', {
163
+ channels: [channelRaw1],
164
+ channelUsers: [rawBannedChannelUser],
165
+ users: [user13],
166
+ files: [],
167
+ });
168
+ await pause();
169
+
170
+ expect(applyFilterSpy).toHaveBeenCalled();
171
+ });
172
+ });
173
+
174
+ describe('getMembers > applyFilter', () => {
175
+ const { channelId } = channel1;
176
+
177
+ const ch1 = {
178
+ channelId,
179
+ userId: 'test',
180
+ membership: 'member',
181
+ readToSegment: 1,
182
+ roles: ['test-role'],
183
+ lastMentionedSegment: 1,
184
+ createdAt: new Date().toISOString(),
185
+ } as Amity.Membership<'channel'>;
186
+
187
+ const ch2 = {
188
+ channelId,
189
+ userId: 'test1',
190
+ membership: 'banned',
191
+ readToSegment: 1,
192
+ lastMentionedSegment: 1,
193
+ createdAt: getPastDate(),
194
+ } as Amity.Membership<'channel'>;
195
+
196
+ const filters: [
197
+ string,
198
+ Amity.ChannelMembersLiveCollection,
199
+ Amity.Membership<'channel'>[],
200
+ Amity.Membership<'channel'>[],
201
+ ][] = [
202
+ ['it should filter by roles', { channelId, roles: ['test-role'] }, [ch1, ch2], [ch1]],
203
+ [
204
+ 'it should filter by membership:member',
205
+ { channelId, memberships: ['member'] },
206
+ [ch1, ch2],
207
+ [ch1],
208
+ ],
209
+ [
210
+ 'it should filter by membership:banned',
211
+ { channelId, memberships: ['banned'] },
212
+ [ch1, ch2],
213
+ [ch2],
214
+ ],
215
+ ['it should sort by last created', { channelId }, [ch1, ch2], [ch1, ch2]],
216
+ [
217
+ 'it should sort by first created',
218
+ { channelId, sortBy: 'firstCreated' },
219
+ [ch1, ch2],
220
+ [ch2, ch1],
221
+ ],
222
+ ];
223
+
224
+ test.each(filters)('%s', (test, param, input, expected) => {
225
+ expect(applyFilter(input, param)).toStrictEqual(expected);
226
+ });
150
227
  });