@amityco/ts-sdk-react-native 7.26.0 → 7.26.1-0905139c.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.
@@ -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, never>;
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 File<T extends FileType = any> = Amity.FilePayload<T>;
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;SACjB,CAAC;QAEF,KAAK,aAAa,GAAG,MAAM,CAAC,MAAM,EAAE,KAAK,CAAC,CAAC;QAE3C,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,IAAI,CAAC,CAAC,SAAS,QAAQ,GAAG,GAAG,IAAI,KAAK,CAAC,WAAW,CAAC,CAAC,CAAC,CAAC;KAC5D;CACF"}
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;AAkBnD;;;;;;;;GAQG;AACH,eAAO,MAAM,SAAS,2BAA0B,MACmC,CAAC;AAEpF;;;;;;;;;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
+ {"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;AAkBnD;;;;;;;;GAQG;AACH,eAAO,MAAM,SAAS,2BAA0B,MAQ7C,CAAC;AAEJ;;;;;;;;;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":"AAQA;;;;;;;;;;;;;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
+ {"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":"AAQA;;;;;;;;;;;;;;;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
+ {"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":"AAQA;;;;;;;;;;;;;;;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"}
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
@@ -399,7 +399,13 @@ const normalize = (source) => Object.keys(source)
399
399
  * @category Cache
400
400
  * @hidden
401
401
  */
402
- const encodeKey = (key) => JSON.stringify(key, (_, val) => (typeof val === 'object' ? normalize(val) : val));
402
+ const encodeKey = (key) => JSON.stringify(key, (_, val) =>
403
+ // `typeof null` is `'object'`, so a nullish segment would reach normalize()
404
+ // and throw on Object.keys(null) — taking down whichever cache read built
405
+ // the key. Amity.Serializable does not admit null in the first place, so a
406
+ // null here is a payload that broke its own contract: encode it as null and
407
+ // let the miss be a miss.
408
+ val !== null && typeof val === 'object' ? normalize(val) : val);
403
409
  /**
404
410
  * Decodes a string back into a {@link Amity.CacheKey}
405
411
 
@@ -12645,7 +12651,7 @@ const getWatchSessionStorage = () => {
12645
12651
  return storageInstance;
12646
12652
  };
12647
12653
 
12648
- const privateKey = "-----BEGIN PRIVATE KEY-----\nMIIEvQIBADANBgkqhkiG9w0BAQEFAASCBKcwggSjAgEAAoIBAQDHo80SecH7FuF2\nhFYnb+l26/VN8UMLXAQFLnxciNTEwkGVFMpdezlH8rU2HtUJL4RETogbAOLVY0XM\njs6sPn8G1nALmh9qeDpUtVqFOVtBHxEZ910TLOtQiunjqJKO5nWdqZ71EC3OFluR\niGQkO84BiIFbv37ub7xl3S8XarbtKoLcyVpkDHi+1wx1pgCAn6gtBUgckPL5NR8j\nLseabl3HAXQfhTCKo4tmOFM2Dxwl1IUMmIJrJg/aIU/U0tj/1Eoo7mG0JcNWX19l\nW3EecCbi0ncCJOrkUdwlBrcjaMayaX/ubEwyUeTGiLdyc4L3GRLHjyK8xgVNXRMH\nbZWJ2a5NAgMBAAECggEASxuE+35zTFO/XydKgmvIGcWL9FbgMlXb7Vcf0nBoG945\nbiz0NVc2paraIhJXc608xbYF3qLmtAE1MVBI0ORyRdBHNxY024l/6H6SH60Ed+uI\nM4ysp5ourY6Vj+DLwpdRiI9YDjqYAQDIUmhNxJP7XPhOMoZI6st+xZQBM34ic/bv\nAMSJm9OZphSp3+qXVkFZztr2mxD2EZSJJLYxi8BCdgM2qhazalbcJ6zDKHCZWVWm\n8RRxDGldyMb/237JxETzP40tAlzOZDmBAbUgEnurDJ93RVDIE3rbZUshwgeQd18a\nem096mWgvB1AIKYgsTAR3pw+V19YWAjq/glP6fz8wQKBgQD/oQq+ukKF0PRgBeM5\ngeTjSwsdGppQLmf5ndujvoiz/TpdjDEPu6R8kigQr1rG2t4K/yfdZoI8RdmJD1al\n3Q7N9hofooSy4rj6E3txzWZCHJjHad2cnCp/O26HiReGAl7wTcfTmNdiFHhZQzm5\nJBkvWAiwuvQMNfEbnXxw6/vIDwKBgQDH7fX8gsc77JLvAWgp1MaQN/sbqVb6JeT1\nFQfR8E/WFCSmzQBtNzd5KgYuCeelwr/8DyYytvN2BzCYZXp73gI1jF3YlW5jVn74\nOY6TwQ095digwo6Z0yuxopdIOApKgAkL9PRKgNrqAf3NAyMua6lOGifzjDojC3KU\nfylQmxMn4wKBgHp2B9O/H0dEBw5JQ8W0+JX6yWQz7mEjGiR2/1W+XXb8hQ1zr709\nw1r6Gb+EghRpnZ3fBpYGGbYOMFx8wKHM+N6qW3F0ReX8v2juFGE8aRSa5oYBrWzt\nU16Idjbv8hj84cZ1PJmdyvDtpYn9rpWHOZl4rxEbPvbqkIsOMyNVqdT5AoGAOSge\nmwIIU2le2FVeohbibXiToWTYKMuMmURZ5/r72AgKMmWJKbAPe+Q3wBG01/7FRBpQ\noU8Ma0HC8s6QJbliiEyIx9JwrJWd1vkdecBHONrtA4ibm/5zD2WcOllLF+FitLhi\n3qnX6+6F0IaFGFBPJrTzlv0P4dTz/OAdv52V7GECgYEA2TttOKBAqWllgOaZOkql\nLVMJVmgR7s6tLi1+cEP8ZcapV9aRbRzTAKXm4f8AEhtlG9F9kCOvHYCYGi6JaiWJ\nZkHjeex3T+eE6Di6y5Bm/Ift5jtVhJ4jCVwHOKTMej79NPUFTJfv8hCo29haBDv6\nRXFrv+T21KCcw8k3sJeJWWQ=\n-----END 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-----";
12649
12655
  /*
12650
12656
  * The crypto algorithm used for importing key and signing string
12651
12657
  */
@@ -13073,6 +13079,21 @@ const productTagLinkedObject = (productTag) => {
13073
13079
  return Object.assign(Object.assign({}, productTag), { product: internalProduct ? productLinkedObject(internalProduct) : undefined });
13074
13080
  };
13075
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
+
13076
13097
  const postLinkedObject = (post) => {
13077
13098
  return shallowClone(post, {
13078
13099
  childrenPosts: post.children
@@ -13130,19 +13151,19 @@ const postLinkedObject = (post) => {
13130
13151
  getImageInfo() {
13131
13152
  var _a, _b;
13132
13153
  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
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)
13134
13155
  : undefined;
13135
13156
  },
13136
13157
  getVideoInfo() {
13137
13158
  var _a, _b, _c;
13138
13159
  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
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)
13140
13161
  : undefined;
13141
13162
  },
13142
13163
  getVideoThumbnailInfo() {
13143
13164
  var _a, _b;
13144
13165
  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
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)
13146
13167
  : undefined;
13147
13168
  },
13148
13169
  getFileInfo() {
@@ -14133,6 +14154,7 @@ const eventLinkedObject = (event) => {
14133
14154
  };
14134
14155
 
14135
14156
  const LinkedObject = {
14157
+ file: fileLinkedObject,
14136
14158
  ad: adLinkedObject,
14137
14159
  comment: commentLinkedObject,
14138
14160
  post: postLinkedObject,
@@ -15480,7 +15502,7 @@ const getFile = async (fileId) => {
15480
15502
  if (client.cache)
15481
15503
  ingestInCache({ files: [data] }, { cachedAt });
15482
15504
  return {
15483
- data,
15505
+ data: fileLinkedObject(data),
15484
15506
  cachedAt,
15485
15507
  };
15486
15508
  };
@@ -15507,7 +15529,7 @@ getFile.locally = (fileId) => {
15507
15529
  if (!cached)
15508
15530
  return;
15509
15531
  return {
15510
- data: cached.data,
15532
+ data: fileLinkedObject(cached.data),
15511
15533
  cachedAt: cached.cachedAt,
15512
15534
  };
15513
15535
  };
@@ -15644,7 +15666,7 @@ const uploadVideo = async (formData, feedType, onProgress) => {
15644
15666
  if (client.cache)
15645
15667
  ingestInCache({ files: data }, { cachedAt });
15646
15668
  return {
15647
- data,
15669
+ data: data.map(file => fileLinkedObject(file)),
15648
15670
  cachedAt,
15649
15671
  };
15650
15672
  };
@@ -15705,7 +15727,7 @@ const uploadImage = async (formData, onProgress, altText) => {
15705
15727
  if (client.cache)
15706
15728
  ingestInCache({ files: data }, { cachedAt });
15707
15729
  return {
15708
- data,
15730
+ data: data.map(file => fileLinkedObject(file)),
15709
15731
  cachedAt,
15710
15732
  };
15711
15733
  };
@@ -16668,6 +16690,39 @@ removeReaction.optimistically = (referenceType, referenceId, reactionName) => {
16668
16690
  return !((_d = reaction === null || reaction === void 0 ? void 0 : reaction.myReactions) === null || _d === void 0 ? void 0 : _d.includes(reactionName));
16669
16691
  };
16670
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
+
16671
16726
  const processDeleteChildPost = (payload) => {
16672
16727
  var _a;
16673
16728
  const post = payload.posts[0];
@@ -16679,7 +16734,10 @@ const processDeleteChildPost = (payload) => {
16679
16734
  }
16680
16735
  else {
16681
16736
  // child post in a parent post
16682
- const parentPost = (_a = pullFromCache(['post', 'get', post.parentPostId])) === null || _a === void 0 ? void 0 : _a.data;
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;
16683
16741
  if (!parentPost)
16684
16742
  return;
16685
16743
  pushToCache(['post', 'get', parentPost.postId], Object.assign(Object.assign({}, parentPost), { children: parentPost.children.filter(childId => childId !== post.postId) }));
@@ -16690,7 +16748,10 @@ const processCreateChildPost = (payload) => {
16690
16748
  const post = payload.posts[0];
16691
16749
  if (!post.parentId)
16692
16750
  return;
16693
- const parentPost = (_a = pullFromCache(['post', 'get', post.parentPostId])) === null || _a === void 0 ? void 0 : _a.data;
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;
16694
16755
  if (!parentPost)
16695
16756
  return;
16696
16757
  pushToCache(['post', 'get', parentPost.postId], Object.assign(Object.assign({}, parentPost), { children: [...new Set([post.postId, ...parentPost.children])] }));
package/dist/index.esm.js CHANGED
@@ -364,7 +364,13 @@ const normalize = (source) => Object.keys(source)
364
364
  * @category Cache
365
365
  * @hidden
366
366
  */
367
- const encodeKey = (key) => JSON.stringify(key, (_, val) => (typeof val === 'object' ? normalize(val) : val));
367
+ const encodeKey = (key) => JSON.stringify(key, (_, val) =>
368
+ // `typeof null` is `'object'`, so a nullish segment would reach normalize()
369
+ // and throw on Object.keys(null) — taking down whichever cache read built
370
+ // the key. Amity.Serializable does not admit null in the first place, so a
371
+ // null here is a payload that broke its own contract: encode it as null and
372
+ // let the miss be a miss.
373
+ val !== null && typeof val === 'object' ? normalize(val) : val);
368
374
  /**
369
375
  * Decodes a string back into a {@link Amity.CacheKey}
370
376
 
@@ -12626,7 +12632,7 @@ const getWatchSessionStorage = () => {
12626
12632
  return storageInstance;
12627
12633
  };
12628
12634
 
12629
- const privateKey = "-----BEGIN PRIVATE KEY-----\nMIIEvQIBADANBgkqhkiG9w0BAQEFAASCBKcwggSjAgEAAoIBAQDHo80SecH7FuF2\nhFYnb+l26/VN8UMLXAQFLnxciNTEwkGVFMpdezlH8rU2HtUJL4RETogbAOLVY0XM\njs6sPn8G1nALmh9qeDpUtVqFOVtBHxEZ910TLOtQiunjqJKO5nWdqZ71EC3OFluR\niGQkO84BiIFbv37ub7xl3S8XarbtKoLcyVpkDHi+1wx1pgCAn6gtBUgckPL5NR8j\nLseabl3HAXQfhTCKo4tmOFM2Dxwl1IUMmIJrJg/aIU/U0tj/1Eoo7mG0JcNWX19l\nW3EecCbi0ncCJOrkUdwlBrcjaMayaX/ubEwyUeTGiLdyc4L3GRLHjyK8xgVNXRMH\nbZWJ2a5NAgMBAAECggEASxuE+35zTFO/XydKgmvIGcWL9FbgMlXb7Vcf0nBoG945\nbiz0NVc2paraIhJXc608xbYF3qLmtAE1MVBI0ORyRdBHNxY024l/6H6SH60Ed+uI\nM4ysp5ourY6Vj+DLwpdRiI9YDjqYAQDIUmhNxJP7XPhOMoZI6st+xZQBM34ic/bv\nAMSJm9OZphSp3+qXVkFZztr2mxD2EZSJJLYxi8BCdgM2qhazalbcJ6zDKHCZWVWm\n8RRxDGldyMb/237JxETzP40tAlzOZDmBAbUgEnurDJ93RVDIE3rbZUshwgeQd18a\nem096mWgvB1AIKYgsTAR3pw+V19YWAjq/glP6fz8wQKBgQD/oQq+ukKF0PRgBeM5\ngeTjSwsdGppQLmf5ndujvoiz/TpdjDEPu6R8kigQr1rG2t4K/yfdZoI8RdmJD1al\n3Q7N9hofooSy4rj6E3txzWZCHJjHad2cnCp/O26HiReGAl7wTcfTmNdiFHhZQzm5\nJBkvWAiwuvQMNfEbnXxw6/vIDwKBgQDH7fX8gsc77JLvAWgp1MaQN/sbqVb6JeT1\nFQfR8E/WFCSmzQBtNzd5KgYuCeelwr/8DyYytvN2BzCYZXp73gI1jF3YlW5jVn74\nOY6TwQ095digwo6Z0yuxopdIOApKgAkL9PRKgNrqAf3NAyMua6lOGifzjDojC3KU\nfylQmxMn4wKBgHp2B9O/H0dEBw5JQ8W0+JX6yWQz7mEjGiR2/1W+XXb8hQ1zr709\nw1r6Gb+EghRpnZ3fBpYGGbYOMFx8wKHM+N6qW3F0ReX8v2juFGE8aRSa5oYBrWzt\nU16Idjbv8hj84cZ1PJmdyvDtpYn9rpWHOZl4rxEbPvbqkIsOMyNVqdT5AoGAOSge\nmwIIU2le2FVeohbibXiToWTYKMuMmURZ5/r72AgKMmWJKbAPe+Q3wBG01/7FRBpQ\noU8Ma0HC8s6QJbliiEyIx9JwrJWd1vkdecBHONrtA4ibm/5zD2WcOllLF+FitLhi\n3qnX6+6F0IaFGFBPJrTzlv0P4dTz/OAdv52V7GECgYEA2TttOKBAqWllgOaZOkql\nLVMJVmgR7s6tLi1+cEP8ZcapV9aRbRzTAKXm4f8AEhtlG9F9kCOvHYCYGi6JaiWJ\nZkHjeex3T+eE6Di6y5Bm/Ift5jtVhJ4jCVwHOKTMej79NPUFTJfv8hCo29haBDv6\nRXFrv+T21KCcw8k3sJeJWWQ=\n-----END PRIVATE KEY-----";
12635
+ 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
12636
  /*
12631
12637
  * The crypto algorithm used for importing key and signing string
12632
12638
  */
@@ -13054,6 +13060,21 @@ const productTagLinkedObject = (productTag) => {
13054
13060
  return Object.assign(Object.assign({}, productTag), { product: internalProduct ? productLinkedObject(internalProduct) : undefined });
13055
13061
  };
13056
13062
 
13063
+ const fileLinkedObject = (file) => {
13064
+ var _a, _b, _c;
13065
+ if (!file)
13066
+ return file;
13067
+ if (file.type === 'video') {
13068
+ const video = (_b = (_a = file.attributes) === null || _a === void 0 ? void 0 : _a.metadata) === null || _b === void 0 ? void 0 : _b.video;
13069
+ 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; } });
13070
+ }
13071
+ if (file.type === 'image') {
13072
+ const metadata = (_c = file.attributes) === null || _c === void 0 ? void 0 : _c.metadata;
13073
+ 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; } });
13074
+ }
13075
+ return file;
13076
+ };
13077
+
13057
13078
  const postLinkedObject = (post) => {
13058
13079
  return shallowClone(post, {
13059
13080
  childrenPosts: post.children
@@ -13111,19 +13132,19 @@ const postLinkedObject = (post) => {
13111
13132
  getImageInfo() {
13112
13133
  var _a, _b;
13113
13134
  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
13135
+ ? 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
13136
  : undefined;
13116
13137
  },
13117
13138
  getVideoInfo() {
13118
13139
  var _a, _b, _c;
13119
13140
  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
13141
+ ? 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
13142
  : undefined;
13122
13143
  },
13123
13144
  getVideoThumbnailInfo() {
13124
13145
  var _a, _b;
13125
13146
  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
13147
+ ? 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
13148
  : undefined;
13128
13149
  },
13129
13150
  getFileInfo() {
@@ -14114,6 +14135,7 @@ const eventLinkedObject = (event) => {
14114
14135
  };
14115
14136
 
14116
14137
  const LinkedObject = {
14138
+ file: fileLinkedObject,
14117
14139
  ad: adLinkedObject,
14118
14140
  comment: commentLinkedObject,
14119
14141
  post: postLinkedObject,
@@ -15461,7 +15483,7 @@ const getFile = async (fileId) => {
15461
15483
  if (client.cache)
15462
15484
  ingestInCache({ files: [data] }, { cachedAt });
15463
15485
  return {
15464
- data,
15486
+ data: fileLinkedObject(data),
15465
15487
  cachedAt,
15466
15488
  };
15467
15489
  };
@@ -15488,7 +15510,7 @@ getFile.locally = (fileId) => {
15488
15510
  if (!cached)
15489
15511
  return;
15490
15512
  return {
15491
- data: cached.data,
15513
+ data: fileLinkedObject(cached.data),
15492
15514
  cachedAt: cached.cachedAt,
15493
15515
  };
15494
15516
  };
@@ -15625,7 +15647,7 @@ const uploadVideo = async (formData, feedType, onProgress) => {
15625
15647
  if (client.cache)
15626
15648
  ingestInCache({ files: data }, { cachedAt });
15627
15649
  return {
15628
- data,
15650
+ data: data.map(file => fileLinkedObject(file)),
15629
15651
  cachedAt,
15630
15652
  };
15631
15653
  };
@@ -15686,7 +15708,7 @@ const uploadImage = async (formData, onProgress, altText) => {
15686
15708
  if (client.cache)
15687
15709
  ingestInCache({ files: data }, { cachedAt });
15688
15710
  return {
15689
- data,
15711
+ data: data.map(file => fileLinkedObject(file)),
15690
15712
  cachedAt,
15691
15713
  };
15692
15714
  };
@@ -16649,6 +16671,39 @@ removeReaction.optimistically = (referenceType, referenceId, reactionName) => {
16649
16671
  return !((_d = reaction === null || reaction === void 0 ? void 0 : reaction.myReactions) === null || _d === void 0 ? void 0 : _d.includes(reactionName));
16650
16672
  };
16651
16673
 
16674
+ /**
16675
+ * Resolves the id of the parent post that a child-post payload belongs to.
16676
+ *
16677
+ * `parentId` and `parentPostId` name the same post, but a payload does not
16678
+ * always carry both — and the delete/create child handlers decide *whether* a
16679
+ * post is a child from `parentId` while reading the cache with `parentPostId`.
16680
+ * When only the former is set that read builds `['post', 'get', undefined]`,
16681
+ * which cannot match anything and, when the value is null, breaks key encoding
16682
+ * outright. Reading whichever id is present keeps the decision and the lookup
16683
+ * on the same post.
16684
+ *
16685
+ * @param post the child post payload
16686
+ * @returns the parent post id, or undefined when the payload carries neither
16687
+ *
16688
+ * @category Post Events
16689
+ * @hidden
16690
+ */
16691
+ const resolveParentPostId = (post) => {
16692
+ if (post.parentPostId)
16693
+ return post.parentPostId;
16694
+ if (post.parentId) {
16695
+ // Diagnostic: we do not know yet whether the server actually emits this
16696
+ // shape. If this warning is never seen in practice the fallback can go.
16697
+ console.warn('[AmitySDK] post payload carries `parentId` without `parentPostId` — falling back to `parentId`', {
16698
+ postId: post.postId,
16699
+ parentId: post.parentId,
16700
+ parentPostId: post.parentPostId,
16701
+ });
16702
+ return post.parentId;
16703
+ }
16704
+ return undefined;
16705
+ };
16706
+
16652
16707
  const processDeleteChildPost = (payload) => {
16653
16708
  var _a;
16654
16709
  const post = payload.posts[0];
@@ -16660,7 +16715,10 @@ const processDeleteChildPost = (payload) => {
16660
16715
  }
16661
16716
  else {
16662
16717
  // child post in a parent post
16663
- const parentPost = (_a = pullFromCache(['post', 'get', post.parentPostId])) === null || _a === void 0 ? void 0 : _a.data;
16718
+ const parentPostId = resolveParentPostId(post);
16719
+ if (!parentPostId)
16720
+ return;
16721
+ const parentPost = (_a = pullFromCache(['post', 'get', parentPostId])) === null || _a === void 0 ? void 0 : _a.data;
16664
16722
  if (!parentPost)
16665
16723
  return;
16666
16724
  pushToCache(['post', 'get', parentPost.postId], Object.assign(Object.assign({}, parentPost), { children: parentPost.children.filter(childId => childId !== post.postId) }));
@@ -16671,7 +16729,10 @@ const processCreateChildPost = (payload) => {
16671
16729
  const post = payload.posts[0];
16672
16730
  if (!post.parentId)
16673
16731
  return;
16674
- const parentPost = (_a = pullFromCache(['post', 'get', post.parentPostId])) === null || _a === void 0 ? void 0 : _a.data;
16732
+ const parentPostId = resolveParentPostId(post);
16733
+ if (!parentPostId)
16734
+ return;
16735
+ const parentPost = (_a = pullFromCache(['post', 'get', parentPostId])) === null || _a === void 0 ? void 0 : _a.data;
16675
16736
  if (!parentPost)
16676
16737
  return;
16677
16738
  pushToCache(['post', 'get', parentPost.postId], Object.assign(Object.assign({}, parentPost), { children: [...new Set([post.postId, ...parentPost.children])] }));