@amityco/ts-sdk 6.17.3-e382dbe.0 → 6.18.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 (32) hide show
  1. package/.env +26 -26
  2. package/dist/@types/domains/client.d.ts +1 -1
  3. package/dist/@types/domains/client.d.ts.map +1 -1
  4. package/dist/@types/domains/community.d.ts +1 -3
  5. package/dist/@types/domains/community.d.ts.map +1 -1
  6. package/dist/@types/domains/story.d.ts +3 -3
  7. package/dist/@types/domains/story.d.ts.map +1 -1
  8. package/dist/client/api/accessTokenExpiryWatcher.d.ts +1 -1
  9. package/dist/client/api/accessTokenExpiryWatcher.d.ts.map +1 -1
  10. package/dist/client/api/login.d.ts.map +1 -1
  11. package/dist/client/api/renewal.d.ts.map +1 -1
  12. package/dist/client/utils/setClientToken.d.ts.map +1 -1
  13. package/dist/index.cjs.js +35 -26
  14. package/dist/index.esm.js +35 -26
  15. package/dist/index.umd.js +2 -2
  16. package/dist/storyRepository/observers/getGlobalStoryTargets/GlobalStoryLiveCollectionController.d.ts.map +1 -1
  17. package/dist/storyRepository/utils/StoryComputedValue.d.ts +0 -2
  18. package/dist/storyRepository/utils/StoryComputedValue.d.ts.map +1 -1
  19. package/dist/storyRepository/utils/convertStoryPayloadToRaw.d.ts.map +1 -1
  20. package/dist/utils/linkedObject/storyTargetLinkedObject.d.ts.map +1 -1
  21. package/package.json +1 -1
  22. package/src/@types/domains/client.ts +1 -5
  23. package/src/@types/domains/community.ts +2 -3
  24. package/src/@types/domains/story.ts +5 -3
  25. package/src/client/api/accessTokenExpiryWatcher.ts +7 -2
  26. package/src/client/api/login.ts +1 -5
  27. package/src/client/api/renewal.ts +2 -5
  28. package/src/client/utils/setClientToken.ts +0 -2
  29. package/src/storyRepository/observers/getGlobalStoryTargets/GlobalStoryLiveCollectionController.ts +7 -8
  30. package/src/storyRepository/utils/StoryComputedValue.ts +0 -8
  31. package/src/storyRepository/utils/convertStoryPayloadToRaw.ts +23 -0
  32. package/src/utils/linkedObject/storyTargetLinkedObject.ts +0 -1
