@rebasepro/server-postgresql 0.3.0 → 0.5.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.
- package/README.md +69 -89
- package/dist/common/src/collections/default-collections.d.ts +5 -8
- package/dist/common/src/data/query_builder.d.ts +6 -2
- package/dist/common/src/util/permissions.d.ts +14 -6
- package/dist/index.es.js +379 -611
- package/dist/index.es.js.map +1 -1
- package/dist/index.umd.js +375 -607
- package/dist/index.umd.js.map +1 -1
- package/dist/server-postgresql/src/PostgresBackendDriver.d.ts +2 -0
- package/dist/server-postgresql/src/auth/ensure-tables.d.ts +7 -4
- package/dist/server-postgresql/src/auth/services.d.ts +17 -42
- package/dist/server-postgresql/src/data-transformer.d.ts +0 -3
- package/dist/server-postgresql/src/databasePoolManager.d.ts +1 -1
- package/dist/server-postgresql/src/schema/auth-schema.d.ts +87 -340
- package/dist/server-postgresql/src/services/EntityFetchService.d.ts +2 -1
- package/dist/server-postgresql/src/services/EntityPersistService.d.ts +4 -0
- package/dist/server-postgresql/src/services/entityService.d.ts +4 -0
- package/dist/server-postgresql/src/types.d.ts +3 -0
- package/dist/server-postgresql/src/utils/drizzle-conditions.d.ts +5 -1
- package/dist/server-postgresql/src/websocket.d.ts +8 -3
- package/dist/types/src/controllers/auth.d.ts +2 -2
- package/dist/types/src/controllers/client.d.ts +25 -40
- package/dist/types/src/controllers/data.d.ts +21 -3
- package/dist/types/src/controllers/data_driver.d.ts +5 -0
- package/dist/types/src/controllers/email.d.ts +2 -0
- package/dist/types/src/types/auth_adapter.d.ts +3 -56
- package/dist/types/src/types/backend.d.ts +38 -3
- package/dist/types/src/types/backend_hooks.d.ts +2 -17
- package/dist/types/src/types/collections.d.ts +30 -6
- package/dist/types/src/types/entity_views.d.ts +19 -28
- package/dist/types/src/types/properties.d.ts +9 -15
- package/dist/types/src/types/user_management_delegate.d.ts +16 -53
- package/dist/types/src/users/index.d.ts +0 -1
- package/dist/types/src/users/user.d.ts +0 -1
- package/package.json +6 -6
- package/src/PostgresBackendDriver.ts +10 -0
- package/src/PostgresBootstrapper.ts +27 -22
- package/src/auth/ensure-tables.ts +82 -129
- package/src/auth/services.ts +99 -197
- package/src/cli.ts +50 -23
- package/src/data-transformer.ts +57 -95
- package/src/databasePoolManager.ts +2 -1
- package/src/schema/auth-schema.ts +13 -69
- package/src/schema/doctor.ts +44 -3
- package/src/schema/generate-drizzle-schema-logic.ts +33 -3
- package/src/schema/generate-drizzle-schema.ts +2 -6
- package/src/schema/introspect-db-logic.ts +7 -0
- package/src/services/EntityFetchService.ts +13 -1
- package/src/services/EntityPersistService.ts +38 -12
- package/src/services/entityService.ts +7 -0
- package/src/types.ts +4 -0
- package/src/utils/drizzle-conditions.ts +40 -5
- package/src/websocket.ts +38 -25
- package/test/auth-services.test.ts +7 -150
- package/test/doctor.test.ts +6 -2
- package/test/relation-pipeline-gaps.test.ts +315 -0
- package/dist/server-postgresql/src/schema/default-collections.d.ts +0 -2
- package/dist/types/src/users/roles.d.ts +0 -14
- package/drizzle.test.config.ts +0 -10
- package/src/schema/default-collections.ts +0 -69
|
@@ -51,6 +51,7 @@ export declare class PostgresBackendDriver implements DataDriver {
|
|
|
51
51
|
listenEntity<M extends Record<string, unknown>>({ path, entityId, collection, onUpdate, onError }: ListenEntityProps<M>): () => void;
|
|
52
52
|
saveEntity<M extends Record<string, unknown>>({ path, entityId, values, collection, status }: SaveEntityProps<M>): Promise<Entity<M>>;
|
|
53
53
|
deleteEntity<M extends Record<string, unknown>>({ entity, collection }: DeleteEntityProps<M>): Promise<void>;
|
|
54
|
+
deleteAll(path: string): Promise<void>;
|
|
54
55
|
checkUniqueField(path: string, name: string, value: unknown, entityId?: string, collection?: EntityCollection): Promise<boolean>;
|
|
55
56
|
countEntities<M extends Record<string, unknown>>({ path, collection, filter, searchString }: FetchCollectionProps<M>): Promise<number>;
|
|
56
57
|
private getTargetDb;
|
|
@@ -103,6 +104,7 @@ export declare class AuthenticatedPostgresBackendDriver implements DataDriver {
|
|
|
103
104
|
listenEntity<M extends Record<string, unknown>>(props: ListenEntityProps<M>): () => void;
|
|
104
105
|
saveEntity<M extends Record<string, unknown>>(props: SaveEntityProps<M>): Promise<Entity<M>>;
|
|
105
106
|
deleteEntity<M extends Record<string, unknown>>(props: DeleteEntityProps<M>): Promise<void>;
|
|
107
|
+
deleteAll(path: string): Promise<void>;
|
|
106
108
|
checkUniqueField(path: string, name: string, value: unknown, entityId?: string, collection?: EntityCollection): Promise<boolean>;
|
|
107
109
|
countEntities<M extends Record<string, unknown>>(props: FetchCollectionProps<M>): Promise<number>;
|
|
108
110
|
}
|
|
@@ -1,7 +1,10 @@
|
|
|
1
1
|
import { NodePgDatabase } from "drizzle-orm/node-postgres";
|
|
2
|
-
import {
|
|
2
|
+
import type { EntityCollection } from "@rebasepro/types";
|
|
3
3
|
/**
|
|
4
|
-
* Auto-create auth tables if they don't exist
|
|
5
|
-
*
|
|
4
|
+
* Auto-create auth tables if they don't exist.
|
|
5
|
+
*
|
|
6
|
+
* @param db — Drizzle database instance
|
|
7
|
+
* @param collection — The collection that represents auth users.
|
|
8
|
+
* When omitted, a default `rebase.users` table is created.
|
|
6
9
|
*/
|
|
7
|
-
export declare function ensureAuthTablesExist(db: NodePgDatabase,
|
|
10
|
+
export declare function ensureAuthTablesExist(db: NodePgDatabase, collection?: EntityCollection): Promise<void>;
|
|
@@ -1,15 +1,13 @@
|
|
|
1
1
|
import { NodePgDatabase } from "drizzle-orm/node-postgres";
|
|
2
|
-
import {
|
|
3
|
-
import { UserRepository,
|
|
2
|
+
import type { RebasePgTable } from "../types";
|
|
3
|
+
import { UserRepository, TokenRepository, MfaRepository, AuthRepository, UserData, CreateUserData, RoleData, CreateRoleData, RefreshTokenInfo, PasswordResetTokenInfo, UserIdentityData, ListUsersOptions, PaginatedUsersResult, MfaFactor, MfaChallengeInfo, RoleData as Role } from "@rebasepro/server-core";
|
|
4
4
|
export type { Role };
|
|
5
5
|
export interface AuthSchemaTables {
|
|
6
|
-
users:
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
appConfig: PgTable & Record<string, AnyPgColumn>;
|
|
12
|
-
userIdentities: PgTable & Record<string, AnyPgColumn>;
|
|
6
|
+
users: RebasePgTable;
|
|
7
|
+
refreshTokens: RebasePgTable;
|
|
8
|
+
passwordResetTokens: RebasePgTable;
|
|
9
|
+
appConfig: RebasePgTable;
|
|
10
|
+
userIdentities: RebasePgTable;
|
|
13
11
|
}
|
|
14
12
|
/**
|
|
15
13
|
* PostgreSQL implementation of UserRepository.
|
|
@@ -19,9 +17,7 @@ export declare class UserService implements UserRepository {
|
|
|
19
17
|
private db;
|
|
20
18
|
private usersTable;
|
|
21
19
|
private userIdentitiesTable;
|
|
22
|
-
|
|
23
|
-
private rolesTable;
|
|
24
|
-
constructor(db: NodePgDatabase, tableOrTables?: (PgTable & Record<string, AnyPgColumn>) | Partial<AuthSchemaTables>);
|
|
20
|
+
constructor(db: NodePgDatabase, tableOrTables?: RebasePgTable | Partial<AuthSchemaTables>);
|
|
25
21
|
private getQualifiedUsersTableName;
|
|
26
22
|
private mapRowToUser;
|
|
27
23
|
private mapPayload;
|
|
@@ -52,7 +48,7 @@ export declare class UserService implements UserRepository {
|
|
|
52
48
|
*/
|
|
53
49
|
getUserByVerificationToken(token: string): Promise<UserData | null>;
|
|
54
50
|
/**
|
|
55
|
-
* Get roles for a user from database
|
|
51
|
+
* Get roles for a user from database (inline TEXT[] column)
|
|
56
52
|
*/
|
|
57
53
|
getUserRoles(userId: string): Promise<Role[]>;
|
|
58
54
|
/**
|
|
@@ -60,11 +56,11 @@ export declare class UserService implements UserRepository {
|
|
|
60
56
|
*/
|
|
61
57
|
getUserRoleIds(userId: string): Promise<string[]>;
|
|
62
58
|
/**
|
|
63
|
-
* Set roles for a user
|
|
59
|
+
* Set roles for a user (replaces existing roles)
|
|
64
60
|
*/
|
|
65
61
|
setUserRoles(userId: string, roleIds: string[]): Promise<void>;
|
|
66
62
|
/**
|
|
67
|
-
* Assign a specific role to new user
|
|
63
|
+
* Assign a specific role to new user (appends if not present)
|
|
68
64
|
*/
|
|
69
65
|
assignDefaultRole(userId: string, roleId: string): Promise<void>;
|
|
70
66
|
/**
|
|
@@ -75,28 +71,10 @@ export declare class UserService implements UserRepository {
|
|
|
75
71
|
roles: Role[];
|
|
76
72
|
} | null>;
|
|
77
73
|
}
|
|
78
|
-
/**
|
|
79
|
-
* PostgreSQL implementation of RoleRepository.
|
|
80
|
-
* Handles all role-related database operations using Drizzle ORM.
|
|
81
|
-
*/
|
|
82
|
-
export declare class RoleService implements RoleRepository {
|
|
83
|
-
private db;
|
|
84
|
-
private rolesTable;
|
|
85
|
-
constructor(db: NodePgDatabase, tableOrTables?: (PgTable & Record<string, AnyPgColumn>) | Partial<AuthSchemaTables>);
|
|
86
|
-
private getQualifiedRolesTableName;
|
|
87
|
-
getRoleById(id: string): Promise<Role | null>;
|
|
88
|
-
listRoles(): Promise<Role[]>;
|
|
89
|
-
createRole(data: Omit<Role, "isAdmin" | "collectionPermissions"> & {
|
|
90
|
-
isAdmin?: boolean;
|
|
91
|
-
collectionPermissions?: Role["collectionPermissions"];
|
|
92
|
-
}): Promise<Role>;
|
|
93
|
-
updateRole(id: string, data: Partial<Omit<Role, "id">>): Promise<Role | null>;
|
|
94
|
-
deleteRole(id: string): Promise<void>;
|
|
95
|
-
}
|
|
96
74
|
export declare class RefreshTokenService {
|
|
97
75
|
private db;
|
|
98
76
|
private refreshTokensTable;
|
|
99
|
-
constructor(db: NodePgDatabase, tableOrTables?:
|
|
77
|
+
constructor(db: NodePgDatabase, tableOrTables?: RebasePgTable | Partial<AuthSchemaTables>);
|
|
100
78
|
private getQualifiedRefreshTokensTableName;
|
|
101
79
|
createToken(userId: string, tokenHash: string, expiresAt: Date, userAgent?: string, ipAddress?: string): Promise<void>;
|
|
102
80
|
findByHash(tokenHash: string): Promise<RefreshTokenInfo | null>;
|
|
@@ -111,7 +89,7 @@ export declare class RefreshTokenService {
|
|
|
111
89
|
export declare class PasswordResetTokenService {
|
|
112
90
|
private db;
|
|
113
91
|
private passwordResetTokensTable;
|
|
114
|
-
constructor(db: NodePgDatabase, tableOrTables?:
|
|
92
|
+
constructor(db: NodePgDatabase, tableOrTables?: RebasePgTable | Partial<AuthSchemaTables>);
|
|
115
93
|
private getQualifiedPasswordResetTokensTableName;
|
|
116
94
|
/**
|
|
117
95
|
* Create a password reset token
|
|
@@ -145,7 +123,7 @@ export declare class PostgresTokenRepository implements TokenRepository {
|
|
|
145
123
|
private db;
|
|
146
124
|
private refreshTokenService;
|
|
147
125
|
private passwordResetTokenService;
|
|
148
|
-
constructor(db: NodePgDatabase, tableOrTables?:
|
|
126
|
+
constructor(db: NodePgDatabase, tableOrTables?: RebasePgTable | Partial<AuthSchemaTables>);
|
|
149
127
|
createRefreshToken(userId: string, tokenHash: string, expiresAt: Date, userAgent?: string, ipAddress?: string): Promise<void>;
|
|
150
128
|
findRefreshTokenByHash(tokenHash: string): Promise<RefreshTokenInfo | null>;
|
|
151
129
|
deleteRefreshToken(tokenHash: string): Promise<void>;
|
|
@@ -166,9 +144,8 @@ export declare class PostgresTokenRepository implements TokenRepository {
|
|
|
166
144
|
export declare class PostgresAuthRepository implements AuthRepository {
|
|
167
145
|
private db;
|
|
168
146
|
private userService;
|
|
169
|
-
private roleService;
|
|
170
147
|
private tokenRepository;
|
|
171
|
-
constructor(db: NodePgDatabase, tableOrTables?:
|
|
148
|
+
constructor(db: NodePgDatabase, tableOrTables?: RebasePgTable | Partial<AuthSchemaTables>);
|
|
172
149
|
createUser(data: CreateUserData): Promise<UserData>;
|
|
173
150
|
getUserById(id: string): Promise<UserData | null>;
|
|
174
151
|
getUserByEmail(email: string): Promise<UserData | null>;
|
|
@@ -193,9 +170,9 @@ export declare class PostgresAuthRepository implements AuthRepository {
|
|
|
193
170
|
} | null>;
|
|
194
171
|
getRoleById(id: string): Promise<RoleData | null>;
|
|
195
172
|
listRoles(): Promise<RoleData[]>;
|
|
196
|
-
createRole(
|
|
173
|
+
createRole(_data: CreateRoleData): Promise<RoleData>;
|
|
197
174
|
updateRole(id: string, data: Partial<Omit<RoleData, "id">>): Promise<RoleData | null>;
|
|
198
|
-
deleteRole(
|
|
175
|
+
deleteRole(_id: string): Promise<void>;
|
|
199
176
|
createRefreshToken(userId: string, tokenHash: string, expiresAt: Date, userAgent?: string, ipAddress?: string): Promise<void>;
|
|
200
177
|
findRefreshTokenByHash(tokenHash: string): Promise<RefreshTokenInfo | null>;
|
|
201
178
|
deleteRefreshToken(tokenHash: string): Promise<void>;
|
|
@@ -252,5 +229,3 @@ export declare class MfaService implements MfaRepository {
|
|
|
252
229
|
}
|
|
253
230
|
/** PostgreSQL user repository implementation */
|
|
254
231
|
export type PostgresUserRepository = UserService;
|
|
255
|
-
/** PostgreSQL role repository implementation */
|
|
256
|
-
export type PostgresRoleRepository = RoleService;
|
|
@@ -42,9 +42,6 @@ export declare function serializePropertyToServer(value: unknown, property: Prop
|
|
|
42
42
|
* Transform IDs back to relation objects for frontend
|
|
43
43
|
*/
|
|
44
44
|
export declare function parseDataFromServer<M extends Record<string, unknown>>(data: M, collection: EntityCollection, db?: NodePgDatabase<Record<string, unknown>>, registry?: PostgresCollectionRegistry): Promise<M>;
|
|
45
|
-
/**
|
|
46
|
-
* Parse a single property value from database format to frontend format
|
|
47
|
-
*/
|
|
48
45
|
export declare function parsePropertyFromServer(value: unknown, property: Property, collection: EntityCollection, propertyKey?: string): unknown;
|
|
49
46
|
/**
|
|
50
47
|
* Lightweight value normalization for db.query results.
|
|
@@ -6,7 +6,7 @@ export declare class DatabasePoolManager {
|
|
|
6
6
|
readonly defaultDatabaseName: string;
|
|
7
7
|
private readonly rootConnectionString;
|
|
8
8
|
constructor(adminConnectionString: string);
|
|
9
|
-
getDrizzle(databaseName: string): NodePgDatabase<
|
|
9
|
+
getDrizzle(databaseName: string): NodePgDatabase<Record<string, never>>;
|
|
10
10
|
getPool(databaseName: string): Pool;
|
|
11
11
|
/**
|
|
12
12
|
* Disconnect and remove the pool for a specific database.
|
|
@@ -1,8 +1,7 @@
|
|
|
1
1
|
/**
|
|
2
2
|
* Factory function to dynamically create the auth tables bound to the specified schema names.
|
|
3
3
|
*/
|
|
4
|
-
export declare function createAuthSchema(
|
|
5
|
-
rolesSchema: import("drizzle-orm/pg-core").PgSchema<string> | null;
|
|
4
|
+
export declare function createAuthSchema(usersSchemaName?: string): {
|
|
6
5
|
usersSchema: import("drizzle-orm/pg-core").PgSchema<string> | null;
|
|
7
6
|
users: import("drizzle-orm/pg-core").PgTableWithColumns<{
|
|
8
7
|
name: "users";
|
|
@@ -171,6 +170,49 @@ export declare function createAuthSchema(rolesSchemaName?: string, usersSchemaNa
|
|
|
171
170
|
identity: undefined;
|
|
172
171
|
generated: undefined;
|
|
173
172
|
}, {}, {}>;
|
|
173
|
+
roles: import("drizzle-orm/pg-core").PgColumn<{
|
|
174
|
+
name: "roles";
|
|
175
|
+
tableName: "users";
|
|
176
|
+
dataType: "array";
|
|
177
|
+
columnType: "PgArray";
|
|
178
|
+
data: string[];
|
|
179
|
+
driverParam: string | string[];
|
|
180
|
+
notNull: true;
|
|
181
|
+
hasDefault: true;
|
|
182
|
+
isPrimaryKey: false;
|
|
183
|
+
isAutoincrement: false;
|
|
184
|
+
hasRuntimeDefault: false;
|
|
185
|
+
enumValues: [string, ...string[]];
|
|
186
|
+
baseColumn: import("drizzle-orm").Column<{
|
|
187
|
+
name: "roles";
|
|
188
|
+
tableName: "users";
|
|
189
|
+
dataType: "string";
|
|
190
|
+
columnType: "PgText";
|
|
191
|
+
data: string;
|
|
192
|
+
driverParam: string;
|
|
193
|
+
notNull: false;
|
|
194
|
+
hasDefault: false;
|
|
195
|
+
isPrimaryKey: false;
|
|
196
|
+
isAutoincrement: false;
|
|
197
|
+
hasRuntimeDefault: false;
|
|
198
|
+
enumValues: [string, ...string[]];
|
|
199
|
+
baseColumn: never;
|
|
200
|
+
identity: undefined;
|
|
201
|
+
generated: undefined;
|
|
202
|
+
}, {}, {}>;
|
|
203
|
+
identity: undefined;
|
|
204
|
+
generated: undefined;
|
|
205
|
+
}, {}, {
|
|
206
|
+
baseBuilder: import("drizzle-orm/pg-core").PgColumnBuilder<{
|
|
207
|
+
name: "roles";
|
|
208
|
+
dataType: "string";
|
|
209
|
+
columnType: "PgText";
|
|
210
|
+
data: string;
|
|
211
|
+
enumValues: [string, ...string[]];
|
|
212
|
+
driverParam: string;
|
|
213
|
+
}, {}, {}, import("drizzle-orm").ColumnBuilderExtraConfig>;
|
|
214
|
+
size: undefined;
|
|
215
|
+
}>;
|
|
174
216
|
metadata: import("drizzle-orm/pg-core").PgColumn<{
|
|
175
217
|
name: "metadata";
|
|
176
218
|
tableName: "users";
|
|
@@ -227,169 +269,6 @@ export declare function createAuthSchema(rolesSchemaName?: string, usersSchemaNa
|
|
|
227
269
|
};
|
|
228
270
|
dialect: "pg";
|
|
229
271
|
}>;
|
|
230
|
-
roles: import("drizzle-orm/pg-core").PgTableWithColumns<{
|
|
231
|
-
name: "roles";
|
|
232
|
-
schema: undefined;
|
|
233
|
-
columns: {
|
|
234
|
-
id: import("drizzle-orm/pg-core").PgColumn<{
|
|
235
|
-
name: "id";
|
|
236
|
-
tableName: "roles";
|
|
237
|
-
dataType: "string";
|
|
238
|
-
columnType: "PgVarchar";
|
|
239
|
-
data: string;
|
|
240
|
-
driverParam: string;
|
|
241
|
-
notNull: true;
|
|
242
|
-
hasDefault: false;
|
|
243
|
-
isPrimaryKey: true;
|
|
244
|
-
isAutoincrement: false;
|
|
245
|
-
hasRuntimeDefault: false;
|
|
246
|
-
enumValues: [string, ...string[]];
|
|
247
|
-
baseColumn: never;
|
|
248
|
-
identity: undefined;
|
|
249
|
-
generated: undefined;
|
|
250
|
-
}, {}, {
|
|
251
|
-
length: 50;
|
|
252
|
-
}>;
|
|
253
|
-
name: import("drizzle-orm/pg-core").PgColumn<{
|
|
254
|
-
name: "name";
|
|
255
|
-
tableName: "roles";
|
|
256
|
-
dataType: "string";
|
|
257
|
-
columnType: "PgVarchar";
|
|
258
|
-
data: string;
|
|
259
|
-
driverParam: string;
|
|
260
|
-
notNull: true;
|
|
261
|
-
hasDefault: false;
|
|
262
|
-
isPrimaryKey: false;
|
|
263
|
-
isAutoincrement: false;
|
|
264
|
-
hasRuntimeDefault: false;
|
|
265
|
-
enumValues: [string, ...string[]];
|
|
266
|
-
baseColumn: never;
|
|
267
|
-
identity: undefined;
|
|
268
|
-
generated: undefined;
|
|
269
|
-
}, {}, {
|
|
270
|
-
length: 100;
|
|
271
|
-
}>;
|
|
272
|
-
isAdmin: import("drizzle-orm/pg-core").PgColumn<{
|
|
273
|
-
name: "is_admin";
|
|
274
|
-
tableName: "roles";
|
|
275
|
-
dataType: "boolean";
|
|
276
|
-
columnType: "PgBoolean";
|
|
277
|
-
data: boolean;
|
|
278
|
-
driverParam: boolean;
|
|
279
|
-
notNull: true;
|
|
280
|
-
hasDefault: true;
|
|
281
|
-
isPrimaryKey: false;
|
|
282
|
-
isAutoincrement: false;
|
|
283
|
-
hasRuntimeDefault: false;
|
|
284
|
-
enumValues: undefined;
|
|
285
|
-
baseColumn: never;
|
|
286
|
-
identity: undefined;
|
|
287
|
-
generated: undefined;
|
|
288
|
-
}, {}, {}>;
|
|
289
|
-
defaultPermissions: import("drizzle-orm/pg-core").PgColumn<{
|
|
290
|
-
name: "default_permissions";
|
|
291
|
-
tableName: "roles";
|
|
292
|
-
dataType: "json";
|
|
293
|
-
columnType: "PgJsonb";
|
|
294
|
-
data: {
|
|
295
|
-
read?: boolean;
|
|
296
|
-
create?: boolean;
|
|
297
|
-
edit?: boolean;
|
|
298
|
-
delete?: boolean;
|
|
299
|
-
};
|
|
300
|
-
driverParam: unknown;
|
|
301
|
-
notNull: false;
|
|
302
|
-
hasDefault: false;
|
|
303
|
-
isPrimaryKey: false;
|
|
304
|
-
isAutoincrement: false;
|
|
305
|
-
hasRuntimeDefault: false;
|
|
306
|
-
enumValues: undefined;
|
|
307
|
-
baseColumn: never;
|
|
308
|
-
identity: undefined;
|
|
309
|
-
generated: undefined;
|
|
310
|
-
}, {}, {
|
|
311
|
-
$type: {
|
|
312
|
-
read?: boolean;
|
|
313
|
-
create?: boolean;
|
|
314
|
-
edit?: boolean;
|
|
315
|
-
delete?: boolean;
|
|
316
|
-
};
|
|
317
|
-
}>;
|
|
318
|
-
collectionPermissions: import("drizzle-orm/pg-core").PgColumn<{
|
|
319
|
-
name: "collection_permissions";
|
|
320
|
-
tableName: "roles";
|
|
321
|
-
dataType: "json";
|
|
322
|
-
columnType: "PgJsonb";
|
|
323
|
-
data: Record<string, {
|
|
324
|
-
read?: boolean;
|
|
325
|
-
create?: boolean;
|
|
326
|
-
edit?: boolean;
|
|
327
|
-
delete?: boolean;
|
|
328
|
-
}>;
|
|
329
|
-
driverParam: unknown;
|
|
330
|
-
notNull: false;
|
|
331
|
-
hasDefault: false;
|
|
332
|
-
isPrimaryKey: false;
|
|
333
|
-
isAutoincrement: false;
|
|
334
|
-
hasRuntimeDefault: false;
|
|
335
|
-
enumValues: undefined;
|
|
336
|
-
baseColumn: never;
|
|
337
|
-
identity: undefined;
|
|
338
|
-
generated: undefined;
|
|
339
|
-
}, {}, {
|
|
340
|
-
$type: Record<string, {
|
|
341
|
-
read?: boolean;
|
|
342
|
-
create?: boolean;
|
|
343
|
-
edit?: boolean;
|
|
344
|
-
delete?: boolean;
|
|
345
|
-
}>;
|
|
346
|
-
}>;
|
|
347
|
-
};
|
|
348
|
-
dialect: "pg";
|
|
349
|
-
}>;
|
|
350
|
-
userRoles: import("drizzle-orm/pg-core").PgTableWithColumns<{
|
|
351
|
-
name: "user_roles";
|
|
352
|
-
schema: undefined;
|
|
353
|
-
columns: {
|
|
354
|
-
userId: import("drizzle-orm/pg-core").PgColumn<{
|
|
355
|
-
name: "user_id";
|
|
356
|
-
tableName: "user_roles";
|
|
357
|
-
dataType: "string";
|
|
358
|
-
columnType: "PgUUID";
|
|
359
|
-
data: string;
|
|
360
|
-
driverParam: string;
|
|
361
|
-
notNull: true;
|
|
362
|
-
hasDefault: false;
|
|
363
|
-
isPrimaryKey: false;
|
|
364
|
-
isAutoincrement: false;
|
|
365
|
-
hasRuntimeDefault: false;
|
|
366
|
-
enumValues: undefined;
|
|
367
|
-
baseColumn: never;
|
|
368
|
-
identity: undefined;
|
|
369
|
-
generated: undefined;
|
|
370
|
-
}, {}, {}>;
|
|
371
|
-
roleId: import("drizzle-orm/pg-core").PgColumn<{
|
|
372
|
-
name: "role_id";
|
|
373
|
-
tableName: "user_roles";
|
|
374
|
-
dataType: "string";
|
|
375
|
-
columnType: "PgVarchar";
|
|
376
|
-
data: string;
|
|
377
|
-
driverParam: string;
|
|
378
|
-
notNull: true;
|
|
379
|
-
hasDefault: false;
|
|
380
|
-
isPrimaryKey: false;
|
|
381
|
-
isAutoincrement: false;
|
|
382
|
-
hasRuntimeDefault: false;
|
|
383
|
-
enumValues: [string, ...string[]];
|
|
384
|
-
baseColumn: never;
|
|
385
|
-
identity: undefined;
|
|
386
|
-
generated: undefined;
|
|
387
|
-
}, {}, {
|
|
388
|
-
length: 50;
|
|
389
|
-
}>;
|
|
390
|
-
};
|
|
391
|
-
dialect: "pg";
|
|
392
|
-
}>;
|
|
393
272
|
refreshTokens: import("drizzle-orm/pg-core").PgTableWithColumns<{
|
|
394
273
|
name: "refresh_tokens";
|
|
395
274
|
schema: undefined;
|
|
@@ -1178,7 +1057,6 @@ export declare function createAuthSchema(rolesSchemaName?: string, usersSchemaNa
|
|
|
1178
1057
|
dialect: "pg";
|
|
1179
1058
|
}>;
|
|
1180
1059
|
};
|
|
1181
|
-
export declare const rebaseSchema: import("drizzle-orm/pg-core").PgSchema<string> | null;
|
|
1182
1060
|
export declare const usersSchema: import("drizzle-orm/pg-core").PgSchema<string> | null;
|
|
1183
1061
|
export declare const users: import("drizzle-orm/pg-core").PgTableWithColumns<{
|
|
1184
1062
|
name: "users";
|
|
@@ -1347,6 +1225,49 @@ export declare const users: import("drizzle-orm/pg-core").PgTableWithColumns<{
|
|
|
1347
1225
|
identity: undefined;
|
|
1348
1226
|
generated: undefined;
|
|
1349
1227
|
}, {}, {}>;
|
|
1228
|
+
roles: import("drizzle-orm/pg-core").PgColumn<{
|
|
1229
|
+
name: "roles";
|
|
1230
|
+
tableName: "users";
|
|
1231
|
+
dataType: "array";
|
|
1232
|
+
columnType: "PgArray";
|
|
1233
|
+
data: string[];
|
|
1234
|
+
driverParam: string | string[];
|
|
1235
|
+
notNull: true;
|
|
1236
|
+
hasDefault: true;
|
|
1237
|
+
isPrimaryKey: false;
|
|
1238
|
+
isAutoincrement: false;
|
|
1239
|
+
hasRuntimeDefault: false;
|
|
1240
|
+
enumValues: [string, ...string[]];
|
|
1241
|
+
baseColumn: import("drizzle-orm").Column<{
|
|
1242
|
+
name: "roles";
|
|
1243
|
+
tableName: "users";
|
|
1244
|
+
dataType: "string";
|
|
1245
|
+
columnType: "PgText";
|
|
1246
|
+
data: string;
|
|
1247
|
+
driverParam: string;
|
|
1248
|
+
notNull: false;
|
|
1249
|
+
hasDefault: false;
|
|
1250
|
+
isPrimaryKey: false;
|
|
1251
|
+
isAutoincrement: false;
|
|
1252
|
+
hasRuntimeDefault: false;
|
|
1253
|
+
enumValues: [string, ...string[]];
|
|
1254
|
+
baseColumn: never;
|
|
1255
|
+
identity: undefined;
|
|
1256
|
+
generated: undefined;
|
|
1257
|
+
}, {}, {}>;
|
|
1258
|
+
identity: undefined;
|
|
1259
|
+
generated: undefined;
|
|
1260
|
+
}, {}, {
|
|
1261
|
+
baseBuilder: import("drizzle-orm/pg-core").PgColumnBuilder<{
|
|
1262
|
+
name: "roles";
|
|
1263
|
+
dataType: "string";
|
|
1264
|
+
columnType: "PgText";
|
|
1265
|
+
data: string;
|
|
1266
|
+
enumValues: [string, ...string[]];
|
|
1267
|
+
driverParam: string;
|
|
1268
|
+
}, {}, {}, import("drizzle-orm").ColumnBuilderExtraConfig>;
|
|
1269
|
+
size: undefined;
|
|
1270
|
+
}>;
|
|
1350
1271
|
metadata: import("drizzle-orm/pg-core").PgColumn<{
|
|
1351
1272
|
name: "metadata";
|
|
1352
1273
|
tableName: "users";
|
|
@@ -1403,169 +1324,6 @@ export declare const users: import("drizzle-orm/pg-core").PgTableWithColumns<{
|
|
|
1403
1324
|
};
|
|
1404
1325
|
dialect: "pg";
|
|
1405
1326
|
}>;
|
|
1406
|
-
export declare const roles: import("drizzle-orm/pg-core").PgTableWithColumns<{
|
|
1407
|
-
name: "roles";
|
|
1408
|
-
schema: undefined;
|
|
1409
|
-
columns: {
|
|
1410
|
-
id: import("drizzle-orm/pg-core").PgColumn<{
|
|
1411
|
-
name: "id";
|
|
1412
|
-
tableName: "roles";
|
|
1413
|
-
dataType: "string";
|
|
1414
|
-
columnType: "PgVarchar";
|
|
1415
|
-
data: string;
|
|
1416
|
-
driverParam: string;
|
|
1417
|
-
notNull: true;
|
|
1418
|
-
hasDefault: false;
|
|
1419
|
-
isPrimaryKey: true;
|
|
1420
|
-
isAutoincrement: false;
|
|
1421
|
-
hasRuntimeDefault: false;
|
|
1422
|
-
enumValues: [string, ...string[]];
|
|
1423
|
-
baseColumn: never;
|
|
1424
|
-
identity: undefined;
|
|
1425
|
-
generated: undefined;
|
|
1426
|
-
}, {}, {
|
|
1427
|
-
length: 50;
|
|
1428
|
-
}>;
|
|
1429
|
-
name: import("drizzle-orm/pg-core").PgColumn<{
|
|
1430
|
-
name: "name";
|
|
1431
|
-
tableName: "roles";
|
|
1432
|
-
dataType: "string";
|
|
1433
|
-
columnType: "PgVarchar";
|
|
1434
|
-
data: string;
|
|
1435
|
-
driverParam: string;
|
|
1436
|
-
notNull: true;
|
|
1437
|
-
hasDefault: false;
|
|
1438
|
-
isPrimaryKey: false;
|
|
1439
|
-
isAutoincrement: false;
|
|
1440
|
-
hasRuntimeDefault: false;
|
|
1441
|
-
enumValues: [string, ...string[]];
|
|
1442
|
-
baseColumn: never;
|
|
1443
|
-
identity: undefined;
|
|
1444
|
-
generated: undefined;
|
|
1445
|
-
}, {}, {
|
|
1446
|
-
length: 100;
|
|
1447
|
-
}>;
|
|
1448
|
-
isAdmin: import("drizzle-orm/pg-core").PgColumn<{
|
|
1449
|
-
name: "is_admin";
|
|
1450
|
-
tableName: "roles";
|
|
1451
|
-
dataType: "boolean";
|
|
1452
|
-
columnType: "PgBoolean";
|
|
1453
|
-
data: boolean;
|
|
1454
|
-
driverParam: boolean;
|
|
1455
|
-
notNull: true;
|
|
1456
|
-
hasDefault: true;
|
|
1457
|
-
isPrimaryKey: false;
|
|
1458
|
-
isAutoincrement: false;
|
|
1459
|
-
hasRuntimeDefault: false;
|
|
1460
|
-
enumValues: undefined;
|
|
1461
|
-
baseColumn: never;
|
|
1462
|
-
identity: undefined;
|
|
1463
|
-
generated: undefined;
|
|
1464
|
-
}, {}, {}>;
|
|
1465
|
-
defaultPermissions: import("drizzle-orm/pg-core").PgColumn<{
|
|
1466
|
-
name: "default_permissions";
|
|
1467
|
-
tableName: "roles";
|
|
1468
|
-
dataType: "json";
|
|
1469
|
-
columnType: "PgJsonb";
|
|
1470
|
-
data: {
|
|
1471
|
-
read?: boolean;
|
|
1472
|
-
create?: boolean;
|
|
1473
|
-
edit?: boolean;
|
|
1474
|
-
delete?: boolean;
|
|
1475
|
-
};
|
|
1476
|
-
driverParam: unknown;
|
|
1477
|
-
notNull: false;
|
|
1478
|
-
hasDefault: false;
|
|
1479
|
-
isPrimaryKey: false;
|
|
1480
|
-
isAutoincrement: false;
|
|
1481
|
-
hasRuntimeDefault: false;
|
|
1482
|
-
enumValues: undefined;
|
|
1483
|
-
baseColumn: never;
|
|
1484
|
-
identity: undefined;
|
|
1485
|
-
generated: undefined;
|
|
1486
|
-
}, {}, {
|
|
1487
|
-
$type: {
|
|
1488
|
-
read?: boolean;
|
|
1489
|
-
create?: boolean;
|
|
1490
|
-
edit?: boolean;
|
|
1491
|
-
delete?: boolean;
|
|
1492
|
-
};
|
|
1493
|
-
}>;
|
|
1494
|
-
collectionPermissions: import("drizzle-orm/pg-core").PgColumn<{
|
|
1495
|
-
name: "collection_permissions";
|
|
1496
|
-
tableName: "roles";
|
|
1497
|
-
dataType: "json";
|
|
1498
|
-
columnType: "PgJsonb";
|
|
1499
|
-
data: Record<string, {
|
|
1500
|
-
read?: boolean;
|
|
1501
|
-
create?: boolean;
|
|
1502
|
-
edit?: boolean;
|
|
1503
|
-
delete?: boolean;
|
|
1504
|
-
}>;
|
|
1505
|
-
driverParam: unknown;
|
|
1506
|
-
notNull: false;
|
|
1507
|
-
hasDefault: false;
|
|
1508
|
-
isPrimaryKey: false;
|
|
1509
|
-
isAutoincrement: false;
|
|
1510
|
-
hasRuntimeDefault: false;
|
|
1511
|
-
enumValues: undefined;
|
|
1512
|
-
baseColumn: never;
|
|
1513
|
-
identity: undefined;
|
|
1514
|
-
generated: undefined;
|
|
1515
|
-
}, {}, {
|
|
1516
|
-
$type: Record<string, {
|
|
1517
|
-
read?: boolean;
|
|
1518
|
-
create?: boolean;
|
|
1519
|
-
edit?: boolean;
|
|
1520
|
-
delete?: boolean;
|
|
1521
|
-
}>;
|
|
1522
|
-
}>;
|
|
1523
|
-
};
|
|
1524
|
-
dialect: "pg";
|
|
1525
|
-
}>;
|
|
1526
|
-
export declare const userRoles: import("drizzle-orm/pg-core").PgTableWithColumns<{
|
|
1527
|
-
name: "user_roles";
|
|
1528
|
-
schema: undefined;
|
|
1529
|
-
columns: {
|
|
1530
|
-
userId: import("drizzle-orm/pg-core").PgColumn<{
|
|
1531
|
-
name: "user_id";
|
|
1532
|
-
tableName: "user_roles";
|
|
1533
|
-
dataType: "string";
|
|
1534
|
-
columnType: "PgUUID";
|
|
1535
|
-
data: string;
|
|
1536
|
-
driverParam: string;
|
|
1537
|
-
notNull: true;
|
|
1538
|
-
hasDefault: false;
|
|
1539
|
-
isPrimaryKey: false;
|
|
1540
|
-
isAutoincrement: false;
|
|
1541
|
-
hasRuntimeDefault: false;
|
|
1542
|
-
enumValues: undefined;
|
|
1543
|
-
baseColumn: never;
|
|
1544
|
-
identity: undefined;
|
|
1545
|
-
generated: undefined;
|
|
1546
|
-
}, {}, {}>;
|
|
1547
|
-
roleId: import("drizzle-orm/pg-core").PgColumn<{
|
|
1548
|
-
name: "role_id";
|
|
1549
|
-
tableName: "user_roles";
|
|
1550
|
-
dataType: "string";
|
|
1551
|
-
columnType: "PgVarchar";
|
|
1552
|
-
data: string;
|
|
1553
|
-
driverParam: string;
|
|
1554
|
-
notNull: true;
|
|
1555
|
-
hasDefault: false;
|
|
1556
|
-
isPrimaryKey: false;
|
|
1557
|
-
isAutoincrement: false;
|
|
1558
|
-
hasRuntimeDefault: false;
|
|
1559
|
-
enumValues: [string, ...string[]];
|
|
1560
|
-
baseColumn: never;
|
|
1561
|
-
identity: undefined;
|
|
1562
|
-
generated: undefined;
|
|
1563
|
-
}, {}, {
|
|
1564
|
-
length: 50;
|
|
1565
|
-
}>;
|
|
1566
|
-
};
|
|
1567
|
-
dialect: "pg";
|
|
1568
|
-
}>;
|
|
1569
1327
|
export declare const refreshTokens: import("drizzle-orm/pg-core").PgTableWithColumns<{
|
|
1570
1328
|
name: "refresh_tokens";
|
|
1571
1329
|
schema: undefined;
|
|
@@ -2354,20 +2112,12 @@ export declare const recoveryCodes: import("drizzle-orm/pg-core").PgTableWithCol
|
|
|
2354
2112
|
dialect: "pg";
|
|
2355
2113
|
}>;
|
|
2356
2114
|
export declare const usersRelations: import("drizzle-orm").Relations<"users", {
|
|
2357
|
-
userRoles: import("drizzle-orm").Many<"user_roles">;
|
|
2358
2115
|
refreshTokens: import("drizzle-orm").Many<"refresh_tokens">;
|
|
2359
2116
|
passwordResetTokens: import("drizzle-orm").Many<"password_reset_tokens">;
|
|
2360
2117
|
userIdentities: import("drizzle-orm").Many<"user_identities">;
|
|
2361
2118
|
mfaFactors: import("drizzle-orm").Many<"mfa_factors">;
|
|
2362
2119
|
recoveryCodes: import("drizzle-orm").Many<"recovery_codes">;
|
|
2363
2120
|
}>;
|
|
2364
|
-
export declare const rolesRelations: import("drizzle-orm").Relations<"roles", {
|
|
2365
|
-
userRoles: import("drizzle-orm").Many<"user_roles">;
|
|
2366
|
-
}>;
|
|
2367
|
-
export declare const userRolesRelations: import("drizzle-orm").Relations<"user_roles", {
|
|
2368
|
-
user: import("drizzle-orm").One<"users", true>;
|
|
2369
|
-
role: import("drizzle-orm").One<"roles", true>;
|
|
2370
|
-
}>;
|
|
2371
2121
|
export declare const refreshTokensRelations: import("drizzle-orm").Relations<"refresh_tokens", {
|
|
2372
2122
|
user: import("drizzle-orm").One<"users", true>;
|
|
2373
2123
|
}>;
|
|
@@ -2389,9 +2139,6 @@ export declare const recoveryCodesRelations: import("drizzle-orm").Relations<"re
|
|
|
2389
2139
|
}>;
|
|
2390
2140
|
export type User = typeof users.$inferSelect;
|
|
2391
2141
|
export type NewUser = typeof users.$inferInsert;
|
|
2392
|
-
export type Role = typeof roles.$inferSelect;
|
|
2393
|
-
export type NewRole = typeof roles.$inferInsert;
|
|
2394
|
-
export type UserRole = typeof userRoles.$inferSelect;
|
|
2395
2142
|
export type RefreshToken = typeof refreshTokens.$inferSelect;
|
|
2396
2143
|
export type PasswordResetToken = typeof passwordResetTokens.$inferSelect;
|
|
2397
2144
|
export type AppConfig = typeof appConfig.$inferSelect;
|