@revealui/db 0.2.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.
Files changed (191) hide show
  1. package/LICENSE +22 -0
  2. package/README.md +137 -0
  3. package/dist/audit-store.d.ts +56 -0
  4. package/dist/audit-store.d.ts.map +1 -0
  5. package/dist/audit-store.js +120 -0
  6. package/dist/audit-store.js.map +1 -0
  7. package/dist/client/index.d.ts +214 -0
  8. package/dist/client/index.d.ts.map +1 -0
  9. package/dist/client/index.js +396 -0
  10. package/dist/client/index.js.map +1 -0
  11. package/dist/client/types.d.ts +109 -0
  12. package/dist/client/types.d.ts.map +1 -0
  13. package/dist/client/types.js +10 -0
  14. package/dist/client/types.js.map +1 -0
  15. package/dist/crypto.d.ts +27 -0
  16. package/dist/crypto.d.ts.map +1 -0
  17. package/dist/crypto.js +68 -0
  18. package/dist/crypto.js.map +1 -0
  19. package/dist/index.d.ts +29 -0
  20. package/dist/index.d.ts.map +1 -0
  21. package/dist/index.js +31 -0
  22. package/dist/index.js.map +1 -0
  23. package/dist/log-transport.d.ts +20 -0
  24. package/dist/log-transport.d.ts.map +1 -0
  25. package/dist/log-transport.js +49 -0
  26. package/dist/log-transport.js.map +1 -0
  27. package/dist/pool.d.ts +36 -0
  28. package/dist/pool.d.ts.map +1 -0
  29. package/dist/pool.js +218 -0
  30. package/dist/pool.js.map +1 -0
  31. package/dist/queries/boards.d.ts +138 -0
  32. package/dist/queries/boards.d.ts.map +1 -0
  33. package/dist/queries/boards.js +87 -0
  34. package/dist/queries/boards.js.map +1 -0
  35. package/dist/queries/code-provenance.d.ts +250 -0
  36. package/dist/queries/code-provenance.d.ts.map +1 -0
  37. package/dist/queries/code-provenance.js +130 -0
  38. package/dist/queries/code-provenance.js.map +1 -0
  39. package/dist/queries/optimized-queries.d.ts +89 -0
  40. package/dist/queries/optimized-queries.d.ts.map +1 -0
  41. package/dist/queries/optimized-queries.js +371 -0
  42. package/dist/queries/optimized-queries.js.map +1 -0
  43. package/dist/queries/ticket-comments.d.ts +37 -0
  44. package/dist/queries/ticket-comments.d.ts.map +1 -0
  45. package/dist/queries/ticket-comments.js +52 -0
  46. package/dist/queries/ticket-comments.js.map +1 -0
  47. package/dist/queries/ticket-labels.d.ts +69 -0
  48. package/dist/queries/ticket-labels.d.ts.map +1 -0
  49. package/dist/queries/ticket-labels.js +51 -0
  50. package/dist/queries/ticket-labels.js.map +1 -0
  51. package/dist/queries/tickets.d.ts +301 -0
  52. package/dist/queries/tickets.d.ts.map +1 -0
  53. package/dist/queries/tickets.js +89 -0
  54. package/dist/queries/tickets.js.map +1 -0
  55. package/dist/queries/todos.d.ts +37 -0
  56. package/dist/queries/todos.d.ts.map +1 -0
  57. package/dist/queries/todos.js +37 -0
  58. package/dist/queries/todos.js.map +1 -0
  59. package/dist/schema/agents.d.ts +1413 -0
  60. package/dist/schema/agents.d.ts.map +1 -0
  61. package/dist/schema/agents.js +207 -0
  62. package/dist/schema/agents.js.map +1 -0
  63. package/dist/schema/api-keys.d.ts +298 -0
  64. package/dist/schema/api-keys.d.ts.map +1 -0
  65. package/dist/schema/api-keys.js +53 -0
  66. package/dist/schema/api-keys.js.map +1 -0
  67. package/dist/schema/app-logs.d.ts +168 -0
  68. package/dist/schema/app-logs.d.ts.map +1 -0
  69. package/dist/schema/app-logs.js +25 -0
  70. package/dist/schema/app-logs.js.map +1 -0
  71. package/dist/schema/audit-log.d.ts +174 -0
  72. package/dist/schema/audit-log.d.ts.map +1 -0
  73. package/dist/schema/audit-log.js +37 -0
  74. package/dist/schema/audit-log.js.map +1 -0
  75. package/dist/schema/cms.d.ts +1015 -0
  76. package/dist/schema/cms.d.ts.map +1 -0
  77. package/dist/schema/cms.js +137 -0
  78. package/dist/schema/cms.js.map +1 -0
  79. package/dist/schema/code-provenance.d.ts +488 -0
  80. package/dist/schema/code-provenance.d.ts.map +1 -0
  81. package/dist/schema/code-provenance.js +72 -0
  82. package/dist/schema/code-provenance.js.map +1 -0
  83. package/dist/schema/collab-edits.d.ts +165 -0
  84. package/dist/schema/collab-edits.d.ts.map +1 -0
  85. package/dist/schema/collab-edits.js +21 -0
  86. package/dist/schema/collab-edits.js.map +1 -0
  87. package/dist/schema/crdt-operations.d.ts +153 -0
  88. package/dist/schema/crdt-operations.d.ts.map +1 -0
  89. package/dist/schema/crdt-operations.js +30 -0
  90. package/dist/schema/crdt-operations.js.map +1 -0
  91. package/dist/schema/error-events.d.ts +223 -0
  92. package/dist/schema/error-events.d.ts.map +1 -0
  93. package/dist/schema/error-events.js +44 -0
  94. package/dist/schema/error-events.js.map +1 -0
  95. package/dist/schema/index.d.ts +130 -0
  96. package/dist/schema/index.d.ts.map +1 -0
  97. package/dist/schema/index.js +310 -0
  98. package/dist/schema/index.js.map +1 -0
  99. package/dist/schema/licenses.d.ts +189 -0
  100. package/dist/schema/licenses.d.ts.map +1 -0
  101. package/dist/schema/licenses.js +39 -0
  102. package/dist/schema/licenses.js.map +1 -0
  103. package/dist/schema/node-ids.d.ts +122 -0
  104. package/dist/schema/node-ids.d.ts.map +1 -0
  105. package/dist/schema/node-ids.js +25 -0
  106. package/dist/schema/node-ids.js.map +1 -0
  107. package/dist/schema/pages.d.ts +488 -0
  108. package/dist/schema/pages.d.ts.map +1 -0
  109. package/dist/schema/pages.js +70 -0
  110. package/dist/schema/pages.js.map +1 -0
  111. package/dist/schema/password-reset-tokens.d.ts +137 -0
  112. package/dist/schema/password-reset-tokens.d.ts.map +1 -0
  113. package/dist/schema/password-reset-tokens.js +26 -0
  114. package/dist/schema/password-reset-tokens.js.map +1 -0
  115. package/dist/schema/query.d.ts +11 -0
  116. package/dist/schema/query.d.ts.map +1 -0
  117. package/dist/schema/query.js +11 -0
  118. package/dist/schema/query.js.map +1 -0
  119. package/dist/schema/rate-limits.d.ts +212 -0
  120. package/dist/schema/rate-limits.d.ts.map +1 -0
  121. package/dist/schema/rate-limits.js +38 -0
  122. package/dist/schema/rate-limits.js.map +1 -0
  123. package/dist/schema/rest.d.ts +31 -0
  124. package/dist/schema/rest.d.ts.map +1 -0
  125. package/dist/schema/rest.js +37 -0
  126. package/dist/schema/rest.js.map +1 -0
  127. package/dist/schema/sites.d.ts +365 -0
  128. package/dist/schema/sites.d.ts.map +1 -0
  129. package/dist/schema/sites.js +62 -0
  130. package/dist/schema/sites.js.map +1 -0
  131. package/dist/schema/tickets.d.ts +1118 -0
  132. package/dist/schema/tickets.d.ts.map +1 -0
  133. package/dist/schema/tickets.js +150 -0
  134. package/dist/schema/tickets.js.map +1 -0
  135. package/dist/schema/todos.d.ts +98 -0
  136. package/dist/schema/todos.d.ts.map +1 -0
  137. package/dist/schema/todos.js +12 -0
  138. package/dist/schema/todos.js.map +1 -0
  139. package/dist/schema/users.d.ts +503 -0
  140. package/dist/schema/users.d.ts.map +1 -0
  141. package/dist/schema/users.js +75 -0
  142. package/dist/schema/users.js.map +1 -0
  143. package/dist/schema/vector.d.ts +9 -0
  144. package/dist/schema/vector.d.ts.map +1 -0
  145. package/dist/schema/vector.js +9 -0
  146. package/dist/schema/vector.js.map +1 -0
  147. package/dist/schema/waitlist.d.ts +151 -0
  148. package/dist/schema/waitlist.d.ts.map +1 -0
  149. package/dist/schema/waitlist.js +17 -0
  150. package/dist/schema/waitlist.js.map +1 -0
  151. package/dist/schema/yjs-documents.d.ts +116 -0
  152. package/dist/schema/yjs-documents.d.ts.map +1 -0
  153. package/dist/schema/yjs-documents.js +15 -0
  154. package/dist/schema/yjs-documents.js.map +1 -0
  155. package/dist/types/database.d.ts +740 -0
  156. package/dist/types/database.d.ts.map +1 -0
  157. package/dist/types/database.js +151 -0
  158. package/dist/types/database.js.map +1 -0
  159. package/dist/types/discover.d.ts +83 -0
  160. package/dist/types/discover.d.ts.map +1 -0
  161. package/dist/types/discover.js +271 -0
  162. package/dist/types/discover.js.map +1 -0
  163. package/dist/types/extract-relationships.d.ts +115 -0
  164. package/dist/types/extract-relationships.d.ts.map +1 -0
  165. package/dist/types/extract-relationships.js +455 -0
  166. package/dist/types/extract-relationships.js.map +1 -0
  167. package/dist/types/generate-contracts.d.ts +19 -0
  168. package/dist/types/generate-contracts.d.ts.map +1 -0
  169. package/dist/types/generate-contracts.js +128 -0
  170. package/dist/types/generate-contracts.js.map +1 -0
  171. package/dist/types/generate-zod-schemas.d.ts +20 -0
  172. package/dist/types/generate-zod-schemas.d.ts.map +1 -0
  173. package/dist/types/generate-zod-schemas.js +128 -0
  174. package/dist/types/generate-zod-schemas.js.map +1 -0
  175. package/dist/types/generate.d.ts +17 -0
  176. package/dist/types/generate.d.ts.map +1 -0
  177. package/dist/types/generate.js +298 -0
  178. package/dist/types/generate.js.map +1 -0
  179. package/dist/types/index.d.ts +19 -0
  180. package/dist/types/index.d.ts.map +1 -0
  181. package/dist/types/index.js +19 -0
  182. package/dist/types/index.js.map +1 -0
  183. package/dist/types/introspect.d.ts +75 -0
  184. package/dist/types/introspect.d.ts.map +1 -0
  185. package/dist/types/introspect.js +187 -0
  186. package/dist/types/introspect.js.map +1 -0
  187. package/dist/types/stripe-schema.d.ts +893 -0
  188. package/dist/types/stripe-schema.d.ts.map +1 -0
  189. package/dist/types/stripe-schema.js +112 -0
  190. package/dist/types/stripe-schema.js.map +1 -0
  191. package/package.json +154 -0
