@storyshelf/db-mysql 0.6.2 → 0.7.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 (92) hide show
  1. package/README.md +36 -0
  2. package/dist/ddl.d.mts +1 -1
  3. package/dist/ddl.mjs +381 -138
  4. package/dist/ddl.mjs.map +1 -1
  5. package/dist/drizzle-factory-mysql.mjs +7 -1
  6. package/dist/drizzle-factory-mysql.mjs.map +1 -1
  7. package/dist/foreign-keys.mjs +339 -0
  8. package/dist/foreign-keys.mjs.map +1 -0
  9. package/dist/index.mjs +10 -5
  10. package/dist/index.mjs.map +1 -1
  11. package/dist/migrate.mjs +300 -72
  12. package/dist/migrate.mjs.map +1 -1
  13. package/dist/schema/baseline.d.mts +60 -6
  14. package/dist/schema/baseline.mjs +6 -2
  15. package/dist/schema/baseline.mjs.map +1 -1
  16. package/dist/schema/{status-config.d.mts → build-component.d.mts} +46 -39
  17. package/dist/schema/build-component.mjs +26 -0
  18. package/dist/schema/build-component.mjs.map +1 -0
  19. package/dist/schema/build-review.d.mts +118 -0
  20. package/dist/schema/build-review.mjs +24 -0
  21. package/dist/schema/build-review.mjs.map +1 -0
  22. package/dist/schema/build.d.mts +44 -8
  23. package/dist/schema/build.mjs +5 -1
  24. package/dist/schema/build.mjs.map +1 -1
  25. package/dist/schema/capture-attempt.d.mts +18 -18
  26. package/dist/schema/capture-attempt.mjs +2 -1
  27. package/dist/schema/capture-attempt.mjs.map +1 -1
  28. package/dist/schema/capture-job.d.mts +330 -0
  29. package/dist/schema/capture-job.mjs +57 -0
  30. package/dist/schema/capture-job.mjs.map +1 -0
  31. package/dist/schema/capture-shard.d.mts +257 -0
  32. package/dist/schema/capture-shard.mjs +41 -0
  33. package/dist/schema/capture-shard.mjs.map +1 -0
  34. package/dist/schema/comment.d.mts +24 -6
  35. package/dist/schema/comment.mjs +5 -3
  36. package/dist/schema/comment.mjs.map +1 -1
  37. package/dist/schema/connection.d.mts +173 -0
  38. package/dist/schema/connection.mjs +36 -0
  39. package/dist/schema/connection.mjs.map +1 -0
  40. package/dist/schema/content-refs.d.mts +6 -6
  41. package/dist/schema/content-refs.mjs +2 -1
  42. package/dist/schema/content-refs.mjs.map +1 -1
  43. package/dist/schema/datetime.mjs +47 -0
  44. package/dist/schema/datetime.mjs.map +1 -0
  45. package/dist/schema/design.d.mts +589 -0
  46. package/dist/schema/design.mjs +74 -0
  47. package/dist/schema/design.mjs.map +1 -0
  48. package/dist/schema/insight.d.mts +633 -0
  49. package/dist/schema/insight.mjs +69 -0
  50. package/dist/schema/insight.mjs.map +1 -0
  51. package/dist/schema/label.d.mts +6 -6
  52. package/dist/schema/label.mjs +2 -1
  53. package/dist/schema/label.mjs.map +1 -1
  54. package/dist/schema/member.d.mts +3 -3
  55. package/dist/schema/member.mjs +2 -1
  56. package/dist/schema/member.mjs.map +1 -1
  57. package/dist/schema/notification.d.mts +45 -9
  58. package/dist/schema/notification.mjs +7 -1
  59. package/dist/schema/notification.mjs.map +1 -1
  60. package/dist/schema/project-group-mapping.d.mts +3 -3
  61. package/dist/schema/project-group-mapping.mjs +2 -1
  62. package/dist/schema/project-group-mapping.mjs.map +1 -1
  63. package/dist/schema/project.d.mts +132 -6
  64. package/dist/schema/project.mjs +10 -2
  65. package/dist/schema/project.mjs.map +1 -1
  66. package/dist/schema/site-setting.d.mts +99 -0
  67. package/dist/schema/site-setting.mjs +24 -0
  68. package/dist/schema/site-setting.mjs.map +1 -0
  69. package/dist/schema/snapshot.d.mts +117 -9
  70. package/dist/schema/snapshot.mjs +13 -2
  71. package/dist/schema/snapshot.mjs.map +1 -1
  72. package/dist/schema/token.d.mts +6 -6
  73. package/dist/schema/token.mjs +2 -1
  74. package/dist/schema/token.mjs.map +1 -1
  75. package/dist/schema/usage.d.mts +267 -0
  76. package/dist/schema/usage.mjs +37 -0
  77. package/dist/schema/usage.mjs.map +1 -0
  78. package/dist/schema/user-invite.d.mts +9 -9
  79. package/dist/schema/user-invite.mjs +2 -1
  80. package/dist/schema/user-invite.mjs.map +1 -1
  81. package/dist/schema/user.d.mts +6 -6
  82. package/dist/schema/user.mjs +2 -1
  83. package/dist/schema/user.mjs.map +1 -1
  84. package/dist/schema/webhook.d.mts +6 -6
  85. package/dist/schema/webhook.mjs +2 -1
  86. package/dist/schema/webhook.mjs.map +1 -1
  87. package/dist/schema.d.mts +24 -3
  88. package/dist/schema.mjs +25 -4
  89. package/dist/schema.mjs.map +1 -1
  90. package/package.json +5 -5
  91. package/dist/schema/status-config.mjs +0 -26
  92. package/dist/schema/status-config.mjs.map +0 -1