@@ -1 +1 @@
1
- {"version":3,"file":"GlobalStoryLiveCollectionController.d.ts","sourceRoot":"","sources":["../../../../src/storyRepository/observers/getGlobalStoryTargets/GlobalStoryLiveCollectionController.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,wBAAwB,EAAE,MAAM,gDAAgD,CAAC;AAU1F,OAAO,EAAE,yBAAyB,EAAE,MAAM,6BAA6B,CAAC;AAQxE,qBAAa,mCAAoC,SAAQ,wBAAwB,CAC/E,iBAAiB,EACjB,KAAK,CAAC,gBAAgB,EACtB,KAAK,CAAC,WAAW,EACjB,yBAAyB,CAC1B;IACC,OAAO,CAAC,qBAAqB,CAAmC;IAEhE,OAAO,CAAC,KAAK,CAAyB;gBAGpC,KAAK,EAAE,KAAK,CAAC,gBAAgB,EAC7B,QAAQ,EAAE,KAAK,CAAC,sBAAsB,CAAC,KAAK,CAAC,WAAW,CAAC;IAsB3D,SAAS,CAAC,KAAK;IAUf,SAAS,CAAC,YAAY,CAAC,QAAQ,EAAE,KAAK,CAAC,sBAAsB;IAI7D,SAAS,CAAC,kBAAkB,CAAC,EAC3B,QAAQ,EACR,SAAS,EACT,OAAO,GACR,EAAE,KAAK,CAAC,sCAAsC,CAAC,iBAAiB,CAAC;IAIlE,YAAY,CAAC,EAAE,MAAM,EAAE,OAAO,EAAE,KAAK,EAAE,EAAE,KAAK,CAAC,0BAA0B;IAyBzE,OAAO,CAAC,WAAW;IAuCnB,iBAAiB;CAalB"}
1
+ {"version":3,"file":"GlobalStoryLiveCollectionController.d.ts","sourceRoot":"","sources":["../../../../src/storyRepository/observers/getGlobalStoryTargets/GlobalStoryLiveCollectionController.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,wBAAwB,EAAE,MAAM,gDAAgD,CAAC;AAU1F,OAAO,EAAE,yBAAyB,EAAE,MAAM,6BAA6B,CAAC;AAQxE,qBAAa,mCAAoC,SAAQ,wBAAwB,CAC/E,iBAAiB,EACjB,KAAK,CAAC,gBAAgB,EACtB,KAAK,CAAC,WAAW,EACjB,yBAAyB,CAC1B;IACC,OAAO,CAAC,qBAAqB,CAAmC;IAEhE,OAAO,CAAC,KAAK,CAAyB;gBAGpC,KAAK,EAAE,KAAK,CAAC,gBAAgB,EAC7B,QAAQ,EAAE,KAAK,CAAC,sBAAsB,CAAC,KAAK,CAAC,WAAW,CAAC;IAsB3D,SAAS,CAAC,KAAK;IAUf,SAAS,CAAC,YAAY,CAAC,QAAQ,EAAE,KAAK,CAAC,sBAAsB;IAI7D,SAAS,CAAC,kBAAkB,CAAC,EAC3B,QAAQ,EACR,SAAS,EACT,OAAO,GACR,EAAE,KAAK,CAAC,sCAAsC,CAAC,iBAAiB,CAAC;IAIlE,YAAY,CAAC,EAAE,MAAM,EAAE,OAAO,EAAE,KAAK,EAAE,EAAE,KAAK,CAAC,0BAA0B;IA6BzE,OAAO,CAAC,WAAW;IAkCnB,iBAAiB;CAalB"}
@@ -5,7 +5,6 @@ export declare class StoryComputedValue {
5
5
  private cacheStoryExpireTime?;
6
6
  private cacheStoreSeenTime?;
7
7
  private _syncingStoriesCount;
8
- private _syncedStoriesCount;
9
8
  private _errorStoriesCount;
10
9
  constructor(targetId: string, lastStoryExpiresAt?: Amity.timestamp, lastStorySeenExpiresAt?: Amity.timestamp);
11
10
  get lastStoryExpiresAt(): number;
@@ -16,7 +15,6 @@ export declare class StoryComputedValue {
16
15
  getLocalLastSortingDate(): number;
17
16
  getHasUnseenFlag(): boolean;
18
17
  getTotalStoryByStatus(): void;
19
- get syncedStoriesCount(): number;
20
18
  get syncingStoriesCount(): number;
21
19
  get failedStoriesCount(): number;
22
20
  }
@@ -1 +1 @@
1
- {"version":3,"file":"StoryComputedValue.d.ts","sourceRoot":"","sources":["../../../src/storyRepository/utils/StoryComputedValue.ts"],"names":[],"mappings":"AAGA,qBAAa,kBAAkB;IAC7B,OAAO,CAAC,QAAQ,CAAC,SAAS,CAAS;IAEnC,OAAO,CAAC,QAAQ,CAAC,mBAAmB,CAAC,CAAkB;IAEvD,OAAO,CAAC,QAAQ,CAAC,uBAAuB,CAAC,CAAkB;IAE3D,OAAO,CAAC,oBAAoB,CAAC,CAAgC;IAE7D,OAAO,CAAC,kBAAkB,CAAC,CAAgC;IAE3D,OAAO,CAAC,oBAAoB,CAAK;IAEjC,OAAO,CAAC,mBAAmB,CAAK;IAEhC,OAAO,CAAC,kBAAkB,CAAK;gBAG7B,QAAQ,EAAE,MAAM,EAChB,kBAAkB,CAAC,EAAE,KAAK,CAAC,SAAS,EACpC,sBAAsB,CAAC,EAAE,KAAK,CAAC,SAAS;IAqB1C,IAAI,kBAAkB,IAAI,MAAM,CAE/B;IAED,IAAI,sBAAsB,IAAI,MAAM,CAEnC;IAED,IAAI,qBAAqB,IAAI,MAAM,CAIlC;IAED,IAAI,2BAA2B,IAAI,MAAM,CAExC;IAED,IAAI,sBAAsB,IAAI,OAAO,CASpC;IAED,uBAAuB,IAAI,MAAM;IAQjC,gBAAgB,IAAI,OAAO;IAiB3B,qBAAqB,IAAI,IAAI;IAkC7B,IAAI,kBAAkB,IAAI,MAAM,CAE/B;IAED,IAAI,mBAAmB,IAAI,MAAM,CAEhC;IAED,IAAI,kBAAkB,IAAI,MAAM,CAE/B;CACF"}
1
+ {"version":3,"file":"StoryComputedValue.d.ts","sourceRoot":"","sources":["../../../src/storyRepository/utils/StoryComputedValue.ts"],"names":[],"mappings":"AAGA,qBAAa,kBAAkB;IAC7B,OAAO,CAAC,QAAQ,CAAC,SAAS,CAAS;IAEnC,OAAO,CAAC,QAAQ,CAAC,mBAAmB,CAAC,CAAkB;IAEvD,OAAO,CAAC,QAAQ,CAAC,uBAAuB,CAAC,CAAkB;IAE3D,OAAO,CAAC,oBAAoB,CAAC,CAAgC;IAE7D,OAAO,CAAC,kBAAkB,CAAC,CAAgC;IAE3D,OAAO,CAAC,oBAAoB,CAAK;IAEjC,OAAO,CAAC,kBAAkB,CAAK;gBAG7B,QAAQ,EAAE,MAAM,EAChB,kBAAkB,CAAC,EAAE,KAAK,CAAC,SAAS,EACpC,sBAAsB,CAAC,EAAE,KAAK,CAAC,SAAS;IAqB1C,IAAI,kBAAkB,IAAI,MAAM,CAE/B;IAED,IAAI,sBAAsB,IAAI,MAAM,CAEnC;IAED,IAAI,qBAAqB,IAAI,MAAM,CAIlC;IAED,IAAI,2BAA2B,IAAI,MAAM,CAExC;IAED,IAAI,sBAAsB,IAAI,OAAO,CASpC;IAED,uBAAuB,IAAI,MAAM;IAQjC,gBAAgB,IAAI,OAAO;IAiB3B,qBAAqB,IAAI,IAAI;IAgC7B,IAAI,mBAAmB,IAAI,MAAM,CAEhC;IAED,IAAI,kBAAkB,IAAI,MAAM,CAE/B;CACF"}
@@ -1 +1 @@
1
- {"version":3,"file":"convertStoryPayloadToRaw.d.ts","sourceRoot":"","sources":["../../../src/storyRepository/utils/convertStoryPayloadToRaw.ts"],"names":[],"mappings":"AAGA,eAAO,MAAM,wBAAwB,YAC1B,MAAM,kBAAkB,KAChC,MAAM,0BAsCR,CAAC"}
1
+ {"version":3,"file":"convertStoryPayloadToRaw.d.ts","sourceRoot":"","sources":["../../../src/storyRepository/utils/convertStoryPayloadToRaw.ts"],"names":[],"mappings":"AAMA,eAAO,MAAM,wBAAwB,YAC1B,MAAM,kBAAkB,KAChC,MAAM,0BA0DR,CAAC"}
@@ -1 +1 @@
1
- {"version":3,"file":"storyTargetLinkedObject.d.ts","sourceRoot":"","sources":["../../../src/utils/linkedObject/storyTargetLinkedObject.ts"],"names":[],"mappings":"AAEA,eAAO,MAAM,uBAAuB,gBAAiB,MAAM,cAAc,KAAG,MAAM,WAiCjF,CAAC"}
1
+ {"version":3,"file":"storyTargetLinkedObject.d.ts","sourceRoot":"","sources":["../../../src/utils/linkedObject/storyTargetLinkedObject.ts"],"names":[],"mappings":"AAEA,eAAO,MAAM,uBAAuB,gBAAiB,MAAM,cAAc,KAAG,MAAM,WAgCjF,CAAC"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@amityco/ts-sdk",
3
- "version": "6.17.3-e382dbe.0",
3
+ "version": "6.18.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",
@@ -58,11 +58,7 @@ declare global {
58
58
 
59
59
  use: () => void;
60
60
 
61
- accessTokenExpiryWatcher: (
62
- expiresAt: Amity.Tokens['expiresAt'],
63
- issuedAt: Amity.Tokens['issuedAt'],
64
- sessionHandler: Amity.SessionHandler,
65
- ) => Amity.Unsubscriber;
61
+ accessTokenExpiryWatcher: (sessionHandler: Amity.SessionHandler) => Amity.Unsubscriber;
66
62
 
67
63
  getFeedSettings: () => Promise<Amity.FeedSettings>;
68
64
  getSocialSettings: () => Promise<Amity.SocialSettings>;
@@ -61,6 +61,8 @@ declare global {
61
61
 
62
62
  hasFlaggedComment: boolean;
63
63
  hasFlaggedPost: boolean;
64
+
65
+ allowCommentInStory?: boolean;
64
66
  } & Amity.Taggable &
65
67
  Amity.Metadata &
66
68
  Amity.Timestamps &
@@ -70,9 +72,6 @@ declare global {
70
72
  type Community = Omit<Amity.RawCommunity, 'onlyAdminCanPost' | 'needApprovalOnPostCreation'> &
71
73
  Amity.CommunityStorySettings & {
72
74
  postSetting?: ValueOf<typeof CommunityPostSettings>;
73
- storySetting?: {
74
- enableComment: boolean;
75
- };
76
75
  };
77
76
 
78
77
  type QueryCommunities = {
@@ -48,12 +48,14 @@ declare global {
48
48
  };
49
49
 
50
50
  type RawStoryTarget = {
51
- lastStoryExpiresAt?: Amity.timestamp;
52
- lastStorySeenExpiresAt?: Amity.timestamp;
53
51
  targetId: string;
54
52
  targetType: string;
55
53
  targetPublicId: string;
56
54
  targetUpdatedAt: Amity.timestamp;
55
+
56
+ lastStoryExpiresAt?: Amity.timestamp;
57
+ lastStorySeenExpiresAt?: Amity.timestamp;
58
+
57
59
  localFilter?: Amity.StorySeenQuery;
58
60
  };
59
61
 
@@ -82,7 +84,6 @@ declare global {
82
84
  localSortingDate: number;
83
85
  localFilter?: Amity.StorySeenQuery;
84
86
 
85
- syncedStoriesCount: number;
86
87
  syncingStoriesCount: number;
87
88
  failedStoriesCount: number;
88
89
  };
@@ -119,6 +120,7 @@ declare global {
119
120
  markAsSeen: () => void;
120
121
  markLinkAsClicked: () => void;
121
122
  };
123
+ creator?: Amity.User;
122
124
  storyTarget?: Amity.StoryTarget;
123
125
  community?: Amity.Community;
124
126
  communityCategories?: Amity.Category[];
@@ -3,6 +3,7 @@ import { scheduleTask } from '~/core/microtasks';
3
3
  import { MINUTE, ACCESS_TOKEN_WATCHER_INTERVAL } from '~/utils/constants';
4
4
 
5
5
  import { renewal } from './renewal';
6
+ import { getActiveClient } from './activeClient';
6
7
 
7
8
  const ABOUT_TO_EXPIRE_THRESHOLD = 80 / 100;
8
9
  const COMPENSATED_DELAY = 5 * MINUTE;
@@ -50,11 +51,15 @@ export const isAboutToExpire = (params: {
50
51
  * @category private
51
52
  */
52
53
  export const accessTokenExpiryWatcher = (
53
- expiresAt: Amity.Tokens['expiresAt'],
54
- issuedAt: Amity.Tokens['issuedAt'],
55
54
  sessionHandler: Amity.SessionHandler,
56
55
  ): Amity.Unsubscriber => {
57
56
  const interval: ReturnType<typeof setInterval> = setInterval(() => {
57
+ const client = getActiveClient();
58
+
59
+ if (!client.token) return;
60
+
61
+ const { issuedAt, expiresAt } = client.token;
62
+
58
63
  if (isExpired(expiresAt)) {
59
64
  /*
60
65
  * the event handler will take care of updating session state
@@ -132,11 +132,7 @@ export const login = async (
132
132
  * Cannot push to subscriptions as watcher needs to continue working even if
133
133
  * token expires
134
134
  */
135
- unsubWatcher = client.accessTokenExpiryWatcher(
136
- client.token?.expiresAt!,
137
- client.token?.issuedAt!,
138
- sessionHandler!,
139
- );
135
+ unsubWatcher = client.accessTokenExpiryWatcher(sessionHandler);
140
136
 
141
137
  setActiveUser(user);
142
138
  } catch (error) {
@@ -35,14 +35,11 @@ export const renewal = (): Amity.AccessTokenRenewal => {
35
35
 
36
36
  const params = { userId, displayName, authToken, deviceId };
37
37
 
38
- if (client.sessionState === Amity.SessionStates.TOKEN_EXPIRED) {
39
- // sessionHandler will never be empty when renewal is instantiatied
40
- await login(params, client.sessionHandler!);
38
+ if (client.sessionState === Amity.SessionStates.TOKEN_EXPIRED && client.sessionHandler) {
39
+ await login(params, client.sessionHandler);
41
40
  } else {
42
41
  // about to expire
43
42
 
44
- // @ts-ignore: in that particular case, typing can be
45
- // ignored since we enforce default values just before.
46
43
  await refreshToken(params);
47
44
  }
48
45
 
@@ -19,8 +19,6 @@ export const setClientToken = async (params: Parameters<typeof getToken>[0]) =>
19
19
  // begin establishing session
20
20
  setSessionState(Amity.SessionStates.ESTABLISHING);
21
21
 
22
- // @ts-ignore: in that particular case, typing can be
23
- // ignored since we enforce default values just before.
24
22
  const { accessToken, users, expiresAt, issuedAt, refreshToken } = await getToken(params);
25
23
 
26
24
  // manually setup the token for http transport
@@ -87,7 +87,11 @@ export class GlobalStoryLiveCollectionController extends LiveCollectionControlle
87
87
 
88
88
  if (!this.shouldNotify(data) && origin === 'event') return;
89
89
 
90
- data = this.applyFilter(data);
90
+ data = this.applyFilter(data)
91
+ // Remove internal fields
92
+ .map(
93
+ ({ localFilter, localLastExpires, localLastSeen, localSortingDate, ...rest }) => rest,
94
+ ) as Amity.StoryTarget[];
91
95
 
92
96
  this.callback({
93
97
  onNextPage: () => this.loadPage(false, Amity.LiveCollectionPageDirection.NEXT),
@@ -98,7 +102,7 @@ export class GlobalStoryLiveCollectionController extends LiveCollectionControlle
98
102
  });
99
103
  }
100
104
 
101
- private applyFilter(data: Amity.StoryTarget[]) {
105
+ private applyFilter(data: Amity.StoryTarget[]): Amity.StoryTarget[] {
102
106
  if (this.query.seenState !== Amity.StorySeenQuery.SMART) {
103
107
  return data
104
108
  .filter(({ hasUnseen }) => {
@@ -129,12 +133,7 @@ export class GlobalStoryLiveCollectionController extends LiveCollectionControlle
129
133
  const sortedSeen = result.seen.sort(sortByLocalSortingDate) || [];
130
134
 
131
135
  // Merge all status and remove internal fields
132
- return sortedUnknown
133
- .concat(sortedUnseen, sortedSeen)
134
- .map(
135
- ({ localFilter, localLastExpires, localLastSeen, localSortingDate, ...rest }) =>
136
- rest as Amity.StoryTarget,
137
- );
136
+ return sortedUnknown.concat(sortedUnseen, sortedSeen);
138
137
  }
139
138
 
140
139
  startSubscription() {
@@ -14,8 +14,6 @@ export class StoryComputedValue {
14
14
 
15
15
  private _syncingStoriesCount = 0;
16
16
 
17
- private _syncedStoriesCount = 0;
18
-
19
17
  private _errorStoriesCount = 0;
20
18
 
21
19
  constructor(
@@ -101,7 +99,6 @@ export class StoryComputedValue {
101
99
 
102
100
  if (!stories) {
103
101
  this._errorStoriesCount = 0;
104
- this._syncedStoriesCount = 0;
105
102
  this._syncingStoriesCount = 0;
106
103
  return;
107
104
  }
@@ -126,14 +123,9 @@ export class StoryComputedValue {
126
123
  );
127
124
 
128
125
  this._errorStoriesCount = groupByType.error;
129
- this._syncedStoriesCount = groupByType.synced;
130
126
  this._syncingStoriesCount = groupByType.syncing;
131
127
  }
132
128
 
133
- get syncedStoriesCount(): number {
134
- return this._syncedStoriesCount;
135
- }
136
-
137
129
  get syncingStoriesCount(): number {
138
130
  return this._syncingStoriesCount;
139
131
  }
@@ -1,5 +1,8 @@
1
1
  import { getActiveClient } from '~/client';
2
2
  import { YEAR } from '~/utils/constants';
3
+ import { pullFromCache } from '~/cache/api';
4
+ import { STORY_KEY_CACHE } from '~/storyRepository/constants';
5
+ import { ingestInCache } from '~/cache/api/ingestInCache';
3
6
 
4
7
  export const convertStoryPayloadToRaw = (
5
8
  payload: Amity.StoryCreatePayload,
@@ -8,6 +11,26 @@ export const convertStoryPayloadToRaw = (
8
11
 
9
12
  const now = new Date();
10
13
  const expiresAt = now.getTime() + YEAR;
14
+ const expiresAtDate = new Date(expiresAt).toISOString();
15
+
16
+ let storyTarget = pullFromCache<Amity.RawStoryTarget>([
17
+ STORY_KEY_CACHE.STORY_TARGET,
18
+ 'get',
19
+ payload.targetId,
20
+ ])?.data;
21
+
22
+ if (!storyTarget) {
23
+ // Save mock story target to cache
24
+ storyTarget = {
25
+ targetType: payload.targetType,
26
+ targetId: payload.targetId,
27
+ lastStoryExpiresAt: expiresAtDate,
28
+ targetPublicId: payload.targetId,
29
+ targetUpdatedAt: now.toISOString(),
30
+ };
31
+
32
+ ingestInCache({ storyTargets: [storyTarget] });
33
+ }
11
34
 
12
35
  return {
13
36
  stories: [
@@ -24,7 +24,6 @@ export const storyTargetLinkedObject = (storyTarget: Amity.RawStoryTarget): Amit
24
24
 
25
25
  // Additional data
26
26
  hasUnseen: computedValue.getHasUnseenFlag(),
27
- syncedStoriesCount: computedValue.syncedStoriesCount,
28
27
  syncingStoriesCount: computedValue.syncingStoriesCount,
29
28
  failedStoriesCount: computedValue.failedStoriesCount,
30
29