@amityco/ts-sdk 6.34.0 → 6.34.1-cb91336.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.
- package/.env +26 -26
- package/dist/index.cjs.js +101 -4
- package/dist/index.esm.js +101 -4
- package/dist/index.umd.js +1 -1
- package/dist/storyRepository/api/createImageStory.d.ts.map +1 -1
- package/dist/storyRepository/api/createVideoStory.d.ts.map +1 -1
- package/dist/storyRepository/internalApi/deleteStory.d.ts.map +1 -1
- package/dist/storyRepository/observers/getActiveStoriesByTarget.d.ts.map +1 -1
- package/dist/storyRepository/observers/getGlobalStoryTargets/GlobalStoryLiveCollectionController.d.ts.map +1 -1
- package/dist/storyRepository/utils/createOptimisticTarget.d.ts +5 -0
- package/dist/storyRepository/utils/createOptimisticTarget.d.ts.map +1 -0
- package/package.json +1 -1
- package/src/storyRepository/api/createImageStory.ts +3 -0
- package/src/storyRepository/api/createVideoStory.ts +3 -0
- package/src/storyRepository/internalApi/deleteStory.ts +74 -0
- package/src/storyRepository/observers/getActiveStoriesByTarget.ts +16 -1
- package/src/storyRepository/observers/getGlobalStoryTargets/GlobalStoryLiveCollectionController.ts +14 -2
- package/src/storyRepository/utils/StoryComputedValue.ts +2 -2
- package/src/storyRepository/utils/createOptimisticTarget.ts +46 -0
package/.env
CHANGED
|
@@ -1,28 +1,28 @@
|
|
|
1
1
|
LIVE_STREAM_KEY='-----BEGIN PRIVATE KEY-----
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
2
|
+
MIIEvwIBADANBgkqhkiG9w0BAQEFAASCBKkwggSlAgEAAoIBAQDAARz+hmBgi8pJ
|
|
3
|
+
Qb8LeY41gtHhk+ACMwRfhsn7GqpqRQNG2qU0755mzZuVDUqjQMGSo8THJB7O+OJs
|
|
4
|
+
flbZRkFXlFoFOVNw1UpNOgwEQZ6wB9oRwzepTJAfF1sVhm/o/ixvXh1zDFNDy6yZ
|
|
5
|
+
pXyiiJHUVxqyjllZhxnwdvjoVtDs6hW6awG09bB9nh/TTejlUKXoAgzqVwu/1QMu
|
|
6
|
+
UVViET495elEe19aUarEy+oL2iKeXCEvqda/pWNBdbieFyJvvZ08HN8dPuT88wq2
|
|
7
|
+
jZLEAth1vrwQ2IAa4ktaLcBQdLJgIkrbDvAiVZ8lQAjS/bq5vXQikTGvoPlC5bbn
|
|
8
|
+
vuOM/3eLAgMBAAECggEAVZ+peHAghq2QVj71nX5lxsNCKaCyYwixSJBpfouTt7Rz
|
|
9
|
+
E6PpzMOXFi1W1o+I22jDakuSM2SOQKqI/u0QefB0r0O/KVk5NrZHXk0mkrdYtxOp
|
|
10
|
+
UgaGyf8UvmjB+8VqHrNKyZdk9qtmbnNj01kTTcAtmE4H39zPR7eR/8Rul94vaZbs
|
|
11
|
+
wCnKJS3mLT3JxyGug6lxanveKkjG+CKC1nJQYWaxCJxaFSzbwXQPvDhB+TvrIbee
|
|
12
|
+
pd5v4EAyEJohpr+T9oDGGJkb/KARBZCtwLyB976PKJwwBA8MRVL1i5QwawuMiMq5
|
|
13
|
+
UtnOnbGKtCeFzaLbNU0Qi8bqyims84EQxC6DOu1fkQKBgQDdvsoBsEhsOXV7hlIJ
|
|
14
|
+
aEd0eSJZVkdqimxH8uGoMM2FeNaOrcB6yBXqTSP0R3OIyf8eaY6yjRvP30ZNXcll
|
|
15
|
+
/gD3O1Mu6YmWQdt1W2WA6pKOsUuPXasf0pdOF7IiFZKlSabz5YHXFqwVuqm8loaj
|
|
16
|
+
sXel3YWqPVdHiankE7tz+3ssnQKBgQDdqi4TNdD1MdEpihx19jr0QjUiXW3939FK
|
|
17
|
+
qp30HESPEGDGQzXdmJgif9HhZb+cJSuWaHEbjgBrYahvgCF+y6LbEpOD+D/dmT+s
|
|
18
|
+
DEAQaR84sah6dokwPjV8fjBSrcVFjCS+doxv0d3p/9OUEeyUhFrY03nxtIEYkLIE
|
|
19
|
+
/Zvn37b4RwKBgQCLENVFe9XfsaVhQ5r9dV2iyTlmh7qgMZG5CbTFs12hQGhm8McO
|
|
20
|
+
+Z7s41YSJCFr/yq1WwP4LJDtrBw99vyQr1zRsG35tNLp3gGRNzGQSQyC2uQFVHw2
|
|
21
|
+
p+7mNewsfhUK/gbrXNsyFnDz6635rPlhfbII3sWuP2wWXFqkxE9CbMwR7QKBgQC6
|
|
22
|
+
awDMzxmo2/iYArrkyevSuEuPVxvFwpF1RgAI6C0QVCnPE38dmdN4UB7mfHekje4W
|
|
23
|
+
VEercMURidPp0cxZolCYBQtilUjAyL0vqC3In1/Ogjq6oy3FEMxSop1pKxMY5j+Q
|
|
24
|
+
noqFD+6deLUrddeNH7J3X4LSr4dSbX4JjG+tlgt+yQKBgQCuwTL4hA6KqeInQ0Ta
|
|
25
|
+
9VQX5Qr8hFlqJz1gpymi/k63tW/Ob8yedbg3WWNWyShwRMFYyY9S81ITFWM95uL6
|
|
26
|
+
vF3x9rmRjwElJw9PMwVu6dmf/CO0Z1wzXSp2VVD12gbrUD/0/d7MUoJ9LgC8X8f/
|
|
27
|
+
n0txLHYGHbx+nf95+JUg6lV3hg==
|
|
28
28
|
-----END PRIVATE KEY-----'
|
package/dist/index.cjs.js
CHANGED
|
@@ -5239,8 +5239,8 @@ class StoryComputedValue {
|
|
|
5239
5239
|
return;
|
|
5240
5240
|
}
|
|
5241
5241
|
const groupByType = stories.reduce((acc, story) => {
|
|
5242
|
-
const { data: { targetId, syncState }, } = story;
|
|
5243
|
-
if (targetId === this._targetId) {
|
|
5242
|
+
const { data: { targetId, syncState, isDeleted }, } = story;
|
|
5243
|
+
if (targetId === this._targetId && !isDeleted) {
|
|
5244
5244
|
acc[syncState] += 1;
|
|
5245
5245
|
}
|
|
5246
5246
|
return acc;
|
|
@@ -25327,7 +25327,7 @@ var index$3 = /*#__PURE__*/Object.freeze({
|
|
|
25327
25327
|
getPoll: getPoll
|
|
25328
25328
|
});
|
|
25329
25329
|
|
|
25330
|
-
const privateKey = "-----BEGIN PRIVATE KEY-----\
|
|
25330
|
+
const privateKey = "-----BEGIN PRIVATE KEY-----\nMIIEvwIBADANBgkqhkiG9w0BAQEFAASCBKkwggSlAgEAAoIBAQDAARz+hmBgi8pJ\nQb8LeY41gtHhk+ACMwRfhsn7GqpqRQNG2qU0755mzZuVDUqjQMGSo8THJB7O+OJs\nflbZRkFXlFoFOVNw1UpNOgwEQZ6wB9oRwzepTJAfF1sVhm/o/ixvXh1zDFNDy6yZ\npXyiiJHUVxqyjllZhxnwdvjoVtDs6hW6awG09bB9nh/TTejlUKXoAgzqVwu/1QMu\nUVViET495elEe19aUarEy+oL2iKeXCEvqda/pWNBdbieFyJvvZ08HN8dPuT88wq2\njZLEAth1vrwQ2IAa4ktaLcBQdLJgIkrbDvAiVZ8lQAjS/bq5vXQikTGvoPlC5bbn\nvuOM/3eLAgMBAAECggEAVZ+peHAghq2QVj71nX5lxsNCKaCyYwixSJBpfouTt7Rz\nE6PpzMOXFi1W1o+I22jDakuSM2SOQKqI/u0QefB0r0O/KVk5NrZHXk0mkrdYtxOp\nUgaGyf8UvmjB+8VqHrNKyZdk9qtmbnNj01kTTcAtmE4H39zPR7eR/8Rul94vaZbs\nwCnKJS3mLT3JxyGug6lxanveKkjG+CKC1nJQYWaxCJxaFSzbwXQPvDhB+TvrIbee\npd5v4EAyEJohpr+T9oDGGJkb/KARBZCtwLyB976PKJwwBA8MRVL1i5QwawuMiMq5\nUtnOnbGKtCeFzaLbNU0Qi8bqyims84EQxC6DOu1fkQKBgQDdvsoBsEhsOXV7hlIJ\naEd0eSJZVkdqimxH8uGoMM2FeNaOrcB6yBXqTSP0R3OIyf8eaY6yjRvP30ZNXcll\n/gD3O1Mu6YmWQdt1W2WA6pKOsUuPXasf0pdOF7IiFZKlSabz5YHXFqwVuqm8loaj\nsXel3YWqPVdHiankE7tz+3ssnQKBgQDdqi4TNdD1MdEpihx19jr0QjUiXW3939FK\nqp30HESPEGDGQzXdmJgif9HhZb+cJSuWaHEbjgBrYahvgCF+y6LbEpOD+D/dmT+s\nDEAQaR84sah6dokwPjV8fjBSrcVFjCS+doxv0d3p/9OUEeyUhFrY03nxtIEYkLIE\n/Zvn37b4RwKBgQCLENVFe9XfsaVhQ5r9dV2iyTlmh7qgMZG5CbTFs12hQGhm8McO\n+Z7s41YSJCFr/yq1WwP4LJDtrBw99vyQr1zRsG35tNLp3gGRNzGQSQyC2uQFVHw2\np+7mNewsfhUK/gbrXNsyFnDz6635rPlhfbII3sWuP2wWXFqkxE9CbMwR7QKBgQC6\nawDMzxmo2/iYArrkyevSuEuPVxvFwpF1RgAI6C0QVCnPE38dmdN4UB7mfHekje4W\nVEercMURidPp0cxZolCYBQtilUjAyL0vqC3In1/Ogjq6oy3FEMxSop1pKxMY5j+Q\nnoqFD+6deLUrddeNH7J3X4LSr4dSbX4JjG+tlgt+yQKBgQCuwTL4hA6KqeInQ0Ta\n9VQX5Qr8hFlqJz1gpymi/k63tW/Ob8yedbg3WWNWyShwRMFYyY9S81ITFWM95uL6\nvF3x9rmRjwElJw9PMwVu6dmf/CO0Z1wzXSp2VVD12gbrUD/0/d7MUoJ9LgC8X8f/\nn0txLHYGHbx+nf95+JUg6lV3hg==\n-----END PRIVATE KEY-----";
|
|
25331
25331
|
/*
|
|
25332
25332
|
* The crypto algorithm used for importing key and signing string
|
|
25333
25333
|
*/
|
|
@@ -25764,6 +25764,30 @@ const createStory = async (payload) => {
|
|
|
25764
25764
|
};
|
|
25765
25765
|
};
|
|
25766
25766
|
|
|
25767
|
+
const createOptimisticTarget = async ({ targetId, targetType, }) => {
|
|
25768
|
+
var _a, _b;
|
|
25769
|
+
const targetCache = pullFromCache([
|
|
25770
|
+
"storyTarget" /* STORY_KEY_CACHE.STORY_TARGET */,
|
|
25771
|
+
'get',
|
|
25772
|
+
targetId,
|
|
25773
|
+
]);
|
|
25774
|
+
if (!targetCache) {
|
|
25775
|
+
let optimisticTarget = {
|
|
25776
|
+
targetId,
|
|
25777
|
+
targetType,
|
|
25778
|
+
};
|
|
25779
|
+
if (targetType === 'community') {
|
|
25780
|
+
const community = await getCommunity$1(targetId);
|
|
25781
|
+
optimisticTarget = Object.assign(Object.assign({}, optimisticTarget), { targetPublicId: community.data.communityId, targetUpdatedAt: (_a = community.data.updatedAt) !== null && _a !== void 0 ? _a : new Date().toISOString() });
|
|
25782
|
+
}
|
|
25783
|
+
if (targetType === 'user') {
|
|
25784
|
+
const user = await getUser$2(targetId);
|
|
25785
|
+
optimisticTarget = Object.assign(Object.assign({}, optimisticTarget), { targetPublicId: user.data.userPublicId, targetUpdatedAt: (_b = user.data.updatedAt) !== null && _b !== void 0 ? _b : new Date().toISOString() });
|
|
25786
|
+
}
|
|
25787
|
+
pushToCache(["storyTarget" /* STORY_KEY_CACHE.STORY_TARGET */, 'get', targetId], optimisticTarget);
|
|
25788
|
+
}
|
|
25789
|
+
};
|
|
25790
|
+
|
|
25767
25791
|
/**
|
|
25768
25792
|
* ```js
|
|
25769
25793
|
* import { StoryRepository } from '@amityco/ts-sdk'
|
|
@@ -25813,6 +25837,7 @@ const createImageStory = async (targetType, targetId, formData, metadata = {}, i
|
|
|
25813
25837
|
throw new Error('Failed to upload image');
|
|
25814
25838
|
const { fileId } = data[0];
|
|
25815
25839
|
payload = Object.assign(Object.assign({}, payload), { data: Object.assign(Object.assign({}, payload.data), { fileId }) });
|
|
25840
|
+
createOptimisticTarget({ targetId, targetType });
|
|
25816
25841
|
// Fire optimistic event - update fileId
|
|
25817
25842
|
createOptimisticEvent({ payload, formData }, optimisticData => {
|
|
25818
25843
|
fireEvent('local.story.created', optimisticData);
|
|
@@ -25866,6 +25891,7 @@ const createVideoStory = async (targetType, targetId, formData, metadata = {}, i
|
|
|
25866
25891
|
pushToCache(["story-sync-state" /* STORY_KEY_CACHE.SYNC_STATE */, targetId], "syncing" /* Amity.SyncState.Syncing */);
|
|
25867
25892
|
// Update local story expires time
|
|
25868
25893
|
pushToCache(["story-expire" /* STORY_KEY_CACHE.EXPIRE */, targetId], new Date(date.setFullYear(date.getFullYear() + 1)));
|
|
25894
|
+
createOptimisticTarget({ targetId, targetType });
|
|
25869
25895
|
// Fire optimistic event
|
|
25870
25896
|
createOptimisticEvent({ payload, formData, isVideo: true }, optimisticData => {
|
|
25871
25897
|
fireEvent('local.story.created', optimisticData);
|
|
@@ -25903,6 +25929,7 @@ const getStoryCache = (storyId) => {
|
|
|
25903
25929
|
};
|
|
25904
25930
|
|
|
25905
25931
|
const deleteStory = async (storyId, permanent = false) => {
|
|
25932
|
+
var _a, _b, _c;
|
|
25906
25933
|
const client = getActiveClient();
|
|
25907
25934
|
client.log('story/deleteStory', storyId);
|
|
25908
25935
|
let cached;
|
|
@@ -25919,6 +25946,57 @@ const deleteStory = async (storyId, permanent = false) => {
|
|
|
25919
25946
|
users: [],
|
|
25920
25947
|
stories: [Object.assign(Object.assign({}, data), { isDeleted: true })],
|
|
25921
25948
|
});
|
|
25949
|
+
/* ------ Unsynced story case ------ */
|
|
25950
|
+
if (data.syncState !== "synced" /* Amity.SyncState.Synced */) {
|
|
25951
|
+
if (permanent) {
|
|
25952
|
+
dropFromCache(["story" /* STORY_KEY_CACHE.STORY */, 'get', storyId]);
|
|
25953
|
+
}
|
|
25954
|
+
else {
|
|
25955
|
+
pushToCache(["story" /* STORY_KEY_CACHE.STORY */, 'get', storyId], Object.assign(Object.assign({}, cached.data), { isDeleted: true }));
|
|
25956
|
+
}
|
|
25957
|
+
const unsyncedStoriesCache = (_a = queryCache([
|
|
25958
|
+
"story" /* STORY_KEY_CACHE.STORY */,
|
|
25959
|
+
'get',
|
|
25960
|
+
])) === null || _a === void 0 ? void 0 : _a.filter(story => story.data.syncState !== "synced" /* Amity.SyncState.Synced */ &&
|
|
25961
|
+
story.data.targetId === data.targetId &&
|
|
25962
|
+
story.data.isDeleted !== true);
|
|
25963
|
+
// update localLastStoryExpiresAt to be the last story expires
|
|
25964
|
+
if (unsyncedStoriesCache && unsyncedStoriesCache.length > 0) {
|
|
25965
|
+
const lastStoryExpires = unsyncedStoriesCache.reduce((acc, story) => {
|
|
25966
|
+
const expireAt = new Date(story.data.expiresAt || 0);
|
|
25967
|
+
return expireAt > acc ? expireAt : acc;
|
|
25968
|
+
}, new Date(0));
|
|
25969
|
+
pushToCache(["story-expire" /* STORY_KEY_CACHE.EXPIRE */, cached.data.targetId], lastStoryExpires.toISOString());
|
|
25970
|
+
}
|
|
25971
|
+
else {
|
|
25972
|
+
// if no unsynced stories, remove last story expires since there is no more story
|
|
25973
|
+
dropFromCache(["story-expire" /* STORY_KEY_CACHE.EXPIRE */, cached.data.targetId]);
|
|
25974
|
+
}
|
|
25975
|
+
return true;
|
|
25976
|
+
}
|
|
25977
|
+
/* ------ Synced story case ------ */
|
|
25978
|
+
const targetCache = (_b = pullFromCache([
|
|
25979
|
+
"storyTarget" /* STORY_KEY_CACHE.STORY_TARGET */,
|
|
25980
|
+
'get',
|
|
25981
|
+
data.targetId,
|
|
25982
|
+
])) === null || _b === void 0 ? void 0 : _b.data;
|
|
25983
|
+
const syncedStoriesCache = (_c = queryCache([
|
|
25984
|
+
"story" /* STORY_KEY_CACHE.STORY */,
|
|
25985
|
+
'get',
|
|
25986
|
+
])) === null || _c === void 0 ? void 0 : _c.filter(story => story.data.syncState === "synced" /* Amity.SyncState.Synced */ &&
|
|
25987
|
+
story.data.targetId === data.targetId &&
|
|
25988
|
+
story.data.isDeleted !== true);
|
|
25989
|
+
let lastStoryExpiresAt;
|
|
25990
|
+
if (syncedStoriesCache && syncedStoriesCache.length > 0) {
|
|
25991
|
+
lastStoryExpiresAt = syncedStoriesCache === null || syncedStoriesCache === void 0 ? void 0 : syncedStoriesCache.reduce((acc, story) => {
|
|
25992
|
+
const expireAt = new Date(story.data.expiresAt || 0);
|
|
25993
|
+
return expireAt > acc ? expireAt : acc;
|
|
25994
|
+
}, new Date(0));
|
|
25995
|
+
}
|
|
25996
|
+
// update lastStoryExpiresAt from lastest synced story
|
|
25997
|
+
if (targetCache) {
|
|
25998
|
+
pushToCache(["storyTarget" /* STORY_KEY_CACHE.STORY_TARGET */, 'get', data.targetId], Object.assign(Object.assign({}, targetCache), { lastStoryExpiresAt }));
|
|
25999
|
+
}
|
|
25922
26000
|
}
|
|
25923
26001
|
}
|
|
25924
26002
|
const response = await client.http.delete(`/api/v4/stories/${storyId}`, {
|
|
@@ -26231,6 +26309,7 @@ const getActiveStoriesByTarget = (params, callback) => {
|
|
|
26231
26309
|
});
|
|
26232
26310
|
};
|
|
26233
26311
|
const processNewData = (result, event, initial = false, loading = false, error = false) => {
|
|
26312
|
+
var _a;
|
|
26234
26313
|
const cached = pullFromCache(cacheKey);
|
|
26235
26314
|
const data = {
|
|
26236
26315
|
loading,
|
|
@@ -26249,6 +26328,14 @@ const getActiveStoriesByTarget = (params, callback) => {
|
|
|
26249
26328
|
: [...new Set([...data.data, ...result.map(getResolver('story'))])];
|
|
26250
26329
|
}
|
|
26251
26330
|
}
|
|
26331
|
+
const unSyncedStories = (_a = queryCache(["story" /* STORY_KEY_CACHE.STORY */, 'get'])) === null || _a === void 0 ? void 0 : _a.filter(story => story.data.targetId === params.targetId &&
|
|
26332
|
+
story.data.syncState !== "synced" /* Amity.SyncState.Synced */).map(story => getResolver('story')(story.data));
|
|
26333
|
+
if (unSyncedStories && (unSyncedStories === null || unSyncedStories === void 0 ? void 0 : unSyncedStories.length) > 0) {
|
|
26334
|
+
unSyncedStories.forEach(referenceId => {
|
|
26335
|
+
if (!data.data.includes(referenceId))
|
|
26336
|
+
data.data.push(referenceId);
|
|
26337
|
+
});
|
|
26338
|
+
}
|
|
26252
26339
|
pushToCache(cacheKey, data.data);
|
|
26253
26340
|
responder(data);
|
|
26254
26341
|
};
|
|
@@ -26680,13 +26767,23 @@ class GlobalStoryLiveCollectionController extends LiveCollectionController {
|
|
|
26680
26767
|
const collection = (_a = pullFromCache(this.cacheKey)) === null || _a === void 0 ? void 0 : _a.data;
|
|
26681
26768
|
if (!collection)
|
|
26682
26769
|
return;
|
|
26683
|
-
|
|
26770
|
+
const targetIds = collection.data;
|
|
26771
|
+
const cachedTargets = queryCache(["storyTarget" /* STORY_KEY_CACHE.STORY_TARGET */]);
|
|
26772
|
+
if (cachedTargets && (cachedTargets === null || cachedTargets === void 0 ? void 0 : cachedTargets.length) > 0) {
|
|
26773
|
+
cachedTargets === null || cachedTargets === void 0 ? void 0 : cachedTargets.forEach(({ key }) => {
|
|
26774
|
+
if (!collection.data.includes(key[2]))
|
|
26775
|
+
targetIds.push(key[2]);
|
|
26776
|
+
});
|
|
26777
|
+
}
|
|
26778
|
+
let data = targetIds
|
|
26684
26779
|
.map(targetId => pullFromCache(["storyTarget" /* STORY_KEY_CACHE.STORY_TARGET */, 'get', targetId]))
|
|
26685
26780
|
.filter(Boolean)
|
|
26686
26781
|
.map(storyTarget => LinkedObject.storyTarget(storyTarget.data));
|
|
26687
26782
|
if (!this.shouldNotify(data) && origin === 'event')
|
|
26688
26783
|
return;
|
|
26689
26784
|
data = this.applyFilter(data)
|
|
26785
|
+
// exclude story targets with invalid stories
|
|
26786
|
+
.filter(({ localSortingDate }) => !!localSortingDate)
|
|
26690
26787
|
// Remove internal fields
|
|
26691
26788
|
.map((_a) => {
|
|
26692
26789
|
var rest = __rest(_a, ["localFilter", "localLastExpires", "localLastSeen", "localSortingDate"]);
|
package/dist/index.esm.js
CHANGED
|
@@ -21331,8 +21331,8 @@ class StoryComputedValue {
|
|
|
21331
21331
|
return;
|
|
21332
21332
|
}
|
|
21333
21333
|
const groupByType = stories.reduce((acc, story) => {
|
|
21334
|
-
const { data: { targetId, syncState }, } = story;
|
|
21335
|
-
if (targetId === this._targetId) {
|
|
21334
|
+
const { data: { targetId, syncState, isDeleted }, } = story;
|
|
21335
|
+
if (targetId === this._targetId && !isDeleted) {
|
|
21336
21336
|
acc[syncState] += 1;
|
|
21337
21337
|
}
|
|
21338
21338
|
return acc;
|
|
@@ -41419,7 +41419,7 @@ var index$3 = /*#__PURE__*/Object.freeze({
|
|
|
41419
41419
|
getPoll: getPoll
|
|
41420
41420
|
});
|
|
41421
41421
|
|
|
41422
|
-
const privateKey = "-----BEGIN PRIVATE KEY-----\
|
|
41422
|
+
const privateKey = "-----BEGIN PRIVATE KEY-----\nMIIEvwIBADANBgkqhkiG9w0BAQEFAASCBKkwggSlAgEAAoIBAQDAARz+hmBgi8pJ\nQb8LeY41gtHhk+ACMwRfhsn7GqpqRQNG2qU0755mzZuVDUqjQMGSo8THJB7O+OJs\nflbZRkFXlFoFOVNw1UpNOgwEQZ6wB9oRwzepTJAfF1sVhm/o/ixvXh1zDFNDy6yZ\npXyiiJHUVxqyjllZhxnwdvjoVtDs6hW6awG09bB9nh/TTejlUKXoAgzqVwu/1QMu\nUVViET495elEe19aUarEy+oL2iKeXCEvqda/pWNBdbieFyJvvZ08HN8dPuT88wq2\njZLEAth1vrwQ2IAa4ktaLcBQdLJgIkrbDvAiVZ8lQAjS/bq5vXQikTGvoPlC5bbn\nvuOM/3eLAgMBAAECggEAVZ+peHAghq2QVj71nX5lxsNCKaCyYwixSJBpfouTt7Rz\nE6PpzMOXFi1W1o+I22jDakuSM2SOQKqI/u0QefB0r0O/KVk5NrZHXk0mkrdYtxOp\nUgaGyf8UvmjB+8VqHrNKyZdk9qtmbnNj01kTTcAtmE4H39zPR7eR/8Rul94vaZbs\nwCnKJS3mLT3JxyGug6lxanveKkjG+CKC1nJQYWaxCJxaFSzbwXQPvDhB+TvrIbee\npd5v4EAyEJohpr+T9oDGGJkb/KARBZCtwLyB976PKJwwBA8MRVL1i5QwawuMiMq5\nUtnOnbGKtCeFzaLbNU0Qi8bqyims84EQxC6DOu1fkQKBgQDdvsoBsEhsOXV7hlIJ\naEd0eSJZVkdqimxH8uGoMM2FeNaOrcB6yBXqTSP0R3OIyf8eaY6yjRvP30ZNXcll\n/gD3O1Mu6YmWQdt1W2WA6pKOsUuPXasf0pdOF7IiFZKlSabz5YHXFqwVuqm8loaj\nsXel3YWqPVdHiankE7tz+3ssnQKBgQDdqi4TNdD1MdEpihx19jr0QjUiXW3939FK\nqp30HESPEGDGQzXdmJgif9HhZb+cJSuWaHEbjgBrYahvgCF+y6LbEpOD+D/dmT+s\nDEAQaR84sah6dokwPjV8fjBSrcVFjCS+doxv0d3p/9OUEeyUhFrY03nxtIEYkLIE\n/Zvn37b4RwKBgQCLENVFe9XfsaVhQ5r9dV2iyTlmh7qgMZG5CbTFs12hQGhm8McO\n+Z7s41YSJCFr/yq1WwP4LJDtrBw99vyQr1zRsG35tNLp3gGRNzGQSQyC2uQFVHw2\np+7mNewsfhUK/gbrXNsyFnDz6635rPlhfbII3sWuP2wWXFqkxE9CbMwR7QKBgQC6\nawDMzxmo2/iYArrkyevSuEuPVxvFwpF1RgAI6C0QVCnPE38dmdN4UB7mfHekje4W\nVEercMURidPp0cxZolCYBQtilUjAyL0vqC3In1/Ogjq6oy3FEMxSop1pKxMY5j+Q\nnoqFD+6deLUrddeNH7J3X4LSr4dSbX4JjG+tlgt+yQKBgQCuwTL4hA6KqeInQ0Ta\n9VQX5Qr8hFlqJz1gpymi/k63tW/Ob8yedbg3WWNWyShwRMFYyY9S81ITFWM95uL6\nvF3x9rmRjwElJw9PMwVu6dmf/CO0Z1wzXSp2VVD12gbrUD/0/d7MUoJ9LgC8X8f/\nn0txLHYGHbx+nf95+JUg6lV3hg==\n-----END PRIVATE KEY-----";
|
|
41423
41423
|
/*
|
|
41424
41424
|
* The crypto algorithm used for importing key and signing string
|
|
41425
41425
|
*/
|
|
@@ -41856,6 +41856,30 @@ const createStory = async (payload) => {
|
|
|
41856
41856
|
};
|
|
41857
41857
|
};
|
|
41858
41858
|
|
|
41859
|
+
const createOptimisticTarget = async ({ targetId, targetType, }) => {
|
|
41860
|
+
var _a, _b;
|
|
41861
|
+
const targetCache = pullFromCache([
|
|
41862
|
+
"storyTarget" /* STORY_KEY_CACHE.STORY_TARGET */,
|
|
41863
|
+
'get',
|
|
41864
|
+
targetId,
|
|
41865
|
+
]);
|
|
41866
|
+
if (!targetCache) {
|
|
41867
|
+
let optimisticTarget = {
|
|
41868
|
+
targetId,
|
|
41869
|
+
targetType,
|
|
41870
|
+
};
|
|
41871
|
+
if (targetType === 'community') {
|
|
41872
|
+
const community = await getCommunity$1(targetId);
|
|
41873
|
+
optimisticTarget = Object.assign(Object.assign({}, optimisticTarget), { targetPublicId: community.data.communityId, targetUpdatedAt: (_a = community.data.updatedAt) !== null && _a !== void 0 ? _a : new Date().toISOString() });
|
|
41874
|
+
}
|
|
41875
|
+
if (targetType === 'user') {
|
|
41876
|
+
const user = await getUser$2(targetId);
|
|
41877
|
+
optimisticTarget = Object.assign(Object.assign({}, optimisticTarget), { targetPublicId: user.data.userPublicId, targetUpdatedAt: (_b = user.data.updatedAt) !== null && _b !== void 0 ? _b : new Date().toISOString() });
|
|
41878
|
+
}
|
|
41879
|
+
pushToCache(["storyTarget" /* STORY_KEY_CACHE.STORY_TARGET */, 'get', targetId], optimisticTarget);
|
|
41880
|
+
}
|
|
41881
|
+
};
|
|
41882
|
+
|
|
41859
41883
|
/**
|
|
41860
41884
|
* ```js
|
|
41861
41885
|
* import { StoryRepository } from '@amityco/ts-sdk'
|
|
@@ -41905,6 +41929,7 @@ const createImageStory = async (targetType, targetId, formData, metadata = {}, i
|
|
|
41905
41929
|
throw new Error('Failed to upload image');
|
|
41906
41930
|
const { fileId } = data[0];
|
|
41907
41931
|
payload = Object.assign(Object.assign({}, payload), { data: Object.assign(Object.assign({}, payload.data), { fileId }) });
|
|
41932
|
+
createOptimisticTarget({ targetId, targetType });
|
|
41908
41933
|
// Fire optimistic event - update fileId
|
|
41909
41934
|
createOptimisticEvent({ payload, formData }, optimisticData => {
|
|
41910
41935
|
fireEvent('local.story.created', optimisticData);
|
|
@@ -41958,6 +41983,7 @@ const createVideoStory = async (targetType, targetId, formData, metadata = {}, i
|
|
|
41958
41983
|
pushToCache(["story-sync-state" /* STORY_KEY_CACHE.SYNC_STATE */, targetId], "syncing" /* Amity.SyncState.Syncing */);
|
|
41959
41984
|
// Update local story expires time
|
|
41960
41985
|
pushToCache(["story-expire" /* STORY_KEY_CACHE.EXPIRE */, targetId], new Date(date.setFullYear(date.getFullYear() + 1)));
|
|
41986
|
+
createOptimisticTarget({ targetId, targetType });
|
|
41961
41987
|
// Fire optimistic event
|
|
41962
41988
|
createOptimisticEvent({ payload, formData, isVideo: true }, optimisticData => {
|
|
41963
41989
|
fireEvent('local.story.created', optimisticData);
|
|
@@ -41995,6 +42021,7 @@ const getStoryCache = (storyId) => {
|
|
|
41995
42021
|
};
|
|
41996
42022
|
|
|
41997
42023
|
const deleteStory = async (storyId, permanent = false) => {
|
|
42024
|
+
var _a, _b, _c;
|
|
41998
42025
|
const client = getActiveClient();
|
|
41999
42026
|
client.log('story/deleteStory', storyId);
|
|
42000
42027
|
let cached;
|
|
@@ -42011,6 +42038,57 @@ const deleteStory = async (storyId, permanent = false) => {
|
|
|
42011
42038
|
users: [],
|
|
42012
42039
|
stories: [Object.assign(Object.assign({}, data), { isDeleted: true })],
|
|
42013
42040
|
});
|
|
42041
|
+
/* ------ Unsynced story case ------ */
|
|
42042
|
+
if (data.syncState !== "synced" /* Amity.SyncState.Synced */) {
|
|
42043
|
+
if (permanent) {
|
|
42044
|
+
dropFromCache(["story" /* STORY_KEY_CACHE.STORY */, 'get', storyId]);
|
|
42045
|
+
}
|
|
42046
|
+
else {
|
|
42047
|
+
pushToCache(["story" /* STORY_KEY_CACHE.STORY */, 'get', storyId], Object.assign(Object.assign({}, cached.data), { isDeleted: true }));
|
|
42048
|
+
}
|
|
42049
|
+
const unsyncedStoriesCache = (_a = queryCache([
|
|
42050
|
+
"story" /* STORY_KEY_CACHE.STORY */,
|
|
42051
|
+
'get',
|
|
42052
|
+
])) === null || _a === void 0 ? void 0 : _a.filter(story => story.data.syncState !== "synced" /* Amity.SyncState.Synced */ &&
|
|
42053
|
+
story.data.targetId === data.targetId &&
|
|
42054
|
+
story.data.isDeleted !== true);
|
|
42055
|
+
// update localLastStoryExpiresAt to be the last story expires
|
|
42056
|
+
if (unsyncedStoriesCache && unsyncedStoriesCache.length > 0) {
|
|
42057
|
+
const lastStoryExpires = unsyncedStoriesCache.reduce((acc, story) => {
|
|
42058
|
+
const expireAt = new Date(story.data.expiresAt || 0);
|
|
42059
|
+
return expireAt > acc ? expireAt : acc;
|
|
42060
|
+
}, new Date(0));
|
|
42061
|
+
pushToCache(["story-expire" /* STORY_KEY_CACHE.EXPIRE */, cached.data.targetId], lastStoryExpires.toISOString());
|
|
42062
|
+
}
|
|
42063
|
+
else {
|
|
42064
|
+
// if no unsynced stories, remove last story expires since there is no more story
|
|
42065
|
+
dropFromCache(["story-expire" /* STORY_KEY_CACHE.EXPIRE */, cached.data.targetId]);
|
|
42066
|
+
}
|
|
42067
|
+
return true;
|
|
42068
|
+
}
|
|
42069
|
+
/* ------ Synced story case ------ */
|
|
42070
|
+
const targetCache = (_b = pullFromCache([
|
|
42071
|
+
"storyTarget" /* STORY_KEY_CACHE.STORY_TARGET */,
|
|
42072
|
+
'get',
|
|
42073
|
+
data.targetId,
|
|
42074
|
+
])) === null || _b === void 0 ? void 0 : _b.data;
|
|
42075
|
+
const syncedStoriesCache = (_c = queryCache([
|
|
42076
|
+
"story" /* STORY_KEY_CACHE.STORY */,
|
|
42077
|
+
'get',
|
|
42078
|
+
])) === null || _c === void 0 ? void 0 : _c.filter(story => story.data.syncState === "synced" /* Amity.SyncState.Synced */ &&
|
|
42079
|
+
story.data.targetId === data.targetId &&
|
|
42080
|
+
story.data.isDeleted !== true);
|
|
42081
|
+
let lastStoryExpiresAt;
|
|
42082
|
+
if (syncedStoriesCache && syncedStoriesCache.length > 0) {
|
|
42083
|
+
lastStoryExpiresAt = syncedStoriesCache === null || syncedStoriesCache === void 0 ? void 0 : syncedStoriesCache.reduce((acc, story) => {
|
|
42084
|
+
const expireAt = new Date(story.data.expiresAt || 0);
|
|
42085
|
+
return expireAt > acc ? expireAt : acc;
|
|
42086
|
+
}, new Date(0));
|
|
42087
|
+
}
|
|
42088
|
+
// update lastStoryExpiresAt from lastest synced story
|
|
42089
|
+
if (targetCache) {
|
|
42090
|
+
pushToCache(["storyTarget" /* STORY_KEY_CACHE.STORY_TARGET */, 'get', data.targetId], Object.assign(Object.assign({}, targetCache), { lastStoryExpiresAt }));
|
|
42091
|
+
}
|
|
42014
42092
|
}
|
|
42015
42093
|
}
|
|
42016
42094
|
const response = await client.http.delete(`/api/v4/stories/${storyId}`, {
|
|
@@ -42323,6 +42401,7 @@ const getActiveStoriesByTarget = (params, callback) => {
|
|
|
42323
42401
|
});
|
|
42324
42402
|
};
|
|
42325
42403
|
const processNewData = (result, event, initial = false, loading = false, error = false) => {
|
|
42404
|
+
var _a;
|
|
42326
42405
|
const cached = pullFromCache(cacheKey);
|
|
42327
42406
|
const data = {
|
|
42328
42407
|
loading,
|
|
@@ -42341,6 +42420,14 @@ const getActiveStoriesByTarget = (params, callback) => {
|
|
|
42341
42420
|
: [...new Set([...data.data, ...result.map(getResolver('story'))])];
|
|
42342
42421
|
}
|
|
42343
42422
|
}
|
|
42423
|
+
const unSyncedStories = (_a = queryCache(["story" /* STORY_KEY_CACHE.STORY */, 'get'])) === null || _a === void 0 ? void 0 : _a.filter(story => story.data.targetId === params.targetId &&
|
|
42424
|
+
story.data.syncState !== "synced" /* Amity.SyncState.Synced */).map(story => getResolver('story')(story.data));
|
|
42425
|
+
if (unSyncedStories && (unSyncedStories === null || unSyncedStories === void 0 ? void 0 : unSyncedStories.length) > 0) {
|
|
42426
|
+
unSyncedStories.forEach(referenceId => {
|
|
42427
|
+
if (!data.data.includes(referenceId))
|
|
42428
|
+
data.data.push(referenceId);
|
|
42429
|
+
});
|
|
42430
|
+
}
|
|
42344
42431
|
pushToCache(cacheKey, data.data);
|
|
42345
42432
|
responder(data);
|
|
42346
42433
|
};
|
|
@@ -42772,13 +42859,23 @@ class GlobalStoryLiveCollectionController extends LiveCollectionController {
|
|
|
42772
42859
|
const collection = (_a = pullFromCache(this.cacheKey)) === null || _a === void 0 ? void 0 : _a.data;
|
|
42773
42860
|
if (!collection)
|
|
42774
42861
|
return;
|
|
42775
|
-
|
|
42862
|
+
const targetIds = collection.data;
|
|
42863
|
+
const cachedTargets = queryCache(["storyTarget" /* STORY_KEY_CACHE.STORY_TARGET */]);
|
|
42864
|
+
if (cachedTargets && (cachedTargets === null || cachedTargets === void 0 ? void 0 : cachedTargets.length) > 0) {
|
|
42865
|
+
cachedTargets === null || cachedTargets === void 0 ? void 0 : cachedTargets.forEach(({ key }) => {
|
|
42866
|
+
if (!collection.data.includes(key[2]))
|
|
42867
|
+
targetIds.push(key[2]);
|
|
42868
|
+
});
|
|
42869
|
+
}
|
|
42870
|
+
let data = targetIds
|
|
42776
42871
|
.map(targetId => pullFromCache(["storyTarget" /* STORY_KEY_CACHE.STORY_TARGET */, 'get', targetId]))
|
|
42777
42872
|
.filter(Boolean)
|
|
42778
42873
|
.map(storyTarget => LinkedObject.storyTarget(storyTarget.data));
|
|
42779
42874
|
if (!this.shouldNotify(data) && origin === 'event')
|
|
42780
42875
|
return;
|
|
42781
42876
|
data = this.applyFilter(data)
|
|
42877
|
+
// exclude story targets with invalid stories
|
|
42878
|
+
.filter(({ localSortingDate }) => !!localSortingDate)
|
|
42782
42879
|
// Remove internal fields
|
|
42783
42880
|
.map((_a) => {
|
|
42784
42881
|
var rest = __rest(_a, ["localFilter", "localLastExpires", "localLastSeen", "localSortingDate"]);
|