@amityco/ts-sdk 7.1.1-c8d4edca.0 → 7.1.1-dbdbe662.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (35) hide show
  1. package/dist/@types/domains/channel.d.ts +3 -2
  2. package/dist/@types/domains/channel.d.ts.map +1 -1
  3. package/dist/channelRepository/events/onChannelDeleted.d.ts.map +1 -1
  4. package/dist/channelRepository/events/onChannelLeft.d.ts.map +1 -1
  5. package/dist/channelRepository/events/onChannelUnreadUpdatedLocal.d.ts +2 -2
  6. package/dist/channelRepository/internalApi/getTotalChannelsUnread.d.ts +11 -0
  7. package/dist/channelRepository/internalApi/getTotalChannelsUnread.d.ts.map +1 -0
  8. package/dist/channelRepository/observers/getTotalChannelsUnread.d.ts +20 -0
  9. package/dist/channelRepository/observers/getTotalChannelsUnread.d.ts.map +1 -0
  10. package/dist/channelRepository/observers/index.d.ts +1 -0
  11. package/dist/channelRepository/observers/index.d.ts.map +1 -1
  12. package/dist/channelRepository/utils/prepareChannelPayload.d.ts.map +1 -1
  13. package/dist/client/utils/ReadReceiptSync/readReceiptSyncEngine.d.ts.map +1 -1
  14. package/dist/index.cjs.js +186 -20
  15. package/dist/index.esm.js +186 -20
  16. package/dist/index.umd.js +4 -4
  17. package/dist/marker/events/onChannelUnreadInfoUpdatedLocal.d.ts +2 -2
  18. package/dist/messageRepository/events/onMessageCreated.d.ts.map +1 -1
  19. package/dist/messageRepository/observers/getMessage.d.ts.map +1 -1
  20. package/package.json +1 -1
  21. package/src/@types/domains/channel.ts +4 -2
  22. package/src/channelRepository/events/onChannelDeleted.ts +17 -4
  23. package/src/channelRepository/events/onChannelLeft.ts +11 -3
  24. package/src/channelRepository/events/onChannelUnreadUpdatedLocal.ts +2 -2
  25. package/src/channelRepository/internalApi/getTotalChannelsUnread.ts +38 -0
  26. package/src/channelRepository/observers/getTotalChannelsUnread.ts +129 -0
  27. package/src/channelRepository/observers/index.ts +1 -0
  28. package/src/channelRepository/utils/prepareChannelPayload.ts +16 -7
  29. package/src/client/utils/ReadReceiptSync/readReceiptSyncEngine.ts +5 -4
  30. package/src/marker/events/onChannelUnreadInfoUpdatedLocal.ts +2 -2
  31. package/src/messageRepository/events/onMessageCreated.ts +45 -1
  32. package/src/messageRepository/observers/getMessage.ts +0 -1
  33. package/dist/marker/events/onChannelUnreadUpdatedLocal.d.ts +0 -12
  34. package/dist/marker/events/onChannelUnreadUpdatedLocal.d.ts.map +0 -1
  35. package/src/marker/events/onChannelUnreadUpdatedLocal.ts +0 -29
