@voidbase-cloud/voidbase 0.1.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 (134) hide show
  1. package/.env.example +9 -0
  2. package/CHANGELOG.md +19 -0
  3. package/COMPAT.md +43 -0
  4. package/LICENSE +21 -0
  5. package/NOTICE +8 -0
  6. package/README.md +124 -0
  7. package/bin/voidbase.ts +158 -0
  8. package/crons/every-minute.ts +13 -0
  9. package/db/migrations/20260905175935_large_swarm.sql +87 -0
  10. package/db/migrations/20260905185720_wild_sunspot.sql +16 -0
  11. package/db/migrations/20260905190723_solid_toro.sql +1 -0
  12. package/db/migrations/20260905213340_remarkable_union_jack.sql +11 -0
  13. package/db/migrations/meta/20260905175935_snapshot.json +599 -0
  14. package/db/migrations/meta/20260905185720_snapshot.json +703 -0
  15. package/db/migrations/meta/20260905190723_snapshot.json +710 -0
  16. package/db/migrations/meta/20260905213340_snapshot.json +781 -0
  17. package/db/migrations/meta/_journal.json +34 -0
  18. package/db/schema.ts +130 -0
  19. package/docs/deploy.md +153 -0
  20. package/docs/differences.md +88 -0
  21. package/docs/hooks.md +84 -0
  22. package/docs/migrating.md +29 -0
  23. package/docs/perf.md +53 -0
  24. package/docs/platform.md +208 -0
  25. package/docs/releasing.md +38 -0
  26. package/env.ts +23 -0
  27. package/hooks-plugin.ts +237 -0
  28. package/package.json +134 -0
  29. package/queues/jobs.ts +13 -0
  30. package/routes/api/[...path].ts +19 -0
  31. package/scripts/bench-realtime.ts +46 -0
  32. package/scripts/bench.ts +39 -0
  33. package/scripts/ci-suites.sh +27 -0
  34. package/scripts/dev.sh +29 -0
  35. package/scripts/export.ts +70 -0
  36. package/scripts/seed-app-user.sh +14 -0
  37. package/scripts/seed-d1.ts +17 -0
  38. package/scripts/seed-reference.sh +29 -0
  39. package/scripts/starter.sh +22 -0
  40. package/scripts/sync-app.ts +22 -0
  41. package/scripts/sync-panel.ts +66 -0
  42. package/src/cloud/rest.ts +297 -0
  43. package/src/node/assets.ts +22 -0
  44. package/src/node/bundle.ts +88 -0
  45. package/src/node/cloud-init.ts +51 -0
  46. package/src/node/d1.ts +44 -0
  47. package/src/node/deploy-cf.ts +179 -0
  48. package/src/node/index.ts +5 -0
  49. package/src/node/panel.ts +21 -0
  50. package/src/node/serve.ts +125 -0
  51. package/src/node/storage.ts +51 -0
  52. package/src/platform/node/env.ts +4 -0
  53. package/src/platform/node/hooks.ts +19 -0
  54. package/src/platform/node/log.ts +7 -0
  55. package/src/platform/node/migrations.ts +5 -0
  56. package/src/platform/node/photon.ts +1 -0
  57. package/src/platform/node/sockets.ts +22 -0
  58. package/src/platform/node/sse.ts +23 -0
  59. package/src/platform/workers/env.ts +3 -0
  60. package/src/platform/workers/hooks.ts +2 -0
  61. package/src/platform/workers/log.ts +1 -0
  62. package/src/platform/workers/migrations.ts +1 -0
  63. package/src/platform/workers/photon.ts +1 -0
  64. package/src/platform/workers/sockets.ts +3 -0
  65. package/src/platform/workers/sse.ts +1 -0
  66. package/src/server/api.ts +27 -0
  67. package/src/server/app.ts +582 -0
  68. package/src/server/auth-extra.ts +113 -0
  69. package/src/server/auth-flows.ts +186 -0
  70. package/src/server/auth-response.ts +111 -0
  71. package/src/server/auth.ts +187 -0
  72. package/src/server/backups.ts +234 -0
  73. package/src/server/batch.ts +123 -0
  74. package/src/server/bootstrap.ts +71 -0
  75. package/src/server/collections/auth-option-shape.json +71 -0
  76. package/src/server/collections/ddl.ts +127 -0
  77. package/src/server/collections/fields.ts +120 -0
  78. package/src/server/collections/model.ts +185 -0
  79. package/src/server/collections/oauth2-providers.json +1 -0
  80. package/src/server/collections/scaffolds.json +210 -0
  81. package/src/server/collections/service.ts +392 -0
  82. package/src/server/collections/system.json +605 -0
  83. package/src/server/collections/system.ts +19 -0
  84. package/src/server/collections/validate.ts +239 -0
  85. package/src/server/crc32.ts +13 -0
  86. package/src/server/crons.ts +100 -0
  87. package/src/server/crypto.ts +26 -0
  88. package/src/server/db.ts +37 -0
  89. package/src/server/errors.ts +53 -0
  90. package/src/server/files-api.ts +52 -0
  91. package/src/server/filter/compile.ts +420 -0
  92. package/src/server/filter/lexer.ts +107 -0
  93. package/src/server/filter/parser.ts +49 -0
  94. package/src/server/hardening.ts +136 -0
  95. package/src/server/hooks/index.ts +147 -0
  96. package/src/server/hooks/migrations.ts +58 -0
  97. package/src/server/hooks/node-async-hooks.d.ts +7 -0
  98. package/src/server/hooks/record.ts +152 -0
  99. package/src/server/hooks/runtime.ts +344 -0
  100. package/src/server/hooks/virtual-migrations.d.ts +4 -0
  101. package/src/server/hooks/virtual.d.ts +7 -0
  102. package/src/server/hub.ts +91 -0
  103. package/src/server/ids.ts +22 -0
  104. package/src/server/jobs.ts +84 -0
  105. package/src/server/jwt.ts +61 -0
  106. package/src/server/logs.ts +144 -0
  107. package/src/server/mail/index.ts +99 -0
  108. package/src/server/mail/message.ts +43 -0
  109. package/src/server/mail/smtp.ts +82 -0
  110. package/src/server/mail/templates.ts +168 -0
  111. package/src/server/oauth2/index.ts +198 -0
  112. package/src/server/oauth2/providers.ts +153 -0
  113. package/src/server/password.ts +17 -0
  114. package/src/server/realtime/hub-client.ts +50 -0
  115. package/src/server/realtime/index.ts +239 -0
  116. package/src/server/records/expand.ts +129 -0
  117. package/src/server/records/files.ts +69 -0
  118. package/src/server/records/json.ts +23 -0
  119. package/src/server/records/picker.ts +80 -0
  120. package/src/server/records/service.ts +598 -0
  121. package/src/server/records/thumbs.ts +148 -0
  122. package/src/server/records/values.ts +295 -0
  123. package/src/server/settings-api.ts +104 -0
  124. package/src/server/settings.ts +215 -0
  125. package/src/server/sql.ts +61 -0
  126. package/src/server/static.ts +17 -0
  127. package/src/server/storage/s3.ts +118 -0
  128. package/src/server/types.ts +25 -0
  129. package/src/server/webauthn.ts +168 -0
  130. package/tsconfig.json +36 -0
  131. package/tsconfig.node.json +27 -0
  132. package/types/pb_data.d.ts +24438 -0
  133. package/vite.config.ts +10 -0
  134. package/void.json +12 -0
