@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
package/README.md
CHANGED
|
@@ -127,14 +127,14 @@ await db.insert(users).values({
|
|
|
127
127
|
- You need type-safe database queries against the RevealUI schema (users, posts, agents, vectors)
|
|
128
128
|
- You're running migrations or generating types from the Drizzle schema
|
|
129
129
|
- You want a pre-configured client for Neon, Supabase, or Vercel Postgres
|
|
130
|
-
- **Not** for validation logic
|
|
131
|
-
- **Not** for direct SQL
|
|
130
|
+
- **Not** for validation logic - use `@revealui/contracts` for Zod schemas
|
|
131
|
+
- **Not** for direct SQL - use Drizzle's query builder or `db.execute()` for raw queries
|
|
132
132
|
|
|
133
133
|
## JOSHUA Alignment
|
|
134
134
|
|
|
135
|
-
- **Unified**: One schema definition (
|
|
135
|
+
- **Unified**: One schema definition (81 tables) drives types, queries, and migrations across all apps
|
|
136
136
|
- **Orthogonal**: Schema files are cleanly separated by domain (cms, users, agents, vector, crdt) with no cross-domain entanglement
|
|
137
|
-
- **Sovereign**: Your database, your schema, your migrations
|
|
137
|
+
- **Sovereign**: Your database, your schema, your migrations - no hosted schema service in the loop
|
|
138
138
|
|
|
139
139
|
## Related Documentation
|
|
140
140
|
|
package/dist/audit-store.d.ts
CHANGED
|
@@ -3,7 +3,7 @@
|
|
|
3
3
|
*
|
|
4
4
|
* Persistent implementation of the AuditStore interface from @revealui/ai.
|
|
5
5
|
* Stores audit entries in the audit_log PostgreSQL table via Drizzle ORM.
|
|
6
|
-
* Append-only
|
|
6
|
+
* Append-only - no update or delete operations.
|
|
7
7
|
*
|
|
8
8
|
* Types are defined locally to avoid a circular dependency on @revealui/ai.
|
|
9
9
|
* They mirror AuditEntry and AuditFilter from @revealui/ai/audit/types.
|
package/dist/audit-store.js
CHANGED
|
@@ -3,7 +3,7 @@
|
|
|
3
3
|
*
|
|
4
4
|
* Persistent implementation of the AuditStore interface from @revealui/ai.
|
|
5
5
|
* Stores audit entries in the audit_log PostgreSQL table via Drizzle ORM.
|
|
6
|
-
* Append-only
|
|
6
|
+
* Append-only - no update or delete operations.
|
|
7
7
|
*
|
|
8
8
|
* Types are defined locally to avoid a circular dependency on @revealui/ai.
|
|
9
9
|
* They mirror AuditEntry and AuditFilter from @revealui/ai/audit/types.
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
/**
|
|
2
|
-
* RAG Site Cleanup
|
|
2
|
+
* RAG Site Cleanup - Cascade delete for a single site
|
|
3
3
|
*
|
|
4
4
|
* When a site is deleted from NeonDB, the cross-database FK cascades to
|
|
5
5
|
* Supabase are NOT enforced at the DB level. This function immediately
|
|
@@ -11,7 +11,7 @@
|
|
|
11
11
|
* 3. rag_workspaces (id = sites.id)
|
|
12
12
|
*
|
|
13
13
|
* Designed to be called fire-and-forget from the site DELETE route.
|
|
14
|
-
* Errors are caught and logged
|
|
14
|
+
* Errors are caught and logged - they never block the site deletion response.
|
|
15
15
|
*/
|
|
16
16
|
import type { NeonHttpDatabase } from 'drizzle-orm/neon-http';
|
|
17
17
|
import type { NodePgDatabase } from 'drizzle-orm/node-postgres';
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
/**
|
|
2
|
-
* RAG Site Cleanup
|
|
2
|
+
* RAG Site Cleanup - Cascade delete for a single site
|
|
3
3
|
*
|
|
4
4
|
* When a site is deleted from NeonDB, the cross-database FK cascades to
|
|
5
5
|
* Supabase are NOT enforced at the DB level. This function immediately
|
|
@@ -11,7 +11,7 @@
|
|
|
11
11
|
* 3. rag_workspaces (id = sites.id)
|
|
12
12
|
*
|
|
13
13
|
* Designed to be called fire-and-forget from the site DELETE route.
|
|
14
|
-
* Errors are caught and logged
|
|
14
|
+
* Errors are caught and logged - they never block the site deletion response.
|
|
15
15
|
*/
|
|
16
16
|
import { eq } from 'drizzle-orm';
|
|
17
17
|
import { ragChunks, ragDocuments, ragWorkspaces } from '../schema/rag.js';
|
|
@@ -6,13 +6,13 @@
|
|
|
6
6
|
* via `revealui db cleanup` when crons are unavailable (e.g. Hobby plan).
|
|
7
7
|
*
|
|
8
8
|
* Tables:
|
|
9
|
-
* - sessions
|
|
10
|
-
* - rate_limits
|
|
11
|
-
* - password_reset_tokens
|
|
12
|
-
* - magic_links
|
|
13
|
-
* - pages (scheduled)
|
|
9
|
+
* - sessions - expiresAt < now OR deletedAt IS NOT NULL
|
|
10
|
+
* - rate_limits - resetAt < now
|
|
11
|
+
* - password_reset_tokens - expiresAt < now
|
|
12
|
+
* - magic_links - expiresAt < now
|
|
13
|
+
* - pages (scheduled) - status = 'scheduled' AND scheduledAt <= now
|
|
14
14
|
*
|
|
15
|
-
* Idempotent
|
|
15
|
+
* Idempotent - safe to run multiple times.
|
|
16
16
|
*/
|
|
17
17
|
export type CleanupTable = 'sessions' | 'rateLimits' | 'passwordResetTokens' | 'magicLinks' | 'scheduledPages';
|
|
18
18
|
export interface StaleTokenCleanupOptions {
|
|
@@ -6,13 +6,13 @@
|
|
|
6
6
|
* via `revealui db cleanup` when crons are unavailable (e.g. Hobby plan).
|
|
7
7
|
*
|
|
8
8
|
* Tables:
|
|
9
|
-
* - sessions
|
|
10
|
-
* - rate_limits
|
|
11
|
-
* - password_reset_tokens
|
|
12
|
-
* - magic_links
|
|
13
|
-
* - pages (scheduled)
|
|
9
|
+
* - sessions - expiresAt < now OR deletedAt IS NOT NULL
|
|
10
|
+
* - rate_limits - resetAt < now
|
|
11
|
+
* - password_reset_tokens - expiresAt < now
|
|
12
|
+
* - magic_links - expiresAt < now
|
|
13
|
+
* - pages (scheduled) - status = 'scheduled' AND scheduledAt <= now
|
|
14
14
|
*
|
|
15
|
-
* Idempotent
|
|
15
|
+
* Idempotent - safe to run multiple times.
|
|
16
16
|
*/
|
|
17
17
|
import { and, eq, isNotNull, lt, lte, or } from 'drizzle-orm';
|
|
18
18
|
import { getClient } from '../client/index.js';
|
package/dist/client/index.d.ts
CHANGED
|
@@ -222,7 +222,7 @@ export declare function closeAllPools(): Promise<void>;
|
|
|
222
222
|
export declare function requiresTransactions(dbType?: DatabaseType): void;
|
|
223
223
|
export declare function withTransaction<T>(db: Database, fn: (tx: Database) => Promise<T>): Promise<T>;
|
|
224
224
|
/**
|
|
225
|
-
* Execute a saga
|
|
225
|
+
* Execute a saga - a NeonDB-safe alternative to withTransaction.
|
|
226
226
|
*
|
|
227
227
|
* Unlike withTransaction (which requires a pg Pool driver), withSaga works
|
|
228
228
|
* with the NeonDB HTTP driver by modeling multi-step writes as individually
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/client/index.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;GAmBG;AAQH,OAAO,EAA0B,KAAK,gBAAgB,EAAE,MAAM,uBAAuB,CAAC;AACtF,OAAO,EAAwB,KAAK,cAAc,EAAE,MAAM,2BAA2B,CAAC;AAEtF,OAAO,KAAK,MAAM,MAAM,oBAAoB,CAAC;AAC7C,OAAO,KAAK,UAAU,MAAM,mBAAmB,CAAC;AAChD,OAAO,KAAK,YAAY,MAAM,qBAAqB,CAAC;AAOpD,MAAM,WAAW,WAAW;IAC1B,gCAAgC;IAChC,UAAU,EAAE,MAAM,CAAC;IACnB,uBAAuB;IACvB,SAAS,EAAE,MAAM,CAAC;IAClB,uBAAuB;IACvB,YAAY,EAAE,MAAM,CAAC;IACrB,2BAA2B;IAC3B,IAAI,EAAE,MAAM,CAAC;CACd;AAaD;;;;GAIG;AACH,MAAM,MAAM,YAAY,GAAG,MAAM,GAAG,QAAQ,CAAC;AAE7C;;;;;;;;GAQG;AACH,MAAM,MAAM,QAAQ,GAAG,gBAAgB,CAAC,OAAO,MAAM,CAAC,GAAG,cAAc,CAAC,OAAO,MAAM,CAAC,CAAC;AAEvF,MAAM,WAAW,cAAc;IAC7B,gBAAgB,EAAE,MAAM,CAAC;IACzB,MAAM,CAAC,EAAE,OAAO,CAAC;CAClB;
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/client/index.ts"],"names":[],"mappings":"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"}
|
package/dist/client/index.js
CHANGED
|
@@ -66,10 +66,22 @@ let vectorSupportsTransactions = false;
|
|
|
66
66
|
* Localhost connections are used for testing and development.
|
|
67
67
|
*/
|
|
68
68
|
function isSupabaseConnection(connectionString) {
|
|
69
|
-
|
|
70
|
-
connectionString.
|
|
71
|
-
|
|
72
|
-
|
|
69
|
+
try {
|
|
70
|
+
const host = new URL(connectionString).hostname;
|
|
71
|
+
return (host.endsWith('.supabase.co') ||
|
|
72
|
+
host === 'supabase.co' ||
|
|
73
|
+
host.endsWith('.supabase.com') ||
|
|
74
|
+
host === 'supabase.com' ||
|
|
75
|
+
host === 'localhost' ||
|
|
76
|
+
host === '127.0.0.1');
|
|
77
|
+
}
|
|
78
|
+
catch {
|
|
79
|
+
// Fallback for non-URL connection strings (e.g., plain host:port format)
|
|
80
|
+
return (connectionString.includes('.supabase.co') ||
|
|
81
|
+
connectionString.includes('pooler.supabase.com') ||
|
|
82
|
+
connectionString.includes('localhost') ||
|
|
83
|
+
connectionString.includes('127.0.0.1'));
|
|
84
|
+
}
|
|
73
85
|
}
|
|
74
86
|
/**
|
|
75
87
|
* Creates a Drizzle database client, automatically selecting the appropriate driver:
|
|
@@ -411,17 +423,17 @@ export async function withTransaction(db, fn) {
|
|
|
411
423
|
// Early check: fail fast with clear message based on tracked driver type
|
|
412
424
|
if (db === restClient && !restSupportsTransactions) {
|
|
413
425
|
throw new Error('Transaction not supported: REST database is using Neon HTTP driver. ' +
|
|
414
|
-
'
|
|
426
|
+
'Use withSaga() for NeonDB-safe multi-step writes, or switch to Supabase pooler / pg driver for transaction support.');
|
|
415
427
|
}
|
|
416
428
|
if (db === vectorClient && !vectorSupportsTransactions) {
|
|
417
429
|
throw new Error('Transaction not supported: Vector database is using Neon HTTP driver. ' +
|
|
418
|
-
'
|
|
430
|
+
'Use withSaga() for NeonDB-safe multi-step writes, or switch to Supabase pooler / pg driver for transaction support.');
|
|
419
431
|
}
|
|
420
432
|
// Fallback: Check if this is a pg Pool-based client (supports transactions)
|
|
421
433
|
const hasPgTransaction = 'transaction' in db && typeof db.transaction === 'function';
|
|
422
434
|
if (!hasPgTransaction) {
|
|
423
435
|
throw new Error('Transaction not supported: Database client is using Neon HTTP driver which does not support transactions. ' +
|
|
424
|
-
'
|
|
436
|
+
'Use withSaga() for NeonDB-safe multi-step writes, or configure your database with Supabase / localhost connection string. ' +
|
|
425
437
|
'Neon HTTP driver uses stateless requests and cannot maintain transaction state.');
|
|
426
438
|
}
|
|
427
439
|
// Use Drizzle's built-in transaction API
|
|
@@ -432,7 +444,7 @@ export async function withTransaction(db, fn) {
|
|
|
432
444
|
// Saga Helper (NeonDB-safe alternative to withTransaction)
|
|
433
445
|
// =============================================================================
|
|
434
446
|
/**
|
|
435
|
-
* Execute a saga
|
|
447
|
+
* Execute a saga - a NeonDB-safe alternative to withTransaction.
|
|
436
448
|
*
|
|
437
449
|
* Unlike withTransaction (which requires a pg Pool driver), withSaga works
|
|
438
450
|
* with the NeonDB HTTP driver by modeling multi-step writes as individually
|
package/dist/client/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/client/index.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;GAmBG;AAEH,OAAO,EAAE,IAAI,EAAE,MAAM,0BAA0B,CAAC;AAChD,6BAA6B;AAC7B,qGAAqG;AACrG,2FAA2F;AAC3F,OAAO,YAAY,MAAM,kBAAkB,CAAC;AAC5C,OAAO,EAAE,YAAY,EAAE,MAAM,0BAA0B,CAAC;AACxD,OAAO,EAAE,OAAO,IAAI,WAAW,EAAyB,MAAM,uBAAuB,CAAC;AACtF,OAAO,EAAE,OAAO,IAAI,SAAS,EAAuB,MAAM,2BAA2B,CAAC;AACtF,OAAO,EAAE,IAAI,EAAE,MAAM,IAAI,CAAC;AAC1B,OAAO,KAAK,MAAM,MAAM,oBAAoB,CAAC,CAAC,yCAAyC;AACvF,OAAO,KAAK,UAAU,MAAM,mBAAmB,CAAC;AAChD,OAAO,KAAK,YAAY,MAAM,qBAAqB,CAAC;AAkBpD,gFAAgF;AAChF,+BAA+B;AAC/B,gFAAgF;AAEhF,IAAI,wBAAwB,GAAG,KAAK,CAAC;AACrC,IAAI,0BAA0B,GAAG,KAAK,CAAC;AA6BvC,gFAAgF;AAChF,kBAAkB;AAClB,gFAAgF;AAEhF;;;;;;;;;;;;;;;;;;;;GAoBG;AACH;;;;;GAKG;AACH,SAAS,oBAAoB,CAAC,gBAAwB;IACpD,OAAO,CACL,gBAAgB,CAAC,QAAQ,CAAC,cAAc,CAAC;
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/client/index.ts"],"names":[],"mappings":"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"}
|
package/dist/crypto.d.ts
CHANGED
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
/**
|
|
2
|
-
* @revealui/db/crypto
|
|
2
|
+
* @revealui/db/crypto - AES-256-GCM envelope encryption for stored API keys
|
|
3
3
|
*
|
|
4
4
|
* Uses a Key Encryption Key (KEK) sourced from the REVEALUI_KEK environment
|
|
5
5
|
* variable (64 hex chars = 32 bytes). Each key is encrypted with a random
|
package/dist/crypto.js
CHANGED
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
/**
|
|
2
|
-
* @revealui/db/crypto
|
|
2
|
+
* @revealui/db/crypto - AES-256-GCM envelope encryption for stored API keys
|
|
3
3
|
*
|
|
4
4
|
* Uses a Key Encryption Key (KEK) sourced from the REVEALUI_KEK environment
|
|
5
5
|
* variable (64 hex chars = 32 bytes). Each key is encrypted with a random
|
|
@@ -11,7 +11,7 @@
|
|
|
11
11
|
*/
|
|
12
12
|
import { createCipheriv, createDecipheriv, randomBytes } from 'node:crypto';
|
|
13
13
|
const ALGORITHM = 'aes-256-gcm';
|
|
14
|
-
const IV_LENGTH = 12; // 96-bit IV
|
|
14
|
+
const IV_LENGTH = 12; // 96-bit IV - recommended for AES-GCM
|
|
15
15
|
function getKek() {
|
|
16
16
|
const kekHex = process.env.REVEALUI_KEK;
|
|
17
17
|
if (!kekHex) {
|
|
@@ -46,7 +46,7 @@ export function decryptApiKey(encrypted) {
|
|
|
46
46
|
const kek = getKek();
|
|
47
47
|
const parts = encrypted.split('.');
|
|
48
48
|
if (parts.length !== 3) {
|
|
49
|
-
throw new Error('Invalid encrypted key format
|
|
49
|
+
throw new Error('Invalid encrypted key format - expected <iv>.<authTag>.<ciphertext>');
|
|
50
50
|
}
|
|
51
51
|
const [ivB64, authTagB64, ciphertextB64] = parts;
|
|
52
52
|
const iv = Buffer.from(ivB64, 'base64url');
|
package/dist/crypto.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"crypto.js","sourceRoot":"","sources":["../src/crypto.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;GAUG;AAEH,OAAO,EAAE,cAAc,EAAE,gBAAgB,EAAE,WAAW,EAAE,MAAM,aAAa,CAAC;AAE5E,MAAM,SAAS,GAAG,aAAa,CAAC;AAChC,MAAM,SAAS,GAAG,EAAE,CAAC,CAAC,
|
|
1
|
+
{"version":3,"file":"crypto.js","sourceRoot":"","sources":["../src/crypto.ts"],"names":[],"mappings":"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"}
|
package/dist/log-transport.d.ts
CHANGED
|
@@ -5,7 +5,7 @@
|
|
|
5
5
|
* Persists warn/error/fatal entries to the `app_logs` NeonDB table.
|
|
6
6
|
*
|
|
7
7
|
* Only writes in production (NODE_ENV=production). All writes are fire-and-forget
|
|
8
|
-
*
|
|
8
|
+
* - the handler never throws or blocks the caller.
|
|
9
9
|
*
|
|
10
10
|
* Usage (call once at app startup):
|
|
11
11
|
* import { createDbLogHandler } from '@revealui/db/log-transport'
|
package/dist/log-transport.js
CHANGED
|
@@ -5,7 +5,7 @@
|
|
|
5
5
|
* Persists warn/error/fatal entries to the `app_logs` NeonDB table.
|
|
6
6
|
*
|
|
7
7
|
* Only writes in production (NODE_ENV=production). All writes are fire-and-forget
|
|
8
|
-
*
|
|
8
|
+
* - the handler never throws or blocks the caller.
|
|
9
9
|
*
|
|
10
10
|
* Usage (call once at app startup):
|
|
11
11
|
* import { createDbLogHandler } from '@revealui/db/log-transport'
|
|
@@ -44,7 +44,7 @@ export function createDbLogHandler(app) {
|
|
|
44
44
|
data: Object.keys(data).length > 0 ? data : null,
|
|
45
45
|
})
|
|
46
46
|
.catch(() => {
|
|
47
|
-
// Intentionally empty
|
|
47
|
+
// Intentionally empty - never throw back to the logger
|
|
48
48
|
});
|
|
49
49
|
};
|
|
50
50
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"log-transport.js","sourceRoot":"","sources":["../src/log-transport.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;GAgBG;AAGH,OAAO,EAAE,SAAS,EAAE,MAAM,mBAAmB,CAAC;AAC9C,OAAO,EAAE,OAAO,EAAE,MAAM,sBAAsB,CAAC;AAE/C,MAAM,WAAW,GAAG,IAAI,GAAG,CAAC,CAAC,MAAM,EAAE,OAAO,EAAE,OAAO,CAAC,CAAC,CAAC;AAExD,MAAM,UAAU,kBAAkB,CAAC,GAAW;IAC5C,OAAO,CAAC,KAAe,EAAQ,EAAE;QAC/B,IAAI,CAAC,WAAW,CAAC,GAAG,CAAC,KAAK,CAAC,KAAK,CAAC;YAAE,OAAO;QAC1C,IAAI,OAAO,CAAC,GAAG,CAAC,QAAQ,KAAK,YAAY;YAAE,OAAO;QAElD,kDAAkD;QAClD,MAAM,IAAI,GAA4B,EAAE,CAAC;QACzC,IAAI,KAAK,CAAC,OAAO,IAAI,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;YAC3D,MAAM,CAAC,MAAM,CAAC,IAAI,EAAE,KAAK,CAAC,OAAO,CAAC,CAAC;QACrC,CAAC;QACD,IAAI,KAAK,CAAC,KAAK,EAAE,CAAC;YAChB,IAAI,CAAC,KAAK,GAAG,KAAK,CAAC,KAAK,CAAC;QAC3B,CAAC;QAED,MAAM,EAAE,GAAG,SAAS,EAAE,CAAC;QACvB,EAAE,CAAC,MAAM,CAAC,OAAO,CAAC;aACf,MAAM,CAAC;YACN,KAAK,EAAE,KAAK,CAAC,KAAK;YAClB,OAAO,EAAE,KAAK,CAAC,OAAO;YACtB,GAAG;YACH,WAAW,EAAE,OAAO,CAAC,GAAG,CAAC,QAAQ,IAAI,YAAY;YACjD,SAAS,EAAE,KAAK,CAAC,OAAO,EAAE,SAAS,IAAI,IAAI;YAC3C,MAAM,EAAE,KAAK,CAAC,OAAO,EAAE,MAAM,IAAI,IAAI;YACrC,IAAI,EAAE,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,IAAI;SACjD,CAAC;aACD,KAAK,CAAC,GAAG,EAAE;YACV,
|
|
1
|
+
{"version":3,"file":"log-transport.js","sourceRoot":"","sources":["../src/log-transport.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;GAgBG;AAGH,OAAO,EAAE,SAAS,EAAE,MAAM,mBAAmB,CAAC;AAC9C,OAAO,EAAE,OAAO,EAAE,MAAM,sBAAsB,CAAC;AAE/C,MAAM,WAAW,GAAG,IAAI,GAAG,CAAC,CAAC,MAAM,EAAE,OAAO,EAAE,OAAO,CAAC,CAAC,CAAC;AAExD,MAAM,UAAU,kBAAkB,CAAC,GAAW;IAC5C,OAAO,CAAC,KAAe,EAAQ,EAAE;QAC/B,IAAI,CAAC,WAAW,CAAC,GAAG,CAAC,KAAK,CAAC,KAAK,CAAC;YAAE,OAAO;QAC1C,IAAI,OAAO,CAAC,GAAG,CAAC,QAAQ,KAAK,YAAY;YAAE,OAAO;QAElD,kDAAkD;QAClD,MAAM,IAAI,GAA4B,EAAE,CAAC;QACzC,IAAI,KAAK,CAAC,OAAO,IAAI,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;YAC3D,MAAM,CAAC,MAAM,CAAC,IAAI,EAAE,KAAK,CAAC,OAAO,CAAC,CAAC;QACrC,CAAC;QACD,IAAI,KAAK,CAAC,KAAK,EAAE,CAAC;YAChB,IAAI,CAAC,KAAK,GAAG,KAAK,CAAC,KAAK,CAAC;QAC3B,CAAC;QAED,MAAM,EAAE,GAAG,SAAS,EAAE,CAAC;QACvB,EAAE,CAAC,MAAM,CAAC,OAAO,CAAC;aACf,MAAM,CAAC;YACN,KAAK,EAAE,KAAK,CAAC,KAAK;YAClB,OAAO,EAAE,KAAK,CAAC,OAAO;YACtB,GAAG;YACH,WAAW,EAAE,OAAO,CAAC,GAAG,CAAC,QAAQ,IAAI,YAAY;YACjD,SAAS,EAAE,KAAK,CAAC,OAAO,EAAE,SAAS,IAAI,IAAI;YAC3C,MAAM,EAAE,KAAK,CAAC,OAAO,EAAE,MAAM,IAAI,IAAI;YACrC,IAAI,EAAE,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,IAAI;SACjD,CAAC;aACD,KAAK,CAAC,GAAG,EAAE;YACV,yDAAyD;QAC3D,CAAC,CAAC,CAAC;IACP,CAAC,CAAC;AACJ,CAAC"}
|
package/dist/queries/boards.d.ts
CHANGED
|
@@ -1,8 +1,8 @@
|
|
|
1
1
|
/**
|
|
2
2
|
* Board database queries
|
|
3
3
|
*/
|
|
4
|
-
import type {
|
|
5
|
-
export declare function getAllBoards(db:
|
|
4
|
+
import type { Database } from '../client/index.js';
|
|
5
|
+
export declare function getAllBoards(db: Database, tenantId?: string): Promise<{
|
|
6
6
|
id: string;
|
|
7
7
|
schemaVersion: string;
|
|
8
8
|
tenantId: string | null;
|
|
@@ -15,7 +15,7 @@ export declare function getAllBoards(db: DatabaseClient, tenantId?: string): Pro
|
|
|
15
15
|
createdAt: Date;
|
|
16
16
|
updatedAt: Date;
|
|
17
17
|
}[]>;
|
|
18
|
-
export declare function getBoardById(db:
|
|
18
|
+
export declare function getBoardById(db: Database, id: string): Promise<{
|
|
19
19
|
id: string;
|
|
20
20
|
schemaVersion: string;
|
|
21
21
|
tenantId: string | null;
|
|
@@ -28,7 +28,7 @@ export declare function getBoardById(db: DatabaseClient, id: string): Promise<{
|
|
|
28
28
|
createdAt: Date;
|
|
29
29
|
updatedAt: Date;
|
|
30
30
|
} | null>;
|
|
31
|
-
export declare function getBoardBySlug(db:
|
|
31
|
+
export declare function getBoardBySlug(db: Database, slug: string, tenantId?: string): Promise<{
|
|
32
32
|
id: string;
|
|
33
33
|
schemaVersion: string;
|
|
34
34
|
tenantId: string | null;
|
|
@@ -45,10 +45,10 @@ export declare function getBoardBySlug(db: DatabaseClient, slug: string, tenantI
|
|
|
45
45
|
* Create a board with default kanban columns.
|
|
46
46
|
*
|
|
47
47
|
* NOTE: NeonDB HTTP driver does not support transactions. The board insert and
|
|
48
|
-
* column insert below are not atomic
|
|
48
|
+
* column insert below are not atomic - a failure after the board is created but
|
|
49
49
|
* before columns are inserted will leave a board without its default columns.
|
|
50
50
|
*/
|
|
51
|
-
export declare function createBoard(db:
|
|
51
|
+
export declare function createBoard(db: Database, data: {
|
|
52
52
|
id: string;
|
|
53
53
|
name: string;
|
|
54
54
|
slug: string;
|
|
@@ -69,7 +69,7 @@ export declare function createBoard(db: DatabaseClient, data: {
|
|
|
69
69
|
isDefault: boolean;
|
|
70
70
|
tenantId: string | null;
|
|
71
71
|
} | undefined>;
|
|
72
|
-
export declare function updateBoard(db:
|
|
72
|
+
export declare function updateBoard(db: Database, id: string, data: Partial<{
|
|
73
73
|
name: string;
|
|
74
74
|
slug: string;
|
|
75
75
|
description: string;
|
|
@@ -87,8 +87,8 @@ export declare function updateBoard(db: DatabaseClient, id: string, data: Partia
|
|
|
87
87
|
createdAt: Date;
|
|
88
88
|
updatedAt: Date;
|
|
89
89
|
} | null>;
|
|
90
|
-
export declare function deleteBoard(db:
|
|
91
|
-
export declare function getColumnById(db:
|
|
90
|
+
export declare function deleteBoard(db: Database, id: string): Promise<void>;
|
|
91
|
+
export declare function getColumnById(db: Database, id: string): Promise<{
|
|
92
92
|
id: string;
|
|
93
93
|
boardId: string;
|
|
94
94
|
name: string;
|
|
@@ -100,7 +100,7 @@ export declare function getColumnById(db: DatabaseClient, id: string): Promise<{
|
|
|
100
100
|
createdAt: Date;
|
|
101
101
|
updatedAt: Date;
|
|
102
102
|
} | null>;
|
|
103
|
-
export declare function getColumnsByBoard(db:
|
|
103
|
+
export declare function getColumnsByBoard(db: Database, boardId: string): Promise<{
|
|
104
104
|
id: string;
|
|
105
105
|
boardId: string;
|
|
106
106
|
name: string;
|
|
@@ -112,7 +112,7 @@ export declare function getColumnsByBoard(db: DatabaseClient, boardId: string):
|
|
|
112
112
|
createdAt: Date;
|
|
113
113
|
updatedAt: Date;
|
|
114
114
|
}[]>;
|
|
115
|
-
export declare function createColumn(db:
|
|
115
|
+
export declare function createColumn(db: Database, data: {
|
|
116
116
|
id: string;
|
|
117
117
|
boardId: string;
|
|
118
118
|
name: string;
|
|
@@ -132,7 +132,7 @@ export declare function createColumn(db: DatabaseClient, data: {
|
|
|
132
132
|
wipLimit: number | null;
|
|
133
133
|
color: string | null;
|
|
134
134
|
} | undefined>;
|
|
135
|
-
export declare function updateColumn(db:
|
|
135
|
+
export declare function updateColumn(db: Database, id: string, data: Partial<{
|
|
136
136
|
name: string;
|
|
137
137
|
slug: string;
|
|
138
138
|
position: number;
|
|
@@ -150,5 +150,5 @@ export declare function updateColumn(db: DatabaseClient, id: string, data: Parti
|
|
|
150
150
|
createdAt: Date;
|
|
151
151
|
updatedAt: Date;
|
|
152
152
|
} | null>;
|
|
153
|
-
export declare function deleteColumn(db:
|
|
153
|
+
export declare function deleteColumn(db: Database, id: string): Promise<void>;
|
|
154
154
|
//# sourceMappingURL=boards.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"boards.d.ts","sourceRoot":"","sources":["../../src/queries/boards.ts"],"names":[],"mappings":"AAAA;;GAEG;AAGH,OAAO,KAAK,EAAE,
|
|
1
|
+
{"version":3,"file":"boards.d.ts","sourceRoot":"","sources":["../../src/queries/boards.ts"],"names":[],"mappings":"AAAA;;GAEG;AAGH,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,oBAAoB,CAAC;AAWnD,wBAAsB,YAAY,CAAC,EAAE,EAAE,QAAQ,EAAE,QAAQ,CAAC,EAAE,MAAM;;;;;;;;;;;;KAKjE;AAED,wBAAsB,YAAY,CAAC,EAAE,EAAE,QAAQ,EAAE,EAAE,EAAE,MAAM;;;;;;;;;;;;UAG1D;AAED,wBAAsB,cAAc,CAAC,EAAE,EAAE,QAAQ,EAAE,IAAI,EAAE,MAAM,EAAE,QAAQ,CAAC,EAAE,MAAM;;;;;;;;;;;;UAUjF;AAED;;;;;;GAMG;AACH,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,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,SAAS,CAAC,EAAE,OAAO,CAAC;CACrB;;;;;;;;;;;;eAoBF;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,WAAW,EAAE,MAAM,CAAC;IAAC,OAAO,EAAE,MAAM,GAAG,IAAI,CAAA;CAAE,CAAC;;;;;;;;;;;;UAS3F;AAED,wBAAsB,WAAW,CAAC,EAAE,EAAE,QAAQ,EAAE,EAAE,EAAE,MAAM,iBAEzD;AAED,wBAAsB,aAAa,CAAC,EAAE,EAAE,QAAQ,EAAE,EAAE,EAAE,MAAM;;;;;;;;;;;UAG3D;AAED,wBAAsB,iBAAiB,CAAC,EAAE,EAAE,QAAQ,EAAE,OAAO,EAAE,MAAM;;;;;;;;;;;KAMpE;AAED,wBAAsB,YAAY,CAChC,EAAE,EAAE,QAAQ,EACZ,IAAI,EAAE;IACJ,EAAE,EAAE,MAAM,CAAC;IACX,OAAO,EAAE,MAAM,CAAC;IAChB,IAAI,EAAE,MAAM,CAAC;IACb,IAAI,EAAE,MAAM,CAAC;IACb,QAAQ,EAAE,MAAM,CAAC;IACjB,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,KAAK,CAAC,EAAE,MAAM,CAAC;CAChB;;;;;;;;;;;eAIF;AAED,wBAAsB,YAAY,CAChC,EAAE,EAAE,QAAQ,EACZ,EAAE,EAAE,MAAM,EACV,IAAI,EAAE,OAAO,CAAC;IACZ,IAAI,EAAE,MAAM,CAAC;IACb,IAAI,EAAE,MAAM,CAAC;IACb,QAAQ,EAAE,MAAM,CAAC;IACjB,QAAQ,EAAE,MAAM,GAAG,IAAI,CAAC;IACxB,KAAK,EAAE,MAAM,GAAG,IAAI,CAAC;CACtB,CAAC;;;;;;;;;;;UASH;AAED,wBAAsB,YAAY,CAAC,EAAE,EAAE,QAAQ,EAAE,EAAE,EAAE,MAAM,iBAE1D"}
|
package/dist/queries/boards.js
CHANGED
|
@@ -35,7 +35,7 @@ export async function getBoardBySlug(db, slug, tenantId) {
|
|
|
35
35
|
* Create a board with default kanban columns.
|
|
36
36
|
*
|
|
37
37
|
* NOTE: NeonDB HTTP driver does not support transactions. The board insert and
|
|
38
|
-
* column insert below are not atomic
|
|
38
|
+
* column insert below are not atomic - a failure after the board is created but
|
|
39
39
|
* before columns are inserted will leave a board without its default columns.
|
|
40
40
|
*/
|
|
41
41
|
export async function createBoard(db, data) {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"boards.js","sourceRoot":"","sources":["../../src/queries/boards.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,OAAO,EAAE,GAAG,EAAE,EAAE,EAAE,MAAM,aAAa,CAAC;AAEtC,OAAO,EAAE,YAAY,EAAE,MAAM,EAAE,MAAM,sBAAsB,CAAC;AAE5D,MAAM,eAAe,GAAG;IACtB,EAAE,IAAI,EAAE,SAAS,EAAE,IAAI,EAAE,SAAS,EAAE,QAAQ,EAAE,CAAC,EAAE;IACjD,EAAE,IAAI,EAAE,OAAO,EAAE,IAAI,EAAE,MAAM,EAAE,QAAQ,EAAE,CAAC,EAAE,SAAS,EAAE,IAAI,EAAE;IAC7D,EAAE,IAAI,EAAE,aAAa,EAAE,IAAI,EAAE,aAAa,EAAE,QAAQ,EAAE,CAAC,EAAE;IACzD,EAAE,IAAI,EAAE,QAAQ,EAAE,IAAI,EAAE,QAAQ,EAAE,QAAQ,EAAE,CAAC,EAAE;IAC/C,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,EAAE,QAAQ,EAAE,CAAC,EAAE;CACnC,CAAC;AAEX,MAAM,CAAC,KAAK,UAAU,YAAY,CAAC,
|
|
1
|
+
{"version":3,"file":"boards.js","sourceRoot":"","sources":["../../src/queries/boards.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,OAAO,EAAE,GAAG,EAAE,EAAE,EAAE,MAAM,aAAa,CAAC;AAEtC,OAAO,EAAE,YAAY,EAAE,MAAM,EAAE,MAAM,sBAAsB,CAAC;AAE5D,MAAM,eAAe,GAAG;IACtB,EAAE,IAAI,EAAE,SAAS,EAAE,IAAI,EAAE,SAAS,EAAE,QAAQ,EAAE,CAAC,EAAE;IACjD,EAAE,IAAI,EAAE,OAAO,EAAE,IAAI,EAAE,MAAM,EAAE,QAAQ,EAAE,CAAC,EAAE,SAAS,EAAE,IAAI,EAAE;IAC7D,EAAE,IAAI,EAAE,aAAa,EAAE,IAAI,EAAE,aAAa,EAAE,QAAQ,EAAE,CAAC,EAAE;IACzD,EAAE,IAAI,EAAE,QAAQ,EAAE,IAAI,EAAE,QAAQ,EAAE,QAAQ,EAAE,CAAC,EAAE;IAC/C,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,EAAE,QAAQ,EAAE,CAAC,EAAE;CACnC,CAAC;AAEX,MAAM,CAAC,KAAK,UAAU,YAAY,CAAC,EAAY,EAAE,QAAiB;IAChE,IAAI,QAAQ,EAAE,CAAC;QACb,OAAO,EAAE,CAAC,MAAM,EAAE,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,KAAK,CAAC,EAAE,CAAC,MAAM,CAAC,QAAQ,EAAE,QAAQ,CAAC,CAAC,CAAC,OAAO,CAAC,MAAM,CAAC,SAAS,CAAC,CAAC;IACjG,CAAC;IACD,OAAO,EAAE,CAAC,MAAM,EAAE,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,OAAO,CAAC,MAAM,CAAC,SAAS,CAAC,CAAC;AAC5D,CAAC;AAED,MAAM,CAAC,KAAK,UAAU,YAAY,CAAC,EAAY,EAAE,EAAU;IACzD,MAAM,MAAM,GAAG,MAAM,EAAE,CAAC,MAAM,EAAE,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,KAAK,CAAC,EAAE,CAAC,MAAM,CAAC,EAAE,EAAE,EAAE,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC;IAChF,OAAO,MAAM,CAAC,CAAC,CAAC,IAAI,IAAI,CAAC;AAC3B,CAAC;AAED,MAAM,CAAC,KAAK,UAAU,cAAc,CAAC,EAAY,EAAE,IAAY,EAAE,QAAiB;IAChF,MAAM,UAAU,GAAG,CAAC,EAAE,CAAC,MAAM,CAAC,IAAI,EAAE,IAAI,CAAC,CAAC,CAAC;IAC3C,IAAI,QAAQ;QAAE,UAAU,CAAC,IAAI,CAAC,EAAE,CAAC,MAAM,CAAC,QAAQ,EAAE,QAAQ,CAAC,CAAC,CAAC;IAE7D,MAAM,MAAM,GAAG,MAAM,EAAE;SACpB,MAAM,EAAE;SACR,IAAI,CAAC,MAAM,CAAC;SACZ,KAAK,CAAC,GAAG,CAAC,GAAG,UAAU,CAAC,CAAC;SACzB,KAAK,CAAC,CAAC,CAAC,CAAC;IACZ,OAAO,MAAM,CAAC,CAAC,CAAC,IAAI,IAAI,CAAC;AAC3B,CAAC;AAED;;;;;;GAMG;AACH,MAAM,CAAC,KAAK,UAAU,WAAW,CAC/B,EAAY,EACZ,IAQC;IAED,MAAM,MAAM,GAAG,MAAM,EAAE,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC,SAAS,EAAE,CAAC;IAChE,MAAM,KAAK,GAAG,MAAM,CAAC,CAAC,CAAC,CAAC;IAExB,IAAI,KAAK,EAAE,CAAC;QACV,yBAAyB;QACzB,MAAM,EAAE,CAAC,MAAM,CAAC,YAAY,CAAC,CAAC,MAAM,CAClC,eAAe,CAAC,GAAG,CAAC,CAAC,GAAG,EAAE,EAAE,EAAE,EAAE,CAAC,CAAC;YAChC,EAAE,EAAE,GAAG,KAAK,CAAC,EAAE,QAAQ,GAAG,CAAC,IAAI,EAAE;YACjC,OAAO,EAAE,KAAK,CAAC,EAAE;YACjB,IAAI,EAAE,GAAG,CAAC,IAAI;YACd,IAAI,EAAE,GAAG,CAAC,IAAI;YACd,QAAQ,EAAE,GAAG,CAAC,QAAQ;YACtB,SAAS,EAAE,WAAW,IAAI,GAAG,CAAC,CAAC,CAAC,GAAG,CAAC,SAAS,CAAC,CAAC,CAAC,KAAK;SACtD,CAAC,CAAC,CACJ,CAAC;IACJ,CAAC;IAED,OAAO,KAAK,CAAC;AACf,CAAC;AAED,MAAM,CAAC,KAAK,UAAU,WAAW,CAC/B,EAAY,EACZ,EAAU,EACV,IAA0F;IAE1F,MAAM,MAAM,GAAG,MAAM,EAAE;SACpB,MAAM,CAAC,MAAM,CAAC;SACd,GAAG,CAAC,EAAE,GAAG,IAAI,EAAE,SAAS,EAAE,IAAI,IAAI,EAAE,EAAE,CAAC;SACvC,KAAK,CAAC,EAAE,CAAC,MAAM,CAAC,EAAE,EAAE,EAAE,CAAC,CAAC;SACxB,SAAS,EAAE,CAAC;IAEf,OAAO,MAAM,CAAC,CAAC,CAAC,IAAI,IAAI,CAAC;AAC3B,CAAC;AAED,MAAM,CAAC,KAAK,UAAU,WAAW,CAAC,EAAY,EAAE,EAAU;IACxD,MAAM,EAAE,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC,KAAK,CAAC,EAAE,CAAC,MAAM,CAAC,EAAE,EAAE,EAAE,CAAC,CAAC,CAAC;AACnD,CAAC;AAED,MAAM,CAAC,KAAK,UAAU,aAAa,CAAC,EAAY,EAAE,EAAU;IAC1D,MAAM,MAAM,GAAG,MAAM,EAAE,CAAC,MAAM,EAAE,CAAC,IAAI,CAAC,YAAY,CAAC,CAAC,KAAK,CAAC,EAAE,CAAC,YAAY,CAAC,EAAE,EAAE,EAAE,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC;IAC5F,OAAO,MAAM,CAAC,CAAC,CAAC,IAAI,IAAI,CAAC;AAC3B,CAAC;AAED,MAAM,CAAC,KAAK,UAAU,iBAAiB,CAAC,EAAY,EAAE,OAAe;IACnE,OAAO,EAAE;SACN,MAAM,EAAE;SACR,IAAI,CAAC,YAAY,CAAC;SAClB,KAAK,CAAC,EAAE,CAAC,YAAY,CAAC,OAAO,EAAE,OAAO,CAAC,CAAC;SACxC,OAAO,CAAC,YAAY,CAAC,QAAQ,CAAC,CAAC;AACpC,CAAC;AAED,MAAM,CAAC,KAAK,UAAU,YAAY,CAChC,EAAY,EACZ,IAQC;IAED,MAAM,MAAM,GAAG,MAAM,EAAE,CAAC,MAAM,CAAC,YAAY,CAAC,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC,SAAS,EAAE,CAAC;IACtE,OAAO,MAAM,CAAC,CAAC,CAAC,CAAC;AACnB,CAAC;AAED,MAAM,CAAC,KAAK,UAAU,YAAY,CAChC,EAAY,EACZ,EAAU,EACV,IAME;IAEF,MAAM,MAAM,GAAG,MAAM,EAAE;SACpB,MAAM,CAAC,YAAY,CAAC;SACpB,GAAG,CAAC,EAAE,GAAG,IAAI,EAAE,SAAS,EAAE,IAAI,IAAI,EAAE,EAAE,CAAC;SACvC,KAAK,CAAC,EAAE,CAAC,YAAY,CAAC,EAAE,EAAE,EAAE,CAAC,CAAC;SAC9B,SAAS,EAAE,CAAC;IAEf,OAAO,MAAM,CAAC,CAAC,CAAC,IAAI,IAAI,CAAC;AAC3B,CAAC;AAED,MAAM,CAAC,KAAK,UAAU,YAAY,CAAC,EAAY,EAAE,EAAU;IACzD,MAAM,EAAE,CAAC,MAAM,CAAC,YAAY,CAAC,CAAC,KAAK,CAAC,EAAE,CAAC,YAAY,CAAC,EAAE,EAAE,EAAE,CAAC,CAAC,CAAC;AAC/D,CAAC"}
|
|
@@ -1,8 +1,8 @@
|
|
|
1
1
|
/**
|
|
2
2
|
* Code Provenance database queries
|
|
3
3
|
*/
|
|
4
|
-
import type {
|
|
5
|
-
export declare function getProvenanceByFile(db:
|
|
4
|
+
import type { Database } from '../client/index.js';
|
|
5
|
+
export declare function getProvenanceByFile(db: Database, filePath: string): Promise<{
|
|
6
6
|
id: string;
|
|
7
7
|
schemaVersion: string;
|
|
8
8
|
filePath: string;
|
|
@@ -23,7 +23,7 @@ export declare function getProvenanceByFile(db: DatabaseClient, filePath: string
|
|
|
23
23
|
createdAt: Date;
|
|
24
24
|
updatedAt: Date;
|
|
25
25
|
}[]>;
|
|
26
|
-
export declare function getProvenanceById(db:
|
|
26
|
+
export declare function getProvenanceById(db: Database, id: string): Promise<{
|
|
27
27
|
id: string;
|
|
28
28
|
schemaVersion: string;
|
|
29
29
|
filePath: string;
|
|
@@ -44,7 +44,7 @@ export declare function getProvenanceById(db: DatabaseClient, id: string): Promi
|
|
|
44
44
|
createdAt: Date;
|
|
45
45
|
updatedAt: Date;
|
|
46
46
|
} | null>;
|
|
47
|
-
export declare function getProvenanceByCommit(db:
|
|
47
|
+
export declare function getProvenanceByCommit(db: Database, gitCommitHash: string): Promise<{
|
|
48
48
|
id: string;
|
|
49
49
|
schemaVersion: string;
|
|
50
50
|
filePath: string;
|
|
@@ -65,7 +65,7 @@ export declare function getProvenanceByCommit(db: DatabaseClient, gitCommitHash:
|
|
|
65
65
|
createdAt: Date;
|
|
66
66
|
updatedAt: Date;
|
|
67
67
|
}[]>;
|
|
68
|
-
export declare function getUnreviewedProvenance(db:
|
|
68
|
+
export declare function getUnreviewedProvenance(db: Database, filters?: {
|
|
69
69
|
authorType?: string;
|
|
70
70
|
filePathPrefix?: string;
|
|
71
71
|
}): Promise<{
|
|
@@ -89,7 +89,7 @@ export declare function getUnreviewedProvenance(db: DatabaseClient, filters?: {
|
|
|
89
89
|
createdAt: Date;
|
|
90
90
|
updatedAt: Date;
|
|
91
91
|
}[]>;
|
|
92
|
-
export declare function getAllProvenance(db:
|
|
92
|
+
export declare function getAllProvenance(db: Database, filters?: {
|
|
93
93
|
authorType?: string;
|
|
94
94
|
reviewStatus?: string;
|
|
95
95
|
filePathPrefix?: string;
|
|
@@ -116,7 +116,7 @@ export declare function getAllProvenance(db: DatabaseClient, filters?: {
|
|
|
116
116
|
createdAt: Date;
|
|
117
117
|
updatedAt: Date;
|
|
118
118
|
}[]>;
|
|
119
|
-
export declare function createProvenance(db:
|
|
119
|
+
export declare function createProvenance(db: Database, data: {
|
|
120
120
|
id: string;
|
|
121
121
|
filePath: string;
|
|
122
122
|
authorType: string;
|
|
@@ -151,7 +151,7 @@ export declare function createProvenance(db: DatabaseClient, data: {
|
|
|
151
151
|
reviewedAt: Date | null;
|
|
152
152
|
linesOfCode: number;
|
|
153
153
|
} | undefined>;
|
|
154
|
-
export declare function updateProvenance(db:
|
|
154
|
+
export declare function updateProvenance(db: Database, id: string, data: Partial<{
|
|
155
155
|
filePath: string;
|
|
156
156
|
functionName: string | null;
|
|
157
157
|
lineStart: number | null;
|
|
@@ -188,7 +188,7 @@ export declare function updateProvenance(db: DatabaseClient, id: string, data: P
|
|
|
188
188
|
createdAt: Date;
|
|
189
189
|
updatedAt: Date;
|
|
190
190
|
} | null>;
|
|
191
|
-
export declare function updateReviewStatus(db:
|
|
191
|
+
export declare function updateReviewStatus(db: Database, id: string, reviewStatus: string, reviewedBy?: string): Promise<{
|
|
192
192
|
id: string;
|
|
193
193
|
schemaVersion: string;
|
|
194
194
|
filePath: string;
|
|
@@ -209,8 +209,8 @@ export declare function updateReviewStatus(db: DatabaseClient, id: string, revie
|
|
|
209
209
|
createdAt: Date;
|
|
210
210
|
updatedAt: Date;
|
|
211
211
|
} | null>;
|
|
212
|
-
export declare function deleteProvenance(db:
|
|
213
|
-
export declare function getProvenanceStats(db:
|
|
212
|
+
export declare function deleteProvenance(db: Database, id: string): Promise<void>;
|
|
213
|
+
export declare function getProvenanceStats(db: Database): Promise<{
|
|
214
214
|
byAuthorType: {
|
|
215
215
|
authorType: string;
|
|
216
216
|
count: number;
|
|
@@ -221,7 +221,7 @@ export declare function getProvenanceStats(db: DatabaseClient): Promise<{
|
|
|
221
221
|
count: number;
|
|
222
222
|
}[];
|
|
223
223
|
}>;
|
|
224
|
-
export declare function getReviewsForProvenance(db:
|
|
224
|
+
export declare function getReviewsForProvenance(db: Database, provenanceId: string): Promise<{
|
|
225
225
|
id: string;
|
|
226
226
|
provenanceId: string;
|
|
227
227
|
reviewerId: string | null;
|
|
@@ -231,7 +231,7 @@ export declare function getReviewsForProvenance(db: DatabaseClient, provenanceId
|
|
|
231
231
|
metadata: unknown;
|
|
232
232
|
createdAt: Date;
|
|
233
233
|
}[]>;
|
|
234
|
-
export declare function createReview(db:
|
|
234
|
+
export declare function createReview(db: Database, data: {
|
|
235
235
|
id: string;
|
|
236
236
|
provenanceId: string;
|
|
237
237
|
reviewerId?: string;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"code-provenance.d.ts","sourceRoot":"","sources":["../../src/queries/code-provenance.ts"],"names":[],"mappings":"AAAA;;GAEG;AAGH,OAAO,KAAK,EAAE,
|
|
1
|
+
{"version":3,"file":"code-provenance.d.ts","sourceRoot":"","sources":["../../src/queries/code-provenance.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"code-provenance.js","sourceRoot":"","sources":["../../src/queries/code-provenance.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,OAAO,EAAE,GAAG,EAAE,IAAI,EAAE,EAAE,EAAE,IAAI,EAAE,GAAG,EAAE,MAAM,aAAa,CAAC;AAEvD,OAAO,EAAE,cAAc,EAAE,WAAW,EAAE,MAAM,8BAA8B,CAAC;AAE3E,gFAAgF;AAChF,qBAAqB;AACrB,gFAAgF;AAEhF,MAAM,CAAC,KAAK,UAAU,mBAAmB,CAAC,
|
|
1
|
+
{"version":3,"file":"code-provenance.js","sourceRoot":"","sources":["../../src/queries/code-provenance.ts"],"names":[],"mappings":"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"}
|
|
@@ -61,7 +61,7 @@ export async function getMessages(db, conversationId, options = {}) {
|
|
|
61
61
|
.offset(offset);
|
|
62
62
|
}
|
|
63
63
|
// NOTE: NeonDB HTTP driver does not support transactions. The message insert
|
|
64
|
-
// and conversation timestamp update below are not atomic
|
|
64
|
+
// and conversation timestamp update below are not atomic - a failure between
|
|
65
65
|
// them can leave the conversation's updatedAt stale.
|
|
66
66
|
export async function addMessage(db, data) {
|
|
67
67
|
const result = await db
|