@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
@@ -4,8 +4,8 @@
4
4
  * const created = await createPoll({
5
5
  * question: 'question',
6
6
  * answers: [
7
- * { dataType: 'text', data: 'answer1' },
8
- * { dataType: 'text', data: 'answer2' },
7
+ * { dataType: 'text', data: 'answer1', fileId: 'fileId1' },
8
+ * { dataType: 'text', data: 'answer2', fileId: 'fileId2' },
9
9
  * ],
10
10
  * closedIn: 1649136484
11
11
  * }))
@@ -19,7 +19,7 @@
19
19
  * @category Poll API
20
20
  * @async
21
21
  */
22
- export declare const createPoll: (bundle: Pick<Amity.Poll, 'question' | 'answerType' | 'closedIn'> & {
22
+ export declare const createPoll: (bundle: Pick<Amity.Poll, 'title' | 'question' | 'answerType' | 'closedIn'> & {
23
23
  answers: Pick<Amity.PollAnswer, 'dataType' | 'data'>[];
24
24
  }) => Promise<Amity.Cached<Amity.Poll>>;
25
25
  //# sourceMappingURL=createPoll.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"createPoll.d.ts","sourceRoot":"","sources":["../../../src/pollRepository/api/createPoll.ts"],"names":[],"mappings":"AAOA;;;;;;;;;;;;;;;;;;;;GAoBG;AACH,eAAO,MAAM,UAAU,WACb,KAAK,MAAM,IAAI,EAAE,UAAU,GAAG,YAAY,GAAG,UAAU,CAAC,GAAG;IACjE,OAAO,EAAE,KAAK,MAAM,UAAU,EAAE,UAAU,GAAG,MAAM,CAAC,EAAE,CAAC;CACxD,KACA,QAAQ,MAAM,MAAM,CAAC,MAAM,IAAI,CAAC,CAelC,CAAC"}
1
+ {"version":3,"file":"createPoll.d.ts","sourceRoot":"","sources":["../../../src/pollRepository/api/createPoll.ts"],"names":[],"mappings":"AAOA;;;;;;;;;;;;;;;;;;;;GAoBG;AACH,eAAO,MAAM,UAAU,WACb,KAAK,MAAM,IAAI,EAAE,OAAO,GAAG,UAAU,GAAG,YAAY,GAAG,UAAU,CAAC,GAAG;IAC3E,OAAO,EAAE,KAAK,MAAM,UAAU,EAAE,UAAU,GAAG,MAAM,CAAC,EAAE,CAAC;CACxD,KACA,QAAQ,MAAM,MAAM,CAAC,MAAM,IAAI,CAAC,CAelC,CAAC"}
@@ -16,7 +16,7 @@
16
16
  * @category Post API
17
17
  * @async
18
18
  */
19
- export declare const createPost: <T extends string>(bundle: Pick<Amity.Post<T>, "targetId" | "targetType"> & Partial<Pick<Amity.Post<T>, "tags" | "metadata" | "mentionees">> & {
19
+ export declare const createPost: <T extends string>(bundle: Pick<Amity.Post<T>, "targetId" | "targetType"> & Partial<Pick<Amity.Post<T>, "tags" | "metadata" | "mentionees" | "hashtags">> & {
20
20
  dataType?: T | undefined;
21
21
  data?: {
22
22
  [k: string]: any;
@@ -15,7 +15,7 @@
15
15
  * @category Post API
16
16
  * @async
17
17
  */
18
- export declare const editPost: <T extends string>(postId: Amity.Post['postId'], patch: Partial<Pick<Amity.Post<any>, "tags" | "metadata" | "data" | "mentionees">> & {
18
+ export declare const editPost: <T extends string>(postId: Amity.Post['postId'], patch: Partial<Pick<Amity.Post<any>, "tags" | "metadata" | "data" | "mentionees" | "hashtags">> & {
19
19
  attachments?: {
20
20
  type: T;
21
21
  fileId: Amity.File['fileId'];
@@ -0,0 +1,14 @@
1
+ import { SearchPostPaginationController } from './SearchPostPaginationController';
2
+ import { LiveCollectionController } from '~/core/liveCollection/LiveCollectionController';
3
+ export declare class SearchPostLiveCollectionController extends LiveCollectionController<'post', Amity.SearchPostWithHashtagLiveCollection, Amity.Post, SearchPostPaginationController> {
4
+ private queryStreamController;
5
+ private query;
6
+ constructor(query: Amity.SearchPostWithHashtagLiveCollection, callback: Amity.LiveCollectionCallback<Amity.Post>);
7
+ protected setup(): void;
8
+ protected persistModel(queryPayload: Amity.PostPayload & Amity.Pagination): Promise<void>;
9
+ protected persistQueryStream({ response, direction, refresh, }: Amity.LiveCollectionPersistQueryStreamParams<'post'>): void;
10
+ startSubscription(): Amity.Unsubscriber[];
11
+ notifyChange({ origin, loading, error }: Amity.LiveCollectionNotifyParams): void;
12
+ applyFilter(data: Amity.InternalPost[]): Amity.InternalPost<any>[];
13
+ }
14
+ //# sourceMappingURL=SearchPostLiveCollectionController.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"SearchPostLiveCollectionController.d.ts","sourceRoot":"","sources":["../../../../src/postRepository/observers/getPostsByHashtag/SearchPostLiveCollectionController.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,8BAA8B,EAAE,MAAM,kCAAkC,CAAC;AAElF,OAAO,EAAE,wBAAwB,EAAE,MAAM,gDAAgD,CAAC;AAyB1F,qBAAa,kCAAmC,SAAQ,wBAAwB,CAC9E,MAAM,EACN,KAAK,CAAC,mCAAmC,EACzC,KAAK,CAAC,IAAI,EACV,8BAA8B,CAC/B;IACC,OAAO,CAAC,qBAAqB,CAAkC;IAE/D,OAAO,CAAC,KAAK,CAA4C;gBAGvD,KAAK,EAAE,KAAK,CAAC,mCAAmC,EAChD,QAAQ,EAAE,KAAK,CAAC,sBAAsB,CAAC,KAAK,CAAC,IAAI,CAAC;IAoBpD,SAAS,CAAC,KAAK;cAUC,YAAY,CAAC,YAAY,EAAE,KAAK,CAAC,WAAW,GAAG,KAAK,CAAC,UAAU;IAI/E,SAAS,CAAC,kBAAkB,CAAC,EAC3B,QAAQ,EACR,SAAS,EACT,OAAO,GACR,EAAE,KAAK,CAAC,sCAAsC,CAAC,MAAM,CAAC;IAIvD,iBAAiB;IA0DjB,YAAY,CAAC,EAAE,MAAM,EAAE,OAAO,EAAE,KAAK,EAAE,EAAE,KAAK,CAAC,0BAA0B;IAsBzE,WAAW,CAAC,IAAI,EAAE,KAAK,CAAC,YAAY,EAAE;CAmBvC"}
@@ -0,0 +1,5 @@
1
+ import { PaginationController } from '~/core/liveCollection/PaginationController';
2
+ export declare class SearchPostPaginationController extends PaginationController<'post', Amity.SearchPostWithHashtagLiveCollection> {
3
+ getRequest(queryParams: Amity.SearchPostWithHashtagLiveCollection, token: string | undefined): Promise<Amity.PostPayload<any> & Amity.Pagination>;
4
+ }
5
+ //# sourceMappingURL=SearchPostPaginationController.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"SearchPostPaginationController.d.ts","sourceRoot":"","sources":["../../../../src/postRepository/observers/getPostsByHashtag/SearchPostPaginationController.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,oBAAoB,EAAE,MAAM,4CAA4C,CAAC;AAGlF,qBAAa,8BAA+B,SAAQ,oBAAoB,CACtE,MAAM,EACN,KAAK,CAAC,mCAAmC,CAC1C;IACO,UAAU,CACd,WAAW,EAAE,KAAK,CAAC,mCAAmC,EACtD,KAAK,EAAE,MAAM,GAAG,SAAS;CAuC5B"}
@@ -0,0 +1,15 @@
1
+ import { QueryStreamController } from '~/core/liveCollection/QueryStreamController';
2
+ import { EnumPostActions } from '../enums';
3
+ export declare class SearchPostQueryStreamController extends QueryStreamController<Amity.PostPayload, Amity.SearchPostWithHashtagLiveCollection> {
4
+ private notifyChange;
5
+ private preparePayload;
6
+ constructor(query: Amity.SearchPostWithHashtagLiveCollection, cacheKey: string[], notifyChange: (params: Amity.LiveCollectionNotifyParams) => void, preparePayload: (response: Amity.PostPayload) => Amity.ProcessedPostPayload);
7
+ saveToMainDB(response: Amity.PostPayload): Promise<void>;
8
+ appendToQueryStream(response: Amity.PostPayload & Partial<Amity.Pagination>, direction: Amity.LiveCollectionPageDirection, refresh?: boolean): void;
9
+ reactor(action: EnumPostActions): (post: Amity.InternalPost) => void;
10
+ subscribeRTE(createSubscriber: {
11
+ fn: (reactor: (post: Amity.InternalPost) => void) => Amity.Unsubscriber;
12
+ action: EnumPostActions;
13
+ }[]): Amity.Unsubscriber[];
14
+ }
15
+ //# sourceMappingURL=SearchPostQueryStreamController.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"SearchPostQueryStreamController.d.ts","sourceRoot":"","sources":["../../../../src/postRepository/observers/getPostsByHashtag/SearchPostQueryStreamController.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,qBAAqB,EAAE,MAAM,6CAA6C,CAAC;AAKpF,OAAO,EAAE,eAAe,EAAE,MAAM,UAAU,CAAC;AAE3C,qBAAa,+BAAgC,SAAQ,qBAAqB,CACxE,KAAK,CAAC,WAAW,EACjB,KAAK,CAAC,mCAAmC,CAC1C;IACC,OAAO,CAAC,YAAY,CAAqD;IAEzE,OAAO,CAAC,cAAc,CAA8D;gBAGlF,KAAK,EAAE,KAAK,CAAC,mCAAmC,EAChD,QAAQ,EAAE,MAAM,EAAE,EAClB,YAAY,EAAE,CAAC,MAAM,EAAE,KAAK,CAAC,0BAA0B,KAAK,IAAI,EAChE,cAAc,EAAE,CAAC,QAAQ,EAAE,KAAK,CAAC,WAAW,KAAK,KAAK,CAAC,oBAAoB;IAOvE,YAAY,CAAC,QAAQ,EAAE,KAAK,CAAC,WAAW;IAW9C,mBAAmB,CACjB,QAAQ,EAAE,KAAK,CAAC,WAAW,GAAG,OAAO,CAAC,KAAK,CAAC,UAAU,CAAC,EACvD,SAAS,EAAE,KAAK,CAAC,2BAA2B,EAC5C,OAAO,UAAQ;IAkBjB,OAAO,CAAC,MAAM,EAAE,eAAe,UACf,MAAM,YAAY;IA+BlC,YAAY,CACV,gBAAgB,EAAE;QAChB,EAAE,EAAE,CAAC,OAAO,EAAE,CAAC,IAAI,EAAE,KAAK,CAAC,YAAY,KAAK,IAAI,KAAK,KAAK,CAAC,YAAY,CAAC;QACxE,MAAM,EAAE,eAAe,CAAC;KACzB,EAAE;CAIN"}
@@ -3,4 +3,5 @@ export * from './getPosts';
3
3
  export * from './getPinnedPosts';
4
4
  export * from './getGlobalPinnedPosts';
5
5
  export * from './semanticSearchPosts';
6
+ export * from './searchPostsByHashtag';
6
7
  //# sourceMappingURL=index.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/postRepository/observers/index.ts"],"names":[],"mappings":"AAAA,cAAc,WAAW,CAAC;AAC1B,cAAc,YAAY,CAAC;AAC3B,cAAc,kBAAkB,CAAC;AACjC,cAAc,wBAAwB,CAAC;AACvC,cAAc,uBAAuB,CAAC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/postRepository/observers/index.ts"],"names":[],"mappings":"AAAA,cAAc,WAAW,CAAC;AAC1B,cAAc,YAAY,CAAC;AAC3B,cAAc,kBAAkB,CAAC;AACjC,cAAc,wBAAwB,CAAC;AACvC,cAAc,uBAAuB,CAAC;AACtC,cAAc,wBAAwB,CAAC"}
@@ -0,0 +1,22 @@
1
+ /**
2
+ * ```js
3
+ * import { PostRepository } from '@amityco/ts-sdk'
4
+ *
5
+ * let posts = []
6
+ * const unsub = PostRepository.searchPostsByHashtag({
7
+ * hashtags: ['amity'],
8
+ * limit: 10,
9
+ * }, response => merge(posts, response.data))
10
+ * ```
11
+ *
12
+ * Observe all mutations on a list of {@link Amity.Post} for a given target object
13
+ *
14
+ * @param params.hashtags the hashtags to search for
15
+ * @param callback the function to call when new data are available
16
+ * @param config
17
+ * @returns An {@link Amity.Unsubscriber} function to run when willing to stop observing the messages
18
+ *
19
+ * @category Posts Live Collection
20
+ */
21
+ export declare const searchPostsByHashtag: (params: Amity.SearchPostWithHashtagLiveCollection, callback: Amity.LiveCollectionCallback<Amity.Post>, config?: Amity.LiveCollectionConfig) => Amity.Unsubscriber;
22
+ //# sourceMappingURL=searchPostsByHashtag.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"searchPostsByHashtag.d.ts","sourceRoot":"","sources":["../../../src/postRepository/observers/searchPostsByHashtag.ts"],"names":[],"mappings":"AASA;;;;;;;;;;;;;;;;;;;GAmBG;AACH,eAAO,MAAM,oBAAoB,WACvB,MAAM,mCAAmC,YACvC,MAAM,sBAAsB,CAAC,MAAM,IAAI,CAAC,WACzC,MAAM,oBAAoB,KAClC,MAAM,YAqBR,CAAC"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@amityco/ts-sdk",
3
- "version": "7.8.1-1b0200c.0",
3
+ "version": "7.8.1-2caef95.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",
@@ -116,6 +116,11 @@ declare global {
116
116
  };
117
117
  };
118
118
 
119
+ type ShareableLinkConfiguration = {
120
+ domain: string;
121
+ patterns: Record<string, string>;
122
+ };
123
+
119
124
  type FeedSettings = {
120
125
  [name in Amity.ContentFeedType]?: Amity.ContentSetting[];
121
126
  };
@@ -38,6 +38,7 @@ declare global {
38
38
  type ContentFeedType = ValueOf<typeof ContentFeedType>;
39
39
 
40
40
  type ContentDataText = {
41
+ title?: string | null;
41
42
  text: string;
42
43
  };
43
44
 
@@ -0,0 +1,11 @@
1
+ export {};
2
+
3
+ declare global {
4
+ namespace Amity {
5
+ type Hashtag = {
6
+ text: string;
7
+ index: number;
8
+ length: number;
9
+ };
10
+ }
11
+ }
@@ -2,7 +2,7 @@ export {};
2
2
 
3
3
  declare global {
4
4
  namespace Amity {
5
- type PollDataType = 'text';
5
+ type PollDataType = 'text' | 'image';
6
6
 
7
7
  type PollAnswerType = 'single' | 'multiple';
8
8
 
@@ -12,6 +12,7 @@ declare global {
12
12
  data: string;
13
13
  voteCount: number;
14
14
  isVotedByUser: boolean;
15
+ fileId?: string;
15
16
  };
16
17
 
17
18
  type PollStatus = 'closed' | 'open';
@@ -25,6 +26,7 @@ declare global {
25
26
  closedIn?: number;
26
27
  isVoted?: boolean;
27
28
  status: PollStatus;
29
+ title?: string | null;
28
30
  userId: Amity.InternalUser['userId'];
29
31
  } & Amity.Timestamps &
30
32
  Amity.SoftDelete;
@@ -11,7 +11,7 @@ export const PostContentType = Object.freeze({
11
11
  declare global {
12
12
  namespace Amity {
13
13
  // bad hack until we get proper feed objects in backend
14
- type PostTargetType = Amity.Feed['targetType'] | 'content';
14
+ type PostTargetType = Amity.Feed['targetType'] | 'content' | 'all';
15
15
 
16
16
  type PostContentType = ValueOf<typeof PostContentType> | string;
17
17
 
@@ -66,6 +66,7 @@ declare global {
66
66
  reactionsCount: number;
67
67
  reactions: Record<string, number>;
68
68
  myReactions?: string[];
69
+ hashtags?: string[];
69
70
  } & Amity.Content<T> &
70
71
  Amity.Mentionable<'user'>;
71
72
 
@@ -107,6 +108,15 @@ declare global {
107
108
  limit?: number;
108
109
  };
109
110
 
111
+ type QueryPostsWithHashtags = {
112
+ dataTypes?: Exclude<Amity.PostContentType, 'text'>[];
113
+ targetType: Amity.InternalPost['targetType'];
114
+ hashtags: string[];
115
+ matchingOnlyParentPost?: boolean;
116
+ page?: string;
117
+ limit?: number;
118
+ };
119
+
110
120
  // Omit sortBy explained in asc-3398
111
121
  type PostLiveCollection = Amity.LiveCollectionParams<
112
122
  Omit<QueryPosts, 'sortBy' | 'page'> & {
@@ -114,6 +124,12 @@ declare global {
114
124
  }
115
125
  >;
116
126
 
127
+ type SearchPostWithHashtagLiveCollection = Amity.LiveCollectionParams<
128
+ Omit<QueryPostsWithHashtags, 'page'> & {
129
+ sortBy?: 'lastCreated' | 'firstCreated';
130
+ }
131
+ >;
132
+
117
133
  type PostLiveCollectionCache = Amity.LiveCollectionCache<
118
134
  Amity.InternalPost['postId'],
119
135
  Pick<QueryPosts, 'page'>
@@ -125,6 +141,7 @@ declare global {
125
141
  targetType?: Amity.InternalPost['targetType'];
126
142
  dataTypes?: string[];
127
143
  matchingOnlyParentPost?: boolean;
144
+ limit?: number;
128
145
  };
129
146
 
130
147
  type SemanticSearchPostLiveCollection = Amity.LiveCollectionParams<
@@ -44,3 +44,4 @@ export * from './domains/joinRequest';
44
44
  export * from './domains/pin';
45
45
  export * from './domains/pinnedPost';
46
46
  export * from './domains/liveReaction';
47
+ export * from './domains/hashtag';
@@ -0,0 +1,26 @@
1
+ import { getActiveClient } from './activeClient';
2
+
3
+ /**
4
+ * ```js
5
+ * import Client from '@amityco/ts-sdk'
6
+ * const shareableLinkConfiguration = await Client.getShareableLinkConfiguration()
7
+ * const postLinkPattern = shareableLinkConfiguration.post
8
+ * ```
9
+ *
10
+ * Fetches a {@link Amity.ShareableLinkConfiguration} object
11
+ *
12
+ * @returns A Promise of {@link Amity.ShareableLinkConfiguration} object
13
+ *
14
+ * @category Client API
15
+ * @async
16
+ */
17
+ export const getShareableLinkConfiguration =
18
+ async (): Promise<Amity.ShareableLinkConfiguration> => {
19
+ const client = getActiveClient();
20
+
21
+ const { data } = await client.http.get<Amity.ShareableLinkConfiguration>(
22
+ `/api/v3/network-settings/shareable-deep-links`,
23
+ );
24
+
25
+ return data;
26
+ };
@@ -21,3 +21,5 @@ export * from './enableUnreadCount';
21
21
  export * from './setUploadedFileAccessType';
22
22
 
23
23
  export * from './fetchLinkPreview';
24
+
25
+ export * from './getShareableLinkConfiguration';
@@ -11,8 +11,8 @@ import { ingestInCache } from '~/cache/api/ingestInCache';
11
11
  * const created = await createPoll({
12
12
  * question: 'question',
13
13
  * answers: [
14
- * { dataType: 'text', data: 'answer1' },
15
- * { dataType: 'text', data: 'answer2' },
14
+ * { dataType: 'text', data: 'answer1', fileId: 'fileId1' },
15
+ * { dataType: 'text', data: 'answer2', fileId: 'fileId2' },
16
16
  * ],
17
17
  * closedIn: 1649136484
18
18
  * }))
@@ -27,7 +27,7 @@ import { ingestInCache } from '~/cache/api/ingestInCache';
27
27
  * @async
28
28
  */
29
29
  export const createPoll = async (
30
- bundle: Pick<Amity.Poll, 'question' | 'answerType' | 'closedIn'> & {
30
+ bundle: Pick<Amity.Poll, 'title' | 'question' | 'answerType' | 'closedIn'> & {
31
31
  answers: Pick<Amity.PollAnswer, 'dataType' | 'data'>[];
32
32
  },
33
33
  ): Promise<Amity.Cached<Amity.Poll>> => {
@@ -28,7 +28,7 @@ import { preparePostPayload } from '../utils/payload';
28
28
  */
29
29
  export const createPost = async <T extends Amity.PostContentType | string>(
30
30
  bundle: Pick<Amity.Post<T>, 'targetType' | 'targetId'> &
31
- Partial<Pick<Amity.Post<T>, 'metadata' | 'mentionees' | 'tags'>> & {
31
+ Partial<Pick<Amity.Post<T>, 'metadata' | 'mentionees' | 'tags' | 'hashtags'>> & {
32
32
  dataType?: T;
33
33
  data?: { [k: string]: any };
34
34
  attachments?: { type: T; fileId: Amity.File['fileId'] }[];
@@ -27,7 +27,7 @@ import { LinkedObject } from '~/utils/linkedObject';
27
27
  */
28
28
  export const editPost = async <T extends Amity.PostContentType>(
29
29
  postId: Amity.Post['postId'],
30
- patch: Patch<Amity.Post, 'data' | 'metadata' | 'mentionees' | 'tags'> & {
30
+ patch: Patch<Amity.Post, 'data' | 'metadata' | 'mentionees' | 'tags' | 'hashtags'> & {
31
31
  attachments?: {
32
32
  type: T;
33
33
  fileId: Amity.File['fileId'];
@@ -63,13 +63,13 @@ export const queryPosts = async (
63
63
  // const { paging, posts } = unwrapPayload(data)
64
64
  // unpacking
65
65
  const { paging, ...payload } = data;
66
- const paperedPayload = prepareMembershipPayload(payload, 'communityUsers');
66
+ const preparedPayload = prepareMembershipPayload(payload, 'communityUsers');
67
67
  const { posts } = payload;
68
68
 
69
69
  const cachedAt = client.cache && Date.now();
70
70
 
71
71
  if (client.cache) {
72
- ingestInCache(paperedPayload, { cachedAt });
72
+ ingestInCache(preparedPayload, { cachedAt });
73
73
 
74
74
  const cacheKey = ['post', 'query', { ...params, options } as Amity.Serializable];
75
75
  pushToCache(cacheKey, { posts: posts.map(getResolver('post')), paging });
@@ -0,0 +1,183 @@
1
+ import hash from 'object-hash';
2
+ import { pullFromCache, pushToCache } from '~/cache/api';
3
+ import { SearchPostPaginationController } from './SearchPostPaginationController';
4
+ import { SearchPostQueryStreamController } from './SearchPostQueryStreamController';
5
+ import { LiveCollectionController } from '~/core/liveCollection/LiveCollectionController';
6
+ import {
7
+ onPostCreated,
8
+ onPostUpdated,
9
+ onPostDeleted,
10
+ onPostFlagged,
11
+ onPostUnflagged,
12
+ onPostReactionAdded,
13
+ onPostReactionRemoved,
14
+ onPostApproved,
15
+ onPostDeclined,
16
+ } from '~/postRepository/events';
17
+ import { filterByPostDataTypes, sortByFirstCreated, sortByLastCreated } from '~/core/query';
18
+ import { isNonNullable } from '~/utils';
19
+ import { EnumPostActions } from '../enums';
20
+ import { LinkedObject } from '~/utils/linkedObject';
21
+ import { preparePostPayload } from '~/postRepository/utils/payload';
22
+ import { convertEventPayload } from '~/utils/event';
23
+ import { onCommentCreated, onCommentDeleted } from '~/commentRepository';
24
+ import { getPost } from '~/postRepository/internalApi/getPost';
25
+ import { onPostUpdatedLocal } from '~/postRepository/events/onPostUpdatedLocal';
26
+ import { onLocalPostReactionAdded } from '~/postRepository/events/onLocalPostReactionAdded';
27
+ import { onLocalPostReactionRemoved } from '~/postRepository/events/onLocalPostReactionRemoved';
28
+ import { onLocalPostDeleted } from '~/postRepository/events/onLocalPostDeleted';
29
+
30
+ export class SearchPostLiveCollectionController extends LiveCollectionController<
31
+ 'post',
32
+ Amity.SearchPostWithHashtagLiveCollection,
33
+ Amity.Post,
34
+ SearchPostPaginationController
35
+ > {
36
+ private queryStreamController: SearchPostQueryStreamController;
37
+
38
+ private query: Amity.SearchPostWithHashtagLiveCollection;
39
+
40
+ constructor(
41
+ query: Amity.SearchPostWithHashtagLiveCollection,
42
+ callback: Amity.LiveCollectionCallback<Amity.Post>,
43
+ ) {
44
+ const queryStreamId = hash(query);
45
+ const cacheKey = ['posts', 'collection', queryStreamId];
46
+ const paginationController = new SearchPostPaginationController(query);
47
+
48
+ super(paginationController, queryStreamId, cacheKey, callback);
49
+
50
+ this.query = query;
51
+ this.queryStreamController = new SearchPostQueryStreamController(
52
+ this.query,
53
+ this.cacheKey,
54
+ this.notifyChange.bind(this),
55
+ preparePostPayload,
56
+ );
57
+
58
+ this.callback = callback.bind(this);
59
+ this.loadPage({ initial: true });
60
+ }
61
+
62
+ protected setup() {
63
+ const collection = pullFromCache<Amity.PostLiveCollectionCache>(this.cacheKey)?.data;
64
+ if (!collection) {
65
+ pushToCache(this.cacheKey, {
66
+ data: [],
67
+ params: {},
68
+ });
69
+ }
70
+ }
71
+
72
+ protected async persistModel(queryPayload: Amity.PostPayload & Amity.Pagination) {
73
+ await this.queryStreamController.saveToMainDB(queryPayload);
74
+ }
75
+
76
+ protected persistQueryStream({
77
+ response,
78
+ direction,
79
+ refresh,
80
+ }: Amity.LiveCollectionPersistQueryStreamParams<'post'>) {
81
+ this.queryStreamController.appendToQueryStream(response, direction, refresh);
82
+ }
83
+
84
+ startSubscription() {
85
+ return this.queryStreamController.subscribeRTE([
86
+ { fn: onPostCreated, action: EnumPostActions.OnPostCreated },
87
+ { fn: onPostUpdated, action: EnumPostActions.OnPostUpdated },
88
+ { fn: onPostUpdatedLocal, action: EnumPostActions.OnPostUpdated },
89
+ { fn: onPostDeleted, action: EnumPostActions.OnPostDeleted },
90
+ { fn: onPostFlagged, action: EnumPostActions.OnPostFlagged },
91
+ { fn: onPostUnflagged, action: EnumPostActions.OnPostUnflagged },
92
+ { fn: onPostApproved, action: EnumPostActions.OnPostApproved },
93
+ { fn: onPostDeclined, action: EnumPostActions.OnPostDeclined },
94
+ { fn: onPostReactionAdded, action: EnumPostActions.OnPostReactionAdded },
95
+ { fn: onPostReactionRemoved, action: EnumPostActions.OnPostReactionRemoved },
96
+ { fn: onLocalPostReactionAdded, action: EnumPostActions.OnPostReactionAdded },
97
+ { fn: onLocalPostReactionRemoved, action: EnumPostActions.OnPostReactionRemoved },
98
+ { fn: onLocalPostDeleted, action: EnumPostActions.OnPostDeleted },
99
+ {
100
+ fn: convertEventPayload(
101
+ (callback: Amity.Listener<Amity.InternalComment>) => {
102
+ return onCommentCreated(async (comment: Amity.InternalComment) => {
103
+ const currentCollection = pullFromCache<Amity.PostLiveCollectionCache>(
104
+ this.cacheKey,
105
+ )?.data;
106
+
107
+ if (!currentCollection || currentCollection.data.includes(comment.referenceId))
108
+ return;
109
+
110
+ await getPost(comment.referenceId);
111
+ callback(comment);
112
+ });
113
+ },
114
+ 'referenceId',
115
+ 'post',
116
+ ),
117
+ action: EnumPostActions.OnPostUpdated,
118
+ },
119
+ {
120
+ fn: convertEventPayload(
121
+ (callback: Amity.Listener<Amity.InternalComment>) => {
122
+ return onCommentDeleted(async (comment: Amity.InternalComment) => {
123
+ const currentCollection = pullFromCache<Amity.PostLiveCollectionCache>(
124
+ this.cacheKey,
125
+ )?.data;
126
+
127
+ if (!currentCollection || currentCollection.data.includes(comment.referenceId))
128
+ return;
129
+
130
+ await getPost(comment.referenceId);
131
+ callback(comment);
132
+ });
133
+ },
134
+ 'referenceId',
135
+ 'post',
136
+ ),
137
+ action: EnumPostActions.OnPostUpdated,
138
+ },
139
+ ]);
140
+ }
141
+
142
+ notifyChange({ origin, loading, error }: Amity.LiveCollectionNotifyParams) {
143
+ const collection = pullFromCache<Amity.PostLiveCollectionCache>(this.cacheKey)?.data;
144
+ if (!collection) return;
145
+
146
+ const data = this.applyFilter(
147
+ collection.data
148
+ .map(id => pullFromCache<Amity.InternalPost>(['post', 'get', id])!)
149
+ .filter(isNonNullable)
150
+ .map(({ data }) => data) ?? [],
151
+ ).map(LinkedObject.post);
152
+
153
+ if (!this.shouldNotify(data) && origin === 'event') return;
154
+
155
+ this.callback({
156
+ onNextPage: () => this.loadPage({ direction: Amity.LiveCollectionPageDirection.NEXT }),
157
+ data,
158
+ hasNextPage: !!this.paginationController.getNextToken(),
159
+ loading,
160
+ error,
161
+ });
162
+ }
163
+
164
+ applyFilter(data: Amity.InternalPost[]) {
165
+ let posts = data;
166
+
167
+ if (this.query.dataTypes?.length) {
168
+ posts = filterByPostDataTypes(posts, this.query.dataTypes);
169
+ }
170
+
171
+ switch (this.query.sortBy) {
172
+ case 'firstCreated':
173
+ posts = posts.sort(sortByFirstCreated);
174
+ break;
175
+ case 'lastCreated':
176
+ default:
177
+ posts = posts.sort(sortByLastCreated);
178
+ break;
179
+ }
180
+
181
+ return posts;
182
+ }
183
+ }
@@ -0,0 +1,49 @@
1
+ import { PaginationController } from '~/core/liveCollection/PaginationController';
2
+ import { COLLECTION_DEFAULT_PAGINATION_LIMIT } from '~/utils/constants';
3
+
4
+ export class SearchPostPaginationController extends PaginationController<
5
+ 'post',
6
+ Amity.SearchPostWithHashtagLiveCollection
7
+ > {
8
+ async getRequest(
9
+ queryParams: Amity.SearchPostWithHashtagLiveCollection,
10
+ token: string | undefined,
11
+ ) {
12
+ const {
13
+ limit = COLLECTION_DEFAULT_PAGINATION_LIMIT,
14
+ matchingOnlyParentPost,
15
+ hashtags,
16
+ dataTypes,
17
+ targetType = 'all',
18
+ ...params
19
+ } = queryParams;
20
+
21
+ const baseOptions = {
22
+ type: params.sortBy || queryParams.limit ? 'pagination' : undefined,
23
+ };
24
+
25
+ const options = token ? { ...baseOptions, token } : { ...baseOptions, limit };
26
+
27
+ const { data: queryResponse } = await this.http.get<Amity.PostPayload & Amity.Pagination>(
28
+ `/api/v1/search/posts`,
29
+ {
30
+ params: {
31
+ ...params,
32
+ hashtags,
33
+ dataTypes,
34
+ targetType,
35
+ /*
36
+ * when creating post like image, file, video BE will create 2 posts
37
+ * 1. parent post to store text with dataType=text
38
+ * 2. child post to store dataTypes post data
39
+ *
40
+ * By default, BE queries only parent post
41
+ */
42
+ matchingOnlyParentPost: matchingOnlyParentPost ?? !dataTypes?.length,
43
+ options,
44
+ },
45
+ },
46
+ );
47
+ return queryResponse;
48
+ }
49
+ }