@@ -0,0 +1,710 @@
1
+ {
2
+ "version": "6",
3
+ "dialect": "sqlite",
4
+ "id": "7f5aa54e-62b0-4859-8bc0-57ed40a96976",
5
+ "prevId": "821928c4-d9a0-4773-b655-b196b5625965",
6
+ "tables": {
7
+ "_authOrigins": {
8
+ "name": "_authOrigins",
9
+ "columns": {
10
+ "id": {
11
+ "name": "id",
12
+ "type": "text",
13
+ "primaryKey": true,
14
+ "notNull": true,
15
+ "autoincrement": false,
16
+ "default": "('r'||lower(hex(randomblob(7))))"
17
+ },
18
+ "collectionRef": {
19
+ "name": "collectionRef",
20
+ "type": "text",
21
+ "primaryKey": false,
22
+ "notNull": true,
23
+ "autoincrement": false,
24
+ "default": "''"
25
+ },
26
+ "recordRef": {
27
+ "name": "recordRef",
28
+ "type": "text",
29
+ "primaryKey": false,
30
+ "notNull": true,
31
+ "autoincrement": false,
32
+ "default": "''"
33
+ },
34
+ "created": {
35
+ "name": "created",
36
+ "type": "text",
37
+ "primaryKey": false,
38
+ "notNull": true,
39
+ "autoincrement": false,
40
+ "default": "''"
41
+ },
42
+ "updated": {
43
+ "name": "updated",
44
+ "type": "text",
45
+ "primaryKey": false,
46
+ "notNull": true,
47
+ "autoincrement": false,
48
+ "default": "''"
49
+ },
50
+ "fingerprint": {
51
+ "name": "fingerprint",
52
+ "type": "text",
53
+ "primaryKey": false,
54
+ "notNull": true,
55
+ "autoincrement": false,
56
+ "default": "''"
57
+ }
58
+ },
59
+ "indexes": {
60
+ "idx_authOrigins_unique_pairs": {
61
+ "name": "idx_authOrigins_unique_pairs",
62
+ "columns": [
63
+ "collectionRef",
64
+ "recordRef",
65
+ "fingerprint"
66
+ ],
67
+ "isUnique": true
68
+ }
69
+ },
70
+ "foreignKeys": {},
71
+ "compositePrimaryKeys": {},
72
+ "uniqueConstraints": {},
73
+ "checkConstraints": {}
74
+ },
75
+ "_changes": {
76
+ "name": "_changes",
77
+ "columns": {
78
+ "id": {
79
+ "name": "id",
80
+ "type": "integer",
81
+ "primaryKey": true,
82
+ "notNull": true,
83
+ "autoincrement": true
84
+ },
85
+ "collection": {
86
+ "name": "collection",
87
+ "type": "text",
88
+ "primaryKey": false,
89
+ "notNull": true,
90
+ "autoincrement": false
91
+ },
92
+ "recordId": {
93
+ "name": "recordId",
94
+ "type": "text",
95
+ "primaryKey": false,
96
+ "notNull": true,
97
+ "autoincrement": false
98
+ },
99
+ "action": {
100
+ "name": "action",
101
+ "type": "text",
102
+ "primaryKey": false,
103
+ "notNull": true,
104
+ "autoincrement": false
105
+ },
106
+ "data": {
107
+ "name": "data",
108
+ "type": "text",
109
+ "primaryKey": false,
110
+ "notNull": false,
111
+ "autoincrement": false
112
+ },
113
+ "created": {
114
+ "name": "created",
115
+ "type": "text",
116
+ "primaryKey": false,
117
+ "notNull": true,
118
+ "autoincrement": false,
119
+ "default": "(strftime('%Y-%m-%d %H:%M:%fZ'))"
120
+ }
121
+ },
122
+ "indexes": {
123
+ "idx__changes_collection": {
124
+ "name": "idx__changes_collection",
125
+ "columns": [
126
+ "collection",
127
+ "id"
128
+ ],
129
+ "isUnique": false
130
+ }
131
+ },
132
+ "foreignKeys": {},
133
+ "compositePrimaryKeys": {},
134
+ "uniqueConstraints": {},
135
+ "checkConstraints": {}
136
+ },
137
+ "_collections": {
138
+ "name": "_collections",
139
+ "columns": {
140
+ "id": {
141
+ "name": "id",
142
+ "type": "text",
143
+ "primaryKey": true,
144
+ "notNull": true,
145
+ "autoincrement": false,
146
+ "default": "('r'||lower(hex(randomblob(7))))"
147
+ },
148
+ "system": {
149
+ "name": "system",
150
+ "type": "integer",
151
+ "primaryKey": false,
152
+ "notNull": true,
153
+ "autoincrement": false,
154
+ "default": false
155
+ },
156
+ "type": {
157
+ "name": "type",
158
+ "type": "text",
159
+ "primaryKey": false,
160
+ "notNull": true,
161
+ "autoincrement": false,
162
+ "default": "'base'"
163
+ },
164
+ "name": {
165
+ "name": "name",
166
+ "type": "text",
167
+ "primaryKey": false,
168
+ "notNull": true,
169
+ "autoincrement": false
170
+ },
171
+ "fields": {
172
+ "name": "fields",
173
+ "type": "text",
174
+ "primaryKey": false,
175
+ "notNull": true,
176
+ "autoincrement": false,
177
+ "default": "'[]'"
178
+ },
179
+ "indexes": {
180
+ "name": "indexes",
181
+ "type": "text",
182
+ "primaryKey": false,
183
+ "notNull": true,
184
+ "autoincrement": false,
185
+ "default": "'[]'"
186
+ },
187
+ "listRule": {
188
+ "name": "listRule",
189
+ "type": "text",
190
+ "primaryKey": false,
191
+ "notNull": false,
192
+ "autoincrement": false
193
+ },
194
+ "viewRule": {
195
+ "name": "viewRule",
196
+ "type": "text",
197
+ "primaryKey": false,
198
+ "notNull": false,
199
+ "autoincrement": false
200
+ },
201
+ "createRule": {
202
+ "name": "createRule",
203
+ "type": "text",
204
+ "primaryKey": false,
205
+ "notNull": false,
206
+ "autoincrement": false
207
+ },
208
+ "updateRule": {
209
+ "name": "updateRule",
210
+ "type": "text",
211
+ "primaryKey": false,
212
+ "notNull": false,
213
+ "autoincrement": false
214
+ },
215
+ "deleteRule": {
216
+ "name": "deleteRule",
217
+ "type": "text",
218
+ "primaryKey": false,
219
+ "notNull": false,
220
+ "autoincrement": false
221
+ },
222
+ "options": {
223
+ "name": "options",
224
+ "type": "text",
225
+ "primaryKey": false,
226
+ "notNull": true,
227
+ "autoincrement": false,
228
+ "default": "'{}'"
229
+ },
230
+ "created": {
231
+ "name": "created",
232
+ "type": "text",
233
+ "primaryKey": false,
234
+ "notNull": true,
235
+ "autoincrement": false,
236
+ "default": "(strftime('%Y-%m-%d %H:%M:%fZ'))"
237
+ },
238
+ "updated": {
239
+ "name": "updated",
240
+ "type": "text",
241
+ "primaryKey": false,
242
+ "notNull": true,
243
+ "autoincrement": false,
244
+ "default": "(strftime('%Y-%m-%d %H:%M:%fZ'))"
245
+ }
246
+ },
247
+ "indexes": {
248
+ "_collections_name_unique": {
249
+ "name": "_collections_name_unique",
250
+ "columns": [
251
+ "name"
252
+ ],
253
+ "isUnique": true
254
+ },
255
+ "idx__collections_type": {
256
+ "name": "idx__collections_type",
257
+ "columns": [
258
+ "type"
259
+ ],
260
+ "isUnique": false
261
+ }
262
+ },
263
+ "foreignKeys": {},
264
+ "compositePrimaryKeys": {},
265
+ "uniqueConstraints": {},
266
+ "checkConstraints": {}
267
+ },
268
+ "_externalAuths": {
269
+ "name": "_externalAuths",
270
+ "columns": {
271
+ "id": {
272
+ "name": "id",
273
+ "type": "text",
274
+ "primaryKey": true,
275
+ "notNull": true,
276
+ "autoincrement": false,
277
+ "default": "('r'||lower(hex(randomblob(7))))"
278
+ },
279
+ "collectionRef": {
280
+ "name": "collectionRef",
281
+ "type": "text",
282
+ "primaryKey": false,
283
+ "notNull": true,
284
+ "autoincrement": false,
285
+ "default": "''"
286
+ },
287
+ "recordRef": {
288
+ "name": "recordRef",
289
+ "type": "text",
290
+ "primaryKey": false,
291
+ "notNull": true,
292
+ "autoincrement": false,
293
+ "default": "''"
294
+ },
295
+ "created": {
296
+ "name": "created",
297
+ "type": "text",
298
+ "primaryKey": false,
299
+ "notNull": true,
300
+ "autoincrement": false,
301
+ "default": "''"
302
+ },
303
+ "updated": {
304
+ "name": "updated",
305
+ "type": "text",
306
+ "primaryKey": false,
307
+ "notNull": true,
308
+ "autoincrement": false,
309
+ "default": "''"
310
+ },
311
+ "provider": {
312
+ "name": "provider",
313
+ "type": "text",
314
+ "primaryKey": false,
315
+ "notNull": true,
316
+ "autoincrement": false,
317
+ "default": "''"
318
+ },
319
+ "providerId": {
320
+ "name": "providerId",
321
+ "type": "text",
322
+ "primaryKey": false,
323
+ "notNull": true,
324
+ "autoincrement": false,
325
+ "default": "''"
326
+ }
327
+ },
328
+ "indexes": {
329
+ "idx_externalAuths_record_provider": {
330
+ "name": "idx_externalAuths_record_provider",
331
+ "columns": [
332
+ "collectionRef",
333
+ "recordRef",
334
+ "provider"
335
+ ],
336
+ "isUnique": true
337
+ },
338
+ "idx_externalAuths_collection_provider": {
339
+ "name": "idx_externalAuths_collection_provider",
340
+ "columns": [
341
+ "collectionRef",
342
+ "provider",
343
+ "providerId"
344
+ ],
345
+ "isUnique": true
346
+ }
347
+ },
348
+ "foreignKeys": {},
349
+ "compositePrimaryKeys": {},
350
+ "uniqueConstraints": {},
351
+ "checkConstraints": {}
352
+ },
353
+ "_mfas": {
354
+ "name": "_mfas",
355
+ "columns": {
356
+ "id": {
357
+ "name": "id",
358
+ "type": "text",
359
+ "primaryKey": true,
360
+ "notNull": true,
361
+ "autoincrement": false,
362
+ "default": "('r'||lower(hex(randomblob(7))))"
363
+ },
364
+ "collectionRef": {
365
+ "name": "collectionRef",
366
+ "type": "text",
367
+ "primaryKey": false,
368
+ "notNull": true,
369
+ "autoincrement": false,
370
+ "default": "''"
371
+ },
372
+ "recordRef": {
373
+ "name": "recordRef",
374
+ "type": "text",
375
+ "primaryKey": false,
376
+ "notNull": true,
377
+ "autoincrement": false,
378
+ "default": "''"
379
+ },
380
+ "created": {
381
+ "name": "created",
382
+ "type": "text",
383
+ "primaryKey": false,
384
+ "notNull": true,
385
+ "autoincrement": false,
386
+ "default": "''"
387
+ },
388
+ "updated": {
389
+ "name": "updated",
390
+ "type": "text",
391
+ "primaryKey": false,
392
+ "notNull": true,
393
+ "autoincrement": false,
394
+ "default": "''"
395
+ },
396
+ "method": {
397
+ "name": "method",
398
+ "type": "text",
399
+ "primaryKey": false,
400
+ "notNull": true,
401
+ "autoincrement": false,
402
+ "default": "''"
403
+ }
404
+ },
405
+ "indexes": {
406
+ "idx_mfas_collectionRef_recordRef": {
407
+ "name": "idx_mfas_collectionRef_recordRef",
408
+ "columns": [
409
+ "collectionRef",
410
+ "recordRef"
411
+ ],
412
+ "isUnique": false
413
+ }
414
+ },
415
+ "foreignKeys": {},
416
+ "compositePrimaryKeys": {},
417
+ "uniqueConstraints": {},
418
+ "checkConstraints": {}
419
+ },
420
+ "_pbMigrations": {
421
+ "name": "_pbMigrations",
422
+ "columns": {
423
+ "file": {
424
+ "name": "file",
425
+ "type": "text",
426
+ "primaryKey": true,
427
+ "notNull": true,
428
+ "autoincrement": false
429
+ },
430
+ "applied": {
431
+ "name": "applied",
432
+ "type": "integer",
433
+ "primaryKey": false,
434
+ "notNull": true,
435
+ "autoincrement": false
436
+ }
437
+ },
438
+ "indexes": {},
439
+ "foreignKeys": {},
440
+ "compositePrimaryKeys": {},
441
+ "uniqueConstraints": {},
442
+ "checkConstraints": {}
443
+ },
444
+ "_otps": {
445
+ "name": "_otps",
446
+ "columns": {
447
+ "id": {
448
+ "name": "id",
449
+ "type": "text",
450
+ "primaryKey": true,
451
+ "notNull": true,
452
+ "autoincrement": false,
453
+ "default": "('r'||lower(hex(randomblob(7))))"
454
+ },
455
+ "collectionRef": {
456
+ "name": "collectionRef",
457
+ "type": "text",
458
+ "primaryKey": false,
459
+ "notNull": true,
460
+ "autoincrement": false,
461
+ "default": "''"
462
+ },
463
+ "recordRef": {
464
+ "name": "recordRef",
465
+ "type": "text",
466
+ "primaryKey": false,
467
+ "notNull": true,
468
+ "autoincrement": false,
469
+ "default": "''"
470
+ },
471
+ "created": {
472
+ "name": "created",
473
+ "type": "text",
474
+ "primaryKey": false,
475
+ "notNull": true,
476
+ "autoincrement": false,
477
+ "default": "''"
478
+ },
479
+ "updated": {
480
+ "name": "updated",
481
+ "type": "text",
482
+ "primaryKey": false,
483
+ "notNull": true,
484
+ "autoincrement": false,
485
+ "default": "''"
486
+ },
487
+ "password": {
488
+ "name": "password",
489
+ "type": "text",
490
+ "primaryKey": false,
491
+ "notNull": true,
492
+ "autoincrement": false,
493
+ "default": "''"
494
+ },
495
+ "sentTo": {
496
+ "name": "sentTo",
497
+ "type": "text",
498
+ "primaryKey": false,
499
+ "notNull": true,
500
+ "autoincrement": false,
501
+ "default": "''"
502
+ }
503
+ },
504
+ "indexes": {
505
+ "idx_otps_collectionRef_recordRef": {
506
+ "name": "idx_otps_collectionRef_recordRef",
507
+ "columns": [
508
+ "collectionRef",
509
+ "recordRef"
510
+ ],
511
+ "isUnique": false
512
+ }
513
+ },
514
+ "foreignKeys": {},
515
+ "compositePrimaryKeys": {},
516
+ "uniqueConstraints": {},
517
+ "checkConstraints": {}
518
+ },
519
+ "_params": {
520
+ "name": "_params",
521
+ "columns": {
522
+ "id": {
523
+ "name": "id",
524
+ "type": "text",
525
+ "primaryKey": true,
526
+ "notNull": true,
527
+ "autoincrement": false,
528
+ "default": "('r'||lower(hex(randomblob(7))))"
529
+ },
530
+ "value": {
531
+ "name": "value",
532
+ "type": "text",
533
+ "primaryKey": false,
534
+ "notNull": false,
535
+ "autoincrement": false
536
+ },
537
+ "created": {
538
+ "name": "created",
539
+ "type": "text",
540
+ "primaryKey": false,
541
+ "notNull": true,
542
+ "autoincrement": false,
543
+ "default": "(strftime('%Y-%m-%d %H:%M:%fZ'))"
544
+ },
545
+ "updated": {
546
+ "name": "updated",
547
+ "type": "text",
548
+ "primaryKey": false,
549
+ "notNull": true,
550
+ "autoincrement": false,
551
+ "default": "(strftime('%Y-%m-%d %H:%M:%fZ'))"
552
+ }
553
+ },
554
+ "indexes": {},
555
+ "foreignKeys": {},
556
+ "compositePrimaryKeys": {},
557
+ "uniqueConstraints": {},
558
+ "checkConstraints": {}
559
+ },
560
+ "_realtime_clients": {
561
+ "name": "_realtime_clients",
562
+ "columns": {
563
+ "id": {
564
+ "name": "id",
565
+ "type": "text",
566
+ "primaryKey": true,
567
+ "notNull": true,
568
+ "autoincrement": false
569
+ },
570
+ "subscriptions": {
571
+ "name": "subscriptions",
572
+ "type": "text",
573
+ "primaryKey": false,
574
+ "notNull": true,
575
+ "autoincrement": false,
576
+ "default": "'[]'"
577
+ },
578
+ "token": {
579
+ "name": "token",
580
+ "type": "text",
581
+ "primaryKey": false,
582
+ "notNull": true,
583
+ "autoincrement": false,
584
+ "default": "''"
585
+ },
586
+ "created": {
587
+ "name": "created",
588
+ "type": "text",
589
+ "primaryKey": false,
590
+ "notNull": true,
591
+ "autoincrement": false,
592
+ "default": "(strftime('%Y-%m-%d %H:%M:%fZ'))"
593
+ },
594
+ "updated": {
595
+ "name": "updated",
596
+ "type": "text",
597
+ "primaryKey": false,
598
+ "notNull": true,
599
+ "autoincrement": false,
600
+ "default": "(strftime('%Y-%m-%d %H:%M:%fZ'))"
601
+ }
602
+ },
603
+ "indexes": {},
604
+ "foreignKeys": {},
605
+ "compositePrimaryKeys": {},
606
+ "uniqueConstraints": {},
607
+ "checkConstraints": {}
608
+ },
609
+ "_superusers": {
610
+ "name": "_superusers",
611
+ "columns": {
612
+ "id": {
613
+ "name": "id",
614
+ "type": "text",
615
+ "primaryKey": true,
616
+ "notNull": true,
617
+ "autoincrement": false,
618
+ "default": "('r'||lower(hex(randomblob(7))))"
619
+ },
620
+ "password": {
621
+ "name": "password",
622
+ "type": "text",
623
+ "primaryKey": false,
624
+ "notNull": true,
625
+ "autoincrement": false,
626
+ "default": "''"
627
+ },
628
+ "tokenKey": {
629
+ "name": "tokenKey",
630
+ "type": "text",
631
+ "primaryKey": false,
632
+ "notNull": true,
633
+ "autoincrement": false,
634
+ "default": "''"
635
+ },
636
+ "email": {
637
+ "name": "email",
638
+ "type": "text",
639
+ "primaryKey": false,
640
+ "notNull": true,
641
+ "autoincrement": false,
642
+ "default": "''"
643
+ },
644
+ "emailVisibility": {
645
+ "name": "emailVisibility",
646
+ "type": "integer",
647
+ "primaryKey": false,
648
+ "notNull": true,
649
+ "autoincrement": false,
650
+ "default": false
651
+ },
652
+ "verified": {
653
+ "name": "verified",
654
+ "type": "integer",
655
+ "primaryKey": false,
656
+ "notNull": true,
657
+ "autoincrement": false,
658
+ "default": false
659
+ },
660
+ "created": {
661
+ "name": "created",
662
+ "type": "text",
663
+ "primaryKey": false,
664
+ "notNull": true,
665
+ "autoincrement": false,
666
+ "default": "''"
667
+ },
668
+ "updated": {
669
+ "name": "updated",
670
+ "type": "text",
671
+ "primaryKey": false,
672
+ "notNull": true,
673
+ "autoincrement": false,
674
+ "default": "''"
675
+ }
676
+ },
677
+ "indexes": {
678
+ "idx_tokenKey_pbc_3142635823": {
679
+ "name": "idx_tokenKey_pbc_3142635823",
680
+ "columns": [
681
+ "tokenKey"
682
+ ],
683
+ "isUnique": true
684
+ },
685
+ "idx_email_pbc_3142635823": {
686
+ "name": "idx_email_pbc_3142635823",
687
+ "columns": [
688
+ "email"
689
+ ],
690
+ "isUnique": true,
691
+ "where": "\"_superusers\".\"email\" != ''"
692
+ }
693
+ },
694
+ "foreignKeys": {},
695
+ "compositePrimaryKeys": {},
696
+ "uniqueConstraints": {},
697
+ "checkConstraints": {}
698
+ }
699
+ },
700
+ "views": {},
701
+ "enums": {},
702
+ "_meta": {
703
+ "schemas": {},
704
+ "tables": {},
705
+ "columns": {}
706
+ },
707
+ "internal": {
708
+ "indexes": {}
709
+ }
710
+ }