@amityco/ts-sdk 7.8.1-1b0200c.0 → 7.8.1-2caef95.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 (111) hide show
  1. package/.rollup.cache/home/runner/work/AmityTypescriptSDK/AmityTypescriptSDK/packages/sdk/dist/@types/domains/client.d.ts +4 -0
  2. package/.rollup.cache/home/runner/work/AmityTypescriptSDK/AmityTypescriptSDK/packages/sdk/dist/@types/domains/client.d.ts.map +1 -1
  3. package/.rollup.cache/home/runner/work/AmityTypescriptSDK/AmityTypescriptSDK/packages/sdk/dist/@types/domains/client.js.map +1 -1
  4. package/.rollup.cache/home/runner/work/AmityTypescriptSDK/AmityTypescriptSDK/packages/sdk/dist/@types/domains/content.d.ts +1 -0
  5. package/.rollup.cache/home/runner/work/AmityTypescriptSDK/AmityTypescriptSDK/packages/sdk/dist/@types/domains/content.d.ts.map +1 -1
  6. package/.rollup.cache/home/runner/work/AmityTypescriptSDK/AmityTypescriptSDK/packages/sdk/dist/@types/domains/content.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/poll.d.ts +3 -1
  12. package/.rollup.cache/home/runner/work/AmityTypescriptSDK/AmityTypescriptSDK/packages/sdk/dist/@types/domains/poll.d.ts.map +1 -1
  13. package/.rollup.cache/home/runner/work/AmityTypescriptSDK/AmityTypescriptSDK/packages/sdk/dist/@types/domains/poll.js.map +1 -1
  14. package/.rollup.cache/home/runner/work/AmityTypescriptSDK/AmityTypescriptSDK/packages/sdk/dist/@types/domains/post.d.ts +14 -1
  15. package/.rollup.cache/home/runner/work/AmityTypescriptSDK/AmityTypescriptSDK/packages/sdk/dist/@types/domains/post.d.ts.map +1 -1
  16. package/.rollup.cache/home/runner/work/AmityTypescriptSDK/AmityTypescriptSDK/packages/sdk/dist/@types/domains/post.js.map +1 -1
  17. package/.rollup.cache/home/runner/work/AmityTypescriptSDK/AmityTypescriptSDK/packages/sdk/dist/@types/index.d.ts +1 -0
  18. package/.rollup.cache/home/runner/work/AmityTypescriptSDK/AmityTypescriptSDK/packages/sdk/dist/@types/index.d.ts.map +1 -1
  19. package/.rollup.cache/home/runner/work/AmityTypescriptSDK/AmityTypescriptSDK/packages/sdk/dist/@types/index.js +1 -0
  20. package/.rollup.cache/home/runner/work/AmityTypescriptSDK/AmityTypescriptSDK/packages/sdk/dist/@types/index.js.map +1 -1
  21. package/.rollup.cache/home/runner/work/AmityTypescriptSDK/AmityTypescriptSDK/packages/sdk/dist/client/api/getShareableLinkConfiguration.d.ts +16 -0
  22. package/.rollup.cache/home/runner/work/AmityTypescriptSDK/AmityTypescriptSDK/packages/sdk/dist/client/api/getShareableLinkConfiguration.d.ts.map +1 -0
  23. package/.rollup.cache/home/runner/work/AmityTypescriptSDK/AmityTypescriptSDK/packages/sdk/dist/client/api/getShareableLinkConfiguration.js +21 -0
  24. package/.rollup.cache/home/runner/work/AmityTypescriptSDK/AmityTypescriptSDK/packages/sdk/dist/client/api/getShareableLinkConfiguration.js.map +1 -0
  25. package/.rollup.cache/home/runner/work/AmityTypescriptSDK/AmityTypescriptSDK/packages/sdk/dist/client/api/index.d.ts +1 -0
  26. package/.rollup.cache/home/runner/work/AmityTypescriptSDK/AmityTypescriptSDK/packages/sdk/dist/client/api/index.d.ts.map +1 -1
  27. package/.rollup.cache/home/runner/work/AmityTypescriptSDK/AmityTypescriptSDK/packages/sdk/dist/client/api/index.js +1 -0
  28. package/.rollup.cache/home/runner/work/AmityTypescriptSDK/AmityTypescriptSDK/packages/sdk/dist/client/api/index.js.map +1 -1
  29. package/.rollup.cache/home/runner/work/AmityTypescriptSDK/AmityTypescriptSDK/packages/sdk/dist/pollRepository/api/createPoll.d.ts +3 -3
  30. package/.rollup.cache/home/runner/work/AmityTypescriptSDK/AmityTypescriptSDK/packages/sdk/dist/pollRepository/api/createPoll.d.ts.map +1 -1
  31. package/.rollup.cache/home/runner/work/AmityTypescriptSDK/AmityTypescriptSDK/packages/sdk/dist/pollRepository/api/createPoll.js +2 -2
  32. package/.rollup.cache/home/runner/work/AmityTypescriptSDK/AmityTypescriptSDK/packages/sdk/dist/pollRepository/api/createPoll.js.map +1 -1
  33. package/.rollup.cache/home/runner/work/AmityTypescriptSDK/AmityTypescriptSDK/packages/sdk/dist/postRepository/api/createPost.d.ts +1 -1
  34. package/.rollup.cache/home/runner/work/AmityTypescriptSDK/AmityTypescriptSDK/packages/sdk/dist/postRepository/api/createPost.js.map +1 -1
  35. package/.rollup.cache/home/runner/work/AmityTypescriptSDK/AmityTypescriptSDK/packages/sdk/dist/postRepository/api/editPost.d.ts +1 -1
  36. package/.rollup.cache/home/runner/work/AmityTypescriptSDK/AmityTypescriptSDK/packages/sdk/dist/postRepository/api/editPost.js.map +1 -1
  37. package/.rollup.cache/home/runner/work/AmityTypescriptSDK/AmityTypescriptSDK/packages/sdk/dist/postRepository/api/queryPosts.js +2 -2
  38. package/.rollup.cache/home/runner/work/AmityTypescriptSDK/AmityTypescriptSDK/packages/sdk/dist/postRepository/api/queryPosts.js.map +1 -1
  39. package/.rollup.cache/home/runner/work/AmityTypescriptSDK/AmityTypescriptSDK/packages/sdk/dist/postRepository/observers/getPostsByHashtag/SearchPostLiveCollectionController.d.ts +14 -0
  40. package/.rollup.cache/home/runner/work/AmityTypescriptSDK/AmityTypescriptSDK/packages/sdk/dist/postRepository/observers/getPostsByHashtag/SearchPostLiveCollectionController.d.ts.map +1 -0
  41. package/.rollup.cache/home/runner/work/AmityTypescriptSDK/AmityTypescriptSDK/packages/sdk/dist/postRepository/observers/getPostsByHashtag/SearchPostLiveCollectionController.js +126 -0
  42. package/.rollup.cache/home/runner/work/AmityTypescriptSDK/AmityTypescriptSDK/packages/sdk/dist/postRepository/observers/getPostsByHashtag/SearchPostLiveCollectionController.js.map +1 -0
  43. package/.rollup.cache/home/runner/work/AmityTypescriptSDK/AmityTypescriptSDK/packages/sdk/dist/postRepository/observers/getPostsByHashtag/SearchPostPaginationController.d.ts +5 -0
  44. package/.rollup.cache/home/runner/work/AmityTypescriptSDK/AmityTypescriptSDK/packages/sdk/dist/postRepository/observers/getPostsByHashtag/SearchPostPaginationController.d.ts.map +1 -0
  45. package/.rollup.cache/home/runner/work/AmityTypescriptSDK/AmityTypescriptSDK/packages/sdk/dist/postRepository/observers/getPostsByHashtag/SearchPostPaginationController.js +27 -0
  46. package/.rollup.cache/home/runner/work/AmityTypescriptSDK/AmityTypescriptSDK/packages/sdk/dist/postRepository/observers/getPostsByHashtag/SearchPostPaginationController.js.map +1 -0
  47. package/.rollup.cache/home/runner/work/AmityTypescriptSDK/AmityTypescriptSDK/packages/sdk/dist/postRepository/observers/getPostsByHashtag/SearchPostQueryStreamController.d.ts +15 -0
  48. package/.rollup.cache/home/runner/work/AmityTypescriptSDK/AmityTypescriptSDK/packages/sdk/dist/postRepository/observers/getPostsByHashtag/SearchPostQueryStreamController.d.ts.map +1 -0
  49. package/.rollup.cache/home/runner/work/AmityTypescriptSDK/AmityTypescriptSDK/packages/sdk/dist/postRepository/observers/getPostsByHashtag/SearchPostQueryStreamController.js +65 -0
  50. package/.rollup.cache/home/runner/work/AmityTypescriptSDK/AmityTypescriptSDK/packages/sdk/dist/postRepository/observers/getPostsByHashtag/SearchPostQueryStreamController.js.map +1 -0
  51. package/.rollup.cache/home/runner/work/AmityTypescriptSDK/AmityTypescriptSDK/packages/sdk/dist/postRepository/observers/index.d.ts +1 -0
  52. package/.rollup.cache/home/runner/work/AmityTypescriptSDK/AmityTypescriptSDK/packages/sdk/dist/postRepository/observers/index.d.ts.map +1 -1
  53. package/.rollup.cache/home/runner/work/AmityTypescriptSDK/AmityTypescriptSDK/packages/sdk/dist/postRepository/observers/index.js +1 -0
  54. package/.rollup.cache/home/runner/work/AmityTypescriptSDK/AmityTypescriptSDK/packages/sdk/dist/postRepository/observers/index.js.map +1 -1
  55. package/.rollup.cache/home/runner/work/AmityTypescriptSDK/AmityTypescriptSDK/packages/sdk/dist/postRepository/observers/searchPostsByHashtag.d.ts +22 -0
  56. package/.rollup.cache/home/runner/work/AmityTypescriptSDK/AmityTypescriptSDK/packages/sdk/dist/postRepository/observers/searchPostsByHashtag.d.ts.map +1 -0
  57. package/.rollup.cache/home/runner/work/AmityTypescriptSDK/AmityTypescriptSDK/packages/sdk/dist/postRepository/observers/searchPostsByHashtag.js +45 -0
  58. package/.rollup.cache/home/runner/work/AmityTypescriptSDK/AmityTypescriptSDK/packages/sdk/dist/postRepository/observers/searchPostsByHashtag.js.map +1 -0
  59. package/.rollup.cache/home/runner/work/AmityTypescriptSDK/AmityTypescriptSDK/packages/sdk/tsconfig.tsbuildinfo +1 -1
  60. package/dist/@types/domains/client.d.ts +4 -0
  61. package/dist/@types/domains/client.d.ts.map +1 -1
  62. package/dist/@types/domains/content.d.ts +1 -0
  63. package/dist/@types/domains/content.d.ts.map +1 -1
  64. package/dist/@types/domains/hashtag.d.ts +11 -0
  65. package/dist/@types/domains/hashtag.d.ts.map +1 -0
  66. package/dist/@types/domains/poll.d.ts +3 -1
  67. package/dist/@types/domains/poll.d.ts.map +1 -1
  68. package/dist/@types/domains/post.d.ts +14 -1
  69. package/dist/@types/domains/post.d.ts.map +1 -1
  70. package/dist/@types/index.d.ts +1 -0
  71. package/dist/@types/index.d.ts.map +1 -1
  72. package/dist/client/api/getShareableLinkConfiguration.d.ts +16 -0
  73. package/dist/client/api/getShareableLinkConfiguration.d.ts.map +1 -0
  74. package/dist/client/api/index.d.ts +1 -0
  75. package/dist/client/api/index.d.ts.map +1 -1
  76. package/dist/index.cjs.js +257 -3
  77. package/dist/index.esm.js +257 -3
  78. package/dist/index.umd.js +4 -4
  79. package/dist/pollRepository/api/createPoll.d.ts +3 -3
  80. package/dist/pollRepository/api/createPoll.d.ts.map +1 -1
  81. package/dist/postRepository/api/createPost.d.ts +1 -1
  82. package/dist/postRepository/api/editPost.d.ts +1 -1
  83. package/dist/postRepository/observers/getPostsByHashtag/SearchPostLiveCollectionController.d.ts +14 -0
  84. package/dist/postRepository/observers/getPostsByHashtag/SearchPostLiveCollectionController.d.ts.map +1 -0
  85. package/dist/postRepository/observers/getPostsByHashtag/SearchPostPaginationController.d.ts +5 -0
  86. package/dist/postRepository/observers/getPostsByHashtag/SearchPostPaginationController.d.ts.map +1 -0
  87. package/dist/postRepository/observers/getPostsByHashtag/SearchPostQueryStreamController.d.ts +15 -0
  88. package/dist/postRepository/observers/getPostsByHashtag/SearchPostQueryStreamController.d.ts.map +1 -0
  89. package/dist/postRepository/observers/index.d.ts +1 -0
  90. package/dist/postRepository/observers/index.d.ts.map +1 -1
  91. package/dist/postRepository/observers/searchPostsByHashtag.d.ts +22 -0
  92. package/dist/postRepository/observers/searchPostsByHashtag.d.ts.map +1 -0
  93. package/package.json +1 -1
  94. package/src/@types/domains/client.ts +5 -0
  95. package/src/@types/domains/content.ts +1 -0
  96. package/src/@types/domains/hashtag.ts +11 -0
  97. package/src/@types/domains/poll.ts +3 -1
  98. package/src/@types/domains/post.ts +18 -1
  99. package/src/@types/index.ts +1 -0
  100. package/src/client/api/getShareableLinkConfiguration.ts +26 -0
  101. package/src/client/api/index.ts +2 -0
  102. package/src/pollRepository/api/createPoll.ts +3 -3
  103. package/src/postRepository/api/createPost.ts +1 -1
  104. package/src/postRepository/api/editPost.ts +1 -1
  105. package/src/postRepository/api/queryPosts.ts +2 -2
  106. package/src/postRepository/observers/getPostsByHashtag/SearchPostLiveCollectionController.ts +183 -0
  107. package/src/postRepository/observers/getPostsByHashtag/SearchPostPaginationController.ts +49 -0
  108. package/src/postRepository/observers/getPostsByHashtag/SearchPostQueryStreamController.ts +99 -0
  109. package/src/postRepository/observers/index.ts +1 -0
  110. package/src/postRepository/observers/searchPostsByHashtag.ts +56 -0
  111. package/tsconfig.tsbuildinfo +1 -1
