@storyshelf/db-postgres 0.0.0-stage → 0.5.4

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 (81) hide show
  1. package/LICENSE +21 -0
  2. package/README.md +18 -2
  3. package/dist/ddl.d.mts +8 -0
  4. package/dist/ddl.mjs +321 -0
  5. package/dist/ddl.mjs.map +1 -0
  6. package/dist/drizzle-factory-pg.mjs +77 -0
  7. package/dist/drizzle-factory-pg.mjs.map +1 -0
  8. package/dist/drizzle-factory.mjs +42 -0
  9. package/dist/drizzle-factory.mjs.map +1 -0
  10. package/dist/index.d.mts +50 -0
  11. package/dist/index.mjs +51 -0
  12. package/dist/index.mjs.map +1 -0
  13. package/dist/migrate.mjs +91 -0
  14. package/dist/migrate.mjs.map +1 -0
  15. package/dist/neon-http.d.mts +27 -0
  16. package/dist/neon-http.mjs +66 -0
  17. package/dist/neon-http.mjs.map +1 -0
  18. package/dist/neon.d.mts +29 -0
  19. package/dist/neon.mjs +59 -0
  20. package/dist/neon.mjs.map +1 -0
  21. package/dist/pg.d.mts +33 -0
  22. package/dist/pg.mjs +56 -0
  23. package/dist/pg.mjs.map +1 -0
  24. package/dist/pglite.d.mts +28 -0
  25. package/dist/pglite.mjs +54 -0
  26. package/dist/pglite.mjs.map +1 -0
  27. package/dist/schema/baseline.d.mts +197 -0
  28. package/dist/schema/baseline.mjs +29 -0
  29. package/dist/schema/baseline.mjs.map +1 -0
  30. package/dist/schema/build.d.mts +380 -0
  31. package/dist/schema/build.mjs +39 -0
  32. package/dist/schema/build.mjs.map +1 -0
  33. package/dist/schema/capture-attempt.d.mts +445 -0
  34. package/dist/schema/capture-attempt.mjs +58 -0
  35. package/dist/schema/capture-attempt.mjs.map +1 -0
  36. package/dist/schema/comment.d.mts +197 -0
  37. package/dist/schema/comment.mjs +32 -0
  38. package/dist/schema/comment.mjs.map +1 -0
  39. package/dist/schema/content-refs.d.mts +89 -0
  40. package/dist/schema/content-refs.mjs +22 -0
  41. package/dist/schema/content-refs.mjs.map +1 -0
  42. package/dist/schema/label.d.mts +262 -0
  43. package/dist/schema/label.mjs +36 -0
  44. package/dist/schema/label.mjs.map +1 -0
  45. package/dist/schema/member.d.mts +129 -0
  46. package/dist/schema/member.mjs +23 -0
  47. package/dist/schema/member.mjs.map +1 -0
  48. package/dist/schema/notification.d.mts +316 -0
  49. package/dist/schema/notification.mjs +42 -0
  50. package/dist/schema/notification.mjs.map +1 -0
  51. package/dist/schema/project-group-mapping.d.mts +110 -0
  52. package/dist/schema/project-group-mapping.mjs +21 -0
  53. package/dist/schema/project-group-mapping.mjs.map +1 -0
  54. package/dist/schema/project.d.mts +337 -0
  55. package/dist/schema/project.mjs +35 -0
  56. package/dist/schema/project.mjs.map +1 -0
  57. package/dist/schema/snapshot.d.mts +452 -0
  58. package/dist/schema/snapshot.mjs +47 -0
  59. package/dist/schema/snapshot.mjs.map +1 -0
  60. package/dist/schema/status-config.d.mts +143 -0
  61. package/dist/schema/status-config.mjs +26 -0
  62. package/dist/schema/status-config.mjs.map +1 -0
  63. package/dist/schema/token.d.mts +143 -0
  64. package/dist/schema/token.mjs +27 -0
  65. package/dist/schema/token.mjs.map +1 -0
  66. package/dist/schema/user-invite.d.mts +125 -0
  67. package/dist/schema/user-invite.mjs +28 -0
  68. package/dist/schema/user-invite.mjs.map +1 -0
  69. package/dist/schema/user.d.mts +146 -0
  70. package/dist/schema/user.mjs +25 -0
  71. package/dist/schema/user.mjs.map +1 -0
  72. package/dist/schema/webhook.d.mts +143 -0
  73. package/dist/schema/webhook.mjs +26 -0
  74. package/dist/schema/webhook.mjs.map +1 -0
  75. package/dist/schema.d.mts +47 -0
  76. package/dist/schema.mjs +46 -0
  77. package/dist/schema.mjs.map +1 -0
  78. package/dist/vercel.d.mts +26 -0
  79. package/dist/vercel.mjs +48 -0
  80. package/dist/vercel.mjs.map +1 -0
  81. package/package.json +134 -4
