@amityco/ts-sdk 7.7.1-0c84fd02.0 → 7.7.1-11a1171d.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 (113) hide show
  1. package/.rollup.cache/home/runner/work/AmityTypescriptSDK/AmityTypescriptSDK/packages/sdk/dist/@types/core/payload.d.ts +3 -8
  2. package/.rollup.cache/home/runner/work/AmityTypescriptSDK/AmityTypescriptSDK/packages/sdk/dist/@types/core/payload.d.ts.map +1 -1
  3. package/.rollup.cache/home/runner/work/AmityTypescriptSDK/AmityTypescriptSDK/packages/sdk/dist/@types/core/payload.js.map +1 -1
  4. package/.rollup.cache/home/runner/work/AmityTypescriptSDK/AmityTypescriptSDK/packages/sdk/dist/@types/domains/client.d.ts +0 -4
  5. package/.rollup.cache/home/runner/work/AmityTypescriptSDK/AmityTypescriptSDK/packages/sdk/dist/@types/domains/client.d.ts.map +1 -1
  6. package/.rollup.cache/home/runner/work/AmityTypescriptSDK/AmityTypescriptSDK/packages/sdk/dist/@types/domains/client.js.map +1 -1
  7. package/.rollup.cache/home/runner/work/AmityTypescriptSDK/AmityTypescriptSDK/packages/sdk/dist/@types/domains/hashtag.d.ts +11 -0
  8. package/.rollup.cache/home/runner/work/AmityTypescriptSDK/AmityTypescriptSDK/packages/sdk/dist/@types/domains/hashtag.d.ts.map +1 -0
  9. package/.rollup.cache/home/runner/work/AmityTypescriptSDK/AmityTypescriptSDK/packages/sdk/dist/@types/domains/hashtag.js +2 -0
  10. package/.rollup.cache/home/runner/work/AmityTypescriptSDK/AmityTypescriptSDK/packages/sdk/dist/@types/domains/hashtag.js.map +1 -0
  11. package/.rollup.cache/home/runner/work/AmityTypescriptSDK/AmityTypescriptSDK/packages/sdk/dist/@types/domains/post.d.ts +14 -1
  12. package/.rollup.cache/home/runner/work/AmityTypescriptSDK/AmityTypescriptSDK/packages/sdk/dist/@types/domains/post.d.ts.map +1 -1
  13. package/.rollup.cache/home/runner/work/AmityTypescriptSDK/AmityTypescriptSDK/packages/sdk/dist/@types/domains/post.js.map +1 -1
  14. package/.rollup.cache/home/runner/work/AmityTypescriptSDK/AmityTypescriptSDK/packages/sdk/dist/@types/index.d.ts +1 -0
  15. package/.rollup.cache/home/runner/work/AmityTypescriptSDK/AmityTypescriptSDK/packages/sdk/dist/@types/index.d.ts.map +1 -1
  16. package/.rollup.cache/home/runner/work/AmityTypescriptSDK/AmityTypescriptSDK/packages/sdk/dist/@types/index.js +1 -0
  17. package/.rollup.cache/home/runner/work/AmityTypescriptSDK/AmityTypescriptSDK/packages/sdk/dist/@types/index.js.map +1 -1
  18. package/.rollup.cache/home/runner/work/AmityTypescriptSDK/AmityTypescriptSDK/packages/sdk/dist/channelRepository/events/onChannelSetMuted.d.ts.map +1 -1
  19. package/.rollup.cache/home/runner/work/AmityTypescriptSDK/AmityTypescriptSDK/packages/sdk/dist/channelRepository/events/onChannelSetMuted.js +8 -6
  20. package/.rollup.cache/home/runner/work/AmityTypescriptSDK/AmityTypescriptSDK/packages/sdk/dist/channelRepository/events/onChannelSetMuted.js.map +1 -1
  21. package/.rollup.cache/home/runner/work/AmityTypescriptSDK/AmityTypescriptSDK/packages/sdk/dist/client/api/index.d.ts +0 -1
  22. package/.rollup.cache/home/runner/work/AmityTypescriptSDK/AmityTypescriptSDK/packages/sdk/dist/client/api/index.d.ts.map +1 -1
  23. package/.rollup.cache/home/runner/work/AmityTypescriptSDK/AmityTypescriptSDK/packages/sdk/dist/client/api/index.js +0 -1
  24. package/.rollup.cache/home/runner/work/AmityTypescriptSDK/AmityTypescriptSDK/packages/sdk/dist/client/api/index.js.map +1 -1
  25. package/.rollup.cache/home/runner/work/AmityTypescriptSDK/AmityTypescriptSDK/packages/sdk/dist/postRepository/api/createPost.d.ts +1 -1
  26. package/.rollup.cache/home/runner/work/AmityTypescriptSDK/AmityTypescriptSDK/packages/sdk/dist/postRepository/api/createPost.js.map +1 -1
  27. package/.rollup.cache/home/runner/work/AmityTypescriptSDK/AmityTypescriptSDK/packages/sdk/dist/postRepository/api/editPost.d.ts +1 -1
  28. package/.rollup.cache/home/runner/work/AmityTypescriptSDK/AmityTypescriptSDK/packages/sdk/dist/postRepository/api/editPost.js.map +1 -1
  29. package/.rollup.cache/home/runner/work/AmityTypescriptSDK/AmityTypescriptSDK/packages/sdk/dist/postRepository/api/queryPosts.js +2 -2
  30. package/.rollup.cache/home/runner/work/AmityTypescriptSDK/AmityTypescriptSDK/packages/sdk/dist/postRepository/api/queryPosts.js.map +1 -1
  31. package/.rollup.cache/home/runner/work/AmityTypescriptSDK/AmityTypescriptSDK/packages/sdk/dist/postRepository/observers/getPostsByHashtag/SearchPostLiveCollectionController.d.ts +14 -0
  32. package/.rollup.cache/home/runner/work/AmityTypescriptSDK/AmityTypescriptSDK/packages/sdk/dist/postRepository/observers/getPostsByHashtag/SearchPostLiveCollectionController.d.ts.map +1 -0
  33. package/.rollup.cache/home/runner/work/AmityTypescriptSDK/AmityTypescriptSDK/packages/sdk/dist/postRepository/observers/getPostsByHashtag/SearchPostLiveCollectionController.js +126 -0
  34. package/.rollup.cache/home/runner/work/AmityTypescriptSDK/AmityTypescriptSDK/packages/sdk/dist/postRepository/observers/getPostsByHashtag/SearchPostLiveCollectionController.js.map +1 -0
  35. package/.rollup.cache/home/runner/work/AmityTypescriptSDK/AmityTypescriptSDK/packages/sdk/dist/postRepository/observers/getPostsByHashtag/SearchPostPaginationController.d.ts +5 -0
  36. package/.rollup.cache/home/runner/work/AmityTypescriptSDK/AmityTypescriptSDK/packages/sdk/dist/postRepository/observers/getPostsByHashtag/SearchPostPaginationController.d.ts.map +1 -0
  37. package/.rollup.cache/home/runner/work/AmityTypescriptSDK/AmityTypescriptSDK/packages/sdk/dist/postRepository/observers/getPostsByHashtag/SearchPostPaginationController.js +27 -0
  38. package/.rollup.cache/home/runner/work/AmityTypescriptSDK/AmityTypescriptSDK/packages/sdk/dist/postRepository/observers/getPostsByHashtag/SearchPostPaginationController.js.map +1 -0
  39. package/.rollup.cache/home/runner/work/AmityTypescriptSDK/AmityTypescriptSDK/packages/sdk/dist/postRepository/observers/getPostsByHashtag/SearchPostQueryStreamController.d.ts +15 -0
  40. package/.rollup.cache/home/runner/work/AmityTypescriptSDK/AmityTypescriptSDK/packages/sdk/dist/postRepository/observers/getPostsByHashtag/SearchPostQueryStreamController.d.ts.map +1 -0
  41. package/.rollup.cache/home/runner/work/AmityTypescriptSDK/AmityTypescriptSDK/packages/sdk/dist/postRepository/observers/getPostsByHashtag/SearchPostQueryStreamController.js +65 -0
  42. package/.rollup.cache/home/runner/work/AmityTypescriptSDK/AmityTypescriptSDK/packages/sdk/dist/postRepository/observers/getPostsByHashtag/SearchPostQueryStreamController.js.map +1 -0
  43. package/.rollup.cache/home/runner/work/AmityTypescriptSDK/AmityTypescriptSDK/packages/sdk/dist/postRepository/observers/index.d.ts +1 -0
  44. package/.rollup.cache/home/runner/work/AmityTypescriptSDK/AmityTypescriptSDK/packages/sdk/dist/postRepository/observers/index.d.ts.map +1 -1
  45. package/.rollup.cache/home/runner/work/AmityTypescriptSDK/AmityTypescriptSDK/packages/sdk/dist/postRepository/observers/index.js +1 -0
  46. package/.rollup.cache/home/runner/work/AmityTypescriptSDK/AmityTypescriptSDK/packages/sdk/dist/postRepository/observers/index.js.map +1 -1
  47. package/.rollup.cache/home/runner/work/AmityTypescriptSDK/AmityTypescriptSDK/packages/sdk/dist/postRepository/observers/searchPostsByHashtag.d.ts +22 -0
  48. package/.rollup.cache/home/runner/work/AmityTypescriptSDK/AmityTypescriptSDK/packages/sdk/dist/postRepository/observers/searchPostsByHashtag.d.ts.map +1 -0
  49. package/.rollup.cache/home/runner/work/AmityTypescriptSDK/AmityTypescriptSDK/packages/sdk/dist/postRepository/observers/searchPostsByHashtag.js +45 -0
  50. package/.rollup.cache/home/runner/work/AmityTypescriptSDK/AmityTypescriptSDK/packages/sdk/dist/postRepository/observers/searchPostsByHashtag.js.map +1 -0
  51. package/.rollup.cache/home/runner/work/AmityTypescriptSDK/AmityTypescriptSDK/packages/sdk/dist/streamRepository/events/onStreamViewerBanned.d.ts.map +1 -1
  52. package/.rollup.cache/home/runner/work/AmityTypescriptSDK/AmityTypescriptSDK/packages/sdk/dist/streamRepository/events/onStreamViewerBanned.js +8 -5
  53. package/.rollup.cache/home/runner/work/AmityTypescriptSDK/AmityTypescriptSDK/packages/sdk/dist/streamRepository/events/onStreamViewerBanned.js.map +1 -1
  54. package/.rollup.cache/home/runner/work/AmityTypescriptSDK/AmityTypescriptSDK/packages/sdk/dist/streamRepository/events/onStreamViewerUnbanned.d.ts.map +1 -1
  55. package/.rollup.cache/home/runner/work/AmityTypescriptSDK/AmityTypescriptSDK/packages/sdk/dist/streamRepository/events/onStreamViewerUnbanned.js +6 -3
  56. package/.rollup.cache/home/runner/work/AmityTypescriptSDK/AmityTypescriptSDK/packages/sdk/dist/streamRepository/events/onStreamViewerUnbanned.js.map +1 -1
  57. package/.rollup.cache/home/runner/work/AmityTypescriptSDK/AmityTypescriptSDK/packages/sdk/tsconfig.tsbuildinfo +1 -1
  58. package/dist/@types/core/payload.d.ts +3 -8
  59. package/dist/@types/core/payload.d.ts.map +1 -1
  60. package/dist/@types/domains/client.d.ts +0 -4
  61. package/dist/@types/domains/client.d.ts.map +1 -1
  62. package/dist/@types/domains/hashtag.d.ts +11 -0
  63. package/dist/@types/domains/hashtag.d.ts.map +1 -0
  64. package/dist/@types/domains/post.d.ts +14 -1
  65. package/dist/@types/domains/post.d.ts.map +1 -1
  66. package/dist/@types/index.d.ts +1 -0
  67. package/dist/@types/index.d.ts.map +1 -1
  68. package/dist/channelRepository/events/onChannelSetMuted.d.ts.map +1 -1
  69. package/dist/client/api/index.d.ts +0 -1
  70. package/dist/client/api/index.d.ts.map +1 -1
  71. package/dist/index.cjs.js +256 -36
  72. package/dist/index.esm.js +256 -36
  73. package/dist/index.umd.js +4 -4
  74. package/dist/postRepository/api/createPost.d.ts +1 -1
  75. package/dist/postRepository/api/editPost.d.ts +1 -1
  76. package/dist/postRepository/observers/getPostsByHashtag/SearchPostLiveCollectionController.d.ts +14 -0
  77. package/dist/postRepository/observers/getPostsByHashtag/SearchPostLiveCollectionController.d.ts.map +1 -0
  78. package/dist/postRepository/observers/getPostsByHashtag/SearchPostPaginationController.d.ts +5 -0
  79. package/dist/postRepository/observers/getPostsByHashtag/SearchPostPaginationController.d.ts.map +1 -0
  80. package/dist/postRepository/observers/getPostsByHashtag/SearchPostQueryStreamController.d.ts +15 -0
  81. package/dist/postRepository/observers/getPostsByHashtag/SearchPostQueryStreamController.d.ts.map +1 -0
  82. package/dist/postRepository/observers/index.d.ts +1 -0
  83. package/dist/postRepository/observers/index.d.ts.map +1 -1
  84. package/dist/postRepository/observers/searchPostsByHashtag.d.ts +22 -0
  85. package/dist/postRepository/observers/searchPostsByHashtag.d.ts.map +1 -0
  86. package/dist/streamRepository/events/onStreamViewerBanned.d.ts.map +1 -1
  87. package/dist/streamRepository/events/onStreamViewerUnbanned.d.ts.map +1 -1
  88. package/package.json +1 -1
  89. package/src/@types/core/payload.ts +3 -4
  90. package/src/@types/domains/client.ts +0 -5
  91. package/src/@types/domains/hashtag.ts +11 -0
  92. package/src/@types/domains/post.ts +18 -1
  93. package/src/@types/index.ts +1 -0
  94. package/src/channelRepository/events/onChannelSetMuted.ts +8 -6
  95. package/src/client/api/index.ts +0 -2
  96. package/src/postRepository/api/createPost.ts +1 -1
  97. package/src/postRepository/api/editPost.ts +1 -1
  98. package/src/postRepository/api/queryPosts.ts +2 -2
  99. package/src/postRepository/observers/getPostsByHashtag/SearchPostLiveCollectionController.ts +183 -0
  100. package/src/postRepository/observers/getPostsByHashtag/SearchPostPaginationController.ts +49 -0
  101. package/src/postRepository/observers/getPostsByHashtag/SearchPostQueryStreamController.ts +99 -0
  102. package/src/postRepository/observers/index.ts +1 -0
  103. package/src/postRepository/observers/searchPostsByHashtag.ts +56 -0
  104. package/src/streamRepository/events/onStreamViewerBanned.ts +8 -5
  105. package/src/streamRepository/events/onStreamViewerUnbanned.ts +6 -4
  106. package/tsconfig.tsbuildinfo +1 -1
  107. package/.rollup.cache/home/runner/work/AmityTypescriptSDK/AmityTypescriptSDK/packages/sdk/dist/client/api/getShareableLinkConfiguration.d.ts +0 -16
  108. package/.rollup.cache/home/runner/work/AmityTypescriptSDK/AmityTypescriptSDK/packages/sdk/dist/client/api/getShareableLinkConfiguration.d.ts.map +0 -1
  109. package/.rollup.cache/home/runner/work/AmityTypescriptSDK/AmityTypescriptSDK/packages/sdk/dist/client/api/getShareableLinkConfiguration.js +0 -21
  110. package/.rollup.cache/home/runner/work/AmityTypescriptSDK/AmityTypescriptSDK/packages/sdk/dist/client/api/getShareableLinkConfiguration.js.map +0 -1
  111. package/dist/client/api/getShareableLinkConfiguration.d.ts +0 -16
  112. package/dist/client/api/getShareableLinkConfiguration.d.ts.map +0 -1
  113. package/src/client/api/getShareableLinkConfiguration.ts +0 -26
