@bernierllc/database-adapter 1.5.0 → 1.5.2

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/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@bernierllc/database-adapter",
3
- "version": "1.5.0",
3
+ "version": "1.5.2",
4
4
  "description": "Universal database connection and query abstraction layer with connection pooling",
5
5
  "main": "dist/index.js",
6
6
  "types": "dist/index.d.ts",
@@ -25,7 +25,7 @@
25
25
  "author": "Bernier LLC",
26
26
  "license": "PROPRIETARY",
27
27
  "dependencies": {
28
- "@bernierllc/logger": "1.7.0"
28
+ "@bernierllc/logger": "2.0.0"
29
29
  },
30
30
  "peerDependencies": {
31
31
  "better-sqlite3": "^9.2.0",
@@ -1,20 +0,0 @@
1
- import type { DatabaseAdapter, DatabaseConfig, ExecuteResult, HealthCheckResult, ConnectionStats, Transaction } from '../types.js';
2
- export declare class PostgreSQLAdapter implements DatabaseAdapter {
3
- private pool;
4
- private config;
5
- private queryCount;
6
- private totalQueryTime;
7
- constructor(config: DatabaseConfig);
8
- private parseConfig;
9
- connect(): Promise<void>;
10
- disconnect(): Promise<void>;
11
- query<T = any>(sql: string, params?: any[]): Promise<T[]>;
12
- queryOne<T = any>(sql: string, params?: any[]): Promise<T | null>;
13
- execute(sql: string, params?: any[]): Promise<ExecuteResult>;
14
- transaction<T>(fn: (tx: Transaction) => Promise<T>): Promise<T>;
15
- healthCheck(): Promise<HealthCheckResult>;
16
- getStats(): Promise<ConnectionStats>;
17
- private trackQuery;
18
- private logQuery;
19
- }
20
- //# sourceMappingURL=postgresql.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"postgresql.d.ts","sourceRoot":"","sources":["../../src/adapters/postgresql.ts"],"names":[],"mappings":"AASA,OAAO,KAAK,EACV,eAAe,EACf,cAAc,EACd,aAAa,EACb,iBAAiB,EACjB,eAAe,EACf,WAAW,EAEZ,MAAM,aAAa,CAAC;AAerB,qBAAa,iBAAkB,YAAW,eAAe;IACvD,OAAO,CAAC,IAAI,CAAwB;IACpC,OAAO,CAAC,MAAM,CAAmB;IACjC,OAAO,CAAC,UAAU,CAAK;IACvB,OAAO,CAAC,cAAc,CAAK;gBAEf,MAAM,EAAE,cAAc;IAIlC,OAAO,CAAC,WAAW;IAqBb,OAAO,IAAI,OAAO,CAAC,IAAI,CAAC;IA2BxB,UAAU,IAAI,OAAO,CAAC,IAAI,CAAC;IAO3B,KAAK,CAAC,CAAC,GAAG,GAAG,EAAE,GAAG,EAAE,MAAM,EAAE,MAAM,GAAE,GAAG,EAAO,GAAG,OAAO,CAAC,CAAC,EAAE,CAAC;IAyB7D,QAAQ,CAAC,CAAC,GAAG,GAAG,EAAE,GAAG,EAAE,MAAM,EAAE,MAAM,GAAE,GAAG,EAAO,GAAG,OAAO,CAAC,CAAC,GAAG,IAAI,CAAC;IAKrE,OAAO,CAAC,GAAG,EAAE,MAAM,EAAE,MAAM,GAAE,GAAG,EAAO,GAAG,OAAO,CAAC,aAAa,CAAC;IA6BhE,WAAW,CAAC,CAAC,EAAE,EAAE,EAAE,CAAC,EAAE,EAAE,WAAW,KAAK,OAAO,CAAC,CAAC,CAAC,GAAG,OAAO,CAAC,CAAC,CAAC;IAqD/D,WAAW,IAAI,OAAO,CAAC,iBAAiB,CAAC;IAwBzC,QAAQ,IAAI,OAAO,CAAC,eAAe,CAAC;IAW1C,OAAO,CAAC,UAAU;IAKlB,OAAO,CAAC,QAAQ;CAQjB"}
@@ -1,204 +0,0 @@
1
- /*
2
- Copyright (c) 2025 Bernier LLC
3
-
4
- This file is licensed to the client under a limited-use license.
5
- The client may use and modify this code *only within the scope of the project it was delivered for*.
6
- Redistribution or use in other products or commercial offerings is not permitted without written consent from Bernier LLC.
7
- */
8
- import pg from 'pg';
9
- import { ConnectionError, QueryError, TransactionError } from '../types.js';
10
- const { Pool } = pg;
11
- export class PostgreSQLAdapter {
12
- pool = null;
13
- config;
14
- queryCount = 0;
15
- totalQueryTime = 0;
16
- constructor(config) {
17
- this.config = this.parseConfig(config);
18
- }
19
- parseConfig(config) {
20
- const defaultPool = {
21
- min: 2,
22
- max: 10,
23
- acquireTimeoutMillis: 60000,
24
- createTimeoutMillis: 30000,
25
- idleTimeoutMillis: 30000,
26
- reapIntervalMillis: 1000
27
- };
28
- return {
29
- host: config.host || 'localhost',
30
- port: config.port || 5432,
31
- database: config.database,
32
- user: config.username || 'postgres',
33
- password: config.password || '',
34
- ssl: config.ssl,
35
- pool: { ...defaultPool, ...config.pool }
36
- };
37
- }
38
- async connect() {
39
- try {
40
- this.pool = new Pool({
41
- host: this.config.host,
42
- port: this.config.port,
43
- database: this.config.database,
44
- user: this.config.user,
45
- password: this.config.password,
46
- ssl: this.config.ssl,
47
- min: this.config.pool.min,
48
- max: this.config.pool.max,
49
- connectionTimeoutMillis: this.config.pool.acquireTimeoutMillis,
50
- idleTimeoutMillis: this.config.pool.idleTimeoutMillis
51
- });
52
- // Test connection
53
- const client = await this.pool.connect();
54
- await client.query('SELECT 1');
55
- client.release();
56
- }
57
- catch (error) {
58
- throw new ConnectionError(`Failed to connect to PostgreSQL: ${error instanceof Error ? error.message : String(error)}`, error instanceof Error ? error : undefined);
59
- }
60
- }
61
- async disconnect() {
62
- if (this.pool) {
63
- await this.pool.end();
64
- this.pool = null;
65
- }
66
- }
67
- async query(sql, params = []) {
68
- if (!this.pool) {
69
- throw new ConnectionError('Database not connected');
70
- }
71
- const client = await this.pool.connect();
72
- try {
73
- const start = Date.now();
74
- const result = await client.query(sql, params);
75
- const duration = Date.now() - start;
76
- this.trackQuery(duration);
77
- this.logQuery(sql, params, duration, result.rowCount || 0);
78
- return result.rows;
79
- }
80
- catch (error) {
81
- throw new QueryError(`Query failed: ${error instanceof Error ? error.message : String(error)}`, error instanceof Error ? error : undefined);
82
- }
83
- finally {
84
- client.release();
85
- }
86
- }
87
- async queryOne(sql, params = []) {
88
- const results = await this.query(sql, params);
89
- return results.length > 0 ? results[0] : null;
90
- }
91
- async execute(sql, params = []) {
92
- if (!this.pool) {
93
- throw new ConnectionError('Database not connected');
94
- }
95
- const client = await this.pool.connect();
96
- try {
97
- const start = Date.now();
98
- const result = await client.query(sql, params);
99
- const duration = Date.now() - start;
100
- this.trackQuery(duration);
101
- this.logQuery(sql, params, duration, result.rowCount || 0);
102
- return {
103
- affectedRows: result.rowCount || 0,
104
- insertId: result.rows[0]?.id,
105
- changedRows: result.rowCount || 0
106
- };
107
- }
108
- catch (error) {
109
- throw new QueryError(`Execute failed: ${error instanceof Error ? error.message : String(error)}`, error instanceof Error ? error : undefined);
110
- }
111
- finally {
112
- client.release();
113
- }
114
- }
115
- async transaction(fn) {
116
- if (!this.pool) {
117
- throw new ConnectionError('Database not connected');
118
- }
119
- const client = await this.pool.connect();
120
- try {
121
- await client.query('BEGIN');
122
- const transaction = {
123
- query: async (sql, params) => {
124
- const result = await client.query(sql, params || []);
125
- return result.rows;
126
- },
127
- queryOne: async (sql, params) => {
128
- const result = await client.query(sql, params || []);
129
- return result.rows.length > 0 ? result.rows[0] : null;
130
- },
131
- execute: async (sql, params) => {
132
- const result = await client.query(sql, params || []);
133
- return {
134
- affectedRows: result.rowCount || 0,
135
- insertId: result.rows[0]?.id,
136
- changedRows: result.rowCount || 0
137
- };
138
- },
139
- commit: async () => {
140
- await client.query('COMMIT');
141
- },
142
- rollback: async () => {
143
- await client.query('ROLLBACK');
144
- }
145
- };
146
- const result = await fn(transaction);
147
- await transaction.commit();
148
- return result;
149
- }
150
- catch (error) {
151
- await client.query('ROLLBACK');
152
- throw new TransactionError(`Transaction failed: ${error instanceof Error ? error.message : String(error)}`, error instanceof Error ? error : undefined);
153
- }
154
- finally {
155
- client.release();
156
- }
157
- }
158
- async healthCheck() {
159
- try {
160
- const start = Date.now();
161
- await this.queryOne('SELECT 1 as health');
162
- const responseTime = Date.now() - start;
163
- return {
164
- status: 'healthy',
165
- responseTime,
166
- details: this.pool ? {
167
- totalConnections: this.pool.totalCount,
168
- idleConnections: this.pool.idleCount,
169
- waitingClients: this.pool.waitingCount
170
- } : undefined
171
- };
172
- }
173
- catch (error) {
174
- return {
175
- status: 'unhealthy',
176
- responseTime: 0,
177
- error: error instanceof Error ? error.message : String(error)
178
- };
179
- }
180
- }
181
- async getStats() {
182
- return {
183
- totalConnections: this.pool?.totalCount || 0,
184
- activeConnections: (this.pool?.totalCount || 0) - (this.pool?.idleCount || 0),
185
- idleConnections: this.pool?.idleCount || 0,
186
- waitingClients: this.pool?.waitingCount || 0,
187
- avgQueryTime: this.queryCount > 0 ? this.totalQueryTime / this.queryCount : 0,
188
- totalQueries: this.queryCount
189
- };
190
- }
191
- trackQuery(duration) {
192
- this.queryCount++;
193
- this.totalQueryTime += duration;
194
- }
195
- logQuery(sql, params, duration, rowCount) {
196
- console.debug('PostgreSQL query executed', {
197
- sql: sql.substring(0, 100) + (sql.length > 100 ? '...' : ''),
198
- paramCount: params.length,
199
- duration,
200
- rowCount
201
- });
202
- }
203
- }
204
- //# sourceMappingURL=postgresql.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"postgresql.js","sourceRoot":"","sources":["../../src/adapters/postgresql.ts"],"names":[],"mappings":"AAAA;;;;;;EAME;AAEF,OAAO,EAAE,MAAM,IAAI,CAAC;AAUpB,OAAO,EAAE,eAAe,EAAE,UAAU,EAAE,gBAAgB,EAAE,MAAM,aAAa,CAAC;AAE5E,MAAM,EAAE,IAAI,EAAE,GAAG,EAAE,CAAC;AAYpB,MAAM,OAAO,iBAAiB;IACpB,IAAI,GAAmB,IAAI,CAAC;IAC5B,MAAM,CAAmB;IACzB,UAAU,GAAG,CAAC,CAAC;IACf,cAAc,GAAG,CAAC,CAAC;IAE3B,YAAY,MAAsB;QAChC,IAAI,CAAC,MAAM,GAAG,IAAI,CAAC,WAAW,CAAC,MAAM,CAAC,CAAC;IACzC,CAAC;IAEO,WAAW,CAAC,MAAsB;QACxC,MAAM,WAAW,GAAyB;YACxC,GAAG,EAAE,CAAC;YACN,GAAG,EAAE,EAAE;YACP,oBAAoB,EAAE,KAAK;YAC3B,mBAAmB,EAAE,KAAK;YAC1B,iBAAiB,EAAE,KAAK;YACxB,kBAAkB,EAAE,IAAI;SACzB,CAAC;QAEF,OAAO;YACL,IAAI,EAAE,MAAM,CAAC,IAAI,IAAI,WAAW;YAChC,IAAI,EAAE,MAAM,CAAC,IAAI,IAAI,IAAI;YACzB,QAAQ,EAAE,MAAM,CAAC,QAAQ;YACzB,IAAI,EAAE,MAAM,CAAC,QAAQ,IAAI,UAAU;YACnC,QAAQ,EAAE,MAAM,CAAC,QAAQ,IAAI,EAAE;YAC/B,GAAG,EAAE,MAAM,CAAC,GAAG;YACf,IAAI,EAAE,EAAE,GAAG,WAAW,EAAE,GAAG,MAAM,CAAC,IAAI,EAAE;SACzC,CAAC;IACJ,CAAC;IAED,KAAK,CAAC,OAAO;QACX,IAAI,CAAC;YACH,IAAI,CAAC,IAAI,GAAG,IAAI,IAAI,CAAC;gBACnB,IAAI,EAAE,IAAI,CAAC,MAAM,CAAC,IAAI;gBACtB,IAAI,EAAE,IAAI,CAAC,MAAM,CAAC,IAAI;gBACtB,QAAQ,EAAE,IAAI,CAAC,MAAM,CAAC,QAAQ;gBAC9B,IAAI,EAAE,IAAI,CAAC,MAAM,CAAC,IAAI;gBACtB,QAAQ,EAAE,IAAI,CAAC,MAAM,CAAC,QAAQ;gBAC9B,GAAG,EAAE,IAAI,CAAC,MAAM,CAAC,GAAG;gBACpB,GAAG,EAAE,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,GAAG;gBACzB,GAAG,EAAE,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,GAAG;gBACzB,uBAAuB,EAAE,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,oBAAoB;gBAC9D,iBAAiB,EAAE,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,iBAAiB;aACtD,CAAC,CAAC;YAEH,kBAAkB;YAClB,MAAM,MAAM,GAAG,MAAM,IAAI,CAAC,IAAI,CAAC,OAAO,EAAE,CAAC;YACzC,MAAM,MAAM,CAAC,KAAK,CAAC,UAAU,CAAC,CAAC;YAC/B,MAAM,CAAC,OAAO,EAAE,CAAC;QACnB,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACf,MAAM,IAAI,eAAe,CACvB,oCAAoC,KAAK,YAAY,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,EAAE,EAC5F,KAAK,YAAY,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,SAAS,CAC3C,CAAC;QACJ,CAAC;IACH,CAAC;IAED,KAAK,CAAC,UAAU;QACd,IAAI,IAAI,CAAC,IAAI,EAAE,CAAC;YACd,MAAM,IAAI,CAAC,IAAI,CAAC,GAAG,EAAE,CAAC;YACtB,IAAI,CAAC,IAAI,GAAG,IAAI,CAAC;QACnB,CAAC;IACH,CAAC;IAED,KAAK,CAAC,KAAK,CAAU,GAAW,EAAE,SAAgB,EAAE;QAClD,IAAI,CAAC,IAAI,CAAC,IAAI,EAAE,CAAC;YACf,MAAM,IAAI,eAAe,CAAC,wBAAwB,CAAC,CAAC;QACtD,CAAC;QAED,MAAM,MAAM,GAAG,MAAM,IAAI,CAAC,IAAI,CAAC,OAAO,EAAE,CAAC;QACzC,IAAI,CAAC;YACH,MAAM,KAAK,GAAG,IAAI,CAAC,GAAG,EAAE,CAAC;YACzB,MAAM,MAAM,GAAG,MAAM,MAAM,CAAC,KAAK,CAAC,GAAG,EAAE,MAAM,CAAC,CAAC;YAC/C,MAAM,QAAQ,GAAG,IAAI,CAAC,GAAG,EAAE,GAAG,KAAK,CAAC;YAEpC,IAAI,CAAC,UAAU,CAAC,QAAQ,CAAC,CAAC;YAC1B,IAAI,CAAC,QAAQ,CAAC,GAAG,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,CAAC,QAAQ,IAAI,CAAC,CAAC,CAAC;YAE3D,OAAO,MAAM,CAAC,IAAW,CAAC;QAC5B,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACf,MAAM,IAAI,UAAU,CAClB,iBAAiB,KAAK,YAAY,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,EAAE,EACzE,KAAK,YAAY,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,SAAS,CAC3C,CAAC;QACJ,CAAC;gBAAS,CAAC;YACT,MAAM,CAAC,OAAO,EAAE,CAAC;QACnB,CAAC;IACH,CAAC;IAED,KAAK,CAAC,QAAQ,CAAU,GAAW,EAAE,SAAgB,EAAE;QACrD,MAAM,OAAO,GAAG,MAAM,IAAI,CAAC,KAAK,CAAI,GAAG,EAAE,MAAM,CAAC,CAAC;QACjD,OAAO,OAAO,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC;IAChD,CAAC;IAED,KAAK,CAAC,OAAO,CAAC,GAAW,EAAE,SAAgB,EAAE;QAC3C,IAAI,CAAC,IAAI,CAAC,IAAI,EAAE,CAAC;YACf,MAAM,IAAI,eAAe,CAAC,wBAAwB,CAAC,CAAC;QACtD,CAAC;QAED,MAAM,MAAM,GAAG,MAAM,IAAI,CAAC,IAAI,CAAC,OAAO,EAAE,CAAC;QACzC,IAAI,CAAC;YACH,MAAM,KAAK,GAAG,IAAI,CAAC,GAAG,EAAE,CAAC;YACzB,MAAM,MAAM,GAAG,MAAM,MAAM,CAAC,KAAK,CAAC,GAAG,EAAE,MAAM,CAAC,CAAC;YAC/C,MAAM,QAAQ,GAAG,IAAI,CAAC,GAAG,EAAE,GAAG,KAAK,CAAC;YAEpC,IAAI,CAAC,UAAU,CAAC,QAAQ,CAAC,CAAC;YAC1B,IAAI,CAAC,QAAQ,CAAC,GAAG,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,CAAC,QAAQ,IAAI,CAAC,CAAC,CAAC;YAE3D,OAAO;gBACL,YAAY,EAAE,MAAM,CAAC,QAAQ,IAAI,CAAC;gBAClC,QAAQ,EAAE,MAAM,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE;gBAC5B,WAAW,EAAE,MAAM,CAAC,QAAQ,IAAI,CAAC;aAClC,CAAC;QACJ,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACf,MAAM,IAAI,UAAU,CAClB,mBAAmB,KAAK,YAAY,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,EAAE,EAC3E,KAAK,YAAY,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,SAAS,CAC3C,CAAC;QACJ,CAAC;gBAAS,CAAC;YACT,MAAM,CAAC,OAAO,EAAE,CAAC;QACnB,CAAC;IACH,CAAC;IAED,KAAK,CAAC,WAAW,CAAI,EAAmC;QACtD,IAAI,CAAC,IAAI,CAAC,IAAI,EAAE,CAAC;YACf,MAAM,IAAI,eAAe,CAAC,wBAAwB,CAAC,CAAC;QACtD,CAAC;QAED,MAAM,MAAM,GAAG,MAAM,IAAI,CAAC,IAAI,CAAC,OAAO,EAAE,CAAC;QAEzC,IAAI,CAAC;YACH,MAAM,MAAM,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC;YAE5B,MAAM,WAAW,GAAgB;gBAC/B,KAAK,EAAE,KAAK,EAAK,GAAW,EAAE,MAAc,EAAE,EAAE;oBAC9C,MAAM,MAAM,GAAG,MAAM,MAAM,CAAC,KAAK,CAAC,GAAG,EAAE,MAAM,IAAI,EAAE,CAAC,CAAC;oBACrD,OAAO,MAAM,CAAC,IAAW,CAAC;gBAC5B,CAAC;gBAED,QAAQ,EAAE,KAAK,EAAK,GAAW,EAAE,MAAc,EAAE,EAAE;oBACjD,MAAM,MAAM,GAAG,MAAM,MAAM,CAAC,KAAK,CAAC,GAAG,EAAE,MAAM,IAAI,EAAE,CAAC,CAAC;oBACrD,OAAO,MAAM,CAAC,IAAI,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAE,MAAM,CAAC,IAAI,CAAC,CAAC,CAAO,CAAC,CAAC,CAAC,IAAI,CAAC;gBAC/D,CAAC;gBAED,OAAO,EAAE,KAAK,EAAE,GAAW,EAAE,MAAc,EAAE,EAAE;oBAC7C,MAAM,MAAM,GAAG,MAAM,MAAM,CAAC,KAAK,CAAC,GAAG,EAAE,MAAM,IAAI,EAAE,CAAC,CAAC;oBACrD,OAAO;wBACL,YAAY,EAAE,MAAM,CAAC,QAAQ,IAAI,CAAC;wBAClC,QAAQ,EAAE,MAAM,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE;wBAC5B,WAAW,EAAE,MAAM,CAAC,QAAQ,IAAI,CAAC;qBAClC,CAAC;gBACJ,CAAC;gBAED,MAAM,EAAE,KAAK,IAAI,EAAE;oBACjB,MAAM,MAAM,CAAC,KAAK,CAAC,QAAQ,CAAC,CAAC;gBAC/B,CAAC;gBAED,QAAQ,EAAE,KAAK,IAAI,EAAE;oBACnB,MAAM,MAAM,CAAC,KAAK,CAAC,UAAU,CAAC,CAAC;gBACjC,CAAC;aACF,CAAC;YAEF,MAAM,MAAM,GAAG,MAAM,EAAE,CAAC,WAAW,CAAC,CAAC;YACrC,MAAM,WAAW,CAAC,MAAM,EAAE,CAAC;YAC3B,OAAO,MAAM,CAAC;QAChB,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACf,MAAM,MAAM,CAAC,KAAK,CAAC,UAAU,CAAC,CAAC;YAC/B,MAAM,IAAI,gBAAgB,CACxB,uBAAuB,KAAK,YAAY,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,EAAE,EAC/E,KAAK,YAAY,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,SAAS,CAC3C,CAAC;QACJ,CAAC;gBAAS,CAAC;YACT,MAAM,CAAC,OAAO,EAAE,CAAC;QACnB,CAAC;IACH,CAAC;IAED,KAAK,CAAC,WAAW;QACf,IAAI,CAAC;YACH,MAAM,KAAK,GAAG,IAAI,CAAC,GAAG,EAAE,CAAC;YACzB,MAAM,IAAI,CAAC,QAAQ,CAAC,oBAAoB,CAAC,CAAC;YAC1C,MAAM,YAAY,GAAG,IAAI,CAAC,GAAG,EAAE,GAAG,KAAK,CAAC;YAExC,OAAO;gBACL,MAAM,EAAE,SAAS;gBACjB,YAAY;gBACZ,OAAO,EAAE,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC;oBACnB,gBAAgB,EAAE,IAAI,CAAC,IAAI,CAAC,UAAU;oBACtC,eAAe,EAAE,IAAI,CAAC,IAAI,CAAC,SAAS;oBACpC,cAAc,EAAE,IAAI,CAAC,IAAI,CAAC,YAAY;iBACvC,CAAC,CAAC,CAAC,SAAS;aACd,CAAC;QACJ,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACf,OAAO;gBACL,MAAM,EAAE,WAAW;gBACnB,YAAY,EAAE,CAAC;gBACf,KAAK,EAAE,KAAK,YAAY,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC;aAC9D,CAAC;QACJ,CAAC;IACH,CAAC;IAED,KAAK,CAAC,QAAQ;QACZ,OAAO;YACL,gBAAgB,EAAE,IAAI,CAAC,IAAI,EAAE,UAAU,IAAI,CAAC;YAC5C,iBAAiB,EAAE,CAAC,IAAI,CAAC,IAAI,EAAE,UAAU,IAAI,CAAC,CAAC,GAAG,CAAC,IAAI,CAAC,IAAI,EAAE,SAAS,IAAI,CAAC,CAAC;YAC7E,eAAe,EAAE,IAAI,CAAC,IAAI,EAAE,SAAS,IAAI,CAAC;YAC1C,cAAc,EAAE,IAAI,CAAC,IAAI,EAAE,YAAY,IAAI,CAAC;YAC5C,YAAY,EAAE,IAAI,CAAC,UAAU,GAAG,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,cAAc,GAAG,IAAI,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC;YAC7E,YAAY,EAAE,IAAI,CAAC,UAAU;SAC9B,CAAC;IACJ,CAAC;IAEO,UAAU,CAAC,QAAgB;QACjC,IAAI,CAAC,UAAU,EAAE,CAAC;QAClB,IAAI,CAAC,cAAc,IAAI,QAAQ,CAAC;IAClC,CAAC;IAEO,QAAQ,CAAC,GAAW,EAAE,MAAa,EAAE,QAAgB,EAAE,QAAgB;QAC7E,OAAO,CAAC,KAAK,CAAC,2BAA2B,EAAE;YACzC,GAAG,EAAE,GAAG,CAAC,SAAS,CAAC,CAAC,EAAE,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,MAAM,GAAG,GAAG,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,EAAE,CAAC;YAC5D,UAAU,EAAE,MAAM,CAAC,MAAM;YACzB,QAAQ;YACR,QAAQ;SACT,CAAC,CAAC;IACL,CAAC;CACF"}
@@ -1,24 +0,0 @@
1
- import type { DatabaseAdapter, DatabaseConfig, ExecuteResult, HealthCheckResult, ConnectionStats, Transaction } from '../types.js';
2
- export declare class SQLiteAdapter implements DatabaseAdapter {
3
- private db;
4
- private dbPath;
5
- private queryCount;
6
- private totalQueryTime;
7
- constructor(config: DatabaseConfig);
8
- /**
9
- * Convert PostgreSQL-style $N placeholders to SQLite ? placeholders.
10
- * The DatabaseManager generates $1, $2, etc. but better-sqlite3 uses ? placeholders.
11
- */
12
- private convertPlaceholders;
13
- connect(): Promise<void>;
14
- disconnect(): Promise<void>;
15
- query<T = any>(sql: string, params?: any[]): Promise<T[]>;
16
- queryOne<T = any>(sql: string, params?: any[]): Promise<T | null>;
17
- execute(sql: string, params?: any[]): Promise<ExecuteResult>;
18
- transaction<T>(fn: (tx: Transaction) => Promise<T>): Promise<T>;
19
- healthCheck(): Promise<HealthCheckResult>;
20
- getStats(): Promise<ConnectionStats>;
21
- private trackQuery;
22
- private logQuery;
23
- }
24
- //# sourceMappingURL=sqlite.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"sqlite.d.ts","sourceRoot":"","sources":["../../src/adapters/sqlite.ts"],"names":[],"mappings":"AASA,OAAO,KAAK,EACV,eAAe,EACf,cAAc,EACd,aAAa,EACb,iBAAiB,EACjB,eAAe,EACf,WAAW,EACZ,MAAM,aAAa,CAAC;AAGrB,qBAAa,aAAc,YAAW,eAAe;IACnD,OAAO,CAAC,EAAE,CAAkC;IAC5C,OAAO,CAAC,MAAM,CAAS;IACvB,OAAO,CAAC,UAAU,CAAK;IACvB,OAAO,CAAC,cAAc,CAAK;gBAEf,MAAM,EAAE,cAAc;IAIlC;;;OAGG;IACH,OAAO,CAAC,mBAAmB;IAIrB,OAAO,IAAI,OAAO,CAAC,IAAI,CAAC;IAaxB,UAAU,IAAI,OAAO,CAAC,IAAI,CAAC;IAO3B,KAAK,CAAC,CAAC,GAAG,GAAG,EAAE,GAAG,EAAE,MAAM,EAAE,MAAM,GAAE,GAAG,EAAO,GAAG,OAAO,CAAC,CAAC,EAAE,CAAC;IAwB7D,QAAQ,CAAC,CAAC,GAAG,GAAG,EAAE,GAAG,EAAE,MAAM,EAAE,MAAM,GAAE,GAAG,EAAO,GAAG,OAAO,CAAC,CAAC,GAAG,IAAI,CAAC;IAwBrE,OAAO,CAAC,GAAG,EAAE,MAAM,EAAE,MAAM,GAAE,GAAG,EAAO,GAAG,OAAO,CAAC,aAAa,CAAC;IA4BhE,WAAW,CAAC,CAAC,EAAE,EAAE,EAAE,CAAC,EAAE,EAAE,WAAW,KAAK,OAAO,CAAC,CAAC,CAAC,GAAG,OAAO,CAAC,CAAC,CAAC;IAsD/D,WAAW,IAAI,OAAO,CAAC,iBAAiB,CAAC;IAmBzC,QAAQ,IAAI,OAAO,CAAC,eAAe,CAAC;IAU1C,OAAO,CAAC,UAAU;IAKlB,OAAO,CAAC,QAAQ;CAQjB"}
@@ -1,182 +0,0 @@
1
- /*
2
- Copyright (c) 2025 Bernier LLC
3
-
4
- This file is licensed to the client under a limited-use license.
5
- The client may use and modify this code *only within the scope of the project it was delivered for*.
6
- Redistribution or use in other products or commercial offerings is not permitted without written consent from Bernier LLC.
7
- */
8
- import Database from 'better-sqlite3';
9
- import { ConnectionError, QueryError, TransactionError } from '../types.js';
10
- export class SQLiteAdapter {
11
- db = null;
12
- dbPath;
13
- queryCount = 0;
14
- totalQueryTime = 0;
15
- constructor(config) {
16
- this.dbPath = config.database;
17
- }
18
- /**
19
- * Convert PostgreSQL-style $N placeholders to SQLite ? placeholders.
20
- * The DatabaseManager generates $1, $2, etc. but better-sqlite3 uses ? placeholders.
21
- */
22
- convertPlaceholders(sql) {
23
- return sql.replace(/\$\d+/g, '?');
24
- }
25
- async connect() {
26
- try {
27
- this.db = new Database(this.dbPath);
28
- // Enable WAL mode for better concurrency
29
- this.db.pragma('journal_mode = WAL');
30
- }
31
- catch (error) {
32
- throw new ConnectionError(`Failed to connect to SQLite: ${error instanceof Error ? error.message : String(error)}`, error instanceof Error ? error : undefined);
33
- }
34
- }
35
- async disconnect() {
36
- if (this.db) {
37
- this.db.close();
38
- this.db = null;
39
- }
40
- }
41
- async query(sql, params = []) {
42
- if (!this.db) {
43
- throw new ConnectionError('Database not connected');
44
- }
45
- try {
46
- const start = Date.now();
47
- const convertedSql = this.convertPlaceholders(sql);
48
- const stmt = this.db.prepare(convertedSql);
49
- const result = stmt.all(...params);
50
- const duration = Date.now() - start;
51
- this.trackQuery(duration);
52
- this.logQuery(convertedSql, params, duration, result.length);
53
- return result;
54
- }
55
- catch (error) {
56
- throw new QueryError(`Query failed: ${error instanceof Error ? error.message : String(error)}`, error instanceof Error ? error : undefined);
57
- }
58
- }
59
- async queryOne(sql, params = []) {
60
- if (!this.db) {
61
- throw new ConnectionError('Database not connected');
62
- }
63
- try {
64
- const start = Date.now();
65
- const convertedSql = this.convertPlaceholders(sql);
66
- const stmt = this.db.prepare(convertedSql);
67
- const result = stmt.get(...params);
68
- const duration = Date.now() - start;
69
- this.trackQuery(duration);
70
- this.logQuery(convertedSql, params, duration, result ? 1 : 0);
71
- return result || null;
72
- }
73
- catch (error) {
74
- throw new QueryError(`Query failed: ${error instanceof Error ? error.message : String(error)}`, error instanceof Error ? error : undefined);
75
- }
76
- }
77
- async execute(sql, params = []) {
78
- if (!this.db) {
79
- throw new ConnectionError('Database not connected');
80
- }
81
- try {
82
- const start = Date.now();
83
- const convertedSql = this.convertPlaceholders(sql);
84
- const stmt = this.db.prepare(convertedSql);
85
- const info = stmt.run(...params);
86
- const duration = Date.now() - start;
87
- this.trackQuery(duration);
88
- this.logQuery(convertedSql, params, duration, info.changes);
89
- return {
90
- affectedRows: info.changes,
91
- insertId: info.lastInsertRowid,
92
- changedRows: info.changes
93
- };
94
- }
95
- catch (error) {
96
- throw new QueryError(`Execute failed: ${error instanceof Error ? error.message : String(error)}`, error instanceof Error ? error : undefined);
97
- }
98
- }
99
- async transaction(fn) {
100
- if (!this.db) {
101
- throw new ConnectionError('Database not connected');
102
- }
103
- const db = this.db;
104
- try {
105
- db.exec('BEGIN');
106
- const convertPlaceholders = this.convertPlaceholders.bind(this);
107
- const transaction = {
108
- query: async (sql, params) => {
109
- const stmt = db.prepare(convertPlaceholders(sql));
110
- return stmt.all(...(params || []));
111
- },
112
- queryOne: async (sql, params) => {
113
- const stmt = db.prepare(convertPlaceholders(sql));
114
- const result = stmt.get(...(params || []));
115
- return result || null;
116
- },
117
- execute: async (sql, params) => {
118
- const stmt = db.prepare(convertPlaceholders(sql));
119
- const info = stmt.run(...(params || []));
120
- return {
121
- affectedRows: info.changes,
122
- insertId: info.lastInsertRowid,
123
- changedRows: info.changes
124
- };
125
- },
126
- commit: async () => {
127
- db.exec('COMMIT');
128
- },
129
- rollback: async () => {
130
- db.exec('ROLLBACK');
131
- }
132
- };
133
- const result = await fn(transaction);
134
- await transaction.commit();
135
- return result;
136
- }
137
- catch (error) {
138
- db.exec('ROLLBACK');
139
- throw new TransactionError(`Transaction failed: ${error instanceof Error ? error.message : String(error)}`, error instanceof Error ? error : undefined);
140
- }
141
- }
142
- async healthCheck() {
143
- try {
144
- const start = Date.now();
145
- await this.queryOne('SELECT 1 as health');
146
- const responseTime = Date.now() - start;
147
- return {
148
- status: 'healthy',
149
- responseTime
150
- };
151
- }
152
- catch (error) {
153
- return {
154
- status: 'unhealthy',
155
- responseTime: 0,
156
- error: error instanceof Error ? error.message : String(error)
157
- };
158
- }
159
- }
160
- async getStats() {
161
- return {
162
- totalConnections: 1, // SQLite uses single connection
163
- activeConnections: this.db ? 1 : 0,
164
- idleConnections: 0,
165
- avgQueryTime: this.queryCount > 0 ? this.totalQueryTime / this.queryCount : 0,
166
- totalQueries: this.queryCount
167
- };
168
- }
169
- trackQuery(duration) {
170
- this.queryCount++;
171
- this.totalQueryTime += duration;
172
- }
173
- logQuery(sql, params, duration, rowCount) {
174
- console.debug('SQLite query executed', {
175
- sql: sql.substring(0, 100) + (sql.length > 100 ? '...' : ''),
176
- paramCount: params.length,
177
- duration,
178
- rowCount
179
- });
180
- }
181
- }
182
- //# sourceMappingURL=sqlite.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"sqlite.js","sourceRoot":"","sources":["../../src/adapters/sqlite.ts"],"names":[],"mappings":"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"}
@@ -1,21 +0,0 @@
1
- import type { DatabaseConfig, ExecuteResult, HealthCheckResult, ConnectionStats, Transaction, QueryOptions } from './types.js';
2
- export declare class DatabaseManager {
3
- private adapter;
4
- constructor(config: DatabaseConfig);
5
- private createAdapter;
6
- connect(): Promise<void>;
7
- disconnect(): Promise<void>;
8
- query<T = any>(sql: string, params?: any[]): Promise<T[]>;
9
- queryOne<T = any>(sql: string, params?: any[]): Promise<T | null>;
10
- execute(sql: string, params?: any[]): Promise<ExecuteResult>;
11
- transaction<T>(fn: (tx: Transaction) => Promise<T>): Promise<T>;
12
- findById<T = any>(table: string, id: any): Promise<T | null>;
13
- findOne<T = any>(table: string, where: Record<string, any>): Promise<T | null>;
14
- findMany<T = any>(table: string, where?: Record<string, any>, options?: QueryOptions): Promise<T[]>;
15
- insert<T = any>(table: string, data: Partial<T>): Promise<T>;
16
- update<T = any>(table: string, id: any, data: Partial<T>): Promise<T>;
17
- delete(table: string, id: any): Promise<boolean>;
18
- healthCheck(): Promise<HealthCheckResult>;
19
- getStats(): Promise<ConnectionStats>;
20
- }
21
- //# sourceMappingURL=database-manager.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"database-manager.d.ts","sourceRoot":"","sources":["../src/database-manager.ts"],"names":[],"mappings":"AAQA,OAAO,KAAK,EAEV,cAAc,EACd,aAAa,EACb,iBAAiB,EACjB,eAAe,EACf,WAAW,EACX,YAAY,EACb,MAAM,YAAY,CAAC;AAKpB,qBAAa,eAAe;IAC1B,OAAO,CAAC,OAAO,CAAkB;gBAErB,MAAM,EAAE,cAAc;IAIlC,OAAO,CAAC,aAAa;IAef,OAAO,IAAI,OAAO,CAAC,IAAI,CAAC;IAIxB,UAAU,IAAI,OAAO,CAAC,IAAI,CAAC;IAK3B,KAAK,CAAC,CAAC,GAAG,GAAG,EAAE,GAAG,EAAE,MAAM,EAAE,MAAM,CAAC,EAAE,GAAG,EAAE,GAAG,OAAO,CAAC,CAAC,EAAE,CAAC;IAIzD,QAAQ,CAAC,CAAC,GAAG,GAAG,EAAE,GAAG,EAAE,MAAM,EAAE,MAAM,CAAC,EAAE,GAAG,EAAE,GAAG,OAAO,CAAC,CAAC,GAAG,IAAI,CAAC;IAIjE,OAAO,CAAC,GAAG,EAAE,MAAM,EAAE,MAAM,CAAC,EAAE,GAAG,EAAE,GAAG,OAAO,CAAC,aAAa,CAAC;IAK5D,WAAW,CAAC,CAAC,EAAE,EAAE,EAAE,CAAC,EAAE,EAAE,WAAW,KAAK,OAAO,CAAC,CAAC,CAAC,GAAG,OAAO,CAAC,CAAC,CAAC;IAK/D,QAAQ,CAAC,CAAC,GAAG,GAAG,EAAE,KAAK,EAAE,MAAM,EAAE,EAAE,EAAE,GAAG,GAAG,OAAO,CAAC,CAAC,GAAG,IAAI,CAAC;IAK5D,OAAO,CAAC,CAAC,GAAG,GAAG,EAAE,KAAK,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,GAAG,OAAO,CAAC,CAAC,GAAG,IAAI,CAAC;IAS9E,QAAQ,CAAC,CAAC,GAAG,GAAG,EACpB,KAAK,EAAE,MAAM,EACb,KAAK,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,EAC3B,OAAO,CAAC,EAAE,YAAY,GACrB,OAAO,CAAC,CAAC,EAAE,CAAC;IA2BT,MAAM,CAAC,CAAC,GAAG,GAAG,EAAE,KAAK,EAAE,MAAM,EAAE,IAAI,EAAE,OAAO,CAAC,CAAC,CAAC,GAAG,OAAO,CAAC,CAAC,CAAC;IAgB5D,MAAM,CAAC,CAAC,GAAG,GAAG,EAAE,KAAK,EAAE,MAAM,EAAE,EAAE,EAAE,GAAG,EAAE,IAAI,EAAE,OAAO,CAAC,CAAC,CAAC,GAAG,OAAO,CAAC,CAAC,CAAC;IAerE,MAAM,CAAC,KAAK,EAAE,MAAM,EAAE,EAAE,EAAE,GAAG,GAAG,OAAO,CAAC,OAAO,CAAC;IAOhD,WAAW,IAAI,OAAO,CAAC,iBAAiB,CAAC;IAIzC,QAAQ,IAAI,OAAO,CAAC,eAAe,CAAC;CAG3C"}
@@ -1,119 +0,0 @@
1
- /*
2
- Copyright (c) 2025 Bernier LLC
3
-
4
- This file is licensed to the client under a limited-use license.
5
- The client may use and modify this code *only within the scope of the project it was delivered for*.
6
- Redistribution or use in other products or commercial offerings is not permitted without written consent from Bernier LLC.
7
- */
8
- import { DatabaseError } from './types.js';
9
- import { PostgreSQLAdapter } from './adapters/postgresql.js';
10
- import { SQLiteAdapter } from './adapters/sqlite.js';
11
- export class DatabaseManager {
12
- adapter;
13
- constructor(config) {
14
- this.adapter = this.createAdapter(config);
15
- }
16
- createAdapter(config) {
17
- switch (config.type) {
18
- case 'postgresql':
19
- return new PostgreSQLAdapter(config);
20
- case 'sqlite':
21
- return new SQLiteAdapter(config);
22
- case 'mysql':
23
- throw new DatabaseError('MySQL adapter not yet implemented');
24
- case 'mongodb':
25
- throw new DatabaseError('MongoDB adapter not yet implemented');
26
- default:
27
- throw new DatabaseError(`Unsupported database type: ${config.type}`);
28
- }
29
- }
30
- async connect() {
31
- return this.adapter.connect();
32
- }
33
- async disconnect() {
34
- return this.adapter.disconnect();
35
- }
36
- // Direct query methods
37
- async query(sql, params) {
38
- return this.adapter.query(sql, params);
39
- }
40
- async queryOne(sql, params) {
41
- return this.adapter.queryOne(sql, params);
42
- }
43
- async execute(sql, params) {
44
- return this.adapter.execute(sql, params);
45
- }
46
- // Transaction support
47
- async transaction(fn) {
48
- return this.adapter.transaction(fn);
49
- }
50
- // Convenience CRUD methods
51
- async findById(table, id) {
52
- const sql = `SELECT * FROM ${table} WHERE id = $1 LIMIT 1`;
53
- return this.adapter.queryOne(sql, [id]);
54
- }
55
- async findOne(table, where) {
56
- const keys = Object.keys(where);
57
- const values = Object.values(where);
58
- const conditions = keys.map((key, idx) => `${key} = $${idx + 1}`).join(' AND ');
59
- const sql = `SELECT * FROM ${table} WHERE ${conditions} LIMIT 1`;
60
- return this.adapter.queryOne(sql, values);
61
- }
62
- async findMany(table, where, options) {
63
- let sql = `SELECT * FROM ${table}`;
64
- const params = [];
65
- if (where && Object.keys(where).length > 0) {
66
- const keys = Object.keys(where);
67
- const values = Object.values(where);
68
- const conditions = keys.map((key, idx) => `${key} = $${idx + 1}`).join(' AND ');
69
- sql += ` WHERE ${conditions}`;
70
- params.push(...values);
71
- }
72
- if (options?.orderBy) {
73
- sql += ` ORDER BY ${options.orderBy} ${options.orderDirection || 'ASC'}`;
74
- }
75
- if (options?.limit) {
76
- sql += ` LIMIT ${options.limit}`;
77
- }
78
- if (options?.offset) {
79
- sql += ` OFFSET ${options.offset}`;
80
- }
81
- return this.adapter.query(sql, params);
82
- }
83
- async insert(table, data) {
84
- const keys = Object.keys(data);
85
- const values = Object.values(data);
86
- const placeholders = keys.map((_, idx) => `$${idx + 1}`).join(', ');
87
- const columns = keys.join(', ');
88
- const sql = `INSERT INTO ${table} (${columns}) VALUES (${placeholders}) RETURNING *`;
89
- const result = await this.adapter.queryOne(sql, values);
90
- if (!result) {
91
- throw new DatabaseError('Insert operation failed to return result');
92
- }
93
- return result;
94
- }
95
- async update(table, id, data) {
96
- const keys = Object.keys(data);
97
- const values = Object.values(data);
98
- const sets = keys.map((key, idx) => `${key} = $${idx + 1}`).join(', ');
99
- const sql = `UPDATE ${table} SET ${sets} WHERE id = $${keys.length + 1} RETURNING *`;
100
- const result = await this.adapter.queryOne(sql, [...values, id]);
101
- if (!result) {
102
- throw new DatabaseError('Update operation failed to return result');
103
- }
104
- return result;
105
- }
106
- async delete(table, id) {
107
- const sql = `DELETE FROM ${table} WHERE id = $1`;
108
- const result = await this.adapter.execute(sql, [id]);
109
- return result.affectedRows > 0;
110
- }
111
- // Health and monitoring
112
- async healthCheck() {
113
- return this.adapter.healthCheck();
114
- }
115
- async getStats() {
116
- return this.adapter.getStats();
117
- }
118
- }
119
- //# sourceMappingURL=database-manager.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"database-manager.js","sourceRoot":"","sources":["../src/database-manager.ts"],"names":[],"mappings":"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"}
package/dist/errors.d.ts DELETED
@@ -1,12 +0,0 @@
1
- export type DatabaseAdapterErrorCode = 'DATABASE_ADAPTER_ERROR' | 'INVALID_INPUT' | 'OPERATION_FAILED';
2
- export interface DatabaseAdapterErrorOptions {
3
- cause?: Error;
4
- code?: DatabaseAdapterErrorCode;
5
- context?: Record<string, unknown>;
6
- }
7
- export declare class DatabaseAdapterError extends Error {
8
- readonly code: DatabaseAdapterErrorCode;
9
- readonly context?: Record<string, unknown>;
10
- constructor(message: string, options?: DatabaseAdapterErrorOptions);
11
- }
12
- //# sourceMappingURL=errors.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"errors.d.ts","sourceRoot":"","sources":["../src/errors.ts"],"names":[],"mappings":"AAQA,MAAM,MAAM,wBAAwB,GAChC,wBAAwB,GACxB,eAAe,GACf,kBAAkB,CAAC;AAEvB,MAAM,WAAW,2BAA2B;IAC1C,KAAK,CAAC,EAAE,KAAK,CAAC;IACd,IAAI,CAAC,EAAE,wBAAwB,CAAC;IAChC,OAAO,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;CACnC;AAED,qBAAa,oBAAqB,SAAQ,KAAK;IAC7C,QAAQ,CAAC,IAAI,EAAE,wBAAwB,CAAC;IACxC,QAAQ,CAAC,OAAO,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;gBAE/B,OAAO,EAAE,MAAM,EAAE,OAAO,CAAC,EAAE,2BAA2B;CASnE"}
package/dist/errors.js DELETED
@@ -1,21 +0,0 @@
1
- /*
2
- Copyright (c) 2025 Bernier LLC
3
-
4
- This file is licensed to the client under a limited-use license.
5
- The client may use and modify this code only within the scope of the project it was delivered for.
6
- Redistribution or use in other products or commercial offerings is not permitted without written consent from Bernier LLC.
7
- */
8
- export class DatabaseAdapterError extends Error {
9
- code;
10
- context;
11
- constructor(message, options) {
12
- super(message, options?.cause ? { cause: options.cause } : undefined);
13
- this.name = 'DatabaseAdapterError';
14
- this.code = options?.code ?? 'DATABASE_ADAPTER_ERROR';
15
- if (options?.context !== undefined) {
16
- this.context = options.context;
17
- }
18
- Error.captureStackTrace?.(this, this.constructor);
19
- }
20
- }
21
- //# sourceMappingURL=errors.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"errors.js","sourceRoot":"","sources":["../src/errors.ts"],"names":[],"mappings":"AAAA;;;;;;EAME;AAaF,MAAM,OAAO,oBAAqB,SAAQ,KAAK;IACpC,IAAI,CAA2B;IAC/B,OAAO,CAA2B;IAE3C,YAAY,OAAe,EAAE,OAAqC;QAChE,KAAK,CAAC,OAAO,EAAE,OAAO,EAAE,KAAK,CAAC,CAAC,CAAC,EAAE,KAAK,EAAE,OAAO,CAAC,KAAK,EAAE,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC;QACtE,IAAI,CAAC,IAAI,GAAG,sBAAsB,CAAC;QACnC,IAAI,CAAC,IAAI,GAAG,OAAO,EAAE,IAAI,IAAI,wBAAwB,CAAC;QACtD,IAAI,OAAO,EAAE,OAAO,KAAK,SAAS,EAAE,CAAC;YACnC,IAAI,CAAC,OAAO,GAAG,OAAO,CAAC,OAAO,CAAC;QACjC,CAAC;QACD,KAAK,CAAC,iBAAiB,EAAE,CAAC,IAAI,EAAE,IAAI,CAAC,WAAW,CAAC,CAAC;IACpD,CAAC;CACF"}
package/dist/index.d.ts DELETED
@@ -1,7 +0,0 @@
1
- export { DatabaseAdapterError, type DatabaseAdapterErrorCode, type DatabaseAdapterErrorOptions, } from './errors.js';
2
- export { DatabaseManager } from './database-manager.js';
3
- export { PostgreSQLAdapter } from './adapters/postgresql.js';
4
- export { SQLiteAdapter } from './adapters/sqlite.js';
5
- export type { DatabaseAdapter, DatabaseConfig, DatabaseType, ExecuteResult, HealthCheckResult, ConnectionStats, Transaction, QueryOptions, PoolConfig, SSLConfig } from './types.js';
6
- export { DatabaseError, ConnectionError, QueryError, TransactionError } from './types.js';
7
- //# sourceMappingURL=index.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAQA,OAAO,EACL,oBAAoB,EACpB,KAAK,wBAAwB,EAC7B,KAAK,2BAA2B,GACjC,MAAM,aAAa,CAAC;AAErB,OAAO,EAAE,eAAe,EAAE,MAAM,uBAAuB,CAAC;AACxD,OAAO,EAAE,iBAAiB,EAAE,MAAM,0BAA0B,CAAC;AAC7D,OAAO,EAAE,aAAa,EAAE,MAAM,sBAAsB,CAAC;AAErD,YAAY,EACV,eAAe,EACf,cAAc,EACd,YAAY,EACZ,aAAa,EACb,iBAAiB,EACjB,eAAe,EACf,WAAW,EACX,YAAY,EACZ,UAAU,EACV,SAAS,EACV,MAAM,YAAY,CAAC;AAEpB,OAAO,EACL,aAAa,EACb,eAAe,EACf,UAAU,EACV,gBAAgB,EACjB,MAAM,YAAY,CAAC"}
package/dist/index.js DELETED
@@ -1,13 +0,0 @@
1
- /*
2
- Copyright (c) 2025 Bernier LLC
3
-
4
- This file is licensed to the client under a limited-use license.
5
- The client may use and modify this code *only within the scope of the project it was delivered for*.
6
- Redistribution or use in other products or commercial offerings is not permitted without written consent from Bernier LLC.
7
- */
8
- export { DatabaseAdapterError, } from './errors.js';
9
- export { DatabaseManager } from './database-manager.js';
10
- export { PostgreSQLAdapter } from './adapters/postgresql.js';
11
- export { SQLiteAdapter } from './adapters/sqlite.js';
12
- export { DatabaseError, ConnectionError, QueryError, TransactionError } from './types.js';
13
- //# sourceMappingURL=index.js.map
package/dist/index.js.map DELETED
@@ -1 +0,0 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA;;;;;;EAME;AAEF,OAAO,EACL,oBAAoB,GAGrB,MAAM,aAAa,CAAC;AAErB,OAAO,EAAE,eAAe,EAAE,MAAM,uBAAuB,CAAC;AACxD,OAAO,EAAE,iBAAiB,EAAE,MAAM,0BAA0B,CAAC;AAC7D,OAAO,EAAE,aAAa,EAAE,MAAM,sBAAsB,CAAC;AAerD,OAAO,EACL,aAAa,EACb,eAAe,EACf,UAAU,EACV,gBAAgB,EACjB,MAAM,YAAY,CAAC"}
package/dist/types.d.ts DELETED
@@ -1,88 +0,0 @@
1
- export type DatabaseType = 'postgresql' | 'mysql' | 'sqlite' | 'mongodb';
2
- export interface DatabaseConfig {
3
- type: DatabaseType;
4
- host?: string;
5
- port?: number;
6
- database: string;
7
- username?: string;
8
- password?: string;
9
- connectionString?: string;
10
- pool?: Partial<PoolConfig>;
11
- ssl?: boolean | SSLConfig;
12
- options?: Record<string, any>;
13
- }
14
- export interface PoolConfig {
15
- min: number;
16
- max: number;
17
- acquireTimeoutMillis: number;
18
- createTimeoutMillis: number;
19
- idleTimeoutMillis: number;
20
- reapIntervalMillis: number;
21
- }
22
- export interface SSLConfig {
23
- rejectUnauthorized?: boolean;
24
- ca?: string;
25
- cert?: string;
26
- key?: string;
27
- }
28
- export interface ExecuteResult {
29
- affectedRows: number;
30
- insertId?: any;
31
- changedRows: number;
32
- }
33
- export interface HealthCheckResult {
34
- status: 'healthy' | 'unhealthy';
35
- responseTime: number;
36
- details?: {
37
- totalConnections?: number;
38
- idleConnections?: number;
39
- waitingClients?: number;
40
- };
41
- error?: string;
42
- }
43
- export interface ConnectionStats {
44
- totalConnections: number;
45
- activeConnections: number;
46
- idleConnections: number;
47
- waitingClients?: number;
48
- avgQueryTime?: number;
49
- totalQueries?: number;
50
- }
51
- export interface QueryOptions {
52
- limit?: number;
53
- offset?: number;
54
- orderBy?: string;
55
- orderDirection?: 'ASC' | 'DESC';
56
- }
57
- export interface Transaction {
58
- query<T = any>(sql: string, params?: any[]): Promise<T[]>;
59
- queryOne<T = any>(sql: string, params?: any[]): Promise<T | null>;
60
- execute(sql: string, params?: any[]): Promise<ExecuteResult>;
61
- commit(): Promise<void>;
62
- rollback(): Promise<void>;
63
- }
64
- export interface DatabaseAdapter {
65
- connect(): Promise<void>;
66
- disconnect(): Promise<void>;
67
- query<T = any>(sql: string, params?: any[]): Promise<T[]>;
68
- queryOne<T = any>(sql: string, params?: any[]): Promise<T | null>;
69
- execute(sql: string, params?: any[]): Promise<ExecuteResult>;
70
- transaction<T>(fn: (tx: Transaction) => Promise<T>): Promise<T>;
71
- healthCheck(): Promise<HealthCheckResult>;
72
- getStats(): Promise<ConnectionStats>;
73
- }
74
- export declare class DatabaseError extends Error {
75
- readonly code?: string | undefined;
76
- readonly cause?: Error | undefined;
77
- constructor(message: string, code?: string | undefined, cause?: Error | undefined);
78
- }
79
- export declare class ConnectionError extends DatabaseError {
80
- constructor(message: string, cause?: Error);
81
- }
82
- export declare class QueryError extends DatabaseError {
83
- constructor(message: string, cause?: Error);
84
- }
85
- export declare class TransactionError extends DatabaseError {
86
- constructor(message: string, cause?: Error);
87
- }
88
- //# sourceMappingURL=types.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../src/types.ts"],"names":[],"mappings":"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"}
package/dist/types.js DELETED
@@ -1,36 +0,0 @@
1
- /*
2
- Copyright (c) 2025 Bernier LLC
3
-
4
- This file is licensed to the client under a limited-use license.
5
- The client may use and modify this code *only within the scope of the project it was delivered for*.
6
- Redistribution or use in other products or commercial offerings is not permitted without written consent from Bernier LLC.
7
- */
8
- export class DatabaseError extends Error {
9
- code;
10
- cause;
11
- constructor(message, code, cause) {
12
- super(message);
13
- this.code = code;
14
- this.cause = cause;
15
- this.name = 'DatabaseError';
16
- }
17
- }
18
- export class ConnectionError extends DatabaseError {
19
- constructor(message, cause) {
20
- super(message, 'CONNECTION_ERROR', cause);
21
- this.name = 'ConnectionError';
22
- }
23
- }
24
- export class QueryError extends DatabaseError {
25
- constructor(message, cause) {
26
- super(message, 'QUERY_ERROR', cause);
27
- this.name = 'QueryError';
28
- }
29
- }
30
- export class TransactionError extends DatabaseError {
31
- constructor(message, cause) {
32
- super(message, 'TRANSACTION_ERROR', cause);
33
- this.name = 'TransactionError';
34
- }
35
- }
36
- //# sourceMappingURL=types.js.map
package/dist/types.js.map DELETED
@@ -1 +0,0 @@
1
- {"version":3,"file":"types.js","sourceRoot":"","sources":["../src/types.ts"],"names":[],"mappings":"AAAA;;;;;;EAME;AA2FF,MAAM,OAAO,aAAc,SAAQ,KAAK;IAGpB;IACA;IAHlB,YACE,OAAe,EACC,IAAa,EACb,KAAa;QAE7B,KAAK,CAAC,OAAO,CAAC,CAAC;QAHC,SAAI,GAAJ,IAAI,CAAS;QACb,UAAK,GAAL,KAAK,CAAQ;QAG7B,IAAI,CAAC,IAAI,GAAG,eAAe,CAAC;IAC9B,CAAC;CACF;AAED,MAAM,OAAO,eAAgB,SAAQ,aAAa;IAChD,YAAY,OAAe,EAAE,KAAa;QACxC,KAAK,CAAC,OAAO,EAAE,kBAAkB,EAAE,KAAK,CAAC,CAAC;QAC1C,IAAI,CAAC,IAAI,GAAG,iBAAiB,CAAC;IAChC,CAAC;CACF;AAED,MAAM,OAAO,UAAW,SAAQ,aAAa;IAC3C,YAAY,OAAe,EAAE,KAAa;QACxC,KAAK,CAAC,OAAO,EAAE,aAAa,EAAE,KAAK,CAAC,CAAC;QACrC,IAAI,CAAC,IAAI,GAAG,YAAY,CAAC;IAC3B,CAAC;CACF;AAED,MAAM,OAAO,gBAAiB,SAAQ,aAAa;IACjD,YAAY,OAAe,EAAE,KAAa;QACxC,KAAK,CAAC,OAAO,EAAE,mBAAmB,EAAE,KAAK,CAAC,CAAC;QAC3C,IAAI,CAAC,IAAI,GAAG,kBAAkB,CAAC;IACjC,CAAC;CACF"}