@commonpub/server 2.89.0 → 2.90.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/dist/admin/admin.d.ts.map +1 -1
- package/dist/admin/admin.js +4 -5
- package/dist/admin/admin.js.map +1 -1
- package/dist/content/content.d.ts +0 -5
- package/dist/content/content.d.ts.map +1 -1
- package/dist/content/content.js +118 -122
- package/dist/content/content.js.map +1 -1
- package/dist/content/index.d.ts +1 -1
- package/dist/content/index.d.ts.map +1 -1
- package/dist/content/index.js +1 -1
- package/dist/content/index.js.map +1 -1
- package/dist/contest/contest.d.ts +2 -308
- package/dist/contest/contest.d.ts.map +1 -1
- package/dist/contest/contest.js +87 -878
- package/dist/contest/contest.js.map +1 -1
- package/dist/contest/entries.d.ts +41 -0
- package/dist/contest/entries.d.ts.map +1 -0
- package/dist/contest/entries.js +285 -0
- package/dist/contest/entries.js.map +1 -0
- package/dist/contest/export.d.ts +20 -0
- package/dist/contest/export.d.ts.map +1 -0
- package/dist/contest/export.js +131 -0
- package/dist/contest/export.js.map +1 -0
- package/dist/contest/index.d.ts +11 -2
- package/dist/contest/index.d.ts.map +1 -1
- package/dist/contest/index.js +8 -1
- package/dist/contest/index.js.map +1 -1
- package/dist/contest/judges.js +9 -8
- package/dist/contest/judges.js.map +1 -1
- package/dist/contest/judging.d.ts +38 -0
- package/dist/contest/judging.d.ts.map +1 -0
- package/dist/contest/judging.js +274 -0
- package/dist/contest/judging.js.map +1 -0
- package/dist/contest/read.d.ts +44 -0
- package/dist/contest/read.d.ts.map +1 -0
- package/dist/contest/read.js +164 -0
- package/dist/contest/read.js.map +1 -0
- package/dist/contest/stages.d.ts +28 -0
- package/dist/contest/stages.d.ts.map +1 -0
- package/dist/contest/stages.js +52 -0
- package/dist/contest/stages.js.map +1 -0
- package/dist/contest/submissions.d.ts +90 -0
- package/dist/contest/submissions.d.ts.map +1 -0
- package/dist/contest/submissions.js +275 -0
- package/dist/contest/submissions.js.map +1 -0
- package/dist/contest/types.d.ts +197 -0
- package/dist/contest/types.d.ts.map +1 -0
- package/dist/contest/types.js +2 -0
- package/dist/contest/types.js.map +1 -0
- package/dist/contest/validation.d.ts +32 -0
- package/dist/contest/validation.d.ts.map +1 -0
- package/dist/contest/validation.js +132 -0
- package/dist/contest/validation.js.map +1 -0
- package/dist/docs/docs.d.ts +9 -3
- package/dist/docs/docs.d.ts.map +1 -1
- package/dist/docs/docs.js +16 -6
- package/dist/docs/docs.js.map +1 -1
- package/dist/events/events.d.ts.map +1 -1
- package/dist/events/events.js +12 -6
- package/dist/events/events.js.map +1 -1
- package/dist/federation/activityDedup.d.ts +14 -0
- package/dist/federation/activityDedup.d.ts.map +1 -0
- package/dist/federation/activityDedup.js +34 -0
- package/dist/federation/activityDedup.js.map +1 -0
- package/dist/federation/assertPublicHost.d.ts +14 -0
- package/dist/federation/assertPublicHost.d.ts.map +1 -0
- package/dist/federation/assertPublicHost.js +62 -0
- package/dist/federation/assertPublicHost.js.map +1 -0
- package/dist/federation/delivery.d.ts.map +1 -1
- package/dist/federation/delivery.js +37 -51
- package/dist/federation/delivery.js.map +1 -1
- package/dist/federation/federation.d.ts.map +1 -1
- package/dist/federation/federation.js +11 -7
- package/dist/federation/federation.js.map +1 -1
- package/dist/federation/hubMirroring.d.ts.map +1 -1
- package/dist/federation/hubMirroring.js +85 -66
- package/dist/federation/hubMirroring.js.map +1 -1
- package/dist/federation/inboxHandlers.d.ts.map +1 -1
- package/dist/federation/inboxHandlers.js +84 -73
- package/dist/federation/inboxHandlers.js.map +1 -1
- package/dist/federation/inboxParsing.d.ts +28 -0
- package/dist/federation/inboxParsing.d.ts.map +1 -0
- package/dist/federation/inboxParsing.js +71 -0
- package/dist/federation/inboxParsing.js.map +1 -0
- package/dist/federation/index.d.ts +2 -0
- package/dist/federation/index.d.ts.map +1 -1
- package/dist/federation/index.js +2 -0
- package/dist/federation/index.js.map +1 -1
- package/dist/federation/mastodonLogin.d.ts.map +1 -1
- package/dist/federation/mastodonLogin.js +19 -0
- package/dist/federation/mastodonLogin.js.map +1 -1
- package/dist/federation/outboxQueries.js +1 -1
- package/dist/federation/outboxQueries.js.map +1 -1
- package/dist/federation/timeline.d.ts +11 -0
- package/dist/federation/timeline.d.ts.map +1 -1
- package/dist/federation/timeline.js +101 -69
- package/dist/federation/timeline.js.map +1 -1
- package/dist/hub/hub.d.ts.map +1 -1
- package/dist/hub/hub.js +41 -3
- package/dist/hub/hub.js.map +1 -1
- package/dist/hub/index.d.ts +1 -1
- package/dist/hub/index.d.ts.map +1 -1
- package/dist/hub/index.js +1 -1
- package/dist/hub/index.js.map +1 -1
- package/dist/hub/members.d.ts +19 -0
- package/dist/hub/members.d.ts.map +1 -1
- package/dist/hub/members.js +158 -13
- package/dist/hub/members.js.map +1 -1
- package/dist/hub/moderation.d.ts +1 -1
- package/dist/hub/moderation.d.ts.map +1 -1
- package/dist/hub/moderation.js +25 -11
- package/dist/hub/moderation.js.map +1 -1
- package/dist/hub/posts.d.ts.map +1 -1
- package/dist/hub/posts.js +18 -10
- package/dist/hub/posts.js.map +1 -1
- package/dist/hub/resources.js +2 -2
- package/dist/hub/resources.js.map +1 -1
- package/dist/identity/mastodonFactory.d.ts.map +1 -1
- package/dist/identity/mastodonFactory.js +7 -0
- package/dist/identity/mastodonFactory.js.map +1 -1
- package/dist/index.d.ts +7 -7
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +5 -5
- package/dist/index.js.map +1 -1
- package/dist/learning/learning.d.ts.map +1 -1
- package/dist/learning/learning.js +42 -22
- package/dist/learning/learning.js.map +1 -1
- package/dist/messaging/messaging.d.ts.map +1 -1
- package/dist/messaging/messaging.js +3 -3
- package/dist/messaging/messaging.js.map +1 -1
- package/dist/notification/notification.d.ts.map +1 -1
- package/dist/notification/notification.js +4 -2
- package/dist/notification/notification.js.map +1 -1
- package/dist/product/product.d.ts.map +1 -1
- package/dist/product/product.js +75 -37
- package/dist/product/product.js.map +1 -1
- package/dist/profile/index.d.ts +2 -1
- package/dist/profile/index.d.ts.map +1 -1
- package/dist/profile/index.js +1 -1
- package/dist/profile/index.js.map +1 -1
- package/dist/profile/profile.d.ts +24 -2
- package/dist/profile/profile.d.ts.map +1 -1
- package/dist/profile/profile.js +34 -8
- package/dist/profile/profile.js.map +1 -1
- package/dist/query.d.ts +18 -2
- package/dist/query.d.ts.map +1 -1
- package/dist/query.js +24 -6
- package/dist/query.js.map +1 -1
- package/dist/rbac/seed.d.ts +1 -1
- package/dist/rbac/seed.d.ts.map +1 -1
- package/dist/rbac/seed.js +1 -0
- package/dist/rbac/seed.js.map +1 -1
- package/dist/search/contentSearch.d.ts +1 -1
- package/dist/search/contentSearch.d.ts.map +1 -1
- package/dist/search/contentSearch.js +22 -12
- package/dist/search/contentSearch.js.map +1 -1
- package/dist/social/social.d.ts +4 -2
- package/dist/social/social.d.ts.map +1 -1
- package/dist/social/social.js +25 -8
- package/dist/social/social.js.map +1 -1
- package/dist/types.d.ts +3 -0
- package/dist/types.d.ts.map +1 -1
- package/dist/video/video.d.ts +3 -0
- package/dist/video/video.d.ts.map +1 -1
- package/dist/video/video.js +17 -13
- package/dist/video/video.js.map +1 -1
- package/dist/voting/voting.d.ts.map +1 -1
- package/dist/voting/voting.js +39 -1
- package/dist/voting/voting.js.map +1 -1
- package/package.json +10 -8
package/dist/profile/index.js
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/profile/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,iBAAiB,EAAE,cAAc,EAAE,iBAAiB,EAAE,MAAM,cAAc,CAAC;
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/profile/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,iBAAiB,EAAE,cAAc,EAAE,iBAAiB,EAAE,WAAW,EAAE,MAAM,cAAc,CAAC;AAEjG,OAAO,EAAE,cAAc,EAAE,MAAM,aAAa,CAAC"}
|
|
@@ -1,5 +1,18 @@
|
|
|
1
1
|
import type { ContentType } from '@commonpub/schema';
|
|
2
2
|
import type { DB, ContentListItem, UserProfile } from '../types.js';
|
|
3
|
+
export interface UserSearchResult {
|
|
4
|
+
id: string;
|
|
5
|
+
username: string;
|
|
6
|
+
displayName: string | null;
|
|
7
|
+
avatarUrl: string | null;
|
|
8
|
+
}
|
|
9
|
+
/**
|
|
10
|
+
* Minimal user lookup by username/display name for invite pickers (contest
|
|
11
|
+
* judges/reviewers, etc.). Returns PUBLIC fields only — never email/role — so it
|
|
12
|
+
* is safe to expose to non-admin contest managers, unlike the admin user list.
|
|
13
|
+
* Soft-deleted users are excluded; LIKE metacharacters in the query are escaped.
|
|
14
|
+
*/
|
|
15
|
+
export declare function searchUsers(db: DB, query: string, limit?: number): Promise<UserSearchResult[]>;
|
|
3
16
|
export declare function getUserByUsername(db: DB, username: string): Promise<UserProfile | null>;
|
|
4
17
|
export declare function updateUserProfile(db: DB, userId: string, input: {
|
|
5
18
|
displayName?: string;
|
|
@@ -28,8 +41,17 @@ export declare function updateUserProfile(db: DB, userId: string, input: {
|
|
|
28
41
|
mentions?: boolean;
|
|
29
42
|
};
|
|
30
43
|
}): Promise<UserProfile | null>;
|
|
31
|
-
export
|
|
44
|
+
export interface GetUserContentOptions {
|
|
45
|
+
type?: ContentType;
|
|
46
|
+
cursor?: string | null;
|
|
47
|
+
limit?: number;
|
|
48
|
+
/** Caller's intent to view unpublished work — honoured ONLY for the owner. */
|
|
49
|
+
drafts?: boolean;
|
|
50
|
+
/** The authenticated viewer's id (resolved server-side, never a client param). */
|
|
51
|
+
viewerId?: string;
|
|
52
|
+
}
|
|
53
|
+
export declare function getUserContent(db: DB, profileUserId: string, opts?: GetUserContentOptions): Promise<{
|
|
32
54
|
items: ContentListItem[];
|
|
33
|
-
|
|
55
|
+
nextCursor: string | null;
|
|
34
56
|
}>;
|
|
35
57
|
//# sourceMappingURL=profile.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"profile.d.ts","sourceRoot":"","sources":["../../src/profile/profile.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,mBAAmB,CAAC;AACrD,OAAO,KAAK,EAAE,EAAE,EAAE,eAAe,EAAE,WAAW,EAAE,MAAM,aAAa,CAAC;AAGpE,wBAAsB,iBAAiB,CAAC,EAAE,EAAE,EAAE,EAAE,QAAQ,EAAE,MAAM,GAAG,OAAO,CAAC,WAAW,GAAG,IAAI,CAAC,CA4E7F;AAED,wBAAsB,iBAAiB,CACrC,EAAE,EAAE,EAAE,EACN,MAAM,EAAE,MAAM,EACd,KAAK,EAAE;IACL,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,GAAG,CAAC,EAAE,MAAM,CAAC;IACb,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,WAAW,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,GAAG,SAAS,CAAC,CAAC;IACjD,MAAM,CAAC,EAAE,MAAM,EAAE,CAAC;IAClB,UAAU,CAAC,EAAE,KAAK,CAAC;QACjB,KAAK,EAAE,MAAM,CAAC;QACd,OAAO,EAAE,MAAM,CAAC;QAChB,SAAS,EAAE,MAAM,CAAC;QAClB,OAAO,EAAE,MAAM,CAAC;QAChB,WAAW,EAAE,MAAM,CAAC;KACrB,CAAC,CAAC;IACH,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,kBAAkB,CAAC,EAAE;QACnB,MAAM,CAAC,EAAE,OAAO,GAAG,QAAQ,GAAG,MAAM,CAAC;QACrC,KAAK,CAAC,EAAE,OAAO,CAAC;QAChB,QAAQ,CAAC,EAAE,OAAO,CAAC;QACnB,OAAO,CAAC,EAAE,OAAO,CAAC;QAClB,QAAQ,CAAC,EAAE,OAAO,CAAC;KACpB,CAAC;CACH,GACA,OAAO,CAAC,WAAW,GAAG,IAAI,CAAC,CAkC7B;AAED,wBAAsB,cAAc,CAClC,EAAE,EAAE,EAAE,EACN,
|
|
1
|
+
{"version":3,"file":"profile.d.ts","sourceRoot":"","sources":["../../src/profile/profile.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,mBAAmB,CAAC;AACrD,OAAO,KAAK,EAAE,EAAE,EAAE,eAAe,EAAE,WAAW,EAAE,MAAM,aAAa,CAAC;AAGpE,MAAM,WAAW,gBAAgB;IAC/B,EAAE,EAAE,MAAM,CAAC;IACX,QAAQ,EAAE,MAAM,CAAC;IACjB,WAAW,EAAE,MAAM,GAAG,IAAI,CAAC;IAC3B,SAAS,EAAE,MAAM,GAAG,IAAI,CAAC;CAC1B;AAED;;;;;GAKG;AACH,wBAAsB,WAAW,CAAC,EAAE,EAAE,EAAE,EAAE,KAAK,EAAE,MAAM,EAAE,KAAK,SAAK,GAAG,OAAO,CAAC,gBAAgB,EAAE,CAAC,CAYhG;AAED,wBAAsB,iBAAiB,CAAC,EAAE,EAAE,EAAE,EAAE,QAAQ,EAAE,MAAM,GAAG,OAAO,CAAC,WAAW,GAAG,IAAI,CAAC,CA4E7F;AAED,wBAAsB,iBAAiB,CACrC,EAAE,EAAE,EAAE,EACN,MAAM,EAAE,MAAM,EACd,KAAK,EAAE;IACL,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,GAAG,CAAC,EAAE,MAAM,CAAC;IACb,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,WAAW,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,GAAG,SAAS,CAAC,CAAC;IACjD,MAAM,CAAC,EAAE,MAAM,EAAE,CAAC;IAClB,UAAU,CAAC,EAAE,KAAK,CAAC;QACjB,KAAK,EAAE,MAAM,CAAC;QACd,OAAO,EAAE,MAAM,CAAC;QAChB,SAAS,EAAE,MAAM,CAAC;QAClB,OAAO,EAAE,MAAM,CAAC;QAChB,WAAW,EAAE,MAAM,CAAC;KACrB,CAAC,CAAC;IACH,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,kBAAkB,CAAC,EAAE;QACnB,MAAM,CAAC,EAAE,OAAO,GAAG,QAAQ,GAAG,MAAM,CAAC;QACrC,KAAK,CAAC,EAAE,OAAO,CAAC;QAChB,QAAQ,CAAC,EAAE,OAAO,CAAC;QACnB,OAAO,CAAC,EAAE,OAAO,CAAC;QAClB,QAAQ,CAAC,EAAE,OAAO,CAAC;KACpB,CAAC;CACH,GACA,OAAO,CAAC,WAAW,GAAG,IAAI,CAAC,CAkC7B;AAED,MAAM,WAAW,qBAAqB;IACpC,IAAI,CAAC,EAAE,WAAW,CAAC;IACnB,MAAM,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IACvB,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,8EAA8E;IAC9E,MAAM,CAAC,EAAE,OAAO,CAAC;IACjB,kFAAkF;IAClF,QAAQ,CAAC,EAAE,MAAM,CAAC;CACnB;AAED,wBAAsB,cAAc,CAClC,EAAE,EAAE,EAAE,EACN,aAAa,EAAE,MAAM,EACrB,IAAI,GAAE,qBAA0B,GAC/B,OAAO,CAAC;IAAE,KAAK,EAAE,eAAe,EAAE,CAAC;IAAC,UAAU,EAAE,MAAM,GAAG,IAAI,CAAA;CAAE,CAAC,CAclE"}
|
package/dist/profile/profile.js
CHANGED
|
@@ -1,6 +1,26 @@
|
|
|
1
|
-
import { eq, and, sql, isNull } from 'drizzle-orm';
|
|
1
|
+
import { eq, and, or, sql, ilike, isNull } from 'drizzle-orm';
|
|
2
2
|
import { contentItems, users, follows } from '@commonpub/schema';
|
|
3
|
-
import {
|
|
3
|
+
import { listContentKeyset } from '../content/content.js';
|
|
4
|
+
/**
|
|
5
|
+
* Minimal user lookup by username/display name for invite pickers (contest
|
|
6
|
+
* judges/reviewers, etc.). Returns PUBLIC fields only — never email/role — so it
|
|
7
|
+
* is safe to expose to non-admin contest managers, unlike the admin user list.
|
|
8
|
+
* Soft-deleted users are excluded; LIKE metacharacters in the query are escaped.
|
|
9
|
+
*/
|
|
10
|
+
export async function searchUsers(db, query, limit = 10) {
|
|
11
|
+
const q = query.trim();
|
|
12
|
+
if (q.length < 2)
|
|
13
|
+
return [];
|
|
14
|
+
// Escape %, _ and \ so they match literally (backslash is PG LIKE's default escape).
|
|
15
|
+
const term = `%${q.replace(/[\\%_]/g, '\\$&')}%`;
|
|
16
|
+
const capped = Math.min(Math.max(1, Math.trunc(limit) || 1), 25);
|
|
17
|
+
return db
|
|
18
|
+
.select({ id: users.id, username: users.username, displayName: users.displayName, avatarUrl: users.avatarUrl })
|
|
19
|
+
.from(users)
|
|
20
|
+
.where(and(isNull(users.deletedAt), or(ilike(users.username, term), ilike(users.displayName, term))))
|
|
21
|
+
.orderBy(users.username)
|
|
22
|
+
.limit(capped);
|
|
23
|
+
}
|
|
4
24
|
export async function getUserByUsername(db, username) {
|
|
5
25
|
const rows = await db
|
|
6
26
|
.select()
|
|
@@ -115,12 +135,18 @@ export async function updateUserProfile(db, userId, input) {
|
|
|
115
135
|
.limit(1);
|
|
116
136
|
return getUserByUsername(db, user[0].username);
|
|
117
137
|
}
|
|
118
|
-
export async function getUserContent(db,
|
|
119
|
-
|
|
120
|
-
|
|
121
|
-
|
|
122
|
-
|
|
123
|
-
|
|
138
|
+
export async function getUserContent(db, profileUserId, opts = {}) {
|
|
139
|
+
// Draft visibility is decided HERE from the authenticated viewer — never from a
|
|
140
|
+
// client-supplied status — so only the profile owner can see their own drafts.
|
|
141
|
+
// A non-owner (or anonymous) requesting drafts silently falls back to published.
|
|
142
|
+
const isOwner = !!opts.viewerId && opts.viewerId === profileUserId;
|
|
143
|
+
const status = opts.drafts && isOwner ? 'draft' : 'published';
|
|
144
|
+
return listContentKeyset(db, {
|
|
145
|
+
authorId: profileUserId,
|
|
146
|
+
status,
|
|
147
|
+
type: opts.type,
|
|
148
|
+
cursor: opts.cursor ?? undefined,
|
|
149
|
+
limit: opts.limit ?? 20,
|
|
124
150
|
});
|
|
125
151
|
}
|
|
126
152
|
//# sourceMappingURL=profile.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"profile.js","sourceRoot":"","sources":["../../src/profile/profile.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,EAAE,EAAE,GAAG,EAAE,GAAG,EAAE,MAAM,EAAE,MAAM,aAAa,CAAC;
|
|
1
|
+
{"version":3,"file":"profile.js","sourceRoot":"","sources":["../../src/profile/profile.ts"],"names":[],"mappings":"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"}
|
package/dist/query.d.ts
CHANGED
|
@@ -355,8 +355,24 @@ export interface PaginationOpts {
|
|
|
355
355
|
limit?: number;
|
|
356
356
|
offset?: number;
|
|
357
357
|
}
|
|
358
|
-
/**
|
|
359
|
-
|
|
358
|
+
/**
|
|
359
|
+
* Normalize pagination options to safe values.
|
|
360
|
+
*
|
|
361
|
+
* Guards non-finite input: routes pass `Number(query.limit)`, so `?limit=abc` yields NaN.
|
|
362
|
+
* `??` does NOT catch NaN, and `Math.min(NaN, 100)` is NaN → `LIMIT NaN` → an
|
|
363
|
+
* unauthenticated 500 on public list endpoints (audit session 203). Clamp limit to
|
|
364
|
+
* [1, maxLimit] and offset to >= 0, falling back to the default when not a finite number.
|
|
365
|
+
*
|
|
366
|
+
* `defaults.limit` sets the page size used when `opts.limit` is absent/invalid (each
|
|
367
|
+
* list endpoint has its own default, e.g. 20/24/50); `defaults.maxLimit` caps the
|
|
368
|
+
* upper bound (default 100). The single source of truth for pagination clamping —
|
|
369
|
+
* prefer this over a hand-rolled `Math.min(opts.limit ?? N, 100)`, which mishandles
|
|
370
|
+
* NaN, zero, and negative input.
|
|
371
|
+
*/
|
|
372
|
+
export declare function normalizePagination(opts: PaginationOpts, defaults?: {
|
|
373
|
+
limit?: number;
|
|
374
|
+
maxLimit?: number;
|
|
375
|
+
}): {
|
|
360
376
|
limit: number;
|
|
361
377
|
offset: number;
|
|
362
378
|
};
|
package/dist/query.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"query.d.ts","sourceRoot":"","sources":["../src/query.ts"],"names":[],"mappings":"AAAA;;;;;;;;GAQG;AAGH,OAAO,KAAK,EAAE,OAAO,EAAE,QAAQ,EAAE,MAAM,qBAAqB,CAAC;AAC7D,OAAO,KAAK,EAAE,GAAG,EAAE,MAAM,aAAa,CAAC;AAEvC,OAAO,KAAK,EAAE,EAAE,EAAE,MAAM,YAAY,CAAC;AAIrC;;;;;GAKG;AACH,wBAAgB,gBAAgB,CAAC,QAAQ,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,GAAG,MAAM,CAErF;AAED;;;;;GAKG;AACH,wBAAgB,eAAe,CAAC,MAAM,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,GAAG,MAAM,CAEpG;AAED;;;;GAIG;AACH,wBAAgB,oBAAoB,CAAC,QAAQ,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,GAAG,MAAM,CAEzF;AAED;;;;GAIG;AACH,wBAAgB,mBAAmB,CAAC,QAAQ,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,GAAG,MAAM,CAE1E;AAID,4EAA4E;AAC5E,eAAO,MAAM,eAAe;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CAKlB,CAAC;AAEX,2EAA2E;AAC3E,eAAO,MAAM,wBAAwB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CAG3B,CAAC;AAEX,oEAAoE;AACpE,eAAO,MAAM,6BAA6B;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CAKhC,CAAC;AAIX;;;;;;;;;;;;;;GAcG;AACH,wBAAsB,mBAAmB,CACvC,EAAE,EAAE,EAAE,EACN,KAAK,EAAE,OAAO,EACd,OAAO,EAAE,QAAQ,EACjB,KAAK,EAAE,QAAQ,EACf,IAAI,EAAE,MAAM,EACZ,cAAc,EAAE,MAAM,EACtB,SAAS,CAAC,EAAE,MAAM,EAClB,SAAS,CAAC,EAAE,KAAK,CAAC;IAAE,GAAG,EAAE,QAAQ,CAAC;IAAC,KAAK,EAAE,MAAM,CAAA;CAAE,CAAC,GAClD,OAAO,CAAC,MAAM,CAAC,CAqBjB;AAID,qFAAqF;AACrF,MAAM,WAAW,cAAc;IAC7B,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,MAAM,CAAC,EAAE,MAAM,CAAC;CACjB;AAED
|
|
1
|
+
{"version":3,"file":"query.d.ts","sourceRoot":"","sources":["../src/query.ts"],"names":[],"mappings":"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"}
|
package/dist/query.js
CHANGED
|
@@ -101,12 +101,30 @@ export async function ensureUniqueSlugFor(db, table, slugCol, idCol, slug, fallb
|
|
|
101
101
|
return slug;
|
|
102
102
|
return `${slug}-${Date.now()}`;
|
|
103
103
|
}
|
|
104
|
-
/**
|
|
105
|
-
|
|
106
|
-
|
|
107
|
-
|
|
108
|
-
|
|
109
|
-
|
|
104
|
+
/**
|
|
105
|
+
* Normalize pagination options to safe values.
|
|
106
|
+
*
|
|
107
|
+
* Guards non-finite input: routes pass `Number(query.limit)`, so `?limit=abc` yields NaN.
|
|
108
|
+
* `??` does NOT catch NaN, and `Math.min(NaN, 100)` is NaN → `LIMIT NaN` → an
|
|
109
|
+
* unauthenticated 500 on public list endpoints (audit session 203). Clamp limit to
|
|
110
|
+
* [1, maxLimit] and offset to >= 0, falling back to the default when not a finite number.
|
|
111
|
+
*
|
|
112
|
+
* `defaults.limit` sets the page size used when `opts.limit` is absent/invalid (each
|
|
113
|
+
* list endpoint has its own default, e.g. 20/24/50); `defaults.maxLimit` caps the
|
|
114
|
+
* upper bound (default 100). The single source of truth for pagination clamping —
|
|
115
|
+
* prefer this over a hand-rolled `Math.min(opts.limit ?? N, 100)`, which mishandles
|
|
116
|
+
* NaN, zero, and negative input.
|
|
117
|
+
*/
|
|
118
|
+
export function normalizePagination(opts, defaults = {}) {
|
|
119
|
+
const maxLimit = defaults.maxLimit ?? 100;
|
|
120
|
+
const fallback = Math.min(Math.max(Math.trunc(defaults.limit ?? 20), 1), maxLimit);
|
|
121
|
+
const limit = Number.isFinite(opts.limit)
|
|
122
|
+
? Math.min(Math.max(Math.trunc(opts.limit), 1), maxLimit)
|
|
123
|
+
: fallback;
|
|
124
|
+
const offset = Number.isFinite(opts.offset)
|
|
125
|
+
? Math.max(Math.trunc(opts.offset), 0)
|
|
126
|
+
: 0;
|
|
127
|
+
return { limit, offset };
|
|
110
128
|
}
|
|
111
129
|
/**
|
|
112
130
|
* Execute a count query. Returns 0 if no results.
|
package/dist/query.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"query.js","sourceRoot":"","sources":["../src/query.ts"],"names":[],"mappings":"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
|
|
1
|
+
{"version":3,"file":"query.js","sourceRoot":"","sources":["../src/query.ts"],"names":[],"mappings":"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"}
|
package/dist/rbac/seed.d.ts
CHANGED
|
@@ -12,7 +12,7 @@ import type { DB } from '../types.js';
|
|
|
12
12
|
* operator's later edits to a system role's permission set.
|
|
13
13
|
*/
|
|
14
14
|
/** The moderator capability set granted to `staff` (NOT `admin.access`). */
|
|
15
|
-
export declare const STAFF_PERMISSION_SET: readonly ["content.read", "content.moderate", "content.editorial", "reports.review", "contest.create", "contest.manage", "event.create", "event.manage", "audit.read", "users.read"];
|
|
15
|
+
export declare const STAFF_PERMISSION_SET: readonly ["content.read", "content.moderate", "content.editorial", "reports.review", "contest.create", "contest.manage", "contest.pii", "event.create", "event.manage", "audit.read", "users.read"];
|
|
16
16
|
export interface SystemRoleSeed {
|
|
17
17
|
key: string;
|
|
18
18
|
name: string;
|
package/dist/rbac/seed.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"seed.d.ts","sourceRoot":"","sources":["../../src/rbac/seed.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,EAAE,EAAE,MAAM,aAAa,CAAC;AAEtC;;;;;;;;;;;GAWG;AAEH,4EAA4E;AAC5E,eAAO,MAAM,oBAAoB,
|
|
1
|
+
{"version":3,"file":"seed.d.ts","sourceRoot":"","sources":["../../src/rbac/seed.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,EAAE,EAAE,MAAM,aAAa,CAAC;AAEtC;;;;;;;;;;;GAWG;AAEH,4EAA4E;AAC5E,eAAO,MAAM,oBAAoB,qMAYvB,CAAC;AAEX,MAAM,WAAW,cAAc;IAC7B,GAAG,EAAE,MAAM,CAAC;IACZ,IAAI,EAAE,MAAM,CAAC;IACb,WAAW,EAAE,MAAM,CAAC;IACpB,QAAQ,EAAE,MAAM,CAAC;IACjB,WAAW,EAAE,SAAS,MAAM,EAAE,CAAC;CAChC;AAED,8EAA8E;AAC9E,eAAO,MAAM,iBAAiB,EAAE,SAAS,cAAc,EAYtD,CAAC;AAEF;;;GAGG;AACH,wBAAsB,QAAQ,CAAC,EAAE,EAAE,EAAE,GAAG,OAAO,CAAC,IAAI,CAAC,CA6BpD"}
|
package/dist/rbac/seed.js
CHANGED
package/dist/rbac/seed.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"seed.js","sourceRoot":"","sources":["../../src/rbac/seed.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,EAAE,EAAE,GAAG,EAAE,MAAM,aAAa,CAAC;AACtC,OAAO,EAAE,KAAK,EAAE,eAAe,EAAE,MAAM,mBAAmB,CAAC;AAG3D;;;;;;;;;;;GAWG;AAEH,4EAA4E;AAC5E,MAAM,CAAC,MAAM,oBAAoB,GAAG;IAClC,cAAc;IACd,kBAAkB;IAClB,mBAAmB;IACnB,gBAAgB;IAChB,gBAAgB;IAChB,gBAAgB;IAChB,cAAc;IACd,cAAc;IACd,YAAY;IACZ,YAAY;CACJ,CAAC;AAUX,8EAA8E;AAC9E,MAAM,CAAC,MAAM,iBAAiB,GAA8B;IAC1D,EAAE,GAAG,EAAE,QAAQ,EAAE,IAAI,EAAE,QAAQ,EAAE,WAAW,EAAE,yCAAyC,EAAE,QAAQ,EAAE,EAAE,EAAE,WAAW,EAAE,EAAE,EAAE;IACxH,EAAE,GAAG,EAAE,KAAK,EAAE,IAAI,EAAE,KAAK,EAAE,WAAW,EAAE,kBAAkB,EAAE,QAAQ,EAAE,EAAE,EAAE,WAAW,EAAE,EAAE,EAAE;IAC3F,EAAE,GAAG,EAAE,UAAU,EAAE,IAAI,EAAE,UAAU,EAAE,WAAW,EAAE,kBAAkB,EAAE,QAAQ,EAAE,EAAE,EAAE,WAAW,EAAE,EAAE,EAAE;IACrG;QACE,GAAG,EAAE,OAAO;QACZ,IAAI,EAAE,OAAO;QACb,WAAW,EAAE,sFAAsF;QACnG,QAAQ,EAAE,EAAE;QACZ,WAAW,EAAE,oBAAoB;KAClC;IACD,EAAE,GAAG,EAAE,OAAO,EAAE,IAAI,EAAE,OAAO,EAAE,WAAW,EAAE,6BAA6B,EAAE,QAAQ,EAAE,EAAE,EAAE,WAAW,EAAE,CAAC,GAAG,CAAC,EAAE;CAC9G,CAAC;AAEF;;;GAGG;AACH,MAAM,CAAC,KAAK,UAAU,QAAQ,CAAC,EAAM;IACnC,KAAK,MAAM,IAAI,IAAI,iBAAiB,EAAE,CAAC;QACrC,MAAM,EAAE;aACL,MAAM,CAAC,KAAK,CAAC;aACb,MAAM,CAAC;YACN,GAAG,EAAE,IAAI,CAAC,GAAG;YACb,IAAI,EAAE,IAAI,CAAC,IAAI;YACf,WAAW,EAAE,IAAI,CAAC,WAAW;YAC7B,QAAQ,EAAE,IAAI;YACd,QAAQ,EAAE,IAAI,CAAC,QAAQ;SACxB,CAAC;aACD,mBAAmB,CAAC,EAAE,MAAM,EAAE,KAAK,CAAC,GAAG,EAAE,CAAC,CAAC;QAE9C,MAAM,CAAC,IAAI,CAAC,GAAG,MAAM,EAAE,CAAC,MAAM,CAAC,EAAE,EAAE,EAAE,KAAK,CAAC,EAAE,EAAE,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,KAAK,CAAC,EAAE,CAAC,KAAK,CAAC,GAAG,EAAE,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC;QACrG,IAAI,CAAC,IAAI,IAAI,IAAI,CAAC,WAAW,CAAC,MAAM,KAAK,CAAC;YAAE,SAAS;QAErD,MAAM,EAAE;aACL,MAAM,CAAC,eAAe,CAAC;aACvB,MAAM,CAAC,IAAI,CAAC,WAAW,CAAC,GAAG,CAAC,CAAC,aAAa,EAAE,EAAE,CAAC,CAAC,EAAE,MAAM,EAAE,IAAI,CAAC,EAAE,EAAE,aAAa,EAAE,CAAC,CAAC,CAAC;aACrF,mBAAmB,EAAE,CAAC;IAC3B,CAAC;IAED,2EAA2E;IAC3E,iFAAiF;IACjF,MAAM,EAAE,CAAC,OAAO,CAAC,GAAG,CAAA;;;;GAInB,CAAC,CAAC;AACL,CAAC"}
|
|
1
|
+
{"version":3,"file":"seed.js","sourceRoot":"","sources":["../../src/rbac/seed.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,EAAE,EAAE,GAAG,EAAE,MAAM,aAAa,CAAC;AACtC,OAAO,EAAE,KAAK,EAAE,eAAe,EAAE,MAAM,mBAAmB,CAAC;AAG3D;;;;;;;;;;;GAWG;AAEH,4EAA4E;AAC5E,MAAM,CAAC,MAAM,oBAAoB,GAAG;IAClC,cAAc;IACd,kBAAkB;IAClB,mBAAmB;IACnB,gBAAgB;IAChB,gBAAgB;IAChB,gBAAgB;IAChB,aAAa;IACb,cAAc;IACd,cAAc;IACd,YAAY;IACZ,YAAY;CACJ,CAAC;AAUX,8EAA8E;AAC9E,MAAM,CAAC,MAAM,iBAAiB,GAA8B;IAC1D,EAAE,GAAG,EAAE,QAAQ,EAAE,IAAI,EAAE,QAAQ,EAAE,WAAW,EAAE,yCAAyC,EAAE,QAAQ,EAAE,EAAE,EAAE,WAAW,EAAE,EAAE,EAAE;IACxH,EAAE,GAAG,EAAE,KAAK,EAAE,IAAI,EAAE,KAAK,EAAE,WAAW,EAAE,kBAAkB,EAAE,QAAQ,EAAE,EAAE,EAAE,WAAW,EAAE,EAAE,EAAE;IAC3F,EAAE,GAAG,EAAE,UAAU,EAAE,IAAI,EAAE,UAAU,EAAE,WAAW,EAAE,kBAAkB,EAAE,QAAQ,EAAE,EAAE,EAAE,WAAW,EAAE,EAAE,EAAE;IACrG;QACE,GAAG,EAAE,OAAO;QACZ,IAAI,EAAE,OAAO;QACb,WAAW,EAAE,sFAAsF;QACnG,QAAQ,EAAE,EAAE;QACZ,WAAW,EAAE,oBAAoB;KAClC;IACD,EAAE,GAAG,EAAE,OAAO,EAAE,IAAI,EAAE,OAAO,EAAE,WAAW,EAAE,6BAA6B,EAAE,QAAQ,EAAE,EAAE,EAAE,WAAW,EAAE,CAAC,GAAG,CAAC,EAAE;CAC9G,CAAC;AAEF;;;GAGG;AACH,MAAM,CAAC,KAAK,UAAU,QAAQ,CAAC,EAAM;IACnC,KAAK,MAAM,IAAI,IAAI,iBAAiB,EAAE,CAAC;QACrC,MAAM,EAAE;aACL,MAAM,CAAC,KAAK,CAAC;aACb,MAAM,CAAC;YACN,GAAG,EAAE,IAAI,CAAC,GAAG;YACb,IAAI,EAAE,IAAI,CAAC,IAAI;YACf,WAAW,EAAE,IAAI,CAAC,WAAW;YAC7B,QAAQ,EAAE,IAAI;YACd,QAAQ,EAAE,IAAI,CAAC,QAAQ;SACxB,CAAC;aACD,mBAAmB,CAAC,EAAE,MAAM,EAAE,KAAK,CAAC,GAAG,EAAE,CAAC,CAAC;QAE9C,MAAM,CAAC,IAAI,CAAC,GAAG,MAAM,EAAE,CAAC,MAAM,CAAC,EAAE,EAAE,EAAE,KAAK,CAAC,EAAE,EAAE,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,KAAK,CAAC,EAAE,CAAC,KAAK,CAAC,GAAG,EAAE,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC;QACrG,IAAI,CAAC,IAAI,IAAI,IAAI,CAAC,WAAW,CAAC,MAAM,KAAK,CAAC;YAAE,SAAS;QAErD,MAAM,EAAE;aACL,MAAM,CAAC,eAAe,CAAC;aACvB,MAAM,CAAC,IAAI,CAAC,WAAW,CAAC,GAAG,CAAC,CAAC,aAAa,EAAE,EAAE,CAAC,CAAC,EAAE,MAAM,EAAE,IAAI,CAAC,EAAE,EAAE,aAAa,EAAE,CAAC,CAAC,CAAC;aACrF,mBAAmB,EAAE,CAAC;IAC3B,CAAC;IAED,2EAA2E;IAC3E,iFAAiF;IACjF,MAAM,EAAE,CAAC,OAAO,CAAC,GAAG,CAAA;;;;GAInB,CAAC,CAAC;AACL,CAAC"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"contentSearch.d.ts","sourceRoot":"","sources":["../../src/search/contentSearch.ts"],"names":[],"mappings":"AASA,OAAO,KAAK,EAAE,EAAE,EAAE,MAAM,aAAa,CAAC;
|
|
1
|
+
{"version":3,"file":"contentSearch.d.ts","sourceRoot":"","sources":["../../src/search/contentSearch.ts"],"names":[],"mappings":"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"}
|
|
@@ -7,11 +7,11 @@
|
|
|
7
7
|
*/
|
|
8
8
|
import { eq, and, desc, sql, isNull, ilike, or, gte, lte } from 'drizzle-orm';
|
|
9
9
|
import { contentItems, users, tags, contentTags } from '@commonpub/schema';
|
|
10
|
+
import { normalizePagination } from '../query.js';
|
|
10
11
|
const INDEX_NAME = 'content';
|
|
11
12
|
// --- Meilisearch Search ---
|
|
12
13
|
export async function searchWithMeilisearch(client, db, opts) {
|
|
13
|
-
const limit =
|
|
14
|
-
const offset = opts.offset ?? 0;
|
|
14
|
+
const { limit, offset } = normalizePagination(opts, { limit: 24 });
|
|
15
15
|
// Escape user-supplied values that get interpolated into Meilisearch
|
|
16
16
|
// filter strings. Meili's filter syntax uses double-quoted string
|
|
17
17
|
// literals; an unescaped quote (or backslash) would break out of the
|
|
@@ -39,6 +39,8 @@ export async function searchWithMeilisearch(client, db, opts) {
|
|
|
39
39
|
sortOpts.push('publishedAtTs:desc');
|
|
40
40
|
else if (opts.sort === 'popular')
|
|
41
41
|
sortOpts.push('viewCount:desc');
|
|
42
|
+
else if (opts.sort === 'likes')
|
|
43
|
+
sortOpts.push('likeCount:desc');
|
|
42
44
|
// 'relevance' is default — Meilisearch handles it
|
|
43
45
|
const index = client.index(INDEX_NAME);
|
|
44
46
|
const response = await index.search(opts.query, {
|
|
@@ -76,8 +78,7 @@ export async function searchWithMeilisearch(client, db, opts) {
|
|
|
76
78
|
}
|
|
77
79
|
// --- Postgres FTS Search ---
|
|
78
80
|
export async function searchWithPostgres(db, opts) {
|
|
79
|
-
const limit =
|
|
80
|
-
const offset = opts.offset ?? 0;
|
|
81
|
+
const { limit, offset } = normalizePagination(opts, { limit: 24 });
|
|
81
82
|
const conditions = [
|
|
82
83
|
eq(contentItems.status, 'published'),
|
|
83
84
|
isNull(contentItems.deletedAt),
|
|
@@ -132,14 +133,19 @@ export async function searchWithPostgres(db, opts) {
|
|
|
132
133
|
}
|
|
133
134
|
}
|
|
134
135
|
const where = and(...conditions);
|
|
135
|
-
// Sort — Postgres fallback doesn't have relevance ranking (that's what Meilisearch is for)
|
|
136
|
+
// Sort — Postgres fallback doesn't have relevance ranking (that's what Meilisearch is for).
|
|
137
|
+
// Append desc(id) as a unique tiebreaker so offset pages don't overlap when the
|
|
138
|
+
// primary sort column (viewCount / publishedAt) is non-unique.
|
|
136
139
|
let orderBy;
|
|
137
140
|
if (opts.sort === 'popular') {
|
|
138
|
-
orderBy = desc(contentItems.viewCount);
|
|
141
|
+
orderBy = [desc(contentItems.viewCount), desc(contentItems.id)];
|
|
142
|
+
}
|
|
143
|
+
else if (opts.sort === 'likes') {
|
|
144
|
+
orderBy = [desc(contentItems.likeCount), desc(contentItems.id)];
|
|
139
145
|
}
|
|
140
146
|
else {
|
|
141
147
|
// 'relevance' and 'recent' both use publishedAt for Postgres path
|
|
142
|
-
orderBy = desc(contentItems.publishedAt);
|
|
148
|
+
orderBy = [desc(contentItems.publishedAt), desc(contentItems.id)];
|
|
143
149
|
}
|
|
144
150
|
const [rows, countResult] = await Promise.all([
|
|
145
151
|
db
|
|
@@ -163,13 +169,17 @@ export async function searchWithPostgres(db, opts) {
|
|
|
163
169
|
.from(contentItems)
|
|
164
170
|
.innerJoin(users, eq(contentItems.authorId, users.id))
|
|
165
171
|
.where(where)
|
|
166
|
-
.orderBy(orderBy)
|
|
172
|
+
.orderBy(...orderBy)
|
|
167
173
|
.limit(limit)
|
|
168
174
|
.offset(offset),
|
|
169
|
-
|
|
170
|
-
|
|
171
|
-
|
|
172
|
-
|
|
175
|
+
// COUNT(*) only on the first page: clients detect "has more" via items.length and
|
|
176
|
+
// numbered listings read total only on page 1. `-1` = "not computed".
|
|
177
|
+
offset === 0
|
|
178
|
+
? db
|
|
179
|
+
.select({ count: sql `count(*)::int` })
|
|
180
|
+
.from(contentItems)
|
|
181
|
+
.where(where)
|
|
182
|
+
: Promise.resolve([{ count: -1 }]),
|
|
173
183
|
]);
|
|
174
184
|
const items = rows.map((r) => ({
|
|
175
185
|
...r,
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"contentSearch.js","sourceRoot":"","sources":["../../src/search/contentSearch.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"contentSearch.js","sourceRoot":"","sources":["../../src/search/contentSearch.ts"],"names":[],"mappings":"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"}
|
package/dist/social/social.d.ts
CHANGED
|
@@ -63,18 +63,20 @@ export interface FollowUserItem {
|
|
|
63
63
|
avatarUrl: string | null;
|
|
64
64
|
bio: string | null;
|
|
65
65
|
followedAt: Date;
|
|
66
|
+
/** Whether the requesting viewer follows this user. Only set when a viewerId is passed. */
|
|
67
|
+
isFollowing?: boolean;
|
|
66
68
|
}
|
|
67
69
|
export declare function listFollowers(db: DB, userId: string, opts?: {
|
|
68
70
|
limit?: number;
|
|
69
71
|
offset?: number;
|
|
70
|
-
}): Promise<{
|
|
72
|
+
}, viewerId?: string): Promise<{
|
|
71
73
|
items: FollowUserItem[];
|
|
72
74
|
total: number;
|
|
73
75
|
}>;
|
|
74
76
|
export declare function listFollowing(db: DB, userId: string, opts?: {
|
|
75
77
|
limit?: number;
|
|
76
78
|
offset?: number;
|
|
77
|
-
}): Promise<{
|
|
79
|
+
}, viewerId?: string): Promise<{
|
|
78
80
|
items: FollowUserItem[];
|
|
79
81
|
total: number;
|
|
80
82
|
}>;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"social.d.ts","sourceRoot":"","sources":["../../src/social/social.ts"],"names":[],"mappings":"AAaA,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,mBAAmB,CAAC;AACzD,OAAO,KAAK,EAAE,EAAE,EAAE,WAAW,EAAE,MAAM,aAAa,CAAC;AACnD,OAAO,KAAK,EAAE,cAAc,EAAE,iBAAiB,EAAE,MAAM,mBAAmB,CAAC;AAO3E,YAAY,EAAE,WAAW,EAAE,CAAC;AAE5B,wBAAsB,UAAU,CAC9B,EAAE,EAAE,EAAE,EACN,MAAM,EAAE,MAAM,EACd,UAAU,EAAE,cAAc,EAC1B,QAAQ,EAAE,MAAM,GACf,OAAO,CAAC;IAAE,KAAK,EAAE,OAAO,CAAA;CAAE,CAAC,CA4D7B;AA6CD,wBAAsB,OAAO,CAC3B,EAAE,EAAE,EAAE,EACN,MAAM,EAAE,MAAM,EACd,UAAU,EAAE,cAAc,EAC1B,QAAQ,EAAE,MAAM,GACf,OAAO,CAAC,OAAO,CAAC,CAclB;AAED,wBAAsB,YAAY,CAChC,EAAE,EAAE,EAAE,EACN,MAAM,EAAE,MAAM,EACd,UAAU,EAAE,SAAS,GAAG,SAAS,GAAG,MAAM,GAAG,WAAW,GAAG,eAAe,EAC1E,QAAQ,EAAE,MAAM,GACf,OAAO,CAAC,OAAO,CAAC,CAclB;AAED,wBAAsB,YAAY,CAChC,EAAE,EAAE,EAAE,EACN,UAAU,EAAE,iBAAiB,EAC7B,QAAQ,EAAE,MAAM,EAChB,KAAK,CAAC,EAAE,MAAM,EACd,MAAM,CAAC,EAAE,MAAM,GACd,OAAO,CAAC,WAAW,EAAE,CAAC,
|
|
1
|
+
{"version":3,"file":"social.d.ts","sourceRoot":"","sources":["../../src/social/social.ts"],"names":[],"mappings":"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"}
|
package/dist/social/social.js
CHANGED
|
@@ -113,14 +113,13 @@ export async function isBookmarked(db, userId, targetType, targetId) {
|
|
|
113
113
|
return result.length > 0;
|
|
114
114
|
}
|
|
115
115
|
export async function listComments(db, targetType, targetId, limit, offset) {
|
|
116
|
-
const safeLimit =
|
|
117
|
-
const safeOffset = offset ?? 0;
|
|
116
|
+
const { limit: safeLimit, offset: safeOffset } = normalizePagination({ limit, offset }, { limit: 20 });
|
|
118
117
|
// Step 1: Fetch paginated root comment IDs
|
|
119
118
|
const rootRows = await db
|
|
120
119
|
.select({ id: comments.id })
|
|
121
120
|
.from(comments)
|
|
122
121
|
.where(and(eq(comments.targetType, targetType), eq(comments.targetId, targetId), isNull(comments.parentId)))
|
|
123
|
-
.orderBy(desc(comments.createdAt))
|
|
122
|
+
.orderBy(desc(comments.createdAt), desc(comments.id))
|
|
124
123
|
.limit(safeLimit)
|
|
125
124
|
.offset(safeOffset);
|
|
126
125
|
if (rootRows.length === 0)
|
|
@@ -355,7 +354,7 @@ export async function listUserBookmarks(db, userId, opts = {}) {
|
|
|
355
354
|
.leftJoin(federatedContent, eq(bookmarks.targetId, federatedContent.id))
|
|
356
355
|
.leftJoin(remoteActors, eq(federatedContent.remoteActorId, remoteActors.id))
|
|
357
356
|
.where(where)
|
|
358
|
-
.orderBy(desc(bookmarks.createdAt))
|
|
357
|
+
.orderBy(desc(bookmarks.createdAt), desc(bookmarks.id))
|
|
359
358
|
.limit(limit)
|
|
360
359
|
.offset(offset),
|
|
361
360
|
countRows(db, bookmarks, where),
|
|
@@ -469,7 +468,21 @@ export async function isFollowing(db, followerId, followingId) {
|
|
|
469
468
|
.limit(1);
|
|
470
469
|
return rows.length > 0;
|
|
471
470
|
}
|
|
472
|
-
|
|
471
|
+
/**
|
|
472
|
+
* One batched lookup of which of `targetIds` the viewer already follows, so the
|
|
473
|
+
* followers/following lists render the correct Follow/Following button for the
|
|
474
|
+
* VIEWER (not the profile owner). Empty set when there's no viewer.
|
|
475
|
+
*/
|
|
476
|
+
async function viewerFollowingSet(db, viewerId, targetIds) {
|
|
477
|
+
if (!viewerId || targetIds.length === 0)
|
|
478
|
+
return new Set();
|
|
479
|
+
const rows = await db
|
|
480
|
+
.select({ id: follows.followingId })
|
|
481
|
+
.from(follows)
|
|
482
|
+
.where(and(eq(follows.followerId, viewerId), inArray(follows.followingId, targetIds)));
|
|
483
|
+
return new Set(rows.map((r) => r.id));
|
|
484
|
+
}
|
|
485
|
+
export async function listFollowers(db, userId, opts = {}, viewerId) {
|
|
473
486
|
const { limit, offset } = normalizePagination(opts);
|
|
474
487
|
const where = eq(follows.followingId, userId);
|
|
475
488
|
const [rows, total] = await Promise.all([
|
|
@@ -481,21 +494,23 @@ export async function listFollowers(db, userId, opts = {}) {
|
|
|
481
494
|
.from(follows)
|
|
482
495
|
.innerJoin(users, eq(follows.followerId, users.id))
|
|
483
496
|
.where(where)
|
|
484
|
-
.orderBy(desc(follows.createdAt))
|
|
497
|
+
.orderBy(desc(follows.createdAt), desc(follows.id))
|
|
485
498
|
.limit(limit)
|
|
486
499
|
.offset(offset),
|
|
487
500
|
countRows(db, follows, where),
|
|
488
501
|
]);
|
|
502
|
+
const followed = await viewerFollowingSet(db, viewerId, rows.map((r) => r.user.id));
|
|
489
503
|
return {
|
|
490
504
|
items: rows.map((row) => ({
|
|
491
505
|
...row.user,
|
|
492
506
|
bio: row.user.bio ?? null,
|
|
493
507
|
followedAt: row.followedAt,
|
|
508
|
+
isFollowing: viewerId ? followed.has(row.user.id) : undefined,
|
|
494
509
|
})),
|
|
495
510
|
total,
|
|
496
511
|
};
|
|
497
512
|
}
|
|
498
|
-
export async function listFollowing(db, userId, opts = {}) {
|
|
513
|
+
export async function listFollowing(db, userId, opts = {}, viewerId) {
|
|
499
514
|
const { limit, offset } = normalizePagination(opts);
|
|
500
515
|
const where = eq(follows.followerId, userId);
|
|
501
516
|
const [rows, total] = await Promise.all([
|
|
@@ -507,16 +522,18 @@ export async function listFollowing(db, userId, opts = {}) {
|
|
|
507
522
|
.from(follows)
|
|
508
523
|
.innerJoin(users, eq(follows.followingId, users.id))
|
|
509
524
|
.where(where)
|
|
510
|
-
.orderBy(desc(follows.createdAt))
|
|
525
|
+
.orderBy(desc(follows.createdAt), desc(follows.id))
|
|
511
526
|
.limit(limit)
|
|
512
527
|
.offset(offset),
|
|
513
528
|
countRows(db, follows, where),
|
|
514
529
|
]);
|
|
530
|
+
const followed = await viewerFollowingSet(db, viewerId, rows.map((r) => r.user.id));
|
|
515
531
|
return {
|
|
516
532
|
items: rows.map((row) => ({
|
|
517
533
|
...row.user,
|
|
518
534
|
bio: row.user.bio ?? null,
|
|
519
535
|
followedAt: row.followedAt,
|
|
536
|
+
isFollowing: viewerId ? followed.has(row.user.id) : undefined,
|
|
520
537
|
})),
|
|
521
538
|
total,
|
|
522
539
|
};
|