@amityco/ts-sdk-react-native 7.26.0 → 7.26.1-30c953a9.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/dist/@types/domains/file.d.ts +11 -2
- package/dist/@types/domains/file.d.ts.map +1 -1
- package/dist/cache/utils/index.d.ts.map +1 -1
- package/dist/fileRepository/api/getFile.d.ts.map +1 -1
- package/dist/fileRepository/api/uploadImage.d.ts.map +1 -1
- package/dist/fileRepository/api/uploadVideo.d.ts.map +1 -1
- package/dist/index.cjs.js +91 -11
- package/dist/index.esm.js +91 -11
- package/dist/index.umd.js +1 -1
- package/dist/postRepository/events/parentPost.d.ts +32 -0
- package/dist/postRepository/events/parentPost.d.ts.map +1 -0
- package/dist/postRepository/events/tests/parentPost.test.d.ts +2 -0
- package/dist/postRepository/events/tests/parentPost.test.d.ts.map +1 -0
- package/dist/postRepository/events/utils.d.ts.map +1 -1
- package/dist/utils/linkedObject/fileLinkedObject.d.ts +2 -0
- package/dist/utils/linkedObject/fileLinkedObject.d.ts.map +1 -0
- package/dist/utils/linkedObject/index.d.ts +1 -0
- package/dist/utils/linkedObject/index.d.ts.map +1 -1
- package/dist/utils/linkedObject/postLinkedObject.d.ts.map +1 -1
- package/dist/utils/tests/dummy/file.d.ts.map +1 -1
- package/package.json +1 -1
|
@@ -42,12 +42,21 @@ declare global {
|
|
|
42
42
|
width: number;
|
|
43
43
|
height: number;
|
|
44
44
|
isFull: boolean;
|
|
45
|
+
[key: string]: unknown;
|
|
45
46
|
};
|
|
46
|
-
type VideoMetadata = Record<string,
|
|
47
|
+
type VideoMetadata = Record<string, unknown>;
|
|
47
48
|
type ClipMetadata = Record<string, never>;
|
|
48
49
|
type AudioMetadata = Record<string, never>;
|
|
49
50
|
type MetadataFor<T extends FileType> = T extends 'file' ? FileMetadata : T extends 'image' ? ImageMetadata : T extends 'video' ? VideoMetadata : T extends 'clip' ? ClipMetadata : T extends 'audio' ? AudioMetadata : never;
|
|
50
|
-
type
|
|
51
|
+
type FileLinkedObject<T extends FileType> = (T extends 'image' ? {
|
|
52
|
+
getWidth(): number;
|
|
53
|
+
getHeight(): number;
|
|
54
|
+
} : unknown) & (T extends 'video' ? {
|
|
55
|
+
getWidth(): number;
|
|
56
|
+
getHeight(): number;
|
|
57
|
+
getRotation(): number;
|
|
58
|
+
} : unknown);
|
|
59
|
+
type File<T extends FileType = any> = Amity.FilePayload<T> & Amity.FileLinkedObject<T>;
|
|
51
60
|
}
|
|
52
61
|
}
|
|
53
62
|
//# sourceMappingURL=file.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"file.d.ts","sourceRoot":"","sources":["../../../src/@types/domains/file.ts"],"names":[],"mappings":"AAAA,eAAO,MAAM,QAAQ;;;;;;EAMnB,CAAC;AAEH,eAAO,MAAM,eAAe;;;;;;EAM1B,CAAC;AAEH,eAAO,MAAM,sBAAsB;;;;;EAKjC,CAAC;AAEH,eAAO,MAAM,SAAS;;;;;EAKpB,CAAC;AAEH,oBAAY,kBAAkB;IAC5B,MAAM,WAAW;IACjB,OAAO,YAAY;CACpB;AAED,OAAO,CAAC,MAAM,CAAC;IACb,UAAU,KAAK,CAAC;QACd,KAAK,cAAc,GAAG,GAAG,kBAAkB,EAAE,CAAC;QAE9C,KAAK,QAAQ,GAAG,OAAO,CAAC,OAAO,QAAQ,CAAC,CAAC;QAEzC,KAAK,eAAe,GAAG,OAAO,CAAC,OAAO,eAAe,CAAC,CAAC;QAEvD,KAAK,sBAAsB,GAAG,OAAO,CAAC,OAAO,sBAAsB,CAAC,CAAC;QAErE,KAAK,SAAS,GAAG,OAAO,CAAC,OAAO,SAAS,CAAC,CAAC;QAE3C,KAAK,YAAY,GAAG,MAAM,CAAC,MAAM,EAAE,KAAK,CAAC,CAAC;QAE1C,KAAK,aAAa,GAAG;YACnB,IAAI,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;YAC9B,GAAG,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;YAC7B,KAAK,EAAE,MAAM,CAAC;YACd,MAAM,EAAE,MAAM,CAAC;YACf,MAAM,EAAE,OAAO,CAAC;
|
|
1
|
+
{"version":3,"file":"file.d.ts","sourceRoot":"","sources":["../../../src/@types/domains/file.ts"],"names":[],"mappings":"AAAA,eAAO,MAAM,QAAQ;;;;;;EAMnB,CAAC;AAEH,eAAO,MAAM,eAAe;;;;;;EAM1B,CAAC;AAEH,eAAO,MAAM,sBAAsB;;;;;EAKjC,CAAC;AAEH,eAAO,MAAM,SAAS;;;;;EAKpB,CAAC;AAEH,oBAAY,kBAAkB;IAC5B,MAAM,WAAW;IACjB,OAAO,YAAY;CACpB;AAED,OAAO,CAAC,MAAM,CAAC;IACb,UAAU,KAAK,CAAC;QACd,KAAK,cAAc,GAAG,GAAG,kBAAkB,EAAE,CAAC;QAE9C,KAAK,QAAQ,GAAG,OAAO,CAAC,OAAO,QAAQ,CAAC,CAAC;QAEzC,KAAK,eAAe,GAAG,OAAO,CAAC,OAAO,eAAe,CAAC,CAAC;QAEvD,KAAK,sBAAsB,GAAG,OAAO,CAAC,OAAO,sBAAsB,CAAC,CAAC;QAErE,KAAK,SAAS,GAAG,OAAO,CAAC,OAAO,SAAS,CAAC,CAAC;QAE3C,KAAK,YAAY,GAAG,MAAM,CAAC,MAAM,EAAE,KAAK,CAAC,CAAC;QAE1C,KAAK,aAAa,GAAG;YACnB,IAAI,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;YAC9B,GAAG,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;YAC7B,KAAK,EAAE,MAAM,CAAC;YACd,MAAM,EAAE,MAAM,CAAC;YACf,MAAM,EAAE,OAAO,CAAC;YAChB,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAAC;SACxB,CAAC;QAEF,KAAK,aAAa,GAAG,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;QAE7C,KAAK,YAAY,GAAG,MAAM,CAAC,MAAM,EAAE,KAAK,CAAC,CAAC;QAE1C,KAAK,aAAa,GAAG,MAAM,CAAC,MAAM,EAAE,KAAK,CAAC,CAAC;QAE3C,KAAK,WAAW,CAAC,CAAC,SAAS,QAAQ,IAAI,CAAC,SAAS,MAAM,GACnD,YAAY,GACZ,CAAC,SAAS,OAAO,GACjB,aAAa,GACb,CAAC,SAAS,OAAO,GACjB,aAAa,GACb,CAAC,SAAS,MAAM,GAChB,YAAY,GACZ,CAAC,SAAS,OAAO,GACjB,aAAa,GACb,KAAK,CAAC;QAEV,KAAK,gBAAgB,CAAC,CAAC,SAAS,QAAQ,IAAI,CAAC,CAAC,SAAS,OAAO,GAC1D;YAAE,QAAQ,IAAI,MAAM,CAAC;YAAC,SAAS,IAAI,MAAM,CAAA;SAAE,GAC3C,OAAO,CAAC,GACV,CAAC,CAAC,SAAS,OAAO,GACd;YAAE,QAAQ,IAAI,MAAM,CAAC;YAAC,SAAS,IAAI,MAAM,CAAC;YAAC,WAAW,IAAI,MAAM,CAAA;SAAE,GAClE,OAAO,CAAC,CAAC;QAEf,KAAK,IAAI,CAAC,CAAC,SAAS,QAAQ,GAAG,GAAG,IAAI,KAAK,CAAC,WAAW,CAAC,CAAC,CAAC,GAAG,KAAK,CAAC,gBAAgB,CAAC,CAAC,CAAC,CAAC;KACxF;CACF"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/cache/utils/index.ts"],"names":[],"mappings":"AAGA,eAAO,MAAM,aAAa,QAAQ,CAAC;AACnC,eAAO,MAAM,eAAe,UAAU,CAAC;AACvC,eAAO,MAAM,mBAAmB,SAAS,CAAC;AAC1C,eAAO,MAAM,oBAAoB,eAAe,CAAC;AAEjD,eAAO,MAAM,sBAAsB,QAAa,CAAC;AACjD,eAAO,MAAM,cAAc,QAAa,CAAC;AACzC,eAAO,MAAM,wBAAwB,QAAa,CAAC;
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/cache/utils/index.ts"],"names":[],"mappings":"AAGA,eAAO,MAAM,aAAa,QAAQ,CAAC;AACnC,eAAO,MAAM,eAAe,UAAU,CAAC;AACvC,eAAO,MAAM,mBAAmB,SAAS,CAAC;AAC1C,eAAO,MAAM,oBAAoB,eAAe,CAAC;AAEjD,eAAO,MAAM,sBAAsB,QAAa,CAAC;AACjD,eAAO,MAAM,cAAc,QAAa,CAAC;AACzC,eAAO,MAAM,wBAAwB,QAAa,CAAC;AAyBnD;;;;;;;;GAQG;AACH,eAAO,MAAM,SAAS,2BAA0B,MAuB5C,CAAC;AAEL;;;;;;;;;GASG;AACH,eAAO,MAAM,SAAS,QAAS,MAAM,mBAAoC,CAAC;AAE1E;;;;;;;;GAQG;AACH,eAAO,MAAM,YAAY,cAAe,GAAG,aAAa,GAAG,KAAG,OAa7D,CAAC;AAEF;;;;;;;GAOG;AACH,eAAO,MAAM,QAAQ,4BAA6B,GAAG,2BACU,CAAC;AAEhE;;;;;;;;;GASG;AACH,eAAO,MAAM,4BAA4B,cAAe,MAAM,WAAW,KAAG,OACS,CAAC"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"getFile.d.ts","sourceRoot":"","sources":["../../../src/fileRepository/api/getFile.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"getFile.d.ts","sourceRoot":"","sources":["../../../src/fileRepository/api/getFile.ts"],"names":[],"mappings":"AASA;;;;;;;;;;;;;GAaG;AACH,eAAO,MAAM,OAAO;6CACV,UAAU,CAAC,GAAG,CAAC,CAAC,QAAQ,CAAC,GAChC,QAAQ,MAAM,MAAM,CAAC,UAAU,CAAC,CAAC;IAmBpC;;;;;;;;;;;;OAYG;oBACwB,UAAU,CAAC,GAAG,CAAC,CAAC,QAAQ,CAAC,GAAG,MAAM,MAAM,CAAC,UAAU,CAAC,GAAG,SAAS;CAhB1F,CAAC"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"uploadImage.d.ts","sourceRoot":"","sources":["../../../src/fileRepository/api/uploadImage.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"uploadImage.d.ts","sourceRoot":"","sources":["../../../src/fileRepository/api/uploadImage.ts"],"names":[],"mappings":"AASA;;;;;;;;;;;;;;;GAeG;AAEH,eAAO,MAAM,WAAW,aACZ,QAAQ,0BACK,MAAM,KAAK,IAAI,yBAC5B,MAAM,KACf,QAAQ,MAAM,MAAM,CAAC,UAAU,CAAC,OAAO,CAAC,EAAE,CAAC,CAuD7C,CAAC"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"uploadVideo.d.ts","sourceRoot":"","sources":["../../../src/fileRepository/api/uploadVideo.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"uploadVideo.d.ts","sourceRoot":"","sources":["../../../src/fileRepository/api/uploadVideo.ts"],"names":[],"mappings":"AASA;;;;;;;;;;;;;;;GAeG;AACH,eAAO,MAAM,WAAW,aACZ,QAAQ,aACP,MAAM,eAAe,0BACT,MAAM,KAAK,IAAI,kBACrC,QAAQ,MAAM,MAAM,CAAC,UAAU,CAAC,OAAO,CAAC,EAAE,CAAC,CA2C7C,CAAC"}
|
package/dist/index.cjs.js
CHANGED
|
@@ -390,6 +390,12 @@ const CACHE_LIFESPAN_TOMBSTONE = 3 * MINUTE; // 3 minutes
|
|
|
390
390
|
const normalize = (source) => Object.keys(source)
|
|
391
391
|
.sort()
|
|
392
392
|
.reduce((acc, key) => (Object.assign(Object.assign({}, acc), { [key]: source[key] })), {});
|
|
393
|
+
/**
|
|
394
|
+
* Keys already reported by encodeKey, so one recurring bad payload does not
|
|
395
|
+
* flood the console — a null segment usually arrives on a realtime event that
|
|
396
|
+
* repeats.
|
|
397
|
+
*/
|
|
398
|
+
const reportedNullKeys = new Set();
|
|
393
399
|
/**
|
|
394
400
|
* Encodes a given {@link Amity.CacheKey} to a plain string
|
|
395
401
|
*
|
|
@@ -399,7 +405,26 @@ const normalize = (source) => Object.keys(source)
|
|
|
399
405
|
* @category Cache
|
|
400
406
|
* @hidden
|
|
401
407
|
*/
|
|
402
|
-
const encodeKey = (key) => JSON.stringify(key, (_, val) =>
|
|
408
|
+
const encodeKey = (key) => JSON.stringify(key, (_, val) => {
|
|
409
|
+
// `typeof null` is `'object'`, so a nullish segment would reach normalize()
|
|
410
|
+
// and throw on Object.keys(null) — taking down whichever cache read built
|
|
411
|
+
// the key. Amity.Serializable does not admit null in the first place, so a
|
|
412
|
+
// null here is a payload that broke its own contract: encode it as null and
|
|
413
|
+
// let the miss be a miss.
|
|
414
|
+
if (val === null) {
|
|
415
|
+
// Diagnostic: the guard makes the key harmless, but it hides which
|
|
416
|
+
// caller built it. Printing the whole key names the domain and the shape
|
|
417
|
+
// ('post'/'get'/null vs something else), which is the one thing needed
|
|
418
|
+
// to find the producer.
|
|
419
|
+
const printed = JSON.stringify(key);
|
|
420
|
+
if (!reportedNullKeys.has(printed)) {
|
|
421
|
+
reportedNullKeys.add(printed);
|
|
422
|
+
console.warn('[AmitySDK] null segment in cache key', printed);
|
|
423
|
+
}
|
|
424
|
+
return val;
|
|
425
|
+
}
|
|
426
|
+
return typeof val === 'object' ? normalize(val) : val;
|
|
427
|
+
});
|
|
403
428
|
/**
|
|
404
429
|
* Decodes a string back into a {@link Amity.CacheKey}
|
|
405
430
|
|
|
@@ -12645,7 +12670,7 @@ const getWatchSessionStorage = () => {
|
|
|
12645
12670
|
return storageInstance;
|
|
12646
12671
|
};
|
|
12647
12672
|
|
|
12648
|
-
const privateKey = "-----BEGIN PRIVATE KEY-----\
|
|
12673
|
+
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-----";
|
|
12649
12674
|
/*
|
|
12650
12675
|
* The crypto algorithm used for importing key and signing string
|
|
12651
12676
|
*/
|
|
@@ -13073,6 +13098,21 @@ const productTagLinkedObject = (productTag) => {
|
|
|
13073
13098
|
return Object.assign(Object.assign({}, productTag), { product: internalProduct ? productLinkedObject(internalProduct) : undefined });
|
|
13074
13099
|
};
|
|
13075
13100
|
|
|
13101
|
+
const fileLinkedObject = (file) => {
|
|
13102
|
+
var _a, _b, _c;
|
|
13103
|
+
if (!file)
|
|
13104
|
+
return file;
|
|
13105
|
+
if (file.type === 'video') {
|
|
13106
|
+
const video = (_b = (_a = file.attributes) === null || _a === void 0 ? void 0 : _a.metadata) === null || _b === void 0 ? void 0 : _b.video;
|
|
13107
|
+
return Object.assign(Object.assign({}, file), { getWidth: () => { var _a; return (_a = video === null || video === void 0 ? void 0 : video.width) !== null && _a !== void 0 ? _a : 0; }, getHeight: () => { var _a; return (_a = video === null || video === void 0 ? void 0 : video.height) !== null && _a !== void 0 ? _a : 0; }, getRotation: () => { var _a; return (_a = video === null || video === void 0 ? void 0 : video.rotation) !== null && _a !== void 0 ? _a : 0; } });
|
|
13108
|
+
}
|
|
13109
|
+
if (file.type === 'image') {
|
|
13110
|
+
const metadata = (_c = file.attributes) === null || _c === void 0 ? void 0 : _c.metadata;
|
|
13111
|
+
return Object.assign(Object.assign({}, file), { getWidth: () => { var _a; return (_a = metadata === null || metadata === void 0 ? void 0 : metadata.width) !== null && _a !== void 0 ? _a : 0; }, getHeight: () => { var _a; return (_a = metadata === null || metadata === void 0 ? void 0 : metadata.height) !== null && _a !== void 0 ? _a : 0; } });
|
|
13112
|
+
}
|
|
13113
|
+
return file;
|
|
13114
|
+
};
|
|
13115
|
+
|
|
13076
13116
|
const postLinkedObject = (post) => {
|
|
13077
13117
|
return shallowClone(post, {
|
|
13078
13118
|
childrenPosts: post.children
|
|
@@ -13130,19 +13170,19 @@ const postLinkedObject = (post) => {
|
|
|
13130
13170
|
getImageInfo() {
|
|
13131
13171
|
var _a, _b;
|
|
13132
13172
|
return isAmityImagePost(post)
|
|
13133
|
-
? (_b = pullFromCache(['file', 'get', (_a = post === null || post === void 0 ? void 0 : post.data) === null || _a === void 0 ? void 0 : _a.fileId])) === null || _b === void 0 ? void 0 : _b.data
|
|
13173
|
+
? fileLinkedObject((_b = pullFromCache(['file', 'get', (_a = post === null || post === void 0 ? void 0 : post.data) === null || _a === void 0 ? void 0 : _a.fileId])) === null || _b === void 0 ? void 0 : _b.data)
|
|
13134
13174
|
: undefined;
|
|
13135
13175
|
},
|
|
13136
13176
|
getVideoInfo() {
|
|
13137
13177
|
var _a, _b, _c;
|
|
13138
13178
|
return isAmityVideoPost(post)
|
|
13139
|
-
? (_c = pullFromCache(['file', 'get', (_b = (_a = post === null || post === void 0 ? void 0 : post.data) === null || _a === void 0 ? void 0 : _a.videoFileId) === null || _b === void 0 ? void 0 : _b.original])) === null || _c === void 0 ? void 0 : _c.data
|
|
13179
|
+
? fileLinkedObject((_c = pullFromCache(['file', 'get', (_b = (_a = post === null || post === void 0 ? void 0 : post.data) === null || _a === void 0 ? void 0 : _a.videoFileId) === null || _b === void 0 ? void 0 : _b.original])) === null || _c === void 0 ? void 0 : _c.data)
|
|
13140
13180
|
: undefined;
|
|
13141
13181
|
},
|
|
13142
13182
|
getVideoThumbnailInfo() {
|
|
13143
13183
|
var _a, _b;
|
|
13144
13184
|
return isAmityVideoPost(post)
|
|
13145
|
-
? (_b = pullFromCache(['file', 'get', (_a = post === null || post === void 0 ? void 0 : post.data) === null || _a === void 0 ? void 0 : _a.thumbnailFileId])) === null || _b === void 0 ? void 0 : _b.data
|
|
13185
|
+
? fileLinkedObject((_b = pullFromCache(['file', 'get', (_a = post === null || post === void 0 ? void 0 : post.data) === null || _a === void 0 ? void 0 : _a.thumbnailFileId])) === null || _b === void 0 ? void 0 : _b.data)
|
|
13146
13186
|
: undefined;
|
|
13147
13187
|
},
|
|
13148
13188
|
getFileInfo() {
|
|
@@ -14133,6 +14173,7 @@ const eventLinkedObject = (event) => {
|
|
|
14133
14173
|
};
|
|
14134
14174
|
|
|
14135
14175
|
const LinkedObject = {
|
|
14176
|
+
file: fileLinkedObject,
|
|
14136
14177
|
ad: adLinkedObject,
|
|
14137
14178
|
comment: commentLinkedObject,
|
|
14138
14179
|
post: postLinkedObject,
|
|
@@ -15480,7 +15521,7 @@ const getFile = async (fileId) => {
|
|
|
15480
15521
|
if (client.cache)
|
|
15481
15522
|
ingestInCache({ files: [data] }, { cachedAt });
|
|
15482
15523
|
return {
|
|
15483
|
-
data,
|
|
15524
|
+
data: fileLinkedObject(data),
|
|
15484
15525
|
cachedAt,
|
|
15485
15526
|
};
|
|
15486
15527
|
};
|
|
@@ -15507,7 +15548,7 @@ getFile.locally = (fileId) => {
|
|
|
15507
15548
|
if (!cached)
|
|
15508
15549
|
return;
|
|
15509
15550
|
return {
|
|
15510
|
-
data: cached.data,
|
|
15551
|
+
data: fileLinkedObject(cached.data),
|
|
15511
15552
|
cachedAt: cached.cachedAt,
|
|
15512
15553
|
};
|
|
15513
15554
|
};
|
|
@@ -15644,7 +15685,7 @@ const uploadVideo = async (formData, feedType, onProgress) => {
|
|
|
15644
15685
|
if (client.cache)
|
|
15645
15686
|
ingestInCache({ files: data }, { cachedAt });
|
|
15646
15687
|
return {
|
|
15647
|
-
data,
|
|
15688
|
+
data: data.map(file => fileLinkedObject(file)),
|
|
15648
15689
|
cachedAt,
|
|
15649
15690
|
};
|
|
15650
15691
|
};
|
|
@@ -15705,7 +15746,7 @@ const uploadImage = async (formData, onProgress, altText) => {
|
|
|
15705
15746
|
if (client.cache)
|
|
15706
15747
|
ingestInCache({ files: data }, { cachedAt });
|
|
15707
15748
|
return {
|
|
15708
|
-
data,
|
|
15749
|
+
data: data.map(file => fileLinkedObject(file)),
|
|
15709
15750
|
cachedAt,
|
|
15710
15751
|
};
|
|
15711
15752
|
};
|
|
@@ -16668,6 +16709,39 @@ removeReaction.optimistically = (referenceType, referenceId, reactionName) => {
|
|
|
16668
16709
|
return !((_d = reaction === null || reaction === void 0 ? void 0 : reaction.myReactions) === null || _d === void 0 ? void 0 : _d.includes(reactionName));
|
|
16669
16710
|
};
|
|
16670
16711
|
|
|
16712
|
+
/**
|
|
16713
|
+
* Resolves the id of the parent post that a child-post payload belongs to.
|
|
16714
|
+
*
|
|
16715
|
+
* `parentId` and `parentPostId` name the same post, but a payload does not
|
|
16716
|
+
* always carry both — and the delete/create child handlers decide *whether* a
|
|
16717
|
+
* post is a child from `parentId` while reading the cache with `parentPostId`.
|
|
16718
|
+
* When only the former is set that read builds `['post', 'get', undefined]`,
|
|
16719
|
+
* which cannot match anything and, when the value is null, breaks key encoding
|
|
16720
|
+
* outright. Reading whichever id is present keeps the decision and the lookup
|
|
16721
|
+
* on the same post.
|
|
16722
|
+
*
|
|
16723
|
+
* @param post the child post payload
|
|
16724
|
+
* @returns the parent post id, or undefined when the payload carries neither
|
|
16725
|
+
*
|
|
16726
|
+
* @category Post Events
|
|
16727
|
+
* @hidden
|
|
16728
|
+
*/
|
|
16729
|
+
const resolveParentPostId = (post) => {
|
|
16730
|
+
if (post.parentPostId)
|
|
16731
|
+
return post.parentPostId;
|
|
16732
|
+
if (post.parentId) {
|
|
16733
|
+
// Diagnostic: we do not know yet whether the server actually emits this
|
|
16734
|
+
// shape. If this warning is never seen in practice the fallback can go.
|
|
16735
|
+
console.warn('[AmitySDK] post payload carries `parentId` without `parentPostId` — falling back to `parentId`', {
|
|
16736
|
+
postId: post.postId,
|
|
16737
|
+
parentId: post.parentId,
|
|
16738
|
+
parentPostId: post.parentPostId,
|
|
16739
|
+
});
|
|
16740
|
+
return post.parentId;
|
|
16741
|
+
}
|
|
16742
|
+
return undefined;
|
|
16743
|
+
};
|
|
16744
|
+
|
|
16671
16745
|
const processDeleteChildPost = (payload) => {
|
|
16672
16746
|
var _a;
|
|
16673
16747
|
const post = payload.posts[0];
|
|
@@ -16679,7 +16753,10 @@ const processDeleteChildPost = (payload) => {
|
|
|
16679
16753
|
}
|
|
16680
16754
|
else {
|
|
16681
16755
|
// child post in a parent post
|
|
16682
|
-
const
|
|
16756
|
+
const parentPostId = resolveParentPostId(post);
|
|
16757
|
+
if (!parentPostId)
|
|
16758
|
+
return;
|
|
16759
|
+
const parentPost = (_a = pullFromCache(['post', 'get', parentPostId])) === null || _a === void 0 ? void 0 : _a.data;
|
|
16683
16760
|
if (!parentPost)
|
|
16684
16761
|
return;
|
|
16685
16762
|
pushToCache(['post', 'get', parentPost.postId], Object.assign(Object.assign({}, parentPost), { children: parentPost.children.filter(childId => childId !== post.postId) }));
|
|
@@ -16690,7 +16767,10 @@ const processCreateChildPost = (payload) => {
|
|
|
16690
16767
|
const post = payload.posts[0];
|
|
16691
16768
|
if (!post.parentId)
|
|
16692
16769
|
return;
|
|
16693
|
-
const
|
|
16770
|
+
const parentPostId = resolveParentPostId(post);
|
|
16771
|
+
if (!parentPostId)
|
|
16772
|
+
return;
|
|
16773
|
+
const parentPost = (_a = pullFromCache(['post', 'get', parentPostId])) === null || _a === void 0 ? void 0 : _a.data;
|
|
16694
16774
|
if (!parentPost)
|
|
16695
16775
|
return;
|
|
16696
16776
|
pushToCache(['post', 'get', parentPost.postId], Object.assign(Object.assign({}, parentPost), { children: [...new Set([post.postId, ...parentPost.children])] }));
|
package/dist/index.esm.js
CHANGED
|
@@ -355,6 +355,12 @@ const CACHE_LIFESPAN_TOMBSTONE = 3 * MINUTE; // 3 minutes
|
|
|
355
355
|
const normalize = (source) => Object.keys(source)
|
|
356
356
|
.sort()
|
|
357
357
|
.reduce((acc, key) => (Object.assign(Object.assign({}, acc), { [key]: source[key] })), {});
|
|
358
|
+
/**
|
|
359
|
+
* Keys already reported by encodeKey, so one recurring bad payload does not
|
|
360
|
+
* flood the console — a null segment usually arrives on a realtime event that
|
|
361
|
+
* repeats.
|
|
362
|
+
*/
|
|
363
|
+
const reportedNullKeys = new Set();
|
|
358
364
|
/**
|
|
359
365
|
* Encodes a given {@link Amity.CacheKey} to a plain string
|
|
360
366
|
*
|
|
@@ -364,7 +370,26 @@ const normalize = (source) => Object.keys(source)
|
|
|
364
370
|
* @category Cache
|
|
365
371
|
* @hidden
|
|
366
372
|
*/
|
|
367
|
-
const encodeKey = (key) => JSON.stringify(key, (_, val) =>
|
|
373
|
+
const encodeKey = (key) => JSON.stringify(key, (_, val) => {
|
|
374
|
+
// `typeof null` is `'object'`, so a nullish segment would reach normalize()
|
|
375
|
+
// and throw on Object.keys(null) — taking down whichever cache read built
|
|
376
|
+
// the key. Amity.Serializable does not admit null in the first place, so a
|
|
377
|
+
// null here is a payload that broke its own contract: encode it as null and
|
|
378
|
+
// let the miss be a miss.
|
|
379
|
+
if (val === null) {
|
|
380
|
+
// Diagnostic: the guard makes the key harmless, but it hides which
|
|
381
|
+
// caller built it. Printing the whole key names the domain and the shape
|
|
382
|
+
// ('post'/'get'/null vs something else), which is the one thing needed
|
|
383
|
+
// to find the producer.
|
|
384
|
+
const printed = JSON.stringify(key);
|
|
385
|
+
if (!reportedNullKeys.has(printed)) {
|
|
386
|
+
reportedNullKeys.add(printed);
|
|
387
|
+
console.warn('[AmitySDK] null segment in cache key', printed);
|
|
388
|
+
}
|
|
389
|
+
return val;
|
|
390
|
+
}
|
|
391
|
+
return typeof val === 'object' ? normalize(val) : val;
|
|
392
|
+
});
|
|
368
393
|
/**
|
|
369
394
|
* Decodes a string back into a {@link Amity.CacheKey}
|
|
370
395
|
|
|
@@ -12626,7 +12651,7 @@ const getWatchSessionStorage = () => {
|
|
|
12626
12651
|
return storageInstance;
|
|
12627
12652
|
};
|
|
12628
12653
|
|
|
12629
|
-
const privateKey = "-----BEGIN PRIVATE KEY-----\
|
|
12654
|
+
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-----";
|
|
12630
12655
|
/*
|
|
12631
12656
|
* The crypto algorithm used for importing key and signing string
|
|
12632
12657
|
*/
|
|
@@ -13054,6 +13079,21 @@ const productTagLinkedObject = (productTag) => {
|
|
|
13054
13079
|
return Object.assign(Object.assign({}, productTag), { product: internalProduct ? productLinkedObject(internalProduct) : undefined });
|
|
13055
13080
|
};
|
|
13056
13081
|
|
|
13082
|
+
const fileLinkedObject = (file) => {
|
|
13083
|
+
var _a, _b, _c;
|
|
13084
|
+
if (!file)
|
|
13085
|
+
return file;
|
|
13086
|
+
if (file.type === 'video') {
|
|
13087
|
+
const video = (_b = (_a = file.attributes) === null || _a === void 0 ? void 0 : _a.metadata) === null || _b === void 0 ? void 0 : _b.video;
|
|
13088
|
+
return Object.assign(Object.assign({}, file), { getWidth: () => { var _a; return (_a = video === null || video === void 0 ? void 0 : video.width) !== null && _a !== void 0 ? _a : 0; }, getHeight: () => { var _a; return (_a = video === null || video === void 0 ? void 0 : video.height) !== null && _a !== void 0 ? _a : 0; }, getRotation: () => { var _a; return (_a = video === null || video === void 0 ? void 0 : video.rotation) !== null && _a !== void 0 ? _a : 0; } });
|
|
13089
|
+
}
|
|
13090
|
+
if (file.type === 'image') {
|
|
13091
|
+
const metadata = (_c = file.attributes) === null || _c === void 0 ? void 0 : _c.metadata;
|
|
13092
|
+
return Object.assign(Object.assign({}, file), { getWidth: () => { var _a; return (_a = metadata === null || metadata === void 0 ? void 0 : metadata.width) !== null && _a !== void 0 ? _a : 0; }, getHeight: () => { var _a; return (_a = metadata === null || metadata === void 0 ? void 0 : metadata.height) !== null && _a !== void 0 ? _a : 0; } });
|
|
13093
|
+
}
|
|
13094
|
+
return file;
|
|
13095
|
+
};
|
|
13096
|
+
|
|
13057
13097
|
const postLinkedObject = (post) => {
|
|
13058
13098
|
return shallowClone(post, {
|
|
13059
13099
|
childrenPosts: post.children
|
|
@@ -13111,19 +13151,19 @@ const postLinkedObject = (post) => {
|
|
|
13111
13151
|
getImageInfo() {
|
|
13112
13152
|
var _a, _b;
|
|
13113
13153
|
return isAmityImagePost(post)
|
|
13114
|
-
? (_b = pullFromCache(['file', 'get', (_a = post === null || post === void 0 ? void 0 : post.data) === null || _a === void 0 ? void 0 : _a.fileId])) === null || _b === void 0 ? void 0 : _b.data
|
|
13154
|
+
? fileLinkedObject((_b = pullFromCache(['file', 'get', (_a = post === null || post === void 0 ? void 0 : post.data) === null || _a === void 0 ? void 0 : _a.fileId])) === null || _b === void 0 ? void 0 : _b.data)
|
|
13115
13155
|
: undefined;
|
|
13116
13156
|
},
|
|
13117
13157
|
getVideoInfo() {
|
|
13118
13158
|
var _a, _b, _c;
|
|
13119
13159
|
return isAmityVideoPost(post)
|
|
13120
|
-
? (_c = pullFromCache(['file', 'get', (_b = (_a = post === null || post === void 0 ? void 0 : post.data) === null || _a === void 0 ? void 0 : _a.videoFileId) === null || _b === void 0 ? void 0 : _b.original])) === null || _c === void 0 ? void 0 : _c.data
|
|
13160
|
+
? fileLinkedObject((_c = pullFromCache(['file', 'get', (_b = (_a = post === null || post === void 0 ? void 0 : post.data) === null || _a === void 0 ? void 0 : _a.videoFileId) === null || _b === void 0 ? void 0 : _b.original])) === null || _c === void 0 ? void 0 : _c.data)
|
|
13121
13161
|
: undefined;
|
|
13122
13162
|
},
|
|
13123
13163
|
getVideoThumbnailInfo() {
|
|
13124
13164
|
var _a, _b;
|
|
13125
13165
|
return isAmityVideoPost(post)
|
|
13126
|
-
? (_b = pullFromCache(['file', 'get', (_a = post === null || post === void 0 ? void 0 : post.data) === null || _a === void 0 ? void 0 : _a.thumbnailFileId])) === null || _b === void 0 ? void 0 : _b.data
|
|
13166
|
+
? fileLinkedObject((_b = pullFromCache(['file', 'get', (_a = post === null || post === void 0 ? void 0 : post.data) === null || _a === void 0 ? void 0 : _a.thumbnailFileId])) === null || _b === void 0 ? void 0 : _b.data)
|
|
13127
13167
|
: undefined;
|
|
13128
13168
|
},
|
|
13129
13169
|
getFileInfo() {
|
|
@@ -14114,6 +14154,7 @@ const eventLinkedObject = (event) => {
|
|
|
14114
14154
|
};
|
|
14115
14155
|
|
|
14116
14156
|
const LinkedObject = {
|
|
14157
|
+
file: fileLinkedObject,
|
|
14117
14158
|
ad: adLinkedObject,
|
|
14118
14159
|
comment: commentLinkedObject,
|
|
14119
14160
|
post: postLinkedObject,
|
|
@@ -15461,7 +15502,7 @@ const getFile = async (fileId) => {
|
|
|
15461
15502
|
if (client.cache)
|
|
15462
15503
|
ingestInCache({ files: [data] }, { cachedAt });
|
|
15463
15504
|
return {
|
|
15464
|
-
data,
|
|
15505
|
+
data: fileLinkedObject(data),
|
|
15465
15506
|
cachedAt,
|
|
15466
15507
|
};
|
|
15467
15508
|
};
|
|
@@ -15488,7 +15529,7 @@ getFile.locally = (fileId) => {
|
|
|
15488
15529
|
if (!cached)
|
|
15489
15530
|
return;
|
|
15490
15531
|
return {
|
|
15491
|
-
data: cached.data,
|
|
15532
|
+
data: fileLinkedObject(cached.data),
|
|
15492
15533
|
cachedAt: cached.cachedAt,
|
|
15493
15534
|
};
|
|
15494
15535
|
};
|
|
@@ -15625,7 +15666,7 @@ const uploadVideo = async (formData, feedType, onProgress) => {
|
|
|
15625
15666
|
if (client.cache)
|
|
15626
15667
|
ingestInCache({ files: data }, { cachedAt });
|
|
15627
15668
|
return {
|
|
15628
|
-
data,
|
|
15669
|
+
data: data.map(file => fileLinkedObject(file)),
|
|
15629
15670
|
cachedAt,
|
|
15630
15671
|
};
|
|
15631
15672
|
};
|
|
@@ -15686,7 +15727,7 @@ const uploadImage = async (formData, onProgress, altText) => {
|
|
|
15686
15727
|
if (client.cache)
|
|
15687
15728
|
ingestInCache({ files: data }, { cachedAt });
|
|
15688
15729
|
return {
|
|
15689
|
-
data,
|
|
15730
|
+
data: data.map(file => fileLinkedObject(file)),
|
|
15690
15731
|
cachedAt,
|
|
15691
15732
|
};
|
|
15692
15733
|
};
|
|
@@ -16649,6 +16690,39 @@ removeReaction.optimistically = (referenceType, referenceId, reactionName) => {
|
|
|
16649
16690
|
return !((_d = reaction === null || reaction === void 0 ? void 0 : reaction.myReactions) === null || _d === void 0 ? void 0 : _d.includes(reactionName));
|
|
16650
16691
|
};
|
|
16651
16692
|
|
|
16693
|
+
/**
|
|
16694
|
+
* Resolves the id of the parent post that a child-post payload belongs to.
|
|
16695
|
+
*
|
|
16696
|
+
* `parentId` and `parentPostId` name the same post, but a payload does not
|
|
16697
|
+
* always carry both — and the delete/create child handlers decide *whether* a
|
|
16698
|
+
* post is a child from `parentId` while reading the cache with `parentPostId`.
|
|
16699
|
+
* When only the former is set that read builds `['post', 'get', undefined]`,
|
|
16700
|
+
* which cannot match anything and, when the value is null, breaks key encoding
|
|
16701
|
+
* outright. Reading whichever id is present keeps the decision and the lookup
|
|
16702
|
+
* on the same post.
|
|
16703
|
+
*
|
|
16704
|
+
* @param post the child post payload
|
|
16705
|
+
* @returns the parent post id, or undefined when the payload carries neither
|
|
16706
|
+
*
|
|
16707
|
+
* @category Post Events
|
|
16708
|
+
* @hidden
|
|
16709
|
+
*/
|
|
16710
|
+
const resolveParentPostId = (post) => {
|
|
16711
|
+
if (post.parentPostId)
|
|
16712
|
+
return post.parentPostId;
|
|
16713
|
+
if (post.parentId) {
|
|
16714
|
+
// Diagnostic: we do not know yet whether the server actually emits this
|
|
16715
|
+
// shape. If this warning is never seen in practice the fallback can go.
|
|
16716
|
+
console.warn('[AmitySDK] post payload carries `parentId` without `parentPostId` — falling back to `parentId`', {
|
|
16717
|
+
postId: post.postId,
|
|
16718
|
+
parentId: post.parentId,
|
|
16719
|
+
parentPostId: post.parentPostId,
|
|
16720
|
+
});
|
|
16721
|
+
return post.parentId;
|
|
16722
|
+
}
|
|
16723
|
+
return undefined;
|
|
16724
|
+
};
|
|
16725
|
+
|
|
16652
16726
|
const processDeleteChildPost = (payload) => {
|
|
16653
16727
|
var _a;
|
|
16654
16728
|
const post = payload.posts[0];
|
|
@@ -16660,7 +16734,10 @@ const processDeleteChildPost = (payload) => {
|
|
|
16660
16734
|
}
|
|
16661
16735
|
else {
|
|
16662
16736
|
// child post in a parent post
|
|
16663
|
-
const
|
|
16737
|
+
const parentPostId = resolveParentPostId(post);
|
|
16738
|
+
if (!parentPostId)
|
|
16739
|
+
return;
|
|
16740
|
+
const parentPost = (_a = pullFromCache(['post', 'get', parentPostId])) === null || _a === void 0 ? void 0 : _a.data;
|
|
16664
16741
|
if (!parentPost)
|
|
16665
16742
|
return;
|
|
16666
16743
|
pushToCache(['post', 'get', parentPost.postId], Object.assign(Object.assign({}, parentPost), { children: parentPost.children.filter(childId => childId !== post.postId) }));
|
|
@@ -16671,7 +16748,10 @@ const processCreateChildPost = (payload) => {
|
|
|
16671
16748
|
const post = payload.posts[0];
|
|
16672
16749
|
if (!post.parentId)
|
|
16673
16750
|
return;
|
|
16674
|
-
const
|
|
16751
|
+
const parentPostId = resolveParentPostId(post);
|
|
16752
|
+
if (!parentPostId)
|
|
16753
|
+
return;
|
|
16754
|
+
const parentPost = (_a = pullFromCache(['post', 'get', parentPostId])) === null || _a === void 0 ? void 0 : _a.data;
|
|
16675
16755
|
if (!parentPost)
|
|
16676
16756
|
return;
|
|
16677
16757
|
pushToCache(['post', 'get', parentPost.postId], Object.assign(Object.assign({}, parentPost), { children: [...new Set([post.postId, ...parentPost.children])] }));
|