@amityco/ts-sdk 0.0.1-beta.38 → 0.0.1-beta.39
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.
- package/dist/@types/core/model.d.ts +2 -0
- package/dist/@types/core/model.d.ts.map +1 -1
- package/dist/@types/domains/channel.d.ts +2 -2
- package/dist/@types/domains/channel.d.ts.map +1 -1
- package/dist/@types/domains/feed.d.ts +1 -2
- package/dist/@types/domains/feed.d.ts.map +1 -1
- package/dist/@types/domains/message.d.ts +1 -1
- package/dist/@types/domains/message.d.ts.map +1 -1
- package/dist/@types/domains/post.d.ts +1 -1
- package/dist/@types/domains/post.d.ts.map +1 -1
- package/dist/@types/domains/user.d.ts +8 -0
- package/dist/@types/domains/user.d.ts.map +1 -1
- package/dist/channel/observers/liveChannels.d.ts.map +1 -1
- package/dist/client/api/connectClient.d.ts.map +1 -1
- package/dist/core/model/idResolvers.d.ts.map +1 -1
- package/dist/core/model/identifyModel.d.ts.map +1 -1
- package/dist/core/model/index.d.ts.map +1 -1
- package/dist/core/query/filtering.d.ts +10 -0
- package/dist/core/query/filtering.d.ts.map +1 -1
- package/dist/core/query/paging.d.ts +2 -2
- package/dist/core/query/paging.d.ts.map +1 -1
- package/dist/core/query/tests/paging.test.d.ts +2 -0
- package/dist/core/query/tests/paging.test.d.ts.map +1 -0
- package/dist/index.cjs.js +180 -71
- package/dist/index.esm.js +178 -71
- package/dist/index.umd.js +4 -4
- package/dist/message/api/queryMessages.d.ts +2 -2
- package/dist/message/api/queryMessages.d.ts.map +1 -1
- package/dist/post/observers/livePosts.d.ts +2 -2
- package/dist/post/observers/livePosts.d.ts.map +1 -1
- package/dist/report/api/createReport.d.ts.map +1 -1
- package/dist/report/api/deleteReport.d.ts.map +1 -1
- package/dist/report/api/tests/createReport.test.d.ts +2 -0
- package/dist/report/api/tests/createReport.test.d.ts.map +1 -0
- package/dist/report/api/tests/deleteReport.test.d.ts +2 -0
- package/dist/report/api/tests/deleteReport.test.d.ts.map +1 -0
- package/dist/user/api/queryUsers.d.ts +1 -6
- package/dist/user/api/queryUsers.d.ts.map +1 -1
- package/dist/user/observers/index.d.ts +1 -0
- package/dist/user/observers/index.d.ts.map +1 -1
- package/dist/user/observers/liveUsers.d.ts +18 -0
- package/dist/user/observers/liveUsers.d.ts.map +1 -0
- package/dist/user/observers/tests/liveUsers.test.d.ts +2 -0
- package/dist/user/observers/tests/liveUsers.test.d.ts.map +1 -0
- package/dist/utils/liveObject.d.ts +1 -1
- package/dist/utils/liveObject.d.ts.map +1 -1
- package/dist/utils/tests/dummy/channel.d.ts.map +1 -1
- package/dist/utils/tests/dummy/feed.d.ts +21 -0
- package/dist/utils/tests/dummy/feed.d.ts.map +1 -0
- package/dist/utils/tests/dummy/index.d.ts +1 -0
- package/dist/utils/tests/dummy/index.d.ts.map +1 -1
- package/dist/utils/tests/dummy/post.d.ts +9 -0
- package/dist/utils/tests/dummy/post.d.ts.map +1 -1
- package/dist/utils/tests/dummy/user.d.ts +63 -0
- package/dist/utils/tests/dummy/user.d.ts.map +1 -1
- package/package.json +1 -1
- package/src/@types/core/model.ts +4 -0
- package/src/@types/domains/channel.ts +2 -2
- package/src/@types/domains/feed.ts +1 -3
- package/src/@types/domains/message.ts +4 -1
- package/src/@types/domains/post.ts +1 -1
- package/src/@types/domains/user.ts +14 -0
- package/src/cache/api/tests/ingestInCache.test.ts +2 -0
- package/src/channel/observers/liveChannels.ts +29 -24
- package/src/client/api/connectClient.ts +0 -2
- package/src/core/model/idResolvers.ts +2 -0
- package/src/core/model/identifyModel.ts +1 -0
- package/src/core/model/index.ts +2 -0
- package/src/core/query/filtering.ts +33 -3
- package/src/core/query/paging.ts +5 -4
- package/src/core/query/tests/paging.test.ts +66 -0
- package/src/message/api/queryMessages.ts +7 -7
- package/src/message/api/tests/queryMessages.test.ts +6 -6
- package/src/message/tests/observers/liveMessages.test.ts +4 -4
- package/src/post/observers/livePosts.ts +14 -22
- package/src/post/observers/tests/livePosts.test.ts +65 -8
- package/src/report/api/createReport.ts +1 -6
- package/src/report/api/deleteReport.ts +2 -6
- package/src/report/api/tests/createReport.test.ts +93 -0
- package/src/report/api/tests/deleteReport.test.ts +93 -0
- package/src/user/api/queryUsers.ts +1 -6
- package/src/user/observers/index.ts +1 -0
- package/src/user/observers/liveUsers.ts +162 -0
- package/src/user/observers/tests/liveUsers.test.ts +202 -0
- package/src/utils/tests/dummy/channel.ts +1 -0
- package/src/utils/tests/dummy/feed.ts +13 -0
- package/src/utils/tests/dummy/index.ts +2 -0
- package/src/utils/tests/dummy/post.ts +6 -2
- package/src/utils/tests/dummy/user.ts +36 -0
|
@@ -13,7 +13,7 @@
|
|
|
13
13
|
* @async
|
|
14
14
|
*/
|
|
15
15
|
export declare const queryMessages: {
|
|
16
|
-
(query: Amity.QueryMessages): Promise<Amity.Cached<Amity.Paged<Amity.Message
|
|
16
|
+
(query: Amity.QueryMessages): Promise<Amity.Cached<Amity.Paged<Amity.Message, Amity.Page<string>>>>;
|
|
17
17
|
/**
|
|
18
18
|
* ```js
|
|
19
19
|
* import { queryMessages } from '@amityco/ts-sdk'
|
|
@@ -27,6 +27,6 @@ export declare const queryMessages: {
|
|
|
27
27
|
*
|
|
28
28
|
* @category Message API
|
|
29
29
|
*/
|
|
30
|
-
locally(query: Parameters<typeof queryMessages>[0]): Amity.Cached<Amity.Paged<Amity.Message
|
|
30
|
+
locally(query: Parameters<typeof queryMessages>[0]): Amity.Cached<Amity.Paged<Amity.Message, Amity.Page<string>>> | undefined;
|
|
31
31
|
};
|
|
32
32
|
//# sourceMappingURL=queryMessages.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"queryMessages.d.ts","sourceRoot":"","sources":["../../../src/message/api/queryMessages.ts"],"names":[],"mappings":"AASA;;;;;;;;;;;;;GAaG;AACH,eAAO,MAAM,aAAa;YACjB,MAAM,aAAa,GACzB,QAAQ,MAAM,MAAM,CAAC,MAAM,KAAK,CAAC,MAAM,OAAO,CAAC,CAAC,CAAC;
|
|
1
|
+
{"version":3,"file":"queryMessages.d.ts","sourceRoot":"","sources":["../../../src/message/api/queryMessages.ts"],"names":[],"mappings":"AASA;;;;;;;;;;;;;GAaG;AACH,eAAO,MAAM,aAAa;YACjB,MAAM,aAAa,GACzB,QAAQ,MAAM,MAAM,CAAC,MAAM,KAAK,CAAC,MAAM,OAAO,EAAE,MAAM,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC;IAoCxE;;;;;;;;;;;;OAYG;mBAEM,WAAW,oBAAoB,CAAC,CAAC,CAAC,CAAC,GACzC,MAAM,MAAM,CAAC,MAAM,KAAK,CAAC,MAAM,OAAO,EAAE,MAAM,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC,GAAG,SAAS;CAjB1E,CAAC"}
|
|
@@ -11,8 +11,8 @@
|
|
|
11
11
|
*
|
|
12
12
|
* Observe all mutations on a list of {@link Amity.Post} for a given target object
|
|
13
13
|
*
|
|
14
|
-
* @param targetType the type of the target
|
|
15
|
-
* @param targetId the ID of the target
|
|
14
|
+
* @param param.targetType the type of the target
|
|
15
|
+
* @param param.targetId the ID of the target
|
|
16
16
|
* @param callback the function to call when new data are available
|
|
17
17
|
* @returns An {@link Amity.Unsubscriber} function to run when willing to stop observing the messages
|
|
18
18
|
*
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"livePosts.d.ts","sourceRoot":"","sources":["../../../src/post/observers/livePosts.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"livePosts.d.ts","sourceRoot":"","sources":["../../../src/post/observers/livePosts.ts"],"names":[],"mappings":"AAiCA;;;;;;;;;;;;;;;;;;;GAmBG;AACH,eAAO,MAAM,SAAS,WACZ,MAAM,kBAAkB,YACtB,MAAM,sBAAsB,CAAC,MAAM,IAAI,CAAC,WACzC,MAAM,oBAAoB,KAClC,MAAM,YA6HR,CAAC"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"createReport.d.ts","sourceRoot":"","sources":["../../../src/report/api/createReport.ts"],"names":[],"mappings":"AAMA,OAAO,eAAe,MAAM,6BAA6B,CAAC;AAE1D;;;;;;;;;;;;KAYK;AACL,eAAO,MAAM,YAAY,kBACR,MAAM,sBAAsB,eAC9B,MAAM,KAClB,QAAQ,OAAO,
|
|
1
|
+
{"version":3,"file":"createReport.d.ts","sourceRoot":"","sources":["../../../src/report/api/createReport.ts"],"names":[],"mappings":"AAMA,OAAO,eAAe,MAAM,6BAA6B,CAAC;AAE1D;;;;;;;;;;;;KAYK;AACL,eAAO,MAAM,YAAY,kBACR,MAAM,sBAAsB,eAC9B,MAAM,KAClB,QAAQ,OAAO,CA8BjB,CAAC"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"deleteReport.d.ts","sourceRoot":"","sources":["../../../src/report/api/deleteReport.ts"],"names":[],"mappings":"AAMA,OAAO,eAAe,MAAM,6BAA6B,CAAC;AAE1D;;;;;;;;;;;;KAYK;AACL,eAAO,MAAM,YAAY,kBACR,MAAM,sBAAsB,eAC9B,MAAM,KAClB,QAAQ,OAAO,
|
|
1
|
+
{"version":3,"file":"deleteReport.d.ts","sourceRoot":"","sources":["../../../src/report/api/deleteReport.ts"],"names":[],"mappings":"AAMA,OAAO,eAAe,MAAM,6BAA6B,CAAC;AAE1D;;;;;;;;;;;;KAYK;AACL,eAAO,MAAM,YAAY,kBACR,MAAM,sBAAsB,eAC9B,MAAM,KAClB,QAAQ,OAAO,CA+BjB,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"createReport.test.d.ts","sourceRoot":"","sources":["../../../../src/report/api/tests/createReport.test.ts"],"names":[],"mappings":""}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"deleteReport.test.d.ts","sourceRoot":"","sources":["../../../../src/report/api/tests/deleteReport.test.ts"],"names":[],"mappings":""}
|
|
@@ -14,12 +14,7 @@
|
|
|
14
14
|
* @async
|
|
15
15
|
*/
|
|
16
16
|
export declare const queryUsers: {
|
|
17
|
-
(query?:
|
|
18
|
-
displayName?: Amity.User['displayName'];
|
|
19
|
-
filter?: 'all' | 'flagged';
|
|
20
|
-
sortBy?: 'displayName' | 'firstCreated' | 'lastCreated';
|
|
21
|
-
page?: Amity.Page;
|
|
22
|
-
}): Promise<Amity.Cached<Amity.Paged<Amity.User>>>;
|
|
17
|
+
(query?: Amity.QueryUsers): Promise<Amity.Cached<Amity.Paged<Amity.User>>>;
|
|
23
18
|
/**
|
|
24
19
|
* ```js
|
|
25
20
|
* import { queryUsers } from '@amityco/ts-sdk'
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"queryUsers.d.ts","sourceRoot":"","sources":["../../../src/user/api/queryUsers.ts"],"names":[],"mappings":"AASA;;;;;;;;;;;;;;GAcG;AACH,eAAO,MAAM,UAAU;aACd
|
|
1
|
+
{"version":3,"file":"queryUsers.d.ts","sourceRoot":"","sources":["../../../src/user/api/queryUsers.ts"],"names":[],"mappings":"AASA;;;;;;;;;;;;;;GAcG;AACH,eAAO,MAAM,UAAU;aACd,MAAM,UAAU,GACtB,QAAQ,MAAM,MAAM,CAAC,MAAM,KAAK,CAAC,MAAM,IAAI,CAAC,CAAC,CAAC;IAiDjD;;;;;;;;;;;;;OAaG;oBAEM,WAAW,iBAAiB,CAAC,CAAC,CAAC,CAAC,GACtC,MAAM,MAAM,CAAC,MAAM,KAAK,CAAC,MAAM,IAAI,CAAC,CAAC,GAAG,SAAS;CAlBnD,CAAC"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/user/observers/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAE,MAAM,YAAY,CAAC;AACtC,OAAO,EAAE,WAAW,EAAE,MAAM,eAAe,CAAC"}
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/user/observers/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAE,MAAM,YAAY,CAAC;AACtC,OAAO,EAAE,SAAS,EAAE,MAAM,aAAa,CAAC;AACxC,OAAO,EAAE,WAAW,EAAE,MAAM,eAAe,CAAC"}
|
|
@@ -0,0 +1,18 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* ```js
|
|
3
|
+
* import { liveUsers } from '@amityco/ts-sdk'
|
|
4
|
+
*
|
|
5
|
+
* let users = []
|
|
6
|
+
* const unsub = liveUsers({}, response => merge(users, response.data))
|
|
7
|
+
* ```
|
|
8
|
+
*
|
|
9
|
+
* Observe all mutations on a list of {@link Amity.User}s
|
|
10
|
+
*
|
|
11
|
+
* @param params for querying users
|
|
12
|
+
* @param callback the function to call when new data are available
|
|
13
|
+
* @returns An {@link Amity.Unsubscriber} function to run when willing to stop observing the users
|
|
14
|
+
*
|
|
15
|
+
* @category Category Live Collection
|
|
16
|
+
*/
|
|
17
|
+
export declare const liveUsers: (params: Amity.UserLiveCollection, callback: Amity.LiveCollectionCallback<Amity.User>, config?: Amity.LiveCollectionConfig) => () => void;
|
|
18
|
+
//# sourceMappingURL=liveUsers.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"liveUsers.d.ts","sourceRoot":"","sources":["../../../src/user/observers/liveUsers.ts"],"names":[],"mappings":"AA8BA;;;;;;;;;;;;;;;GAeG;AACH,eAAO,MAAM,SAAS,WACZ,MAAM,kBAAkB,YACtB,MAAM,sBAAsB,CAAC,MAAM,IAAI,CAAC,WACzC,MAAM,oBAAoB,eAgHpC,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"liveUsers.test.d.ts","sourceRoot":"","sources":["../../../../src/user/observers/tests/liveUsers.test.ts"],"names":[],"mappings":""}
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
export declare const liveObject: <T extends Amity.User | Amity.File<any> | Amity.Role | Amity.Channel<any> | Amity.SubChannel | Amity.Membership<"channel"> | Amity.Message<any> | Amity.Community | Amity.Category | Amity.Membership<"community"> | Amity.Post<any> | Amity.Comment<any> | Amity.Poll | Amity.Stream | Amity.FollowStatus, K extends keyof T>(id: T[K], callback: Amity.LiveObjectCallback<T>, key: K, fetcher: (id: T[K]) => Promise<Amity.Cached<T>>, eventHandlers: ((callback: Amity.Listener<T>) => Amity.Unsubscriber)[]) => Amity.Unsubscriber;
|
|
1
|
+
export declare const liveObject: <T extends Amity.User | Amity.File<any> | Amity.Role | Amity.Channel<any> | Amity.SubChannel | Amity.Membership<"channel"> | Amity.Message<any> | Amity.Community | Amity.Category | Amity.Membership<"community"> | Amity.Feed | Amity.Post<any> | Amity.Comment<any> | Amity.Poll | Amity.Stream | Amity.FollowStatus, K extends keyof T>(id: T[K], callback: Amity.LiveObjectCallback<T>, key: K, fetcher: (id: T[K]) => Promise<Amity.Cached<T>>, eventHandlers: ((callback: Amity.Listener<T>) => Amity.Unsubscriber)[]) => Amity.Unsubscriber;
|
|
2
2
|
//# sourceMappingURL=liveObject.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"liveObject.d.ts","sourceRoot":"","sources":["../../src/utils/liveObject.ts"],"names":[],"mappings":"AAUA,eAAO,MAAM,UAAU,
|
|
1
|
+
{"version":3,"file":"liveObject.d.ts","sourceRoot":"","sources":["../../src/utils/liveObject.ts"],"names":[],"mappings":"AAUA,eAAO,MAAM,UAAU,yeAQiC,MAAM,YAAY,QACvE,MAAM,YAkER,CAAC"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"channel.d.ts","sourceRoot":"","sources":["../../../../src/utils/tests/dummy/channel.ts"],"names":[],"mappings":"AAGA,wBAAgB,kBAAkB,CAAC,MAAM,CAAC,EAAE,OAAO,CAAC,KAAK,CAAC,UAAU,CAAC,GAAG,KAAK,CAAC,UAAU,
|
|
1
|
+
{"version":3,"file":"channel.d.ts","sourceRoot":"","sources":["../../../../src/utils/tests/dummy/channel.ts"],"names":[],"mappings":"AAGA,wBAAgB,kBAAkB,CAAC,MAAM,CAAC,EAAE,OAAO,CAAC,KAAK,CAAC,UAAU,CAAC,GAAG,KAAK,CAAC,UAAU,CAgBvF;AA+BD,eAAO,MAAM,QAAQ;;;;;CAKpB,CAAC;AAEF,eAAO,MAAM,WAAW,EAAE,KAAK,CAAC,UAAsD,CAAC;AAEvF,eAAO,MAAM,eAAe,EAAE,KAAK,CAAC,UAAiD,CAAC;AAEtF,eAAO,MAAM,uBAAuB,EAAE,KAAK,CAAC,UAE1C,CAAC;AAEH,eAAO,MAAM,WAAW,EAAE,KAAK,CAAC,UAI9B,CAAC;AAEH,eAAO,MAAM,WAAW,EAAE,KAAK,CAAC,UAE9B,CAAC;AAEH,eAAO,MAAM,QAAQ,EAAE,KAAK,CAAC,OAK3B,CAAC;AAEH,eAAO,MAAM,QAAQ,EAAE,KAAK,CAAC,OAK3B,CAAC;AAEH,eAAO,MAAM,cAAc,uCAA2B,CAAC;AACvD,eAAO,MAAM,WAAW,6BAAoD,CAAC;AAE7E,eAAO,MAAM,eAAe,uCAI1B,CAAC;AACH,eAAO,MAAM,YAAY,6BAAqD,CAAC;AAE/E,eAAO,MAAM,eAAe,uCAI1B,CAAC;AACH,eAAO,MAAM,YAAY,6BAAqD,CAAC;AAE/E,eAAO,MAAM,YAAY,uCAIvB,CAAC;AAEH,eAAO,MAAM,oBAAoB,uCAI/B,CAAC;AACH,eAAO,MAAM,iBAAiB,6BAA0D,CAAC;AAEzF,eAAO,MAAM,mBAAmB,uCAG9B,CAAC;AACH,eAAO,MAAM,gBAAgB,6BAAyD,CAAC;AAEvF,eAAO,MAAM,sBAAsB,uCAGjC,CAAC;AACH,eAAO,MAAM,mBAAmB,6BAA4D,CAAC;AAE7F,eAAO,MAAM,oBAAoB;;;;;;;;;;;CAQhC,CAAC;AAEF,eAAO,MAAM,mBAAmB;;;;;;;;;;;CAQ/B,CAAC;AAEF,eAAO,MAAM,yBAAyB;;;;;;;;;;;CAQrC,CAAC;AAEF,eAAO,MAAM,uBAAuB;;;;;;;;;;;CAQnC,CAAC;AAEF,eAAO,MAAM,8BAA8B;;;;;;;;;;;CAQ1C,CAAC;AAEF,eAAO,MAAM,wBAAwB;;;;;;;;;;;CAQpC,CAAC;AAEF,eAAO,MAAM,6BAA6B;;;;;;;;;;;CAQzC,CAAC;AAEF,eAAO,MAAM,gBAAgB,+BAAsD,CAAC;AAEpF,eAAO,MAAM,6BAA6B;;;;;;;;;;;CAQzC,CAAC;AAEF,eAAO,MAAM,6BAA6B;;;;;;;;;;;CAQzC,CAAC;AAGF,eAAO,MAAM,cAAc;;;;;CAK1B,CAAC;AAEF,eAAO,MAAM,kBAAkB;;;;;CAK9B,CAAC;AAEF,eAAO,MAAM,0BAA0B;;;;;CAKtC,CAAC"}
|
|
@@ -0,0 +1,21 @@
|
|
|
1
|
+
export declare const feed11: {
|
|
2
|
+
targetType: string;
|
|
3
|
+
targetId: string;
|
|
4
|
+
feedType: string;
|
|
5
|
+
feedId: string;
|
|
6
|
+
postCount: number;
|
|
7
|
+
createdAt: string;
|
|
8
|
+
updatedAt: string;
|
|
9
|
+
};
|
|
10
|
+
export declare const feedPayload: {
|
|
11
|
+
feeds: {
|
|
12
|
+
targetType: string;
|
|
13
|
+
targetId: string;
|
|
14
|
+
feedType: string;
|
|
15
|
+
feedId: string;
|
|
16
|
+
postCount: number;
|
|
17
|
+
createdAt: string;
|
|
18
|
+
updatedAt: string;
|
|
19
|
+
}[];
|
|
20
|
+
};
|
|
21
|
+
//# sourceMappingURL=feed.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"feed.d.ts","sourceRoot":"","sources":["../../../../src/utils/tests/dummy/feed.ts"],"names":[],"mappings":"AAAA,eAAO,MAAM,MAAM;;;;;;;;CAQlB,CAAC;AAEF,eAAO,MAAM,WAAW;;;;;;;;;;CAEvB,CAAC"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../src/utils/tests/dummy/index.ts"],"names":[],"mappings":"AAAA,eAAO,MAAM,IAAI,QAA2B,CAAC;AAC7C,eAAO,MAAM,mBAAmB;;;CAAiC,CAAC;AAElE,cAAc,QAAQ,CAAC;AACvB,cAAc,QAAQ,CAAC;AACvB,cAAc,QAAQ,CAAC;AAEvB,cAAc,QAAQ,CAAC;AAEvB,cAAc,QAAQ,CAAC;AACvB,cAAc,UAAU,CAAC;AACzB,cAAc,YAAY,CAAC;AAE3B,cAAc,WAAW,CAAC;AAC1B,cAAc,cAAc,CAAC;AAE7B,cAAc,WAAW,CAAC;AAC1B,cAAc,SAAS,CAAC;AACxB,cAAc,UAAU,CAAC;AACzB,cAAc,aAAa,CAAC;AAC5B,cAAc,YAAY,CAAC;AAE3B,cAAc,UAAU,CAAC"}
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../src/utils/tests/dummy/index.ts"],"names":[],"mappings":"AAAA,eAAO,MAAM,IAAI,QAA2B,CAAC;AAC7C,eAAO,MAAM,mBAAmB;;;CAAiC,CAAC;AAElE,cAAc,QAAQ,CAAC;AACvB,cAAc,QAAQ,CAAC;AACvB,cAAc,QAAQ,CAAC;AAEvB,cAAc,QAAQ,CAAC;AAEvB,cAAc,QAAQ,CAAC;AACvB,cAAc,UAAU,CAAC;AACzB,cAAc,YAAY,CAAC;AAE3B,cAAc,WAAW,CAAC;AAC1B,cAAc,cAAc,CAAC;AAE7B,cAAc,WAAW,CAAC;AAC1B,cAAc,SAAS,CAAC;AACxB,cAAc,UAAU,CAAC;AACzB,cAAc,aAAa,CAAC;AAC5B,cAAc,YAAY,CAAC;AAE3B,cAAc,UAAU,CAAC;AAEzB,cAAc,QAAQ,CAAC"}
|
|
@@ -32,6 +32,15 @@ export declare const postQueryResponsePage2: {
|
|
|
32
32
|
data: {
|
|
33
33
|
posts: Amity.Post<any>[];
|
|
34
34
|
files: never[];
|
|
35
|
+
feeds: {
|
|
36
|
+
feedType: string;
|
|
37
|
+
targetId: string;
|
|
38
|
+
feedId: string;
|
|
39
|
+
targetType: string;
|
|
40
|
+
postCount: number;
|
|
41
|
+
createdAt: string;
|
|
42
|
+
updatedAt: string;
|
|
43
|
+
}[];
|
|
35
44
|
paging: {
|
|
36
45
|
next: string;
|
|
37
46
|
};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"post.d.ts","sourceRoot":"","sources":["../../../../src/utils/tests/dummy/post.ts"],"names":[],"mappings":"AAGA,wBAAgB,YAAY,CAAC,MAAM,CAAC,EAAE,OAAO,CAAC,KAAK,CAAC,IAAI,CAAC,GAAG,KAAK,CAAC,IAAI,
|
|
1
|
+
{"version":3,"file":"post.d.ts","sourceRoot":"","sources":["../../../../src/utils/tests/dummy/post.ts"],"names":[],"mappings":"AAGA,wBAAgB,YAAY,CAAC,MAAM,CAAC,EAAE,OAAO,CAAC,KAAK,CAAC,IAAI,CAAC,GAAG,KAAK,CAAC,IAAI,CAyBrE;AAED,wBAAgB,eAAe,CAAC,MAAM,CAAC,EAAE,OAAO,CAAC,KAAK,CAAC,OAAO,CAAC,GAAG,KAAK,CAAC,OAAO,CA0B9E;AAED,eAAO,MAAM,MAAM,EAAE,KAAK,CAAC,IAAqB,CAAC;AAEjD,eAAO,MAAM,SAAS,EAAE,KAAK,CAAC,OAA2B,CAAC;AAE1D,eAAO,MAAM,MAAM,EAAE,KAAK,CAAC,IAG1B,CAAC;AAEF,eAAO,MAAM,MAAM,EAAE,KAAK,CAAC,IAG1B,CAAC;AAEF,eAAO,MAAM,MAAM,EAAE,KAAK,CAAC,IAO1B,CAAC;AAEF,eAAO,MAAM,MAAM,EAAE,KAAK,CAAC,IAQ1B,CAAC;AAEF,eAAO,MAAM,MAAM,EAAE,KAAK,CAAC,IAI1B,CAAC;AAEF,eAAO,MAAM,KAAK;;;;;;CAMjB,CAAC;AAEF,eAAO,MAAM,cAAc,EAAE,KAAK,CAAC,cAGlC,CAAC;AAEF,eAAO,MAAM,WAAW,EAAE,KAAK,CAAC,WAM/B,CAAC;AAIF,eAAO,MAAM,iBAAiB;;;;;;;;;;;CAS7B,CAAC;AAEF,eAAO,MAAM,sBAAsB;;;;;;;;;;;;;;;;;CASlC,CAAC"}
|
|
@@ -2,6 +2,8 @@ export declare const user11: Amity.User;
|
|
|
2
2
|
export declare const user12: Amity.User;
|
|
3
3
|
export declare const user13: Amity.User;
|
|
4
4
|
export declare const user14: Amity.User;
|
|
5
|
+
export declare const user21: Amity.User;
|
|
6
|
+
export declare const user22: Amity.User;
|
|
5
7
|
export declare const userQueryResponse: {
|
|
6
8
|
data: {
|
|
7
9
|
users: Amity.User[];
|
|
@@ -12,6 +14,67 @@ export declare const userQueryResponse: {
|
|
|
12
14
|
};
|
|
13
15
|
};
|
|
14
16
|
};
|
|
17
|
+
export declare const userQueryResponsePage2: {
|
|
18
|
+
data: {
|
|
19
|
+
users: Amity.User[];
|
|
20
|
+
files: never[];
|
|
21
|
+
paging: {
|
|
22
|
+
previous: string;
|
|
23
|
+
next: string;
|
|
24
|
+
};
|
|
25
|
+
};
|
|
26
|
+
};
|
|
27
|
+
export declare const flaggedUser: {
|
|
28
|
+
userId: string;
|
|
29
|
+
flagCount: number;
|
|
30
|
+
_id: string;
|
|
31
|
+
displayName?: string | undefined;
|
|
32
|
+
avatarFileId?: string | undefined;
|
|
33
|
+
avatarCustomUrl?: string | undefined;
|
|
34
|
+
description?: string | undefined;
|
|
35
|
+
metadata?: Record<string, any> | undefined;
|
|
36
|
+
tags?: string[] | undefined;
|
|
37
|
+
hashFlag: {
|
|
38
|
+
bits: number;
|
|
39
|
+
hashes: number;
|
|
40
|
+
hash: string;
|
|
41
|
+
} | null;
|
|
42
|
+
roles: string[];
|
|
43
|
+
permissions: Amity.Permission[];
|
|
44
|
+
createdAt: string;
|
|
45
|
+
updatedAt?: string | undefined;
|
|
46
|
+
deletedAt?: string | undefined;
|
|
47
|
+
isDeleted?: boolean | undefined;
|
|
48
|
+
path: string;
|
|
49
|
+
};
|
|
50
|
+
export declare const flaggedUserQueryResponse: {
|
|
51
|
+
data: {
|
|
52
|
+
users: {
|
|
53
|
+
userId: string;
|
|
54
|
+
flagCount: number;
|
|
55
|
+
_id: string;
|
|
56
|
+
displayName?: string | undefined;
|
|
57
|
+
avatarFileId?: string | undefined;
|
|
58
|
+
avatarCustomUrl?: string | undefined;
|
|
59
|
+
description?: string | undefined;
|
|
60
|
+
metadata?: Record<string, any> | undefined;
|
|
61
|
+
tags?: string[] | undefined;
|
|
62
|
+
hashFlag: {
|
|
63
|
+
bits: number;
|
|
64
|
+
hashes: number;
|
|
65
|
+
hash: string;
|
|
66
|
+
} | null;
|
|
67
|
+
roles: string[];
|
|
68
|
+
permissions: Amity.Permission[];
|
|
69
|
+
createdAt: string;
|
|
70
|
+
updatedAt?: string | undefined;
|
|
71
|
+
deletedAt?: string | undefined;
|
|
72
|
+
isDeleted?: boolean | undefined;
|
|
73
|
+
path: string;
|
|
74
|
+
}[];
|
|
75
|
+
files: never[];
|
|
76
|
+
};
|
|
77
|
+
};
|
|
15
78
|
export declare const userUpdateResponse: {
|
|
16
79
|
data: {
|
|
17
80
|
users: {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"user.d.ts","sourceRoot":"","sources":["../../../../src/utils/tests/dummy/user.ts"],"names":[],"mappings":"AAEA,eAAO,MAAM,MAAM,EAAE,KAAK,CAAC,IAS1B,CAAC;AAEF,eAAO,MAAM,MAAM,EAAE,KAAK,CAAC,IAG1B,CAAC;AAEF,eAAO,MAAM,MAAM,EAAE,KAAK,CAAC,IAG1B,CAAC;AAEF,eAAO,MAAM,MAAM,EAAE,KAAK,CAAC,IAG1B,CAAC;AAEF,eAAO,MAAM,iBAAiB;;;;;;;;;CAS7B,CAAC;AAEF,eAAO,MAAM,kBAAkB;;;;;;;;;;;;;;;;;CAmB9B,CAAC;
|
|
1
|
+
{"version":3,"file":"user.d.ts","sourceRoot":"","sources":["../../../../src/utils/tests/dummy/user.ts"],"names":[],"mappings":"AAEA,eAAO,MAAM,MAAM,EAAE,KAAK,CAAC,IAS1B,CAAC;AAEF,eAAO,MAAM,MAAM,EAAE,KAAK,CAAC,IAG1B,CAAC;AAEF,eAAO,MAAM,MAAM,EAAE,KAAK,CAAC,IAG1B,CAAC;AAEF,eAAO,MAAM,MAAM,EAAE,KAAK,CAAC,IAG1B,CAAC;AAEF,eAAO,MAAM,MAAM,EAAE,KAAK,CAAC,IAI1B,CAAC;AAEF,eAAO,MAAM,MAAM,EAAE,KAAK,CAAC,IAG1B,CAAC;AAEF,eAAO,MAAM,iBAAiB;;;;;;;;;CAS7B,CAAC;AAEF,eAAO,MAAM,sBAAsB;;;;;;;;;CASlC,CAAC;AAEF,eAAO,MAAM,WAAW;;;;;;;;;;;;;;;;;;;;;;CAIvB,CAAC;AAEF,eAAO,MAAM,wBAAwB;;;;;;;;;;;;;;;;;;;;;;;;;;;CAKpC,CAAC;AAEF,eAAO,MAAM,kBAAkB;;;;;;;;;;;;;;;;;CAmB9B,CAAC;AAEF,eAAO,MAAM,KAAK,cAAmC,CAAC;AAGtD,eAAO,MAAM,WAAW,EAAE,KAAK,CAAC,WAG/B,CAAC"}
|
package/package.json
CHANGED
package/src/@types/core/model.ts
CHANGED
|
@@ -28,6 +28,8 @@ declare global {
|
|
|
28
28
|
|
|
29
29
|
follow: Amity.FollowStatus;
|
|
30
30
|
followCount: Amity.FollowCount;
|
|
31
|
+
|
|
32
|
+
feed: Amity.Feed;
|
|
31
33
|
};
|
|
32
34
|
|
|
33
35
|
type Domain = keyof Model;
|
|
@@ -59,6 +61,8 @@ declare global {
|
|
|
59
61
|
|
|
60
62
|
follow: Pick<Amity.FollowStatus, 'from' | 'to'>;
|
|
61
63
|
followCount: Pick<Amity.FollowCount, 'userId'>;
|
|
64
|
+
|
|
65
|
+
feed: Pick<Amity.Feed, 'targetId' | 'feedId'>;
|
|
62
66
|
};
|
|
63
67
|
}
|
|
64
68
|
}
|
|
@@ -48,7 +48,7 @@ declare global {
|
|
|
48
48
|
messageCount: number; // TODO remove from public interface
|
|
49
49
|
moderatorMemberCount?: number;
|
|
50
50
|
|
|
51
|
-
lastActivity
|
|
51
|
+
lastActivity: Amity.timestamp;
|
|
52
52
|
|
|
53
53
|
defaultSubChannelUnreadCount: number;
|
|
54
54
|
defaultSubChannelHasUnreadMention: boolean;
|
|
@@ -74,7 +74,7 @@ declare global {
|
|
|
74
74
|
type QueryChannels = {
|
|
75
75
|
displayName?: string;
|
|
76
76
|
membership?: 'all' | 'member' | 'notMember';
|
|
77
|
-
sortBy?: 'displayName' | 'firstCreated' | 'lastCreated';
|
|
77
|
+
sortBy?: 'displayName' | 'firstCreated' | 'lastCreated' | 'lastActivity';
|
|
78
78
|
types?: Amity.ChannelType[];
|
|
79
79
|
isDeleted?: Amity.Channel['isDeleted'];
|
|
80
80
|
tags?: Amity.Taggable['tags'];
|
|
@@ -2,12 +2,10 @@ export {};
|
|
|
2
2
|
|
|
3
3
|
declare global {
|
|
4
4
|
namespace Amity {
|
|
5
|
-
type FeedType = 'community' | 'user';
|
|
6
|
-
|
|
7
5
|
type Feed = {
|
|
8
6
|
feedId: string;
|
|
9
7
|
feedType: 'reviewing' | 'published';
|
|
10
|
-
targetType:
|
|
8
|
+
targetType: Extract<Amity.Domain, 'community' | 'user'>;
|
|
11
9
|
targetId: string;
|
|
12
10
|
postCount: number;
|
|
13
11
|
} & Amity.Timestamps;
|
|
@@ -76,7 +76,10 @@ declare global {
|
|
|
76
76
|
excludeTags?: Amity.Taggable['tags'];
|
|
77
77
|
hasFlags?: boolean;
|
|
78
78
|
isDeleted?: boolean;
|
|
79
|
-
|
|
79
|
+
/*
|
|
80
|
+
* For messages the after and before values are messageId
|
|
81
|
+
*/
|
|
82
|
+
page?: Amity.Page<string>;
|
|
80
83
|
parentId?: Amity.Message['parentId'];
|
|
81
84
|
sortBy?: 'segmentAsc' | 'segmentDesc';
|
|
82
85
|
tags?: Amity.Taggable['tags'];
|
|
@@ -10,7 +10,7 @@ export const PostContentType = Object.freeze({
|
|
|
10
10
|
declare global {
|
|
11
11
|
namespace Amity {
|
|
12
12
|
// bad hack until we get proper feed objects in backend
|
|
13
|
-
type PostTargetType = Amity.
|
|
13
|
+
type PostTargetType = Amity.Feed['targetType'] | 'content';
|
|
14
14
|
|
|
15
15
|
type PostContentType = ValueOf<typeof PostContentType>;
|
|
16
16
|
|
|
@@ -24,5 +24,19 @@ declare global {
|
|
|
24
24
|
Amity.Timestamps &
|
|
25
25
|
Amity.SoftDelete &
|
|
26
26
|
Amity.Subscribable;
|
|
27
|
+
|
|
28
|
+
type QueryUsers = {
|
|
29
|
+
displayName?: Amity.User['displayName'];
|
|
30
|
+
filter?: 'all' | 'flagged';
|
|
31
|
+
sortBy?: 'displayName' | 'firstCreated' | 'lastCreated';
|
|
32
|
+
page?: Amity.Page;
|
|
33
|
+
};
|
|
34
|
+
|
|
35
|
+
type UserLiveCollection = Amity.LiveCollectionParams<Omit<QueryUsers, 'page'>>;
|
|
36
|
+
|
|
37
|
+
type UserLiveCollectionCache = Amity.LiveCollectionCache<
|
|
38
|
+
Amity.User['userId'],
|
|
39
|
+
Pick<QueryUsers, 'page'>
|
|
40
|
+
>;
|
|
27
41
|
}
|
|
28
42
|
}
|
|
@@ -11,6 +11,7 @@ import {
|
|
|
11
11
|
pollPayload,
|
|
12
12
|
reactionPayload,
|
|
13
13
|
followPayload,
|
|
14
|
+
feedPayload,
|
|
14
15
|
user11,
|
|
15
16
|
} from '~/utils/tests';
|
|
16
17
|
|
|
@@ -32,6 +33,7 @@ describe('ingestInCache', () => {
|
|
|
32
33
|
['poll', pollPayload],
|
|
33
34
|
['reaction', reactionPayload],
|
|
34
35
|
['follow', followPayload],
|
|
36
|
+
['feed', feedPayload],
|
|
35
37
|
];
|
|
36
38
|
|
|
37
39
|
test.each(payloads)('it should add %s payload to cache', (model, payload) => {
|
|
@@ -10,6 +10,7 @@ import {
|
|
|
10
10
|
filterByChannelMembership,
|
|
11
11
|
sortByLastCreated,
|
|
12
12
|
sortByDisplayName,
|
|
13
|
+
sortByLastActivity,
|
|
13
14
|
sortByFirstCreated,
|
|
14
15
|
} from '~/core/query';
|
|
15
16
|
import {
|
|
@@ -97,24 +98,32 @@ export const liveChannels = (
|
|
|
97
98
|
channels = filterByChannelMembership(channels, params.membership, userId);
|
|
98
99
|
}
|
|
99
100
|
|
|
100
|
-
|
|
101
|
-
|
|
102
|
-
|
|
103
|
-
|
|
104
|
-
|
|
105
|
-
|
|
106
|
-
|
|
107
|
-
|
|
108
|
-
|
|
109
|
-
|
|
110
|
-
|
|
111
|
-
|
|
112
|
-
|
|
113
|
-
|
|
114
|
-
|
|
115
|
-
|
|
116
|
-
|
|
117
|
-
|
|
101
|
+
switch (params.sortBy) {
|
|
102
|
+
case 'firstCreated':
|
|
103
|
+
channels = channels.sort(sortByFirstCreated);
|
|
104
|
+
break;
|
|
105
|
+
|
|
106
|
+
case 'lastCreated':
|
|
107
|
+
channels = channels.sort(sortByLastCreated);
|
|
108
|
+
break;
|
|
109
|
+
|
|
110
|
+
case 'displayName':
|
|
111
|
+
/*
|
|
112
|
+
* The server returns channels with empty | null displayName's first before
|
|
113
|
+
* returning sorted list of channels with displayNames
|
|
114
|
+
*
|
|
115
|
+
* This section needs to be updated as displayNames can be null as well
|
|
116
|
+
*/
|
|
117
|
+
channels = channels
|
|
118
|
+
// this needs to be aligned with the backend data type
|
|
119
|
+
.map(c => (c.displayName ? c : { ...c, displayName: '' }))
|
|
120
|
+
// @ts-ignore
|
|
121
|
+
.sort(sortByDisplayName);
|
|
122
|
+
break;
|
|
123
|
+
|
|
124
|
+
default:
|
|
125
|
+
channels = channels.sort(sortByLastActivity);
|
|
126
|
+
break;
|
|
118
127
|
}
|
|
119
128
|
|
|
120
129
|
callback({
|
|
@@ -126,15 +135,11 @@ export const liveChannels = (
|
|
|
126
135
|
});
|
|
127
136
|
};
|
|
128
137
|
|
|
129
|
-
const realtimeRouter = (
|
|
138
|
+
const realtimeRouter = (_: Amity.ChannelActionType) => (channel: Amity.Channel) => {
|
|
130
139
|
const collection = pullFromCache<Amity.ChannelLiveCollectionCache>(cacheKey)?.data;
|
|
131
140
|
if (!collection) return;
|
|
132
141
|
|
|
133
|
-
|
|
134
|
-
collection.data = collection.data.filter(c => c !== channel.channelId);
|
|
135
|
-
} else {
|
|
136
|
-
collection.data = [...new Set([channel.channelId, ...collection.data])];
|
|
137
|
-
}
|
|
142
|
+
collection.data = [...new Set([channel.channelId, ...collection.data])];
|
|
138
143
|
|
|
139
144
|
pushToCache(cacheKey, collection);
|
|
140
145
|
responder(collection);
|
package/src/core/model/index.ts
CHANGED
|
@@ -58,10 +58,40 @@ export const filterByChannelMembership = (
|
|
|
58
58
|
channelUserCacheKey,
|
|
59
59
|
])?.data;
|
|
60
60
|
|
|
61
|
-
if (membership === 'member'
|
|
62
|
-
return
|
|
61
|
+
if (membership === 'member') {
|
|
62
|
+
return channelUser && channelUser.membership !== 'none';
|
|
63
63
|
}
|
|
64
64
|
|
|
65
|
-
|
|
65
|
+
// only membership value remainging is 'notMember'
|
|
66
|
+
return !channelUser || channelUser.membership === 'none';
|
|
67
|
+
});
|
|
68
|
+
};
|
|
69
|
+
|
|
70
|
+
/**
|
|
71
|
+
* Filter a channel collection by membership of the userId
|
|
72
|
+
*
|
|
73
|
+
* @param collection the channel collection to filter
|
|
74
|
+
* @param feedType to be filtered by
|
|
75
|
+
* @returns a filtered collection with items only matching the criteria
|
|
76
|
+
*
|
|
77
|
+
* @hidden
|
|
78
|
+
*/
|
|
79
|
+
export const filterByFeedType = <T extends Amity.Post>(
|
|
80
|
+
collection: T[],
|
|
81
|
+
feedType: Amity.Feed['feedType'],
|
|
82
|
+
): T[] => {
|
|
83
|
+
/*
|
|
84
|
+
* It is possible that the targetId & feedId are the same for most of the posts
|
|
85
|
+
* But since cache is in-memory, i've avoided memoizing, to avoid premature
|
|
86
|
+
* optimization. Can be revisited if performance issues arise
|
|
87
|
+
*/
|
|
88
|
+
return collection.filter(({ targetId, feedId }) => {
|
|
89
|
+
const feed = pullFromCache<Amity.Feed>([
|
|
90
|
+
'feed',
|
|
91
|
+
'get',
|
|
92
|
+
getResolver('feed')({ targetId, feedId }),
|
|
93
|
+
])?.data!;
|
|
94
|
+
|
|
95
|
+
return feed && feed.feedType === feedType;
|
|
66
96
|
});
|
|
67
97
|
};
|
package/src/core/query/paging.ts
CHANGED
|
@@ -1,15 +1,15 @@
|
|
|
1
1
|
import { encode, decode } from 'js-base64';
|
|
2
2
|
|
|
3
3
|
/**
|
|
4
|
-
* Type guard to find if the a given decoded backend token uses "skip
|
|
4
|
+
* Type guard to find if the a given decoded backend token uses "skip" pagination style
|
|
5
5
|
*
|
|
6
6
|
* @param json any json object as extracted from the backend
|
|
7
7
|
* @returns success boolean if the token has either "skip" or "limit" props
|
|
8
8
|
*
|
|
9
9
|
* @hidden
|
|
10
10
|
*/
|
|
11
|
-
export const
|
|
12
|
-
['skip'
|
|
11
|
+
export const isSkip = (json: Record<string, unknown>): json is Amity.SkipLimitPagination =>
|
|
12
|
+
['skip'].some(prop => prop in json);
|
|
13
13
|
|
|
14
14
|
/**
|
|
15
15
|
* Type guard to find if the a given decoded backend token uses "after/before" pagination style
|
|
@@ -120,7 +120,7 @@ export const toPage = (token?: Amity.Token): Amity.Page | undefined => {
|
|
|
120
120
|
// don't try catch, let it throw
|
|
121
121
|
const json = JSON.parse(decode(token));
|
|
122
122
|
|
|
123
|
-
if (
|
|
123
|
+
if (isSkip(json)) {
|
|
124
124
|
return {
|
|
125
125
|
after: json.skip,
|
|
126
126
|
limit: json.limit!,
|
|
@@ -133,6 +133,7 @@ export const toPage = (token?: Amity.Token): Amity.Page | undefined => {
|
|
|
133
133
|
limit: json.last,
|
|
134
134
|
} as Amity.PrevPage<number>;
|
|
135
135
|
}
|
|
136
|
+
|
|
136
137
|
if ('after' in json) {
|
|
137
138
|
return {
|
|
138
139
|
after: json.after,
|