package/dist/index.esm.js CHANGED
@@ -22453,17 +22453,19 @@ const dispose$7 = (cb) => {
22453
22453
  const onChannelSetMuted = (callback) => {
22454
22454
  if (callbacks$7.length === 0) {
22455
22455
  const client = getActiveClient();
22456
- const filter = async (payload) => {
22456
+ const filter = async (payloads) => {
22457
22457
  var _a;
22458
- upsertInCache(['channel', 'get', payload.channelId], {
22459
- // If muteTimeout > now => user is muted
22460
- // Otherwise => user is unmuted
22461
- isMuted: Date.parse(payload.muteTimeout) > Date.now(),
22458
+ payloads.forEach(payload => {
22459
+ upsertInCache(['channel', 'get', payload.channelId], {
22460
+ // If muteTimeout > now => user is muted
22461
+ // Otherwise => user is unmuted
22462
+ isMuted: Date.parse(payload.muteTimeout) > Date.now(),
22463
+ });
22462
22464
  });
22463
22465
  const channel = (_a = pullFromCache([
22464
22466
  'channel',
22465
22467
  'get',
22466
- payload.channelId,
22468
+ payloads[0].channelId,
22467
22469
  ])) === null || _a === void 0 ? void 0 : _a.data;
22468
22470
  if (channel) {
22469
22471
  callbacks$7.forEach(cb => cb(channel));
@@ -25872,26 +25874,6 @@ const fetchLinkPreview = async (url) => {
25872
25874
  return data;
25873
25875
  };
25874
25876
 
25875
- /**
25876
- * ```js
25877
- * import Client from '@amityco/ts-sdk'
25878
- * const shareableLinkConfiguration = await Client.getShareableLinkConfiguration()
25879
- * const postLinkPattern = shareableLinkConfiguration.post
25880
- * ```
25881
- *
25882
- * Fetches a {@link Amity.ShareableLinkConfiguration} object
25883
- *
25884
- * @returns A Promise of {@link Amity.ShareableLinkConfiguration} object
25885
- *
25886
- * @category Client API
25887
- * @async
25888
- */
25889
- const getShareableLinkConfiguration = async () => {
25890
- const client = getActiveClient();
25891
- const { data } = await client.http.get(`/api/v3/network-settings/shareable-deep-links`);
25892
- return data;
25893
- };
25894
-
25895
25877
  /**
25896
25878
  * ```js
25897
25879
  * import { onChannelMarkerFetched } from '@amityco/ts-sdk'
@@ -26261,7 +26243,6 @@ var index$o = /*#__PURE__*/Object.freeze({
26261
26243
  enableUnreadCount: enableUnreadCount,
26262
26244
  setUploadedFileAccessType: setUploadedFileAccessType,
26263
26245
  fetchLinkPreview: fetchLinkPreview,
26264
- getShareableLinkConfiguration: getShareableLinkConfiguration,
26265
26246
  onConnectionError: onConnectionError,
26266
26247
  onClientDisconnected: onClientDisconnected,
26267
26248
  onClientBanned: onClientBanned,
@@ -33847,20 +33828,23 @@ const onStreamViewerBanned = (callback) => {
33847
33828
  const client = getActiveClient();
33848
33829
  const filter = (payloads) => {
33849
33830
  var _a;
33850
- const { list } = payloads;
33851
- list.forEach(payload => {
33831
+ payloads.forEach(streamBanned => {
33852
33832
  var _a;
33853
- mergeInCache(['stream', 'get', payload.streamId], { watcherUrl: null });
33833
+ mergeInCache(['stream', 'get', streamBanned.streamId], { watcherUrl: null });
33854
33834
  // Update isDeleted = true in banned user's messages
33855
33835
  const messageCache = (_a = queryCache(['message', 'get'])) === null || _a === void 0 ? void 0 : _a.filter(
33856
33836
  // Check if creator id and user id are internal or external id
33857
- ({ data }) => data.creatorId === payload.userId);
33837
+ ({ data }) => data.creatorId === streamBanned.userId);
33858
33838
  // Update isDeleted for each relavant messages
33859
33839
  messageCache === null || messageCache === void 0 ? void 0 : messageCache.forEach(message => {
33860
33840
  mergeInCache(message.key, { isDeleted: true });
33861
33841
  });
33862
33842
  });
33863
- const stream = (_a = pullFromCache(['stream', 'get', list[0].streamId])) === null || _a === void 0 ? void 0 : _a.data;
33843
+ const stream = (_a = pullFromCache([
33844
+ 'stream',
33845
+ 'get',
33846
+ payloads[0].streamId,
33847
+ ])) === null || _a === void 0 ? void 0 : _a.data;
33864
33848
  if (!stream)
33865
33849
  return;
33866
33850
  callback(stream);
@@ -41666,6 +41650,238 @@ const semanticSearchPosts = (params, callback, config) => {
41666
41650
  };
41667
41651
  };
41668
41652
 
41653
+ class SearchPostPaginationController extends PaginationController {
41654
+ async getRequest(queryParams, token) {
41655
+ const { limit = COLLECTION_DEFAULT_PAGINATION_LIMIT, matchingOnlyParentPost, hashtags, dataTypes, targetType = 'all' } = queryParams, params = __rest(queryParams, ["limit", "matchingOnlyParentPost", "hashtags", "dataTypes", "targetType"]);
41656
+ const baseOptions = {
41657
+ type: params.sortBy || queryParams.limit ? 'pagination' : undefined,
41658
+ };
41659
+ const options = token ? Object.assign(Object.assign({}, baseOptions), { token }) : Object.assign(Object.assign({}, baseOptions), { limit });
41660
+ const { data: queryResponse } = await this.http.get(`/api/v1/search/posts`, {
41661
+ params: Object.assign(Object.assign({}, params), { hashtags,
41662
+ dataTypes,
41663
+ targetType,
41664
+ /*
41665
+ * when creating post like image, file, video BE will create 2 posts
41666
+ * 1. parent post to store text with dataType=text
41667
+ * 2. child post to store dataTypes post data
41668
+ *
41669
+ * By default, BE queries only parent post
41670
+ */
41671
+ matchingOnlyParentPost: matchingOnlyParentPost !== null && matchingOnlyParentPost !== void 0 ? matchingOnlyParentPost : !(dataTypes === null || dataTypes === void 0 ? void 0 : dataTypes.length), options }),
41672
+ });
41673
+ return queryResponse;
41674
+ }
41675
+ }
41676
+
41677
+ class SearchPostQueryStreamController extends QueryStreamController {
41678
+ constructor(query, cacheKey, notifyChange, preparePayload) {
41679
+ super(query, cacheKey);
41680
+ this.notifyChange = notifyChange;
41681
+ this.preparePayload = preparePayload;
41682
+ }
41683
+ async saveToMainDB(response) {
41684
+ const processedPayload = await this.preparePayload(response);
41685
+ const client = getActiveClient();
41686
+ const cachedAt = client.cache && Date.now();
41687
+ if (client.cache) {
41688
+ ingestInCache(processedPayload, { cachedAt });
41689
+ }
41690
+ }
41691
+ appendToQueryStream(response, direction, refresh = false) {
41692
+ var _a, _b;
41693
+ if (refresh) {
41694
+ pushToCache(this.cacheKey, {
41695
+ data: response.posts.map(getResolver('post')),
41696
+ });
41697
+ }
41698
+ else {
41699
+ const collection = (_a = pullFromCache(this.cacheKey)) === null || _a === void 0 ? void 0 : _a.data;
41700
+ const posts = (_b = collection === null || collection === void 0 ? void 0 : collection.data) !== null && _b !== void 0 ? _b : [];
41701
+ pushToCache(this.cacheKey, Object.assign(Object.assign({}, collection), { data: [...new Set([...posts, ...response.posts.map(getResolver('post'))])] }));
41702
+ }
41703
+ }
41704
+ reactor(action) {
41705
+ return (post) => {
41706
+ var _a, _b;
41707
+ const collection = (_a = pullFromCache(this.cacheKey)) === null || _a === void 0 ? void 0 : _a.data;
41708
+ if (!collection)
41709
+ return;
41710
+ if (post.parentPostId && post.isDeleted) {
41711
+ const parentPost = (_b = pullFromCache([
41712
+ 'post',
41713
+ 'get',
41714
+ post.parentPostId,
41715
+ ])) === null || _b === void 0 ? void 0 : _b.data;
41716
+ if (!parentPost)
41717
+ return;
41718
+ parentPost.children = parentPost.children.filter(childId => childId !== post.postId);
41719
+ pushToCache(['post', 'get', parentPost.postId], parentPost);
41720
+ }
41721
+ if (action === EnumPostActions.OnPostDeclined) {
41722
+ collection.data = collection.data.filter(postId => postId !== post.postId);
41723
+ }
41724
+ if (action === EnumPostActions.OnPostCreated || action === EnumPostActions.OnPostApproved) {
41725
+ collection.data = [...new Set([post.postId, ...collection.data])];
41726
+ }
41727
+ pushToCache(this.cacheKey, collection);
41728
+ this.notifyChange({ origin: "event" /* Amity.LiveDataOrigin.EVENT */, loading: false });
41729
+ };
41730
+ }
41731
+ subscribeRTE(createSubscriber) {
41732
+ return createSubscriber.map(subscriber => subscriber.fn(this.reactor(subscriber.action)));
41733
+ }
41734
+ }
41735
+
41736
+ class SearchPostLiveCollectionController extends LiveCollectionController {
41737
+ constructor(query, callback) {
41738
+ const queryStreamId = hash(query);
41739
+ const cacheKey = ['posts', 'collection', queryStreamId];
41740
+ const paginationController = new SearchPostPaginationController(query);
41741
+ super(paginationController, queryStreamId, cacheKey, callback);
41742
+ this.query = query;
41743
+ this.queryStreamController = new SearchPostQueryStreamController(this.query, this.cacheKey, this.notifyChange.bind(this), preparePostPayload);
41744
+ this.callback = callback.bind(this);
41745
+ this.loadPage({ initial: true });
41746
+ }
41747
+ setup() {
41748
+ var _a;
41749
+ const collection = (_a = pullFromCache(this.cacheKey)) === null || _a === void 0 ? void 0 : _a.data;
41750
+ if (!collection) {
41751
+ pushToCache(this.cacheKey, {
41752
+ data: [],
41753
+ params: {},
41754
+ });
41755
+ }
41756
+ }
41757
+ async persistModel(queryPayload) {
41758
+ await this.queryStreamController.saveToMainDB(queryPayload);
41759
+ }
41760
+ persistQueryStream({ response, direction, refresh, }) {
41761
+ this.queryStreamController.appendToQueryStream(response, direction, refresh);
41762
+ }
41763
+ startSubscription() {
41764
+ return this.queryStreamController.subscribeRTE([
41765
+ { fn: onPostCreated, action: EnumPostActions.OnPostCreated },
41766
+ { fn: onPostUpdated, action: EnumPostActions.OnPostUpdated },
41767
+ { fn: onPostUpdatedLocal, action: EnumPostActions.OnPostUpdated },
41768
+ { fn: onPostDeleted, action: EnumPostActions.OnPostDeleted },
41769
+ { fn: onPostFlagged, action: EnumPostActions.OnPostFlagged },
41770
+ { fn: onPostUnflagged, action: EnumPostActions.OnPostUnflagged },
41771
+ { fn: onPostApproved, action: EnumPostActions.OnPostApproved },
41772
+ { fn: onPostDeclined, action: EnumPostActions.OnPostDeclined },
41773
+ { fn: onPostReactionAdded, action: EnumPostActions.OnPostReactionAdded },
41774
+ { fn: onPostReactionRemoved, action: EnumPostActions.OnPostReactionRemoved },
41775
+ { fn: onLocalPostReactionAdded, action: EnumPostActions.OnPostReactionAdded },
41776
+ { fn: onLocalPostReactionRemoved, action: EnumPostActions.OnPostReactionRemoved },
41777
+ { fn: onLocalPostDeleted, action: EnumPostActions.OnPostDeleted },
41778
+ {
41779
+ fn: convertEventPayload((callback) => {
41780
+ return onCommentCreated(async (comment) => {
41781
+ var _a;
41782
+ const currentCollection = (_a = pullFromCache(this.cacheKey)) === null || _a === void 0 ? void 0 : _a.data;
41783
+ if (!currentCollection || currentCollection.data.includes(comment.referenceId))
41784
+ return;
41785
+ await getPost(comment.referenceId);
41786
+ callback(comment);
41787
+ });
41788
+ }, 'referenceId', 'post'),
41789
+ action: EnumPostActions.OnPostUpdated,
41790
+ },
41791
+ {
41792
+ fn: convertEventPayload((callback) => {
41793
+ return onCommentDeleted(async (comment) => {
41794
+ var _a;
41795
+ const currentCollection = (_a = pullFromCache(this.cacheKey)) === null || _a === void 0 ? void 0 : _a.data;
41796
+ if (!currentCollection || currentCollection.data.includes(comment.referenceId))
41797
+ return;
41798
+ await getPost(comment.referenceId);
41799
+ callback(comment);
41800
+ });
41801
+ }, 'referenceId', 'post'),
41802
+ action: EnumPostActions.OnPostUpdated,
41803
+ },
41804
+ ]);
41805
+ }
41806
+ notifyChange({ origin, loading, error }) {
41807
+ var _a, _b;
41808
+ const collection = (_a = pullFromCache(this.cacheKey)) === null || _a === void 0 ? void 0 : _a.data;
41809
+ if (!collection)
41810
+ return;
41811
+ const data = this.applyFilter((_b = collection.data
41812
+ .map(id => pullFromCache(['post', 'get', id]))
41813
+ .filter(isNonNullable)
41814
+ .map(({ data }) => data)) !== null && _b !== void 0 ? _b : []).map(LinkedObject.post);
41815
+ if (!this.shouldNotify(data) && origin === 'event')
41816
+ return;
41817
+ this.callback({
41818
+ onNextPage: () => this.loadPage({ direction: "next" /* Amity.LiveCollectionPageDirection.NEXT */ }),
41819
+ data,
41820
+ hasNextPage: !!this.paginationController.getNextToken(),
41821
+ loading,
41822
+ error,
41823
+ });
41824
+ }
41825
+ applyFilter(data) {
41826
+ var _a;
41827
+ let posts = data;
41828
+ if ((_a = this.query.dataTypes) === null || _a === void 0 ? void 0 : _a.length) {
41829
+ posts = filterByPostDataTypes(posts, this.query.dataTypes);
41830
+ }
41831
+ switch (this.query.sortBy) {
41832
+ case 'firstCreated':
41833
+ posts = posts.sort(sortByFirstCreated);
41834
+ break;
41835
+ case 'lastCreated':
41836
+ default:
41837
+ posts = posts.sort(sortByLastCreated);
41838
+ break;
41839
+ }
41840
+ return posts;
41841
+ }
41842
+ }
41843
+
41844
+ /* begin_public_function
41845
+ id: post.query
41846
+ */
41847
+ /**
41848
+ * ```js
41849
+ * import { PostRepository } from '@amityco/ts-sdk'
41850
+ *
41851
+ * let posts = []
41852
+ * const unsub = PostRepository.searchPostsByHashtag({
41853
+ * hashtags: ['amity'],
41854
+ * limit: 10,
41855
+ * }, response => merge(posts, response.data))
41856
+ * ```
41857
+ *
41858
+ * Observe all mutations on a list of {@link Amity.Post} for a given target object
41859
+ *
41860
+ * @param params.hashtags the hashtags to search for
41861
+ * @param callback the function to call when new data are available
41862
+ * @param config
41863
+ * @returns An {@link Amity.Unsubscriber} function to run when willing to stop observing the messages
41864
+ *
41865
+ * @category Posts Live Collection
41866
+ */
41867
+ const searchPostsByHashtag = (params, callback, config) => {
41868
+ const { log, cache } = getActiveClient();
41869
+ if (!cache) {
41870
+ console.log(ENABLE_CACHE_MESSAGE);
41871
+ }
41872
+ const timestamp = Date.now();
41873
+ log(`searchPostsByHashtag(tmpid: ${timestamp}) > listen`);
41874
+ const postsLiveCollection = new SearchPostLiveCollectionController(params, callback);
41875
+ const disposers = postsLiveCollection.startSubscription();
41876
+ const cacheKey = postsLiveCollection.getCacheKey();
41877
+ disposers.push(() => dropFromCache(cacheKey));
41878
+ return () => {
41879
+ log(`searchPostsByHashtag(tmpid: ${timestamp}) > dispose`);
41880
+ disposers.forEach(fn => fn());
41881
+ };
41882
+ };
41883
+ /* end_public_function */
41884
+
41669
41885
  var index$8 = /*#__PURE__*/Object.freeze({
41670
41886
  __proto__: null,
41671
41887
  getPostByIds: getPostByIds,
@@ -41693,7 +41909,8 @@ var index$8 = /*#__PURE__*/Object.freeze({
41693
41909
  getPosts: getPosts,
41694
41910
  getPinnedPosts: getPinnedPosts,
41695
41911
  getGlobalPinnedPosts: getGlobalPinnedPosts,
41696
- semanticSearchPosts: semanticSearchPosts
41912
+ semanticSearchPosts: semanticSearchPosts,
41913
+ searchPostsByHashtag: searchPostsByHashtag
41697
41914
  });
41698
41915
 
41699
41916
  /* begin_public_function
@@ -42058,9 +42275,12 @@ const onStreamViewerUnbanned = (callback) => {
42058
42275
  const filter = async (payloads) => {
42059
42276
  var _a;
42060
42277
  // Get new stream object to restore stream watcherUrl in cache
42061
- const { list } = payloads;
42062
- await Promise.all(list.map(({ streamId }) => getStream(streamId)));
42063
- const stream = (_a = pullFromCache(['stream', 'get', list[0].streamId])) === null || _a === void 0 ? void 0 : _a.data;
42278
+ await Promise.all(payloads.map(({ streamId }) => getStream(streamId)));
42279
+ const stream = (_a = pullFromCache([
42280
+ 'stream',
42281
+ 'get',
42282
+ payloads[0].streamId,
42283
+ ])) === null || _a === void 0 ? void 0 : _a.data;
42064
42284
  if (!stream)
42065
42285
  return;
42066
42286
  callback(stream);