@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,781 @@
1
+ {
2
+ "version": "6",
3
+ "dialect": "sqlite",
4
+ "id": "10590d3b-89b5-46f4-a654-1c805bf3580a",
5
+ "prevId": "7f5aa54e-62b0-4859-8bc0-57ed40a96976",
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
+ "_logs": {
354
+ "name": "_logs",
355
+ "columns": {
356
+ "id": {
357
+ "name": "id",
358
+ "type": "text",
359
+ "primaryKey": true,
360
+ "notNull": true,
361
+ "autoincrement": false
362
+ },
363
+ "created": {
364
+ "name": "created",
365
+ "type": "text",
366
+ "primaryKey": false,
367
+ "notNull": true,
368
+ "autoincrement": false,
369
+ "default": "''"
370
+ },
371
+ "data": {
372
+ "name": "data",
373
+ "type": "text",
374
+ "primaryKey": false,
375
+ "notNull": true,
376
+ "autoincrement": false,
377
+ "default": "'{}'"
378
+ },
379
+ "message": {
380
+ "name": "message",
381
+ "type": "text",
382
+ "primaryKey": false,
383
+ "notNull": true,
384
+ "autoincrement": false,
385
+ "default": "''"
386
+ },
387
+ "level": {
388
+ "name": "level",
389
+ "type": "integer",
390
+ "primaryKey": false,
391
+ "notNull": true,
392
+ "autoincrement": false,
393
+ "default": 0
394
+ }
395
+ },
396
+ "indexes": {
397
+ "idx_logs_created": {
398
+ "name": "idx_logs_created",
399
+ "columns": [
400
+ "created"
401
+ ],
402
+ "isUnique": false
403
+ },
404
+ "idx_logs_level": {
405
+ "name": "idx_logs_level",
406
+ "columns": [
407
+ "level"
408
+ ],
409
+ "isUnique": false
410
+ },
411
+ "idx_logs_message": {
412
+ "name": "idx_logs_message",
413
+ "columns": [
414
+ "message"
415
+ ],
416
+ "isUnique": false
417
+ }
418
+ },
419
+ "foreignKeys": {},
420
+ "compositePrimaryKeys": {},
421
+ "uniqueConstraints": {},
422
+ "checkConstraints": {}
423
+ },
424
+ "_mfas": {
425
+ "name": "_mfas",
426
+ "columns": {
427
+ "id": {
428
+ "name": "id",
429
+ "type": "text",
430
+ "primaryKey": true,
431
+ "notNull": true,
432
+ "autoincrement": false,
433
+ "default": "('r'||lower(hex(randomblob(7))))"
434
+ },
435
+ "collectionRef": {
436
+ "name": "collectionRef",
437
+ "type": "text",
438
+ "primaryKey": false,
439
+ "notNull": true,
440
+ "autoincrement": false,
441
+ "default": "''"
442
+ },
443
+ "recordRef": {
444
+ "name": "recordRef",
445
+ "type": "text",
446
+ "primaryKey": false,
447
+ "notNull": true,
448
+ "autoincrement": false,
449
+ "default": "''"
450
+ },
451
+ "created": {
452
+ "name": "created",
453
+ "type": "text",
454
+ "primaryKey": false,
455
+ "notNull": true,
456
+ "autoincrement": false,
457
+ "default": "''"
458
+ },
459
+ "updated": {
460
+ "name": "updated",
461
+ "type": "text",
462
+ "primaryKey": false,
463
+ "notNull": true,
464
+ "autoincrement": false,
465
+ "default": "''"
466
+ },
467
+ "method": {
468
+ "name": "method",
469
+ "type": "text",
470
+ "primaryKey": false,
471
+ "notNull": true,
472
+ "autoincrement": false,
473
+ "default": "''"
474
+ }
475
+ },
476
+ "indexes": {
477
+ "idx_mfas_collectionRef_recordRef": {
478
+ "name": "idx_mfas_collectionRef_recordRef",
479
+ "columns": [
480
+ "collectionRef",
481
+ "recordRef"
482
+ ],
483
+ "isUnique": false
484
+ }
485
+ },
486
+ "foreignKeys": {},
487
+ "compositePrimaryKeys": {},
488
+ "uniqueConstraints": {},
489
+ "checkConstraints": {}
490
+ },
491
+ "_pbMigrations": {
492
+ "name": "_pbMigrations",
493
+ "columns": {
494
+ "file": {
495
+ "name": "file",
496
+ "type": "text",
497
+ "primaryKey": true,
498
+ "notNull": true,
499
+ "autoincrement": false
500
+ },
501
+ "applied": {
502
+ "name": "applied",
503
+ "type": "integer",
504
+ "primaryKey": false,
505
+ "notNull": true,
506
+ "autoincrement": false
507
+ }
508
+ },
509
+ "indexes": {},
510
+ "foreignKeys": {},
511
+ "compositePrimaryKeys": {},
512
+ "uniqueConstraints": {},
513
+ "checkConstraints": {}
514
+ },
515
+ "_otps": {
516
+ "name": "_otps",
517
+ "columns": {
518
+ "id": {
519
+ "name": "id",
520
+ "type": "text",
521
+ "primaryKey": true,
522
+ "notNull": true,
523
+ "autoincrement": false,
524
+ "default": "('r'||lower(hex(randomblob(7))))"
525
+ },
526
+ "collectionRef": {
527
+ "name": "collectionRef",
528
+ "type": "text",
529
+ "primaryKey": false,
530
+ "notNull": true,
531
+ "autoincrement": false,
532
+ "default": "''"
533
+ },
534
+ "recordRef": {
535
+ "name": "recordRef",
536
+ "type": "text",
537
+ "primaryKey": false,
538
+ "notNull": true,
539
+ "autoincrement": false,
540
+ "default": "''"
541
+ },
542
+ "created": {
543
+ "name": "created",
544
+ "type": "text",
545
+ "primaryKey": false,
546
+ "notNull": true,
547
+ "autoincrement": false,
548
+ "default": "''"
549
+ },
550
+ "updated": {
551
+ "name": "updated",
552
+ "type": "text",
553
+ "primaryKey": false,
554
+ "notNull": true,
555
+ "autoincrement": false,
556
+ "default": "''"
557
+ },
558
+ "password": {
559
+ "name": "password",
560
+ "type": "text",
561
+ "primaryKey": false,
562
+ "notNull": true,
563
+ "autoincrement": false,
564
+ "default": "''"
565
+ },
566
+ "sentTo": {
567
+ "name": "sentTo",
568
+ "type": "text",
569
+ "primaryKey": false,
570
+ "notNull": true,
571
+ "autoincrement": false,
572
+ "default": "''"
573
+ }
574
+ },
575
+ "indexes": {
576
+ "idx_otps_collectionRef_recordRef": {
577
+ "name": "idx_otps_collectionRef_recordRef",
578
+ "columns": [
579
+ "collectionRef",
580
+ "recordRef"
581
+ ],
582
+ "isUnique": false
583
+ }
584
+ },
585
+ "foreignKeys": {},
586
+ "compositePrimaryKeys": {},
587
+ "uniqueConstraints": {},
588
+ "checkConstraints": {}
589
+ },
590
+ "_params": {
591
+ "name": "_params",
592
+ "columns": {
593
+ "id": {
594
+ "name": "id",
595
+ "type": "text",
596
+ "primaryKey": true,
597
+ "notNull": true,
598
+ "autoincrement": false,
599
+ "default": "('r'||lower(hex(randomblob(7))))"
600
+ },
601
+ "value": {
602
+ "name": "value",
603
+ "type": "text",
604
+ "primaryKey": false,
605
+ "notNull": false,
606
+ "autoincrement": false
607
+ },
608
+ "created": {
609
+ "name": "created",
610
+ "type": "text",
611
+ "primaryKey": false,
612
+ "notNull": true,
613
+ "autoincrement": false,
614
+ "default": "(strftime('%Y-%m-%d %H:%M:%fZ'))"
615
+ },
616
+ "updated": {
617
+ "name": "updated",
618
+ "type": "text",
619
+ "primaryKey": false,
620
+ "notNull": true,
621
+ "autoincrement": false,
622
+ "default": "(strftime('%Y-%m-%d %H:%M:%fZ'))"
623
+ }
624
+ },
625
+ "indexes": {},
626
+ "foreignKeys": {},
627
+ "compositePrimaryKeys": {},
628
+ "uniqueConstraints": {},
629
+ "checkConstraints": {}
630
+ },
631
+ "_realtime_clients": {
632
+ "name": "_realtime_clients",
633
+ "columns": {
634
+ "id": {
635
+ "name": "id",
636
+ "type": "text",
637
+ "primaryKey": true,
638
+ "notNull": true,
639
+ "autoincrement": false
640
+ },
641
+ "subscriptions": {
642
+ "name": "subscriptions",
643
+ "type": "text",
644
+ "primaryKey": false,
645
+ "notNull": true,
646
+ "autoincrement": false,
647
+ "default": "'[]'"
648
+ },
649
+ "token": {
650
+ "name": "token",
651
+ "type": "text",
652
+ "primaryKey": false,
653
+ "notNull": true,
654
+ "autoincrement": false,
655
+ "default": "''"
656
+ },
657
+ "created": {
658
+ "name": "created",
659
+ "type": "text",
660
+ "primaryKey": false,
661
+ "notNull": true,
662
+ "autoincrement": false,
663
+ "default": "(strftime('%Y-%m-%d %H:%M:%fZ'))"
664
+ },
665
+ "updated": {
666
+ "name": "updated",
667
+ "type": "text",
668
+ "primaryKey": false,
669
+ "notNull": true,
670
+ "autoincrement": false,
671
+ "default": "(strftime('%Y-%m-%d %H:%M:%fZ'))"
672
+ }
673
+ },
674
+ "indexes": {},
675
+ "foreignKeys": {},
676
+ "compositePrimaryKeys": {},
677
+ "uniqueConstraints": {},
678
+ "checkConstraints": {}
679
+ },
680
+ "_superusers": {
681
+ "name": "_superusers",
682
+ "columns": {
683
+ "id": {
684
+ "name": "id",
685
+ "type": "text",
686
+ "primaryKey": true,
687
+ "notNull": true,
688
+ "autoincrement": false,
689
+ "default": "('r'||lower(hex(randomblob(7))))"
690
+ },
691
+ "password": {
692
+ "name": "password",
693
+ "type": "text",
694
+ "primaryKey": false,
695
+ "notNull": true,
696
+ "autoincrement": false,
697
+ "default": "''"
698
+ },
699
+ "tokenKey": {
700
+ "name": "tokenKey",
701
+ "type": "text",
702
+ "primaryKey": false,
703
+ "notNull": true,
704
+ "autoincrement": false,
705
+ "default": "''"
706
+ },
707
+ "email": {
708
+ "name": "email",
709
+ "type": "text",
710
+ "primaryKey": false,
711
+ "notNull": true,
712
+ "autoincrement": false,
713
+ "default": "''"
714
+ },
715
+ "emailVisibility": {
716
+ "name": "emailVisibility",
717
+ "type": "integer",
718
+ "primaryKey": false,
719
+ "notNull": true,
720
+ "autoincrement": false,
721
+ "default": false
722
+ },
723
+ "verified": {
724
+ "name": "verified",
725
+ "type": "integer",
726
+ "primaryKey": false,
727
+ "notNull": true,
728
+ "autoincrement": false,
729
+ "default": false
730
+ },
731
+ "created": {
732
+ "name": "created",
733
+ "type": "text",
734
+ "primaryKey": false,
735
+ "notNull": true,
736
+ "autoincrement": false,
737
+ "default": "''"
738
+ },
739
+ "updated": {
740
+ "name": "updated",
741
+ "type": "text",
742
+ "primaryKey": false,
743
+ "notNull": true,
744
+ "autoincrement": false,
745
+ "default": "''"
746
+ }
747
+ },
748
+ "indexes": {
749
+ "idx_tokenKey_pbc_3142635823": {
750
+ "name": "idx_tokenKey_pbc_3142635823",
751
+ "columns": [
752
+ "tokenKey"
753
+ ],
754
+ "isUnique": true
755
+ },
756
+ "idx_email_pbc_3142635823": {
757
+ "name": "idx_email_pbc_3142635823",
758
+ "columns": [
759
+ "email"
760
+ ],
761
+ "isUnique": true,
762
+ "where": "\"_superusers\".\"email\" != ''"
763
+ }
764
+ },
765
+ "foreignKeys": {},
766
+ "compositePrimaryKeys": {},
767
+ "uniqueConstraints": {},
768
+ "checkConstraints": {}
769
+ }
770
+ },
771
+ "views": {},
772
+ "enums": {},
773
+ "_meta": {
774
+ "schemas": {},
775
+ "tables": {},
776
+ "columns": {}
777
+ },
778
+ "internal": {
779
+ "indexes": {}
780
+ }
781
+ }