package/dist/index.esm.js CHANGED
@@ -25873,6 +25873,26 @@ const fetchLinkPreview = async (url) => {
25873
25873
  return data;
25874
25874
  };
25875
25875
 
25876
+ /**
25877
+ * ```js
25878
+ * import Client from '@amityco/ts-sdk'
25879
+ * const shareableLinkConfiguration = await Client.getShareableLinkConfiguration()
25880
+ * const postLinkPattern = shareableLinkConfiguration.post
25881
+ * ```
25882
+ *
25883
+ * Fetches a {@link Amity.ShareableLinkConfiguration} object
25884
+ *
25885
+ * @returns A Promise of {@link Amity.ShareableLinkConfiguration} object
25886
+ *
25887
+ * @category Client API
25888
+ * @async
25889
+ */
25890
+ const getShareableLinkConfiguration = async () => {
25891
+ const client = getActiveClient();
25892
+ const { data } = await client.http.get(`/api/v3/network-settings/shareable-deep-links`);
25893
+ return data;
25894
+ };
25895
+
25876
25896
  /**
25877
25897
  * ```js
25878
25898
  * import { onChannelMarkerFetched } from '@amityco/ts-sdk'
@@ -26242,6 +26262,7 @@ var index$o = /*#__PURE__*/Object.freeze({
26242
26262
  enableUnreadCount: enableUnreadCount,
26243
26263
  setUploadedFileAccessType: setUploadedFileAccessType,
26244
26264
  fetchLinkPreview: fetchLinkPreview,
26265
+ getShareableLinkConfiguration: getShareableLinkConfiguration,
26245
26266
  onConnectionError: onConnectionError,
26246
26267
  onClientDisconnected: onClientDisconnected,
26247
26268
  onClientBanned: onClientBanned,
@@ -42003,6 +42024,238 @@ const semanticSearchPosts = (params, callback, config) => {
42003
42024
  };
42004
42025
  };
42005
42026
 
42027
+ class SearchPostPaginationController extends PaginationController {
42028
+ async getRequest(queryParams, token) {
42029
+ const { limit = COLLECTION_DEFAULT_PAGINATION_LIMIT, matchingOnlyParentPost, hashtags, dataTypes, targetType = 'all' } = queryParams, params = __rest(queryParams, ["limit", "matchingOnlyParentPost", "hashtags", "dataTypes", "targetType"]);
42030
+ const baseOptions = {
42031
+ type: params.sortBy || queryParams.limit ? 'pagination' : undefined,
42032
+ };
42033
+ const options = token ? Object.assign(Object.assign({}, baseOptions), { token }) : Object.assign(Object.assign({}, baseOptions), { limit });
42034
+ const { data: queryResponse } = await this.http.get(`/api/v1/search/posts`, {
42035
+ params: Object.assign(Object.assign({}, params), { hashtags,
42036
+ dataTypes,
42037
+ targetType,
42038
+ /*
42039
+ * when creating post like image, file, video BE will create 2 posts
42040
+ * 1. parent post to store text with dataType=text
42041
+ * 2. child post to store dataTypes post data
42042
+ *
42043
+ * By default, BE queries only parent post
42044
+ */
42045
+ matchingOnlyParentPost: matchingOnlyParentPost !== null && matchingOnlyParentPost !== void 0 ? matchingOnlyParentPost : !(dataTypes === null || dataTypes === void 0 ? void 0 : dataTypes.length), options }),
42046
+ });
42047
+ return queryResponse;
42048
+ }
42049
+ }
42050
+
42051
+ class SearchPostQueryStreamController extends QueryStreamController {
42052
+ constructor(query, cacheKey, notifyChange, preparePayload) {
42053
+ super(query, cacheKey);
42054
+ this.notifyChange = notifyChange;
42055
+ this.preparePayload = preparePayload;
42056
+ }
42057
+ async saveToMainDB(response) {
42058
+ const processedPayload = await this.preparePayload(response);
42059
+ const client = getActiveClient();
42060
+ const cachedAt = client.cache && Date.now();
42061
+ if (client.cache) {
42062
+ ingestInCache(processedPayload, { cachedAt });
42063
+ }
42064
+ }
42065
+ appendToQueryStream(response, direction, refresh = false) {
42066
+ var _a, _b;
42067
+ if (refresh) {
42068
+ pushToCache(this.cacheKey, {
42069
+ data: response.posts.map(getResolver('post')),
42070
+ });
42071
+ }
42072
+ else {
42073
+ const collection = (_a = pullFromCache(this.cacheKey)) === null || _a === void 0 ? void 0 : _a.data;
42074
+ const posts = (_b = collection === null || collection === void 0 ? void 0 : collection.data) !== null && _b !== void 0 ? _b : [];
42075
+ pushToCache(this.cacheKey, Object.assign(Object.assign({}, collection), { data: [...new Set([...posts, ...response.posts.map(getResolver('post'))])] }));
42076
+ }
42077
+ }
42078
+ reactor(action) {
42079
+ return (post) => {
42080
+ var _a, _b;
42081
+ const collection = (_a = pullFromCache(this.cacheKey)) === null || _a === void 0 ? void 0 : _a.data;
42082
+ if (!collection)
42083
+ return;
42084
+ if (post.parentPostId && post.isDeleted) {
42085
+ const parentPost = (_b = pullFromCache([
42086
+ 'post',
42087
+ 'get',
42088
+ post.parentPostId,
42089
+ ])) === null || _b === void 0 ? void 0 : _b.data;
42090
+ if (!parentPost)
42091
+ return;
42092
+ parentPost.children = parentPost.children.filter(childId => childId !== post.postId);
42093
+ pushToCache(['post', 'get', parentPost.postId], parentPost);
42094
+ }
42095
+ if (action === EnumPostActions.OnPostDeclined) {
42096
+ collection.data = collection.data.filter(postId => postId !== post.postId);
42097
+ }
42098
+ if (action === EnumPostActions.OnPostCreated || action === EnumPostActions.OnPostApproved) {
42099
+ collection.data = [...new Set([post.postId, ...collection.data])];
42100
+ }
42101
+ pushToCache(this.cacheKey, collection);
42102
+ this.notifyChange({ origin: "event" /* Amity.LiveDataOrigin.EVENT */, loading: false });
42103
+ };
42104
+ }
42105
+ subscribeRTE(createSubscriber) {
42106
+ return createSubscriber.map(subscriber => subscriber.fn(this.reactor(subscriber.action)));
42107
+ }
42108
+ }
42109
+
42110
+ class SearchPostLiveCollectionController extends LiveCollectionController {
42111
+ constructor(query, callback) {
42112
+ const queryStreamId = hash(query);
42113
+ const cacheKey = ['posts', 'collection', queryStreamId];
42114
+ const paginationController = new SearchPostPaginationController(query);
42115
+ super(paginationController, queryStreamId, cacheKey, callback);
42116
+ this.query = query;
42117
+ this.queryStreamController = new SearchPostQueryStreamController(this.query, this.cacheKey, this.notifyChange.bind(this), preparePostPayload);
42118
+ this.callback = callback.bind(this);
42119
+ this.loadPage({ initial: true });
42120
+ }
42121
+ setup() {
42122
+ var _a;
42123
+ const collection = (_a = pullFromCache(this.cacheKey)) === null || _a === void 0 ? void 0 : _a.data;
42124
+ if (!collection) {
42125
+ pushToCache(this.cacheKey, {
42126
+ data: [],
42127
+ params: {},
42128
+ });
42129
+ }
42130
+ }
42131
+ async persistModel(queryPayload) {
42132
+ await this.queryStreamController.saveToMainDB(queryPayload);
42133
+ }
42134
+ persistQueryStream({ response, direction, refresh, }) {
42135
+ this.queryStreamController.appendToQueryStream(response, direction, refresh);
42136
+ }
42137
+ startSubscription() {
42138
+ return this.queryStreamController.subscribeRTE([
42139
+ { fn: onPostCreated, action: EnumPostActions.OnPostCreated },
42140
+ { fn: onPostUpdated, action: EnumPostActions.OnPostUpdated },
42141
+ { fn: onPostUpdatedLocal, action: EnumPostActions.OnPostUpdated },
42142
+ { fn: onPostDeleted, action: EnumPostActions.OnPostDeleted },
42143
+ { fn: onPostFlagged, action: EnumPostActions.OnPostFlagged },
42144
+ { fn: onPostUnflagged, action: EnumPostActions.OnPostUnflagged },
42145
+ { fn: onPostApproved, action: EnumPostActions.OnPostApproved },
42146
+ { fn: onPostDeclined, action: EnumPostActions.OnPostDeclined },
42147
+ { fn: onPostReactionAdded, action: EnumPostActions.OnPostReactionAdded },
42148
+ { fn: onPostReactionRemoved, action: EnumPostActions.OnPostReactionRemoved },
42149
+ { fn: onLocalPostReactionAdded, action: EnumPostActions.OnPostReactionAdded },
42150
+ { fn: onLocalPostReactionRemoved, action: EnumPostActions.OnPostReactionRemoved },
42151
+ { fn: onLocalPostDeleted, action: EnumPostActions.OnPostDeleted },
42152
+ {
42153
+ fn: convertEventPayload((callback) => {
42154
+ return onCommentCreated(async (comment) => {
42155
+ var _a;
42156
+ const currentCollection = (_a = pullFromCache(this.cacheKey)) === null || _a === void 0 ? void 0 : _a.data;
42157
+ if (!currentCollection || currentCollection.data.includes(comment.referenceId))
42158
+ return;
42159
+ await getPost$1(comment.referenceId);
42160
+ callback(comment);
42161
+ });
42162
+ }, 'referenceId', 'post'),
42163
+ action: EnumPostActions.OnPostUpdated,
42164
+ },
42165
+ {
42166
+ fn: convertEventPayload((callback) => {
42167
+ return onCommentDeleted(async (comment) => {
42168
+ var _a;
42169
+ const currentCollection = (_a = pullFromCache(this.cacheKey)) === null || _a === void 0 ? void 0 : _a.data;
42170
+ if (!currentCollection || currentCollection.data.includes(comment.referenceId))
42171
+ return;
42172
+ await getPost$1(comment.referenceId);
42173
+ callback(comment);
42174
+ });
42175
+ }, 'referenceId', 'post'),
42176
+ action: EnumPostActions.OnPostUpdated,
42177
+ },
42178
+ ]);
42179
+ }
42180
+ notifyChange({ origin, loading, error }) {
42181
+ var _a, _b;
42182
+ const collection = (_a = pullFromCache(this.cacheKey)) === null || _a === void 0 ? void 0 : _a.data;
42183
+ if (!collection)
42184
+ return;
42185
+ const data = this.applyFilter((_b = collection.data
42186
+ .map(id => pullFromCache(['post', 'get', id]))
42187
+ .filter(isNonNullable)
42188
+ .map(({ data }) => data)) !== null && _b !== void 0 ? _b : []).map(LinkedObject.post);
42189
+ if (!this.shouldNotify(data) && origin === 'event')
42190
+ return;
42191
+ this.callback({
42192
+ onNextPage: () => this.loadPage({ direction: "next" /* Amity.LiveCollectionPageDirection.NEXT */ }),
42193
+ data,
42194
+ hasNextPage: !!this.paginationController.getNextToken(),
42195
+ loading,
42196
+ error,
42197
+ });
42198
+ }
42199
+ applyFilter(data) {
42200
+ var _a;
42201
+ let posts = data;
42202
+ if ((_a = this.query.dataTypes) === null || _a === void 0 ? void 0 : _a.length) {
42203
+ posts = filterByPostDataTypes(posts, this.query.dataTypes);
42204
+ }
42205
+ switch (this.query.sortBy) {
42206
+ case 'firstCreated':
42207
+ posts = posts.sort(sortByFirstCreated);
42208
+ break;
42209
+ case 'lastCreated':
42210
+ default:
42211
+ posts = posts.sort(sortByLastCreated);
42212
+ break;
42213
+ }
42214
+ return posts;
42215
+ }
42216
+ }
42217
+
42218
+ /* begin_public_function
42219
+ id: post.query
42220
+ */
42221
+ /**
42222
+ * ```js
42223
+ * import { PostRepository } from '@amityco/ts-sdk'
42224
+ *
42225
+ * let posts = []
42226
+ * const unsub = PostRepository.searchPostsByHashtag({
42227
+ * hashtags: ['amity'],
42228
+ * limit: 10,
42229
+ * }, response => merge(posts, response.data))
42230
+ * ```
42231
+ *
42232
+ * Observe all mutations on a list of {@link Amity.Post} for a given target object
42233
+ *
42234
+ * @param params.hashtags the hashtags to search for
42235
+ * @param callback the function to call when new data are available
42236
+ * @param config
42237
+ * @returns An {@link Amity.Unsubscriber} function to run when willing to stop observing the messages
42238
+ *
42239
+ * @category Posts Live Collection
42240
+ */
42241
+ const searchPostsByHashtag = (params, callback, config) => {
42242
+ const { log, cache } = getActiveClient();
42243
+ if (!cache) {
42244
+ console.log(ENABLE_CACHE_MESSAGE);
42245
+ }
42246
+ const timestamp = Date.now();
42247
+ log(`searchPostsByHashtag(tmpid: ${timestamp}) > listen`);
42248
+ const postsLiveCollection = new SearchPostLiveCollectionController(params, callback);
42249
+ const disposers = postsLiveCollection.startSubscription();
42250
+ const cacheKey = postsLiveCollection.getCacheKey();
42251
+ disposers.push(() => dropFromCache(cacheKey));
42252
+ return () => {
42253
+ log(`searchPostsByHashtag(tmpid: ${timestamp}) > dispose`);
42254
+ disposers.forEach(fn => fn());
42255
+ };
42256
+ };
42257
+ /* end_public_function */
42258
+
42006
42259
  var index$8 = /*#__PURE__*/Object.freeze({
42007
42260
  __proto__: null,
42008
42261
  getPostByIds: getPostByIds,
@@ -42030,7 +42283,8 @@ var index$8 = /*#__PURE__*/Object.freeze({
42030
42283
  getPosts: getPosts,
42031
42284
  getPinnedPosts: getPinnedPosts,
42032
42285
  getGlobalPinnedPosts: getGlobalPinnedPosts,
42033
- semanticSearchPosts: semanticSearchPosts
42286
+ semanticSearchPosts: semanticSearchPosts,
42287
+ searchPostsByHashtag: searchPostsByHashtag
42034
42288
  });
42035
42289
 
42036
42290
  /* begin_public_function
@@ -42635,8 +42889,8 @@ var index$7 = /*#__PURE__*/Object.freeze({
42635
42889
  * const created = await createPoll({
42636
42890
  * question: 'question',
42637
42891
  * answers: [
42638
- * { dataType: 'text', data: 'answer1' },
42639
- * { dataType: 'text', data: 'answer2' },
42892
+ * { dataType: 'text', data: 'answer1', fileId: 'fileId1' },
42893
+ * { dataType: 'text', data: 'answer2', fileId: 'fileId2' },
42640
42894
  * ],
42641
42895
  * closedIn: 1649136484
42642
42896
  * }))