@zudojs/database 0.0.1
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/LICENSE +21 -0
- package/README.md +38 -0
- package/dist/cache/cache.memory.d.ts.map +1 -0
- package/dist/cache/cache.memory.js +226 -0
- package/dist/cache/cache.memory.js.map +1 -0
- package/dist/cache/index.d.ts +7 -0
- package/dist/cache/index.d.ts.map +1 -0
- package/dist/cache/index.js +7 -0
- package/dist/cache/index.js.map +1 -0
- package/dist/database/database.core.d.ts.map +1 -0
- package/dist/database/index.d.ts +7 -0
- package/dist/database/index.d.ts.map +1 -0
- package/dist/database/index.js +7 -0
- package/dist/database/index.js.map +1 -0
- package/dist/databaseClient/databaseClient.core.d.ts +42 -0
- package/dist/databaseClient/databaseClient.core.d.ts.map +1 -0
- package/dist/databaseClient/databaseClient.core.js +203 -0
- package/dist/databaseClient/databaseClient.core.js.map +1 -0
- package/dist/databaseClient/databaseClient.logger.d.ts +9 -0
- package/dist/databaseClient/databaseClient.logger.d.ts.map +1 -0
- package/dist/databaseClient/databaseClient.logger.js +27 -0
- package/dist/databaseClient/databaseClient.logger.js.map +1 -0
- package/dist/databaseClient/index.d.ts +7 -0
- package/dist/databaseClient/index.d.ts.map +1 -0
- package/dist/databaseClient/index.js +7 -0
- package/dist/databaseClient/index.js.map +1 -0
- package/dist/databaseConnection/databaseConnection.manager.d.ts.map +1 -0
- package/dist/databaseConnection/databaseConnection.manager.js +219 -0
- package/dist/databaseConnection/databaseConnection.manager.js.map +1 -0
- package/dist/databaseConnection/index.d.ts +7 -0
- package/dist/databaseConnection/index.d.ts.map +1 -0
- package/dist/databaseConnection/index.js +7 -0
- package/dist/databaseConnection/index.js.map +1 -0
- package/dist/databaseType/index.d.ts +7 -0
- package/dist/databaseType/index.d.ts.map +1 -0
- package/dist/databaseType/index.js +7 -0
- package/dist/databaseType/index.js.map +1 -0
- package/dist/health/health.check.d.ts.map +1 -0
- package/dist/health/health.check.js +159 -0
- package/dist/health/health.check.js.map +1 -0
- package/dist/health/index.d.ts +7 -0
- package/dist/health/index.d.ts.map +1 -0
- package/dist/health/index.js +7 -0
- package/dist/health/index.js.map +1 -0
- package/dist/index.d.ts +36 -0
- package/dist/index.d.ts.map +1 -0
- package/dist/index.js +49 -0
- package/dist/index.js.map +1 -0
- package/dist/locks/index.d.ts +7 -0
- package/dist/locks/index.d.ts.map +1 -0
- package/dist/locks/index.js +7 -0
- package/dist/locks/index.js.map +1 -0
- package/dist/locks/locks.core.d.ts.map +1 -0
- package/dist/locks/locks.core.js +204 -0
- package/dist/locks/locks.core.js.map +1 -0
- package/dist/migration/index.d.ts +7 -0
- package/dist/migration/index.d.ts.map +1 -0
- package/dist/migration/index.js +7 -0
- package/dist/migration/index.js.map +1 -0
- package/dist/migration/migration.helpers.d.ts.map +1 -0
- package/dist/migration/migration.runner.d.ts.map +1 -0
- package/dist/migration/migration.runner.js +209 -0
- package/dist/migration/migration.runner.js.map +1 -0
- package/dist/migration/migration.types.d.ts.map +1 -0
- package/dist/pagination/index.d.ts +7 -0
- package/dist/pagination/index.d.ts.map +1 -0
- package/dist/pagination/index.js +7 -0
- package/dist/pagination/index.js.map +1 -0
- package/dist/queryBuilder/index.d.ts +10 -0
- package/dist/queryBuilder/index.d.ts.map +1 -0
- package/dist/queryBuilder/index.js +9 -0
- package/dist/queryBuilder/index.js.map +1 -0
- package/dist/relations/index.d.ts +7 -0
- package/dist/relations/index.d.ts.map +1 -0
- package/dist/relations/index.js +7 -0
- package/dist/relations/index.js.map +1 -0
- package/dist/repository/index.d.ts +7 -0
- package/dist/repository/index.d.ts.map +1 -0
- package/dist/repository/index.js +7 -0
- package/dist/repository/index.js.map +1 -0
- package/dist/repository/repository.base.d.ts.map +1 -0
- package/dist/repository/repository.base.js +248 -0
- package/dist/repository/repository.base.js.map +1 -0
- package/dist/seed/index.d.ts +7 -0
- package/dist/seed/index.d.ts.map +1 -0
- package/dist/seed/index.js +7 -0
- package/dist/seed/index.js.map +1 -0
- package/dist/seed/seed.runner.d.ts.map +1 -0
- package/dist/seed/seed.runner.js +402 -0
- package/dist/seed/seed.runner.js.map +1 -0
- package/dist/transaction/index.d.ts +7 -0
- package/dist/transaction/index.d.ts.map +1 -0
- package/dist/transaction/index.js +7 -0
- package/dist/transaction/index.js.map +1 -0
- package/dist/transaction/transaction.core.d.ts.map +1 -0
- package/dist/transaction/transaction.core.js +158 -0
- package/dist/transaction/transaction.core.js.map +1 -0
- package/dist/unitOfWork/index.d.ts +7 -0
- package/dist/unitOfWork/index.d.ts.map +1 -0
- package/dist/unitOfWork/index.js +7 -0
- package/dist/unitOfWork/index.js.map +1 -0
- package/dist/unitOfWork/unitOfWork.core.d.ts.map +1 -0
- package/dist/unitOfWork/unitOfWork.core.js +64 -0
- package/dist/unitOfWork/unitOfWork.core.js.map +1 -0
- package/package.json +66 -0
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"databaseClient.logger.js","sourceRoot":"","sources":["../../src/databaseClient/databaseClient.logger.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAIH,qGAAqG;AACrG,MAAM,UAAU,mBAAmB;IACjC,OAAO;QACL,KAAK,EAAE,CAAC,OAAO,EAAE,QAAQ,EAAE,EAAE;YAC3B,IAAI,OAAO,CAAC,GAAG,CAAC,QAAQ,KAAK,YAAY,EAAE,CAAC;gBAC1C,OAAO,CAAC,KAAK,CAAC,OAAO,EAAE,QAAQ,CAAC,CAAC;YACnC,CAAC;QACH,CAAC;QACD,IAAI,EAAE,CAAC,OAAO,EAAE,QAAQ,EAAE,EAAE;YAC1B,IAAI,OAAO,CAAC,GAAG,CAAC,QAAQ,KAAK,YAAY,EAAE,CAAC;gBAC1C,OAAO,CAAC,IAAI,CAAC,OAAO,EAAE,QAAQ,CAAC,CAAC;YAClC,CAAC;QACH,CAAC;QACD,IAAI,EAAE,CAAC,OAAO,EAAE,QAAQ,EAAE,EAAE;YAC1B,OAAO,CAAC,IAAI,CAAC,OAAO,EAAE,QAAQ,CAAC,CAAC;QAClC,CAAC;QACD,KAAK,EAAE,CAAC,OAAO,EAAE,KAAK,EAAE,QAAQ,EAAE,EAAE;YAClC,OAAO,CAAC,KAAK,CAAC,OAAO,EAAE,KAAK,EAAE,QAAQ,CAAC,CAAC;QAC1C,CAAC;KACF,CAAC;AACJ,CAAC"}
|
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* @zudojs/database — Database Client
|
|
3
|
+
*
|
|
4
|
+
* Prisma-backed database client and connection infrastructure.
|
|
5
|
+
*/
|
|
6
|
+
export { DatabaseClient, createDatabaseClient, type DatabaseClientOptions, type DatabaseTransactionContext, } from "./databaseClient.core.js";
|
|
7
|
+
//# sourceMappingURL=index.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/databaseClient/index.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,OAAO,EACL,cAAc,EACd,oBAAoB,EACpB,KAAK,qBAAqB,EAC1B,KAAK,0BAA0B,GAChC,MAAM,0BAA0B,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/databaseClient/index.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,OAAO,EACL,cAAc,EACd,oBAAoB,GAGrB,MAAM,0BAA0B,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"databaseConnection.manager.d.ts","sourceRoot":"","sources":["../../src/databaseConnection/databaseConnection.manager.ts"],"names":[],"mappings":"AAEA,OAAO,EACL,cAAc,EACd,KAAK,qBAAqB,EAC3B,MAAM,0CAA0C,CAAC;AAElD,OAAO,KAAK,EACV,cAAc,EACd,cAAc,EACf,MAAM,sCAAsC,CAAC;AAE9C;;GAEG;AACH,MAAM,MAAM,uBAAuB,GACjC,YAAY,GAAG,WAAW,GAAG,eAAe,GAAG,cAAc,GAAG,OAAO,CAAC;AAE1E;;GAEG;AACH,MAAM,MAAM,0BAA0B,GAAG,CACvC,KAAK,EAAE,uBAAuB,EAC9B,OAAO,EAAE,8BAA8B,KACpC,IAAI,CAAC;AAEV;;GAEG;AACH,MAAM,WAAW,8BAA8B;IAC7C,QAAQ,CAAC,MAAM,EAAE,cAAc,CAAC;IAChC,QAAQ,CAAC,SAAS,EAAE,IAAI,CAAC;IACzB,QAAQ,CAAC,KAAK,CAAC,EAAE,OAAO,CAAC;CAC1B;AAED;;GAEG;AACH,MAAM,WAAW,gCAAiC,SAAQ,qBAAqB;IAC7E,QAAQ,CAAC,WAAW,CAAC,EAAE,OAAO,CAAC;IAC/B,QAAQ,CAAC,qBAAqB,CAAC,EAAE,MAAM,CAAC;CACzC;AAED;;;;;;GAMG;AACH,qBAAa,yBAAyB;IACpC,OAAO,CAAC,QAAQ,CAAC,MAAM,CAAiB;IAExC,OAAO,CAAC,QAAQ,CAAC,SAAS,CAAyC;IAEnE,OAAO,CAAC,QAAQ,CAAC,WAAW,CAAU;IAEtC,OAAO,CAAC,QAAQ,CAAC,qBAAqB,CAAC,CAAS;IAEhD,OAAO,CAAC,gBAAgB,CAAC,CAAiC;IAE1D,OAAO,CAAC,iBAAiB,CAAC,CAAgB;IAE1C,YAAY,OAAO,GAAE,gCAAqC,EAMzD;IAED;;OAEG;IACU,UAAU,IAAI,OAAO,CAAC,IAAI,CAAC,CAMvC;IAED;;OAEG;IACU,OAAO,IAAI,OAAO,CAAC,IAAI,CAAC,CA4BpC;IAED;;OAEG;IACU,UAAU,IAAI,OAAO,CAAC,IAAI,CAAC,CAoBvC;IAED;;OAEG;IACU,eAAe,IAAI,OAAO,CAAC,IAAI,CAAC,CAI5C;IAED;;OAEG;IACI,SAAS,IAAI,cAAc,CAEjC;IAED;;OAEG;IACU,WAAW,IAAI,OAAO,CAAC,cAAc,CAAC,CAElD;IAED;;OAEG;IACI,SAAS,IAAI,cAAc,CAEjC;IAED;;OAEG;IACI,EAAE,CAAC,QAAQ,EAAE,0BAA0B,GAAG,MAAM,IAAI,CAU1D;IAED;;OAEG;IACI,GAAG,CAAC,QAAQ,EAAE,0BAA0B,GAAG,OAAO,CAExD;IAED;;OAEG;IACI,kBAAkB,IAAI,IAAI,CAEhC;IAED;;OAEG;IACI,iBAAiB,IAAI,IAAI,CAc/B;IAED;;OAEG;IACI,gBAAgB,IAAI,IAAI,CAQ9B;IAED;;OAEG;IACU,OAAO,IAAI,OAAO,CAAC,IAAI,CAAC,CAMpC;IAED;;OAEG;IACH,OAAO,CAAC,IAAI;IAiBZ;;OAEG;YACW,uBAAuB;IAYrC;;OAEG;IACH,OAAO,CAAC,UAAU;IAUlB;;OAEG;IACH,OAAO,CAAC,cAAc;CAkBvB;AAED;;GAEG;AACH,wBAAgB,uBAAuB,CACrC,OAAO,GAAE,gCAAqC,GAC7C,yBAAyB,CAE3B"}
|
|
@@ -0,0 +1,219 @@
|
|
|
1
|
+
import { DatabaseError } from "@zudojs/errors";
|
|
2
|
+
import { DatabaseClient, } from "../databaseClient/databaseClient.core.js";
|
|
3
|
+
/**
|
|
4
|
+
* Manages the database connection lifecycle.
|
|
5
|
+
*
|
|
6
|
+
* The manager intentionally does not connect during construction.
|
|
7
|
+
* Application bootstrap should call `connect()` explicitly unless
|
|
8
|
+
* `autoConnect` is enabled.
|
|
9
|
+
*/
|
|
10
|
+
export class DatabaseConnectionManager {
|
|
11
|
+
client;
|
|
12
|
+
listeners = new Set();
|
|
13
|
+
autoConnect;
|
|
14
|
+
healthCheckIntervalMs;
|
|
15
|
+
healthCheckTimer;
|
|
16
|
+
connectionPromise;
|
|
17
|
+
constructor(options = {}) {
|
|
18
|
+
this.client = new DatabaseClient(options);
|
|
19
|
+
this.autoConnect = options.autoConnect ?? false;
|
|
20
|
+
this.healthCheckIntervalMs = options.healthCheckIntervalMs;
|
|
21
|
+
}
|
|
22
|
+
/**
|
|
23
|
+
* Initializes the connection manager.
|
|
24
|
+
*/
|
|
25
|
+
async initialize() {
|
|
26
|
+
if (!this.autoConnect) {
|
|
27
|
+
return;
|
|
28
|
+
}
|
|
29
|
+
await this.connect();
|
|
30
|
+
}
|
|
31
|
+
/**
|
|
32
|
+
* Opens the database connection.
|
|
33
|
+
*/
|
|
34
|
+
async connect() {
|
|
35
|
+
if (this.client.getStatus() === "connected") {
|
|
36
|
+
return;
|
|
37
|
+
}
|
|
38
|
+
if (this.connectionPromise) {
|
|
39
|
+
return this.connectionPromise;
|
|
40
|
+
}
|
|
41
|
+
this.emit("connecting");
|
|
42
|
+
this.connectionPromise = this.client
|
|
43
|
+
.connect()
|
|
44
|
+
.then(() => {
|
|
45
|
+
this.emit("connected");
|
|
46
|
+
this.startHealthChecks();
|
|
47
|
+
})
|
|
48
|
+
.catch((error) => {
|
|
49
|
+
this.emit("error", error);
|
|
50
|
+
throw this.normalizeError(error, "Database connection failed.");
|
|
51
|
+
})
|
|
52
|
+
.finally(() => {
|
|
53
|
+
this.connectionPromise = undefined;
|
|
54
|
+
});
|
|
55
|
+
return this.connectionPromise;
|
|
56
|
+
}
|
|
57
|
+
/**
|
|
58
|
+
* Closes the database connection.
|
|
59
|
+
*/
|
|
60
|
+
async disconnect() {
|
|
61
|
+
this.stopHealthChecks();
|
|
62
|
+
const status = this.client.getStatus();
|
|
63
|
+
if (status === "disconnected" || status === "disconnecting") {
|
|
64
|
+
return;
|
|
65
|
+
}
|
|
66
|
+
this.emit("disconnecting");
|
|
67
|
+
try {
|
|
68
|
+
await this.client.disconnect();
|
|
69
|
+
this.emit("disconnected");
|
|
70
|
+
}
|
|
71
|
+
catch (error) {
|
|
72
|
+
this.emit("error", error);
|
|
73
|
+
throw this.normalizeError(error, "Database disconnection failed.");
|
|
74
|
+
}
|
|
75
|
+
}
|
|
76
|
+
/**
|
|
77
|
+
* Ensures that the connection is ready.
|
|
78
|
+
*/
|
|
79
|
+
async ensureConnected() {
|
|
80
|
+
if (this.client.getStatus() !== "connected") {
|
|
81
|
+
await this.connect();
|
|
82
|
+
}
|
|
83
|
+
}
|
|
84
|
+
/**
|
|
85
|
+
* Returns the current connection status.
|
|
86
|
+
*/
|
|
87
|
+
getStatus() {
|
|
88
|
+
return this.client.getStatus();
|
|
89
|
+
}
|
|
90
|
+
/**
|
|
91
|
+
* Performs a database health check.
|
|
92
|
+
*/
|
|
93
|
+
async healthCheck() {
|
|
94
|
+
return this.client.healthCheck();
|
|
95
|
+
}
|
|
96
|
+
/**
|
|
97
|
+
* Returns the underlying database client.
|
|
98
|
+
*/
|
|
99
|
+
getClient() {
|
|
100
|
+
return this.client;
|
|
101
|
+
}
|
|
102
|
+
/**
|
|
103
|
+
* Subscribes to connection lifecycle events.
|
|
104
|
+
*/
|
|
105
|
+
on(listener) {
|
|
106
|
+
if (typeof listener !== "function") {
|
|
107
|
+
throw new TypeError("A connection listener must be a function.");
|
|
108
|
+
}
|
|
109
|
+
this.listeners.add(listener);
|
|
110
|
+
return () => {
|
|
111
|
+
this.off(listener);
|
|
112
|
+
};
|
|
113
|
+
}
|
|
114
|
+
/**
|
|
115
|
+
* Removes a connection listener.
|
|
116
|
+
*/
|
|
117
|
+
off(listener) {
|
|
118
|
+
return this.listeners.delete(listener);
|
|
119
|
+
}
|
|
120
|
+
/**
|
|
121
|
+
* Removes all connection listeners.
|
|
122
|
+
*/
|
|
123
|
+
removeAllListeners() {
|
|
124
|
+
this.listeners.clear();
|
|
125
|
+
}
|
|
126
|
+
/**
|
|
127
|
+
* Starts periodic database health checks.
|
|
128
|
+
*/
|
|
129
|
+
startHealthChecks() {
|
|
130
|
+
this.stopHealthChecks();
|
|
131
|
+
const interval = this.healthCheckIntervalMs;
|
|
132
|
+
if (!interval || interval <= 0) {
|
|
133
|
+
return;
|
|
134
|
+
}
|
|
135
|
+
this.healthCheckTimer = setInterval(() => {
|
|
136
|
+
void this.runScheduledHealthCheck();
|
|
137
|
+
}, interval);
|
|
138
|
+
this.unrefTimer();
|
|
139
|
+
}
|
|
140
|
+
/**
|
|
141
|
+
* Stops periodic database health checks.
|
|
142
|
+
*/
|
|
143
|
+
stopHealthChecks() {
|
|
144
|
+
if (!this.healthCheckTimer) {
|
|
145
|
+
return;
|
|
146
|
+
}
|
|
147
|
+
clearInterval(this.healthCheckTimer);
|
|
148
|
+
this.healthCheckTimer = undefined;
|
|
149
|
+
}
|
|
150
|
+
/**
|
|
151
|
+
* Releases connection manager resources.
|
|
152
|
+
*/
|
|
153
|
+
async destroy() {
|
|
154
|
+
this.stopHealthChecks();
|
|
155
|
+
await this.disconnect();
|
|
156
|
+
this.removeAllListeners();
|
|
157
|
+
}
|
|
158
|
+
/**
|
|
159
|
+
* Emits a connection lifecycle event.
|
|
160
|
+
*/
|
|
161
|
+
emit(event, error) {
|
|
162
|
+
const details = Object.freeze({
|
|
163
|
+
status: this.client.getStatus(),
|
|
164
|
+
timestamp: new Date(),
|
|
165
|
+
error,
|
|
166
|
+
});
|
|
167
|
+
for (const listener of [...this.listeners]) {
|
|
168
|
+
try {
|
|
169
|
+
listener(event, details);
|
|
170
|
+
}
|
|
171
|
+
catch {
|
|
172
|
+
// Connection lifecycle listeners must never break the
|
|
173
|
+
// database connection lifecycle itself.
|
|
174
|
+
}
|
|
175
|
+
}
|
|
176
|
+
}
|
|
177
|
+
/**
|
|
178
|
+
* Runs a scheduled health check.
|
|
179
|
+
*/
|
|
180
|
+
async runScheduledHealthCheck() {
|
|
181
|
+
try {
|
|
182
|
+
const health = await this.healthCheck();
|
|
183
|
+
if (health.status === "error") {
|
|
184
|
+
this.emit("error", health.error);
|
|
185
|
+
}
|
|
186
|
+
}
|
|
187
|
+
catch (error) {
|
|
188
|
+
this.emit("error", error);
|
|
189
|
+
}
|
|
190
|
+
}
|
|
191
|
+
/**
|
|
192
|
+
* Prevents the health-check timer from keeping Node alive.
|
|
193
|
+
*/
|
|
194
|
+
unrefTimer() {
|
|
195
|
+
const timer = this.healthCheckTimer;
|
|
196
|
+
timer?.unref?.();
|
|
197
|
+
}
|
|
198
|
+
/**
|
|
199
|
+
* Normalizes connection failures.
|
|
200
|
+
*/
|
|
201
|
+
normalizeError(error, fallbackMessage) {
|
|
202
|
+
if (error instanceof DatabaseError) {
|
|
203
|
+
return error;
|
|
204
|
+
}
|
|
205
|
+
return new DatabaseError(error instanceof Error ? error.message : fallbackMessage, {
|
|
206
|
+
cause: error,
|
|
207
|
+
metadata: {
|
|
208
|
+
status: this.client.getStatus(),
|
|
209
|
+
},
|
|
210
|
+
});
|
|
211
|
+
}
|
|
212
|
+
}
|
|
213
|
+
/**
|
|
214
|
+
* Creates a database connection manager.
|
|
215
|
+
*/
|
|
216
|
+
export function createConnectionManager(options = {}) {
|
|
217
|
+
return new DatabaseConnectionManager(options);
|
|
218
|
+
}
|
|
219
|
+
//# sourceMappingURL=databaseConnection.manager.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"databaseConnection.manager.js","sourceRoot":"","sources":["../../src/databaseConnection/databaseConnection.manager.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* @zudojs/database — Database Connection
|
|
3
|
+
*
|
|
4
|
+
* Connection lifecycle management with health checks.
|
|
5
|
+
*/
|
|
6
|
+
export { DatabaseConnectionManager, createConnectionManager, type DatabaseConnectionEvent, type DatabaseConnectionListener, type DatabaseConnectionEventDetails, type DatabaseConnectionManagerOptions, } from "./databaseConnection.manager.js";
|
|
7
|
+
//# sourceMappingURL=index.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/databaseConnection/index.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,OAAO,EACL,yBAAyB,EACzB,uBAAuB,EACvB,KAAK,uBAAuB,EAC5B,KAAK,0BAA0B,EAC/B,KAAK,8BAA8B,EACnC,KAAK,gCAAgC,GACtC,MAAM,iCAAiC,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/databaseConnection/index.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,OAAO,EACL,yBAAyB,EACzB,uBAAuB,GAKxB,MAAM,iCAAiC,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/databaseType/index.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,cAAc,wBAAwB,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/databaseType/index.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,cAAc,wBAAwB,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"health.check.d.ts","sourceRoot":"","sources":["../../src/health/health.check.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,0CAA0C,CAAC;AAI/E;;GAEG;AACH,MAAM,MAAM,oBAAoB,GAAG,SAAS,GAAG,WAAW,GAAG,UAAU,CAAC;AAExE;;GAEG;AACH,MAAM,WAAW,cAAc;IAC7B,QAAQ,CAAC,MAAM,EAAE,oBAAoB,CAAC;IACtC,QAAQ,CAAC,OAAO,EAAE,OAAO,CAAC;IAC1B,QAAQ,CAAC,SAAS,EAAE,MAAM,CAAC;IAC3B,QAAQ,CAAC,SAAS,EAAE,IAAI,CAAC;IACzB,QAAQ,CAAC,OAAO,CAAC,EAAE,MAAM,CAAC;IAC1B,QAAQ,CAAC,KAAK,CAAC,EAAE;QACf,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;QACtB,QAAQ,CAAC,OAAO,EAAE,MAAM,CAAC;KAC1B,CAAC;CACH;AAED;;GAEG;AACH,MAAM,WAAW,qBAAqB;IACpC,QAAQ,CAAC,SAAS,CAAC,EAAE,MAAM,CAAC;CAC7B;AAED;;GAEG;AACH,MAAM,WAAW,iBAAiB;IAChC,QAAQ,CAAC,KAAK,EAAE,OAAO,CAAC;IACxB,QAAQ,CAAC,SAAS,EAAE,IAAI,CAAC;IACzB,QAAQ,CAAC,SAAS,EAAE,MAAM,CAAC;IAC3B,QAAQ,CAAC,OAAO,CAAC,EAAE,MAAM,CAAC;CAC3B;AAED;;GAEG;AACH,eAAO,MAAM,yBAAyB,OAAQ,CAAC;AAE/C;;GAEG;AACH,wBAAsB,mBAAmB,CACvC,MAAM,EAAE,cAAc,EACtB,OAAO,GAAE,qBAA0B,GAClC,OAAO,CAAC,cAAc,CAAC,CAqCzB;AAED;;;;;GAKG;AACH,wBAAsB,sBAAsB,CAC1C,MAAM,EAAE,cAAc,EACtB,OAAO,GAAE,qBAA0B,GAClC,OAAO,CAAC,iBAAiB,CAAC,CAgC5B;AAED;;GAEG;AACH,wBAAsB,oBAAoB,CACxC,MAAM,EAAE,cAAc,EACtB,OAAO,GAAE,qBAA0B,GAClC,OAAO,CAAC,cAAc,CAAC,CAezB;AAED;;GAEG;AACH,wBAAsB,iBAAiB,CACrC,MAAM,EAAE,cAAc,EACtB,OAAO,GAAE,qBAA0B,GAClC,OAAO,CAAC,OAAO,CAAC,CAIlB"}
|
|
@@ -0,0 +1,159 @@
|
|
|
1
|
+
import { DatabaseError } from "@zudojs/errors";
|
|
2
|
+
import { Prisma } from "@prisma/client";
|
|
3
|
+
/**
|
|
4
|
+
* Default database health-check timeout.
|
|
5
|
+
*/
|
|
6
|
+
export const DEFAULT_HEALTH_TIMEOUT_MS = 5_000;
|
|
7
|
+
/**
|
|
8
|
+
* Performs a lightweight database health check.
|
|
9
|
+
*/
|
|
10
|
+
export async function checkDatabaseHealth(client, options = {}) {
|
|
11
|
+
if (!client) {
|
|
12
|
+
throw new TypeError("A database client is required.");
|
|
13
|
+
}
|
|
14
|
+
const timeoutMs = normalizeTimeout(options.timeoutMs);
|
|
15
|
+
const checkedAt = new Date();
|
|
16
|
+
const startedAt = performance.now();
|
|
17
|
+
try {
|
|
18
|
+
await withTimeout(executeHealthCheck(client), timeoutMs);
|
|
19
|
+
const latencyMs = Math.max(0, Math.round(performance.now() - startedAt));
|
|
20
|
+
return {
|
|
21
|
+
status: latencyMs > timeoutMs * 0.75 ? "degraded" : "healthy",
|
|
22
|
+
healthy: true,
|
|
23
|
+
latencyMs,
|
|
24
|
+
checkedAt,
|
|
25
|
+
message: "Database connection is healthy.",
|
|
26
|
+
};
|
|
27
|
+
}
|
|
28
|
+
catch (error) {
|
|
29
|
+
const latencyMs = Math.max(0, Math.round(performance.now() - startedAt));
|
|
30
|
+
const normalizedError = normalizeHealthError(error);
|
|
31
|
+
return {
|
|
32
|
+
status: "unhealthy",
|
|
33
|
+
healthy: false,
|
|
34
|
+
latencyMs,
|
|
35
|
+
checkedAt,
|
|
36
|
+
message: normalizedError.message,
|
|
37
|
+
error: normalizedError,
|
|
38
|
+
};
|
|
39
|
+
}
|
|
40
|
+
}
|
|
41
|
+
/**
|
|
42
|
+
* Performs a database readiness check.
|
|
43
|
+
*
|
|
44
|
+
* Readiness is intentionally stricter than health. A degraded
|
|
45
|
+
* connection remains healthy but may still be considered ready.
|
|
46
|
+
*/
|
|
47
|
+
export async function checkDatabaseReadiness(client, options = {}) {
|
|
48
|
+
if (!client) {
|
|
49
|
+
throw new TypeError("A database client is required.");
|
|
50
|
+
}
|
|
51
|
+
const timeoutMs = normalizeTimeout(options.timeoutMs);
|
|
52
|
+
const checkedAt = new Date();
|
|
53
|
+
const startedAt = performance.now();
|
|
54
|
+
try {
|
|
55
|
+
await withTimeout(executeHealthCheck(client), timeoutMs);
|
|
56
|
+
const latencyMs = Math.max(0, Math.round(performance.now() - startedAt));
|
|
57
|
+
return {
|
|
58
|
+
ready: true,
|
|
59
|
+
checkedAt,
|
|
60
|
+
latencyMs,
|
|
61
|
+
message: "Database is ready.",
|
|
62
|
+
};
|
|
63
|
+
}
|
|
64
|
+
catch (error) {
|
|
65
|
+
const latencyMs = Math.max(0, Math.round(performance.now() - startedAt));
|
|
66
|
+
return {
|
|
67
|
+
ready: false,
|
|
68
|
+
checkedAt,
|
|
69
|
+
latencyMs,
|
|
70
|
+
message: normalizeHealthError(error).message,
|
|
71
|
+
};
|
|
72
|
+
}
|
|
73
|
+
}
|
|
74
|
+
/**
|
|
75
|
+
* Throws when the database is not healthy.
|
|
76
|
+
*/
|
|
77
|
+
export async function assertDatabaseHealth(client, options = {}) {
|
|
78
|
+
const health = await checkDatabaseHealth(client, options);
|
|
79
|
+
if (!health.healthy) {
|
|
80
|
+
throw new DatabaseError("Database health check failed.", {
|
|
81
|
+
metadata: {
|
|
82
|
+
status: health.status,
|
|
83
|
+
latencyMs: health.latencyMs,
|
|
84
|
+
checkedAt: health.checkedAt.toISOString(),
|
|
85
|
+
},
|
|
86
|
+
cause: health.error ? new Error(health.error.message) : undefined,
|
|
87
|
+
});
|
|
88
|
+
}
|
|
89
|
+
return health;
|
|
90
|
+
}
|
|
91
|
+
/**
|
|
92
|
+
* Checks whether a database is reachable.
|
|
93
|
+
*/
|
|
94
|
+
export async function isDatabaseHealthy(client, options = {}) {
|
|
95
|
+
const health = await checkDatabaseHealth(client, options);
|
|
96
|
+
return health.healthy;
|
|
97
|
+
}
|
|
98
|
+
/**
|
|
99
|
+
* Executes the lightweight health query.
|
|
100
|
+
*/
|
|
101
|
+
async function executeHealthCheck(client) {
|
|
102
|
+
try {
|
|
103
|
+
await client.queryRaw(Prisma.sql `SELECT 1 AS result`);
|
|
104
|
+
}
|
|
105
|
+
catch (error) {
|
|
106
|
+
throw new DatabaseError("Database health query failed.", {
|
|
107
|
+
cause: error,
|
|
108
|
+
});
|
|
109
|
+
}
|
|
110
|
+
}
|
|
111
|
+
/**
|
|
112
|
+
* Runs a promise with a timeout.
|
|
113
|
+
*/
|
|
114
|
+
async function withTimeout(promise, timeoutMs) {
|
|
115
|
+
let timeout;
|
|
116
|
+
try {
|
|
117
|
+
return await Promise.race([
|
|
118
|
+
promise,
|
|
119
|
+
new Promise((_resolve, reject) => {
|
|
120
|
+
timeout = setTimeout(() => {
|
|
121
|
+
reject(new DatabaseError(`Database health check timed out after ${timeoutMs}ms.`));
|
|
122
|
+
}, timeoutMs);
|
|
123
|
+
}),
|
|
124
|
+
]);
|
|
125
|
+
}
|
|
126
|
+
finally {
|
|
127
|
+
if (timeout) {
|
|
128
|
+
clearTimeout(timeout);
|
|
129
|
+
}
|
|
130
|
+
}
|
|
131
|
+
}
|
|
132
|
+
/**
|
|
133
|
+
* Normalizes timeout values.
|
|
134
|
+
*/
|
|
135
|
+
function normalizeTimeout(timeoutMs) {
|
|
136
|
+
if (timeoutMs === undefined) {
|
|
137
|
+
return DEFAULT_HEALTH_TIMEOUT_MS;
|
|
138
|
+
}
|
|
139
|
+
if (!Number.isFinite(timeoutMs) || timeoutMs <= 0) {
|
|
140
|
+
throw new TypeError("Database health timeout must be a positive finite number.");
|
|
141
|
+
}
|
|
142
|
+
return Math.floor(timeoutMs);
|
|
143
|
+
}
|
|
144
|
+
/**
|
|
145
|
+
* Converts an unknown error into a safe health error.
|
|
146
|
+
*/
|
|
147
|
+
function normalizeHealthError(error) {
|
|
148
|
+
if (error instanceof Error) {
|
|
149
|
+
return {
|
|
150
|
+
name: error.name,
|
|
151
|
+
message: error.message,
|
|
152
|
+
};
|
|
153
|
+
}
|
|
154
|
+
return {
|
|
155
|
+
name: "DatabaseHealthError",
|
|
156
|
+
message: "Database health check failed.",
|
|
157
|
+
};
|
|
158
|
+
}
|
|
159
|
+
//# sourceMappingURL=health.check.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"health.check.js","sourceRoot":"","sources":["../../src/health/health.check.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,aAAa,EAAE,MAAM,gBAAgB,CAAC;AAI/C,OAAO,EAAE,MAAM,EAAE,MAAM,gBAAgB,CAAC;AAuCxC;;GAEG;AACH,MAAM,CAAC,MAAM,yBAAyB,GAAG,KAAK,CAAC;AAE/C;;GAEG;AACH,MAAM,CAAC,KAAK,UAAU,mBAAmB,CACvC,MAAsB,EACtB,OAAO,GAA0B,EAAE;IAEnC,IAAI,CAAC,MAAM,EAAE,CAAC;QACZ,MAAM,IAAI,SAAS,CAAC,gCAAgC,CAAC,CAAC;IACxD,CAAC;IAED,MAAM,SAAS,GAAG,gBAAgB,CAAC,OAAO,CAAC,SAAS,CAAC,CAAC;IAEtD,MAAM,SAAS,GAAG,IAAI,IAAI,EAAE,CAAC;IAE7B,MAAM,SAAS,GAAG,WAAW,CAAC,GAAG,EAAE,CAAC;IAEpC,IAAI,CAAC;QACH,MAAM,WAAW,CAAC,kBAAkB,CAAC,MAAM,CAAC,EAAE,SAAS,CAAC,CAAC;QAEzD,MAAM,SAAS,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,IAAI,CAAC,KAAK,CAAC,WAAW,CAAC,GAAG,EAAE,GAAG,SAAS,CAAC,CAAC,CAAC;QAEzE,OAAO;YACL,MAAM,EAAE,SAAS,GAAG,SAAS,GAAG,IAAI,CAAC,CAAC,CAAC,UAAU,CAAC,CAAC,CAAC,SAAS;YAC7D,OAAO,EAAE,IAAI;YACb,SAAS;YACT,SAAS;YACT,OAAO,EAAE,iCAAiC;SAC3C,CAAC;IACJ,CAAC;IAAC,OAAO,KAAK,EAAE,CAAC;QACf,MAAM,SAAS,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,IAAI,CAAC,KAAK,CAAC,WAAW,CAAC,GAAG,EAAE,GAAG,SAAS,CAAC,CAAC,CAAC;QAEzE,MAAM,eAAe,GAAG,oBAAoB,CAAC,KAAK,CAAC,CAAC;QAEpD,OAAO;YACL,MAAM,EAAE,WAAW;YACnB,OAAO,EAAE,KAAK;YACd,SAAS;YACT,SAAS;YACT,OAAO,EAAE,eAAe,CAAC,OAAO;YAChC,KAAK,EAAE,eAAe;SACvB,CAAC;IACJ,CAAC;AACH,CAAC;AAED;;;;;GAKG;AACH,MAAM,CAAC,KAAK,UAAU,sBAAsB,CAC1C,MAAsB,EACtB,OAAO,GAA0B,EAAE;IAEnC,IAAI,CAAC,MAAM,EAAE,CAAC;QACZ,MAAM,IAAI,SAAS,CAAC,gCAAgC,CAAC,CAAC;IACxD,CAAC;IAED,MAAM,SAAS,GAAG,gBAAgB,CAAC,OAAO,CAAC,SAAS,CAAC,CAAC;IAEtD,MAAM,SAAS,GAAG,IAAI,IAAI,EAAE,CAAC;IAE7B,MAAM,SAAS,GAAG,WAAW,CAAC,GAAG,EAAE,CAAC;IAEpC,IAAI,CAAC;QACH,MAAM,WAAW,CAAC,kBAAkB,CAAC,MAAM,CAAC,EAAE,SAAS,CAAC,CAAC;QAEzD,MAAM,SAAS,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,IAAI,CAAC,KAAK,CAAC,WAAW,CAAC,GAAG,EAAE,GAAG,SAAS,CAAC,CAAC,CAAC;QAEzE,OAAO;YACL,KAAK,EAAE,IAAI;YACX,SAAS;YACT,SAAS;YACT,OAAO,EAAE,oBAAoB;SAC9B,CAAC;IACJ,CAAC;IAAC,OAAO,KAAK,EAAE,CAAC;QACf,MAAM,SAAS,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,IAAI,CAAC,KAAK,CAAC,WAAW,CAAC,GAAG,EAAE,GAAG,SAAS,CAAC,CAAC,CAAC;QAEzE,OAAO;YACL,KAAK,EAAE,KAAK;YACZ,SAAS;YACT,SAAS;YACT,OAAO,EAAE,oBAAoB,CAAC,KAAK,CAAC,CAAC,OAAO;SAC7C,CAAC;IACJ,CAAC;AACH,CAAC;AAED;;GAEG;AACH,MAAM,CAAC,KAAK,UAAU,oBAAoB,CACxC,MAAsB,EACtB,OAAO,GAA0B,EAAE;IAEnC,MAAM,MAAM,GAAG,MAAM,mBAAmB,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;IAE1D,IAAI,CAAC,MAAM,CAAC,OAAO,EAAE,CAAC;QACpB,MAAM,IAAI,aAAa,CAAC,+BAA+B,EAAE;YACvD,QAAQ,EAAE;gBACR,MAAM,EAAE,MAAM,CAAC,MAAM;gBACrB,SAAS,EAAE,MAAM,CAAC,SAAS;gBAC3B,SAAS,EAAE,MAAM,CAAC,SAAS,CAAC,WAAW,EAAE;aAC1C;YACD,KAAK,EAAE,MAAM,CAAC,KAAK,CAAC,CAAC,CAAC,IAAI,KAAK,CAAC,MAAM,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,SAAS;SAClE,CAAC,CAAC;IACL,CAAC;IAED,OAAO,MAAM,CAAC;AAChB,CAAC;AAED;;GAEG;AACH,MAAM,CAAC,KAAK,UAAU,iBAAiB,CACrC,MAAsB,EACtB,OAAO,GAA0B,EAAE;IAEnC,MAAM,MAAM,GAAG,MAAM,mBAAmB,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;IAE1D,OAAO,MAAM,CAAC,OAAO,CAAC;AACxB,CAAC;AAED;;GAEG;AACH,KAAK,UAAU,kBAAkB,CAAC,MAAsB;IACtD,IAAI,CAAC;QACH,MAAM,MAAM,CAAC,QAAQ,CAMnB,MAAM,CAAC,GAAG,CAAA,oBAAoB,CAAC,CAAC;IACpC,CAAC;IAAC,OAAO,KAAK,EAAE,CAAC;QACf,MAAM,IAAI,aAAa,CAAC,+BAA+B,EAAE;YACvD,KAAK,EAAE,KAAK;SACb,CAAC,CAAC;IACL,CAAC;AACH,CAAC;AAED;;GAEG;AACH,KAAK,UAAU,WAAW,CACxB,OAAwB,EACxB,SAAiB;IAEjB,IAAI,OAAkD,CAAC;IAEvD,IAAI,CAAC;QACH,OAAO,MAAM,OAAO,CAAC,IAAI,CAAC;YACxB,OAAO;YACP,IAAI,OAAO,CAAS,CAAC,QAAQ,EAAE,MAAM,EAAE,EAAE;gBACvC,OAAO,GAAG,UAAU,CAAC,GAAG,EAAE;oBACxB,MAAM,CACJ,IAAI,aAAa,CACf,yCAAyC,SAAS,KAAK,CACxD,CACF,CAAC;gBACJ,CAAC,EAAE,SAAS,CAAC,CAAC;YAChB,CAAC,CAAC;SACH,CAAC,CAAC;IACL,CAAC;YAAS,CAAC;QACT,IAAI,OAAO,EAAE,CAAC;YACZ,YAAY,CAAC,OAAO,CAAC,CAAC;QACxB,CAAC;IACH,CAAC;AACH,CAAC;AAED;;GAEG;AACH,SAAS,gBAAgB,CAAC,SAAkB;IAC1C,IAAI,SAAS,KAAK,SAAS,EAAE,CAAC;QAC5B,OAAO,yBAAyB,CAAC;IACnC,CAAC;IAED,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC,SAAS,CAAC,IAAI,SAAS,IAAI,CAAC,EAAE,CAAC;QAClD,MAAM,IAAI,SAAS,CACjB,2DAA2D,CAC5D,CAAC;IACJ,CAAC;IAED,OAAO,IAAI,CAAC,KAAK,CAAC,SAAS,CAAC,CAAC;AAC/B,CAAC;AAED;;GAEG;AACH,SAAS,oBAAoB,CAAC,KAAc;IAI1C,IAAI,KAAK,YAAY,KAAK,EAAE,CAAC;QAC3B,OAAO;YACL,IAAI,EAAE,KAAK,CAAC,IAAI;YAChB,OAAO,EAAE,KAAK,CAAC,OAAO;SACvB,CAAC;IACJ,CAAC;IAED,OAAO;QACL,IAAI,EAAE,qBAAqB;QAC3B,OAAO,EAAE,+BAA+B;KACzC,CAAC;AACJ,CAAC"}
|
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* @zudojs/database — Health Checks
|
|
3
|
+
*
|
|
4
|
+
* Database health and readiness monitoring.
|
|
5
|
+
*/
|
|
6
|
+
export { checkDatabaseHealth, checkDatabaseReadiness, assertDatabaseHealth, isDatabaseHealthy, DEFAULT_HEALTH_TIMEOUT_MS, type DatabaseHealthStatus, type DatabaseHealth, type DatabaseHealthOptions, type DatabaseReadiness, } from "./health.check.js";
|
|
7
|
+
//# sourceMappingURL=index.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/health/index.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,OAAO,EACL,mBAAmB,EACnB,sBAAsB,EACtB,oBAAoB,EACpB,iBAAiB,EACjB,yBAAyB,EACzB,KAAK,oBAAoB,EACzB,KAAK,cAAc,EACnB,KAAK,qBAAqB,EAC1B,KAAK,iBAAiB,GACvB,MAAM,mBAAmB,CAAC"}
|
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* @zudojs/database — Health Checks
|
|
3
|
+
*
|
|
4
|
+
* Database health and readiness monitoring.
|
|
5
|
+
*/
|
|
6
|
+
export { checkDatabaseHealth, checkDatabaseReadiness, assertDatabaseHealth, isDatabaseHealthy, DEFAULT_HEALTH_TIMEOUT_MS, } from "./health.check.js";
|
|
7
|
+
//# sourceMappingURL=index.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/health/index.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,OAAO,EACL,mBAAmB,EACnB,sBAAsB,EACtB,oBAAoB,EACpB,iBAAiB,EACjB,yBAAyB,GAK1B,MAAM,mBAAmB,CAAC"}
|
package/dist/index.d.ts
ADDED
|
@@ -0,0 +1,36 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* @zudojs/database
|
|
3
|
+
*
|
|
4
|
+
* Shared database infrastructure for the Zudojs platform.
|
|
5
|
+
*
|
|
6
|
+
* This package provides:
|
|
7
|
+
* • Database client and connection management
|
|
8
|
+
* • Repository abstractions
|
|
9
|
+
* • Transactions and units of work
|
|
10
|
+
* • Query building and filtering
|
|
11
|
+
* • Pagination utilities
|
|
12
|
+
* • Relation definitions
|
|
13
|
+
* • Database locking
|
|
14
|
+
* • Caching
|
|
15
|
+
* • Migrations
|
|
16
|
+
* • Seed management
|
|
17
|
+
* • Health and readiness checks
|
|
18
|
+
*/
|
|
19
|
+
export type { DatabaseOperationOptions, DatabaseStatus, TransactionIsolationLevel, DatabaseOperation, DatabaseConnectionOptions, DatabaseHealth as DatabaseHealthInfo, DatabaseMetrics, TransactionOptions, TransactionCallback, Repository, PaginationInput, PaginationMeta, PaginatedResult, SortDirection, SortInput, QueryOptions, DatabaseEntity, SoftDeletableEntity, AuditableEntity, DatabaseErrorInfo, DatabaseLogger, } from "./databaseType/index.js";
|
|
20
|
+
export { noopDatabaseLogger } from "./databaseType/index.js";
|
|
21
|
+
export { DatabaseClient, createDatabaseClient, type DatabaseClientOptions, type DatabaseTransactionContext, } from "./databaseClient/index.js";
|
|
22
|
+
export { DatabaseConnectionManager, createConnectionManager, type DatabaseConnectionEvent, type DatabaseConnectionListener, type DatabaseConnectionEventDetails, type DatabaseConnectionManagerOptions, } from "./databaseConnection/index.js";
|
|
23
|
+
export { Database, createDatabase, getDatabase, connectDatabase, disconnectDatabase, resetDatabase, } from "./database/index.js";
|
|
24
|
+
export { BaseRepository, type RepositoryDelegate, type BaseRepositoryOptions, } from "./repository/index.js";
|
|
25
|
+
export { TransactionManager, createTransactionManager, withTransaction, withTransactionRetry, createTransactionContext, createTransactionId, isTransactionActive, isTransactionCommitted, isTransactionFailed, type TransactionStatus, type TransactionContext, type ManagedTransactionOptions, } from "./transaction/index.js";
|
|
26
|
+
export { DatabaseUnitOfWork, createUnitOfWork, executeUnitOfWork, type UnitOfWork, type UnitOfWorkOptions, } from "./unitOfWork/index.js";
|
|
27
|
+
export { QueryBuilder, createQueryBuilder, type QueryCondition, type QueryFilter, type QueryOperator, type QueryBuilderState, } from "./queryBuilder/index.js";
|
|
28
|
+
export { equals, notEquals, inList, notInList, lessThan, lessThanOrEqual, greaterThan, greaterThanOrEqual, contains, startsWith, endsWith, isNull, isNotNull, and, or, not, condition, allOf, anyOf, fromObject, dateRange, oneOf, noneOf, optionalEquals, optionalContains, hasConditions, flattenAnd, cloneFilter, } from "./queryBuilder/index.js";
|
|
29
|
+
export { normalizePagination, normalizePage, normalizeLimit, calculateOffset, calculateTotalPages, createPaginationMeta, createPaginatedResult, getNextPage, getPreviousPage, isValidPage, getItemRange, paginateCollection, encodeCursor, decodeCursor, normalizeCursorPagination, createCursorPaginationMeta, createCursorPaginatedResult, DEFAULT_PAGE, DEFAULT_LIMIT, MAX_LIMIT, type NormalizedPagination, type CursorPaginationInput, type CursorPaginationMeta, type CursorPaginatedResult, } from "./pagination/index.js";
|
|
30
|
+
export { oneToOne, oneToMany, manyToOne, manyToMany, includeRelation, includeRelations, RelationRegistry, createRelationRegistry, validateRelation, isRelationType, isCollectionRelation, isSingleRelation, type RelationDefinition, type RelationType, type RelationLoadOptions, type RelationInclude, } from "./relations/index.js";
|
|
31
|
+
export { DatabaseLockManager, createLockManager, acquireAdvisoryLock, lockRow, buildLockClause, normalizeAdvisoryKey, type DatabaseLockMode, type DatabaseLockOptions, type DatabaseLockResult, } from "./locks/index.js";
|
|
32
|
+
export { MemoryDatabaseCache, createDatabaseCache, createCacheKey, serializeCachePart, getOrSet, invalidateByPrefix, type CacheEntry, type CacheOptions, type CacheStats, type DatabaseCache, } from "./cache/index.js";
|
|
33
|
+
export { MigrationRunner, createMigrationRunner, normalizeMigrations, validateMigration, getLatestVersion, getCurrentVersion, DEFAULT_MIGRATION_TABLE, DEFAULT_MIGRATION_LOCK, type Migration, type MigrationRecord, type MigrationResult, type MigrationStatus, type MigrationRunnerOptions, } from "./migration/index.js";
|
|
34
|
+
export { SeedRunner, createSeedRunner, normalizeSeeds, validateSeed, DEFAULT_SEED_TABLE, DEFAULT_SEED_LOCK, type Seed, type SeedRecord, type SeedResult, type SeedRunnerOptions, } from "./seed/index.js";
|
|
35
|
+
export { checkDatabaseHealth, checkDatabaseReadiness, assertDatabaseHealth, isDatabaseHealthy, DEFAULT_HEALTH_TIMEOUT_MS, type DatabaseHealthStatus, type DatabaseHealth, type DatabaseHealthOptions, type DatabaseReadiness, } from "./health/index.js";
|
|
36
|
+
//# sourceMappingURL=index.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
|
package/dist/index.js
ADDED
|
@@ -0,0 +1,49 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* @zudojs/database
|
|
3
|
+
*
|
|
4
|
+
* Shared database infrastructure for the Zudojs platform.
|
|
5
|
+
*
|
|
6
|
+
* This package provides:
|
|
7
|
+
* • Database client and connection management
|
|
8
|
+
* • Repository abstractions
|
|
9
|
+
* • Transactions and units of work
|
|
10
|
+
* • Query building and filtering
|
|
11
|
+
* • Pagination utilities
|
|
12
|
+
* • Relation definitions
|
|
13
|
+
* • Database locking
|
|
14
|
+
* • Caching
|
|
15
|
+
* • Migrations
|
|
16
|
+
* • Seed management
|
|
17
|
+
* • Health and readiness checks
|
|
18
|
+
*/
|
|
19
|
+
export { noopDatabaseLogger } from "./databaseType/index.js";
|
|
20
|
+
// Client
|
|
21
|
+
export { DatabaseClient, createDatabaseClient, } from "./databaseClient/index.js";
|
|
22
|
+
// Connection
|
|
23
|
+
export { DatabaseConnectionManager, createConnectionManager, } from "./databaseConnection/index.js";
|
|
24
|
+
// Database facade
|
|
25
|
+
export { Database, createDatabase, getDatabase, connectDatabase, disconnectDatabase, resetDatabase, } from "./database/index.js";
|
|
26
|
+
// Repository
|
|
27
|
+
export { BaseRepository, } from "./repository/index.js";
|
|
28
|
+
// Transactions
|
|
29
|
+
export { TransactionManager, createTransactionManager, withTransaction, withTransactionRetry, createTransactionContext, createTransactionId, isTransactionActive, isTransactionCommitted, isTransactionFailed, } from "./transaction/index.js";
|
|
30
|
+
// Unit of Work
|
|
31
|
+
export { DatabaseUnitOfWork, createUnitOfWork, executeUnitOfWork, } from "./unitOfWork/index.js";
|
|
32
|
+
// Query Builder
|
|
33
|
+
export { QueryBuilder, createQueryBuilder, } from "./queryBuilder/index.js";
|
|
34
|
+
export { equals, notEquals, inList, notInList, lessThan, lessThanOrEqual, greaterThan, greaterThanOrEqual, contains, startsWith, endsWith, isNull, isNotNull, and, or, not, condition, allOf, anyOf, fromObject, dateRange, oneOf, noneOf, optionalEquals, optionalContains, hasConditions, flattenAnd, cloneFilter, } from "./queryBuilder/index.js";
|
|
35
|
+
// Pagination
|
|
36
|
+
export { normalizePagination, normalizePage, normalizeLimit, calculateOffset, calculateTotalPages, createPaginationMeta, createPaginatedResult, getNextPage, getPreviousPage, isValidPage, getItemRange, paginateCollection, encodeCursor, decodeCursor, normalizeCursorPagination, createCursorPaginationMeta, createCursorPaginatedResult, DEFAULT_PAGE, DEFAULT_LIMIT, MAX_LIMIT, } from "./pagination/index.js";
|
|
37
|
+
// Relations
|
|
38
|
+
export { oneToOne, oneToMany, manyToOne, manyToMany, includeRelation, includeRelations, RelationRegistry, createRelationRegistry, validateRelation, isRelationType, isCollectionRelation, isSingleRelation, } from "./relations/index.js";
|
|
39
|
+
// Locks
|
|
40
|
+
export { DatabaseLockManager, createLockManager, acquireAdvisoryLock, lockRow, buildLockClause, normalizeAdvisoryKey, } from "./locks/index.js";
|
|
41
|
+
// Cache
|
|
42
|
+
export { MemoryDatabaseCache, createDatabaseCache, createCacheKey, serializeCachePart, getOrSet, invalidateByPrefix, } from "./cache/index.js";
|
|
43
|
+
// Migrations
|
|
44
|
+
export { MigrationRunner, createMigrationRunner, normalizeMigrations, validateMigration, getLatestVersion, getCurrentVersion, DEFAULT_MIGRATION_TABLE, DEFAULT_MIGRATION_LOCK, } from "./migration/index.js";
|
|
45
|
+
// Seeds
|
|
46
|
+
export { SeedRunner, createSeedRunner, normalizeSeeds, validateSeed, DEFAULT_SEED_TABLE, DEFAULT_SEED_LOCK, } from "./seed/index.js";
|
|
47
|
+
// Health
|
|
48
|
+
export { checkDatabaseHealth, checkDatabaseReadiness, assertDatabaseHealth, isDatabaseHealthy, DEFAULT_HEALTH_TIMEOUT_MS, } from "./health/index.js";
|
|
49
|
+
//# sourceMappingURL=index.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* @zudojs/database — Locks
|
|
3
|
+
*
|
|
4
|
+
* Advisory and row-level database locking.
|
|
5
|
+
*/
|
|
6
|
+
export { DatabaseLockManager, createLockManager, acquireAdvisoryLock, lockRow, buildLockClause, normalizeAdvisoryKey, type DatabaseLockMode, type DatabaseLockOptions, type DatabaseLockResult, } from "./locks.core.js";
|
|
7
|
+
//# sourceMappingURL=index.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/locks/index.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,OAAO,EACL,mBAAmB,EACnB,iBAAiB,EACjB,mBAAmB,EACnB,OAAO,EACP,eAAe,EACf,oBAAoB,EACpB,KAAK,gBAAgB,EACrB,KAAK,mBAAmB,EACxB,KAAK,kBAAkB,GACxB,MAAM,iBAAiB,CAAC"}
|
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* @zudojs/database — Locks
|
|
3
|
+
*
|
|
4
|
+
* Advisory and row-level database locking.
|
|
5
|
+
*/
|
|
6
|
+
export { DatabaseLockManager, createLockManager, acquireAdvisoryLock, lockRow, buildLockClause, normalizeAdvisoryKey, } from "./locks.core.js";
|
|
7
|
+
//# sourceMappingURL=index.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/locks/index.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,OAAO,EACL,mBAAmB,EACnB,iBAAiB,EACjB,mBAAmB,EACnB,OAAO,EACP,eAAe,EACf,oBAAoB,GAIrB,MAAM,iBAAiB,CAAC"}
|