@rebasepro/server-postgresql 0.4.0 → 0.6.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/{server-postgresql/src/PostgresAdapter.d.ts → PostgresAdapter.d.ts} +1 -1
- package/dist/{server-postgresql/src/PostgresBackendDriver.d.ts → PostgresBackendDriver.d.ts} +2 -2
- package/dist/{server-postgresql/src/PostgresBootstrapper.d.ts → PostgresBootstrapper.d.ts} +11 -1
- package/dist/{server-postgresql/src/auth → auth}/services.d.ts +11 -11
- package/dist/{server-postgresql/src/collections → collections}/PostgresCollectionRegistry.d.ts +4 -0
- package/dist/{server-postgresql/src/data-transformer.d.ts → data-transformer.d.ts} +0 -3
- package/dist/{server-postgresql/src/databasePoolManager.d.ts → databasePoolManager.d.ts} +1 -1
- package/dist/index.es.js +10174 -11184
- package/dist/index.es.js.map +1 -1
- package/dist/index.umd.js +10735 -11462
- package/dist/index.umd.js.map +1 -1
- package/dist/{server-postgresql/src/services → services}/EntityPersistService.d.ts +0 -14
- package/dist/types.d.ts +3 -0
- package/dist/utils/pg-error-utils.d.ts +55 -0
- package/dist/{server-postgresql/src/websocket.d.ts → websocket.d.ts} +8 -3
- package/package.json +24 -21
- package/src/PostgresAdapter.ts +9 -10
- package/src/PostgresBackendDriver.ts +135 -122
- package/src/PostgresBootstrapper.ts +90 -16
- package/src/auth/ensure-tables.ts +28 -5
- package/src/auth/services.ts +56 -45
- package/src/cli.ts +140 -110
- package/src/collections/PostgresCollectionRegistry.ts +7 -0
- package/src/connection.ts +11 -6
- package/src/data-transformer.ts +73 -109
- package/src/databasePoolManager.ts +5 -3
- package/src/history/HistoryService.ts +3 -2
- package/src/history/ensure-history-table.ts +5 -4
- package/src/schema/auth-schema.ts +1 -2
- package/src/schema/doctor-cli.ts +2 -1
- package/src/schema/doctor.ts +40 -37
- package/src/schema/generate-drizzle-schema-logic.ts +56 -18
- package/src/schema/generate-drizzle-schema.ts +11 -11
- package/src/schema/introspect-db-inference.ts +25 -25
- package/src/schema/introspect-db-logic.ts +38 -38
- package/src/schema/introspect-db.ts +28 -27
- package/src/services/BranchService.ts +14 -0
- package/src/services/EntityFetchService.ts +28 -25
- package/src/services/EntityPersistService.ts +11 -124
- package/src/services/RelationService.ts +57 -37
- package/src/services/entity-helpers.ts +6 -2
- package/src/services/realtimeService.ts +45 -32
- package/src/types.ts +4 -0
- package/src/utils/drizzle-conditions.ts +31 -15
- package/src/utils/pg-error-utils.ts +211 -0
- package/src/websocket.ts +51 -33
- package/test/auth-services.test.ts +36 -19
- package/test/batch-many-to-many-regression.test.ts +119 -39
- package/test/data-transformer-hardening.test.ts +67 -33
- package/test/data-transformer.test.ts +4 -2
- package/test/doctor.test.ts +10 -5
- package/test/drizzle-conditions.test.ts +59 -6
- package/test/generate-drizzle-schema.test.ts +65 -40
- package/test/introspect-db-generation.test.ts +179 -81
- package/test/introspect-db-utils.test.ts +92 -37
- package/test/mocks/chalk.cjs +7 -0
- package/test/pg-error-utils.test.ts +221 -0
- package/test/postgresDataDriver.test.ts +14 -5
- package/test/property-ordering.test.ts +126 -79
- package/test/realtimeService.test.ts +6 -2
- package/test/relation-pipeline-gaps.test.ts +84 -36
- package/test/relations.test.ts +247 -0
- package/test/unmapped-tables-safety.test.ts +14 -6
- package/test/websocket.test.ts +1 -1
- package/tsconfig.json +5 -0
- package/tsconfig.prod.json +3 -0
- package/vite.config.ts +5 -5
- package/dist/common/src/collections/CollectionRegistry.d.ts +0 -56
- package/dist/common/src/collections/default-collections.d.ts +0 -9
- package/dist/common/src/collections/index.d.ts +0 -2
- package/dist/common/src/data/buildRebaseData.d.ts +0 -14
- package/dist/common/src/data/query_builder.d.ts +0 -55
- package/dist/common/src/index.d.ts +0 -4
- package/dist/common/src/util/builders.d.ts +0 -57
- package/dist/common/src/util/callbacks.d.ts +0 -6
- package/dist/common/src/util/collections.d.ts +0 -11
- package/dist/common/src/util/common.d.ts +0 -2
- package/dist/common/src/util/conditions.d.ts +0 -26
- package/dist/common/src/util/entities.d.ts +0 -58
- package/dist/common/src/util/enums.d.ts +0 -3
- package/dist/common/src/util/index.d.ts +0 -16
- package/dist/common/src/util/navigation_from_path.d.ts +0 -34
- package/dist/common/src/util/navigation_utils.d.ts +0 -20
- package/dist/common/src/util/parent_references_from_path.d.ts +0 -6
- package/dist/common/src/util/paths.d.ts +0 -14
- package/dist/common/src/util/permissions.d.ts +0 -6
- package/dist/common/src/util/references.d.ts +0 -2
- package/dist/common/src/util/relations.d.ts +0 -22
- package/dist/common/src/util/resolutions.d.ts +0 -72
- package/dist/common/src/util/storage.d.ts +0 -24
- package/dist/types/src/controllers/analytics_controller.d.ts +0 -7
- package/dist/types/src/controllers/auth.d.ts +0 -104
- package/dist/types/src/controllers/client.d.ts +0 -168
- package/dist/types/src/controllers/collection_registry.d.ts +0 -46
- package/dist/types/src/controllers/customization_controller.d.ts +0 -60
- package/dist/types/src/controllers/data.d.ts +0 -207
- package/dist/types/src/controllers/data_driver.d.ts +0 -218
- package/dist/types/src/controllers/database_admin.d.ts +0 -11
- package/dist/types/src/controllers/dialogs_controller.d.ts +0 -36
- package/dist/types/src/controllers/effective_role.d.ts +0 -4
- package/dist/types/src/controllers/email.d.ts +0 -36
- package/dist/types/src/controllers/index.d.ts +0 -18
- package/dist/types/src/controllers/local_config_persistence.d.ts +0 -20
- package/dist/types/src/controllers/navigation.d.ts +0 -225
- package/dist/types/src/controllers/registry.d.ts +0 -63
- package/dist/types/src/controllers/side_dialogs_controller.d.ts +0 -67
- package/dist/types/src/controllers/side_entity_controller.d.ts +0 -97
- package/dist/types/src/controllers/snackbar.d.ts +0 -24
- package/dist/types/src/controllers/storage.d.ts +0 -171
- package/dist/types/src/index.d.ts +0 -4
- package/dist/types/src/rebase_context.d.ts +0 -122
- package/dist/types/src/types/auth_adapter.d.ts +0 -301
- package/dist/types/src/types/backend.d.ts +0 -536
- package/dist/types/src/types/backend_hooks.d.ts +0 -172
- package/dist/types/src/types/builders.d.ts +0 -15
- package/dist/types/src/types/chips.d.ts +0 -5
- package/dist/types/src/types/collections.d.ts +0 -941
- package/dist/types/src/types/component_ref.d.ts +0 -47
- package/dist/types/src/types/cron.d.ts +0 -102
- package/dist/types/src/types/data_source.d.ts +0 -64
- package/dist/types/src/types/database_adapter.d.ts +0 -94
- package/dist/types/src/types/entities.d.ts +0 -145
- package/dist/types/src/types/entity_actions.d.ts +0 -104
- package/dist/types/src/types/entity_callbacks.d.ts +0 -173
- package/dist/types/src/types/entity_link_builder.d.ts +0 -7
- package/dist/types/src/types/entity_overrides.d.ts +0 -10
- package/dist/types/src/types/entity_views.d.ts +0 -87
- package/dist/types/src/types/export_import.d.ts +0 -21
- package/dist/types/src/types/formex.d.ts +0 -40
- package/dist/types/src/types/index.d.ts +0 -28
- package/dist/types/src/types/locales.d.ts +0 -4
- package/dist/types/src/types/modify_collections.d.ts +0 -5
- package/dist/types/src/types/plugins.d.ts +0 -282
- package/dist/types/src/types/properties.d.ts +0 -1181
- package/dist/types/src/types/property_config.d.ts +0 -74
- package/dist/types/src/types/relations.d.ts +0 -336
- package/dist/types/src/types/slots.d.ts +0 -262
- package/dist/types/src/types/translations.d.ts +0 -900
- package/dist/types/src/types/user_management_delegate.d.ts +0 -86
- package/dist/types/src/types/websockets.d.ts +0 -78
- package/dist/types/src/users/index.d.ts +0 -1
- package/dist/types/src/users/user.d.ts +0 -50
- package/drizzle.test.config.ts +0 -10
- /package/dist/{server-postgresql/src/auth → auth}/ensure-tables.d.ts +0 -0
- /package/dist/{server-postgresql/src/cli.d.ts → cli.d.ts} +0 -0
- /package/dist/{server-postgresql/src/connection.d.ts → connection.d.ts} +0 -0
- /package/dist/{server-postgresql/src/history → history}/HistoryService.d.ts +0 -0
- /package/dist/{server-postgresql/src/history → history}/ensure-history-table.d.ts +0 -0
- /package/dist/{server-postgresql/src/index.d.ts → index.d.ts} +0 -0
- /package/dist/{server-postgresql/src/interfaces.d.ts → interfaces.d.ts} +0 -0
- /package/dist/{server-postgresql/src/schema → schema}/auth-schema.d.ts +0 -0
- /package/dist/{server-postgresql/src/schema → schema}/doctor-cli.d.ts +0 -0
- /package/dist/{server-postgresql/src/schema → schema}/doctor.d.ts +0 -0
- /package/dist/{server-postgresql/src/schema → schema}/generate-drizzle-schema-logic.d.ts +0 -0
- /package/dist/{server-postgresql/src/schema → schema}/generate-drizzle-schema.d.ts +0 -0
- /package/dist/{server-postgresql/src/schema → schema}/introspect-db-inference.d.ts +0 -0
- /package/dist/{server-postgresql/src/schema → schema}/introspect-db-logic.d.ts +0 -0
- /package/dist/{server-postgresql/src/schema → schema}/introspect-db.d.ts +0 -0
- /package/dist/{server-postgresql/src/schema → schema}/test-schema.d.ts +0 -0
- /package/dist/{server-postgresql/src/services → services}/BranchService.d.ts +0 -0
- /package/dist/{server-postgresql/src/services → services}/EntityFetchService.d.ts +0 -0
- /package/dist/{server-postgresql/src/services → services}/RelationService.d.ts +0 -0
- /package/dist/{server-postgresql/src/services → services}/entity-helpers.d.ts +0 -0
- /package/dist/{server-postgresql/src/services → services}/entityService.d.ts +0 -0
- /package/dist/{server-postgresql/src/services → services}/index.d.ts +0 -0
- /package/dist/{server-postgresql/src/services → services}/realtimeService.d.ts +0 -0
- /package/dist/{server-postgresql/src/utils → utils}/drizzle-conditions.d.ts +0 -0
package/README.md
CHANGED
|
@@ -1,106 +1,86 @@
|
|
|
1
|
-
# @rebasepro/postgresql
|
|
1
|
+
# @rebasepro/server-postgresql
|
|
2
2
|
|
|
3
|
-
PostgreSQL
|
|
4
|
-
|
|
5
|
-
This package provides a complete client-side implementation for connecting Rebase applications to PostgreSQL backends, featuring real-time synchronization via WebSockets.
|
|
3
|
+
PostgreSQL database driver for Rebase, built on Drizzle ORM.
|
|
6
4
|
|
|
7
5
|
## Installation
|
|
8
6
|
|
|
9
7
|
```bash
|
|
10
|
-
|
|
8
|
+
pnpm add @rebasepro/server-postgresql
|
|
11
9
|
```
|
|
12
10
|
|
|
13
|
-
##
|
|
11
|
+
## What This Package Does
|
|
14
12
|
|
|
15
|
-
|
|
13
|
+
Implements the Rebase `DatabaseAdapter` / `BackendBootstrapper` interfaces for PostgreSQL. It provides connection pooling, a Drizzle-based data driver, Postgres LISTEN/NOTIFY realtime, auth table management, entity history, schema generation, branching, read replicas, and WebSocket support. Plug it into `@rebasepro/server-core` via `createPostgresAdapter()` or `createPostgresBootstrapper()`.
|
|
16
14
|
|
|
17
|
-
|
|
18
|
-
import { usePostgresDataSource } from "@rebasepro/postgresql";
|
|
19
|
-
import { Rebase } from "@rebasepro/core";
|
|
20
|
-
|
|
21
|
-
function App() {
|
|
22
|
-
const dataSource = usePostgresDataSource({
|
|
23
|
-
baseUrl: "http://localhost:3001",
|
|
24
|
-
websocketUrl: "ws://localhost:3001", // Optional, will be inferred from baseUrl
|
|
25
|
-
headers: { // Optional
|
|
26
|
-
"Authorization": "Bearer your-token"
|
|
27
|
-
}
|
|
28
|
-
});
|
|
29
|
-
|
|
30
|
-
return (
|
|
31
|
-
<Rebase
|
|
32
|
-
dataSource={dataSource}
|
|
33
|
-
collections={collections}
|
|
34
|
-
// ... other props
|
|
35
|
-
/>
|
|
36
|
-
);
|
|
37
|
-
}
|
|
38
|
-
```
|
|
15
|
+
## Key Exports
|
|
39
16
|
|
|
40
|
-
|
|
17
|
+
| Export | Description |
|
|
18
|
+
|--------|-------------|
|
|
19
|
+
| `createPostgresAdapter(config)` | Creates a `DatabaseAdapter` for use with `initializeRebaseBackend({ database: ... })`. Recommended API. |
|
|
20
|
+
| `createPostgresBootstrapper(config)` | Lower-level `BackendBootstrapper` factory. Used internally by the adapter. |
|
|
21
|
+
| `createPostgresDatabaseConnection(url, schema?, poolConfig?)` | Creates a production-grade pooled Drizzle connection. Returns `{ db, pool, connectionString }`. |
|
|
22
|
+
| `createDirectDatabaseConnection(url, schema?, poolConfig?)` | Non-pooled connection for LISTEN/NOTIFY and advisory locks (bypasses PgBouncer). |
|
|
23
|
+
| `createReadReplicaConnection(url, schema?, poolConfig?)` | Read-only connection for routing reads to replicas. |
|
|
24
|
+
| `PostgresBackendDriver` | The `DataDriver` implementation — CRUD, filtering, RLS, subcollections, admin SQL. |
|
|
25
|
+
| `RealtimeService` | Postgres LISTEN/NOTIFY-based `RealtimeProvider`. |
|
|
26
|
+
| `DatabasePoolManager` | Per-branch/per-tenant dynamic pool management (used with `ADMIN_CONNECTION_STRING`). |
|
|
27
|
+
| `PostgresCollectionRegistry` | Collection → Drizzle table registry with enum and relation tracking. |
|
|
28
|
+
| `BranchService` | Database branching (schema-level isolation). |
|
|
29
|
+
| `generateDrizzleSchema(collections)` | Generates Drizzle schema code from collection definitions. |
|
|
30
|
+
| `createAuthSchema(schemaName?)` | Generates Drizzle tables for the auth system (`users`, `roles`, `user_roles`). |
|
|
41
31
|
|
|
42
|
-
|
|
43
|
-
import { createPostgresDataSource } from "@rebasepro/postgresql";
|
|
32
|
+
## Quick Start
|
|
44
33
|
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
|
|
34
|
+
```typescript
|
|
35
|
+
import { createPostgresDatabaseConnection } from "@rebasepro/server-postgresql";
|
|
36
|
+
import { createPostgresAdapter } from "@rebasepro/server-postgresql";
|
|
37
|
+
import { initializeRebaseBackend } from "@rebasepro/server-core";
|
|
38
|
+
import * as schema from "./generated/schema";
|
|
39
|
+
|
|
40
|
+
// Create connection
|
|
41
|
+
const { db, pool } = createPostgresDatabaseConnection(
|
|
42
|
+
process.env.DATABASE_URL,
|
|
43
|
+
schema
|
|
44
|
+
);
|
|
45
|
+
|
|
46
|
+
// Create adapter and pass to server-core
|
|
47
|
+
const database = createPostgresAdapter({
|
|
48
|
+
connection: db,
|
|
49
|
+
connectionString: process.env.DATABASE_URL,
|
|
50
|
+
schema: { tables: schema },
|
|
48
51
|
});
|
|
49
|
-
```
|
|
50
52
|
|
|
51
|
-
|
|
52
|
-
|
|
53
|
-
|
|
54
|
-
|
|
55
|
-
|
|
56
|
-
|
|
57
|
-
|
|
58
|
-
|
|
59
|
-
## API
|
|
60
|
-
|
|
61
|
-
### Configuration
|
|
53
|
+
const backend = await initializeRebaseBackend({
|
|
54
|
+
app,
|
|
55
|
+
server,
|
|
56
|
+
database,
|
|
57
|
+
collections,
|
|
58
|
+
auth: { /* ... */ },
|
|
59
|
+
});
|
|
62
60
|
|
|
63
|
-
|
|
64
|
-
|
|
65
|
-
|
|
66
|
-
|
|
67
|
-
|
|
68
|
-
}
|
|
61
|
+
// Graceful shutdown
|
|
62
|
+
process.on("SIGTERM", async () => {
|
|
63
|
+
await backend.shutdown();
|
|
64
|
+
await pool.end();
|
|
65
|
+
});
|
|
69
66
|
```
|
|
70
67
|
|
|
71
|
-
|
|
72
|
-
|
|
73
|
-
|
|
74
|
-
|
|
75
|
-
|
|
76
|
-
|
|
77
|
-
|
|
78
|
-
|
|
79
|
-
|
|
80
|
-
|
|
81
|
-
|
|
82
|
-
|
|
83
|
-
|
|
84
|
-
|
|
85
|
-
|
|
86
|
-
|
|
87
|
-
|
|
88
|
-
|
|
89
|
-
|
|
90
|
-
- `FETCH_ENTITY`
|
|
91
|
-
- `SAVE_ENTITY`
|
|
92
|
-
- `DELETE_ENTITY`
|
|
93
|
-
- `CHECK_UNIQUE_FIELD`
|
|
94
|
-
- `GENERATE_ENTITY_ID`
|
|
95
|
-
- `COUNT_ENTITIES`
|
|
96
|
-
- `subscribe_collection`
|
|
97
|
-
- `subscribe_entity`
|
|
98
|
-
- `unsubscribe`
|
|
99
|
-
|
|
100
|
-
## Development
|
|
101
|
-
|
|
102
|
-
This package is part of the Rebase monorepo. For development instructions, see the main repository README.
|
|
103
|
-
|
|
104
|
-
## License
|
|
105
|
-
|
|
106
|
-
MIT
|
|
68
|
+
## Connection Pool Defaults
|
|
69
|
+
|
|
70
|
+
| Option | Default |
|
|
71
|
+
|--------|---------|
|
|
72
|
+
| `max` | 20 |
|
|
73
|
+
| `idleTimeoutMillis` | 30,000 |
|
|
74
|
+
| `connectionTimeoutMillis` | 10,000 |
|
|
75
|
+
| `queryTimeout` | 30,000 |
|
|
76
|
+
| `statementTimeout` | 30,000 |
|
|
77
|
+
| `keepAlive` | true |
|
|
78
|
+
|
|
79
|
+
## Related Packages
|
|
80
|
+
|
|
81
|
+
| Package | Role |
|
|
82
|
+
|---------|------|
|
|
83
|
+
| `@rebasepro/server-core` | Backend orchestrator that consumes this adapter |
|
|
84
|
+
| `@rebasepro/types` | Shared interfaces (`DatabaseAdapter`, `BackendBootstrapper`, `DataDriver`) |
|
|
85
|
+
| `@rebasepro/sdk-generator` | Generates typed SDKs from collections |
|
|
86
|
+
| `@rebasepro/common` | Default collections and shared utilities |
|
package/dist/{server-postgresql/src/PostgresBackendDriver.d.ts → PostgresBackendDriver.d.ts}
RENAMED
|
@@ -3,9 +3,8 @@ import { BranchService } from "./services/BranchService";
|
|
|
3
3
|
import { RealtimeService } from "./services/realtimeService";
|
|
4
4
|
import { DatabasePoolManager } from "./databasePoolManager";
|
|
5
5
|
import { DrizzleClient } from "./interfaces";
|
|
6
|
-
import {
|
|
6
|
+
import { DatabaseAdmin, DataDriver, DeleteEntityProps, Entity, EntityCollection, FetchCollectionProps, FetchEntityProps, ListenCollectionProps, ListenEntityProps, RebaseClient, RebaseData, RestFetchService, SaveEntityProps, TableMetadata, User } from "@rebasepro/types";
|
|
7
7
|
import { PostgresCollectionRegistry } from "./collections/PostgresCollectionRegistry";
|
|
8
|
-
import { DataDriver, DeleteEntityProps, Entity, EntityCollection, FetchCollectionProps, FetchEntityProps, ListenCollectionProps, ListenEntityProps, SaveEntityProps, RebaseData, TableMetadata, DatabaseAdmin, RestFetchService } from "@rebasepro/types";
|
|
9
8
|
import { HistoryService } from "./history/HistoryService";
|
|
10
9
|
export declare class PostgresBackendDriver implements DataDriver {
|
|
11
10
|
db: DrizzleClient;
|
|
@@ -44,6 +43,7 @@ export declare class PostgresBackendDriver implements DataDriver {
|
|
|
44
43
|
* implements the matching method signatures.
|
|
45
44
|
*/
|
|
46
45
|
get restFetchService(): import("./services").EntityFetchService;
|
|
46
|
+
private buildCallContext;
|
|
47
47
|
private resolveCollectionCallbacks;
|
|
48
48
|
fetchCollection<M extends Record<string, unknown>>({ path, collection, filter, limit, offset, startAfter, orderBy, searchString, order, vectorSearch }: FetchCollectionProps<M>): Promise<Entity<M>[]>;
|
|
49
49
|
listenCollection<M extends Record<string, unknown>>({ path, collection, filter, limit, offset, startAfter, orderBy, searchString, order, onUpdate, onError }: ListenCollectionProps<M>): () => void;
|
|
@@ -9,7 +9,17 @@ import { PostgresBackendDriver } from "./PostgresBackendDriver";
|
|
|
9
9
|
import { RealtimeService } from "./services/realtimeService";
|
|
10
10
|
import { DatabasePoolManager } from "./databasePoolManager";
|
|
11
11
|
import { PostgresCollectionRegistry } from "./collections/PostgresCollectionRegistry";
|
|
12
|
-
|
|
12
|
+
export interface PostgresDriverConfig {
|
|
13
|
+
connectionString?: string;
|
|
14
|
+
adminConnectionString?: string;
|
|
15
|
+
readConnectionString?: string;
|
|
16
|
+
connection?: unknown;
|
|
17
|
+
schema?: {
|
|
18
|
+
tables?: Record<string, unknown>;
|
|
19
|
+
enums?: Record<string, unknown>;
|
|
20
|
+
relations?: Record<string, unknown>;
|
|
21
|
+
};
|
|
22
|
+
}
|
|
13
23
|
/**
|
|
14
24
|
* Opaque internals bag that PostgresBootstrapper stores during `initializeDriver()`
|
|
15
25
|
* and re-uses in subsequent lifecycle hooks.
|
|
@@ -1,13 +1,13 @@
|
|
|
1
1
|
import { NodePgDatabase } from "drizzle-orm/node-postgres";
|
|
2
|
-
import {
|
|
2
|
+
import type { RebasePgTable } from "../types";
|
|
3
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
|
-
refreshTokens:
|
|
8
|
-
passwordResetTokens:
|
|
9
|
-
appConfig:
|
|
10
|
-
userIdentities:
|
|
6
|
+
users: RebasePgTable;
|
|
7
|
+
refreshTokens: RebasePgTable;
|
|
8
|
+
passwordResetTokens: RebasePgTable;
|
|
9
|
+
appConfig: RebasePgTable;
|
|
10
|
+
userIdentities: RebasePgTable;
|
|
11
11
|
}
|
|
12
12
|
/**
|
|
13
13
|
* PostgreSQL implementation of UserRepository.
|
|
@@ -17,7 +17,7 @@ export declare class UserService implements UserRepository {
|
|
|
17
17
|
private db;
|
|
18
18
|
private usersTable;
|
|
19
19
|
private userIdentitiesTable;
|
|
20
|
-
constructor(db: NodePgDatabase, tableOrTables?:
|
|
20
|
+
constructor(db: NodePgDatabase, tableOrTables?: RebasePgTable | Partial<AuthSchemaTables>);
|
|
21
21
|
private getQualifiedUsersTableName;
|
|
22
22
|
private mapRowToUser;
|
|
23
23
|
private mapPayload;
|
|
@@ -74,7 +74,7 @@ export declare class UserService implements UserRepository {
|
|
|
74
74
|
export declare class RefreshTokenService {
|
|
75
75
|
private db;
|
|
76
76
|
private refreshTokensTable;
|
|
77
|
-
constructor(db: NodePgDatabase, tableOrTables?:
|
|
77
|
+
constructor(db: NodePgDatabase, tableOrTables?: RebasePgTable | Partial<AuthSchemaTables>);
|
|
78
78
|
private getQualifiedRefreshTokensTableName;
|
|
79
79
|
createToken(userId: string, tokenHash: string, expiresAt: Date, userAgent?: string, ipAddress?: string): Promise<void>;
|
|
80
80
|
findByHash(tokenHash: string): Promise<RefreshTokenInfo | null>;
|
|
@@ -89,7 +89,7 @@ export declare class RefreshTokenService {
|
|
|
89
89
|
export declare class PasswordResetTokenService {
|
|
90
90
|
private db;
|
|
91
91
|
private passwordResetTokensTable;
|
|
92
|
-
constructor(db: NodePgDatabase, tableOrTables?:
|
|
92
|
+
constructor(db: NodePgDatabase, tableOrTables?: RebasePgTable | Partial<AuthSchemaTables>);
|
|
93
93
|
private getQualifiedPasswordResetTokensTableName;
|
|
94
94
|
/**
|
|
95
95
|
* Create a password reset token
|
|
@@ -123,7 +123,7 @@ export declare class PostgresTokenRepository implements TokenRepository {
|
|
|
123
123
|
private db;
|
|
124
124
|
private refreshTokenService;
|
|
125
125
|
private passwordResetTokenService;
|
|
126
|
-
constructor(db: NodePgDatabase, tableOrTables?:
|
|
126
|
+
constructor(db: NodePgDatabase, tableOrTables?: RebasePgTable | Partial<AuthSchemaTables>);
|
|
127
127
|
createRefreshToken(userId: string, tokenHash: string, expiresAt: Date, userAgent?: string, ipAddress?: string): Promise<void>;
|
|
128
128
|
findRefreshTokenByHash(tokenHash: string): Promise<RefreshTokenInfo | null>;
|
|
129
129
|
deleteRefreshToken(tokenHash: string): Promise<void>;
|
|
@@ -145,7 +145,7 @@ export declare class PostgresAuthRepository implements AuthRepository {
|
|
|
145
145
|
private db;
|
|
146
146
|
private userService;
|
|
147
147
|
private tokenRepository;
|
|
148
|
-
constructor(db: NodePgDatabase, tableOrTables?:
|
|
148
|
+
constructor(db: NodePgDatabase, tableOrTables?: RebasePgTable | Partial<AuthSchemaTables>);
|
|
149
149
|
createUser(data: CreateUserData): Promise<UserData>;
|
|
150
150
|
getUserById(id: string): Promise<UserData | null>;
|
|
151
151
|
getUserByEmail(email: string): Promise<UserData | null>;
|
package/dist/{server-postgresql/src/collections → collections}/PostgresCollectionRegistry.d.ts
RENAMED
|
@@ -19,6 +19,10 @@ export declare class PostgresCollectionRegistry extends CollectionRegistry imple
|
|
|
19
19
|
* Checks if a specific collection has a registered table
|
|
20
20
|
*/
|
|
21
21
|
hasTableForCollection(tableName: string): boolean;
|
|
22
|
+
/**
|
|
23
|
+
* Returns all registered table names.
|
|
24
|
+
*/
|
|
25
|
+
getTableNames(): string[];
|
|
22
26
|
/**
|
|
23
27
|
* Finds collections assigned to a specific driver that do not have a registered table.
|
|
24
28
|
*/
|
|
@@ -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.
|