@revealui/db 0.3.5 → 0.3.7
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/README.md +4 -4
- package/dist/audit-store.d.ts +1 -1
- package/dist/audit-store.js +1 -1
- package/dist/cleanup/rag-site-cleanup.d.ts +2 -2
- package/dist/cleanup/rag-site-cleanup.js +2 -2
- package/dist/cleanup/stale-tokens.d.ts +6 -6
- package/dist/cleanup/stale-tokens.js +6 -6
- package/dist/client/index.d.ts +1 -1
- package/dist/client/index.d.ts.map +1 -1
- package/dist/client/index.js +20 -8
- package/dist/client/index.js.map +1 -1
- package/dist/crypto.d.ts +1 -1
- package/dist/crypto.js +3 -3
- package/dist/crypto.js.map +1 -1
- package/dist/log-transport.d.ts +1 -1
- package/dist/log-transport.js +2 -2
- package/dist/log-transport.js.map +1 -1
- package/dist/queries/boards.d.ts +13 -13
- package/dist/queries/boards.d.ts.map +1 -1
- package/dist/queries/boards.js +1 -1
- package/dist/queries/boards.js.map +1 -1
- package/dist/queries/code-provenance.d.ts +13 -13
- package/dist/queries/code-provenance.d.ts.map +1 -1
- package/dist/queries/code-provenance.js.map +1 -1
- package/dist/queries/conversations.js +1 -1
- package/dist/queries/conversations.js.map +1 -1
- package/dist/queries/media.d.ts +12 -7
- package/dist/queries/media.d.ts.map +1 -1
- package/dist/queries/media.js +16 -2
- package/dist/queries/media.js.map +1 -1
- package/dist/queries/oauth-accounts.d.ts +9 -0
- package/dist/queries/oauth-accounts.d.ts.map +1 -0
- package/dist/queries/oauth-accounts.js +15 -0
- package/dist/queries/oauth-accounts.js.map +1 -0
- package/dist/queries/orders.d.ts +10 -5
- package/dist/queries/orders.d.ts.map +1 -1
- package/dist/queries/orders.js +14 -1
- package/dist/queries/orders.js.map +1 -1
- package/dist/queries/pages.d.ts +8 -8
- package/dist/queries/pages.d.ts.map +1 -1
- package/dist/queries/pages.js.map +1 -1
- package/dist/queries/passkeys.d.ts +21 -0
- package/dist/queries/passkeys.d.ts.map +1 -0
- package/dist/queries/passkeys.js +19 -0
- package/dist/queries/passkeys.js.map +1 -0
- package/dist/queries/posts.d.ts +16 -11
- package/dist/queries/posts.d.ts.map +1 -1
- package/dist/queries/posts.js +16 -2
- package/dist/queries/posts.js.map +1 -1
- package/dist/queries/products.d.ts +13 -8
- package/dist/queries/products.d.ts.map +1 -1
- package/dist/queries/products.js +15 -1
- package/dist/queries/products.js.map +1 -1
- package/dist/queries/sessions.d.ts +30 -0
- package/dist/queries/sessions.d.ts.map +1 -0
- package/dist/queries/sessions.js +37 -0
- package/dist/queries/sessions.js.map +1 -0
- package/dist/queries/sites.d.ts +18 -12
- package/dist/queries/sites.d.ts.map +1 -1
- package/dist/queries/sites.js +15 -1
- package/dist/queries/sites.js.map +1 -1
- package/dist/queries/ticket-comments.d.ts +8 -8
- package/dist/queries/ticket-comments.d.ts.map +1 -1
- package/dist/queries/ticket-comments.js +2 -2
- package/dist/queries/ticket-comments.js.map +1 -1
- package/dist/queries/ticket-labels.d.ts +9 -9
- package/dist/queries/ticket-labels.d.ts.map +1 -1
- package/dist/queries/ticket-labels.js.map +1 -1
- package/dist/queries/tickets.d.ts +13 -13
- package/dist/queries/tickets.d.ts.map +1 -1
- package/dist/queries/tickets.js +1 -1
- package/dist/queries/tickets.js.map +1 -1
- package/dist/queries/user-api-keys.d.ts +28 -0
- package/dist/queries/user-api-keys.d.ts.map +1 -0
- package/dist/queries/user-api-keys.js +49 -0
- package/dist/queries/user-api-keys.js.map +1 -0
- package/dist/queries/users.d.ts +87 -10
- package/dist/queries/users.d.ts.map +1 -1
- package/dist/queries/users.js +46 -1
- package/dist/queries/users.js.map +1 -1
- package/dist/saga/crdt-resolver.d.ts +4 -4
- package/dist/saga/crdt-resolver.js +10 -10
- package/dist/saga/crdt-resolver.js.map +1 -1
- package/dist/saga/idempotent-operation.d.ts +1 -1
- package/dist/saga/idempotent-operation.js +2 -2
- package/dist/saga/idempotent-operation.js.map +1 -1
- package/dist/saga/index.d.ts +1 -1
- package/dist/saga/index.js +1 -1
- package/dist/saga/neon-saga.d.ts +2 -2
- package/dist/saga/neon-saga.js +9 -9
- package/dist/saga/neon-saga.js.map +1 -1
- package/dist/saga/recovery.d.ts +2 -2
- package/dist/saga/recovery.js +2 -2
- package/dist/saga/resilient-step.d.ts +1 -1
- package/dist/saga/resilient-step.js +2 -2
- package/dist/saga/resilient-step.js.map +1 -1
- package/dist/saga/types.d.ts +2 -2
- package/dist/schema/accounts.d.ts.map +1 -1
- package/dist/schema/accounts.js +29 -6
- package/dist/schema/accounts.js.map +1 -1
- package/dist/schema/{cms.d.ts → admin.d.ts} +3 -3
- package/dist/schema/admin.d.ts.map +1 -0
- package/dist/schema/{cms.js → admin.js} +26 -11
- package/dist/schema/admin.js.map +1 -0
- package/dist/schema/agents.d.ts +1 -1
- package/dist/schema/agents.d.ts.map +1 -1
- package/dist/schema/agents.js +39 -15
- package/dist/schema/agents.js.map +1 -1
- package/dist/schema/api-keys.d.ts +1 -1
- package/dist/schema/api-keys.d.ts.map +1 -1
- package/dist/schema/api-keys.js +10 -4
- package/dist/schema/api-keys.js.map +1 -1
- package/dist/schema/app-logs.d.ts +1 -1
- package/dist/schema/app-logs.js +2 -2
- package/dist/schema/app-logs.js.map +1 -1
- package/dist/schema/audit-log.d.ts +17 -0
- package/dist/schema/audit-log.d.ts.map +1 -1
- package/dist/schema/audit-log.js +2 -0
- package/dist/schema/audit-log.js.map +1 -1
- package/dist/schema/circuit-breaker.d.ts.map +1 -1
- package/dist/schema/circuit-breaker.js +4 -1
- package/dist/schema/circuit-breaker.js.map +1 -1
- package/dist/schema/code-provenance.d.ts.map +1 -1
- package/dist/schema/code-provenance.js +4 -1
- package/dist/schema/code-provenance.js.map +1 -1
- package/dist/schema/coordination.d.ts +2 -2
- package/dist/schema/coordination.d.ts.map +1 -1
- package/dist/schema/coordination.js +6 -3
- package/dist/schema/coordination.js.map +1 -1
- package/dist/schema/error-events.d.ts +2 -2
- package/dist/schema/error-events.js +5 -5
- package/dist/schema/error-events.js.map +1 -1
- package/dist/schema/index.d.ts +17 -0
- package/dist/schema/index.d.ts.map +1 -1
- package/dist/schema/index.js +44 -5
- package/dist/schema/index.js.map +1 -1
- package/dist/schema/jobs.d.ts +1 -1
- package/dist/schema/jobs.js +1 -1
- package/dist/schema/licenses.d.ts.map +1 -1
- package/dist/schema/licenses.js +19 -4
- package/dist/schema/licenses.js.map +1 -1
- package/dist/schema/marketplace.d.ts +1 -1
- package/dist/schema/marketplace.d.ts.map +1 -1
- package/dist/schema/marketplace.js +8 -5
- package/dist/schema/marketplace.js.map +1 -1
- package/dist/schema/node-ids.d.ts.map +1 -1
- package/dist/schema/node-ids.js +4 -1
- package/dist/schema/node-ids.js.map +1 -1
- package/dist/schema/oauth-accounts.d.ts +1 -1
- package/dist/schema/oauth-accounts.d.ts.map +1 -1
- package/dist/schema/oauth-accounts.js +5 -2
- package/dist/schema/oauth-accounts.js.map +1 -1
- package/dist/schema/pages.d.ts.map +1 -1
- package/dist/schema/pages.js +5 -2
- package/dist/schema/pages.js.map +1 -1
- package/dist/schema/products.d.ts.map +1 -1
- package/dist/schema/products.js +13 -4
- package/dist/schema/products.js.map +1 -1
- package/dist/schema/rag.d.ts +1 -1
- package/dist/schema/rag.d.ts.map +1 -1
- package/dist/schema/rag.js +12 -9
- package/dist/schema/rag.js.map +1 -1
- package/dist/schema/rate-limits.d.ts.map +1 -1
- package/dist/schema/rate-limits.js +8 -2
- package/dist/schema/rate-limits.js.map +1 -1
- package/dist/schema/rest.d.ts +3 -2
- package/dist/schema/rest.d.ts.map +1 -1
- package/dist/schema/rest.js +5 -4
- package/dist/schema/rest.js.map +1 -1
- package/dist/schema/revealcoin.js +1 -1
- package/dist/schema/revealcoin.js.map +1 -1
- package/dist/schema/revmarket.d.ts +971 -0
- package/dist/schema/revmarket.d.ts.map +1 -0
- package/dist/schema/revmarket.js +166 -0
- package/dist/schema/revmarket.js.map +1 -0
- package/dist/schema/sites.d.ts.map +1 -1
- package/dist/schema/sites.js +5 -2
- package/dist/schema/sites.js.map +1 -1
- package/dist/schema/tenants.d.ts.map +1 -1
- package/dist/schema/tenants.js +4 -1
- package/dist/schema/tenants.js.map +1 -1
- package/dist/schema/tickets.d.ts.map +1 -1
- package/dist/schema/tickets.js +20 -5
- package/dist/schema/tickets.js.map +1 -1
- package/dist/schema/users.d.ts.map +1 -1
- package/dist/schema/users.js +11 -5
- package/dist/schema/users.js.map +1 -1
- package/dist/schema/webhook-events.js +1 -1
- package/dist/schema/webhook-events.js.map +1 -1
- package/dist/schema/yjs-documents.d.ts.map +1 -1
- package/dist/schema/yjs-documents.js +4 -1
- package/dist/schema/yjs-documents.js.map +1 -1
- package/dist/scripts/cleanup-expired.d.ts +3 -3
- package/dist/scripts/cleanup-expired.js +4 -4
- package/dist/scripts/cleanup-expired.js.map +1 -1
- package/dist/types/database.d.ts +81 -1
- package/dist/types/database.d.ts.map +1 -1
- package/dist/types/database.js +18 -0
- package/dist/types/database.js.map +1 -1
- package/dist/types/discover.js +1 -1
- package/dist/types/discover.js.map +1 -1
- package/dist/validation/cross-db.d.ts +1 -1
- package/dist/validation/cross-db.js +3 -3
- package/dist/validation/cross-db.js.map +1 -1
- package/package.json +42 -7
- package/dist/schema/cms.d.ts.map +0 -1
- package/dist/schema/cms.js.map +0 -1
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"products.js","sourceRoot":"","sources":["../../src/queries/products.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,OAAO,EAAE,GAAG,EAAE,IAAI,EAAE,EAAE,EAAE,MAAM,EAAE,MAAM,aAAa,CAAC;
|
|
1
|
+
{"version":3,"file":"products.js","sourceRoot":"","sources":["../../src/queries/products.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,30 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Session database queries with soft-delete support
|
|
3
|
+
*/
|
|
4
|
+
import type { Database } from '../client/index.js';
|
|
5
|
+
/** List active (non-expired, non-revoked) sessions for a user */
|
|
6
|
+
export declare function getActiveSessions(db: Database, userId: string): Promise<{
|
|
7
|
+
id: string;
|
|
8
|
+
userAgent: string | null;
|
|
9
|
+
ipAddress: string | null;
|
|
10
|
+
persistent: boolean | null;
|
|
11
|
+
lastActivityAt: Date;
|
|
12
|
+
createdAt: Date;
|
|
13
|
+
expiresAt: Date;
|
|
14
|
+
}[]>;
|
|
15
|
+
/** Soft-delete (revoke) a session owned by a specific user */
|
|
16
|
+
export declare function revokeSession(db: Database, sessionId: string, userId: string): Promise<{
|
|
17
|
+
id: string;
|
|
18
|
+
schemaVersion: string;
|
|
19
|
+
userId: string;
|
|
20
|
+
tokenHash: string;
|
|
21
|
+
userAgent: string | null;
|
|
22
|
+
ipAddress: string | null;
|
|
23
|
+
persistent: boolean | null;
|
|
24
|
+
metadata: Record<string, unknown> | null;
|
|
25
|
+
lastActivityAt: Date;
|
|
26
|
+
createdAt: Date;
|
|
27
|
+
expiresAt: Date;
|
|
28
|
+
deletedAt: Date | null;
|
|
29
|
+
} | null>;
|
|
30
|
+
//# sourceMappingURL=sessions.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"sessions.d.ts","sourceRoot":"","sources":["../../src/queries/sessions.ts"],"names":[],"mappings":"AAAA;;GAEG;AAGH,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,oBAAoB,CAAC;AAUnD,iEAAiE;AACjE,wBAAsB,iBAAiB,CAAC,EAAE,EAAE,QAAQ,EAAE,MAAM,EAAE,MAAM;;;;;;;;KAcnE;AAED,8DAA8D;AAC9D,wBAAsB,aAAa,CAAC,EAAE,EAAE,QAAQ,EAAE,SAAS,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM;;;;;;;;;;;;;UAOlF"}
|
|
@@ -0,0 +1,37 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Session database queries with soft-delete support
|
|
3
|
+
*/
|
|
4
|
+
import { and, eq, gt, isNull } from 'drizzle-orm';
|
|
5
|
+
import { sessions } from '../schema/users.js';
|
|
6
|
+
/** Active session condition: not expired and not soft-deleted */
|
|
7
|
+
const activeSession = (userId) => [
|
|
8
|
+
eq(sessions.userId, userId),
|
|
9
|
+
gt(sessions.expiresAt, new Date()),
|
|
10
|
+
isNull(sessions.deletedAt),
|
|
11
|
+
];
|
|
12
|
+
/** List active (non-expired, non-revoked) sessions for a user */
|
|
13
|
+
export async function getActiveSessions(db, userId) {
|
|
14
|
+
return db
|
|
15
|
+
.select({
|
|
16
|
+
id: sessions.id,
|
|
17
|
+
userAgent: sessions.userAgent,
|
|
18
|
+
ipAddress: sessions.ipAddress,
|
|
19
|
+
persistent: sessions.persistent,
|
|
20
|
+
lastActivityAt: sessions.lastActivityAt,
|
|
21
|
+
createdAt: sessions.createdAt,
|
|
22
|
+
expiresAt: sessions.expiresAt,
|
|
23
|
+
})
|
|
24
|
+
.from(sessions)
|
|
25
|
+
.where(and(...activeSession(userId)))
|
|
26
|
+
.orderBy(sessions.lastActivityAt);
|
|
27
|
+
}
|
|
28
|
+
/** Soft-delete (revoke) a session owned by a specific user */
|
|
29
|
+
export async function revokeSession(db, sessionId, userId) {
|
|
30
|
+
const result = await db
|
|
31
|
+
.update(sessions)
|
|
32
|
+
.set({ deletedAt: new Date() })
|
|
33
|
+
.where(and(eq(sessions.id, sessionId), eq(sessions.userId, userId), isNull(sessions.deletedAt)))
|
|
34
|
+
.returning();
|
|
35
|
+
return result[0] ?? null;
|
|
36
|
+
}
|
|
37
|
+
//# sourceMappingURL=sessions.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"sessions.js","sourceRoot":"","sources":["../../src/queries/sessions.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,OAAO,EAAE,GAAG,EAAE,EAAE,EAAE,EAAE,EAAE,MAAM,EAAE,MAAM,aAAa,CAAC;AAElD,OAAO,EAAE,QAAQ,EAAE,MAAM,oBAAoB,CAAC;AAE9C,iEAAiE;AACjE,MAAM,aAAa,GAAG,CAAC,MAAc,EAAE,EAAE,CAAC;IACxC,EAAE,CAAC,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAC;IAC3B,EAAE,CAAC,QAAQ,CAAC,SAAS,EAAE,IAAI,IAAI,EAAE,CAAC;IAClC,MAAM,CAAC,QAAQ,CAAC,SAAS,CAAC;CAC3B,CAAC;AAEF,iEAAiE;AACjE,MAAM,CAAC,KAAK,UAAU,iBAAiB,CAAC,EAAY,EAAE,MAAc;IAClE,OAAO,EAAE;SACN,MAAM,CAAC;QACN,EAAE,EAAE,QAAQ,CAAC,EAAE;QACf,SAAS,EAAE,QAAQ,CAAC,SAAS;QAC7B,SAAS,EAAE,QAAQ,CAAC,SAAS;QAC7B,UAAU,EAAE,QAAQ,CAAC,UAAU;QAC/B,cAAc,EAAE,QAAQ,CAAC,cAAc;QACvC,SAAS,EAAE,QAAQ,CAAC,SAAS;QAC7B,SAAS,EAAE,QAAQ,CAAC,SAAS;KAC9B,CAAC;SACD,IAAI,CAAC,QAAQ,CAAC;SACd,KAAK,CAAC,GAAG,CAAC,GAAG,aAAa,CAAC,MAAM,CAAC,CAAC,CAAC;SACpC,OAAO,CAAC,QAAQ,CAAC,cAAc,CAAC,CAAC;AACtC,CAAC;AAED,8DAA8D;AAC9D,MAAM,CAAC,KAAK,UAAU,aAAa,CAAC,EAAY,EAAE,SAAiB,EAAE,MAAc;IACjF,MAAM,MAAM,GAAG,MAAM,EAAE;SACpB,MAAM,CAAC,QAAQ,CAAC;SAChB,GAAG,CAAC,EAAE,SAAS,EAAE,IAAI,IAAI,EAAE,EAAE,CAAC;SAC9B,KAAK,CAAC,GAAG,CAAC,EAAE,CAAC,QAAQ,CAAC,EAAE,EAAE,SAAS,CAAC,EAAE,EAAE,CAAC,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAC,EAAE,MAAM,CAAC,QAAQ,CAAC,SAAS,CAAC,CAAC,CAAC;SAC/F,SAAS,EAAE,CAAC;IACf,OAAO,MAAM,CAAC,CAAC,CAAC,IAAI,IAAI,CAAC;AAC3B,CAAC"}
|
package/dist/queries/sites.d.ts
CHANGED
|
@@ -1,9 +1,15 @@
|
|
|
1
1
|
/**
|
|
2
2
|
* Site database queries
|
|
3
3
|
*/
|
|
4
|
-
import type {
|
|
4
|
+
import type { Database } from '../client/index.js';
|
|
5
5
|
import { sites } from '../schema/sites.js';
|
|
6
|
-
|
|
6
|
+
/** Count sites matching filters (for pagination) */
|
|
7
|
+
export declare function countSites(db: Database, options?: {
|
|
8
|
+
ownerId?: string;
|
|
9
|
+
status?: string;
|
|
10
|
+
includeDeleted?: boolean;
|
|
11
|
+
}): Promise<number>;
|
|
12
|
+
export declare function getAllSites(db: Database, options?: {
|
|
7
13
|
ownerId?: string;
|
|
8
14
|
status?: string;
|
|
9
15
|
limit?: number;
|
|
@@ -27,7 +33,7 @@ export declare function getAllSites(db: DatabaseClient, options?: {
|
|
|
27
33
|
publishedAt: Date | null;
|
|
28
34
|
deletedAt: Date | null;
|
|
29
35
|
}[]>;
|
|
30
|
-
export declare function getSiteById(db:
|
|
36
|
+
export declare function getSiteById(db: Database, id: string): Promise<{
|
|
31
37
|
id: string;
|
|
32
38
|
schemaVersion: string;
|
|
33
39
|
version: number;
|
|
@@ -45,7 +51,7 @@ export declare function getSiteById(db: DatabaseClient, id: string): Promise<{
|
|
|
45
51
|
publishedAt: Date | null;
|
|
46
52
|
deletedAt: Date | null;
|
|
47
53
|
} | null>;
|
|
48
|
-
export declare function getSiteBySlug(db:
|
|
54
|
+
export declare function getSiteBySlug(db: Database, slug: string): Promise<{
|
|
49
55
|
id: string;
|
|
50
56
|
schemaVersion: string;
|
|
51
57
|
version: number;
|
|
@@ -63,7 +69,7 @@ export declare function getSiteBySlug(db: DatabaseClient, slug: string): Promise
|
|
|
63
69
|
publishedAt: Date | null;
|
|
64
70
|
deletedAt: Date | null;
|
|
65
71
|
} | null>;
|
|
66
|
-
export declare function createSite(db:
|
|
72
|
+
export declare function createSite(db: Database, data: typeof sites.$inferInsert): Promise<{
|
|
67
73
|
id: string;
|
|
68
74
|
name: string;
|
|
69
75
|
schemaVersion: string;
|
|
@@ -73,15 +79,15 @@ export declare function createSite(db: DatabaseClient, data: typeof sites.$infer
|
|
|
73
79
|
deletedAt: Date | null;
|
|
74
80
|
slug: string;
|
|
75
81
|
version: number;
|
|
82
|
+
publishedAt: Date | null;
|
|
76
83
|
ownerId: string;
|
|
77
84
|
description: string | null;
|
|
78
85
|
theme: unknown;
|
|
79
86
|
settings: unknown;
|
|
80
87
|
pageCount: number | null;
|
|
81
88
|
favicon: string | null;
|
|
82
|
-
publishedAt: Date | null;
|
|
83
89
|
} | null>;
|
|
84
|
-
export declare function updateSite(db:
|
|
90
|
+
export declare function updateSite(db: Database, id: string, data: Partial<typeof sites.$inferInsert>): Promise<{
|
|
85
91
|
id: string;
|
|
86
92
|
schemaVersion: string;
|
|
87
93
|
version: number;
|
|
@@ -100,9 +106,9 @@ export declare function updateSite(db: DatabaseClient, id: string, data: Partial
|
|
|
100
106
|
deletedAt: Date | null;
|
|
101
107
|
} | null>;
|
|
102
108
|
/** Soft-delete: sets deletedAt timestamp instead of removing the row */
|
|
103
|
-
export declare function deleteSite(db:
|
|
109
|
+
export declare function deleteSite(db: Database, id: string): Promise<void>;
|
|
104
110
|
/** Restore a soft-deleted site */
|
|
105
|
-
export declare function restoreSite(db:
|
|
111
|
+
export declare function restoreSite(db: Database, id: string): Promise<{
|
|
106
112
|
id: string;
|
|
107
113
|
schemaVersion: string;
|
|
108
114
|
version: number;
|
|
@@ -121,7 +127,7 @@ export declare function restoreSite(db: DatabaseClient, id: string): Promise<{
|
|
|
121
127
|
deletedAt: Date | null;
|
|
122
128
|
} | null>;
|
|
123
129
|
/** Permanently remove a soft-deleted site (admin cleanup) */
|
|
124
|
-
export declare function purgeSite(db:
|
|
125
|
-
export declare function incrementPageCount(db:
|
|
126
|
-
export declare function decrementPageCount(db:
|
|
130
|
+
export declare function purgeSite(db: Database, id: string): Promise<void>;
|
|
131
|
+
export declare function incrementPageCount(db: Database, siteId: string): Promise<void>;
|
|
132
|
+
export declare function decrementPageCount(db: Database, siteId: string): Promise<void>;
|
|
127
133
|
//# sourceMappingURL=sites.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"sites.d.ts","sourceRoot":"","sources":["../../src/queries/sites.ts"],"names":[],"mappings":"AAAA;;GAEG;AAGH,OAAO,KAAK,EAAE,
|
|
1
|
+
{"version":3,"file":"sites.d.ts","sourceRoot":"","sources":["../../src/queries/sites.ts"],"names":[],"mappings":"AAAA;;GAEG;AAGH,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,oBAAoB,CAAC;AACnD,OAAO,EAAE,KAAK,EAAE,MAAM,oBAAoB,CAAC;AAK3C,oDAAoD;AACpD,wBAAsB,UAAU,CAC9B,EAAE,EAAE,QAAQ,EACZ,OAAO,GAAE;IAAE,OAAO,CAAC,EAAE,MAAM,CAAC;IAAC,MAAM,CAAC,EAAE,MAAM,CAAC;IAAC,cAAc,CAAC,EAAE,OAAO,CAAA;CAAO,mBAa9E;AAED,wBAAsB,WAAW,CAC/B,EAAE,EAAE,QAAQ,EACZ,OAAO,GAAE;IACP,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,cAAc,CAAC,EAAE,OAAO,CAAC;CACrB;;;;;;;;;;;;;;;;;KAeP;AAED,wBAAsB,WAAW,CAAC,EAAE,EAAE,QAAQ,EAAE,EAAE,EAAE,MAAM;;;;;;;;;;;;;;;;;UAOzD;AAED,wBAAsB,aAAa,CAAC,EAAE,EAAE,QAAQ,EAAE,IAAI,EAAE,MAAM;;;;;;;;;;;;;;;;;UAO7D;AAED,wBAAsB,UAAU,CAAC,EAAE,EAAE,QAAQ,EAAE,IAAI,EAAE,OAAO,KAAK,CAAC,YAAY;;;;;;;;;;;;;;;;;UAG7E;AAED,wBAAsB,UAAU,CAC9B,EAAE,EAAE,QAAQ,EACZ,EAAE,EAAE,MAAM,EACV,IAAI,EAAE,OAAO,CAAC,OAAO,KAAK,CAAC,YAAY,CAAC;;;;;;;;;;;;;;;;;UAQzC;AAED,wEAAwE;AACxE,wBAAsB,UAAU,CAAC,EAAE,EAAE,QAAQ,EAAE,EAAE,EAAE,MAAM,iBAKxD;AAED,kCAAkC;AAClC,wBAAsB,WAAW,CAAC,EAAE,EAAE,QAAQ,EAAE,EAAE,EAAE,MAAM;;;;;;;;;;;;;;;;;UAOzD;AAED,6DAA6D;AAC7D,wBAAsB,SAAS,CAAC,EAAE,EAAE,QAAQ,EAAE,EAAE,EAAE,MAAM,iBAEvD;AAED,wBAAsB,kBAAkB,CAAC,EAAE,EAAE,QAAQ,EAAE,MAAM,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,CAKpF;AAED,wBAAsB,kBAAkB,CAAC,EAAE,EAAE,QAAQ,EAAE,MAAM,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,CAKpF"}
|
package/dist/queries/sites.js
CHANGED
|
@@ -1,10 +1,24 @@
|
|
|
1
1
|
/**
|
|
2
2
|
* Site database queries
|
|
3
3
|
*/
|
|
4
|
-
import { and, desc, eq, isNull, sql } from 'drizzle-orm';
|
|
4
|
+
import { and, count, desc, eq, isNull, sql } from 'drizzle-orm';
|
|
5
5
|
import { sites } from '../schema/sites.js';
|
|
6
6
|
/** Condition that excludes soft-deleted sites */
|
|
7
7
|
const notDeleted = isNull(sites.deletedAt);
|
|
8
|
+
/** Count sites matching filters (for pagination) */
|
|
9
|
+
export async function countSites(db, options = {}) {
|
|
10
|
+
const { ownerId, status, includeDeleted = false } = options;
|
|
11
|
+
const conditions = [
|
|
12
|
+
...(includeDeleted ? [] : [notDeleted]),
|
|
13
|
+
...(ownerId ? [eq(sites.ownerId, ownerId)] : []),
|
|
14
|
+
...(status ? [eq(sites.status, status)] : []),
|
|
15
|
+
];
|
|
16
|
+
const result = await db
|
|
17
|
+
.select({ total: count() })
|
|
18
|
+
.from(sites)
|
|
19
|
+
.where(conditions.length > 0 ? and(...conditions) : undefined);
|
|
20
|
+
return result[0]?.total ?? 0;
|
|
21
|
+
}
|
|
8
22
|
export async function getAllSites(db, options = {}) {
|
|
9
23
|
const { ownerId, status, limit = 20, offset = 0, includeDeleted = false } = options;
|
|
10
24
|
const conditions = [
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"sites.js","sourceRoot":"","sources":["../../src/queries/sites.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,OAAO,EAAE,GAAG,EAAE,IAAI,EAAE,EAAE,EAAE,MAAM,EAAE,GAAG,EAAE,MAAM,aAAa,CAAC;
|
|
1
|
+
{"version":3,"file":"sites.js","sourceRoot":"","sources":["../../src/queries/sites.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,8 +1,8 @@
|
|
|
1
1
|
/**
|
|
2
2
|
* Ticket comment database queries
|
|
3
3
|
*/
|
|
4
|
-
import type {
|
|
5
|
-
export declare function getCommentById(db:
|
|
4
|
+
import type { Database } from '../client/index.js';
|
|
5
|
+
export declare function getCommentById(db: Database, id: string): Promise<{
|
|
6
6
|
id: string;
|
|
7
7
|
ticketId: string;
|
|
8
8
|
authorId: string | null;
|
|
@@ -10,7 +10,7 @@ export declare function getCommentById(db: DatabaseClient, id: string): Promise<
|
|
|
10
10
|
createdAt: Date;
|
|
11
11
|
updatedAt: Date;
|
|
12
12
|
} | null>;
|
|
13
|
-
export declare function getCommentsByTicket(db:
|
|
13
|
+
export declare function getCommentsByTicket(db: Database, ticketId: string): Promise<{
|
|
14
14
|
id: string;
|
|
15
15
|
ticketId: string;
|
|
16
16
|
authorId: string | null;
|
|
@@ -19,7 +19,7 @@ export declare function getCommentsByTicket(db: DatabaseClient, ticketId: string
|
|
|
19
19
|
updatedAt: Date;
|
|
20
20
|
}[]>;
|
|
21
21
|
/** Get comments with author data joined (prevents N+1 when displaying threads) */
|
|
22
|
-
export declare function getCommentsWithAuthors(db:
|
|
22
|
+
export declare function getCommentsWithAuthors(db: Database, ticketId: string): Promise<{
|
|
23
23
|
comment: {
|
|
24
24
|
id: string;
|
|
25
25
|
ticketId: string;
|
|
@@ -35,7 +35,7 @@ export declare function getCommentsWithAuthors(db: DatabaseClient, ticketId: str
|
|
|
35
35
|
} | null;
|
|
36
36
|
}[]>;
|
|
37
37
|
/** Batch-load comments for multiple tickets (prevents N+1 on board views) */
|
|
38
|
-
export declare function getCommentsByTicketIds(db:
|
|
38
|
+
export declare function getCommentsByTicketIds(db: Database, ticketIds: string[]): Promise<{
|
|
39
39
|
id: string;
|
|
40
40
|
ticketId: string;
|
|
41
41
|
authorId: string | null;
|
|
@@ -43,7 +43,7 @@ export declare function getCommentsByTicketIds(db: DatabaseClient, ticketIds: st
|
|
|
43
43
|
createdAt: Date;
|
|
44
44
|
updatedAt: Date;
|
|
45
45
|
}[]>;
|
|
46
|
-
export declare function createComment(db:
|
|
46
|
+
export declare function createComment(db: Database, data: {
|
|
47
47
|
id: string;
|
|
48
48
|
ticketId: string;
|
|
49
49
|
authorId?: string;
|
|
@@ -56,7 +56,7 @@ export declare function createComment(db: DatabaseClient, data: {
|
|
|
56
56
|
body: unknown;
|
|
57
57
|
ticketId: string;
|
|
58
58
|
} | undefined>;
|
|
59
|
-
export declare function updateComment(db:
|
|
59
|
+
export declare function updateComment(db: Database, id: string, data: {
|
|
60
60
|
body: unknown;
|
|
61
61
|
}): Promise<{
|
|
62
62
|
id: string;
|
|
@@ -66,5 +66,5 @@ export declare function updateComment(db: DatabaseClient, id: string, data: {
|
|
|
66
66
|
createdAt: Date;
|
|
67
67
|
updatedAt: Date;
|
|
68
68
|
} | null>;
|
|
69
|
-
export declare function deleteComment(db:
|
|
69
|
+
export declare function deleteComment(db: Database, id: string): Promise<void>;
|
|
70
70
|
//# sourceMappingURL=ticket-comments.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ticket-comments.d.ts","sourceRoot":"","sources":["../../src/queries/ticket-comments.ts"],"names":[],"mappings":"AAAA;;GAEG;AAGH,OAAO,KAAK,EAAE,
|
|
1
|
+
{"version":3,"file":"ticket-comments.d.ts","sourceRoot":"","sources":["../../src/queries/ticket-comments.ts"],"names":[],"mappings":"AAAA;;GAEG;AAGH,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,oBAAoB,CAAC;AAInD,wBAAsB,cAAc,CAAC,EAAE,EAAE,QAAQ,EAAE,EAAE,EAAE,MAAM;;;;;;;UAG5D;AAED,wBAAsB,mBAAmB,CAAC,EAAE,EAAE,QAAQ,EAAE,QAAQ,EAAE,MAAM;;;;;;;KAMvE;AAED,kFAAkF;AAClF,wBAAsB,sBAAsB,CAAC,EAAE,EAAE,QAAQ,EAAE,QAAQ,EAAE,MAAM;;;;;;;;;;;;;;KAc1E;AAED,6EAA6E;AAC7E,wBAAsB,sBAAsB,CAAC,EAAE,EAAE,QAAQ,EAAE,SAAS,EAAE,MAAM,EAAE;;;;;;;KAO7E;AAMD,wBAAsB,aAAa,CACjC,EAAE,EAAE,QAAQ,EACZ,IAAI,EAAE;IAAE,EAAE,EAAE,MAAM,CAAC;IAAC,QAAQ,EAAE,MAAM,CAAC;IAAC,QAAQ,CAAC,EAAE,MAAM,CAAC;IAAC,IAAI,EAAE,OAAO,CAAA;CAAE;;;;;;;eAczE;AAED,wBAAsB,aAAa,CAAC,EAAE,EAAE,QAAQ,EAAE,EAAE,EAAE,MAAM,EAAE,IAAI,EAAE;IAAE,IAAI,EAAE,OAAO,CAAA;CAAE;;;;;;;UAQpF;AAKD,wBAAsB,aAAa,CAAC,EAAE,EAAE,QAAQ,EAAE,EAAE,EAAE,MAAM,iBAoB3D"}
|
|
@@ -42,7 +42,7 @@ export async function getCommentsByTicketIds(db, ticketIds) {
|
|
|
42
42
|
.orderBy(ticketComments.createdAt);
|
|
43
43
|
}
|
|
44
44
|
// NOTE: NeonDB HTTP driver does not support transactions. The insert and count
|
|
45
|
-
// update below are not atomic
|
|
45
|
+
// update below are not atomic - a failure between them can leave the comment
|
|
46
46
|
// count out of sync. A periodic reconciliation job or manual correction may be
|
|
47
47
|
// needed if this becomes a problem in practice.
|
|
48
48
|
export async function createComment(db, data) {
|
|
@@ -66,7 +66,7 @@ export async function updateComment(db, id, data) {
|
|
|
66
66
|
return result[0] ?? null;
|
|
67
67
|
}
|
|
68
68
|
// NOTE: NeonDB HTTP driver does not support transactions. The select, delete,
|
|
69
|
-
// and count update below are not atomic
|
|
69
|
+
// and count update below are not atomic - a failure between them can leave the
|
|
70
70
|
// comment count out of sync or orphan a decrement without a deletion.
|
|
71
71
|
export async function deleteComment(db, id) {
|
|
72
72
|
// Get the ticket ID before deleting
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ticket-comments.js","sourceRoot":"","sources":["../../src/queries/ticket-comments.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,OAAO,EAAE,EAAE,EAAE,OAAO,EAAE,GAAG,EAAE,MAAM,aAAa,CAAC;AAE/C,OAAO,EAAE,cAAc,EAAE,OAAO,EAAE,MAAM,sBAAsB,CAAC;AAC/D,OAAO,EAAE,KAAK,EAAE,MAAM,oBAAoB,CAAC;AAE3C,MAAM,CAAC,KAAK,UAAU,cAAc,CAAC,
|
|
1
|
+
{"version":3,"file":"ticket-comments.js","sourceRoot":"","sources":["../../src/queries/ticket-comments.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,8 +1,8 @@
|
|
|
1
1
|
/**
|
|
2
2
|
* Ticket label database queries
|
|
3
3
|
*/
|
|
4
|
-
import type {
|
|
5
|
-
export declare function getLabelById(db:
|
|
4
|
+
import type { Database } from '../client/index.js';
|
|
5
|
+
export declare function getLabelById(db: Database, id: string): Promise<{
|
|
6
6
|
id: string;
|
|
7
7
|
tenantId: string | null;
|
|
8
8
|
name: string;
|
|
@@ -12,7 +12,7 @@ export declare function getLabelById(db: DatabaseClient, id: string): Promise<{
|
|
|
12
12
|
createdAt: Date;
|
|
13
13
|
updatedAt: Date;
|
|
14
14
|
} | null>;
|
|
15
|
-
export declare function getAllLabels(db:
|
|
15
|
+
export declare function getAllLabels(db: Database, tenantId?: string): Promise<{
|
|
16
16
|
id: string;
|
|
17
17
|
tenantId: string | null;
|
|
18
18
|
name: string;
|
|
@@ -22,7 +22,7 @@ export declare function getAllLabels(db: DatabaseClient, tenantId?: string): Pro
|
|
|
22
22
|
createdAt: Date;
|
|
23
23
|
updatedAt: Date;
|
|
24
24
|
}[]>;
|
|
25
|
-
export declare function createLabel(db:
|
|
25
|
+
export declare function createLabel(db: Database, data: {
|
|
26
26
|
id: string;
|
|
27
27
|
name: string;
|
|
28
28
|
slug: string;
|
|
@@ -39,7 +39,7 @@ export declare function createLabel(db: DatabaseClient, data: {
|
|
|
39
39
|
tenantId: string | null;
|
|
40
40
|
color: string;
|
|
41
41
|
} | undefined>;
|
|
42
|
-
export declare function updateLabel(db:
|
|
42
|
+
export declare function updateLabel(db: Database, id: string, data: Partial<{
|
|
43
43
|
name: string;
|
|
44
44
|
slug: string;
|
|
45
45
|
color: string;
|
|
@@ -54,8 +54,8 @@ export declare function updateLabel(db: DatabaseClient, id: string, data: Partia
|
|
|
54
54
|
createdAt: Date;
|
|
55
55
|
updatedAt: Date;
|
|
56
56
|
} | null>;
|
|
57
|
-
export declare function deleteLabel(db:
|
|
58
|
-
export declare function assignLabel(db:
|
|
57
|
+
export declare function deleteLabel(db: Database, id: string): Promise<void>;
|
|
58
|
+
export declare function assignLabel(db: Database, data: {
|
|
59
59
|
id: string;
|
|
60
60
|
ticketId: string;
|
|
61
61
|
labelId: string;
|
|
@@ -65,8 +65,8 @@ export declare function assignLabel(db: DatabaseClient, data: {
|
|
|
65
65
|
labelId: string;
|
|
66
66
|
assignedAt: Date;
|
|
67
67
|
} | undefined>;
|
|
68
|
-
export declare function removeLabel(db:
|
|
69
|
-
export declare function getLabelsForTicket(db:
|
|
68
|
+
export declare function removeLabel(db: Database, ticketId: string, labelId: string): Promise<void>;
|
|
69
|
+
export declare function getLabelsForTicket(db: Database, ticketId: string): Promise<{
|
|
70
70
|
id: string;
|
|
71
71
|
tenantId: string | null;
|
|
72
72
|
name: string;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ticket-labels.d.ts","sourceRoot":"","sources":["../../src/queries/ticket-labels.ts"],"names":[],"mappings":"AAAA;;GAEG;AAGH,OAAO,KAAK,EAAE,
|
|
1
|
+
{"version":3,"file":"ticket-labels.d.ts","sourceRoot":"","sources":["../../src/queries/ticket-labels.ts"],"names":[],"mappings":"AAAA;;GAEG;AAGH,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,oBAAoB,CAAC;AAGnD,wBAAsB,YAAY,CAAC,EAAE,EAAE,QAAQ,EAAE,EAAE,EAAE,MAAM;;;;;;;;;UAG1D;AAED,wBAAsB,YAAY,CAAC,EAAE,EAAE,QAAQ,EAAE,QAAQ,CAAC,EAAE,MAAM;;;;;;;;;KASjE;AAED,wBAAsB,WAAW,CAC/B,EAAE,EAAE,QAAQ,EACZ,IAAI,EAAE;IACJ,EAAE,EAAE,MAAM,CAAC;IACX,IAAI,EAAE,MAAM,CAAC;IACb,IAAI,EAAE,MAAM,CAAC;IACb,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,QAAQ,CAAC,EAAE,MAAM,CAAC;CACnB;;;;;;;;;eAIF;AAED,wBAAsB,WAAW,CAC/B,EAAE,EAAE,QAAQ,EACZ,EAAE,EAAE,MAAM,EACV,IAAI,EAAE,OAAO,CAAC;IAAE,IAAI,EAAE,MAAM,CAAC;IAAC,IAAI,EAAE,MAAM,CAAC;IAAC,KAAK,EAAE,MAAM,CAAC;IAAC,WAAW,EAAE,MAAM,CAAA;CAAE,CAAC;;;;;;;;;UASlF;AAED,wBAAsB,WAAW,CAAC,EAAE,EAAE,QAAQ,EAAE,EAAE,EAAE,MAAM,iBAEzD;AAED,wBAAsB,WAAW,CAC/B,EAAE,EAAE,QAAQ,EACZ,IAAI,EAAE;IAAE,EAAE,EAAE,MAAM,CAAC;IAAC,QAAQ,EAAE,MAAM,CAAC;IAAC,OAAO,EAAE,MAAM,CAAA;CAAE;;;;;eAIxD;AAED,wBAAsB,WAAW,CAAC,EAAE,EAAE,QAAQ,EAAE,QAAQ,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,iBAShF;AAED,wBAAsB,kBAAkB,CAAC,EAAE,EAAE,QAAQ,EAAE,QAAQ,EAAE,MAAM;;;;;;;;;KAWtE"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ticket-labels.js","sourceRoot":"","sources":["../../src/queries/ticket-labels.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,OAAO,EAAE,GAAG,EAAE,EAAE,EAAE,MAAM,aAAa,CAAC;AAEtC,OAAO,EAAE,sBAAsB,EAAE,YAAY,EAAE,MAAM,sBAAsB,CAAC;AAE5E,MAAM,CAAC,KAAK,UAAU,YAAY,CAAC,
|
|
1
|
+
{"version":3,"file":"ticket-labels.js","sourceRoot":"","sources":["../../src/queries/ticket-labels.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,8 +1,8 @@
|
|
|
1
1
|
/**
|
|
2
2
|
* Ticket database queries
|
|
3
3
|
*/
|
|
4
|
-
import type {
|
|
5
|
-
export declare function getTicketsByBoard(db:
|
|
4
|
+
import type { Database } from '../client/index.js';
|
|
5
|
+
export declare function getTicketsByBoard(db: Database, boardId: string, filters?: {
|
|
6
6
|
status?: string;
|
|
7
7
|
priority?: string;
|
|
8
8
|
type?: string;
|
|
@@ -38,7 +38,7 @@ export declare function getTicketsByBoard(db: DatabaseClient, boardId: string, f
|
|
|
38
38
|
updatedAt: Date;
|
|
39
39
|
}[]>;
|
|
40
40
|
/** List tickets with assignee data joined (prevents N+1 on board views) */
|
|
41
|
-
export declare function getTicketsWithAssignees(db:
|
|
41
|
+
export declare function getTicketsWithAssignees(db: Database, boardId: string, filters?: {
|
|
42
42
|
status?: string;
|
|
43
43
|
priority?: string;
|
|
44
44
|
columnId?: string;
|
|
@@ -78,7 +78,7 @@ export declare function getTicketsWithAssignees(db: DatabaseClient, boardId: str
|
|
|
78
78
|
email: string | null;
|
|
79
79
|
} | null;
|
|
80
80
|
}[]>;
|
|
81
|
-
export declare function getTicketById(db:
|
|
81
|
+
export declare function getTicketById(db: Database, id: string): Promise<{
|
|
82
82
|
id: string;
|
|
83
83
|
schemaVersion: string;
|
|
84
84
|
boardId: string;
|
|
@@ -107,7 +107,7 @@ export declare function getTicketById(db: DatabaseClient, id: string): Promise<{
|
|
|
107
107
|
createdAt: Date;
|
|
108
108
|
updatedAt: Date;
|
|
109
109
|
} | null>;
|
|
110
|
-
export declare function getTicketByNumber(db:
|
|
110
|
+
export declare function getTicketByNumber(db: Database, boardId: string, ticketNumber: number): Promise<{
|
|
111
111
|
id: string;
|
|
112
112
|
schemaVersion: string;
|
|
113
113
|
boardId: string;
|
|
@@ -136,7 +136,7 @@ export declare function getTicketByNumber(db: DatabaseClient, boardId: string, t
|
|
|
136
136
|
createdAt: Date;
|
|
137
137
|
updatedAt: Date;
|
|
138
138
|
} | null>;
|
|
139
|
-
export declare function createTicket(db:
|
|
139
|
+
export declare function createTicket(db: Database, data: {
|
|
140
140
|
id: string;
|
|
141
141
|
boardId: string;
|
|
142
142
|
columnId?: string;
|
|
@@ -158,9 +158,9 @@ export declare function createTicket(db: DatabaseClient, data: {
|
|
|
158
158
|
createdAt: Date;
|
|
159
159
|
updatedAt: Date;
|
|
160
160
|
metadata: unknown;
|
|
161
|
+
title: string;
|
|
161
162
|
description: unknown;
|
|
162
163
|
priority: string;
|
|
163
|
-
title: string;
|
|
164
164
|
boardId: string;
|
|
165
165
|
columnId: string | null;
|
|
166
166
|
parentTicketId: string | null;
|
|
@@ -179,7 +179,7 @@ export declare function createTicket(db: DatabaseClient, data: {
|
|
|
179
179
|
}[];
|
|
180
180
|
closedAt: Date | null;
|
|
181
181
|
} | undefined>;
|
|
182
|
-
export declare function updateTicket(db:
|
|
182
|
+
export declare function updateTicket(db: Database, id: string, data: Partial<{
|
|
183
183
|
title: string;
|
|
184
184
|
description: unknown;
|
|
185
185
|
status: string;
|
|
@@ -222,8 +222,8 @@ export declare function updateTicket(db: DatabaseClient, id: string, data: Parti
|
|
|
222
222
|
createdAt: Date;
|
|
223
223
|
updatedAt: Date;
|
|
224
224
|
} | null>;
|
|
225
|
-
export declare function deleteTicket(db:
|
|
226
|
-
export declare function moveTicket(db:
|
|
225
|
+
export declare function deleteTicket(db: Database, id: string): Promise<void>;
|
|
226
|
+
export declare function moveTicket(db: Database, id: string, columnId: string, sortOrder: number): Promise<{
|
|
227
227
|
id: string;
|
|
228
228
|
schemaVersion: string;
|
|
229
229
|
boardId: string;
|
|
@@ -252,7 +252,7 @@ export declare function moveTicket(db: DatabaseClient, id: string, columnId: str
|
|
|
252
252
|
createdAt: Date;
|
|
253
253
|
updatedAt: Date;
|
|
254
254
|
} | null>;
|
|
255
|
-
export declare function getSubtickets(db:
|
|
255
|
+
export declare function getSubtickets(db: Database, parentTicketId: string): Promise<{
|
|
256
256
|
id: string;
|
|
257
257
|
schemaVersion: string;
|
|
258
258
|
boardId: string;
|
|
@@ -281,7 +281,7 @@ export declare function getSubtickets(db: DatabaseClient, parentTicketId: string
|
|
|
281
281
|
createdAt: Date;
|
|
282
282
|
updatedAt: Date;
|
|
283
283
|
}[]>;
|
|
284
|
-
export declare function getTicketsByColumn(db:
|
|
284
|
+
export declare function getTicketsByColumn(db: Database, columnId: string): Promise<{
|
|
285
285
|
id: string;
|
|
286
286
|
schemaVersion: string;
|
|
287
287
|
boardId: string;
|
|
@@ -310,7 +310,7 @@ export declare function getTicketsByColumn(db: DatabaseClient, columnId: string)
|
|
|
310
310
|
createdAt: Date;
|
|
311
311
|
updatedAt: Date;
|
|
312
312
|
}[]>;
|
|
313
|
-
export declare function getOverdueTickets(db:
|
|
313
|
+
export declare function getOverdueTickets(db: Database, boardId: string): Promise<{
|
|
314
314
|
id: string;
|
|
315
315
|
schemaVersion: string;
|
|
316
316
|
boardId: string;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"tickets.d.ts","sourceRoot":"","sources":["../../src/queries/tickets.ts"],"names":[],"mappings":"AAAA;;GAEG;AAGH,OAAO,KAAK,EAAE,
|
|
1
|
+
{"version":3,"file":"tickets.d.ts","sourceRoot":"","sources":["../../src/queries/tickets.ts"],"names":[],"mappings":"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"}
|
package/dist/queries/tickets.js
CHANGED
|
@@ -58,7 +58,7 @@ export async function getTicketByNumber(db, boardId, ticketNumber) {
|
|
|
58
58
|
return result[0] ?? null;
|
|
59
59
|
}
|
|
60
60
|
export async function createTicket(db, data) {
|
|
61
|
-
// Atomic ticket number assignment
|
|
61
|
+
// Atomic ticket number assignment - the subquery computes MAX+1 inside the
|
|
62
62
|
// INSERT so concurrent inserts cannot produce duplicate numbers. The UNIQUE
|
|
63
63
|
// constraint on (board_id, ticket_number) acts as a safety net.
|
|
64
64
|
const result = await db
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"tickets.js","sourceRoot":"","sources":["../../src/queries/tickets.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,OAAO,EAAE,GAAG,EAAE,IAAI,EAAE,EAAE,EAAE,GAAG,EAAE,MAAM,aAAa,CAAC;AAEjD,OAAO,EAAE,OAAO,EAAE,MAAM,sBAAsB,CAAC;AAC/C,OAAO,EAAE,KAAK,EAAE,MAAM,oBAAoB,CAAC;AAE3C,MAAM,CAAC,KAAK,UAAU,iBAAiB,CACrC,
|
|
1
|
+
{"version":3,"file":"tickets.js","sourceRoot":"","sources":["../../src/queries/tickets.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,28 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* User API key database queries
|
|
3
|
+
*/
|
|
4
|
+
import type { Database } from '../client/index.js';
|
|
5
|
+
/** Get a user's API key metadata (provider + hint, no encrypted key) */
|
|
6
|
+
export declare function getApiKeyMetadata(db: Database, userId: string): Promise<{
|
|
7
|
+
provider: string;
|
|
8
|
+
keyHint: string | null;
|
|
9
|
+
} | null>;
|
|
10
|
+
/** Get a user's encrypted API key for decryption */
|
|
11
|
+
export declare function getEncryptedApiKey(db: Database, userId: string): Promise<{
|
|
12
|
+
id: string;
|
|
13
|
+
provider: string;
|
|
14
|
+
encryptedKey: string;
|
|
15
|
+
} | null>;
|
|
16
|
+
/** Upsert an API key (delete existing for provider, then insert new) */
|
|
17
|
+
export declare function upsertApiKey(db: Database, values: {
|
|
18
|
+
id: string;
|
|
19
|
+
userId: string;
|
|
20
|
+
provider: string;
|
|
21
|
+
encryptedKey: string;
|
|
22
|
+
keyHint: string | null;
|
|
23
|
+
}): Promise<void>;
|
|
24
|
+
/** Delete all API keys for a user */
|
|
25
|
+
export declare function deleteApiKeys(db: Database, userId: string): Promise<void>;
|
|
26
|
+
/** Update lastUsedAt timestamp (fire-and-forget) */
|
|
27
|
+
export declare function touchApiKeyUsage(db: Database, keyId: string): Promise<void>;
|
|
28
|
+
//# sourceMappingURL=user-api-keys.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"user-api-keys.d.ts","sourceRoot":"","sources":["../../src/queries/user-api-keys.ts"],"names":[],"mappings":"AAAA;;GAEG;AAGH,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,oBAAoB,CAAC;AAGnD,wEAAwE;AACxE,wBAAsB,iBAAiB,CAAC,EAAE,EAAE,QAAQ,EAAE,MAAM,EAAE,MAAM;;;UAOnE;AAED,oDAAoD;AACpD,wBAAsB,kBAAkB,CAAC,EAAE,EAAE,QAAQ,EAAE,MAAM,EAAE,MAAM;;;;UAWpE;AAED,wEAAwE;AACxE,wBAAsB,YAAY,CAChC,EAAE,EAAE,QAAQ,EACZ,MAAM,EAAE;IACN,EAAE,EAAE,MAAM,CAAC;IACX,MAAM,EAAE,MAAM,CAAC;IACf,QAAQ,EAAE,MAAM,CAAC;IACjB,YAAY,EAAE,MAAM,CAAC;IACrB,OAAO,EAAE,MAAM,GAAG,IAAI,CAAC;CACxB,iBAaF;AAED,qCAAqC;AACrC,wBAAsB,aAAa,CAAC,EAAE,EAAE,QAAQ,EAAE,MAAM,EAAE,MAAM,iBAE/D;AAED,oDAAoD;AACpD,wBAAsB,gBAAgB,CAAC,EAAE,EAAE,QAAQ,EAAE,KAAK,EAAE,MAAM,iBAEjE"}
|