@commonpub/server 0.1.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/LICENSE +661 -0
- package/README.md +59 -0
- package/dist/admin/admin.d.ts +113 -0
- package/dist/admin/admin.d.ts.map +1 -0
- package/dist/admin/admin.js +426 -0
- package/dist/admin/admin.js.map +1 -0
- package/dist/admin/index.d.ts +3 -0
- package/dist/admin/index.d.ts.map +1 -0
- package/dist/admin/index.js +2 -0
- package/dist/admin/index.js.map +1 -0
- package/dist/content/content.d.ts +39 -0
- package/dist/content/content.d.ts.map +1 -0
- package/dist/content/content.js +507 -0
- package/dist/content/content.js.map +1 -0
- package/dist/content/index.d.ts +3 -0
- package/dist/content/index.d.ts.map +1 -0
- package/dist/content/index.js +2 -0
- package/dist/content/index.js.map +1 -0
- package/dist/contest/contest.d.ts +92 -0
- package/dist/contest/contest.d.ts.map +1 -0
- package/dist/contest/contest.js +343 -0
- package/dist/contest/contest.js.map +1 -0
- package/dist/contest/index.d.ts +3 -0
- package/dist/contest/index.d.ts.map +1 -0
- package/dist/contest/index.js +2 -0
- package/dist/contest/index.js.map +1 -0
- package/dist/docs/docs.d.ts +71 -0
- package/dist/docs/docs.d.ts.map +1 -0
- package/dist/docs/docs.js +398 -0
- package/dist/docs/docs.js.map +1 -0
- package/dist/docs/index.d.ts +2 -0
- package/dist/docs/index.d.ts.map +1 -0
- package/dist/docs/index.js +2 -0
- package/dist/docs/index.js.map +1 -0
- package/dist/email.d.ts +3 -0
- package/dist/email.d.ts.map +1 -0
- package/dist/email.js +3 -0
- package/dist/email.js.map +1 -0
- package/dist/federation/federation.d.ts +46 -0
- package/dist/federation/federation.d.ts.map +1 -0
- package/dist/federation/federation.js +308 -0
- package/dist/federation/federation.js.map +1 -0
- package/dist/federation/index.d.ts +2 -0
- package/dist/federation/index.d.ts.map +1 -0
- package/dist/federation/index.js +2 -0
- package/dist/federation/index.js.map +1 -0
- package/dist/hub/hub.d.ts +110 -0
- package/dist/hub/hub.d.ts.map +1 -0
- package/dist/hub/hub.js +917 -0
- package/dist/hub/hub.js.map +1 -0
- package/dist/hub/index.d.ts +2 -0
- package/dist/hub/index.d.ts.map +1 -0
- package/dist/hub/index.js +2 -0
- package/dist/hub/index.js.map +1 -0
- package/dist/image.d.ts +3 -0
- package/dist/image.d.ts.map +1 -0
- package/dist/image.js +3 -0
- package/dist/image.js.map +1 -0
- package/dist/index.d.ts +38 -0
- package/dist/index.d.ts.map +1 -0
- package/dist/index.js +43 -0
- package/dist/index.js.map +1 -0
- package/dist/learning/index.d.ts +6 -0
- package/dist/learning/index.d.ts.map +1 -0
- package/dist/learning/index.js +6 -0
- package/dist/learning/index.js.map +1 -0
- package/dist/learning/learning.d.ts +85 -0
- package/dist/learning/learning.d.ts.map +1 -0
- package/dist/learning/learning.js +681 -0
- package/dist/learning/learning.js.map +1 -0
- package/dist/messaging/index.d.ts +3 -0
- package/dist/messaging/index.d.ts.map +1 -0
- package/dist/messaging/index.js +2 -0
- package/dist/messaging/index.js.map +1 -0
- package/dist/messaging/messaging.d.ts +27 -0
- package/dist/messaging/messaging.d.ts.map +1 -0
- package/dist/messaging/messaging.js +132 -0
- package/dist/messaging/messaging.js.map +1 -0
- package/dist/notification/index.d.ts +3 -0
- package/dist/notification/index.d.ts.map +1 -0
- package/dist/notification/index.js +2 -0
- package/dist/notification/index.js.map +1 -0
- package/dist/notification/notification.d.ts +38 -0
- package/dist/notification/notification.d.ts.map +1 -0
- package/dist/notification/notification.js +92 -0
- package/dist/notification/notification.js.map +1 -0
- package/dist/oauthCodes.d.ts +14 -0
- package/dist/oauthCodes.d.ts.map +1 -0
- package/dist/oauthCodes.js +40 -0
- package/dist/oauthCodes.js.map +1 -0
- package/dist/product/index.d.ts +3 -0
- package/dist/product/index.d.ts.map +1 -0
- package/dist/product/index.js +2 -0
- package/dist/product/index.js.map +1 -0
- package/dist/product/product.d.ts +143 -0
- package/dist/product/product.d.ts.map +1 -0
- package/dist/product/product.js +493 -0
- package/dist/product/product.js.map +1 -0
- package/dist/profile/index.d.ts +2 -0
- package/dist/profile/index.d.ts.map +1 -0
- package/dist/profile/index.js +2 -0
- package/dist/profile/index.js.map +1 -0
- package/dist/profile/profile.d.ts +28 -0
- package/dist/profile/profile.d.ts.map +1 -0
- package/dist/profile/profile.js +122 -0
- package/dist/profile/profile.js.map +1 -0
- package/dist/query.d.ts +331 -0
- package/dist/query.d.ts.map +1 -0
- package/dist/query.js +103 -0
- package/dist/query.js.map +1 -0
- package/dist/security.d.ts +3 -0
- package/dist/security.d.ts.map +1 -0
- package/dist/security.js +3 -0
- package/dist/security.js.map +1 -0
- package/dist/social/index.d.ts +3 -0
- package/dist/social/index.d.ts.map +1 -0
- package/dist/social/index.js +2 -0
- package/dist/social/index.js.map +1 -0
- package/dist/social/social.d.ts +84 -0
- package/dist/social/social.d.ts.map +1 -0
- package/dist/social/social.js +353 -0
- package/dist/social/social.js.map +1 -0
- package/dist/storage.d.ts +3 -0
- package/dist/storage.d.ts.map +1 -0
- package/dist/storage.js +3 -0
- package/dist/storage.js.map +1 -0
- package/dist/theme.d.ts +12 -0
- package/dist/theme.d.ts.map +1 -0
- package/dist/theme.js +55 -0
- package/dist/theme.js.map +1 -0
- package/dist/types.d.ts +266 -0
- package/dist/types.d.ts.map +1 -0
- package/dist/types.js +2 -0
- package/dist/types.js.map +1 -0
- package/dist/utils.d.ts +7 -0
- package/dist/utils.d.ts.map +1 -0
- package/dist/utils.js +46 -0
- package/dist/utils.js.map +1 -0
- package/dist/video/index.d.ts +3 -0
- package/dist/video/index.d.ts.map +1 -0
- package/dist/video/index.js +2 -0
- package/dist/video/index.js.map +1 -0
- package/dist/video/video.d.ts +61 -0
- package/dist/video/video.d.ts.map +1 -0
- package/dist/video/video.js +157 -0
- package/dist/video/video.js.map +1 -0
- package/package.json +129 -0
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"learning.js","sourceRoot":"","sources":["../../src/learning/learning.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/messaging/index.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,iBAAiB,EACjB,uBAAuB,EACvB,kBAAkB,EAClB,wBAAwB,EACxB,WAAW,EACX,gBAAgB,GACjB,MAAM,gBAAgB,CAAC;AACxB,YAAY,EAAE,gBAAgB,EAAE,WAAW,EAAE,MAAM,gBAAgB,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/messaging/index.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,iBAAiB,EACjB,uBAAuB,EACvB,kBAAkB,EAClB,wBAAwB,EACxB,WAAW,EACX,gBAAgB,GACjB,MAAM,gBAAgB,CAAC"}
|
|
@@ -0,0 +1,27 @@
|
|
|
1
|
+
import type { DB } from '../types.js';
|
|
2
|
+
export interface ConversationItem {
|
|
3
|
+
id: string;
|
|
4
|
+
participants: string[];
|
|
5
|
+
lastMessageAt: Date;
|
|
6
|
+
lastMessage: string | null;
|
|
7
|
+
createdAt: Date;
|
|
8
|
+
}
|
|
9
|
+
export interface MessageItem {
|
|
10
|
+
id: string;
|
|
11
|
+
conversationId: string;
|
|
12
|
+
senderId: string;
|
|
13
|
+
body: string;
|
|
14
|
+
createdAt: Date;
|
|
15
|
+
readAt: Date | null;
|
|
16
|
+
}
|
|
17
|
+
export declare function listConversations(db: DB, userId: string, opts?: {
|
|
18
|
+
limit?: number;
|
|
19
|
+
offset?: number;
|
|
20
|
+
}): Promise<ConversationItem[]>;
|
|
21
|
+
export declare function getConversationMessages(db: DB, conversationId: string, userId: string): Promise<MessageItem[]>;
|
|
22
|
+
export declare function createConversation(db: DB, participants: string[]): Promise<ConversationItem>;
|
|
23
|
+
/** Find an existing conversation with exactly the given participants, or create one. */
|
|
24
|
+
export declare function findOrCreateConversation(db: DB, participants: string[]): Promise<ConversationItem>;
|
|
25
|
+
export declare function sendMessage(db: DB, conversationId: string, senderId: string, body: string): Promise<MessageItem>;
|
|
26
|
+
export declare function markMessagesRead(db: DB, conversationId: string, userId: string): Promise<void>;
|
|
27
|
+
//# sourceMappingURL=messaging.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"messaging.d.ts","sourceRoot":"","sources":["../../src/messaging/messaging.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,EAAE,EAAE,MAAM,aAAa,CAAC;AAEtC,MAAM,WAAW,gBAAgB;IAC/B,EAAE,EAAE,MAAM,CAAC;IACX,YAAY,EAAE,MAAM,EAAE,CAAC;IACvB,aAAa,EAAE,IAAI,CAAC;IACpB,WAAW,EAAE,MAAM,GAAG,IAAI,CAAC;IAC3B,SAAS,EAAE,IAAI,CAAC;CACjB;AAED,MAAM,WAAW,WAAW;IAC1B,EAAE,EAAE,MAAM,CAAC;IACX,cAAc,EAAE,MAAM,CAAC;IACvB,QAAQ,EAAE,MAAM,CAAC;IACjB,IAAI,EAAE,MAAM,CAAC;IACb,SAAS,EAAE,IAAI,CAAC;IAChB,MAAM,EAAE,IAAI,GAAG,IAAI,CAAC;CACrB;AAED,wBAAsB,iBAAiB,CACrC,EAAE,EAAE,EAAE,EACN,MAAM,EAAE,MAAM,EACd,IAAI,GAAE;IAAE,KAAK,CAAC,EAAE,MAAM,CAAC;IAAC,MAAM,CAAC,EAAE,MAAM,CAAA;CAAO,GAC7C,OAAO,CAAC,gBAAgB,EAAE,CAAC,CAoB7B;AAED,wBAAsB,uBAAuB,CAC3C,EAAE,EAAE,EAAE,EACN,cAAc,EAAE,MAAM,EACtB,MAAM,EAAE,MAAM,GACb,OAAO,CAAC,WAAW,EAAE,CAAC,CA6BxB;AAED,wBAAsB,kBAAkB,CACtC,EAAE,EAAE,EAAE,EACN,YAAY,EAAE,MAAM,EAAE,GACrB,OAAO,CAAC,gBAAgB,CAAC,CAyB3B;AAED,wFAAwF;AACxF,wBAAsB,wBAAwB,CAC5C,EAAE,EAAE,EAAE,EACN,YAAY,EAAE,MAAM,EAAE,GACrB,OAAO,CAAC,gBAAgB,CAAC,CA6B3B;AAED,wBAAsB,WAAW,CAC/B,EAAE,EAAE,EAAE,EACN,cAAc,EAAE,MAAM,EACtB,QAAQ,EAAE,MAAM,EAChB,IAAI,EAAE,MAAM,GACX,OAAO,CAAC,WAAW,CAAC,CA2CtB;AAED,wBAAsB,gBAAgB,CACpC,EAAE,EAAE,EAAE,EACN,cAAc,EAAE,MAAM,EACtB,MAAM,EAAE,MAAM,GACb,OAAO,CAAC,IAAI,CAAC,CAWf"}
|
|
@@ -0,0 +1,132 @@
|
|
|
1
|
+
import { eq, and, desc, sql, isNull, inArray } from 'drizzle-orm';
|
|
2
|
+
import { conversations, messages, users } from '@commonpub/schema';
|
|
3
|
+
export async function listConversations(db, userId, opts = {}) {
|
|
4
|
+
const limit = Math.min(opts.limit ?? 50, 100);
|
|
5
|
+
const offset = opts.offset ?? 0;
|
|
6
|
+
// jsonb @> check: participants array contains userId
|
|
7
|
+
const rows = await db
|
|
8
|
+
.select()
|
|
9
|
+
.from(conversations)
|
|
10
|
+
.where(sql `${conversations.participants} @> ${JSON.stringify([userId])}::jsonb`)
|
|
11
|
+
.orderBy(desc(conversations.lastMessageAt))
|
|
12
|
+
.limit(limit)
|
|
13
|
+
.offset(offset);
|
|
14
|
+
return rows.map((row) => ({
|
|
15
|
+
id: row.id,
|
|
16
|
+
participants: row.participants,
|
|
17
|
+
lastMessageAt: row.lastMessageAt,
|
|
18
|
+
lastMessage: row.lastMessage,
|
|
19
|
+
createdAt: row.createdAt,
|
|
20
|
+
}));
|
|
21
|
+
}
|
|
22
|
+
export async function getConversationMessages(db, conversationId, userId) {
|
|
23
|
+
// Verify user is a participant
|
|
24
|
+
const conv = await db
|
|
25
|
+
.select()
|
|
26
|
+
.from(conversations)
|
|
27
|
+
.where(and(eq(conversations.id, conversationId), sql `${conversations.participants} @> ${JSON.stringify([userId])}::jsonb`))
|
|
28
|
+
.limit(1);
|
|
29
|
+
if (conv.length === 0)
|
|
30
|
+
return [];
|
|
31
|
+
const rows = await db
|
|
32
|
+
.select()
|
|
33
|
+
.from(messages)
|
|
34
|
+
.where(eq(messages.conversationId, conversationId))
|
|
35
|
+
.orderBy(messages.createdAt);
|
|
36
|
+
return rows.map((row) => ({
|
|
37
|
+
id: row.id,
|
|
38
|
+
conversationId: row.conversationId,
|
|
39
|
+
senderId: row.senderId,
|
|
40
|
+
body: row.body,
|
|
41
|
+
createdAt: row.createdAt,
|
|
42
|
+
readAt: row.readAt,
|
|
43
|
+
}));
|
|
44
|
+
}
|
|
45
|
+
export async function createConversation(db, participants) {
|
|
46
|
+
// Validate all participant IDs correspond to existing users
|
|
47
|
+
const existingUsers = await db
|
|
48
|
+
.select({ id: users.id })
|
|
49
|
+
.from(users)
|
|
50
|
+
.where(inArray(users.id, participants));
|
|
51
|
+
if (existingUsers.length !== participants.length) {
|
|
52
|
+
throw new Error('One or more participant IDs do not exist');
|
|
53
|
+
}
|
|
54
|
+
const [row] = await db
|
|
55
|
+
.insert(conversations)
|
|
56
|
+
.values({
|
|
57
|
+
participants,
|
|
58
|
+
})
|
|
59
|
+
.returning();
|
|
60
|
+
return {
|
|
61
|
+
id: row.id,
|
|
62
|
+
participants: row.participants,
|
|
63
|
+
lastMessageAt: row.lastMessageAt,
|
|
64
|
+
lastMessage: row.lastMessage,
|
|
65
|
+
createdAt: row.createdAt,
|
|
66
|
+
};
|
|
67
|
+
}
|
|
68
|
+
/** Find an existing conversation with exactly the given participants, or create one. */
|
|
69
|
+
export async function findOrCreateConversation(db, participants) {
|
|
70
|
+
// Sort for deterministic matching
|
|
71
|
+
const sorted = [...participants].sort();
|
|
72
|
+
// Find a conversation that contains all participants and has the same count.
|
|
73
|
+
// jsonb @> checks containment; we also verify the array length matches to get exact match.
|
|
74
|
+
const existing = await db
|
|
75
|
+
.select()
|
|
76
|
+
.from(conversations)
|
|
77
|
+
.where(and(sql `${conversations.participants} @> ${JSON.stringify(sorted)}::jsonb`, sql `jsonb_array_length(${conversations.participants}) = ${sorted.length}`))
|
|
78
|
+
.limit(1);
|
|
79
|
+
if (existing.length > 0) {
|
|
80
|
+
const row = existing[0];
|
|
81
|
+
return {
|
|
82
|
+
id: row.id,
|
|
83
|
+
participants: row.participants,
|
|
84
|
+
lastMessageAt: row.lastMessageAt,
|
|
85
|
+
lastMessage: row.lastMessage,
|
|
86
|
+
createdAt: row.createdAt,
|
|
87
|
+
};
|
|
88
|
+
}
|
|
89
|
+
return createConversation(db, sorted);
|
|
90
|
+
}
|
|
91
|
+
export async function sendMessage(db, conversationId, senderId, body) {
|
|
92
|
+
// Verify sender is a participant in this conversation
|
|
93
|
+
const conv = await db
|
|
94
|
+
.select({ id: conversations.id })
|
|
95
|
+
.from(conversations)
|
|
96
|
+
.where(and(eq(conversations.id, conversationId), sql `${conversations.participants} @> ${JSON.stringify([senderId])}::jsonb`))
|
|
97
|
+
.limit(1);
|
|
98
|
+
if (conv.length === 0) {
|
|
99
|
+
throw new Error('Not a participant in this conversation');
|
|
100
|
+
}
|
|
101
|
+
const [row] = await db
|
|
102
|
+
.insert(messages)
|
|
103
|
+
.values({
|
|
104
|
+
conversationId,
|
|
105
|
+
senderId,
|
|
106
|
+
body,
|
|
107
|
+
})
|
|
108
|
+
.returning();
|
|
109
|
+
// Update conversation's last message
|
|
110
|
+
await db
|
|
111
|
+
.update(conversations)
|
|
112
|
+
.set({
|
|
113
|
+
lastMessageAt: new Date(),
|
|
114
|
+
lastMessage: body.length > 200 ? body.slice(0, 200) + '...' : body,
|
|
115
|
+
})
|
|
116
|
+
.where(eq(conversations.id, conversationId));
|
|
117
|
+
return {
|
|
118
|
+
id: row.id,
|
|
119
|
+
conversationId: row.conversationId,
|
|
120
|
+
senderId: row.senderId,
|
|
121
|
+
body: row.body,
|
|
122
|
+
createdAt: row.createdAt,
|
|
123
|
+
readAt: row.readAt,
|
|
124
|
+
};
|
|
125
|
+
}
|
|
126
|
+
export async function markMessagesRead(db, conversationId, userId) {
|
|
127
|
+
await db
|
|
128
|
+
.update(messages)
|
|
129
|
+
.set({ readAt: new Date() })
|
|
130
|
+
.where(and(eq(messages.conversationId, conversationId), sql `${messages.senderId} != ${userId}`, isNull(messages.readAt)));
|
|
131
|
+
}
|
|
132
|
+
//# sourceMappingURL=messaging.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"messaging.js","sourceRoot":"","sources":["../../src/messaging/messaging.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,3 @@
|
|
|
1
|
+
export { listNotifications, getUnreadCount, markNotificationRead, markAllNotificationsRead, deleteNotification, createNotification, } from './notification.js';
|
|
2
|
+
export type { NotificationItem, NotificationFilters } from './notification.js';
|
|
3
|
+
//# sourceMappingURL=index.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/notification/index.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,iBAAiB,EACjB,cAAc,EACd,oBAAoB,EACpB,wBAAwB,EACxB,kBAAkB,EAClB,kBAAkB,GACnB,MAAM,mBAAmB,CAAC;AAC3B,YAAY,EAAE,gBAAgB,EAAE,mBAAmB,EAAE,MAAM,mBAAmB,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/notification/index.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,iBAAiB,EACjB,cAAc,EACd,oBAAoB,EACpB,wBAAwB,EACxB,kBAAkB,EAClB,kBAAkB,GACnB,MAAM,mBAAmB,CAAC"}
|
|
@@ -0,0 +1,38 @@
|
|
|
1
|
+
import type { DB } from '../types.js';
|
|
2
|
+
export interface NotificationItem {
|
|
3
|
+
id: string;
|
|
4
|
+
userId: string;
|
|
5
|
+
type: string;
|
|
6
|
+
title: string;
|
|
7
|
+
message: string;
|
|
8
|
+
link: string | null;
|
|
9
|
+
actorId: string | null;
|
|
10
|
+
actorName: string | null;
|
|
11
|
+
read: boolean;
|
|
12
|
+
createdAt: Date;
|
|
13
|
+
}
|
|
14
|
+
export type NotificationType = 'like' | 'comment' | 'follow' | 'mention' | 'contest' | 'certificate' | 'hub' | 'system';
|
|
15
|
+
export interface NotificationFilters {
|
|
16
|
+
userId: string;
|
|
17
|
+
type?: NotificationType;
|
|
18
|
+
read?: boolean;
|
|
19
|
+
limit?: number;
|
|
20
|
+
offset?: number;
|
|
21
|
+
}
|
|
22
|
+
export declare function listNotifications(db: DB, filters: NotificationFilters): Promise<{
|
|
23
|
+
items: NotificationItem[];
|
|
24
|
+
total: number;
|
|
25
|
+
}>;
|
|
26
|
+
export declare function getUnreadCount(db: DB, userId: string): Promise<number>;
|
|
27
|
+
export declare function markNotificationRead(db: DB, notificationId: string, userId: string): Promise<void>;
|
|
28
|
+
export declare function markAllNotificationsRead(db: DB, userId: string): Promise<void>;
|
|
29
|
+
export declare function deleteNotification(db: DB, notificationId: string, userId: string): Promise<void>;
|
|
30
|
+
export declare function createNotification(db: DB, input: {
|
|
31
|
+
userId: string;
|
|
32
|
+
type: NotificationType;
|
|
33
|
+
title: string;
|
|
34
|
+
message: string;
|
|
35
|
+
link?: string;
|
|
36
|
+
actorId?: string;
|
|
37
|
+
}): Promise<NotificationItem>;
|
|
38
|
+
//# sourceMappingURL=notification.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"notification.d.ts","sourceRoot":"","sources":["../../src/notification/notification.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,EAAE,EAAE,MAAM,aAAa,CAAC;AAGtC,MAAM,WAAW,gBAAgB;IAC/B,EAAE,EAAE,MAAM,CAAC;IACX,MAAM,EAAE,MAAM,CAAC;IACf,IAAI,EAAE,MAAM,CAAC;IACb,KAAK,EAAE,MAAM,CAAC;IACd,OAAO,EAAE,MAAM,CAAC;IAChB,IAAI,EAAE,MAAM,GAAG,IAAI,CAAC;IACpB,OAAO,EAAE,MAAM,GAAG,IAAI,CAAC;IACvB,SAAS,EAAE,MAAM,GAAG,IAAI,CAAC;IACzB,IAAI,EAAE,OAAO,CAAC;IACd,SAAS,EAAE,IAAI,CAAC;CACjB;AAED,MAAM,MAAM,gBAAgB,GAAG,MAAM,GAAG,SAAS,GAAG,QAAQ,GAAG,SAAS,GAAG,SAAS,GAAG,aAAa,GAAG,KAAK,GAAG,QAAQ,CAAC;AAExH,MAAM,WAAW,mBAAmB;IAClC,MAAM,EAAE,MAAM,CAAC;IACf,IAAI,CAAC,EAAE,gBAAgB,CAAC;IACxB,IAAI,CAAC,EAAE,OAAO,CAAC;IACf,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,MAAM,CAAC,EAAE,MAAM,CAAC;CACjB;AAED,wBAAsB,iBAAiB,CACrC,EAAE,EAAE,EAAE,EACN,OAAO,EAAE,mBAAmB,GAC3B,OAAO,CAAC;IAAE,KAAK,EAAE,gBAAgB,EAAE,CAAC;IAAC,KAAK,EAAE,MAAM,CAAA;CAAE,CAAC,CA6CvD;AAED,wBAAsB,cAAc,CAAC,EAAE,EAAE,EAAE,EAAE,MAAM,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC,CAO5E;AAED,wBAAsB,oBAAoB,CACxC,EAAE,EAAE,EAAE,EACN,cAAc,EAAE,MAAM,EACtB,MAAM,EAAE,MAAM,GACb,OAAO,CAAC,IAAI,CAAC,CAKf;AAED,wBAAsB,wBAAwB,CAC5C,EAAE,EAAE,EAAE,EACN,MAAM,EAAE,MAAM,GACb,OAAO,CAAC,IAAI,CAAC,CAKf;AAED,wBAAsB,kBAAkB,CACtC,EAAE,EAAE,EAAE,EACN,cAAc,EAAE,MAAM,EACtB,MAAM,EAAE,MAAM,GACb,OAAO,CAAC,IAAI,CAAC,CAIf;AAED,wBAAsB,kBAAkB,CACtC,EAAE,EAAE,EAAE,EACN,KAAK,EAAE;IACL,MAAM,EAAE,MAAM,CAAC;IACf,IAAI,EAAE,gBAAgB,CAAC;IACvB,KAAK,EAAE,MAAM,CAAC;IACd,OAAO,EAAE,MAAM,CAAC;IAChB,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,OAAO,CAAC,EAAE,MAAM,CAAC;CAClB,GACA,OAAO,CAAC,gBAAgB,CAAC,CAyB3B"}
|
|
@@ -0,0 +1,92 @@
|
|
|
1
|
+
import { eq, and, desc, sql } from 'drizzle-orm';
|
|
2
|
+
import { notifications, users } from '@commonpub/schema';
|
|
3
|
+
import { normalizePagination, countRows } from '../query.js';
|
|
4
|
+
export async function listNotifications(db, filters) {
|
|
5
|
+
const conditions = [eq(notifications.userId, filters.userId)];
|
|
6
|
+
if (filters.type) {
|
|
7
|
+
conditions.push(eq(notifications.type, filters.type));
|
|
8
|
+
}
|
|
9
|
+
if (filters.read !== undefined) {
|
|
10
|
+
conditions.push(eq(notifications.read, filters.read));
|
|
11
|
+
}
|
|
12
|
+
const where = and(...conditions);
|
|
13
|
+
const { limit, offset } = normalizePagination(filters);
|
|
14
|
+
const [rows, total] = await Promise.all([
|
|
15
|
+
db
|
|
16
|
+
.select({
|
|
17
|
+
notification: notifications,
|
|
18
|
+
actorDisplayName: users.displayName,
|
|
19
|
+
actorUsername: users.username,
|
|
20
|
+
})
|
|
21
|
+
.from(notifications)
|
|
22
|
+
.leftJoin(users, eq(notifications.actorId, users.id))
|
|
23
|
+
.where(where)
|
|
24
|
+
.orderBy(desc(notifications.createdAt))
|
|
25
|
+
.limit(limit)
|
|
26
|
+
.offset(offset),
|
|
27
|
+
countRows(db, notifications, where),
|
|
28
|
+
]);
|
|
29
|
+
const items = rows.map((row) => ({
|
|
30
|
+
id: row.notification.id,
|
|
31
|
+
userId: row.notification.userId,
|
|
32
|
+
type: row.notification.type,
|
|
33
|
+
title: row.notification.title,
|
|
34
|
+
message: row.notification.message,
|
|
35
|
+
link: row.notification.link,
|
|
36
|
+
actorId: row.notification.actorId,
|
|
37
|
+
actorName: row.actorDisplayName ?? row.actorUsername ?? 'Someone',
|
|
38
|
+
read: row.notification.read,
|
|
39
|
+
createdAt: row.notification.createdAt,
|
|
40
|
+
}));
|
|
41
|
+
return { items, total };
|
|
42
|
+
}
|
|
43
|
+
export async function getUnreadCount(db, userId) {
|
|
44
|
+
const result = await db
|
|
45
|
+
.select({ count: sql `count(*)::int` })
|
|
46
|
+
.from(notifications)
|
|
47
|
+
.where(and(eq(notifications.userId, userId), eq(notifications.read, false)));
|
|
48
|
+
return result[0]?.count ?? 0;
|
|
49
|
+
}
|
|
50
|
+
export async function markNotificationRead(db, notificationId, userId) {
|
|
51
|
+
await db
|
|
52
|
+
.update(notifications)
|
|
53
|
+
.set({ read: true })
|
|
54
|
+
.where(and(eq(notifications.id, notificationId), eq(notifications.userId, userId)));
|
|
55
|
+
}
|
|
56
|
+
export async function markAllNotificationsRead(db, userId) {
|
|
57
|
+
await db
|
|
58
|
+
.update(notifications)
|
|
59
|
+
.set({ read: true })
|
|
60
|
+
.where(and(eq(notifications.userId, userId), eq(notifications.read, false)));
|
|
61
|
+
}
|
|
62
|
+
export async function deleteNotification(db, notificationId, userId) {
|
|
63
|
+
await db
|
|
64
|
+
.delete(notifications)
|
|
65
|
+
.where(and(eq(notifications.id, notificationId), eq(notifications.userId, userId)));
|
|
66
|
+
}
|
|
67
|
+
export async function createNotification(db, input) {
|
|
68
|
+
const [row] = await db
|
|
69
|
+
.insert(notifications)
|
|
70
|
+
.values({
|
|
71
|
+
userId: input.userId,
|
|
72
|
+
type: input.type,
|
|
73
|
+
title: input.title,
|
|
74
|
+
message: input.message,
|
|
75
|
+
link: input.link ?? null,
|
|
76
|
+
actorId: input.actorId ?? null,
|
|
77
|
+
})
|
|
78
|
+
.returning();
|
|
79
|
+
return {
|
|
80
|
+
id: row.id,
|
|
81
|
+
userId: row.userId,
|
|
82
|
+
type: row.type,
|
|
83
|
+
title: row.title,
|
|
84
|
+
message: row.message,
|
|
85
|
+
link: row.link,
|
|
86
|
+
actorId: row.actorId,
|
|
87
|
+
actorName: null,
|
|
88
|
+
read: row.read,
|
|
89
|
+
createdAt: row.createdAt,
|
|
90
|
+
};
|
|
91
|
+
}
|
|
92
|
+
//# sourceMappingURL=notification.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"notification.js","sourceRoot":"","sources":["../../src/notification/notification.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,14 @@
|
|
|
1
|
+
/** Database-backed authorization code store for OAuth2 flows.
|
|
2
|
+
* Codes are single-use with a 10-minute TTL.
|
|
3
|
+
* Safe for multi-process deployments.
|
|
4
|
+
*/
|
|
5
|
+
import type { DB } from './types.js';
|
|
6
|
+
/** Store an authorization code */
|
|
7
|
+
export declare function storeAuthCode(db: DB, code: string, userId: string, clientId: string, redirectUri: string): Promise<void>;
|
|
8
|
+
/** Consume an authorization code (single-use). Returns the stored data or null. */
|
|
9
|
+
export declare function consumeAuthCode(db: DB, code: string, clientId: string, redirectUri: string): Promise<{
|
|
10
|
+
userId: string;
|
|
11
|
+
} | null>;
|
|
12
|
+
/** Clean up expired codes */
|
|
13
|
+
export declare function cleanupExpiredCodes(db: DB): Promise<void>;
|
|
14
|
+
//# sourceMappingURL=oauthCodes.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"oauthCodes.d.ts","sourceRoot":"","sources":["../src/oauthCodes.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAIH,OAAO,KAAK,EAAE,EAAE,EAAE,MAAM,YAAY,CAAC;AAIrC,kCAAkC;AAClC,wBAAsB,aAAa,CACjC,EAAE,EAAE,EAAE,EACN,IAAI,EAAE,MAAM,EACZ,MAAM,EAAE,MAAM,EACd,QAAQ,EAAE,MAAM,EAChB,WAAW,EAAE,MAAM,GAClB,OAAO,CAAC,IAAI,CAAC,CAQf;AAED,mFAAmF;AACnF,wBAAsB,eAAe,CACnC,EAAE,EAAE,EAAE,EACN,IAAI,EAAE,MAAM,EACZ,QAAQ,EAAE,MAAM,EAChB,WAAW,EAAE,MAAM,GAClB,OAAO,CAAC;IAAE,MAAM,EAAE,MAAM,CAAA;CAAE,GAAG,IAAI,CAAC,CAgBpC;AAED,6BAA6B;AAC7B,wBAAsB,mBAAmB,CAAC,EAAE,EAAE,EAAE,GAAG,OAAO,CAAC,IAAI,CAAC,CAE/D"}
|
|
@@ -0,0 +1,40 @@
|
|
|
1
|
+
/** Database-backed authorization code store for OAuth2 flows.
|
|
2
|
+
* Codes are single-use with a 10-minute TTL.
|
|
3
|
+
* Safe for multi-process deployments.
|
|
4
|
+
*/
|
|
5
|
+
import { eq, lt } from 'drizzle-orm';
|
|
6
|
+
import { oauthCodes } from '@commonpub/schema';
|
|
7
|
+
const CODE_TTL_MS = 10 * 60 * 1000; // 10 minutes
|
|
8
|
+
/** Store an authorization code */
|
|
9
|
+
export async function storeAuthCode(db, code, userId, clientId, redirectUri) {
|
|
10
|
+
await db.insert(oauthCodes).values({
|
|
11
|
+
code,
|
|
12
|
+
userId,
|
|
13
|
+
clientId,
|
|
14
|
+
redirectUri,
|
|
15
|
+
expiresAt: new Date(Date.now() + CODE_TTL_MS),
|
|
16
|
+
});
|
|
17
|
+
}
|
|
18
|
+
/** Consume an authorization code (single-use). Returns the stored data or null. */
|
|
19
|
+
export async function consumeAuthCode(db, code, clientId, redirectUri) {
|
|
20
|
+
// Delete and return in one operation for atomicity
|
|
21
|
+
const deleted = await db
|
|
22
|
+
.delete(oauthCodes)
|
|
23
|
+
.where(eq(oauthCodes.code, code))
|
|
24
|
+
.returning();
|
|
25
|
+
if (deleted.length === 0)
|
|
26
|
+
return null;
|
|
27
|
+
const stored = deleted[0];
|
|
28
|
+
if (new Date() > stored.expiresAt)
|
|
29
|
+
return null;
|
|
30
|
+
if (stored.clientId !== clientId)
|
|
31
|
+
return null;
|
|
32
|
+
if (stored.redirectUri !== redirectUri)
|
|
33
|
+
return null;
|
|
34
|
+
return { userId: stored.userId };
|
|
35
|
+
}
|
|
36
|
+
/** Clean up expired codes */
|
|
37
|
+
export async function cleanupExpiredCodes(db) {
|
|
38
|
+
await db.delete(oauthCodes).where(lt(oauthCodes.expiresAt, new Date()));
|
|
39
|
+
}
|
|
40
|
+
//# sourceMappingURL=oauthCodes.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"oauthCodes.js","sourceRoot":"","sources":["../src/oauthCodes.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,OAAO,EAAE,EAAE,EAAE,EAAE,EAAE,MAAM,aAAa,CAAC;AACrC,OAAO,EAAE,UAAU,EAAE,MAAM,mBAAmB,CAAC;AAG/C,MAAM,WAAW,GAAG,EAAE,GAAG,EAAE,GAAG,IAAI,CAAC,CAAC,aAAa;AAEjD,kCAAkC;AAClC,MAAM,CAAC,KAAK,UAAU,aAAa,CACjC,EAAM,EACN,IAAY,EACZ,MAAc,EACd,QAAgB,EAChB,WAAmB;IAEnB,MAAM,EAAE,CAAC,MAAM,CAAC,UAAU,CAAC,CAAC,MAAM,CAAC;QACjC,IAAI;QACJ,MAAM;QACN,QAAQ;QACR,WAAW;QACX,SAAS,EAAE,IAAI,IAAI,CAAC,IAAI,CAAC,GAAG,EAAE,GAAG,WAAW,CAAC;KAC9C,CAAC,CAAC;AACL,CAAC;AAED,mFAAmF;AACnF,MAAM,CAAC,KAAK,UAAU,eAAe,CACnC,EAAM,EACN,IAAY,EACZ,QAAgB,EAChB,WAAmB;IAEnB,mDAAmD;IACnD,MAAM,OAAO,GAAG,MAAM,EAAE;SACrB,MAAM,CAAC,UAAU,CAAC;SAClB,KAAK,CAAC,EAAE,CAAC,UAAU,CAAC,IAAI,EAAE,IAAI,CAAC,CAAC;SAChC,SAAS,EAAE,CAAC;IAEf,IAAI,OAAO,CAAC,MAAM,KAAK,CAAC;QAAE,OAAO,IAAI,CAAC;IAEtC,MAAM,MAAM,GAAG,OAAO,CAAC,CAAC,CAAE,CAAC;IAE3B,IAAI,IAAI,IAAI,EAAE,GAAG,MAAM,CAAC,SAAS;QAAE,OAAO,IAAI,CAAC;IAC/C,IAAI,MAAM,CAAC,QAAQ,KAAK,QAAQ;QAAE,OAAO,IAAI,CAAC;IAC9C,IAAI,MAAM,CAAC,WAAW,KAAK,WAAW;QAAE,OAAO,IAAI,CAAC;IAEpD,OAAO,EAAE,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,CAAC;AACnC,CAAC;AAED,6BAA6B;AAC7B,MAAM,CAAC,KAAK,UAAU,mBAAmB,CAAC,EAAM;IAC9C,MAAM,EAAE,CAAC,MAAM,CAAC,UAAU,CAAC,CAAC,KAAK,CAAC,EAAE,CAAC,UAAU,CAAC,SAAS,EAAE,IAAI,IAAI,EAAE,CAAC,CAAC,CAAC;AAC1E,CAAC"}
|
|
@@ -0,0 +1,3 @@
|
|
|
1
|
+
export { createProduct, updateProduct, deleteProduct, getProductBySlug, listHubProducts, searchProducts, addContentProduct, removeContentProduct, listContentProducts, syncContentProducts, listProductContent, listHubGallery, } from './product.js';
|
|
2
|
+
export type { ProductListItem, ProductDetail, ContentProductItem, ProductFilters, } from './product.js';
|
|
3
|
+
//# sourceMappingURL=index.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/product/index.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,aAAa,EACb,aAAa,EACb,aAAa,EACb,gBAAgB,EAChB,eAAe,EACf,cAAc,EACd,iBAAiB,EACjB,oBAAoB,EACpB,mBAAmB,EACnB,mBAAmB,EACnB,kBAAkB,EAClB,cAAc,GACf,MAAM,cAAc,CAAC;AACtB,YAAY,EACV,eAAe,EACf,aAAa,EACb,kBAAkB,EAClB,cAAc,GACf,MAAM,cAAc,CAAC"}
|
|
@@ -0,0 +1,2 @@
|
|
|
1
|
+
export { createProduct, updateProduct, deleteProduct, getProductBySlug, listHubProducts, searchProducts, addContentProduct, removeContentProduct, listContentProducts, syncContentProducts, listProductContent, listHubGallery, } from './product.js';
|
|
2
|
+
//# sourceMappingURL=index.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/product/index.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,aAAa,EACb,aAAa,EACb,aAAa,EACb,gBAAgB,EAChB,eAAe,EACf,cAAc,EACd,iBAAiB,EACjB,oBAAoB,EACpB,mBAAmB,EACnB,mBAAmB,EACnB,kBAAkB,EAClB,cAAc,GACf,MAAM,cAAc,CAAC"}
|
|
@@ -0,0 +1,143 @@
|
|
|
1
|
+
import type { DB, UserRef } from '../types.js';
|
|
2
|
+
export interface ProductListItem {
|
|
3
|
+
id: string;
|
|
4
|
+
name: string;
|
|
5
|
+
slug: string;
|
|
6
|
+
description: string | null;
|
|
7
|
+
category: string | null;
|
|
8
|
+
imageUrl: string | null;
|
|
9
|
+
purchaseUrl: string | null;
|
|
10
|
+
status: string;
|
|
11
|
+
hubId: string;
|
|
12
|
+
createdAt: Date;
|
|
13
|
+
}
|
|
14
|
+
export interface ProductDetail extends ProductListItem {
|
|
15
|
+
specs: Record<string, string> | null;
|
|
16
|
+
datasheetUrl: string | null;
|
|
17
|
+
alternatives: Array<{
|
|
18
|
+
productId: string;
|
|
19
|
+
reason: string;
|
|
20
|
+
}> | null;
|
|
21
|
+
pricing: {
|
|
22
|
+
min?: number;
|
|
23
|
+
max?: number;
|
|
24
|
+
currency?: string;
|
|
25
|
+
asOf?: string;
|
|
26
|
+
} | null;
|
|
27
|
+
updatedAt: Date;
|
|
28
|
+
createdBy: UserRef;
|
|
29
|
+
hub: {
|
|
30
|
+
id: string;
|
|
31
|
+
name: string;
|
|
32
|
+
slug: string;
|
|
33
|
+
hubType: string;
|
|
34
|
+
};
|
|
35
|
+
}
|
|
36
|
+
export interface ContentProductItem {
|
|
37
|
+
id: string;
|
|
38
|
+
productId: string;
|
|
39
|
+
productName: string;
|
|
40
|
+
productSlug: string;
|
|
41
|
+
productImageUrl: string | null;
|
|
42
|
+
quantity: number;
|
|
43
|
+
role: string | null;
|
|
44
|
+
notes: string | null;
|
|
45
|
+
required: boolean;
|
|
46
|
+
sortOrder: number;
|
|
47
|
+
}
|
|
48
|
+
export interface ProductFilters {
|
|
49
|
+
search?: string;
|
|
50
|
+
category?: string;
|
|
51
|
+
hubId?: string;
|
|
52
|
+
status?: 'active' | 'discontinued' | 'preview';
|
|
53
|
+
limit?: number;
|
|
54
|
+
offset?: number;
|
|
55
|
+
}
|
|
56
|
+
export declare function createProduct(db: DB, userId: string, hubId: string, input: {
|
|
57
|
+
name: string;
|
|
58
|
+
description?: string;
|
|
59
|
+
category?: string;
|
|
60
|
+
specs?: Record<string, string>;
|
|
61
|
+
imageUrl?: string;
|
|
62
|
+
purchaseUrl?: string;
|
|
63
|
+
datasheetUrl?: string;
|
|
64
|
+
pricing?: {
|
|
65
|
+
min?: number;
|
|
66
|
+
max?: number;
|
|
67
|
+
currency?: string;
|
|
68
|
+
};
|
|
69
|
+
status?: 'active' | 'discontinued' | 'preview';
|
|
70
|
+
}): Promise<ProductDetail>;
|
|
71
|
+
export declare function updateProduct(db: DB, productId: string, userId: string, input: {
|
|
72
|
+
name?: string;
|
|
73
|
+
description?: string;
|
|
74
|
+
category?: string;
|
|
75
|
+
specs?: Record<string, string>;
|
|
76
|
+
imageUrl?: string;
|
|
77
|
+
purchaseUrl?: string;
|
|
78
|
+
datasheetUrl?: string;
|
|
79
|
+
pricing?: {
|
|
80
|
+
min?: number;
|
|
81
|
+
max?: number;
|
|
82
|
+
currency?: string;
|
|
83
|
+
};
|
|
84
|
+
status?: string;
|
|
85
|
+
}): Promise<ProductDetail | null>;
|
|
86
|
+
export declare function deleteProduct(db: DB, productId: string, userId?: string): Promise<boolean>;
|
|
87
|
+
export declare function getProductBySlug(db: DB, slug: string): Promise<ProductDetail | null>;
|
|
88
|
+
export declare function listHubProducts(db: DB, hubId: string, filters?: Omit<ProductFilters, 'hubId'>): Promise<{
|
|
89
|
+
items: ProductListItem[];
|
|
90
|
+
total: number;
|
|
91
|
+
}>;
|
|
92
|
+
export declare function searchProducts(db: DB, filters?: ProductFilters): Promise<{
|
|
93
|
+
items: ProductListItem[];
|
|
94
|
+
total: number;
|
|
95
|
+
}>;
|
|
96
|
+
export declare function addContentProduct(db: DB, contentId: string, input: {
|
|
97
|
+
productId: string;
|
|
98
|
+
quantity?: number;
|
|
99
|
+
role?: string;
|
|
100
|
+
notes?: string;
|
|
101
|
+
required?: boolean;
|
|
102
|
+
sortOrder?: number;
|
|
103
|
+
}): Promise<ContentProductItem | null>;
|
|
104
|
+
export declare function removeContentProduct(db: DB, contentId: string, productId: string): Promise<boolean>;
|
|
105
|
+
export declare function listContentProducts(db: DB, contentId: string): Promise<ContentProductItem[]>;
|
|
106
|
+
export declare function syncContentProducts(db: DB, contentId: string, items: Array<{
|
|
107
|
+
productId: string;
|
|
108
|
+
quantity?: number;
|
|
109
|
+
role?: string;
|
|
110
|
+
notes?: string;
|
|
111
|
+
required?: boolean;
|
|
112
|
+
}>): Promise<ContentProductItem[]>;
|
|
113
|
+
export declare function listProductContent(db: DB, productId: string, opts?: {
|
|
114
|
+
limit?: number;
|
|
115
|
+
offset?: number;
|
|
116
|
+
}): Promise<{
|
|
117
|
+
items: Array<{
|
|
118
|
+
id: string;
|
|
119
|
+
title: string;
|
|
120
|
+
slug: string;
|
|
121
|
+
type: string;
|
|
122
|
+
coverImageUrl: string | null;
|
|
123
|
+
author: UserRef;
|
|
124
|
+
publishedAt: Date | null;
|
|
125
|
+
}>;
|
|
126
|
+
total: number;
|
|
127
|
+
}>;
|
|
128
|
+
export declare function listHubGallery(db: DB, hubId: string, opts?: {
|
|
129
|
+
limit?: number;
|
|
130
|
+
offset?: number;
|
|
131
|
+
}): Promise<{
|
|
132
|
+
items: Array<{
|
|
133
|
+
id: string;
|
|
134
|
+
title: string;
|
|
135
|
+
slug: string;
|
|
136
|
+
type: string;
|
|
137
|
+
coverImageUrl: string | null;
|
|
138
|
+
author: UserRef;
|
|
139
|
+
publishedAt: Date | null;
|
|
140
|
+
}>;
|
|
141
|
+
total: number;
|
|
142
|
+
}>;
|
|
143
|
+
//# sourceMappingURL=product.d.ts.map
|