@@ -0,0 +1,445 @@
1
+ import __tsdown_shims_path from 'node:path';
2
+ import __tsdown_shims_url from 'node:url';
3
+ import { JobStatus } from "@storyshelf/core/adapter/capture-queue";
4
+ //#region src/schema/capture-attempt.d.ts
5
+ /** Narrow `capture_attempts` table definition: one row per build capture run. */
6
+ declare const captureAttempts: import("drizzle-orm/pg-core").PgTableWithColumns<{
7
+ name: "capture_attempts";
8
+ schema: undefined;
9
+ columns: {
10
+ id: import("drizzle-orm/pg-core").PgColumn<{
11
+ name: "id";
12
+ tableName: "capture_attempts";
13
+ dataType: "string";
14
+ columnType: "PgText";
15
+ data: string;
16
+ driverParam: string;
17
+ notNull: true;
18
+ hasDefault: false;
19
+ isPrimaryKey: true;
20
+ isAutoincrement: false;
21
+ hasRuntimeDefault: false;
22
+ enumValues: [string, ...string[]];
23
+ baseColumn: never;
24
+ identity: undefined;
25
+ generated: undefined;
26
+ }, {}, {}>;
27
+ projectId: import("drizzle-orm/pg-core").PgColumn<{
28
+ name: "project_id";
29
+ tableName: "capture_attempts";
30
+ dataType: "string";
31
+ columnType: "PgText";
32
+ data: string;
33
+ driverParam: string;
34
+ notNull: true;
35
+ hasDefault: false;
36
+ isPrimaryKey: false;
37
+ isAutoincrement: false;
38
+ hasRuntimeDefault: false;
39
+ enumValues: [string, ...string[]];
40
+ baseColumn: never;
41
+ identity: undefined;
42
+ generated: undefined;
43
+ }, {}, {}>;
44
+ buildId: import("drizzle-orm/pg-core").PgColumn<{
45
+ name: "build_id";
46
+ tableName: "capture_attempts";
47
+ dataType: "string";
48
+ columnType: "PgText";
49
+ data: string;
50
+ driverParam: string;
51
+ notNull: true;
52
+ hasDefault: false;
53
+ isPrimaryKey: false;
54
+ isAutoincrement: false;
55
+ hasRuntimeDefault: false;
56
+ enumValues: [string, ...string[]];
57
+ baseColumn: never;
58
+ identity: undefined;
59
+ generated: undefined;
60
+ }, {}, {}>;
61
+ attemptNo: import("drizzle-orm/pg-core").PgColumn<{
62
+ name: "attempt_no";
63
+ tableName: "capture_attempts";
64
+ dataType: "number";
65
+ columnType: "PgInteger";
66
+ data: number;
67
+ driverParam: string | number;
68
+ notNull: true;
69
+ hasDefault: false;
70
+ isPrimaryKey: false;
71
+ isAutoincrement: false;
72
+ hasRuntimeDefault: false;
73
+ enumValues: undefined;
74
+ baseColumn: never;
75
+ identity: undefined;
76
+ generated: undefined;
77
+ }, {}, {}>;
78
+ status: import("drizzle-orm/pg-core").PgColumn<{
79
+ name: "status";
80
+ tableName: "capture_attempts";
81
+ dataType: "string";
82
+ columnType: "PgText";
83
+ data: JobStatus;
84
+ driverParam: string;
85
+ notNull: true;
86
+ hasDefault: true;
87
+ isPrimaryKey: false;
88
+ isAutoincrement: false;
89
+ hasRuntimeDefault: false;
90
+ enumValues: [string, ...string[]];
91
+ baseColumn: never;
92
+ identity: undefined;
93
+ generated: undefined;
94
+ }, {}, {
95
+ $type: JobStatus;
96
+ }>;
97
+ error: import("drizzle-orm/pg-core").PgColumn<{
98
+ name: "error";
99
+ tableName: "capture_attempts";
100
+ dataType: "string";
101
+ columnType: "PgText";
102
+ data: string;
103
+ driverParam: string;
104
+ notNull: false;
105
+ hasDefault: false;
106
+ isPrimaryKey: false;
107
+ isAutoincrement: false;
108
+ hasRuntimeDefault: false;
109
+ enumValues: [string, ...string[]];
110
+ baseColumn: never;
111
+ identity: undefined;
112
+ generated: undefined;
113
+ }, {}, {}>;
114
+ reqId: import("drizzle-orm/pg-core").PgColumn<{
115
+ name: "req_id";
116
+ tableName: "capture_attempts";
117
+ dataType: "string";
118
+ columnType: "PgText";
119
+ data: string;
120
+ driverParam: string;
121
+ notNull: false;
122
+ hasDefault: false;
123
+ isPrimaryKey: false;
124
+ isAutoincrement: false;
125
+ hasRuntimeDefault: false;
126
+ enumValues: [string, ...string[]];
127
+ baseColumn: never;
128
+ identity: undefined;
129
+ generated: undefined;
130
+ }, {}, {}>;
131
+ storyCount: import("drizzle-orm/pg-core").PgColumn<{
132
+ name: "story_count";
133
+ tableName: "capture_attempts";
134
+ dataType: "number";
135
+ columnType: "PgInteger";
136
+ data: number;
137
+ driverParam: string | number;
138
+ notNull: true;
139
+ hasDefault: true;
140
+ isPrimaryKey: false;
141
+ isAutoincrement: false;
142
+ hasRuntimeDefault: false;
143
+ enumValues: undefined;
144
+ baseColumn: never;
145
+ identity: undefined;
146
+ generated: undefined;
147
+ }, {}, {}>;
148
+ failedCount: import("drizzle-orm/pg-core").PgColumn<{
149
+ name: "failed_count";
150
+ tableName: "capture_attempts";
151
+ dataType: "number";
152
+ columnType: "PgInteger";
153
+ data: number;
154
+ driverParam: string | number;
155
+ notNull: true;
156
+ hasDefault: true;
157
+ isPrimaryKey: false;
158
+ isAutoincrement: false;
159
+ hasRuntimeDefault: false;
160
+ enumValues: undefined;
161
+ baseColumn: never;
162
+ identity: undefined;
163
+ generated: undefined;
164
+ }, {}, {}>;
165
+ queuedAt: import("drizzle-orm/pg-core").PgColumn<{
166
+ name: "queued_at";
167
+ tableName: "capture_attempts";
168
+ dataType: "string";
169
+ columnType: "PgTimestampString";
170
+ data: string;
171
+ driverParam: string;
172
+ notNull: true;
173
+ hasDefault: false;
174
+ isPrimaryKey: false;
175
+ isAutoincrement: false;
176
+ hasRuntimeDefault: false;
177
+ enumValues: undefined;
178
+ baseColumn: never;
179
+ identity: undefined;
180
+ generated: undefined;
181
+ }, {}, {}>;
182
+ startedAt: import("drizzle-orm/pg-core").PgColumn<{
183
+ name: "started_at";
184
+ tableName: "capture_attempts";
185
+ dataType: "string";
186
+ columnType: "PgTimestampString";
187
+ data: string;
188
+ driverParam: string;
189
+ notNull: false;
190
+ hasDefault: false;
191
+ isPrimaryKey: false;
192
+ isAutoincrement: false;
193
+ hasRuntimeDefault: false;
194
+ enumValues: undefined;
195
+ baseColumn: never;
196
+ identity: undefined;
197
+ generated: undefined;
198
+ }, {}, {}>;
199
+ finishedAt: import("drizzle-orm/pg-core").PgColumn<{
200
+ name: "finished_at";
201
+ tableName: "capture_attempts";
202
+ dataType: "string";
203
+ columnType: "PgTimestampString";
204
+ data: string;
205
+ driverParam: string;
206
+ notNull: false;
207
+ hasDefault: false;
208
+ isPrimaryKey: false;
209
+ isAutoincrement: false;
210
+ hasRuntimeDefault: false;
211
+ enumValues: undefined;
212
+ baseColumn: never;
213
+ identity: undefined;
214
+ generated: undefined;
215
+ }, {}, {}>;
216
+ createdAt: import("drizzle-orm/pg-core").PgColumn<{
217
+ name: "created_at";
218
+ tableName: "capture_attempts";
219
+ dataType: "string";
220
+ columnType: "PgTimestampString";
221
+ data: string;
222
+ driverParam: string;
223
+ notNull: true;
224
+ hasDefault: false;
225
+ isPrimaryKey: false;
226
+ isAutoincrement: false;
227
+ hasRuntimeDefault: false;
228
+ enumValues: undefined;
229
+ baseColumn: never;
230
+ identity: undefined;
231
+ generated: undefined;
232
+ }, {}, {}>;
233
+ updatedAt: import("drizzle-orm/pg-core").PgColumn<{
234
+ name: "updated_at";
235
+ tableName: "capture_attempts";
236
+ dataType: "string";
237
+ columnType: "PgTimestampString";
238
+ data: string;
239
+ driverParam: string;
240
+ notNull: true;
241
+ hasDefault: false;
242
+ isPrimaryKey: false;
243
+ isAutoincrement: false;
244
+ hasRuntimeDefault: false;
245
+ enumValues: undefined;
246
+ baseColumn: never;
247
+ identity: undefined;
248
+ generated: undefined;
249
+ }, {}, {}>;
250
+ };
251
+ dialect: 'pg';
252
+ }>;
253
+ /** Narrow `capture_logs` table definition: every log line of an attempt. */
254
+ declare const captureLogs: import("drizzle-orm/pg-core").PgTableWithColumns<{
255
+ name: "capture_logs";
256
+ schema: undefined;
257
+ columns: {
258
+ id: import("drizzle-orm/pg-core").PgColumn<{
259
+ name: "id";
260
+ tableName: "capture_logs";
261
+ dataType: "string";
262
+ columnType: "PgText";
263
+ data: string;
264
+ driverParam: string;
265
+ notNull: true;
266
+ hasDefault: false;
267
+ isPrimaryKey: true;
268
+ isAutoincrement: false;
269
+ hasRuntimeDefault: false;
270
+ enumValues: [string, ...string[]];
271
+ baseColumn: never;
272
+ identity: undefined;
273
+ generated: undefined;
274
+ }, {}, {}>;
275
+ projectId: import("drizzle-orm/pg-core").PgColumn<{
276
+ name: "project_id";
277
+ tableName: "capture_logs";
278
+ dataType: "string";
279
+ columnType: "PgText";
280
+ data: string;
281
+ driverParam: string;
282
+ notNull: true;
283
+ hasDefault: false;
284
+ isPrimaryKey: false;
285
+ isAutoincrement: false;
286
+ hasRuntimeDefault: false;
287
+ enumValues: [string, ...string[]];
288
+ baseColumn: never;
289
+ identity: undefined;
290
+ generated: undefined;
291
+ }, {}, {}>;
292
+ buildId: import("drizzle-orm/pg-core").PgColumn<{
293
+ name: "build_id";
294
+ tableName: "capture_logs";
295
+ dataType: "string";
296
+ columnType: "PgText";
297
+ data: string;
298
+ driverParam: string;
299
+ notNull: true;
300
+ hasDefault: false;
301
+ isPrimaryKey: false;
302
+ isAutoincrement: false;
303
+ hasRuntimeDefault: false;
304
+ enumValues: [string, ...string[]];
305
+ baseColumn: never;
306
+ identity: undefined;
307
+ generated: undefined;
308
+ }, {}, {}>;
309
+ attemptId: import("drizzle-orm/pg-core").PgColumn<{
310
+ name: "attempt_id";
311
+ tableName: "capture_logs";
312
+ dataType: "string";
313
+ columnType: "PgText";
314
+ data: string;
315
+ driverParam: string;
316
+ notNull: true;
317
+ hasDefault: false;
318
+ isPrimaryKey: false;
319
+ isAutoincrement: false;
320
+ hasRuntimeDefault: false;
321
+ enumValues: [string, ...string[]];
322
+ baseColumn: never;
323
+ identity: undefined;
324
+ generated: undefined;
325
+ }, {}, {}>;
326
+ seq: import("drizzle-orm/pg-core").PgColumn<{
327
+ name: "seq";
328
+ tableName: "capture_logs";
329
+ dataType: "number";
330
+ columnType: "PgInteger";
331
+ data: number;
332
+ driverParam: string | number;
333
+ notNull: true;
334
+ hasDefault: false;
335
+ isPrimaryKey: false;
336
+ isAutoincrement: false;
337
+ hasRuntimeDefault: false;
338
+ enumValues: undefined;
339
+ baseColumn: never;
340
+ identity: undefined;
341
+ generated: undefined;
342
+ }, {}, {}>;
343
+ level: import("drizzle-orm/pg-core").PgColumn<{
344
+ name: "level";
345
+ tableName: "capture_logs";
346
+ dataType: "string";
347
+ columnType: "PgText";
348
+ data: string;
349
+ driverParam: string;
350
+ notNull: true;
351
+ hasDefault: true;
352
+ isPrimaryKey: false;
353
+ isAutoincrement: false;
354
+ hasRuntimeDefault: false;
355
+ enumValues: [string, ...string[]];
356
+ baseColumn: never;
357
+ identity: undefined;
358
+ generated: undefined;
359
+ }, {}, {}>;
360
+ message: import("drizzle-orm/pg-core").PgColumn<{
361
+ name: "message";
362
+ tableName: "capture_logs";
363
+ dataType: "string";
364
+ columnType: "PgText";
365
+ data: string;
366
+ driverParam: string;
367
+ notNull: true;
368
+ hasDefault: false;
369
+ isPrimaryKey: false;
370
+ isAutoincrement: false;
371
+ hasRuntimeDefault: false;
372
+ enumValues: [string, ...string[]];
373
+ baseColumn: never;
374
+ identity: undefined;
375
+ generated: undefined;
376
+ }, {}, {}>;
377
+ fields: import("drizzle-orm/pg-core").PgColumn<{
378
+ name: "fields";
379
+ tableName: "capture_logs";
380
+ dataType: "string";
381
+ columnType: "PgText";
382
+ data: string;
383
+ driverParam: string;
384
+ notNull: false;
385
+ hasDefault: false;
386
+ isPrimaryKey: false;
387
+ isAutoincrement: false;
388
+ hasRuntimeDefault: false;
389
+ enumValues: [string, ...string[]];
390
+ baseColumn: never;
391
+ identity: undefined;
392
+ generated: undefined;
393
+ }, {}, {}>;
394
+ createdAt: import("drizzle-orm/pg-core").PgColumn<{
395
+ name: "created_at";
396
+ tableName: "capture_logs";
397
+ dataType: "string";
398
+ columnType: "PgTimestampString";
399
+ data: string;
400
+ driverParam: string;
401
+ notNull: true;
402
+ hasDefault: false;
403
+ isPrimaryKey: false;
404
+ isAutoincrement: false;
405
+ hasRuntimeDefault: false;
406
+ enumValues: undefined;
407
+ baseColumn: never;
408
+ identity: undefined;
409
+ generated: undefined;
410
+ }, {}, {}>;
411
+ };
412
+ dialect: 'pg';
413
+ }>;
414
+ /** A capture attempt row. */
415
+ interface CaptureAttempt {
416
+ id: string;
417
+ projectId: string;
418
+ buildId: string;
419
+ attemptNo: number;
420
+ status: JobStatus;
421
+ error: string | null;
422
+ reqId: string | null;
423
+ storyCount: number;
424
+ failedCount: number;
425
+ queuedAt: string;
426
+ startedAt: string | null;
427
+ finishedAt: string | null;
428
+ createdAt: string;
429
+ updatedAt: string;
430
+ }
431
+ /** A capture log line row. */
432
+ interface CaptureLog {
433
+ id: string;
434
+ projectId: string;
435
+ buildId: string;
436
+ attemptId: string;
437
+ seq: number;
438
+ level: string;
439
+ message: string;
440
+ fields: string | null;
441
+ createdAt: string;
442
+ }
443
+ //#endregion
444
+ export { CaptureAttempt, CaptureLog, captureAttempts, captureLogs };
445
+ //# sourceMappingURL=capture-attempt.d.mts.map
@@ -0,0 +1,58 @@
1
+ import "node:path";
2
+ import "node:url";
3
+ import.meta.url;
4
+ import { projects } from "./project.mjs";
5
+ import { builds } from "./build.mjs";
6
+ import { index, integer, pgTable, text, timestamp, uniqueIndex } from "drizzle-orm/pg-core";
7
+ //#region src/schema/capture-attempt.ts
8
+ /** Narrow `capture_attempts` table definition: one row per build capture run. */
9
+ const captureAttempts = pgTable("capture_attempts", {
10
+ id: text("id").primaryKey(),
11
+ projectId: text("project_id").notNull().references(() => projects.id, { onDelete: "cascade" }),
12
+ buildId: text("build_id").notNull().references(() => builds.id, { onDelete: "cascade" }),
13
+ attemptNo: integer("attempt_no").notNull(),
14
+ status: text("status").$type().notNull().default("queued"),
15
+ error: text("error"),
16
+ reqId: text("req_id"),
17
+ storyCount: integer("story_count").notNull().default(0),
18
+ failedCount: integer("failed_count").notNull().default(0),
19
+ queuedAt: timestamp("queued_at", {
20
+ withTimezone: true,
21
+ mode: "string"
22
+ }).notNull(),
23
+ startedAt: timestamp("started_at", {
24
+ withTimezone: true,
25
+ mode: "string"
26
+ }),
27
+ finishedAt: timestamp("finished_at", {
28
+ withTimezone: true,
29
+ mode: "string"
30
+ }),
31
+ createdAt: timestamp("created_at", {
32
+ withTimezone: true,
33
+ mode: "string"
34
+ }).notNull(),
35
+ updatedAt: timestamp("updated_at", {
36
+ withTimezone: true,
37
+ mode: "string"
38
+ }).notNull()
39
+ }, (t) => [uniqueIndex("capture_attempts_build_no_idx").on(t.buildId, t.attemptNo), index("capture_attempts_build_id_idx").on(t.buildId)]);
40
+ /** Narrow `capture_logs` table definition: every log line of an attempt. */
41
+ const captureLogs = pgTable("capture_logs", {
42
+ id: text("id").primaryKey(),
43
+ projectId: text("project_id").notNull().references(() => projects.id, { onDelete: "cascade" }),
44
+ buildId: text("build_id").notNull().references(() => builds.id, { onDelete: "cascade" }),
45
+ attemptId: text("attempt_id").notNull().references(() => captureAttempts.id, { onDelete: "cascade" }),
46
+ seq: integer("seq").notNull(),
47
+ level: text("level").notNull().default("info"),
48
+ message: text("message").notNull(),
49
+ fields: text("fields"),
50
+ createdAt: timestamp("created_at", {
51
+ withTimezone: true,
52
+ mode: "string"
53
+ }).notNull()
54
+ }, (t) => [index("capture_logs_attempt_seq_idx").on(t.attemptId, t.seq)]);
55
+ //#endregion
56
+ export { captureAttempts, captureLogs };
57
+
58
+ //# sourceMappingURL=capture-attempt.mjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"capture-attempt.mjs","names":[],"sources":["../../src/schema/capture-attempt.ts"],"sourcesContent":["import type { JobStatus } from \"@storyshelf/core/adapter/capture-queue\";\nimport { index, integer, pgTable, text, timestamp, uniqueIndex } from \"drizzle-orm/pg-core\";\nimport { builds } from \"./build.ts\";\nimport { projects } from \"./project.ts\";\n\n/** Narrow `capture_attempts` table definition: one row per build capture run. */\nexport const captureAttempts = pgTable(\n \"capture_attempts\",\n {\n id: text(\"id\").primaryKey(),\n projectId: text(\"project_id\")\n .notNull()\n .references(() => projects.id, { onDelete: \"cascade\" }),\n buildId: text(\"build_id\")\n .notNull()\n .references(() => builds.id, { onDelete: \"cascade\" }),\n attemptNo: integer(\"attempt_no\").notNull(),\n status: text(\"status\").$type<JobStatus>().notNull().default(\"queued\"),\n error: text(\"error\"),\n reqId: text(\"req_id\"),\n storyCount: integer(\"story_count\").notNull().default(0),\n failedCount: integer(\"failed_count\").notNull().default(0),\n queuedAt: timestamp(\"queued_at\", { withTimezone: true, mode: \"string\" }).notNull(),\n startedAt: timestamp(\"started_at\", { withTimezone: true, mode: \"string\" }),\n finishedAt: timestamp(\"finished_at\", { withTimezone: true, mode: \"string\" }),\n createdAt: timestamp(\"created_at\", { withTimezone: true, mode: \"string\" }).notNull(),\n updatedAt: timestamp(\"updated_at\", { withTimezone: true, mode: \"string\" }).notNull(),\n },\n (t) => [\n uniqueIndex(\"capture_attempts_build_no_idx\").on(t.buildId, t.attemptNo),\n index(\"capture_attempts_build_id_idx\").on(t.buildId),\n ],\n);\n\n/** Narrow `capture_logs` table definition: every log line of an attempt. */\nexport const captureLogs = pgTable(\n \"capture_logs\",\n {\n id: text(\"id\").primaryKey(),\n projectId: text(\"project_id\")\n .notNull()\n .references(() => projects.id, { onDelete: \"cascade\" }),\n buildId: text(\"build_id\")\n .notNull()\n .references(() => builds.id, { onDelete: \"cascade\" }),\n attemptId: text(\"attempt_id\")\n .notNull()\n .references(() => captureAttempts.id, { onDelete: \"cascade\" }),\n seq: integer(\"seq\").notNull(),\n level: text(\"level\").notNull().default(\"info\"),\n message: text(\"message\").notNull(),\n fields: text(\"fields\"),\n createdAt: timestamp(\"created_at\", { withTimezone: true, mode: \"string\" }).notNull(),\n },\n (t) => [index(\"capture_logs_attempt_seq_idx\").on(t.attemptId, t.seq)],\n);\n\n/** A capture attempt row. */\nexport interface CaptureAttempt {\n id: string;\n projectId: string;\n buildId: string;\n attemptNo: number;\n status: JobStatus;\n error: string | null;\n reqId: string | null;\n storyCount: number;\n failedCount: number;\n queuedAt: string;\n startedAt: string | null;\n finishedAt: string | null;\n createdAt: string;\n updatedAt: string;\n}\n\n/** A capture log line row. */\nexport interface CaptureLog {\n id: string;\n projectId: string;\n buildId: string;\n attemptId: string;\n seq: number;\n level: string;\n message: string;\n fields: string | null;\n createdAt: string;\n}\n"],"mappings":";;;;;;;;AAMA,MAAa,kBAAkB,QAC7B,oBACA;CACE,IAAI,KAAK,IAAI,CAAC,CAAC,WAAW;CAC1B,WAAW,KAAK,YAAY,CAAC,CAC1B,QAAQ,CAAC,CACT,iBAAiB,SAAS,IAAI,EAAE,UAAU,UAAU,CAAC;CACxD,SAAS,KAAK,UAAU,CAAC,CACtB,QAAQ,CAAC,CACT,iBAAiB,OAAO,IAAI,EAAE,UAAU,UAAU,CAAC;CACtD,WAAW,QAAQ,YAAY,CAAC,CAAC,QAAQ;CACzC,QAAQ,KAAK,QAAQ,CAAC,CAAC,MAAiB,CAAC,CAAC,QAAQ,CAAC,CAAC,QAAQ,QAAQ;CACpE,OAAO,KAAK,OAAO;CACnB,OAAO,KAAK,QAAQ;CACpB,YAAY,QAAQ,aAAa,CAAC,CAAC,QAAQ,CAAC,CAAC,QAAQ,CAAC;CACtD,aAAa,QAAQ,cAAc,CAAC,CAAC,QAAQ,CAAC,CAAC,QAAQ,CAAC;CACxD,UAAU,UAAU,aAAa;EAAE,cAAc;EAAM,MAAM;CAAS,CAAC,CAAC,CAAC,QAAQ;CACjF,WAAW,UAAU,cAAc;EAAE,cAAc;EAAM,MAAM;CAAS,CAAC;CACzE,YAAY,UAAU,eAAe;EAAE,cAAc;EAAM,MAAM;CAAS,CAAC;CAC3E,WAAW,UAAU,cAAc;EAAE,cAAc;EAAM,MAAM;CAAS,CAAC,CAAC,CAAC,QAAQ;CACnF,WAAW,UAAU,cAAc;EAAE,cAAc;EAAM,MAAM;CAAS,CAAC,CAAC,CAAC,QAAQ;AACrF,IACC,MAAM,CACL,YAAY,+BAA+B,CAAC,CAAC,GAAG,EAAE,SAAS,EAAE,SAAS,GACtE,MAAM,+BAA+B,CAAC,CAAC,GAAG,EAAE,OAAO,CACrD,CACF;;AAGA,MAAa,cAAc,QACzB,gBACA;CACE,IAAI,KAAK,IAAI,CAAC,CAAC,WAAW;CAC1B,WAAW,KAAK,YAAY,CAAC,CAC1B,QAAQ,CAAC,CACT,iBAAiB,SAAS,IAAI,EAAE,UAAU,UAAU,CAAC;CACxD,SAAS,KAAK,UAAU,CAAC,CACtB,QAAQ,CAAC,CACT,iBAAiB,OAAO,IAAI,EAAE,UAAU,UAAU,CAAC;CACtD,WAAW,KAAK,YAAY,CAAC,CAC1B,QAAQ,CAAC,CACT,iBAAiB,gBAAgB,IAAI,EAAE,UAAU,UAAU,CAAC;CAC/D,KAAK,QAAQ,KAAK,CAAC,CAAC,QAAQ;CAC5B,OAAO,KAAK,OAAO,CAAC,CAAC,QAAQ,CAAC,CAAC,QAAQ,MAAM;CAC7C,SAAS,KAAK,SAAS,CAAC,CAAC,QAAQ;CACjC,QAAQ,KAAK,QAAQ;CACrB,WAAW,UAAU,cAAc;EAAE,cAAc;EAAM,MAAM;CAAS,CAAC,CAAC,CAAC,QAAQ;AACrF,IACC,MAAM,CAAC,MAAM,8BAA8B,CAAC,CAAC,GAAG,EAAE,WAAW,EAAE,GAAG,CAAC,CACtE"}