@@ -0,0 +1,589 @@
1
+ import __tsdown_shims_path from 'node:path';
2
+ import __tsdown_shims_url from 'node:url';
3
+ //#region src/schema/design.d.ts
4
+ /** Narrow `design_links` table definition. */
5
+ declare const designLinks: import("drizzle-orm/mysql-core").MySqlTableWithColumns<{
6
+ name: "design_links";
7
+ schema: undefined;
8
+ columns: {
9
+ id: import("drizzle-orm/mysql-core").MySqlColumn<{
10
+ name: "id";
11
+ tableName: "design_links";
12
+ dataType: "string";
13
+ columnType: "MySqlText";
14
+ data: string;
15
+ driverParam: string;
16
+ notNull: true;
17
+ hasDefault: false;
18
+ isPrimaryKey: true;
19
+ isAutoincrement: false;
20
+ hasRuntimeDefault: false;
21
+ enumValues: [string, ...string[]];
22
+ baseColumn: never;
23
+ identity: undefined;
24
+ generated: undefined;
25
+ }, {}, {}>;
26
+ projectId: import("drizzle-orm/mysql-core").MySqlColumn<{
27
+ name: "project_id";
28
+ tableName: "design_links";
29
+ dataType: "string";
30
+ columnType: "MySqlText";
31
+ data: string;
32
+ driverParam: string;
33
+ notNull: true;
34
+ hasDefault: false;
35
+ isPrimaryKey: false;
36
+ isAutoincrement: false;
37
+ hasRuntimeDefault: false;
38
+ enumValues: [string, ...string[]];
39
+ baseColumn: never;
40
+ identity: undefined;
41
+ generated: undefined;
42
+ }, {}, {}>;
43
+ importPath: import("drizzle-orm/mysql-core").MySqlColumn<{
44
+ name: "import_path";
45
+ tableName: "design_links";
46
+ dataType: "string";
47
+ columnType: "MySqlText";
48
+ data: string;
49
+ driverParam: string;
50
+ notNull: false;
51
+ hasDefault: false;
52
+ isPrimaryKey: false;
53
+ isAutoincrement: false;
54
+ hasRuntimeDefault: false;
55
+ enumValues: [string, ...string[]];
56
+ baseColumn: never;
57
+ identity: undefined;
58
+ generated: undefined;
59
+ }, {}, {}>;
60
+ label: import("drizzle-orm/mysql-core").MySqlColumn<{
61
+ name: "label";
62
+ tableName: "design_links";
63
+ dataType: "string";
64
+ columnType: "MySqlText";
65
+ data: string;
66
+ driverParam: string;
67
+ notNull: false;
68
+ hasDefault: false;
69
+ isPrimaryKey: false;
70
+ isAutoincrement: false;
71
+ hasRuntimeDefault: false;
72
+ enumValues: [string, ...string[]];
73
+ baseColumn: never;
74
+ identity: undefined;
75
+ generated: undefined;
76
+ }, {}, {}>;
77
+ url: import("drizzle-orm/mysql-core").MySqlColumn<{
78
+ name: "url";
79
+ tableName: "design_links";
80
+ dataType: "string";
81
+ columnType: "MySqlText";
82
+ data: string;
83
+ driverParam: string;
84
+ notNull: true;
85
+ hasDefault: false;
86
+ isPrimaryKey: false;
87
+ isAutoincrement: false;
88
+ hasRuntimeDefault: false;
89
+ enumValues: [string, ...string[]];
90
+ baseColumn: never;
91
+ identity: undefined;
92
+ generated: undefined;
93
+ }, {}, {}>;
94
+ createdAt: import("drizzle-orm/mysql-core").MySqlColumn<{
95
+ name: "created_at";
96
+ tableName: "design_links";
97
+ dataType: "custom";
98
+ columnType: "MySqlCustomColumn";
99
+ data: string;
100
+ driverParam: string;
101
+ notNull: true;
102
+ hasDefault: false;
103
+ isPrimaryKey: false;
104
+ isAutoincrement: false;
105
+ hasRuntimeDefault: false;
106
+ enumValues: undefined;
107
+ baseColumn: never;
108
+ identity: undefined;
109
+ generated: undefined;
110
+ }, {}, {}>;
111
+ updatedAt: import("drizzle-orm/mysql-core").MySqlColumn<{
112
+ name: "updated_at";
113
+ tableName: "design_links";
114
+ dataType: "custom";
115
+ columnType: "MySqlCustomColumn";
116
+ data: string;
117
+ driverParam: string;
118
+ notNull: true;
119
+ hasDefault: false;
120
+ isPrimaryKey: false;
121
+ isAutoincrement: false;
122
+ hasRuntimeDefault: false;
123
+ enumValues: undefined;
124
+ baseColumn: never;
125
+ identity: undefined;
126
+ generated: undefined;
127
+ }, {}, {}>;
128
+ };
129
+ dialect: 'mysql';
130
+ }>;
131
+ /** Narrow `design_credentials` table definition: the project-wide design-provider token. */
132
+ declare const designCredentials: import("drizzle-orm/mysql-core").MySqlTableWithColumns<{
133
+ name: "design_credentials";
134
+ schema: undefined;
135
+ columns: {
136
+ id: import("drizzle-orm/mysql-core").MySqlColumn<{
137
+ name: "id";
138
+ tableName: "design_credentials";
139
+ dataType: "string";
140
+ columnType: "MySqlText";
141
+ data: string;
142
+ driverParam: string;
143
+ notNull: true;
144
+ hasDefault: false;
145
+ isPrimaryKey: true;
146
+ isAutoincrement: false;
147
+ hasRuntimeDefault: false;
148
+ enumValues: [string, ...string[]];
149
+ baseColumn: never;
150
+ identity: undefined;
151
+ generated: undefined;
152
+ }, {}, {}>;
153
+ projectId: import("drizzle-orm/mysql-core").MySqlColumn<{
154
+ name: "project_id";
155
+ tableName: "design_credentials";
156
+ dataType: "string";
157
+ columnType: "MySqlText";
158
+ data: string;
159
+ driverParam: string;
160
+ notNull: true;
161
+ hasDefault: false;
162
+ isPrimaryKey: false;
163
+ isAutoincrement: false;
164
+ hasRuntimeDefault: false;
165
+ enumValues: [string, ...string[]];
166
+ baseColumn: never;
167
+ identity: undefined;
168
+ generated: undefined;
169
+ }, {}, {}>;
170
+ provider: import("drizzle-orm/mysql-core").MySqlColumn<{
171
+ name: "provider";
172
+ tableName: "design_credentials";
173
+ dataType: "string";
174
+ columnType: "MySqlText";
175
+ data: string;
176
+ driverParam: string;
177
+ notNull: true;
178
+ hasDefault: false;
179
+ isPrimaryKey: false;
180
+ isAutoincrement: false;
181
+ hasRuntimeDefault: false;
182
+ enumValues: [string, ...string[]];
183
+ baseColumn: never;
184
+ identity: undefined;
185
+ generated: undefined;
186
+ }, {}, {}>;
187
+ tokenEncrypted: import("drizzle-orm/mysql-core").MySqlColumn<{
188
+ name: "token_encrypted";
189
+ tableName: "design_credentials";
190
+ dataType: "string";
191
+ columnType: "MySqlText";
192
+ data: string;
193
+ driverParam: string;
194
+ notNull: true;
195
+ hasDefault: false;
196
+ isPrimaryKey: false;
197
+ isAutoincrement: false;
198
+ hasRuntimeDefault: false;
199
+ enumValues: [string, ...string[]];
200
+ baseColumn: never;
201
+ identity: undefined;
202
+ generated: undefined;
203
+ }, {}, {}>;
204
+ status: import("drizzle-orm/mysql-core").MySqlColumn<{
205
+ name: "status";
206
+ tableName: "design_credentials";
207
+ dataType: "string";
208
+ columnType: "MySqlText";
209
+ data: string;
210
+ driverParam: string;
211
+ notNull: true;
212
+ hasDefault: true;
213
+ isPrimaryKey: false;
214
+ isAutoincrement: false;
215
+ hasRuntimeDefault: false;
216
+ enumValues: [string, ...string[]];
217
+ baseColumn: never;
218
+ identity: undefined;
219
+ generated: undefined;
220
+ }, {}, {}>;
221
+ checkedAt: import("drizzle-orm/mysql-core").MySqlColumn<{
222
+ name: "checked_at";
223
+ tableName: "design_credentials";
224
+ dataType: "custom";
225
+ columnType: "MySqlCustomColumn";
226
+ data: string;
227
+ driverParam: string;
228
+ notNull: false;
229
+ hasDefault: false;
230
+ isPrimaryKey: false;
231
+ isAutoincrement: false;
232
+ hasRuntimeDefault: false;
233
+ enumValues: undefined;
234
+ baseColumn: never;
235
+ identity: undefined;
236
+ generated: undefined;
237
+ }, {}, {}>;
238
+ createdAt: import("drizzle-orm/mysql-core").MySqlColumn<{
239
+ name: "created_at";
240
+ tableName: "design_credentials";
241
+ dataType: "custom";
242
+ columnType: "MySqlCustomColumn";
243
+ data: string;
244
+ driverParam: string;
245
+ notNull: true;
246
+ hasDefault: false;
247
+ isPrimaryKey: false;
248
+ isAutoincrement: false;
249
+ hasRuntimeDefault: false;
250
+ enumValues: undefined;
251
+ baseColumn: never;
252
+ identity: undefined;
253
+ generated: undefined;
254
+ }, {}, {}>;
255
+ updatedAt: import("drizzle-orm/mysql-core").MySqlColumn<{
256
+ name: "updated_at";
257
+ tableName: "design_credentials";
258
+ dataType: "custom";
259
+ columnType: "MySqlCustomColumn";
260
+ data: string;
261
+ driverParam: string;
262
+ notNull: true;
263
+ hasDefault: false;
264
+ isPrimaryKey: false;
265
+ isAutoincrement: false;
266
+ hasRuntimeDefault: false;
267
+ enumValues: undefined;
268
+ baseColumn: never;
269
+ identity: undefined;
270
+ generated: undefined;
271
+ }, {}, {}>;
272
+ };
273
+ dialect: 'mysql';
274
+ }>;
275
+ /** Narrow `design_nodes` table definition (design metadata + render cache). */
276
+ declare const designNodes: import("drizzle-orm/mysql-core").MySqlTableWithColumns<{
277
+ name: "design_nodes";
278
+ schema: undefined;
279
+ columns: {
280
+ id: import("drizzle-orm/mysql-core").MySqlColumn<{
281
+ name: "id";
282
+ tableName: "design_nodes";
283
+ dataType: "string";
284
+ columnType: "MySqlText";
285
+ data: string;
286
+ driverParam: string;
287
+ notNull: true;
288
+ hasDefault: false;
289
+ isPrimaryKey: true;
290
+ isAutoincrement: false;
291
+ hasRuntimeDefault: false;
292
+ enumValues: [string, ...string[]];
293
+ baseColumn: never;
294
+ identity: undefined;
295
+ generated: undefined;
296
+ }, {}, {}>;
297
+ projectId: import("drizzle-orm/mysql-core").MySqlColumn<{
298
+ name: "project_id";
299
+ tableName: "design_nodes";
300
+ dataType: "string";
301
+ columnType: "MySqlText";
302
+ data: string;
303
+ driverParam: string;
304
+ notNull: true;
305
+ hasDefault: false;
306
+ isPrimaryKey: false;
307
+ isAutoincrement: false;
308
+ hasRuntimeDefault: false;
309
+ enumValues: [string, ...string[]];
310
+ baseColumn: never;
311
+ identity: undefined;
312
+ generated: undefined;
313
+ }, {}, {}>;
314
+ provider: import("drizzle-orm/mysql-core").MySqlColumn<{
315
+ name: "provider";
316
+ tableName: "design_nodes";
317
+ dataType: "string";
318
+ columnType: "MySqlText";
319
+ data: string;
320
+ driverParam: string;
321
+ notNull: true;
322
+ hasDefault: false;
323
+ isPrimaryKey: false;
324
+ isAutoincrement: false;
325
+ hasRuntimeDefault: false;
326
+ enumValues: [string, ...string[]];
327
+ baseColumn: never;
328
+ identity: undefined;
329
+ generated: undefined;
330
+ }, {}, {}>;
331
+ viewerId: import("drizzle-orm/mysql-core").MySqlColumn<{
332
+ name: "viewer_id";
333
+ tableName: "design_nodes";
334
+ dataType: "string";
335
+ columnType: "MySqlText";
336
+ data: string;
337
+ driverParam: string;
338
+ notNull: true;
339
+ hasDefault: true;
340
+ isPrimaryKey: false;
341
+ isAutoincrement: false;
342
+ hasRuntimeDefault: false;
343
+ enumValues: [string, ...string[]];
344
+ baseColumn: never;
345
+ identity: undefined;
346
+ generated: undefined;
347
+ }, {}, {}>;
348
+ fileKey: import("drizzle-orm/mysql-core").MySqlColumn<{
349
+ name: "file_key";
350
+ tableName: "design_nodes";
351
+ dataType: "string";
352
+ columnType: "MySqlText";
353
+ data: string;
354
+ driverParam: string;
355
+ notNull: true;
356
+ hasDefault: false;
357
+ isPrimaryKey: false;
358
+ isAutoincrement: false;
359
+ hasRuntimeDefault: false;
360
+ enumValues: [string, ...string[]];
361
+ baseColumn: never;
362
+ identity: undefined;
363
+ generated: undefined;
364
+ }, {}, {}>;
365
+ nodeId: import("drizzle-orm/mysql-core").MySqlColumn<{
366
+ name: "node_id";
367
+ tableName: "design_nodes";
368
+ dataType: "string";
369
+ columnType: "MySqlText";
370
+ data: string;
371
+ driverParam: string;
372
+ notNull: true;
373
+ hasDefault: true;
374
+ isPrimaryKey: false;
375
+ isAutoincrement: false;
376
+ hasRuntimeDefault: false;
377
+ enumValues: [string, ...string[]];
378
+ baseColumn: never;
379
+ identity: undefined;
380
+ generated: undefined;
381
+ }, {}, {}>;
382
+ name: import("drizzle-orm/mysql-core").MySqlColumn<{
383
+ name: "name";
384
+ tableName: "design_nodes";
385
+ dataType: "string";
386
+ columnType: "MySqlText";
387
+ data: string;
388
+ driverParam: string;
389
+ notNull: false;
390
+ hasDefault: false;
391
+ isPrimaryKey: false;
392
+ isAutoincrement: false;
393
+ hasRuntimeDefault: false;
394
+ enumValues: [string, ...string[]];
395
+ baseColumn: never;
396
+ identity: undefined;
397
+ generated: undefined;
398
+ }, {}, {}>;
399
+ version: import("drizzle-orm/mysql-core").MySqlColumn<{
400
+ name: "version";
401
+ tableName: "design_nodes";
402
+ dataType: "string";
403
+ columnType: "MySqlText";
404
+ data: string;
405
+ driverParam: string;
406
+ notNull: false;
407
+ hasDefault: false;
408
+ isPrimaryKey: false;
409
+ isAutoincrement: false;
410
+ hasRuntimeDefault: false;
411
+ enumValues: [string, ...string[]];
412
+ baseColumn: never;
413
+ identity: undefined;
414
+ generated: undefined;
415
+ }, {}, {}>;
416
+ lastModified: import("drizzle-orm/mysql-core").MySqlColumn<{
417
+ name: "last_modified";
418
+ tableName: "design_nodes";
419
+ dataType: "string";
420
+ columnType: "MySqlText";
421
+ data: string;
422
+ driverParam: string;
423
+ notNull: false;
424
+ hasDefault: false;
425
+ isPrimaryKey: false;
426
+ isAutoincrement: false;
427
+ hasRuntimeDefault: false;
428
+ enumValues: [string, ...string[]];
429
+ baseColumn: never;
430
+ identity: undefined;
431
+ generated: undefined;
432
+ }, {}, {}>;
433
+ state: import("drizzle-orm/mysql-core").MySqlColumn<{
434
+ name: "state";
435
+ tableName: "design_nodes";
436
+ dataType: "string";
437
+ columnType: "MySqlText";
438
+ data: string;
439
+ driverParam: string;
440
+ notNull: true;
441
+ hasDefault: true;
442
+ isPrimaryKey: false;
443
+ isAutoincrement: false;
444
+ hasRuntimeDefault: false;
445
+ enumValues: [string, ...string[]];
446
+ baseColumn: never;
447
+ identity: undefined;
448
+ generated: undefined;
449
+ }, {}, {}>;
450
+ renderPath: import("drizzle-orm/mysql-core").MySqlColumn<{
451
+ name: "render_path";
452
+ tableName: "design_nodes";
453
+ dataType: "string";
454
+ columnType: "MySqlText";
455
+ data: string;
456
+ driverParam: string;
457
+ notNull: false;
458
+ hasDefault: false;
459
+ isPrimaryKey: false;
460
+ isAutoincrement: false;
461
+ hasRuntimeDefault: false;
462
+ enumValues: [string, ...string[]];
463
+ baseColumn: never;
464
+ identity: undefined;
465
+ generated: undefined;
466
+ }, {}, {}>;
467
+ renderVersion: import("drizzle-orm/mysql-core").MySqlColumn<{
468
+ name: "render_version";
469
+ tableName: "design_nodes";
470
+ dataType: "string";
471
+ columnType: "MySqlText";
472
+ data: string;
473
+ driverParam: string;
474
+ notNull: false;
475
+ hasDefault: false;
476
+ isPrimaryKey: false;
477
+ isAutoincrement: false;
478
+ hasRuntimeDefault: false;
479
+ enumValues: [string, ...string[]];
480
+ baseColumn: never;
481
+ identity: undefined;
482
+ generated: undefined;
483
+ }, {}, {}>;
484
+ fetchedAt: import("drizzle-orm/mysql-core").MySqlColumn<{
485
+ name: "fetched_at";
486
+ tableName: "design_nodes";
487
+ dataType: "custom";
488
+ columnType: "MySqlCustomColumn";
489
+ data: string;
490
+ driverParam: string;
491
+ notNull: true;
492
+ hasDefault: false;
493
+ isPrimaryKey: false;
494
+ isAutoincrement: false;
495
+ hasRuntimeDefault: false;
496
+ enumValues: undefined;
497
+ baseColumn: never;
498
+ identity: undefined;
499
+ generated: undefined;
500
+ }, {}, {}>;
501
+ createdAt: import("drizzle-orm/mysql-core").MySqlColumn<{
502
+ name: "created_at";
503
+ tableName: "design_nodes";
504
+ dataType: "custom";
505
+ columnType: "MySqlCustomColumn";
506
+ data: string;
507
+ driverParam: string;
508
+ notNull: true;
509
+ hasDefault: false;
510
+ isPrimaryKey: false;
511
+ isAutoincrement: false;
512
+ hasRuntimeDefault: false;
513
+ enumValues: undefined;
514
+ baseColumn: never;
515
+ identity: undefined;
516
+ generated: undefined;
517
+ }, {}, {}>;
518
+ updatedAt: import("drizzle-orm/mysql-core").MySqlColumn<{
519
+ name: "updated_at";
520
+ tableName: "design_nodes";
521
+ dataType: "custom";
522
+ columnType: "MySqlCustomColumn";
523
+ data: string;
524
+ driverParam: string;
525
+ notNull: true;
526
+ hasDefault: false;
527
+ isPrimaryKey: false;
528
+ isAutoincrement: false;
529
+ hasRuntimeDefault: false;
530
+ enumValues: undefined;
531
+ baseColumn: never;
532
+ identity: undefined;
533
+ generated: undefined;
534
+ }, {}, {}>;
535
+ };
536
+ dialect: 'mysql';
537
+ }>;
538
+ /** A design link: a project-level file link (`importPath` null) or a component mapping override. */
539
+ interface DesignLink {
540
+ id: string;
541
+ projectId: string;
542
+ /** Story file the URL is mapped to; null for a project-level design file link. */
543
+ importPath: string | null;
544
+ /** Display label of a project-level link. */
545
+ label: string | null;
546
+ url: string;
547
+ createdAt: string;
548
+ updatedAt: string;
549
+ }
550
+ /** The project-wide token of a design provider (an admin pastes it; encrypted at rest). */
551
+ interface DesignCredential {
552
+ id: string;
553
+ projectId: string;
554
+ /** Provider `metadata.kind`, e.g. `figma`. */
555
+ provider: string;
556
+ tokenEncrypted: string;
557
+ /** Last API outcome: `unknown` | `ok` | `unauthorized` | `forbidden`. */
558
+ status: string;
559
+ checkedAt: string | null;
560
+ /** When the credential was set or replaced; drives the rotation clock. */
561
+ createdAt: string;
562
+ updatedAt: string;
563
+ }
564
+ /** Cached design file/node metadata, keyed by project, provider, viewer, file key and node id. */
565
+ interface DesignNode {
566
+ id: string;
567
+ projectId: string;
568
+ provider: string;
569
+ /** Whose access fetched the entry: `""` for the project credential, else a user id. */
570
+ viewerId: string;
571
+ fileKey: string;
572
+ /** Provider node id; empty string for a whole-file link. */
573
+ nodeId: string;
574
+ name: string | null;
575
+ version: string | null;
576
+ lastModified: string | null;
577
+ /** `ok` | `deleted` | `unauthorized` | `forbidden`. */
578
+ state: string;
579
+ /** Storage path of the cached PNG render (node links only). */
580
+ renderPath: string | null;
581
+ /** File `version` the cached render was taken at. */
582
+ renderVersion: string | null;
583
+ fetchedAt: string;
584
+ createdAt: string;
585
+ updatedAt: string;
586
+ }
587
+ //#endregion
588
+ export { DesignCredential, DesignLink, DesignNode, designCredentials, designLinks, designNodes };
589
+ //# sourceMappingURL=design.d.mts.map
@@ -0,0 +1,74 @@
1
+ import "node:path";
2
+ import "node:url";
3
+ import.meta.url;
4
+ import { datetime } from "./datetime.mjs";
5
+ import { projects } from "./project.mjs";
6
+ import { index, mysqlTable, text, uniqueIndex } from "drizzle-orm/mysql-core";
7
+ //#region src/schema/design.ts
8
+ /** Narrow `design_links` table definition. */
9
+ const designLinks = mysqlTable("design_links", {
10
+ id: text("id").primaryKey(),
11
+ projectId: text("project_id").notNull().references(() => projects.id, { onDelete: "cascade" }),
12
+ importPath: text("import_path"),
13
+ label: text("label"),
14
+ url: text("url").notNull(),
15
+ createdAt: datetime("created_at", {
16
+ mode: "string",
17
+ fsp: 3
18
+ }).notNull(),
19
+ updatedAt: datetime("updated_at", {
20
+ mode: "string",
21
+ fsp: 3
22
+ }).notNull()
23
+ }, (t) => [index("design_links_project_id_idx").on(t.projectId), uniqueIndex("design_links_project_import_path_idx").on(t.projectId, t.importPath)]);
24
+ /** Narrow `design_credentials` table definition: the project-wide design-provider token. */
25
+ const designCredentials = mysqlTable("design_credentials", {
26
+ id: text("id").primaryKey(),
27
+ projectId: text("project_id").notNull().references(() => projects.id, { onDelete: "cascade" }),
28
+ provider: text("provider").notNull(),
29
+ tokenEncrypted: text("token_encrypted").notNull(),
30
+ status: text("status").notNull().default("unknown"),
31
+ checkedAt: datetime("checked_at", {
32
+ mode: "string",
33
+ fsp: 3
34
+ }),
35
+ createdAt: datetime("created_at", {
36
+ mode: "string",
37
+ fsp: 3
38
+ }).notNull(),
39
+ updatedAt: datetime("updated_at", {
40
+ mode: "string",
41
+ fsp: 3
42
+ }).notNull()
43
+ }, (t) => [uniqueIndex("design_credentials_project_provider_idx").on(t.projectId, t.provider)]);
44
+ /** Narrow `design_nodes` table definition (design metadata + render cache). */
45
+ const designNodes = mysqlTable("design_nodes", {
46
+ id: text("id").primaryKey(),
47
+ projectId: text("project_id").notNull().references(() => projects.id, { onDelete: "cascade" }),
48
+ provider: text("provider").notNull(),
49
+ viewerId: text("viewer_id").notNull().default(""),
50
+ fileKey: text("file_key").notNull(),
51
+ nodeId: text("node_id").notNull().default(""),
52
+ name: text("name"),
53
+ version: text("version"),
54
+ lastModified: text("last_modified"),
55
+ state: text("state").notNull().default("ok"),
56
+ renderPath: text("render_path"),
57
+ renderVersion: text("render_version"),
58
+ fetchedAt: datetime("fetched_at", {
59
+ mode: "string",
60
+ fsp: 3
61
+ }).notNull(),
62
+ createdAt: datetime("created_at", {
63
+ mode: "string",
64
+ fsp: 3
65
+ }).notNull(),
66
+ updatedAt: datetime("updated_at", {
67
+ mode: "string",
68
+ fsp: 3
69
+ }).notNull()
70
+ }, (t) => [uniqueIndex("design_nodes_project_file_node_idx").on(t.projectId, t.provider, t.viewerId, t.fileKey, t.nodeId)]);
71
+ //#endregion
72
+ export { designCredentials, designLinks, designNodes };
73
+
74
+ //# sourceMappingURL=design.mjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"design.mjs","names":[],"sources":["../../src/schema/design.ts"],"sourcesContent":["import { index, mysqlTable, text, uniqueIndex } from \"drizzle-orm/mysql-core\";\nimport { datetime } from \"./datetime.ts\";\nimport { projects } from \"./project.ts\";\n\n/** Narrow `design_links` table definition. */\nexport const designLinks = mysqlTable(\n \"design_links\",\n {\n id: text(\"id\").primaryKey(),\n projectId: text(\"project_id\")\n .notNull()\n .references(() => projects.id, { onDelete: \"cascade\" }),\n importPath: text(\"import_path\"),\n label: text(\"label\"),\n url: text(\"url\").notNull(),\n createdAt: datetime(\"created_at\", { mode: \"string\", fsp: 3 }).notNull(),\n updatedAt: datetime(\"updated_at\", { mode: \"string\", fsp: 3 }).notNull(),\n },\n (t) => [\n index(\"design_links_project_id_idx\").on(t.projectId),\n // One mapping per story file; project-level links (null import_path) never collide.\n uniqueIndex(\"design_links_project_import_path_idx\").on(t.projectId, t.importPath),\n ],\n);\n\n/** Narrow `design_credentials` table definition: the project-wide design-provider token. */\nexport const designCredentials = mysqlTable(\n \"design_credentials\",\n {\n id: text(\"id\").primaryKey(),\n projectId: text(\"project_id\")\n .notNull()\n .references(() => projects.id, { onDelete: \"cascade\" }),\n provider: text(\"provider\").notNull(),\n tokenEncrypted: text(\"token_encrypted\").notNull(),\n status: text(\"status\").notNull().default(\"unknown\"),\n checkedAt: datetime(\"checked_at\", { mode: \"string\", fsp: 3 }),\n createdAt: datetime(\"created_at\", { mode: \"string\", fsp: 3 }).notNull(),\n updatedAt: datetime(\"updated_at\", { mode: \"string\", fsp: 3 }).notNull(),\n },\n (t) => [uniqueIndex(\"design_credentials_project_provider_idx\").on(t.projectId, t.provider)],\n);\n\n/** Narrow `design_nodes` table definition (design metadata + render cache). */\nexport const designNodes = mysqlTable(\n \"design_nodes\",\n {\n id: text(\"id\").primaryKey(),\n projectId: text(\"project_id\")\n .notNull()\n .references(() => projects.id, { onDelete: \"cascade\" }),\n provider: text(\"provider\").notNull(),\n viewerId: text(\"viewer_id\").notNull().default(\"\"),\n fileKey: text(\"file_key\").notNull(),\n nodeId: text(\"node_id\").notNull().default(\"\"),\n name: text(\"name\"),\n version: text(\"version\"),\n lastModified: text(\"last_modified\"),\n state: text(\"state\").notNull().default(\"ok\"),\n renderPath: text(\"render_path\"),\n renderVersion: text(\"render_version\"),\n fetchedAt: datetime(\"fetched_at\", { mode: \"string\", fsp: 3 }).notNull(),\n createdAt: datetime(\"created_at\", { mode: \"string\", fsp: 3 }).notNull(),\n updatedAt: datetime(\"updated_at\", { mode: \"string\", fsp: 3 }).notNull(),\n },\n (t) => [\n uniqueIndex(\"design_nodes_project_file_node_idx\").on(\n t.projectId,\n t.provider,\n t.viewerId,\n t.fileKey,\n t.nodeId,\n ),\n ],\n);\n\n/** A design link: a project-level file link (`importPath` null) or a component mapping override. */\nexport interface DesignLink {\n id: string;\n projectId: string;\n /** Story file the URL is mapped to; null for a project-level design file link. */\n importPath: string | null;\n /** Display label of a project-level link. */\n label: string | null;\n url: string;\n createdAt: string;\n updatedAt: string;\n}\n\n/** The project-wide token of a design provider (an admin pastes it; encrypted at rest). */\nexport interface DesignCredential {\n id: string;\n projectId: string;\n /** Provider `metadata.kind`, e.g. `figma`. */\n provider: string;\n tokenEncrypted: string;\n /** Last API outcome: `unknown` | `ok` | `unauthorized` | `forbidden`. */\n status: string;\n checkedAt: string | null;\n /** When the credential was set or replaced; drives the rotation clock. */\n createdAt: string;\n updatedAt: string;\n}\n\n/** Cached design file/node metadata, keyed by project, provider, viewer, file key and node id. */\nexport interface DesignNode {\n id: string;\n projectId: string;\n provider: string;\n /** Whose access fetched the entry: `\"\"` for the project credential, else a user id. */\n viewerId: string;\n fileKey: string;\n /** Provider node id; empty string for a whole-file link. */\n nodeId: string;\n name: string | null;\n version: string | null;\n lastModified: string | null;\n /** `ok` | `deleted` | `unauthorized` | `forbidden`. */\n state: string;\n /** Storage path of the cached PNG render (node links only). */\n renderPath: string | null;\n /** File `version` the cached render was taken at. */\n renderVersion: string | null;\n fetchedAt: string;\n createdAt: string;\n updatedAt: string;\n}\n"],"mappings":";;;;;;;;AAKA,MAAa,cAAc,WACzB,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,YAAY,KAAK,aAAa;CAC9B,OAAO,KAAK,OAAO;CACnB,KAAK,KAAK,KAAK,CAAC,CAAC,QAAQ;CACzB,WAAW,SAAS,cAAc;EAAE,MAAM;EAAU,KAAK;CAAE,CAAC,CAAC,CAAC,QAAQ;CACtE,WAAW,SAAS,cAAc;EAAE,MAAM;EAAU,KAAK;CAAE,CAAC,CAAC,CAAC,QAAQ;AACxE,IACC,MAAM,CACL,MAAM,6BAA6B,CAAC,CAAC,GAAG,EAAE,SAAS,GAEnD,YAAY,sCAAsC,CAAC,CAAC,GAAG,EAAE,WAAW,EAAE,UAAU,CAClF,CACF;;AAGA,MAAa,oBAAoB,WAC/B,sBACA;CACE,IAAI,KAAK,IAAI,CAAC,CAAC,WAAW;CAC1B,WAAW,KAAK,YAAY,CAAC,CAC1B,QAAQ,CAAC,CACT,iBAAiB,SAAS,IAAI,EAAE,UAAU,UAAU,CAAC;CACxD,UAAU,KAAK,UAAU,CAAC,CAAC,QAAQ;CACnC,gBAAgB,KAAK,iBAAiB,CAAC,CAAC,QAAQ;CAChD,QAAQ,KAAK,QAAQ,CAAC,CAAC,QAAQ,CAAC,CAAC,QAAQ,SAAS;CAClD,WAAW,SAAS,cAAc;EAAE,MAAM;EAAU,KAAK;CAAE,CAAC;CAC5D,WAAW,SAAS,cAAc;EAAE,MAAM;EAAU,KAAK;CAAE,CAAC,CAAC,CAAC,QAAQ;CACtE,WAAW,SAAS,cAAc;EAAE,MAAM;EAAU,KAAK;CAAE,CAAC,CAAC,CAAC,QAAQ;AACxE,IACC,MAAM,CAAC,YAAY,yCAAyC,CAAC,CAAC,GAAG,EAAE,WAAW,EAAE,QAAQ,CAAC,CAC5F;;AAGA,MAAa,cAAc,WACzB,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,UAAU,KAAK,UAAU,CAAC,CAAC,QAAQ;CACnC,UAAU,KAAK,WAAW,CAAC,CAAC,QAAQ,CAAC,CAAC,QAAQ,EAAE;CAChD,SAAS,KAAK,UAAU,CAAC,CAAC,QAAQ;CAClC,QAAQ,KAAK,SAAS,CAAC,CAAC,QAAQ,CAAC,CAAC,QAAQ,EAAE;CAC5C,MAAM,KAAK,MAAM;CACjB,SAAS,KAAK,SAAS;CACvB,cAAc,KAAK,eAAe;CAClC,OAAO,KAAK,OAAO,CAAC,CAAC,QAAQ,CAAC,CAAC,QAAQ,IAAI;CAC3C,YAAY,KAAK,aAAa;CAC9B,eAAe,KAAK,gBAAgB;CACpC,WAAW,SAAS,cAAc;EAAE,MAAM;EAAU,KAAK;CAAE,CAAC,CAAC,CAAC,QAAQ;CACtE,WAAW,SAAS,cAAc;EAAE,MAAM;EAAU,KAAK;CAAE,CAAC,CAAC,CAAC,QAAQ;CACtE,WAAW,SAAS,cAAc;EAAE,MAAM;EAAU,KAAK;CAAE,CAAC,CAAC,CAAC,QAAQ;AACxE,IACC,MAAM,CACL,YAAY,oCAAoC,CAAC,CAAC,GAChD,EAAE,WACF,EAAE,UACF,EAAE,UACF,EAAE,SACF,EAAE,MACJ,CACF,CACF"}