@@ -53,6 +53,7 @@ declare global {
53
53
  type InternalChannel<T extends ChannelType = any> = Omit<StaticInternalChannel<T>, 'messageCount'> & {
54
54
  isMentioned: boolean;
55
55
  subChannelsUnreadCount: number;
56
+ unreadCount: number;
56
57
  };
57
58
  type Channel<T extends ChannelType = any> = InternalChannel<T> & {
58
59
  messagePreview?: Amity.MessagePreview | null;
@@ -89,9 +90,9 @@ declare global {
89
90
  channelId: Amity.Channel['channelId'];
90
91
  unreadCount: number;
91
92
  isMentioned: boolean;
92
- readToSegment: number;
93
+ readToSegment: number | null;
93
94
  lastSegment: number;
94
- lastMentionSegment: number;
95
+ lastMentionSegment: number | null;
95
96
  isDeleted: boolean;
96
97
  };
97
98
  }
@@ -1 +1 @@
1
- {"version":3,"file":"channel.d.ts","sourceRoot":"","sources":["../../../src/@types/domains/channel.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC;AAEV,OAAO,CAAC,MAAM,CAAC;IACb,UAAU,KAAK,CAAC;QACd,KAAK,WAAW,GAAG,WAAW,GAAG,cAAc,GAAG,WAAW,GAAG,MAAM,CAAC;QAEvE,KAAK,uBAAuB,GACxB,QAAQ,GACR,QAAQ,GACR,cAAc,GACd,eAAe,GACf,iBAAiB,GACjB,uBAAuB,GACvB,yBAAyB,GACzB,0BAA0B,GAC1B,4BAA4B,CAAC;QAEjC,WAAW,iBAAiB;YAC1B,gBAAgB,qBAAqB;YACrC,eAAe,oBAAoB;YACnC,OAAO,YAAY;YACnB,QAAQ,aAAa;YACrB,QAAQ,aAAa;YACrB,QAAQ,aAAa;YACrB,MAAM,WAAW;YACjB,MAAM,WAAW;YACjB,MAAM,WAAW;YACjB,aAAa,kBAAkB;YAC/B,eAAe,oBAAoB;YACnC,4BAA4B,iCAAiC;SAC9D;QAED,KAAK,UAAU,CAAC,CAAC,SAAS,WAAW,GAAG,GAAG,IAAI;YAC7C,GAAG,EAAE,MAAM,CAAC;YACZ,SAAS,EAAE,MAAM,CAAC;YAClB,iBAAiB,EAAE,MAAM,CAAC;YAC1B,eAAe,EAAE,MAAM,CAAC;YACxB,WAAW,CAAC,EAAE,MAAM,CAAC;YACrB,YAAY,CAAC,EAAE,KAAK,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC,QAAQ,CAAC,CAAC;YAC7C,IAAI,EAAE,CAAC,CAAC;YAER,UAAU,CAAC,EAAE,OAAO,CAAC;YAErB,OAAO,CAAC,EAAE,OAAO,CAAC;YAClB,WAAW,CAAC,EAAE,MAAM,CAAC;YAErB,aAAa,CAAC,EAAE,OAAO,CAAC;YACxB,SAAS,CAAC,EAAE,MAAM,CAAC;YACnB,eAAe,CAAC,EAAE,MAAM,CAAC;YACzB,gBAAgB,CAAC,EAAE,MAAM,CAAC;YAE1B,wBAAwB,CAAC,EAAE,OAAO,CAAC;YACnC,4BAA4B,CAAC,EAAE,MAAM,CAAC;YAEtC,WAAW,CAAC,EAAE,MAAM,CAAC;YACrB,YAAY,EAAE,MAAM,CAAC;YACrB,oBAAoB,CAAC,EAAE,MAAM,CAAC;YAE9B,gBAAgB,CAAC,EAAE,MAAM,CAAC;YAE1B,QAAQ,CAAC,EAAE,OAAO,CAAC;YAEnB,YAAY,EAAE,KAAK,CAAC,SAAS,CAAC;SAC/B,GAAG,KAAK,CAAC,QAAQ,GAChB,KAAK,CAAC,QAAQ,GACd,KAAK,CAAC,UAAU,GAChB,KAAK,CAAC,UAAU,GAChB,KAAK,CAAC,YAAY,CAAC;QAGrB,KAAK,qBAAqB,CAAC,CAAC,SAAS,WAAW,GAAG,GAAG,IAAI,UAAU,CAAC,CAAC,CAAC,GAAG;YACxE,mBAAmB,EAAE,MAAM,CAAC;YAC5B,oBAAoB,EAAE,OAAO,CAAC;SAC/B,CAAC;QAEF;;;;WAIG;QACH,KAAK,eAAe,CAAC,CAAC,SAAS,WAAW,GAAG,GAAG,IAAI,IAAI,CACtD,qBAAqB,CAAC,CAAC,CAAC,EACxB,cAAc,CACf,GAAG;YACF,WAAW,EAAE,OAAO,CAAC;YACrB,sBAAsB,EAAE,MAAM,CAAC;SAChC,CAAC;QAIF,KAAK,OAAO,CAAC,CAAC,SAAS,WAAW,GAAG,GAAG,IAAI,eAAe,CAAC,CAAC,CAAC,GAAG;YAC/D,cAAc,CAAC,EAAE,KAAK,CAAC,cAAc,GAAG,IAAI,CAAC;YAC7C,UAAU,EAAE,MAAM,OAAO,CAAC,OAAO,CAAC,CAAC;SACpC,CAAC;QAEF,KAAK,aAAa,GAAG;YACnB,UAAU,CAAC,EAAE,KAAK,CAAC,OAAO,CAAC,WAAW,CAAC,EAAE,CAAC;YAC1C,WAAW,CAAC,EAAE,MAAM,CAAC;YACrB,UAAU,CAAC,EAAE,KAAK,GAAG,QAAQ,GAAG,WAAW,CAAC;YAC5C,MAAM,CAAC,EAAE,aAAa,GAAG,cAAc,GAAG,aAAa,GAAG,cAAc,CAAC;YACzE,KAAK,CAAC,EAAE,KAAK,CAAC,WAAW,EAAE,CAAC;YAC5B,SAAS,CAAC,EAAE,KAAK,CAAC,OAAO,CAAC,WAAW,CAAC,CAAC;YACvC,IAAI,CAAC,EAAE,KAAK,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAC;YAC9B,WAAW,CAAC,EAAE,KAAK,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAC;YACrC,KAAK,CAAC,EAAE,MAAM,CAAC;YACf,IAAI,CAAC,EAAE,KAAK,CAAC,IAAI,CAAC;SACnB,CAAC;QAEF,KAAK,qBAAqB,GAAG,KAAK,CAAC,oBAAoB,CAAC,IAAI,CAAC,aAAa,EAAE,MAAM,CAAC,CAAC,CAAC;QAErF,KAAK,0BAA0B,GAAG,KAAK,CAAC,mBAAmB,CACzD,KAAK,CAAC,OAAO,CAAC,WAAW,CAAC,EAC1B,IAAI,CAAC,aAAa,EAAE,MAAM,CAAC,CAC5B,CAAC;QAEF,KAAK,mBAAmB,GAAG;YACzB,SAAS,EAAE,KAAK,CAAC,OAAO,CAAC,WAAW,CAAC,CAAC;YACtC,WAAW,CAAC,EAAE,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC,UAAU,CAAC,SAAS,CAAC,CAAC,YAAY,CAAC,EAAE,MAAM,CAAC,GAAG,OAAO,CAAC,CAAC;YAC1F,KAAK,CAAC,EAAE,MAAM,EAAE,CAAC;YACjB,MAAM,CAAC,EAAE,cAAc,GAAG,aAAa,CAAC;YACxC,MAAM,CAAC,EAAE,MAAM,CAAC;YAChB,IAAI,CAAC,EAAE,KAAK,CAAC,IAAI,CAAC;YAClB,cAAc,CAAC,EAAE,OAAO,CAAC;SAC1B,CAAC;QAEF,KAAK,oBAAoB,GAAG,KAAK,CAAC,oBAAoB,CAAC,IAAI,CAAC,mBAAmB,EAAE,QAAQ,CAAC,CAAC,CAAC;QAE5F,KAAK,4BAA4B,GAAG,KAAK,CAAC,oBAAoB,CAC5D,IAAI,CAAC,mBAAmB,EAAE,MAAM,CAAC,CAClC,CAAC;QAEF,KAAK,kCAAkC,GAAG,KAAK,CAAC,oBAAoB,CAClE,IAAI,CAAC,oBAAoB,EAAE,MAAM,CAAC,CACnC,CAAC;QAEF,KAAK,iCAAiC,GAAG,KAAK,CAAC,mBAAmB,CAChE,KAAK,CAAC,UAAU,CAAC,SAAS,CAAC,CAAC,QAAQ,CAAC,EACrC,IAAI,CAAC,mBAAmB,EAAE,MAAM,CAAC,CAClC,CAAC;QAGF,KAAK,aAAa,GAAG;YACnB,SAAS,EAAE,KAAK,CAAC,OAAO,CAAC,WAAW,CAAC,CAAC;YACtC,WAAW,EAAE,MAAM,CAAC;YACpB,WAAW,EAAE,OAAO,CAAC;YACrB,aAAa,EAAE,MAAM,CAAC;YACtB,WAAW,EAAE,MAAM,CAAC;YACpB,kBAAkB,EAAE,MAAM,CAAC;YAC3B,SAAS,EAAE,OAAO,CAAC;SACpB,CAAC;KACH;CACF"}
1
+ {"version":3,"file":"channel.d.ts","sourceRoot":"","sources":["../../../src/@types/domains/channel.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"onChannelDeleted.d.ts","sourceRoot":"","sources":["../../../src/channelRepository/events/onChannelDeleted.ts"],"names":[],"mappings":"AAuBA,eAAO,MAAM,gBAAgB,aAAc,MAAM,QAAQ,CAAC,MAAM,qBAAqB,CAAC,eAuBrF,CAAC"}
1
+ {"version":3,"file":"onChannelDeleted.d.ts","sourceRoot":"","sources":["../../../src/channelRepository/events/onChannelDeleted.ts"],"names":[],"mappings":"AAwBA,eAAO,MAAM,gBAAgB,aAAc,MAAM,QAAQ,CAAC,MAAM,qBAAqB,CAAC,eAmCrF,CAAC"}
@@ -1 +1 @@
1
- {"version":3,"file":"onChannelLeft.d.ts","sourceRoot":"","sources":["../../../src/channelRepository/events/onChannelLeft.ts"],"names":[],"mappings":"AA0BA,eAAO,MAAM,aAAa,uBACJ,MAAM,qBAAqB,UAAU,MAAM,UAAU,CAAC,SAAS,CAAC,KAAK,IAAI,eAkC9F,CAAC"}
1
+ {"version":3,"file":"onChannelLeft.d.ts","sourceRoot":"","sources":["../../../src/channelRepository/events/onChannelLeft.ts"],"names":[],"mappings":"AA2BA,eAAO,MAAM,aAAa,uBACJ,MAAM,qBAAqB,UAAU,MAAM,UAAU,CAAC,SAAS,CAAC,KAAK,IAAI,eAyC9F,CAAC"}
@@ -1,12 +1,12 @@
1
1
  /**
2
2
  * Internal used only
3
3
  *
4
- * Fired when an {@link Amity.userMessageFeedMarkers} has been resolved by Object Rsesolver
4
+ * Fired when an {@link Amity.ChannelUnread} has been updated.
5
5
  *
6
6
  * @param callback The function to call when the event was fired
7
7
  * @returns an {@link Amity.Unsubscriber} function to stop listening
8
8
  *
9
- * @category MessageMarker Events
9
+ * @category Channel Events
10
10
  */
11
11
  export declare const onChannelUnreadUpdatedLocal: (callback: Amity.Listener<Amity.Events['local.channelUnread.updated']>) => Amity.Unsubscriber;
12
12
  //# sourceMappingURL=onChannelUnreadUpdatedLocal.d.ts.map
@@ -0,0 +1,11 @@
1
+ /**
2
+ *
3
+ * Calculate user unread from {@link Amity.ChannelUnread} objects
4
+ *
5
+ * @returns the {@link Amity.UserUnread} objects
6
+ *
7
+ * @category Channel API
8
+ * @async
9
+ */
10
+ export declare const getTotalChannelsUnread: () => Amity.Cached<Amity.UserUnread>;
11
+ //# sourceMappingURL=getTotalChannelsUnread.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"getTotalChannelsUnread.d.ts","sourceRoot":"","sources":["../../../src/channelRepository/internalApi/getTotalChannelsUnread.ts"],"names":[],"mappings":"AAGA;;;;;;;;GAQG;AAEH,eAAO,MAAM,sBAAsB,QAAO,MAAM,MAAM,CAAC,MAAM,UAAU,CAwBtE,CAAC"}
@@ -0,0 +1,20 @@
1
+ /**
2
+ * ```js
3
+ * import { ChannelRepository } from '@amityco/ts-sdk';
4
+ *
5
+ * let totalChannelsUnread;
6
+ *
7
+ * const unsubscribe = ChannelRepository.getTotalChannelsUnread(response => {
8
+ * unread = response.data;
9
+ * });
10
+ * ```
11
+ *
12
+ * Observe all mutation on a given {@link Amity.UserUnread}
13
+ *
14
+ * @returns An {@link Amity.UserUnread} function to run when willing to stop observing the message
15
+ *
16
+ * @category User Unread Live Object
17
+ *
18
+ */
19
+ export declare const getTotalChannelsUnread: (callback: Amity.LiveObjectCallback<Amity.UserUnread | undefined>) => Amity.Unsubscriber;
20
+ //# sourceMappingURL=getTotalChannelsUnread.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"getTotalChannelsUnread.d.ts","sourceRoot":"","sources":["../../../src/channelRepository/observers/getTotalChannelsUnread.ts"],"names":[],"mappings":"AAgBA;;;;;;;;;;;;;;;;;GAiBG;AAEH,eAAO,MAAM,sBAAsB,aACvB,MAAM,kBAAkB,CAAC,MAAM,UAAU,GAAG,SAAS,CAAC,KAC/D,MAAM,YA2FR,CAAC"}
@@ -1,3 +1,4 @@
1
1
  export * from './getChannel';
2
2
  export * from './getChannels';
3
+ export * from './getTotalChannelsUnread';
3
4
  //# sourceMappingURL=index.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/channelRepository/observers/index.ts"],"names":[],"mappings":"AAAA,cAAc,cAAc,CAAC;AAC7B,cAAc,eAAe,CAAC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/channelRepository/observers/index.ts"],"names":[],"mappings":"AAAA,cAAc,cAAc,CAAC;AAC7B,cAAc,eAAe,CAAC;AAC9B,cAAc,0BAA0B,CAAC"}
@@ -1 +1 @@
1
- {"version":3,"file":"prepareChannelPayload.d.ts","sourceRoot":"","sources":["../../../src/channelRepository/utils/prepareChannelPayload.ts"],"names":[],"mappings":"AAUA,eAAO,MAAM,4BAA4B,UAA6C,CAAC;AACvF,eAAO,MAAM,oBAAoB,aAAc,KAAK,MAAM,UAAU,EAAE,MAAM,CAAC,YAChC,CAAC;AAE9C,wBAAgB,cAAc,CAC5B,OAAO,EAAE,KAAK,CAAC,UAAU,EACzB,OAAO,GAAE;IAAE,uBAAuB,CAAC,EAAE,OAAO,CAAA;CAAsC,GACjF,KAAK,CAAC,qBAAqB,CAmB7B;AAED,eAAO,MAAM,qBAAqB,eACpB,MAAM,cAAc,YACvB;IAAE,uBAAuB,CAAC,EAAE,OAAO,CAAA;CAAE,SAO/C,CAAC;AAiCF,eAAO,MAAM,qBAAqB,eACpB,MAAM,cAAc,YACvB;IAAE,uBAAuB,CAAC,EAAE,OAAO,CAAA;CAAE,KAC7C,QAAQ,MAAM,uBAAuB,CA2DvC,CAAC"}
1
+ {"version":3,"file":"prepareChannelPayload.d.ts","sourceRoot":"","sources":["../../../src/channelRepository/utils/prepareChannelPayload.ts"],"names":[],"mappings":"AAUA,eAAO,MAAM,4BAA4B,UAA6C,CAAC;AACvF,eAAO,MAAM,oBAAoB,aAAc,KAAK,MAAM,UAAU,EAAE,MAAM,CAAC,YAChC,CAAC;AAE9C,wBAAgB,cAAc,CAC5B,OAAO,EAAE,KAAK,CAAC,UAAU,EACzB,OAAO,GAAE;IAAE,uBAAuB,CAAC,EAAE,OAAO,CAAA;CAAsC,GACjF,KAAK,CAAC,qBAAqB,CAmB7B;AAED,eAAO,MAAM,qBAAqB,eACpB,MAAM,cAAc,YACvB;IAAE,uBAAuB,CAAC,EAAE,OAAO,CAAA;CAAE,SAO/C,CAAC;AA0CF,eAAO,MAAM,qBAAqB,eACpB,MAAM,cAAc,YACvB;IAAE,uBAAuB,CAAC,EAAE,OAAO,CAAA;CAAE,KAC7C,QAAQ,MAAM,uBAAuB,CA2DvC,CAAC"}
@@ -1 +1 @@
1
- {"version":3,"file":"readReceiptSyncEngine.d.ts","sourceRoot":"","sources":["../../../../src/client/utils/ReadReceiptSync/readReceiptSyncEngine.ts"],"names":[],"mappings":"AAKA,qBAAa,4BAA4B;IACvC,OAAO,CAAC,MAAM,CAAe;IAE7B,OAAO,CAAC,QAAQ,CAAQ;IAExB,OAAO,CAAC,SAAS,CAAK;IAEtB,OAAO,CAAC,cAAc,CAAO;IAE7B,OAAO,CAAC,QAAQ,CAAkC;IAElD,OAAO,CAAC,KAAK,CAA2B;IAGxC,OAAO,CAAC,qBAAqB,CAAK;;IASlC,oBAAoB;IAQpB,gBAAgB,IAAI,IAAI;IAUxB,OAAO,CAAC,aAAa;IAYrB,OAAO,CAAC,eAAe;YAaT,WAAW;IAuCzB,OAAO,CAAC,8BAA8B;IAOtC,OAAO,CAAC,6BAA6B;IAerC,oBAAoB,IAAI,IAAI;IAI5B,kBAAkB,IAAI,IAAI;IAK1B,cAAc,IAAI,IAAI;IAKtB,gBAAgB,IAAI,IAAI;IAKxB,eAAe,IAAI,IAAI;IAKvB,QAAQ,CAAC,SAAS,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,GAAG,IAAI;IAmBlD,OAAO,CAAC,kBAAkB;IAmC1B,OAAO,CAAC,UAAU;IAMlB,OAAO,CAAC,UAAU;CASnB;;;;AAID,wBAME"}
1
+ {"version":3,"file":"readReceiptSyncEngine.d.ts","sourceRoot":"","sources":["../../../../src/client/utils/ReadReceiptSync/readReceiptSyncEngine.ts"],"names":[],"mappings":"AAKA,qBAAa,4BAA4B;IACvC,OAAO,CAAC,MAAM,CAAe;IAE7B,OAAO,CAAC,QAAQ,CAAQ;IAExB,OAAO,CAAC,SAAS,CAAK;IAEtB,OAAO,CAAC,cAAc,CAAO;IAE7B,OAAO,CAAC,QAAQ,CAAkC;IAElD,OAAO,CAAC,KAAK,CAA2B;IAGxC,OAAO,CAAC,qBAAqB,CAAK;;IASlC,oBAAoB;IAQpB,gBAAgB,IAAI,IAAI;IASxB,OAAO,CAAC,aAAa;IAYrB,OAAO,CAAC,eAAe;YAaT,WAAW;IAuCzB,OAAO,CAAC,8BAA8B;IAOtC,OAAO,CAAC,6BAA6B;IAerC,oBAAoB,IAAI,IAAI;IAI5B,kBAAkB,IAAI,IAAI;IAK1B,cAAc,IAAI,IAAI;IAKtB,gBAAgB,IAAI,IAAI;IAKxB,eAAe,IAAI,IAAI;IAKvB,QAAQ,CAAC,SAAS,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,GAAG,IAAI;IAqBlD,OAAO,CAAC,kBAAkB;IAmC1B,OAAO,CAAC,UAAU;IAMlB,OAAO,CAAC,UAAU;CASnB;;;;AAID,wBAME"}
package/dist/index.cjs.js CHANGED
@@ -5627,7 +5627,6 @@ class MessageReadReceiptSyncEngine {
5627
5627
  if (this.jobQueue.length === 0 || this.isActive === false)
5628
5628
  return;
5629
5629
  const readReceipts = this.getReadReceipts();
5630
- console.log('[New 🌟 readReceipts] Sync read receipts', readReceipts);
5631
5630
  if (readReceipts) {
5632
5631
  this.markReadApi(readReceipts);
5633
5632
  }
@@ -5729,8 +5728,9 @@ class MessageReadReceiptSyncEngine {
5729
5728
  // Step 1: Optimistic update of channelUnread.readToSegment to message.segment and update unreadCount value
5730
5729
  const cacheKey = ['channelUnread', 'get', channelId];
5731
5730
  const channelUnread = (_a = pullFromCache(cacheKey)) === null || _a === void 0 ? void 0 : _a.data;
5732
- console.log('[New 🌟] Mark read => channel unread', channelUnread);
5733
- if (channelUnread && segment > channelUnread.readToSegment) {
5731
+ if (typeof (channelUnread === null || channelUnread === void 0 ? void 0 : channelUnread.readToSegment) === 'number' &&
5732
+ channelUnread &&
5733
+ segment > channelUnread.readToSegment) {
5734
5734
  channelUnread.readToSegment = segment;
5735
5735
  channelUnread.unreadCount = Math.max(channelUnread.lastSegment - segment, 0);
5736
5736
  pushToCache(cacheKey, channelUnread);
@@ -7063,17 +7063,24 @@ const preUpdateChannelCache = (rawPayload, options = { isMessagePreviewUpdated:
7063
7063
  const updateChannelUnread = ({ currentUserId, channels, channelUsers, }) => {
7064
7064
  for (let i = 0; i < channels.length; i += 1) {
7065
7065
  const cacheKey = ['channelUnread', 'get', channels[i].channelId];
7066
- const { readToSegment, lastMentionedSegment } = channelUsers.find(channelUser => channelUser.channelId === channels[i].channelId && channelUser.userId === currentUserId) || {
7067
- readToSegment: 0,
7068
- lastMentionedSegment: 0,
7069
- };
7066
+ const channelUser = channelUsers.find(channelUser => channelUser.channelId === channels[i].channelId && channelUser.userId === currentUserId);
7067
+ let unreadCount = 0;
7068
+ let readToSegment = null;
7069
+ let lastMentionedSegment = null;
7070
+ let isMentioned = false;
7071
+ if (channelUser) {
7072
+ readToSegment = channelUser.readToSegment;
7073
+ lastMentionedSegment = channelUser.lastMentionedSegment;
7074
+ unreadCount = Math.max(channels[i].messageCount - readToSegment, 0);
7075
+ isMentioned = lastMentionedSegment > readToSegment;
7076
+ }
7070
7077
  pushToCache(cacheKey, {
7071
7078
  channelId: channels[i].channelId,
7072
7079
  lastSegment: channels[i].messageCount,
7073
7080
  readToSegment,
7074
7081
  lastMentionedSegment,
7075
- unreadCount: channels[i].messageCount - readToSegment,
7076
- isMentioned: lastMentionedSegment > readToSegment,
7082
+ unreadCount,
7083
+ isMentioned,
7077
7084
  isDeleted: channels[i].isDeleted,
7078
7085
  });
7079
7086
  }
@@ -7919,12 +7926,21 @@ const onChannelDeleted = (callback) => {
7919
7926
  const client = getActiveClient();
7920
7927
  const filter = async (payload) => {
7921
7928
  const data = await prepareChannelPayload(payload);
7922
- if (client.isUnreadCountEnabled && client.getMarkerSyncConsistentMode()) {
7923
- data.channels.forEach(channel => {
7929
+ const isConsistentMode = client.getMarkerSyncConsistentMode() && client.isUnreadCountEnabled;
7930
+ const isLegacyUnreadCount = client.useLegacyUnreadCount;
7931
+ data.channels.forEach(channel => {
7932
+ if (isConsistentMode) {
7924
7933
  addFlagIsDeletedSubChannelUnreadByChannelId(channel.channelId);
7925
7934
  deleteChannelUnreadByChannelId(channel.channelId);
7926
- });
7927
- }
7935
+ }
7936
+ else if (isLegacyUnreadCount) {
7937
+ const cacheKey = ['channelUnread', 'get', channel.channelId];
7938
+ const cache = pullFromCache(cacheKey);
7939
+ if (cache) {
7940
+ pushToCache(cacheKey, Object.assign(Object.assign({}, cache), { isDeleted: true }));
7941
+ }
7942
+ }
7943
+ });
7928
7944
  ingestInCache(data);
7929
7945
  callbacks$b.forEach(cb => cb(data.channels[0]));
7930
7946
  };
@@ -8623,10 +8639,17 @@ const onChannelLeft = (callback) => {
8623
8639
  const preparedPayload = await prepareChannelPayload(payload, {
8624
8640
  isMessagePreviewUpdated: isLeftByMe,
8625
8641
  });
8626
- if (client.isUnreadCountEnabled && client.getMarkerSyncConsistentMode() && isLeftByMe) {
8642
+ const isConsistentMode = client.getMarkerSyncConsistentMode() && client.isUnreadCountEnabled;
8643
+ const isLegacyUnreadCount = client.useLegacyUnreadCount;
8644
+ if (isLeftByMe) {
8627
8645
  preparedPayload.channels.forEach(channel => {
8628
- addFlagIsDeletedSubChannelUnreadByChannelId(channel.channelId);
8629
- deleteChannelUnreadByChannelId(channel.channelId);
8646
+ if (isConsistentMode) {
8647
+ addFlagIsDeletedSubChannelUnreadByChannelId(channel.channelId);
8648
+ deleteChannelUnreadByChannelId(channel.channelId);
8649
+ }
8650
+ else if (isLegacyUnreadCount) {
8651
+ dropFromCache(['channelUnread', 'get', channel.channelId]);
8652
+ }
8630
8653
  });
8631
8654
  }
8632
8655
  const { channels, channelUsers } = preparedPayload;
@@ -8894,6 +8917,34 @@ const onMessageCreatedMqtt = (callback) => {
8894
8917
  reCalculateChannelUnreadInfo(message.channelId);
8895
8918
  });
8896
8919
  }
8920
+ if (client.useLegacyUnreadCount) {
8921
+ rawPayload.messages.forEach(message => {
8922
+ var _a, _b;
8923
+ const channelUnread = (_a = pullFromCache([
8924
+ 'channelUnread',
8925
+ 'get',
8926
+ message.channelId,
8927
+ ])) === null || _a === void 0 ? void 0 : _a.data;
8928
+ if (!channelUnread ||
8929
+ channelUnread.lastSegment >= message.segment ||
8930
+ typeof channelUnread.readToSegment !== 'number' ||
8931
+ typeof channelUnread.lastMentionSegment !== 'number')
8932
+ return;
8933
+ const lastSegment = message.segment;
8934
+ const isMentionedInMessage = (_b = message.mentionedUsers) === null || _b === void 0 ? void 0 : _b.some(mention => {
8935
+ return (mention.type === 'channel' ||
8936
+ (mention.type === 'user' &&
8937
+ client.userId &&
8938
+ mention.userPublicIds.includes(client.userId)));
8939
+ });
8940
+ const lastMentionSegment = isMentionedInMessage
8941
+ ? message.segment
8942
+ : channelUnread.lastMentionSegment;
8943
+ const updatedChannelUnread = Object.assign(Object.assign({}, channelUnread), { lastSegment, unreadCount: Math.max(lastSegment - channelUnread.readToSegment, 0), lastMentionSegment, isMentioned: !(channelUnread.readToSegment >= lastMentionSegment) });
8944
+ pushToCache(['channelUnread', 'get', message.channelId], updatedChannelUnread);
8945
+ fireEvent('local.channelUnread.updated', updatedChannelUnread);
8946
+ });
8947
+ }
8897
8948
  // Update in cache
8898
8949
  ingestInCache(payload);
8899
8950
  payload.messages.forEach(message => {
@@ -16736,12 +16787,12 @@ var index$f = /*#__PURE__*/Object.freeze({
16736
16787
  /**
16737
16788
  * Internal used only
16738
16789
  *
16739
- * Fired when an {@link Amity.userMessageFeedMarkers} has been resolved by Object Rsesolver
16790
+ * Fired when an {@link Amity.channelUnreadInfo} has been updated.
16740
16791
  *
16741
16792
  * @param callback The function to call when the event was fired
16742
16793
  * @returns an {@link Amity.Unsubscriber} function to stop listening
16743
16794
  *
16744
- * @category MessageMarker Events
16795
+ * @category ChannelMarker Events
16745
16796
  */
16746
16797
  const onChannelUnreadInfoUpdatedLocal = (callback) => {
16747
16798
  const client = getActiveClient();
@@ -16754,12 +16805,12 @@ const onChannelUnreadInfoUpdatedLocal = (callback) => {
16754
16805
  /**
16755
16806
  * Internal used only
16756
16807
  *
16757
- * Fired when an {@link Amity.userMessageFeedMarkers} has been resolved by Object Rsesolver
16808
+ * Fired when an {@link Amity.ChannelUnread} has been updated.
16758
16809
  *
16759
16810
  * @param callback The function to call when the event was fired
16760
16811
  * @returns an {@link Amity.Unsubscriber} function to stop listening
16761
16812
  *
16762
- * @category MessageMarker Events
16813
+ * @category Channel Events
16763
16814
  */
16764
16815
  const onChannelUnreadUpdatedLocal = (callback) => {
16765
16816
  const client = getActiveClient();
@@ -17551,6 +17602,120 @@ const getChannels = (params, callback, config) => {
17551
17602
  };
17552
17603
  /* end_public_function */
17553
17604
 
17605
+ /**
17606
+ *
17607
+ * Calculate user unread from {@link Amity.ChannelUnread} objects
17608
+ *
17609
+ * @returns the {@link Amity.UserUnread} objects
17610
+ *
17611
+ * @category Channel API
17612
+ * @async
17613
+ */
17614
+ const getTotalChannelsUnread$1 = () => {
17615
+ var _a;
17616
+ const client = getActiveClient();
17617
+ client.log('channel/getTotalChannelsUnread.locally');
17618
+ const cachedChannelsUnread = ((_a = queryCache(['channelUnread', 'get'])) === null || _a === void 0 ? void 0 : _a.filter(({ data }) => {
17619
+ return !data.isDeleted;
17620
+ })) || [];
17621
+ const totalChannelsUnread = (cachedChannelsUnread === null || cachedChannelsUnread === void 0 ? void 0 : cachedChannelsUnread.reduce((acc, { data }) => {
17622
+ acc.unreadCount += data.unreadCount;
17623
+ acc.isMentioned = acc.isMentioned || data.isMentioned;
17624
+ return acc;
17625
+ }, { unreadCount: 0, isMentioned: false })) || { unreadCount: 0, isMentioned: false };
17626
+ const cachedAt = client.cache && Date.now();
17627
+ return {
17628
+ data: totalChannelsUnread,
17629
+ cachedAt,
17630
+ };
17631
+ };
17632
+
17633
+ /* begin_public_function
17634
+ id: totalChannelsUnread.get
17635
+ */
17636
+ /**
17637
+ * ```js
17638
+ * import { ChannelRepository } from '@amityco/ts-sdk';
17639
+ *
17640
+ * let totalChannelsUnread;
17641
+ *
17642
+ * const unsubscribe = ChannelRepository.getTotalChannelsUnread(response => {
17643
+ * unread = response.data;
17644
+ * });
17645
+ * ```
17646
+ *
17647
+ * Observe all mutation on a given {@link Amity.UserUnread}
17648
+ *
17649
+ * @returns An {@link Amity.UserUnread} function to run when willing to stop observing the message
17650
+ *
17651
+ * @category User Unread Live Object
17652
+ *
17653
+ */
17654
+ const getTotalChannelsUnread = (callback) => {
17655
+ const { _id: userId } = getActiveUser();
17656
+ if (!userId)
17657
+ throw new ASCError('The _id has not been defined in ActiveUser', 800000 /* Amity.ClientError.UNKNOWN_ERROR */, "error" /* Amity.ErrorLevel.ERROR */);
17658
+ const { log, cache } = getActiveClient();
17659
+ if (!cache) {
17660
+ console.log('For using Live Object feature you need to enable Cache!');
17661
+ }
17662
+ const timestamp = Date.now();
17663
+ log(`liveTotalChannelsUnread(tmpid: ${timestamp}) > listen`);
17664
+ const disposers = [];
17665
+ let isUnsyncedModel = false; // for messages
17666
+ let model;
17667
+ const dispatcher = (data) => {
17668
+ const { data: userUnread } = data;
17669
+ const callbackModel = userUnread
17670
+ ? {
17671
+ unreadCount: userUnread.unreadCount,
17672
+ isMentioned: userUnread.isMentioned,
17673
+ }
17674
+ : undefined;
17675
+ model = callbackModel ? convertGetterPropsToStatic(callbackModel) : callbackModel;
17676
+ callback({
17677
+ data: callbackModel
17678
+ ? Object.assign(Object.assign({}, callbackModel), { isMentioned: callbackModel.isMentioned }) : callbackModel,
17679
+ loading: data.loading,
17680
+ error: data.error,
17681
+ });
17682
+ };
17683
+ const realtimeRouter = (userUnread) => {
17684
+ if (isEqual(model, userUnread))
17685
+ return;
17686
+ dispatcher({
17687
+ loading: false,
17688
+ data: userUnread,
17689
+ });
17690
+ };
17691
+ const onFetch = () => {
17692
+ const query = createQuery(async () => getTotalChannelsUnread$1());
17693
+ runQuery(query, ({ error, data, loading, origin, cachedAt }) => {
17694
+ if (cachedAt === UNSYNCED_OBJECT_CACHED_AT_VALUE) {
17695
+ dispatcher({
17696
+ data,
17697
+ origin,
17698
+ loading: false,
17699
+ error: new ASCApiError(UNSYNCED_OBJECT_CACHED_AT_MESSAGE, 800800 /* Amity.ClientError.DISALOOW_UNSYNCED_OBJECT */, "error" /* Amity.ErrorLevel.ERROR */),
17700
+ });
17701
+ isUnsyncedModel = true;
17702
+ disposers.forEach(fn => fn());
17703
+ }
17704
+ else if (!isUnsyncedModel) {
17705
+ dispatcher({ loading, data, origin, error });
17706
+ }
17707
+ if (error) {
17708
+ disposers.forEach(fn => fn());
17709
+ }
17710
+ });
17711
+ };
17712
+ disposers.push(onChannelUnreadUpdatedLocal(realtimeRouter));
17713
+ onFetch();
17714
+ return () => {
17715
+ disposers.forEach(fn => fn());
17716
+ };
17717
+ };
17718
+
17554
17719
  /* begin_public_function
17555
17720
  id: channel.member.add
17556
17721
  */
@@ -18154,6 +18319,7 @@ var index$c = /*#__PURE__*/Object.freeze({
18154
18319
  onChannelMemberRoleRemoved: onChannelMemberRoleRemoved,
18155
18320
  getChannel: getChannel,
18156
18321
  getChannels: getChannels,
18322
+ getTotalChannelsUnread: getTotalChannelsUnread,
18157
18323
  MARKER_INCLUDED_CHANNEL_TYPE: MARKER_INCLUDED_CHANNEL_TYPE,
18158
18324
  isUnreadCountSupport: isUnreadCountSupport,
18159
18325
  convertFromRaw: convertFromRaw,