@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.
Files changed (105) hide show
  1. package/LICENSE +21 -0
  2. package/README.md +38 -0
  3. package/dist/cache/cache.memory.d.ts.map +1 -0
  4. package/dist/cache/cache.memory.js +226 -0
  5. package/dist/cache/cache.memory.js.map +1 -0
  6. package/dist/cache/index.d.ts +7 -0
  7. package/dist/cache/index.d.ts.map +1 -0
  8. package/dist/cache/index.js +7 -0
  9. package/dist/cache/index.js.map +1 -0
  10. package/dist/database/database.core.d.ts.map +1 -0
  11. package/dist/database/index.d.ts +7 -0
  12. package/dist/database/index.d.ts.map +1 -0
  13. package/dist/database/index.js +7 -0
  14. package/dist/database/index.js.map +1 -0
  15. package/dist/databaseClient/databaseClient.core.d.ts +42 -0
  16. package/dist/databaseClient/databaseClient.core.d.ts.map +1 -0
  17. package/dist/databaseClient/databaseClient.core.js +203 -0
  18. package/dist/databaseClient/databaseClient.core.js.map +1 -0
  19. package/dist/databaseClient/databaseClient.logger.d.ts +9 -0
  20. package/dist/databaseClient/databaseClient.logger.d.ts.map +1 -0
  21. package/dist/databaseClient/databaseClient.logger.js +27 -0
  22. package/dist/databaseClient/databaseClient.logger.js.map +1 -0
  23. package/dist/databaseClient/index.d.ts +7 -0
  24. package/dist/databaseClient/index.d.ts.map +1 -0
  25. package/dist/databaseClient/index.js +7 -0
  26. package/dist/databaseClient/index.js.map +1 -0
  27. package/dist/databaseConnection/databaseConnection.manager.d.ts.map +1 -0
  28. package/dist/databaseConnection/databaseConnection.manager.js +219 -0
  29. package/dist/databaseConnection/databaseConnection.manager.js.map +1 -0
  30. package/dist/databaseConnection/index.d.ts +7 -0
  31. package/dist/databaseConnection/index.d.ts.map +1 -0
  32. package/dist/databaseConnection/index.js +7 -0
  33. package/dist/databaseConnection/index.js.map +1 -0
  34. package/dist/databaseType/index.d.ts +7 -0
  35. package/dist/databaseType/index.d.ts.map +1 -0
  36. package/dist/databaseType/index.js +7 -0
  37. package/dist/databaseType/index.js.map +1 -0
  38. package/dist/health/health.check.d.ts.map +1 -0
  39. package/dist/health/health.check.js +159 -0
  40. package/dist/health/health.check.js.map +1 -0
  41. package/dist/health/index.d.ts +7 -0
  42. package/dist/health/index.d.ts.map +1 -0
  43. package/dist/health/index.js +7 -0
  44. package/dist/health/index.js.map +1 -0
  45. package/dist/index.d.ts +36 -0
  46. package/dist/index.d.ts.map +1 -0
  47. package/dist/index.js +49 -0
  48. package/dist/index.js.map +1 -0
  49. package/dist/locks/index.d.ts +7 -0
  50. package/dist/locks/index.d.ts.map +1 -0
  51. package/dist/locks/index.js +7 -0
  52. package/dist/locks/index.js.map +1 -0
  53. package/dist/locks/locks.core.d.ts.map +1 -0
  54. package/dist/locks/locks.core.js +204 -0
  55. package/dist/locks/locks.core.js.map +1 -0
  56. package/dist/migration/index.d.ts +7 -0
  57. package/dist/migration/index.d.ts.map +1 -0
  58. package/dist/migration/index.js +7 -0
  59. package/dist/migration/index.js.map +1 -0
  60. package/dist/migration/migration.helpers.d.ts.map +1 -0
  61. package/dist/migration/migration.runner.d.ts.map +1 -0
  62. package/dist/migration/migration.runner.js +209 -0
  63. package/dist/migration/migration.runner.js.map +1 -0
  64. package/dist/migration/migration.types.d.ts.map +1 -0
  65. package/dist/pagination/index.d.ts +7 -0
  66. package/dist/pagination/index.d.ts.map +1 -0
  67. package/dist/pagination/index.js +7 -0
  68. package/dist/pagination/index.js.map +1 -0
  69. package/dist/queryBuilder/index.d.ts +10 -0
  70. package/dist/queryBuilder/index.d.ts.map +1 -0
  71. package/dist/queryBuilder/index.js +9 -0
  72. package/dist/queryBuilder/index.js.map +1 -0
  73. package/dist/relations/index.d.ts +7 -0
  74. package/dist/relations/index.d.ts.map +1 -0
  75. package/dist/relations/index.js +7 -0
  76. package/dist/relations/index.js.map +1 -0
  77. package/dist/repository/index.d.ts +7 -0
  78. package/dist/repository/index.d.ts.map +1 -0
  79. package/dist/repository/index.js +7 -0
  80. package/dist/repository/index.js.map +1 -0
  81. package/dist/repository/repository.base.d.ts.map +1 -0
  82. package/dist/repository/repository.base.js +248 -0
  83. package/dist/repository/repository.base.js.map +1 -0
  84. package/dist/seed/index.d.ts +7 -0
  85. package/dist/seed/index.d.ts.map +1 -0
  86. package/dist/seed/index.js +7 -0
  87. package/dist/seed/index.js.map +1 -0
  88. package/dist/seed/seed.runner.d.ts.map +1 -0
  89. package/dist/seed/seed.runner.js +402 -0
  90. package/dist/seed/seed.runner.js.map +1 -0
  91. package/dist/transaction/index.d.ts +7 -0
  92. package/dist/transaction/index.d.ts.map +1 -0
  93. package/dist/transaction/index.js +7 -0
  94. package/dist/transaction/index.js.map +1 -0
  95. package/dist/transaction/transaction.core.d.ts.map +1 -0
  96. package/dist/transaction/transaction.core.js +158 -0
  97. package/dist/transaction/transaction.core.js.map +1 -0
  98. package/dist/unitOfWork/index.d.ts +7 -0
  99. package/dist/unitOfWork/index.d.ts.map +1 -0
  100. package/dist/unitOfWork/index.js +7 -0
  101. package/dist/unitOfWork/index.js.map +1 -0
  102. package/dist/unitOfWork/unitOfWork.core.d.ts.map +1 -0
  103. package/dist/unitOfWork/unitOfWork.core.js +64 -0
  104. package/dist/unitOfWork/unitOfWork.core.js.map +1 -0
  105. 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,7 @@
1
+ /**
2
+ * @zudojs/database — Database Client
3
+ *
4
+ * Prisma-backed database client and connection infrastructure.
5
+ */
6
+ export { DatabaseClient, createDatabaseClient, } from "./databaseClient.core.js";
7
+ //# sourceMappingURL=index.js.map
@@ -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,7 @@
1
+ /**
2
+ * @zudojs/database — Database Connection
3
+ *
4
+ * Connection lifecycle management with health checks.
5
+ */
6
+ export { DatabaseConnectionManager, createConnectionManager, } from "./databaseConnection.manager.js";
7
+ //# sourceMappingURL=index.js.map
@@ -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,7 @@
1
+ /**
2
+ * @zudojs/database — Database Types
3
+ *
4
+ * Core type definitions for the database package.
5
+ */
6
+ export * from "./databaseType.type.js";
7
+ //# sourceMappingURL=index.d.ts.map
@@ -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,7 @@
1
+ /**
2
+ * @zudojs/database — Database Types
3
+ *
4
+ * Core type definitions for the database package.
5
+ */
6
+ export * from "./databaseType.type.js";
7
+ //# sourceMappingURL=index.js.map
@@ -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":"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"}
@@ -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"}
@@ -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"}