@zeno-lib/db 0.3.1 → 0.4.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.
@@ -0,0 +1,543 @@
1
+ //#region src/auth-schema.d.ts
2
+ declare const authSchema: import("drizzle-orm/pg-core").PgSchema<"auth">;
3
+ /**
4
+ * Supabase's `auth.users`, in full.
5
+ *
6
+ * Reading it needs an RLS-bypassing client, and several columns hold credential
7
+ * material (`encryptedPassword`, the `*Token` columns). Select the columns you
8
+ * need rather than `select()`.
9
+ */
10
+ declare const authUsers: import("drizzle-orm/pg-core").PgTableWithColumns<{
11
+ name: "users";
12
+ schema: "auth";
13
+ columns: {
14
+ aud: import("drizzle-orm/pg-core").PgBuildColumn<"users", import("drizzle-orm/pg-core").PgVarcharBuilder<[string, ...string[]]>, {
15
+ name: string;
16
+ tableName: "users";
17
+ dataType: "string";
18
+ data: string;
19
+ driverParam: string;
20
+ notNull: false;
21
+ hasDefault: false;
22
+ isPrimaryKey: false;
23
+ isAutoincrement: false;
24
+ hasRuntimeDefault: false;
25
+ enumValues: undefined;
26
+ identity: undefined;
27
+ generated: undefined;
28
+ }>;
29
+ bannedUntil: import("drizzle-orm/pg-core").PgBuildColumn<"users", import("drizzle-orm/pg-core").PgTimestampBuilder, {
30
+ name: string;
31
+ tableName: "users";
32
+ dataType: "object date";
33
+ data: Date;
34
+ driverParam: string;
35
+ notNull: false;
36
+ hasDefault: false;
37
+ isPrimaryKey: false;
38
+ isAutoincrement: false;
39
+ hasRuntimeDefault: false;
40
+ enumValues: undefined;
41
+ identity: undefined;
42
+ generated: undefined;
43
+ }>;
44
+ confirmationSentAt: import("drizzle-orm/pg-core").PgBuildColumn<"users", import("drizzle-orm/pg-core").PgTimestampBuilder, {
45
+ name: string;
46
+ tableName: "users";
47
+ dataType: "object date";
48
+ data: Date;
49
+ driverParam: string;
50
+ notNull: false;
51
+ hasDefault: false;
52
+ isPrimaryKey: false;
53
+ isAutoincrement: false;
54
+ hasRuntimeDefault: false;
55
+ enumValues: undefined;
56
+ identity: undefined;
57
+ generated: undefined;
58
+ }>;
59
+ confirmationToken: import("drizzle-orm/pg-core").PgBuildColumn<"users", import("drizzle-orm/pg-core").PgVarcharBuilder<[string, ...string[]]>, {
60
+ name: string;
61
+ tableName: "users";
62
+ dataType: "string";
63
+ data: string;
64
+ driverParam: string;
65
+ notNull: false;
66
+ hasDefault: false;
67
+ isPrimaryKey: false;
68
+ isAutoincrement: false;
69
+ hasRuntimeDefault: false;
70
+ enumValues: undefined;
71
+ identity: undefined;
72
+ generated: undefined;
73
+ }>;
74
+ confirmedAt: import("drizzle-orm/pg-core").PgBuildColumn<"users", import("drizzle-orm/pg-core").SetHasGenerated<import("drizzle-orm/pg-core").PgTimestampBuilder>, {
75
+ name: string;
76
+ tableName: "users";
77
+ dataType: "object date";
78
+ data: Date;
79
+ driverParam: string;
80
+ notNull: false;
81
+ hasDefault: true;
82
+ isPrimaryKey: false;
83
+ isAutoincrement: false;
84
+ hasRuntimeDefault: false;
85
+ enumValues: undefined;
86
+ identity: undefined;
87
+ generated: true;
88
+ }>;
89
+ createdAt: import("drizzle-orm/pg-core").PgBuildColumn<"users", import("drizzle-orm/pg-core").PgTimestampBuilder, {
90
+ name: string;
91
+ tableName: "users";
92
+ dataType: "object date";
93
+ data: Date;
94
+ driverParam: string;
95
+ notNull: false;
96
+ hasDefault: false;
97
+ isPrimaryKey: false;
98
+ isAutoincrement: false;
99
+ hasRuntimeDefault: false;
100
+ enumValues: undefined;
101
+ identity: undefined;
102
+ generated: undefined;
103
+ }>;
104
+ deletedAt: import("drizzle-orm/pg-core").PgBuildColumn<"users", import("drizzle-orm/pg-core").PgTimestampBuilder, {
105
+ name: string;
106
+ tableName: "users";
107
+ dataType: "object date";
108
+ data: Date;
109
+ driverParam: string;
110
+ notNull: false;
111
+ hasDefault: false;
112
+ isPrimaryKey: false;
113
+ isAutoincrement: false;
114
+ hasRuntimeDefault: false;
115
+ enumValues: undefined;
116
+ identity: undefined;
117
+ generated: undefined;
118
+ }>;
119
+ email: import("drizzle-orm/pg-core").PgBuildColumn<"users", import("drizzle-orm/pg-core").PgVarcharBuilder<[string, ...string[]]>, {
120
+ name: string;
121
+ tableName: "users";
122
+ dataType: "string";
123
+ data: string;
124
+ driverParam: string;
125
+ notNull: false;
126
+ hasDefault: false;
127
+ isPrimaryKey: false;
128
+ isAutoincrement: false;
129
+ hasRuntimeDefault: false;
130
+ enumValues: undefined;
131
+ identity: undefined;
132
+ generated: undefined;
133
+ }>;
134
+ emailChange: import("drizzle-orm/pg-core").PgBuildColumn<"users", import("drizzle-orm/pg-core").PgVarcharBuilder<[string, ...string[]]>, {
135
+ name: string;
136
+ tableName: "users";
137
+ dataType: "string";
138
+ data: string;
139
+ driverParam: string;
140
+ notNull: false;
141
+ hasDefault: false;
142
+ isPrimaryKey: false;
143
+ isAutoincrement: false;
144
+ hasRuntimeDefault: false;
145
+ enumValues: undefined;
146
+ identity: undefined;
147
+ generated: undefined;
148
+ }>;
149
+ emailChangeConfirmStatus: import("drizzle-orm/pg-core").PgBuildColumn<"users", import("drizzle-orm/pg-core").SetHasDefault<import("drizzle-orm/pg-core").PgSmallIntBuilder>, {
150
+ name: string;
151
+ tableName: "users";
152
+ dataType: "number int16";
153
+ data: number;
154
+ driverParam: string | number;
155
+ notNull: false;
156
+ hasDefault: true;
157
+ isPrimaryKey: false;
158
+ isAutoincrement: false;
159
+ hasRuntimeDefault: false;
160
+ enumValues: undefined;
161
+ identity: undefined;
162
+ generated: undefined;
163
+ }>;
164
+ emailChangeSentAt: import("drizzle-orm/pg-core").PgBuildColumn<"users", import("drizzle-orm/pg-core").PgTimestampBuilder, {
165
+ name: string;
166
+ tableName: "users";
167
+ dataType: "object date";
168
+ data: Date;
169
+ driverParam: string;
170
+ notNull: false;
171
+ hasDefault: false;
172
+ isPrimaryKey: false;
173
+ isAutoincrement: false;
174
+ hasRuntimeDefault: false;
175
+ enumValues: undefined;
176
+ identity: undefined;
177
+ generated: undefined;
178
+ }>;
179
+ emailChangeTokenCurrent: import("drizzle-orm/pg-core").PgBuildColumn<"users", import("drizzle-orm/pg-core").SetHasDefault<import("drizzle-orm/pg-core").PgVarcharBuilder<[string, ...string[]]>>, {
180
+ name: string;
181
+ tableName: "users";
182
+ dataType: "string";
183
+ data: string;
184
+ driverParam: string;
185
+ notNull: false;
186
+ hasDefault: true;
187
+ isPrimaryKey: false;
188
+ isAutoincrement: false;
189
+ hasRuntimeDefault: false;
190
+ enumValues: undefined;
191
+ identity: undefined;
192
+ generated: undefined;
193
+ }>;
194
+ emailChangeTokenNew: import("drizzle-orm/pg-core").PgBuildColumn<"users", import("drizzle-orm/pg-core").PgVarcharBuilder<[string, ...string[]]>, {
195
+ name: string;
196
+ tableName: "users";
197
+ dataType: "string";
198
+ data: string;
199
+ driverParam: string;
200
+ notNull: false;
201
+ hasDefault: false;
202
+ isPrimaryKey: false;
203
+ isAutoincrement: false;
204
+ hasRuntimeDefault: false;
205
+ enumValues: undefined;
206
+ identity: undefined;
207
+ generated: undefined;
208
+ }>;
209
+ emailConfirmedAt: import("drizzle-orm/pg-core").PgBuildColumn<"users", import("drizzle-orm/pg-core").PgTimestampBuilder, {
210
+ name: string;
211
+ tableName: "users";
212
+ dataType: "object date";
213
+ data: Date;
214
+ driverParam: string;
215
+ notNull: false;
216
+ hasDefault: false;
217
+ isPrimaryKey: false;
218
+ isAutoincrement: false;
219
+ hasRuntimeDefault: false;
220
+ enumValues: undefined;
221
+ identity: undefined;
222
+ generated: undefined;
223
+ }>;
224
+ encryptedPassword: import("drizzle-orm/pg-core").PgBuildColumn<"users", import("drizzle-orm/pg-core").PgVarcharBuilder<[string, ...string[]]>, {
225
+ name: string;
226
+ tableName: "users";
227
+ dataType: "string";
228
+ data: string;
229
+ driverParam: string;
230
+ notNull: false;
231
+ hasDefault: false;
232
+ isPrimaryKey: false;
233
+ isAutoincrement: false;
234
+ hasRuntimeDefault: false;
235
+ enumValues: undefined;
236
+ identity: undefined;
237
+ generated: undefined;
238
+ }>;
239
+ id: import("drizzle-orm/pg-core").PgBuildColumn<"users", import("drizzle-orm/pg-core").SetIsPrimaryKey<import("drizzle-orm/pg-core").PgUUIDBuilder>, {
240
+ name: string;
241
+ tableName: "users";
242
+ dataType: "string uuid";
243
+ data: string;
244
+ driverParam: string;
245
+ notNull: true;
246
+ hasDefault: false;
247
+ isPrimaryKey: false;
248
+ isAutoincrement: false;
249
+ hasRuntimeDefault: false;
250
+ enumValues: undefined;
251
+ identity: undefined;
252
+ generated: undefined;
253
+ }>;
254
+ instanceId: import("drizzle-orm/pg-core").PgBuildColumn<"users", import("drizzle-orm/pg-core").PgUUIDBuilder, {
255
+ name: string;
256
+ tableName: "users";
257
+ dataType: "string uuid";
258
+ data: string;
259
+ driverParam: string;
260
+ notNull: false;
261
+ hasDefault: false;
262
+ isPrimaryKey: false;
263
+ isAutoincrement: false;
264
+ hasRuntimeDefault: false;
265
+ enumValues: undefined;
266
+ identity: undefined;
267
+ generated: undefined;
268
+ }>;
269
+ invitedAt: import("drizzle-orm/pg-core").PgBuildColumn<"users", import("drizzle-orm/pg-core").PgTimestampBuilder, {
270
+ name: string;
271
+ tableName: "users";
272
+ dataType: "object date";
273
+ data: Date;
274
+ driverParam: string;
275
+ notNull: false;
276
+ hasDefault: false;
277
+ isPrimaryKey: false;
278
+ isAutoincrement: false;
279
+ hasRuntimeDefault: false;
280
+ enumValues: undefined;
281
+ identity: undefined;
282
+ generated: undefined;
283
+ }>;
284
+ isAnonymous: import("drizzle-orm/pg-core").PgBuildColumn<"users", import("drizzle-orm/pg-core").SetNotNull<import("drizzle-orm/pg-core").SetHasDefault<import("drizzle-orm/pg-core").PgBooleanBuilder>>, {
285
+ name: string;
286
+ tableName: "users";
287
+ dataType: "boolean";
288
+ data: boolean;
289
+ driverParam: boolean;
290
+ notNull: true;
291
+ hasDefault: true;
292
+ isPrimaryKey: false;
293
+ isAutoincrement: false;
294
+ hasRuntimeDefault: false;
295
+ enumValues: undefined;
296
+ identity: undefined;
297
+ generated: undefined;
298
+ }>;
299
+ isSsoUser: import("drizzle-orm/pg-core").PgBuildColumn<"users", import("drizzle-orm/pg-core").SetNotNull<import("drizzle-orm/pg-core").SetHasDefault<import("drizzle-orm/pg-core").PgBooleanBuilder>>, {
300
+ name: string;
301
+ tableName: "users";
302
+ dataType: "boolean";
303
+ data: boolean;
304
+ driverParam: boolean;
305
+ notNull: true;
306
+ hasDefault: true;
307
+ isPrimaryKey: false;
308
+ isAutoincrement: false;
309
+ hasRuntimeDefault: false;
310
+ enumValues: undefined;
311
+ identity: undefined;
312
+ generated: undefined;
313
+ }>;
314
+ isSuperAdmin: import("drizzle-orm/pg-core").PgBuildColumn<"users", import("drizzle-orm/pg-core").PgBooleanBuilder, {
315
+ name: string;
316
+ tableName: "users";
317
+ dataType: "boolean";
318
+ data: boolean;
319
+ driverParam: boolean;
320
+ notNull: false;
321
+ hasDefault: false;
322
+ isPrimaryKey: false;
323
+ isAutoincrement: false;
324
+ hasRuntimeDefault: false;
325
+ enumValues: undefined;
326
+ identity: undefined;
327
+ generated: undefined;
328
+ }>;
329
+ lastSignInAt: import("drizzle-orm/pg-core").PgBuildColumn<"users", import("drizzle-orm/pg-core").PgTimestampBuilder, {
330
+ name: string;
331
+ tableName: "users";
332
+ dataType: "object date";
333
+ data: Date;
334
+ driverParam: string;
335
+ notNull: false;
336
+ hasDefault: false;
337
+ isPrimaryKey: false;
338
+ isAutoincrement: false;
339
+ hasRuntimeDefault: false;
340
+ enumValues: undefined;
341
+ identity: undefined;
342
+ generated: undefined;
343
+ }>;
344
+ phone: import("drizzle-orm/pg-core").PgBuildColumn<"users", import("drizzle-orm/pg-core").SetHasDefault<import("drizzle-orm/pg-core").PgTextBuilder<[string, ...string[]]>>, {
345
+ name: string;
346
+ tableName: "users";
347
+ dataType: "string";
348
+ data: string;
349
+ driverParam: string;
350
+ notNull: false;
351
+ hasDefault: true;
352
+ isPrimaryKey: false;
353
+ isAutoincrement: false;
354
+ hasRuntimeDefault: false;
355
+ enumValues: undefined;
356
+ identity: undefined;
357
+ generated: undefined;
358
+ }>;
359
+ phoneChange: import("drizzle-orm/pg-core").PgBuildColumn<"users", import("drizzle-orm/pg-core").SetHasDefault<import("drizzle-orm/pg-core").PgTextBuilder<[string, ...string[]]>>, {
360
+ name: string;
361
+ tableName: "users";
362
+ dataType: "string";
363
+ data: string;
364
+ driverParam: string;
365
+ notNull: false;
366
+ hasDefault: true;
367
+ isPrimaryKey: false;
368
+ isAutoincrement: false;
369
+ hasRuntimeDefault: false;
370
+ enumValues: undefined;
371
+ identity: undefined;
372
+ generated: undefined;
373
+ }>;
374
+ phoneChangeSentAt: import("drizzle-orm/pg-core").PgBuildColumn<"users", import("drizzle-orm/pg-core").PgTimestampBuilder, {
375
+ name: string;
376
+ tableName: "users";
377
+ dataType: "object date";
378
+ data: Date;
379
+ driverParam: string;
380
+ notNull: false;
381
+ hasDefault: false;
382
+ isPrimaryKey: false;
383
+ isAutoincrement: false;
384
+ hasRuntimeDefault: false;
385
+ enumValues: undefined;
386
+ identity: undefined;
387
+ generated: undefined;
388
+ }>;
389
+ phoneChangeToken: import("drizzle-orm/pg-core").PgBuildColumn<"users", import("drizzle-orm/pg-core").SetHasDefault<import("drizzle-orm/pg-core").PgVarcharBuilder<[string, ...string[]]>>, {
390
+ name: string;
391
+ tableName: "users";
392
+ dataType: "string";
393
+ data: string;
394
+ driverParam: string;
395
+ notNull: false;
396
+ hasDefault: true;
397
+ isPrimaryKey: false;
398
+ isAutoincrement: false;
399
+ hasRuntimeDefault: false;
400
+ enumValues: undefined;
401
+ identity: undefined;
402
+ generated: undefined;
403
+ }>;
404
+ phoneConfirmedAt: import("drizzle-orm/pg-core").PgBuildColumn<"users", import("drizzle-orm/pg-core").PgTimestampBuilder, {
405
+ name: string;
406
+ tableName: "users";
407
+ dataType: "object date";
408
+ data: Date;
409
+ driverParam: string;
410
+ notNull: false;
411
+ hasDefault: false;
412
+ isPrimaryKey: false;
413
+ isAutoincrement: false;
414
+ hasRuntimeDefault: false;
415
+ enumValues: undefined;
416
+ identity: undefined;
417
+ generated: undefined;
418
+ }>;
419
+ rawAppMetaData: import("drizzle-orm/pg-core").PgBuildColumn<"users", import("drizzle-orm/pg-core").PgJsonbBuilder, {
420
+ name: string;
421
+ tableName: "users";
422
+ dataType: "object json";
423
+ data: unknown;
424
+ driverParam: unknown;
425
+ notNull: false;
426
+ hasDefault: false;
427
+ isPrimaryKey: false;
428
+ isAutoincrement: false;
429
+ hasRuntimeDefault: false;
430
+ enumValues: undefined;
431
+ identity: undefined;
432
+ generated: undefined;
433
+ }>;
434
+ rawUserMetaData: import("drizzle-orm/pg-core").PgBuildColumn<"users", import("drizzle-orm/pg-core").PgJsonbBuilder, {
435
+ name: string;
436
+ tableName: "users";
437
+ dataType: "object json";
438
+ data: unknown;
439
+ driverParam: unknown;
440
+ notNull: false;
441
+ hasDefault: false;
442
+ isPrimaryKey: false;
443
+ isAutoincrement: false;
444
+ hasRuntimeDefault: false;
445
+ enumValues: undefined;
446
+ identity: undefined;
447
+ generated: undefined;
448
+ }>;
449
+ reauthenticationSentAt: import("drizzle-orm/pg-core").PgBuildColumn<"users", import("drizzle-orm/pg-core").PgTimestampBuilder, {
450
+ name: string;
451
+ tableName: "users";
452
+ dataType: "object date";
453
+ data: Date;
454
+ driverParam: string;
455
+ notNull: false;
456
+ hasDefault: false;
457
+ isPrimaryKey: false;
458
+ isAutoincrement: false;
459
+ hasRuntimeDefault: false;
460
+ enumValues: undefined;
461
+ identity: undefined;
462
+ generated: undefined;
463
+ }>;
464
+ reauthenticationToken: import("drizzle-orm/pg-core").PgBuildColumn<"users", import("drizzle-orm/pg-core").SetHasDefault<import("drizzle-orm/pg-core").PgVarcharBuilder<[string, ...string[]]>>, {
465
+ name: string;
466
+ tableName: "users";
467
+ dataType: "string";
468
+ data: string;
469
+ driverParam: string;
470
+ notNull: false;
471
+ hasDefault: true;
472
+ isPrimaryKey: false;
473
+ isAutoincrement: false;
474
+ hasRuntimeDefault: false;
475
+ enumValues: undefined;
476
+ identity: undefined;
477
+ generated: undefined;
478
+ }>;
479
+ recoverySentAt: import("drizzle-orm/pg-core").PgBuildColumn<"users", import("drizzle-orm/pg-core").PgTimestampBuilder, {
480
+ name: string;
481
+ tableName: "users";
482
+ dataType: "object date";
483
+ data: Date;
484
+ driverParam: string;
485
+ notNull: false;
486
+ hasDefault: false;
487
+ isPrimaryKey: false;
488
+ isAutoincrement: false;
489
+ hasRuntimeDefault: false;
490
+ enumValues: undefined;
491
+ identity: undefined;
492
+ generated: undefined;
493
+ }>;
494
+ recoveryToken: import("drizzle-orm/pg-core").PgBuildColumn<"users", import("drizzle-orm/pg-core").PgVarcharBuilder<[string, ...string[]]>, {
495
+ name: string;
496
+ tableName: "users";
497
+ dataType: "string";
498
+ data: string;
499
+ driverParam: string;
500
+ notNull: false;
501
+ hasDefault: false;
502
+ isPrimaryKey: false;
503
+ isAutoincrement: false;
504
+ hasRuntimeDefault: false;
505
+ enumValues: undefined;
506
+ identity: undefined;
507
+ generated: undefined;
508
+ }>;
509
+ role: import("drizzle-orm/pg-core").PgBuildColumn<"users", import("drizzle-orm/pg-core").PgVarcharBuilder<[string, ...string[]]>, {
510
+ name: string;
511
+ tableName: "users";
512
+ dataType: "string";
513
+ data: string;
514
+ driverParam: string;
515
+ notNull: false;
516
+ hasDefault: false;
517
+ isPrimaryKey: false;
518
+ isAutoincrement: false;
519
+ hasRuntimeDefault: false;
520
+ enumValues: undefined;
521
+ identity: undefined;
522
+ generated: undefined;
523
+ }>;
524
+ updatedAt: import("drizzle-orm/pg-core").PgBuildColumn<"users", import("drizzle-orm/pg-core").PgTimestampBuilder, {
525
+ name: string;
526
+ tableName: "users";
527
+ dataType: "object date";
528
+ data: Date;
529
+ driverParam: string;
530
+ notNull: false;
531
+ hasDefault: false;
532
+ isPrimaryKey: false;
533
+ isAutoincrement: false;
534
+ hasRuntimeDefault: false;
535
+ enumValues: undefined;
536
+ identity: undefined;
537
+ generated: undefined;
538
+ }>;
539
+ };
540
+ dialect: 'pg';
541
+ }>;
542
+ //#endregion
543
+ export { authSchema, authUsers };
@@ -0,0 +1,50 @@
1
+ import { sql } from "drizzle-orm";
2
+ import { boolean, jsonb, pgSchema, smallint, text, timestamp, uuid, varchar } from "drizzle-orm/pg-core";
3
+ //#region src/auth-schema.ts
4
+ const authSchema = pgSchema("auth").existing();
5
+ /**
6
+ * Supabase's `auth.users`, in full.
7
+ *
8
+ * Reading it needs an RLS-bypassing client, and several columns hold credential
9
+ * material (`encryptedPassword`, the `*Token` columns). Select the columns you
10
+ * need rather than `select()`.
11
+ */
12
+ const authUsers = authSchema.table.withRLS("users", {
13
+ aud: varchar({ length: 255 }),
14
+ bannedUntil: timestamp("banned_until", { withTimezone: true }),
15
+ confirmationSentAt: timestamp("confirmation_sent_at", { withTimezone: true }),
16
+ confirmationToken: varchar("confirmation_token", { length: 255 }),
17
+ confirmedAt: timestamp("confirmed_at", { withTimezone: true }).generatedAlwaysAs(sql`LEAST(email_confirmed_at, phone_confirmed_at)`),
18
+ createdAt: timestamp("created_at", { withTimezone: true }),
19
+ deletedAt: timestamp("deleted_at", { withTimezone: true }),
20
+ email: varchar({ length: 255 }),
21
+ emailChange: varchar("email_change", { length: 255 }),
22
+ emailChangeConfirmStatus: smallint("email_change_confirm_status").default(0),
23
+ emailChangeSentAt: timestamp("email_change_sent_at", { withTimezone: true }),
24
+ emailChangeTokenCurrent: varchar("email_change_token_current", { length: 255 }).default(""),
25
+ emailChangeTokenNew: varchar("email_change_token_new", { length: 255 }),
26
+ emailConfirmedAt: timestamp("email_confirmed_at", { withTimezone: true }),
27
+ encryptedPassword: varchar("encrypted_password", { length: 255 }),
28
+ id: uuid().primaryKey(),
29
+ instanceId: uuid("instance_id"),
30
+ invitedAt: timestamp("invited_at", { withTimezone: true }),
31
+ isAnonymous: boolean("is_anonymous").default(false).notNull(),
32
+ isSsoUser: boolean("is_sso_user").default(false).notNull(),
33
+ isSuperAdmin: boolean("is_super_admin"),
34
+ lastSignInAt: timestamp("last_sign_in_at", { withTimezone: true }),
35
+ phone: text().default(sql`NULL`),
36
+ phoneChange: text("phone_change").default(""),
37
+ phoneChangeSentAt: timestamp("phone_change_sent_at", { withTimezone: true }),
38
+ phoneChangeToken: varchar("phone_change_token", { length: 255 }).default(""),
39
+ phoneConfirmedAt: timestamp("phone_confirmed_at", { withTimezone: true }),
40
+ rawAppMetaData: jsonb("raw_app_meta_data"),
41
+ rawUserMetaData: jsonb("raw_user_meta_data"),
42
+ reauthenticationSentAt: timestamp("reauthentication_sent_at", { withTimezone: true }),
43
+ reauthenticationToken: varchar("reauthentication_token", { length: 255 }).default(""),
44
+ recoverySentAt: timestamp("recovery_sent_at", { withTimezone: true }),
45
+ recoveryToken: varchar("recovery_token", { length: 255 }),
46
+ role: varchar({ length: 255 }),
47
+ updatedAt: timestamp("updated_at", { withTimezone: true })
48
+ });
49
+ //#endregion
50
+ export { authSchema, authUsers };
@@ -0,0 +1,58 @@
1
+ import { AnyRelations, EmptyRelations } from "drizzle-orm";
2
+ import { DrizzlePgConfig } from "drizzle-orm/pg-core";
3
+ import { PostgresJsDatabase } from "drizzle-orm/postgres-js";
4
+ import { JwtPayload, SupabaseClient } from "@supabase/supabase-js";
5
+ //#region src/clients.d.ts
6
+ type CloseFn = (options?: {
7
+ timeout?: number;
8
+ }) => Promise<void>;
9
+ type CreateClientConfig<TRelations extends AnyRelations = EmptyRelations> = DrizzlePgConfig<TRelations> & {
10
+ /** Overrides `process.env.SUPABASE_DATABASE_URL`. */
11
+ connectionString?: string;
12
+ /**
13
+ * Require the Supabase transaction pooler: port 6543 on a non-local host.
14
+ * Pass `true` in production (e.g. `process.env.VERCEL_ENV === "production"`)
15
+ * to fail at client creation rather than exhaust connections under load.
16
+ * Default `false`, which checks only that a URL is present.
17
+ */
18
+ requirePooler?: boolean;
19
+ };
20
+ type ResolveDatabaseUrlOptions = Pick<CreateClientConfig, "connectionString" | "requirePooler">;
21
+ /**
22
+ * The connection string every factory uses: `connectionString`, else
23
+ * `SUPABASE_DATABASE_URL`. Throws when neither is set, and with
24
+ * `requirePooler` also when the URL is not the transaction pooler. Read per
25
+ * call, never at import, so a build without server secrets does not fail.
26
+ * Errors never echo the URL, which carries the password.
27
+ */
28
+ declare function resolveDatabaseUrl({ connectionString, requirePooler }?: ResolveDatabaseUrlOptions): string;
29
+ type DrizzleClient<TRelations extends AnyRelations = EmptyRelations> = PostgresJsDatabase<TRelations> & {
30
+ close: CloseFn;
31
+ };
32
+ type SupabaseToken = Pick<JwtPayload, "role" | "sub">;
33
+ /**
34
+ * RLS-bypassing client (the docs' `admin`). Connects with
35
+ * `SUPABASE_DATABASE_URL` and queries drizzle directly. Use for webhooks,
36
+ * background jobs, and seeding, never for user-scoped reads/writes.
37
+ */
38
+ declare function createAdminClient<TRelations extends AnyRelations = EmptyRelations>(config?: CreateClientConfig<TRelations>): DrizzleClient<TRelations>;
39
+ /**
40
+ * RLS client scoped to an already-verified, decoded token (e.g. from
41
+ * `supabase.auth.getClaims()`). The role is clamped to the allowlist.
42
+ */
43
+ declare function createSupabaseClient<TRelations extends AnyRelations = EmptyRelations>(accessToken: SupabaseToken, config?: CreateClientConfig<TRelations>): DrizzleClient<TRelations>;
44
+ /**
45
+ * RLS client bound to a Supabase client. Verified claims are resolved via
46
+ * `supabase.auth.getClaims()` on every query, so it always reflects the live
47
+ * session.
48
+ */
49
+ declare function createAuthClient<TRelations extends AnyRelations = EmptyRelations>(supabase: SupabaseClient, config?: CreateClientConfig<TRelations>): DrizzleClient<TRelations>;
50
+ /** RLS client that runs every query as the `anon` role. */
51
+ declare function createAnonClient<TRelations extends AnyRelations = EmptyRelations>(config?: CreateClientConfig<TRelations>): DrizzleClient<TRelations>;
52
+ /**
53
+ * Client that runs every query as `service_role`, which bypasses RLS via
54
+ * Supabase's BYPASSRLS grant. Use for trusted server-side work.
55
+ */
56
+ declare function createServiceClient<TRelations extends AnyRelations = EmptyRelations>(config?: CreateClientConfig<TRelations>): DrizzleClient<TRelations>;
57
+ //#endregion
58
+ export { createAdminClient as a, createServiceClient as c, SupabaseToken as i, createSupabaseClient as l, DrizzleClient as n, createAnonClient as o, ResolveDatabaseUrlOptions as r, createAuthClient as s, CreateClientConfig as t, resolveDatabaseUrl as u };