@seaverse/conversation-sdk 0.2.2 → 0.2.3

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.
@@ -27,19 +27,11 @@ export interface ListAppsWithConversationsConfig {
27
27
  * List apps with their conversations (aggregated query)
28
28
  * Returns ALL conversations for each app, sorted by updated_at descending (newest first).
29
29
  *
30
- * Implementation: Real-time message counting
31
- * - Queries all conversations
32
- * - Counts messages for each conversation from messages table
33
- * - Returns all conversations sorted by last update time
34
- *
35
- * This ensures accuracy even if message_count field is not maintained.
36
- *
37
30
  * Replaces `/api/apps/with-conversations` endpoint
38
31
  *
39
32
  * @example
40
33
  * const result = await listAppsWithConversations({
41
34
  * db: dbClient,
42
- * getUrlSessionToken,
43
35
  * accessToken: 'user-token',
44
36
  * });
45
37
  */
@@ -1 +1 @@
1
- {"version":3,"file":"apps-with-conversations.d.ts","sourceRoot":"","sources":["../../src/aggregated/apps-with-conversations.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,qBAAqB,CAAC;AACpD,OAAO,KAAK,EAGV,+BAA+B,EAChC,MAAM,mBAAmB,CAAC;AAM3B;;GAEG;AACH,MAAM,WAAW,+BAA+B;IAC9C;;OAEG;IACH,KAAK,CAAC,EAAE,MAAM,CAAC;IAEf;;;OAGG;IACH,IAAI,CAAC,EAAE,MAAM,CAAC;IAEd;;;OAGG;IACH,QAAQ,CAAC,EAAE,MAAM,CAAC;IAElB;;OAEG;IACH,EAAE,EAAE,QAAQ,CAAC;CACd;AAED;;;;;;;;;;;;;;;;;;;GAmBG;AACH,wBAAsB,yBAAyB,CAC7C,MAAM,EAAE,+BAA+B,GACtC,OAAO,CAAC,+BAA+B,CAAC,CA2F1C"}
1
+ {"version":3,"file":"apps-with-conversations.d.ts","sourceRoot":"","sources":["../../src/aggregated/apps-with-conversations.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,qBAAqB,CAAC;AACpD,OAAO,KAAK,EAGV,+BAA+B,EAChC,MAAM,mBAAmB,CAAC;AAM3B;;GAEG;AACH,MAAM,WAAW,+BAA+B;IAC9C;;OAEG;IACH,KAAK,CAAC,EAAE,MAAM,CAAC;IAEf;;;OAGG;IACH,IAAI,CAAC,EAAE,MAAM,CAAC;IAEd;;;OAGG;IACH,QAAQ,CAAC,EAAE,MAAM,CAAC;IAElB;;OAEG;IACH,EAAE,EAAE,QAAQ,CAAC;CACd;AAED;;;;;;;;;;;GAWG;AACH,wBAAsB,yBAAyB,CAC7C,MAAM,EAAE,+BAA+B,GACtC,OAAO,CAAC,+BAA+B,CAAC,CAgE1C"}
@@ -5,19 +5,11 @@ import { pageToOffset } from '../types/pagination.types.js';
5
5
  * List apps with their conversations (aggregated query)
6
6
  * Returns ALL conversations for each app, sorted by updated_at descending (newest first).
7
7
  *
8
- * Implementation: Real-time message counting
9
- * - Queries all conversations
10
- * - Counts messages for each conversation from messages table
11
- * - Returns all conversations sorted by last update time
12
- *
13
- * This ensures accuracy even if message_count field is not maintained.
14
- *
15
8
  * Replaces `/api/apps/with-conversations` endpoint
16
9
  *
17
10
  * @example
18
11
  * const result = await listAppsWithConversations({
19
12
  * db: dbClient,
20
- * getUrlSessionToken,
21
13
  * accessToken: 'user-token',
22
14
  * });
23
15
  */
@@ -36,33 +28,11 @@ export async function listAppsWithConversations(config) {
36
28
  ? { filter: { app_id: `eq.${appId}` }, order: 'updated_at.desc' }
37
29
  : { order: 'updated_at.desc' }),
38
30
  ]);
39
- // Extract all conversation IDs for message counting
40
- const conversationIds = dbConversations.data
41
- .map((conv) => conv.conversation_id || conv.id)
42
- .filter(Boolean);
43
- // Fetch all messages for these conversations and count them
44
- let realMessageCounts = new Map();
45
- if (conversationIds.length > 0) {
46
- // Query all messages for these conversations
47
- const dbMessages = await db.get('messages', {
48
- filter: { conversation_id: `in.(${conversationIds.join(',')})` },
49
- select: 'conversation_id',
50
- });
51
- // Count messages per conversation
52
- for (const msg of dbMessages.data) {
53
- const count = realMessageCounts.get(msg.conversation_id) || 0;
54
- realMessageCounts.set(msg.conversation_id, count + 1);
55
- }
56
- }
57
31
  // Group conversations by appId and include ALL conversations
58
32
  // Conversations are already sorted by updated_at.desc from database query
59
33
  const conversationsByAppId = new Map();
60
34
  for (const dbConv of dbConversations.data) {
61
35
  const conv = transformConversation(dbConv);
62
- const convId = dbConv.conversation_id || dbConv.id;
63
- // Use real message count instead of db field
64
- const realCount = realMessageCounts.get(convId) || 0;
65
- conv.messageCount = realCount;
66
36
  // Only process conversations with appId (skip global conversations)
67
37
  if (conv.appId) {
68
38
  if (!conversationsByAppId.has(conv.appId)) {
@@ -1 +1 @@
1
- {"version":3,"file":"apps-with-conversations.js","sourceRoot":"","sources":["../../src/aggregated/apps-with-conversations.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"apps-with-conversations.js","sourceRoot":"","sources":["../../src/aggregated/apps-with-conversations.ts"],"names":[],"mappings":"AAOA,OAAO,EAAE,qBAAqB,EAAE,MAAM,yCAAyC,CAAC;AAChF,OAAO,EAAE,YAAY,EAAE,MAAM,gCAAgC,CAAC;AAC9D,OAAO,EAAE,YAAY,EAAE,MAAM,8BAA8B,CAAC;AA6B5D;;;;;;;;;;;GAWG;AACH,MAAM,CAAC,KAAK,UAAU,yBAAyB,CAC7C,MAAuC;IAEvC,MAAM,EACJ,KAAK,EACL,IAAI,GAAG,CAAC,EACR,QAAQ,GAAG,EAAE,EACb,EAAE,GACH,GAAG,MAAM,CAAC;IAEX,8BAA8B;IAC9B,MAAM,EAAE,KAAK,EAAE,MAAM,EAAE,GAAG,YAAY,CAAC,IAAI,EAAE,QAAQ,CAAC,CAAC;IAEvD,uCAAuC;IACvC,MAAM,CAAC,MAAM,EAAE,eAAe,CAAC,GAAG,MAAM,OAAO,CAAC,GAAG,CAAC;QAClD,4DAA4D;QAC5D,EAAE,CAAC,GAAG,CACJ,MAAM,EACN,KAAK;YACH,CAAC,CAAC,EAAE,MAAM,EAAE,EAAE,MAAM,EAAE,MAAM,KAAK,EAAE,EAAE,EAAE,KAAK,EAAE,iBAAiB,EAAE,KAAK,EAAE,MAAM,EAAE,KAAK,EAAE,OAAO,EAAE;YAChG,CAAC,CAAC,EAAE,KAAK,EAAE,iBAAiB,EAAE,KAAK,EAAE,MAAM,EAAE,KAAK,EAAE,OAAO,EAAE,CAChE;QAED,yEAAyE;QACzE,EAAE,CAAC,GAAG,CACJ,eAAe,EACf,KAAK;YACH,CAAC,CAAC,EAAE,MAAM,EAAE,EAAE,MAAM,EAAE,MAAM,KAAK,EAAE,EAAE,EAAE,KAAK,EAAE,iBAAiB,EAAE;YACjE,CAAC,CAAC,EAAE,KAAK,EAAE,iBAAiB,EAAE,CACjC;KACF,CAAC,CAAC;IAEH,6DAA6D;IAC7D,0EAA0E;IAC1E,MAAM,oBAAoB,GAAG,IAAI,GAAG,EAA0B,CAAC;IAE/D,KAAK,MAAM,MAAM,IAAI,eAAe,CAAC,IAAI,EAAE,CAAC;QAC1C,MAAM,IAAI,GAAG,qBAAqB,CAAC,MAAM,CAAC,CAAC;QAE3C,oEAAoE;QACpE,IAAI,IAAI,CAAC,KAAK,EAAE,CAAC;YACf,IAAI,CAAC,oBAAoB,CAAC,GAAG,CAAC,IAAI,CAAC,KAAK,CAAC,EAAE,CAAC;gBAC1C,oBAAoB,CAAC,GAAG,CAAC,IAAI,CAAC,KAAK,EAAE,EAAE,CAAC,CAAC;YAC3C,CAAC;YACD,oBAAoB,CAAC,GAAG,CAAC,IAAI,CAAC,KAAK,CAAE,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;QACnD,CAAC;IACH,CAAC;IAED,sEAAsE;IACtE,MAAM,qBAAqB,GAA2B,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,KAAK,EAAE,EAAE;QAC9E,MAAM,KAAK,GAAG,CAAC,KAAK,CAAC,MAAM,IAAI,KAAK,CAAC,EAAE,CAAW,CAAC;QACnD,MAAM,aAAa,GAAG,oBAAoB,CAAC,GAAG,CAAC,KAAK,CAAC,IAAI,EAAE,CAAC;QAC5D,OAAO;YACL,GAAG,EAAE,YAAY,CAAC,KAAK,CAAC;YACxB,aAAa;SACd,CAAC;IACJ,CAAC,CAAC,CAAC;IAEH,8BAA8B;IAC9B,MAAM,KAAK,GAAG,MAAM,CAAC,KAAK,IAAI,CAAC,CAAC;IAChC,MAAM,OAAO,GAAG,IAAI,GAAG,QAAQ,GAAG,KAAK,CAAC;IAExC,OAAO;QACL,IAAI,EAAE,qBAAqB;QAC3B,OAAO;KACR,CAAC;AACJ,CAAC"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@seaverse/conversation-sdk",
3
- "version": "0.2.2",
3
+ "version": "0.2.3",
4
4
  "description": "SeaVerse Conversation SDK - SDK for conversations and messages management",
5
5
  "type": "module",
6
6
  "main": "./dist/index.js",