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