@@ -0,0 +1,250 @@
1
+ /**
2
+ * Code Provenance database queries
3
+ */
4
+ import type { DatabaseClient } from '../client/types.js';
5
+ export declare function getProvenanceByFile(db: DatabaseClient, filePath: string): Promise<{
6
+ id: string;
7
+ schemaVersion: string;
8
+ filePath: string;
9
+ functionName: string | null;
10
+ lineStart: number | null;
11
+ lineEnd: number | null;
12
+ authorType: string;
13
+ aiModel: string | null;
14
+ aiSessionId: string | null;
15
+ gitCommitHash: string | null;
16
+ gitAuthor: string | null;
17
+ confidence: number;
18
+ reviewStatus: string;
19
+ reviewedBy: string | null;
20
+ reviewedAt: Date | null;
21
+ linesOfCode: number;
22
+ metadata: unknown;
23
+ createdAt: Date;
24
+ updatedAt: Date;
25
+ }[]>;
26
+ export declare function getProvenanceById(db: DatabaseClient, id: string): Promise<{
27
+ id: string;
28
+ schemaVersion: string;
29
+ filePath: string;
30
+ functionName: string | null;
31
+ lineStart: number | null;
32
+ lineEnd: number | null;
33
+ authorType: string;
34
+ aiModel: string | null;
35
+ aiSessionId: string | null;
36
+ gitCommitHash: string | null;
37
+ gitAuthor: string | null;
38
+ confidence: number;
39
+ reviewStatus: string;
40
+ reviewedBy: string | null;
41
+ reviewedAt: Date | null;
42
+ linesOfCode: number;
43
+ metadata: unknown;
44
+ createdAt: Date;
45
+ updatedAt: Date;
46
+ } | null>;
47
+ export declare function getProvenanceByCommit(db: DatabaseClient, gitCommitHash: string): Promise<{
48
+ id: string;
49
+ schemaVersion: string;
50
+ filePath: string;
51
+ functionName: string | null;
52
+ lineStart: number | null;
53
+ lineEnd: number | null;
54
+ authorType: string;
55
+ aiModel: string | null;
56
+ aiSessionId: string | null;
57
+ gitCommitHash: string | null;
58
+ gitAuthor: string | null;
59
+ confidence: number;
60
+ reviewStatus: string;
61
+ reviewedBy: string | null;
62
+ reviewedAt: Date | null;
63
+ linesOfCode: number;
64
+ metadata: unknown;
65
+ createdAt: Date;
66
+ updatedAt: Date;
67
+ }[]>;
68
+ export declare function getUnreviewedProvenance(db: DatabaseClient, filters?: {
69
+ authorType?: string;
70
+ filePathPrefix?: string;
71
+ }): Promise<{
72
+ id: string;
73
+ schemaVersion: string;
74
+ filePath: string;
75
+ functionName: string | null;
76
+ lineStart: number | null;
77
+ lineEnd: number | null;
78
+ authorType: string;
79
+ aiModel: string | null;
80
+ aiSessionId: string | null;
81
+ gitCommitHash: string | null;
82
+ gitAuthor: string | null;
83
+ confidence: number;
84
+ reviewStatus: string;
85
+ reviewedBy: string | null;
86
+ reviewedAt: Date | null;
87
+ linesOfCode: number;
88
+ metadata: unknown;
89
+ createdAt: Date;
90
+ updatedAt: Date;
91
+ }[]>;
92
+ export declare function getAllProvenance(db: DatabaseClient, filters?: {
93
+ authorType?: string;
94
+ reviewStatus?: string;
95
+ filePathPrefix?: string;
96
+ }): Promise<{
97
+ id: string;
98
+ schemaVersion: string;
99
+ filePath: string;
100
+ functionName: string | null;
101
+ lineStart: number | null;
102
+ lineEnd: number | null;
103
+ authorType: string;
104
+ aiModel: string | null;
105
+ aiSessionId: string | null;
106
+ gitCommitHash: string | null;
107
+ gitAuthor: string | null;
108
+ confidence: number;
109
+ reviewStatus: string;
110
+ reviewedBy: string | null;
111
+ reviewedAt: Date | null;
112
+ linesOfCode: number;
113
+ metadata: unknown;
114
+ createdAt: Date;
115
+ updatedAt: Date;
116
+ }[]>;
117
+ export declare function createProvenance(db: DatabaseClient, data: {
118
+ id: string;
119
+ filePath: string;
120
+ authorType: string;
121
+ functionName?: string;
122
+ lineStart?: number;
123
+ lineEnd?: number;
124
+ aiModel?: string;
125
+ aiSessionId?: string;
126
+ gitCommitHash?: string;
127
+ gitAuthor?: string;
128
+ confidence?: number;
129
+ linesOfCode?: number;
130
+ metadata?: unknown;
131
+ }): Promise<{
132
+ id: string;
133
+ schemaVersion: string;
134
+ createdAt: Date;
135
+ updatedAt: Date;
136
+ metadata: unknown;
137
+ confidence: number;
138
+ filePath: string;
139
+ functionName: string | null;
140
+ lineStart: number | null;
141
+ lineEnd: number | null;
142
+ authorType: string;
143
+ aiModel: string | null;
144
+ aiSessionId: string | null;
145
+ gitCommitHash: string | null;
146
+ gitAuthor: string | null;
147
+ reviewStatus: string;
148
+ reviewedBy: string | null;
149
+ reviewedAt: Date | null;
150
+ linesOfCode: number;
151
+ } | undefined>;
152
+ export declare function updateProvenance(db: DatabaseClient, id: string, data: Partial<{
153
+ filePath: string;
154
+ functionName: string | null;
155
+ lineStart: number | null;
156
+ lineEnd: number | null;
157
+ authorType: string;
158
+ aiModel: string | null;
159
+ aiSessionId: string | null;
160
+ gitCommitHash: string | null;
161
+ gitAuthor: string | null;
162
+ confidence: number;
163
+ reviewStatus: string;
164
+ reviewedBy: string | null;
165
+ reviewedAt: Date | null;
166
+ linesOfCode: number;
167
+ metadata: unknown;
168
+ }>): Promise<{
169
+ id: string;
170
+ schemaVersion: string;
171
+ filePath: string;
172
+ functionName: string | null;
173
+ lineStart: number | null;
174
+ lineEnd: number | null;
175
+ authorType: string;
176
+ aiModel: string | null;
177
+ aiSessionId: string | null;
178
+ gitCommitHash: string | null;
179
+ gitAuthor: string | null;
180
+ confidence: number;
181
+ reviewStatus: string;
182
+ reviewedBy: string | null;
183
+ reviewedAt: Date | null;
184
+ linesOfCode: number;
185
+ metadata: unknown;
186
+ createdAt: Date;
187
+ updatedAt: Date;
188
+ } | null>;
189
+ export declare function updateReviewStatus(db: DatabaseClient, id: string, reviewStatus: string, reviewedBy?: string): Promise<{
190
+ id: string;
191
+ schemaVersion: string;
192
+ filePath: string;
193
+ functionName: string | null;
194
+ lineStart: number | null;
195
+ lineEnd: number | null;
196
+ authorType: string;
197
+ aiModel: string | null;
198
+ aiSessionId: string | null;
199
+ gitCommitHash: string | null;
200
+ gitAuthor: string | null;
201
+ confidence: number;
202
+ reviewStatus: string;
203
+ reviewedBy: string | null;
204
+ reviewedAt: Date | null;
205
+ linesOfCode: number;
206
+ metadata: unknown;
207
+ createdAt: Date;
208
+ updatedAt: Date;
209
+ } | null>;
210
+ export declare function deleteProvenance(db: DatabaseClient, id: string): Promise<void>;
211
+ export declare function getProvenanceStats(db: DatabaseClient): Promise<{
212
+ byAuthorType: {
213
+ authorType: string;
214
+ count: number;
215
+ totalLines: number;
216
+ }[];
217
+ byReviewStatus: {
218
+ reviewStatus: string;
219
+ count: number;
220
+ }[];
221
+ }>;
222
+ export declare function getReviewsForProvenance(db: DatabaseClient, provenanceId: string): Promise<{
223
+ id: string;
224
+ provenanceId: string;
225
+ reviewerId: string | null;
226
+ reviewType: string;
227
+ status: string;
228
+ comment: string | null;
229
+ metadata: unknown;
230
+ createdAt: Date;
231
+ }[]>;
232
+ export declare function createReview(db: DatabaseClient, data: {
233
+ id: string;
234
+ provenanceId: string;
235
+ reviewerId?: string;
236
+ reviewType: string;
237
+ status: string;
238
+ comment?: string;
239
+ metadata?: unknown;
240
+ }): Promise<{
241
+ id: string;
242
+ status: string;
243
+ createdAt: Date;
244
+ metadata: unknown;
245
+ provenanceId: string;
246
+ reviewerId: string | null;
247
+ reviewType: string;
248
+ comment: string | null;
249
+ } | undefined>;
250
+ //# sourceMappingURL=code-provenance.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"code-provenance.d.ts","sourceRoot":"","sources":["../../src/queries/code-provenance.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,130 @@
1
+ /**
2
+ * Code Provenance database queries
3
+ */
4
+ import { and, desc, eq, like, sql } from 'drizzle-orm';
5
+ import { codeProvenance, codeReviews } from '../schema/code-provenance.js';
6
+ // =============================================================================
7
+ // Provenance Queries
8
+ // =============================================================================
9
+ export async function getProvenanceByFile(db, filePath) {
10
+ return db
11
+ .select()
12
+ .from(codeProvenance)
13
+ .where(eq(codeProvenance.filePath, filePath))
14
+ .orderBy(codeProvenance.lineStart);
15
+ }
16
+ export async function getProvenanceById(db, id) {
17
+ const result = await db.select().from(codeProvenance).where(eq(codeProvenance.id, id)).limit(1);
18
+ return result[0] ?? null;
19
+ }
20
+ export async function getProvenanceByCommit(db, gitCommitHash) {
21
+ return db
22
+ .select()
23
+ .from(codeProvenance)
24
+ .where(eq(codeProvenance.gitCommitHash, gitCommitHash))
25
+ .orderBy(codeProvenance.filePath);
26
+ }
27
+ export async function getUnreviewedProvenance(db, filters) {
28
+ const conditions = [eq(codeProvenance.reviewStatus, 'unreviewed')];
29
+ if (filters?.authorType) {
30
+ conditions.push(eq(codeProvenance.authorType, filters.authorType));
31
+ }
32
+ if (filters?.filePathPrefix) {
33
+ conditions.push(like(codeProvenance.filePath, `${filters.filePathPrefix}%`));
34
+ }
35
+ return db
36
+ .select()
37
+ .from(codeProvenance)
38
+ .where(and(...conditions))
39
+ .orderBy(desc(codeProvenance.createdAt));
40
+ }
41
+ export async function getAllProvenance(db, filters) {
42
+ const conditions = [];
43
+ if (filters?.authorType) {
44
+ conditions.push(eq(codeProvenance.authorType, filters.authorType));
45
+ }
46
+ if (filters?.reviewStatus) {
47
+ conditions.push(eq(codeProvenance.reviewStatus, filters.reviewStatus));
48
+ }
49
+ if (filters?.filePathPrefix) {
50
+ conditions.push(like(codeProvenance.filePath, `${filters.filePathPrefix}%`));
51
+ }
52
+ const query = db.select().from(codeProvenance);
53
+ if (conditions.length > 0) {
54
+ return query.where(and(...conditions)).orderBy(desc(codeProvenance.createdAt));
55
+ }
56
+ return query.orderBy(desc(codeProvenance.createdAt));
57
+ }
58
+ export async function createProvenance(db, data) {
59
+ const result = await db
60
+ .insert(codeProvenance)
61
+ .values({
62
+ ...data,
63
+ metadata: data.metadata ?? {},
64
+ })
65
+ .returning();
66
+ return result[0];
67
+ }
68
+ export async function updateProvenance(db, id, data) {
69
+ const result = await db
70
+ .update(codeProvenance)
71
+ .set({ ...data, updatedAt: new Date() })
72
+ .where(eq(codeProvenance.id, id))
73
+ .returning();
74
+ return result[0] ?? null;
75
+ }
76
+ export async function updateReviewStatus(db, id, reviewStatus, reviewedBy) {
77
+ const result = await db
78
+ .update(codeProvenance)
79
+ .set({
80
+ reviewStatus,
81
+ reviewedBy: reviewedBy ?? null,
82
+ reviewedAt: new Date(),
83
+ updatedAt: new Date(),
84
+ })
85
+ .where(eq(codeProvenance.id, id))
86
+ .returning();
87
+ return result[0] ?? null;
88
+ }
89
+ export async function deleteProvenance(db, id) {
90
+ await db.delete(codeProvenance).where(eq(codeProvenance.id, id));
91
+ }
92
+ export async function getProvenanceStats(db) {
93
+ const byAuthorType = await db
94
+ .select({
95
+ authorType: codeProvenance.authorType,
96
+ count: sql `COUNT(*)`,
97
+ totalLines: sql `COALESCE(SUM(${codeProvenance.linesOfCode}), 0)`,
98
+ })
99
+ .from(codeProvenance)
100
+ .groupBy(codeProvenance.authorType);
101
+ const byReviewStatus = await db
102
+ .select({
103
+ reviewStatus: codeProvenance.reviewStatus,
104
+ count: sql `COUNT(*)`,
105
+ })
106
+ .from(codeProvenance)
107
+ .groupBy(codeProvenance.reviewStatus);
108
+ return { byAuthorType, byReviewStatus };
109
+ }
110
+ // =============================================================================
111
+ // Code Review Queries
112
+ // =============================================================================
113
+ export async function getReviewsForProvenance(db, provenanceId) {
114
+ return db
115
+ .select()
116
+ .from(codeReviews)
117
+ .where(eq(codeReviews.provenanceId, provenanceId))
118
+ .orderBy(desc(codeReviews.createdAt));
119
+ }
120
+ export async function createReview(db, data) {
121
+ const result = await db
122
+ .insert(codeReviews)
123
+ .values({
124
+ ...data,
125
+ metadata: data.metadata ?? {},
126
+ })
127
+ .returning();
128
+ return result[0];
129
+ }
130
+ //# sourceMappingURL=code-provenance.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"code-provenance.js","sourceRoot":"","sources":["../../src/queries/code-provenance.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,89 @@
1
+ /**
2
+ * Optimized Database Queries
3
+ *
4
+ * Examples of N+1 query elimination and query optimization
5
+ * NOTE: This is example/documentation code - not actively used in production
6
+ */
7
+ /**
8
+ * BAD: N+1 Query Pattern
9
+ * Fetches posts, then makes separate query for each author
10
+ */
11
+ export declare function getPostsWithAuthorsN1(): Promise<any>;
12
+ /**
13
+ * GOOD: Optimized with JOIN
14
+ * Single query with all necessary data
15
+ */
16
+ export declare function getPostsWithAuthorsOptimized(): Promise<any>;
17
+ /**
18
+ * BETTER: Optimized with caching
19
+ */
20
+ export declare function getPostsWithAuthorsCached(): Promise<unknown>;
21
+ /**
22
+ * BAD: OFFSET-based pagination (slow for large offsets)
23
+ */
24
+ export declare function getPostsPaginatedOffset(page: number, perPage: number): Promise<any>;
25
+ /**
26
+ * GOOD: Cursor-based pagination (faster for all positions)
27
+ */
28
+ export declare function getPostsPaginatedCursor(cursor?: string, perPage?: number): Promise<{
29
+ items: any;
30
+ nextCursor: any;
31
+ }>;
32
+ /**
33
+ * BAD: Multiple count queries
34
+ */
35
+ export declare function getPostStatsN1(): Promise<{
36
+ total: any;
37
+ published: any;
38
+ draft: any;
39
+ }>;
40
+ /**
41
+ * GOOD: Single aggregation query
42
+ */
43
+ export declare function getPostStatsOptimized(): Promise<any>;
44
+ /**
45
+ * BAD: Individual queries in loop
46
+ */
47
+ export declare function getUsersByIdsN1(ids: string[]): Promise<any[]>;
48
+ /**
49
+ * GOOD: Single query with IN clause
50
+ */
51
+ export declare function getUsersByIdsOptimized(ids: string[]): Promise<any>;
52
+ /**
53
+ * GOOD: Fetch posts with authors and comments in one query
54
+ */
55
+ export declare function getPostsWithRelations(): Promise<any>;
56
+ /**
57
+ * BAD: LIKE query without index
58
+ */
59
+ export declare function searchPostsSlow(query: string): Promise<any>;
60
+ /**
61
+ * GOOD: Full-text search with GIN index
62
+ */
63
+ export declare function searchPostsOptimized(query: string): Promise<any>;
64
+ /**
65
+ * Build dynamic query with proper indexing
66
+ */
67
+ export declare function getPostsFiltered(filters: {
68
+ status?: string;
69
+ authorId?: string;
70
+ fromDate?: Date;
71
+ toDate?: Date;
72
+ }): Promise<any>;
73
+ /**
74
+ * Create materialized view for expensive aggregations
75
+ */
76
+ export declare function createPostStatsMaterializedView(): Promise<void>;
77
+ /**
78
+ * Refresh materialized view
79
+ */
80
+ export declare function refreshPostStats(): Promise<void>;
81
+ /**
82
+ * Query materialized view (fast)
83
+ */
84
+ export declare function getPostStatsByDate(fromDate: Date, toDate: Date): Promise<any>;
85
+ /**
86
+ * Efficient JSON aggregation
87
+ */
88
+ export declare function getUsersWithPostCounts(): Promise<any>;
89
+ //# sourceMappingURL=optimized-queries.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"optimized-queries.d.ts","sourceRoot":"","sources":["../../src/queries/optimized-queries.ts"],"names":[],"mappings":"AAEA;;;;;GAKG;AAoBH;;;GAGG;AACH,wBAAsB,qBAAqB,iBAW1C;AAED;;;GAGG;AACH,wBAAsB,4BAA4B,iBA0BjD;AAED;;GAEG;AACH,wBAAsB,yBAAyB,qBAO9C;AAMD;;GAEG;AACH,wBAAsB,uBAAuB,CAAC,IAAI,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,gBAY1E;AAED;;GAEG;AACH,wBAAsB,uBAAuB,CAAC,MAAM,CAAC,EAAE,MAAM,EAAE,OAAO,GAAE,MAAW;;;GA2BlF;AAMD;;GAEG;AACH,wBAAsB,cAAc;;;;GAUnC;AAED;;GAEG;AACH,wBAAsB,qBAAqB,iBAa1C;AAMD;;GAEG;AACH,wBAAsB,eAAe,CAAC,GAAG,EAAE,MAAM,EAAE,kBAOlD;AAED;;GAEG;AACH,wBAAsB,sBAAsB,CAAC,GAAG,EAAE,MAAM,EAAE,gBAMzD;AAMD;;GAEG;AACH,wBAAsB,qBAAqB,iBA0C1C;AAMD;;GAEG;AACH,wBAAsB,eAAe,CAAC,KAAK,EAAE,MAAM,gBASlD;AAED;;GAEG;AACH,wBAAsB,oBAAoB,CAAC,KAAK,EAAE,MAAM,gBAoBvD;AAMD;;GAEG;AACH,wBAAsB,gBAAgB,CAAC,OAAO,EAAE;IAC9C,MAAM,CAAC,EAAE,MAAM,CAAA;IACf,QAAQ,CAAC,EAAE,MAAM,CAAA;IACjB,QAAQ,CAAC,EAAE,IAAI,CAAA;IACf,MAAM,CAAC,EAAE,IAAI,CAAA;CACd,gBA0CA;AAMD;;GAEG;AACH,wBAAsB,+BAA+B,kBAkBpD;AAED;;GAEG;AACH,wBAAsB,gBAAgB,kBAErC;AAED;;GAEG;AACH,wBAAsB,kBAAkB,CAAC,QAAQ,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,gBASpE;AAMD;;GAEG;AACH,wBAAsB,sBAAsB,iBAqB3C"}