@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
|
|
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":"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
|
|
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"}
|