@jant/core 0.2.2 → 0.2.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 (92) hide show
  1. package/dist/client.d.ts +4 -1
  2. package/dist/client.d.ts.map +1 -1
  3. package/dist/client.js +6 -2
  4. package/dist/lib/assets.d.ts +4 -3
  5. package/dist/lib/assets.d.ts.map +1 -1
  6. package/dist/lib/assets.js +1 -3
  7. package/dist/theme/layouts/BaseLayout.js +0 -5
  8. package/package.json +4 -5
  9. package/src/app.tsx +377 -0
  10. package/src/auth.ts +38 -0
  11. package/src/client.ts +7 -2
  12. package/src/db/index.ts +14 -0
  13. package/src/db/migrations/0000_solid_moon_knight.sql +118 -0
  14. package/src/db/migrations/0001_add_search_fts.sql +40 -0
  15. package/src/db/migrations/0002_collection_path.sql +2 -0
  16. package/src/db/migrations/0003_collection_path_nullable.sql +21 -0
  17. package/src/db/migrations/0004_media_uuid.sql +35 -0
  18. package/src/db/migrations/meta/0000_snapshot.json +784 -0
  19. package/src/db/migrations/meta/_journal.json +41 -0
  20. package/src/db/schema.ts +159 -0
  21. package/src/i18n/EXAMPLES.md +235 -0
  22. package/src/i18n/README.md +296 -0
  23. package/src/i18n/Trans.tsx +31 -0
  24. package/src/i18n/context.tsx +101 -0
  25. package/src/i18n/detect.ts +100 -0
  26. package/src/i18n/i18n.ts +62 -0
  27. package/src/i18n/index.ts +65 -0
  28. package/src/i18n/locales/en.po +875 -0
  29. package/src/i18n/locales/en.ts +1 -0
  30. package/src/i18n/locales/zh-Hans.po +875 -0
  31. package/src/i18n/locales/zh-Hans.ts +1 -0
  32. package/src/i18n/locales/zh-Hant.po +875 -0
  33. package/src/i18n/locales/zh-Hant.ts +1 -0
  34. package/src/i18n/locales.ts +14 -0
  35. package/src/i18n/middleware.ts +59 -0
  36. package/src/index.ts +42 -0
  37. package/src/lib/assets.ts +49 -0
  38. package/src/lib/constants.ts +67 -0
  39. package/src/lib/image.ts +107 -0
  40. package/src/lib/index.ts +9 -0
  41. package/src/lib/markdown.ts +93 -0
  42. package/src/lib/schemas.ts +92 -0
  43. package/src/lib/sqid.ts +79 -0
  44. package/src/lib/sse.ts +152 -0
  45. package/src/lib/time.ts +117 -0
  46. package/src/lib/url.ts +107 -0
  47. package/src/middleware/auth.ts +59 -0
  48. package/src/preset.css +2 -11
  49. package/src/routes/api/posts.ts +127 -0
  50. package/src/routes/api/search.ts +53 -0
  51. package/src/routes/api/upload.ts +240 -0
  52. package/src/routes/dash/collections.tsx +341 -0
  53. package/src/routes/dash/index.tsx +89 -0
  54. package/src/routes/dash/media.tsx +551 -0
  55. package/src/routes/dash/pages.tsx +245 -0
  56. package/src/routes/dash/posts.tsx +202 -0
  57. package/src/routes/dash/redirects.tsx +155 -0
  58. package/src/routes/dash/settings.tsx +93 -0
  59. package/src/routes/feed/rss.ts +119 -0
  60. package/src/routes/feed/sitemap.ts +75 -0
  61. package/src/routes/pages/archive.tsx +223 -0
  62. package/src/routes/pages/collection.tsx +79 -0
  63. package/src/routes/pages/home.tsx +93 -0
  64. package/src/routes/pages/page.tsx +64 -0
  65. package/src/routes/pages/post.tsx +81 -0
  66. package/src/routes/pages/search.tsx +162 -0
  67. package/src/services/collection.ts +180 -0
  68. package/src/services/index.ts +40 -0
  69. package/src/services/media.ts +97 -0
  70. package/src/services/post.ts +279 -0
  71. package/src/services/redirect.ts +74 -0
  72. package/src/services/search.ts +117 -0
  73. package/src/services/settings.ts +76 -0
  74. package/src/theme/components/ActionButtons.tsx +98 -0
  75. package/src/theme/components/CrudPageHeader.tsx +48 -0
  76. package/src/theme/components/DangerZone.tsx +77 -0
  77. package/src/theme/components/EmptyState.tsx +56 -0
  78. package/src/theme/components/ListItemRow.tsx +24 -0
  79. package/src/theme/components/PageForm.tsx +114 -0
  80. package/src/theme/components/Pagination.tsx +196 -0
  81. package/src/theme/components/PostForm.tsx +122 -0
  82. package/src/theme/components/PostList.tsx +68 -0
  83. package/src/theme/components/ThreadView.tsx +118 -0
  84. package/src/theme/components/TypeBadge.tsx +28 -0
  85. package/src/theme/components/VisibilityBadge.tsx +33 -0
  86. package/src/theme/components/index.ts +12 -0
  87. package/src/theme/index.ts +24 -0
  88. package/src/theme/layouts/BaseLayout.tsx +50 -0
  89. package/src/theme/layouts/DashLayout.tsx +108 -0
  90. package/src/theme/layouts/index.ts +2 -0
  91. package/src/types.ts +222 -0
  92. package/static/assets/datastar.min.js +0 -7
@@ -0,0 +1,784 @@
1
+ {
2
+ "version": "6",
3
+ "dialect": "sqlite",
4
+ "id": "d32a99d8-a262-45b7-99e4-bc81bbb6f305",
5
+ "prevId": "00000000-0000-0000-0000-000000000000",
6
+ "tables": {
7
+ "account": {
8
+ "name": "account",
9
+ "columns": {
10
+ "id": {
11
+ "name": "id",
12
+ "type": "text",
13
+ "primaryKey": true,
14
+ "notNull": true,
15
+ "autoincrement": false
16
+ },
17
+ "account_id": {
18
+ "name": "account_id",
19
+ "type": "text",
20
+ "primaryKey": false,
21
+ "notNull": true,
22
+ "autoincrement": false
23
+ },
24
+ "provider_id": {
25
+ "name": "provider_id",
26
+ "type": "text",
27
+ "primaryKey": false,
28
+ "notNull": true,
29
+ "autoincrement": false
30
+ },
31
+ "user_id": {
32
+ "name": "user_id",
33
+ "type": "text",
34
+ "primaryKey": false,
35
+ "notNull": true,
36
+ "autoincrement": false
37
+ },
38
+ "access_token": {
39
+ "name": "access_token",
40
+ "type": "text",
41
+ "primaryKey": false,
42
+ "notNull": false,
43
+ "autoincrement": false
44
+ },
45
+ "refresh_token": {
46
+ "name": "refresh_token",
47
+ "type": "text",
48
+ "primaryKey": false,
49
+ "notNull": false,
50
+ "autoincrement": false
51
+ },
52
+ "id_token": {
53
+ "name": "id_token",
54
+ "type": "text",
55
+ "primaryKey": false,
56
+ "notNull": false,
57
+ "autoincrement": false
58
+ },
59
+ "access_token_expires_at": {
60
+ "name": "access_token_expires_at",
61
+ "type": "integer",
62
+ "primaryKey": false,
63
+ "notNull": false,
64
+ "autoincrement": false
65
+ },
66
+ "refresh_token_expires_at": {
67
+ "name": "refresh_token_expires_at",
68
+ "type": "integer",
69
+ "primaryKey": false,
70
+ "notNull": false,
71
+ "autoincrement": false
72
+ },
73
+ "scope": {
74
+ "name": "scope",
75
+ "type": "text",
76
+ "primaryKey": false,
77
+ "notNull": false,
78
+ "autoincrement": false
79
+ },
80
+ "password": {
81
+ "name": "password",
82
+ "type": "text",
83
+ "primaryKey": false,
84
+ "notNull": false,
85
+ "autoincrement": false
86
+ },
87
+ "created_at": {
88
+ "name": "created_at",
89
+ "type": "integer",
90
+ "primaryKey": false,
91
+ "notNull": true,
92
+ "autoincrement": false
93
+ },
94
+ "updated_at": {
95
+ "name": "updated_at",
96
+ "type": "integer",
97
+ "primaryKey": false,
98
+ "notNull": true,
99
+ "autoincrement": false
100
+ }
101
+ },
102
+ "indexes": {},
103
+ "foreignKeys": {
104
+ "account_user_id_user_id_fk": {
105
+ "name": "account_user_id_user_id_fk",
106
+ "tableFrom": "account",
107
+ "tableTo": "user",
108
+ "columnsFrom": [
109
+ "user_id"
110
+ ],
111
+ "columnsTo": [
112
+ "id"
113
+ ],
114
+ "onDelete": "no action",
115
+ "onUpdate": "no action"
116
+ }
117
+ },
118
+ "compositePrimaryKeys": {},
119
+ "uniqueConstraints": {},
120
+ "checkConstraints": {}
121
+ },
122
+ "collections": {
123
+ "name": "collections",
124
+ "columns": {
125
+ "id": {
126
+ "name": "id",
127
+ "type": "integer",
128
+ "primaryKey": true,
129
+ "notNull": true,
130
+ "autoincrement": true
131
+ },
132
+ "slug": {
133
+ "name": "slug",
134
+ "type": "text",
135
+ "primaryKey": false,
136
+ "notNull": true,
137
+ "autoincrement": false
138
+ },
139
+ "title": {
140
+ "name": "title",
141
+ "type": "text",
142
+ "primaryKey": false,
143
+ "notNull": true,
144
+ "autoincrement": false
145
+ },
146
+ "description": {
147
+ "name": "description",
148
+ "type": "text",
149
+ "primaryKey": false,
150
+ "notNull": false,
151
+ "autoincrement": false
152
+ },
153
+ "created_at": {
154
+ "name": "created_at",
155
+ "type": "integer",
156
+ "primaryKey": false,
157
+ "notNull": true,
158
+ "autoincrement": false
159
+ },
160
+ "updated_at": {
161
+ "name": "updated_at",
162
+ "type": "integer",
163
+ "primaryKey": false,
164
+ "notNull": true,
165
+ "autoincrement": false
166
+ }
167
+ },
168
+ "indexes": {
169
+ "collections_slug_unique": {
170
+ "name": "collections_slug_unique",
171
+ "columns": [
172
+ "slug"
173
+ ],
174
+ "isUnique": true
175
+ }
176
+ },
177
+ "foreignKeys": {},
178
+ "compositePrimaryKeys": {},
179
+ "uniqueConstraints": {},
180
+ "checkConstraints": {}
181
+ },
182
+ "media": {
183
+ "name": "media",
184
+ "columns": {
185
+ "id": {
186
+ "name": "id",
187
+ "type": "integer",
188
+ "primaryKey": true,
189
+ "notNull": true,
190
+ "autoincrement": true
191
+ },
192
+ "post_id": {
193
+ "name": "post_id",
194
+ "type": "integer",
195
+ "primaryKey": false,
196
+ "notNull": false,
197
+ "autoincrement": false
198
+ },
199
+ "filename": {
200
+ "name": "filename",
201
+ "type": "text",
202
+ "primaryKey": false,
203
+ "notNull": true,
204
+ "autoincrement": false
205
+ },
206
+ "original_name": {
207
+ "name": "original_name",
208
+ "type": "text",
209
+ "primaryKey": false,
210
+ "notNull": true,
211
+ "autoincrement": false
212
+ },
213
+ "mime_type": {
214
+ "name": "mime_type",
215
+ "type": "text",
216
+ "primaryKey": false,
217
+ "notNull": true,
218
+ "autoincrement": false
219
+ },
220
+ "size": {
221
+ "name": "size",
222
+ "type": "integer",
223
+ "primaryKey": false,
224
+ "notNull": true,
225
+ "autoincrement": false
226
+ },
227
+ "r2_key": {
228
+ "name": "r2_key",
229
+ "type": "text",
230
+ "primaryKey": false,
231
+ "notNull": true,
232
+ "autoincrement": false
233
+ },
234
+ "width": {
235
+ "name": "width",
236
+ "type": "integer",
237
+ "primaryKey": false,
238
+ "notNull": false,
239
+ "autoincrement": false
240
+ },
241
+ "height": {
242
+ "name": "height",
243
+ "type": "integer",
244
+ "primaryKey": false,
245
+ "notNull": false,
246
+ "autoincrement": false
247
+ },
248
+ "alt": {
249
+ "name": "alt",
250
+ "type": "text",
251
+ "primaryKey": false,
252
+ "notNull": false,
253
+ "autoincrement": false
254
+ },
255
+ "created_at": {
256
+ "name": "created_at",
257
+ "type": "integer",
258
+ "primaryKey": false,
259
+ "notNull": true,
260
+ "autoincrement": false
261
+ }
262
+ },
263
+ "indexes": {},
264
+ "foreignKeys": {
265
+ "media_post_id_posts_id_fk": {
266
+ "name": "media_post_id_posts_id_fk",
267
+ "tableFrom": "media",
268
+ "tableTo": "posts",
269
+ "columnsFrom": [
270
+ "post_id"
271
+ ],
272
+ "columnsTo": [
273
+ "id"
274
+ ],
275
+ "onDelete": "no action",
276
+ "onUpdate": "no action"
277
+ }
278
+ },
279
+ "compositePrimaryKeys": {},
280
+ "uniqueConstraints": {},
281
+ "checkConstraints": {}
282
+ },
283
+ "post_collections": {
284
+ "name": "post_collections",
285
+ "columns": {
286
+ "post_id": {
287
+ "name": "post_id",
288
+ "type": "integer",
289
+ "primaryKey": false,
290
+ "notNull": true,
291
+ "autoincrement": false
292
+ },
293
+ "collection_id": {
294
+ "name": "collection_id",
295
+ "type": "integer",
296
+ "primaryKey": false,
297
+ "notNull": true,
298
+ "autoincrement": false
299
+ },
300
+ "added_at": {
301
+ "name": "added_at",
302
+ "type": "integer",
303
+ "primaryKey": false,
304
+ "notNull": true,
305
+ "autoincrement": false
306
+ }
307
+ },
308
+ "indexes": {},
309
+ "foreignKeys": {
310
+ "post_collections_post_id_posts_id_fk": {
311
+ "name": "post_collections_post_id_posts_id_fk",
312
+ "tableFrom": "post_collections",
313
+ "tableTo": "posts",
314
+ "columnsFrom": [
315
+ "post_id"
316
+ ],
317
+ "columnsTo": [
318
+ "id"
319
+ ],
320
+ "onDelete": "no action",
321
+ "onUpdate": "no action"
322
+ },
323
+ "post_collections_collection_id_collections_id_fk": {
324
+ "name": "post_collections_collection_id_collections_id_fk",
325
+ "tableFrom": "post_collections",
326
+ "tableTo": "collections",
327
+ "columnsFrom": [
328
+ "collection_id"
329
+ ],
330
+ "columnsTo": [
331
+ "id"
332
+ ],
333
+ "onDelete": "no action",
334
+ "onUpdate": "no action"
335
+ }
336
+ },
337
+ "compositePrimaryKeys": {
338
+ "post_collections_post_id_collection_id_pk": {
339
+ "columns": [
340
+ "post_id",
341
+ "collection_id"
342
+ ],
343
+ "name": "post_collections_post_id_collection_id_pk"
344
+ }
345
+ },
346
+ "uniqueConstraints": {},
347
+ "checkConstraints": {}
348
+ },
349
+ "posts": {
350
+ "name": "posts",
351
+ "columns": {
352
+ "id": {
353
+ "name": "id",
354
+ "type": "integer",
355
+ "primaryKey": true,
356
+ "notNull": true,
357
+ "autoincrement": true
358
+ },
359
+ "type": {
360
+ "name": "type",
361
+ "type": "text",
362
+ "primaryKey": false,
363
+ "notNull": true,
364
+ "autoincrement": false
365
+ },
366
+ "visibility": {
367
+ "name": "visibility",
368
+ "type": "text",
369
+ "primaryKey": false,
370
+ "notNull": true,
371
+ "autoincrement": false,
372
+ "default": "'quiet'"
373
+ },
374
+ "title": {
375
+ "name": "title",
376
+ "type": "text",
377
+ "primaryKey": false,
378
+ "notNull": false,
379
+ "autoincrement": false
380
+ },
381
+ "path": {
382
+ "name": "path",
383
+ "type": "text",
384
+ "primaryKey": false,
385
+ "notNull": false,
386
+ "autoincrement": false
387
+ },
388
+ "content": {
389
+ "name": "content",
390
+ "type": "text",
391
+ "primaryKey": false,
392
+ "notNull": false,
393
+ "autoincrement": false
394
+ },
395
+ "content_html": {
396
+ "name": "content_html",
397
+ "type": "text",
398
+ "primaryKey": false,
399
+ "notNull": false,
400
+ "autoincrement": false
401
+ },
402
+ "source_url": {
403
+ "name": "source_url",
404
+ "type": "text",
405
+ "primaryKey": false,
406
+ "notNull": false,
407
+ "autoincrement": false
408
+ },
409
+ "source_name": {
410
+ "name": "source_name",
411
+ "type": "text",
412
+ "primaryKey": false,
413
+ "notNull": false,
414
+ "autoincrement": false
415
+ },
416
+ "source_domain": {
417
+ "name": "source_domain",
418
+ "type": "text",
419
+ "primaryKey": false,
420
+ "notNull": false,
421
+ "autoincrement": false
422
+ },
423
+ "reply_to_id": {
424
+ "name": "reply_to_id",
425
+ "type": "integer",
426
+ "primaryKey": false,
427
+ "notNull": false,
428
+ "autoincrement": false
429
+ },
430
+ "thread_id": {
431
+ "name": "thread_id",
432
+ "type": "integer",
433
+ "primaryKey": false,
434
+ "notNull": false,
435
+ "autoincrement": false
436
+ },
437
+ "deleted_at": {
438
+ "name": "deleted_at",
439
+ "type": "integer",
440
+ "primaryKey": false,
441
+ "notNull": false,
442
+ "autoincrement": false
443
+ },
444
+ "published_at": {
445
+ "name": "published_at",
446
+ "type": "integer",
447
+ "primaryKey": false,
448
+ "notNull": true,
449
+ "autoincrement": false
450
+ },
451
+ "created_at": {
452
+ "name": "created_at",
453
+ "type": "integer",
454
+ "primaryKey": false,
455
+ "notNull": true,
456
+ "autoincrement": false
457
+ },
458
+ "updated_at": {
459
+ "name": "updated_at",
460
+ "type": "integer",
461
+ "primaryKey": false,
462
+ "notNull": true,
463
+ "autoincrement": false
464
+ }
465
+ },
466
+ "indexes": {},
467
+ "foreignKeys": {},
468
+ "compositePrimaryKeys": {},
469
+ "uniqueConstraints": {},
470
+ "checkConstraints": {}
471
+ },
472
+ "redirects": {
473
+ "name": "redirects",
474
+ "columns": {
475
+ "id": {
476
+ "name": "id",
477
+ "type": "integer",
478
+ "primaryKey": true,
479
+ "notNull": true,
480
+ "autoincrement": true
481
+ },
482
+ "from_path": {
483
+ "name": "from_path",
484
+ "type": "text",
485
+ "primaryKey": false,
486
+ "notNull": true,
487
+ "autoincrement": false
488
+ },
489
+ "to_path": {
490
+ "name": "to_path",
491
+ "type": "text",
492
+ "primaryKey": false,
493
+ "notNull": true,
494
+ "autoincrement": false
495
+ },
496
+ "type": {
497
+ "name": "type",
498
+ "type": "integer",
499
+ "primaryKey": false,
500
+ "notNull": true,
501
+ "autoincrement": false,
502
+ "default": 301
503
+ },
504
+ "created_at": {
505
+ "name": "created_at",
506
+ "type": "integer",
507
+ "primaryKey": false,
508
+ "notNull": true,
509
+ "autoincrement": false
510
+ }
511
+ },
512
+ "indexes": {
513
+ "redirects_from_path_unique": {
514
+ "name": "redirects_from_path_unique",
515
+ "columns": [
516
+ "from_path"
517
+ ],
518
+ "isUnique": true
519
+ }
520
+ },
521
+ "foreignKeys": {},
522
+ "compositePrimaryKeys": {},
523
+ "uniqueConstraints": {},
524
+ "checkConstraints": {}
525
+ },
526
+ "session": {
527
+ "name": "session",
528
+ "columns": {
529
+ "id": {
530
+ "name": "id",
531
+ "type": "text",
532
+ "primaryKey": true,
533
+ "notNull": true,
534
+ "autoincrement": false
535
+ },
536
+ "expires_at": {
537
+ "name": "expires_at",
538
+ "type": "integer",
539
+ "primaryKey": false,
540
+ "notNull": true,
541
+ "autoincrement": false
542
+ },
543
+ "token": {
544
+ "name": "token",
545
+ "type": "text",
546
+ "primaryKey": false,
547
+ "notNull": true,
548
+ "autoincrement": false
549
+ },
550
+ "created_at": {
551
+ "name": "created_at",
552
+ "type": "integer",
553
+ "primaryKey": false,
554
+ "notNull": true,
555
+ "autoincrement": false
556
+ },
557
+ "updated_at": {
558
+ "name": "updated_at",
559
+ "type": "integer",
560
+ "primaryKey": false,
561
+ "notNull": true,
562
+ "autoincrement": false
563
+ },
564
+ "ip_address": {
565
+ "name": "ip_address",
566
+ "type": "text",
567
+ "primaryKey": false,
568
+ "notNull": false,
569
+ "autoincrement": false
570
+ },
571
+ "user_agent": {
572
+ "name": "user_agent",
573
+ "type": "text",
574
+ "primaryKey": false,
575
+ "notNull": false,
576
+ "autoincrement": false
577
+ },
578
+ "user_id": {
579
+ "name": "user_id",
580
+ "type": "text",
581
+ "primaryKey": false,
582
+ "notNull": true,
583
+ "autoincrement": false
584
+ }
585
+ },
586
+ "indexes": {
587
+ "session_token_unique": {
588
+ "name": "session_token_unique",
589
+ "columns": [
590
+ "token"
591
+ ],
592
+ "isUnique": true
593
+ }
594
+ },
595
+ "foreignKeys": {
596
+ "session_user_id_user_id_fk": {
597
+ "name": "session_user_id_user_id_fk",
598
+ "tableFrom": "session",
599
+ "tableTo": "user",
600
+ "columnsFrom": [
601
+ "user_id"
602
+ ],
603
+ "columnsTo": [
604
+ "id"
605
+ ],
606
+ "onDelete": "no action",
607
+ "onUpdate": "no action"
608
+ }
609
+ },
610
+ "compositePrimaryKeys": {},
611
+ "uniqueConstraints": {},
612
+ "checkConstraints": {}
613
+ },
614
+ "settings": {
615
+ "name": "settings",
616
+ "columns": {
617
+ "key": {
618
+ "name": "key",
619
+ "type": "text",
620
+ "primaryKey": true,
621
+ "notNull": true,
622
+ "autoincrement": false
623
+ },
624
+ "value": {
625
+ "name": "value",
626
+ "type": "text",
627
+ "primaryKey": false,
628
+ "notNull": true,
629
+ "autoincrement": false
630
+ },
631
+ "updated_at": {
632
+ "name": "updated_at",
633
+ "type": "integer",
634
+ "primaryKey": false,
635
+ "notNull": true,
636
+ "autoincrement": false
637
+ }
638
+ },
639
+ "indexes": {},
640
+ "foreignKeys": {},
641
+ "compositePrimaryKeys": {},
642
+ "uniqueConstraints": {},
643
+ "checkConstraints": {}
644
+ },
645
+ "user": {
646
+ "name": "user",
647
+ "columns": {
648
+ "id": {
649
+ "name": "id",
650
+ "type": "text",
651
+ "primaryKey": true,
652
+ "notNull": true,
653
+ "autoincrement": false
654
+ },
655
+ "name": {
656
+ "name": "name",
657
+ "type": "text",
658
+ "primaryKey": false,
659
+ "notNull": true,
660
+ "autoincrement": false
661
+ },
662
+ "email": {
663
+ "name": "email",
664
+ "type": "text",
665
+ "primaryKey": false,
666
+ "notNull": true,
667
+ "autoincrement": false
668
+ },
669
+ "email_verified": {
670
+ "name": "email_verified",
671
+ "type": "integer",
672
+ "primaryKey": false,
673
+ "notNull": true,
674
+ "autoincrement": false,
675
+ "default": false
676
+ },
677
+ "image": {
678
+ "name": "image",
679
+ "type": "text",
680
+ "primaryKey": false,
681
+ "notNull": false,
682
+ "autoincrement": false
683
+ },
684
+ "role": {
685
+ "name": "role",
686
+ "type": "text",
687
+ "primaryKey": false,
688
+ "notNull": false,
689
+ "autoincrement": false,
690
+ "default": "'admin'"
691
+ },
692
+ "created_at": {
693
+ "name": "created_at",
694
+ "type": "integer",
695
+ "primaryKey": false,
696
+ "notNull": true,
697
+ "autoincrement": false
698
+ },
699
+ "updated_at": {
700
+ "name": "updated_at",
701
+ "type": "integer",
702
+ "primaryKey": false,
703
+ "notNull": true,
704
+ "autoincrement": false
705
+ }
706
+ },
707
+ "indexes": {
708
+ "user_email_unique": {
709
+ "name": "user_email_unique",
710
+ "columns": [
711
+ "email"
712
+ ],
713
+ "isUnique": true
714
+ }
715
+ },
716
+ "foreignKeys": {},
717
+ "compositePrimaryKeys": {},
718
+ "uniqueConstraints": {},
719
+ "checkConstraints": {}
720
+ },
721
+ "verification": {
722
+ "name": "verification",
723
+ "columns": {
724
+ "id": {
725
+ "name": "id",
726
+ "type": "text",
727
+ "primaryKey": true,
728
+ "notNull": true,
729
+ "autoincrement": false
730
+ },
731
+ "identifier": {
732
+ "name": "identifier",
733
+ "type": "text",
734
+ "primaryKey": false,
735
+ "notNull": true,
736
+ "autoincrement": false
737
+ },
738
+ "value": {
739
+ "name": "value",
740
+ "type": "text",
741
+ "primaryKey": false,
742
+ "notNull": true,
743
+ "autoincrement": false
744
+ },
745
+ "expires_at": {
746
+ "name": "expires_at",
747
+ "type": "integer",
748
+ "primaryKey": false,
749
+ "notNull": true,
750
+ "autoincrement": false
751
+ },
752
+ "created_at": {
753
+ "name": "created_at",
754
+ "type": "integer",
755
+ "primaryKey": false,
756
+ "notNull": false,
757
+ "autoincrement": false
758
+ },
759
+ "updated_at": {
760
+ "name": "updated_at",
761
+ "type": "integer",
762
+ "primaryKey": false,
763
+ "notNull": false,
764
+ "autoincrement": false
765
+ }
766
+ },
767
+ "indexes": {},
768
+ "foreignKeys": {},
769
+ "compositePrimaryKeys": {},
770
+ "uniqueConstraints": {},
771
+ "checkConstraints": {}
772
+ }
773
+ },
774
+ "views": {},
775
+ "enums": {},
776
+ "_meta": {
777
+ "schemas": {},
778
+ "tables": {},
779
+ "columns": {}
780
+ },
781
+ "internal": {
782
+ "indexes": {}
783
+ }
784
+ }