zerohelper-postgres-adapter 11.0.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +55 -0
- package/dist/index.d.ts +27 -0
- package/dist/index.d.ts.map +1 -0
- package/dist/index.js +169 -0
- package/dist/index.js.map +1 -0
- package/package.json +21 -0
package/README.md
ADDED
|
@@ -0,0 +1,55 @@
|
|
|
1
|
+
# zerohelper-postgres-adapter
|
|
2
|
+
|
|
3
|
+
PostgreSQL database adapter for ZeroHelper.
|
|
4
|
+
|
|
5
|
+
## Installation
|
|
6
|
+
|
|
7
|
+
```bash
|
|
8
|
+
npm install zerohelper-postgres-adapter
|
|
9
|
+
npm install pg
|
|
10
|
+
```
|
|
11
|
+
|
|
12
|
+
## Usage
|
|
13
|
+
|
|
14
|
+
```typescript
|
|
15
|
+
import { createDatabase } from '@onurege3467/zerohelper';
|
|
16
|
+
|
|
17
|
+
const db = createDatabase({
|
|
18
|
+
adapter: 'postgres',
|
|
19
|
+
config: {
|
|
20
|
+
host: 'localhost',
|
|
21
|
+
port: 5432,
|
|
22
|
+
username: 'postgres',
|
|
23
|
+
password: 'password',
|
|
24
|
+
database: 'mydb',
|
|
25
|
+
poolSize: 20
|
|
26
|
+
}
|
|
27
|
+
});
|
|
28
|
+
|
|
29
|
+
await db.insert('users', { name: 'John', age: 30 });
|
|
30
|
+
const users = await db.select('users', { name: 'John' });
|
|
31
|
+
await db.close();
|
|
32
|
+
```
|
|
33
|
+
|
|
34
|
+
## Features
|
|
35
|
+
|
|
36
|
+
- Connection pooling with pg
|
|
37
|
+
- PostgreSQL-specific optimizations
|
|
38
|
+
- JSON/JSONB column support
|
|
39
|
+
- Transaction support
|
|
40
|
+
- Concurrent operation handling
|
|
41
|
+
|
|
42
|
+
## Configuration
|
|
43
|
+
|
|
44
|
+
| Option | Type | Required | Description |
|
|
45
|
+
|--------|------|----------|-------------|
|
|
46
|
+
| `host` | string | Yes | PostgreSQL host |
|
|
47
|
+
| `port` | number | Yes | PostgreSQL port |
|
|
48
|
+
| `username` | string | Yes | PostgreSQL username |
|
|
49
|
+
| `password` | string | Yes | PostgreSQL password |
|
|
50
|
+
| `database` | string | Yes | Database name |
|
|
51
|
+
| `poolSize` | number | No | Connection pool size (default: 20) |
|
|
52
|
+
|
|
53
|
+
## License
|
|
54
|
+
|
|
55
|
+
ISC
|
package/dist/index.d.ts
ADDED
|
@@ -0,0 +1,27 @@
|
|
|
1
|
+
import { IDatabase, PostgreSQLConfig } from '@onurege3467/zerohelper-core';
|
|
2
|
+
export declare class PostgreSQLDatabase extends IDatabase {
|
|
3
|
+
private config;
|
|
4
|
+
private pool;
|
|
5
|
+
private _connected;
|
|
6
|
+
private _queue;
|
|
7
|
+
private _connectionPromise;
|
|
8
|
+
constructor(config: PostgreSQLConfig);
|
|
9
|
+
private _init;
|
|
10
|
+
private _execute;
|
|
11
|
+
private _processQueue;
|
|
12
|
+
query(sql: string, params?: any[]): Promise<any>;
|
|
13
|
+
ensureTable(table: string, data?: any): Promise<void>;
|
|
14
|
+
insert(table: string, data: any): Promise<any>;
|
|
15
|
+
update(table: string, data: any, where: any): Promise<number>;
|
|
16
|
+
delete(table: string, where: any): Promise<number>;
|
|
17
|
+
select<T = any>(table: string, where?: any): Promise<T[]>;
|
|
18
|
+
selectOne<T = any>(table: string, where?: any): Promise<T | null>;
|
|
19
|
+
set(table: string, data: any, where: any): Promise<any>;
|
|
20
|
+
bulkInsert(table: string, dataArray: any[]): Promise<number>;
|
|
21
|
+
increment(table: string, incs: Record<string, number>, where: any): Promise<number>;
|
|
22
|
+
decrement(table: string, decs: Record<string, number>, where: any): Promise<number>;
|
|
23
|
+
close(): Promise<void>;
|
|
24
|
+
}
|
|
25
|
+
export declare function createDatabase(config: PostgreSQLConfig): PostgreSQLDatabase;
|
|
26
|
+
export default PostgreSQLDatabase;
|
|
27
|
+
//# sourceMappingURL=index.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,gBAAgB,EAAE,MAAM,8BAA8B,CAAC;AAG3E,qBAAa,kBAAmB,SAAQ,SAAS;IAMnC,OAAO,CAAC,MAAM;IAL1B,OAAO,CAAC,IAAI,CAAqB;IACjC,OAAO,CAAC,UAAU,CAAkB;IACpC,OAAO,CAAC,MAAM,CAAyG;IACvH,OAAO,CAAC,kBAAkB,CAAgB;gBAEtB,MAAM,EAAE,gBAAgB;YAK9B,KAAK;YAiCL,QAAQ;YAOR,aAAa;IAOrB,KAAK,CAAC,GAAG,EAAE,MAAM,EAAE,MAAM,GAAE,GAAG,EAAO,GAAG,OAAO,CAAC,GAAG,CAAC;IAMpD,WAAW,CAAC,KAAK,EAAE,MAAM,EAAE,IAAI,GAAE,GAAQ,GAAG,OAAO,CAAC,IAAI,CAAC;IAQzD,MAAM,CAAC,KAAK,EAAE,MAAM,EAAE,IAAI,EAAE,GAAG,GAAG,OAAO,CAAC,GAAG,CAAC;IAa9C,MAAM,CAAC,KAAK,EAAE,MAAM,EAAE,IAAI,EAAE,GAAG,EAAE,KAAK,EAAE,GAAG,GAAG,OAAO,CAAC,MAAM,CAAC;IAc7D,MAAM,CAAC,KAAK,EAAE,MAAM,EAAE,KAAK,EAAE,GAAG,GAAG,OAAO,CAAC,MAAM,CAAC;IAYlD,MAAM,CAAC,CAAC,GAAG,GAAG,EAAE,KAAK,EAAE,MAAM,EAAE,KAAK,GAAE,GAAU,GAAG,OAAO,CAAC,CAAC,EAAE,CAAC;IAS/D,SAAS,CAAC,CAAC,GAAG,GAAG,EAAE,KAAK,EAAE,MAAM,EAAE,KAAK,GAAE,GAAU,GAAG,OAAO,CAAC,CAAC,GAAG,IAAI,CAAC;IAKvE,GAAG,CAAC,KAAK,EAAE,MAAM,EAAE,IAAI,EAAE,GAAG,EAAE,KAAK,EAAE,GAAG,GAAG,OAAO,CAAC,GAAG,CAAC;IAKvD,UAAU,CAAC,KAAK,EAAE,MAAM,EAAE,SAAS,EAAE,GAAG,EAAE,GAAG,OAAO,CAAC,MAAM,CAAC;IAM5D,SAAS,CAAC,KAAK,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,EAAE,KAAK,EAAE,GAAG,GAAG,OAAO,CAAC,MAAM,CAAC;IAanF,SAAS,CAAC,KAAK,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,EAAE,KAAK,EAAE,GAAG,GAAG,OAAO,CAAC,MAAM,CAAC;IAMnF,KAAK,IAAI,OAAO,CAAC,IAAI,CAAC;CAC7B;AAED,wBAAgB,cAAc,CAAC,MAAM,EAAE,gBAAgB,GAAG,kBAAkB,CAE3E;AACD,eAAe,kBAAkB,CAAC"}
|
package/dist/index.js
ADDED
|
@@ -0,0 +1,169 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.PostgreSQLDatabase = void 0;
|
|
4
|
+
exports.createDatabase = createDatabase;
|
|
5
|
+
const zerohelper_core_1 = require("@onurege3467/zerohelper-core");
|
|
6
|
+
const pg_1 = require("pg");
|
|
7
|
+
class PostgreSQLDatabase extends zerohelper_core_1.IDatabase {
|
|
8
|
+
constructor(config) {
|
|
9
|
+
super();
|
|
10
|
+
this.config = config;
|
|
11
|
+
this.pool = null;
|
|
12
|
+
this._connected = false;
|
|
13
|
+
this._queue = [];
|
|
14
|
+
this._connectionPromise = this._init();
|
|
15
|
+
}
|
|
16
|
+
async _init() {
|
|
17
|
+
return new Promise(async (resolve, reject) => {
|
|
18
|
+
try {
|
|
19
|
+
const tempPool = new pg_1.Pool({
|
|
20
|
+
host: this.config.host || 'localhost',
|
|
21
|
+
port: this.config.port || 5432,
|
|
22
|
+
user: this.config.username,
|
|
23
|
+
password: this.config.password,
|
|
24
|
+
database: 'postgres'
|
|
25
|
+
});
|
|
26
|
+
try {
|
|
27
|
+
await tempPool.query(`CREATE DATABASE "${this.config.database}"`);
|
|
28
|
+
}
|
|
29
|
+
catch (e) {
|
|
30
|
+
if (!e.message.includes('already exists'))
|
|
31
|
+
console.warn(e.message);
|
|
32
|
+
}
|
|
33
|
+
await tempPool.end();
|
|
34
|
+
this.pool = new pg_1.Pool({
|
|
35
|
+
host: this.config.host || 'localhost',
|
|
36
|
+
port: this.config.port || 5432,
|
|
37
|
+
user: this.config.username,
|
|
38
|
+
password: this.config.password,
|
|
39
|
+
database: this.config.database,
|
|
40
|
+
max: this.config.poolSize || 10
|
|
41
|
+
});
|
|
42
|
+
this._connected = true;
|
|
43
|
+
resolve(this.pool);
|
|
44
|
+
this._processQueue();
|
|
45
|
+
}
|
|
46
|
+
catch (error) {
|
|
47
|
+
this._queue.forEach(q => q.reject(error));
|
|
48
|
+
this._queue = [];
|
|
49
|
+
reject(error);
|
|
50
|
+
}
|
|
51
|
+
});
|
|
52
|
+
}
|
|
53
|
+
async _execute(op, table, fn) {
|
|
54
|
+
const start = Date.now();
|
|
55
|
+
const res = await fn();
|
|
56
|
+
this.recordMetric(op, table, Date.now() - start);
|
|
57
|
+
return res;
|
|
58
|
+
}
|
|
59
|
+
async _processQueue() {
|
|
60
|
+
while (this._queue.length > 0) {
|
|
61
|
+
const item = this._queue.shift();
|
|
62
|
+
if (item) {
|
|
63
|
+
try {
|
|
64
|
+
item.resolve(await item.operation());
|
|
65
|
+
}
|
|
66
|
+
catch (error) {
|
|
67
|
+
item.reject(error);
|
|
68
|
+
}
|
|
69
|
+
}
|
|
70
|
+
}
|
|
71
|
+
}
|
|
72
|
+
async query(sql, params = []) {
|
|
73
|
+
const pool = await this._connectionPromise;
|
|
74
|
+
const res = await pool.query(sql, params);
|
|
75
|
+
return res.rows;
|
|
76
|
+
}
|
|
77
|
+
async ensureTable(table, data = {}) {
|
|
78
|
+
const tables = await this.query(`SELECT table_name FROM information_schema.tables WHERE table_schema = 'public' AND table_name = $1`, [table]);
|
|
79
|
+
if (tables.length === 0) {
|
|
80
|
+
const defs = Object.keys(data).map(k => `"${k}" TEXT`);
|
|
81
|
+
await this.query(`CREATE TABLE "${table}" ("_id" SERIAL PRIMARY KEY${defs.length ? ', ' + defs.join(',') : ''})`);
|
|
82
|
+
}
|
|
83
|
+
}
|
|
84
|
+
async insert(table, data) {
|
|
85
|
+
await this.runHooks('beforeInsert', table, data);
|
|
86
|
+
return this._execute('insert', table, async () => {
|
|
87
|
+
await this.ensureTable(table, data);
|
|
88
|
+
const keys = Object.keys(data);
|
|
89
|
+
const sql = `INSERT INTO "${table}" (${keys.map(k => `"${k}"`).join(',')}) VALUES (${keys.map((_, i) => `$${i + 1}`).join(',')}) RETURNING "_id"`;
|
|
90
|
+
const res = await this.query(sql, Object.values(data));
|
|
91
|
+
const finalData = { _id: res[0]._id, ...data };
|
|
92
|
+
await this.runHooks('afterInsert', table, finalData);
|
|
93
|
+
return res[0]._id;
|
|
94
|
+
});
|
|
95
|
+
}
|
|
96
|
+
async update(table, data, where) {
|
|
97
|
+
await this.runHooks('beforeUpdate', table, { data, where });
|
|
98
|
+
return this._execute('update', table, async () => {
|
|
99
|
+
await this.ensureTable(table, { ...data, ...where });
|
|
100
|
+
const keys = Object.keys(data);
|
|
101
|
+
const set = keys.map((k, i) => `"${k}" = $${i + 1}`).join(',');
|
|
102
|
+
const wKeys = Object.keys(where);
|
|
103
|
+
const sql = `UPDATE "${table}" SET ${set} WHERE ${wKeys.map((k, i) => `"${k}" = $${keys.length + i + 1}`).join(' AND ')}`;
|
|
104
|
+
const pool = await this._connectionPromise;
|
|
105
|
+
const res = await pool.query(sql, [...Object.values(data), ...Object.values(where)]);
|
|
106
|
+
return res.rowCount ?? 0;
|
|
107
|
+
});
|
|
108
|
+
}
|
|
109
|
+
async delete(table, where) {
|
|
110
|
+
await this.runHooks('beforeDelete', table, where);
|
|
111
|
+
return this._execute('delete', table, async () => {
|
|
112
|
+
await this.ensureTable(table, where);
|
|
113
|
+
const wKeys = Object.keys(where);
|
|
114
|
+
const sql = `DELETE FROM "${table}" WHERE ${wKeys.map((k, i) => `"${k}" = $${i + 1}`).join(' AND ')}`;
|
|
115
|
+
const pool = await this._connectionPromise;
|
|
116
|
+
const res = await pool.query(sql, Object.values(where));
|
|
117
|
+
return res.rowCount ?? 0;
|
|
118
|
+
});
|
|
119
|
+
}
|
|
120
|
+
async select(table, where = null) {
|
|
121
|
+
return this._execute('select', table, async () => {
|
|
122
|
+
await this.ensureTable(table, where || {});
|
|
123
|
+
const wKeys = where ? Object.keys(where) : [];
|
|
124
|
+
const sql = `SELECT * FROM "${table}"${wKeys.length ? ' WHERE ' + wKeys.map((k, i) => `"${k}" = $${i + 1}`).join(' AND ') : ''}`;
|
|
125
|
+
return this.query(sql, wKeys.map(k => where[k]));
|
|
126
|
+
});
|
|
127
|
+
}
|
|
128
|
+
async selectOne(table, where = null) {
|
|
129
|
+
const res = await this.select(table, where);
|
|
130
|
+
return res[0] || null;
|
|
131
|
+
}
|
|
132
|
+
async set(table, data, where) {
|
|
133
|
+
const ex = await this.selectOne(table, where);
|
|
134
|
+
return ex ? this.update(table, data, where) : this.insert(table, { ...where, ...data });
|
|
135
|
+
}
|
|
136
|
+
async bulkInsert(table, dataArray) {
|
|
137
|
+
if (!dataArray.length)
|
|
138
|
+
return 0;
|
|
139
|
+
for (const d of dataArray)
|
|
140
|
+
await this.insert(table, d);
|
|
141
|
+
return dataArray.length;
|
|
142
|
+
}
|
|
143
|
+
async increment(table, incs, where) {
|
|
144
|
+
return this._execute('increment', table, async () => {
|
|
145
|
+
await this.ensureTable(table, where);
|
|
146
|
+
const keys = Object.keys(incs);
|
|
147
|
+
const set = keys.map((f, i) => `"${f}" = "${f}" + $${i + 1}`).join(',');
|
|
148
|
+
const wKeys = Object.keys(where);
|
|
149
|
+
const sql = `UPDATE "${table}" SET ${set} WHERE ${wKeys.map((k, i) => `"${k}" = $${keys.length + i + 1}`).join(' AND ')}`;
|
|
150
|
+
const pool = await this._connectionPromise;
|
|
151
|
+
const res = await pool.query(sql, [...Object.values(incs), ...Object.values(where)]);
|
|
152
|
+
return res.rowCount ?? 0;
|
|
153
|
+
});
|
|
154
|
+
}
|
|
155
|
+
async decrement(table, decs, where) {
|
|
156
|
+
const incs = {};
|
|
157
|
+
for (const k in decs)
|
|
158
|
+
incs[k] = -decs[k];
|
|
159
|
+
return this.increment(table, incs, where);
|
|
160
|
+
}
|
|
161
|
+
async close() { if (this.pool)
|
|
162
|
+
await this.pool.end(); }
|
|
163
|
+
}
|
|
164
|
+
exports.PostgreSQLDatabase = PostgreSQLDatabase;
|
|
165
|
+
function createDatabase(config) {
|
|
166
|
+
return new PostgreSQLDatabase(config);
|
|
167
|
+
}
|
|
168
|
+
exports.default = PostgreSQLDatabase;
|
|
169
|
+
//# sourceMappingURL=index.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":";;;AAiKA,wCAEC;AAnKD,kEAA2E;AAC3E,2BAA0B;AAE1B,MAAa,kBAAmB,SAAQ,2BAAS;IAM/C,YAAoB,MAAwB;QAC1C,KAAK,EAAE,CAAC;QADU,WAAM,GAAN,MAAM,CAAkB;QALpC,SAAI,GAAgB,IAAI,CAAC;QACzB,eAAU,GAAY,KAAK,CAAC;QAC5B,WAAM,GAAsG,EAAE,CAAC;QAKrH,IAAI,CAAC,kBAAkB,GAAG,IAAI,CAAC,KAAK,EAAE,CAAC;IACzC,CAAC;IAEO,KAAK,CAAC,KAAK;QACjB,OAAO,IAAI,OAAO,CAAC,KAAK,EAAE,OAAO,EAAE,MAAM,EAAE,EAAE;YAC3C,IAAI,CAAC;gBACH,MAAM,QAAQ,GAAG,IAAI,SAAI,CAAC;oBACxB,IAAI,EAAE,IAAI,CAAC,MAAM,CAAC,IAAI,IAAI,WAAW;oBACrC,IAAI,EAAE,IAAI,CAAC,MAAM,CAAC,IAAI,IAAI,IAAI;oBAC9B,IAAI,EAAE,IAAI,CAAC,MAAM,CAAC,QAAQ;oBAC1B,QAAQ,EAAE,IAAI,CAAC,MAAM,CAAC,QAAQ;oBAC9B,QAAQ,EAAE,UAAU;iBACrB,CAAC,CAAC;gBACH,IAAI,CAAC;oBAAC,MAAM,QAAQ,CAAC,KAAK,CAAC,oBAAoB,IAAI,CAAC,MAAM,CAAC,QAAQ,GAAG,CAAC,CAAC;gBAAC,CAAC;gBAC1E,OAAO,CAAM,EAAE,CAAC;oBAAC,IAAI,CAAC,CAAC,CAAC,OAAO,CAAC,QAAQ,CAAC,gBAAgB,CAAC;wBAAE,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC;gBAAC,CAAC;gBACtF,MAAM,QAAQ,CAAC,GAAG,EAAE,CAAC;gBAErB,IAAI,CAAC,IAAI,GAAG,IAAI,SAAI,CAAC;oBACnB,IAAI,EAAE,IAAI,CAAC,MAAM,CAAC,IAAI,IAAI,WAAW;oBACrC,IAAI,EAAE,IAAI,CAAC,MAAM,CAAC,IAAI,IAAI,IAAI;oBAC9B,IAAI,EAAE,IAAI,CAAC,MAAM,CAAC,QAAQ;oBAC1B,QAAQ,EAAE,IAAI,CAAC,MAAM,CAAC,QAAQ;oBAC9B,QAAQ,EAAE,IAAI,CAAC,MAAM,CAAC,QAAQ;oBAC9B,GAAG,EAAE,IAAI,CAAC,MAAM,CAAC,QAAQ,IAAI,EAAE;iBAChC,CAAC,CAAC;gBACH,IAAI,CAAC,UAAU,GAAG,IAAI,CAAC;gBACvB,OAAO,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;gBACnB,IAAI,CAAC,aAAa,EAAE,CAAC;YACvB,CAAC;YAAC,OAAO,KAAK,EAAE,CAAC;gBACf,IAAI,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC,CAAC;gBAC1C,IAAI,CAAC,MAAM,GAAG,EAAE,CAAC;gBACjB,MAAM,CAAC,KAAK,CAAC,CAAC;YAChB,CAAC;QACH,CAAC,CAAC,CAAC;IACL,CAAC;IAEO,KAAK,CAAC,QAAQ,CAAI,EAAU,EAAE,KAAa,EAAE,EAAoB;QACvE,MAAM,KAAK,GAAG,IAAI,CAAC,GAAG,EAAE,CAAC;QACzB,MAAM,GAAG,GAAG,MAAM,EAAE,EAAE,CAAC;QACvB,IAAI,CAAC,YAAY,CAAC,EAAE,EAAE,KAAK,EAAE,IAAI,CAAC,GAAG,EAAE,GAAG,KAAK,CAAC,CAAC;QACjD,OAAO,GAAG,CAAC;IACb,CAAC;IAEO,KAAK,CAAC,aAAa;QACzB,OAAO,IAAI,CAAC,MAAM,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;YAC9B,MAAM,IAAI,GAAG,IAAI,CAAC,MAAM,CAAC,KAAK,EAAE,CAAC;YACjC,IAAI,IAAI,EAAE,CAAC;gBAAC,IAAI,CAAC;oBAAC,IAAI,CAAC,OAAO,CAAC,MAAM,IAAI,CAAC,SAAS,EAAE,CAAC,CAAC;gBAAC,CAAC;gBAAC,OAAO,KAAK,EAAE,CAAC;oBAAC,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC;gBAAC,CAAC;YAAC,CAAC;QACnG,CAAC;IACH,CAAC;IAED,KAAK,CAAC,KAAK,CAAC,GAAW,EAAE,SAAgB,EAAE;QACzC,MAAM,IAAI,GAAG,MAAM,IAAI,CAAC,kBAAkB,CAAC;QAC3C,MAAM,GAAG,GAAG,MAAM,IAAI,CAAC,KAAK,CAAC,GAAG,EAAE,MAAM,CAAC,CAAC;QAC1C,OAAO,GAAG,CAAC,IAAI,CAAC;IAClB,CAAC;IAED,KAAK,CAAC,WAAW,CAAC,KAAa,EAAE,OAAY,EAAE;QAC7C,MAAM,MAAM,GAAG,MAAM,IAAI,CAAC,KAAK,CAAC,oGAAoG,EAAE,CAAC,KAAK,CAAC,CAAC,CAAC;QAC/I,IAAI,MAAM,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;YACxB,MAAM,IAAI,GAAG,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;YACvD,MAAM,IAAI,CAAC,KAAK,CAAC,iBAAiB,KAAK,8BAA8B,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC,IAAI,GAAG,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,EAAE,GAAG,CAAC,CAAC;QACpH,CAAC;IACH,CAAC;IAED,KAAK,CAAC,MAAM,CAAC,KAAa,EAAE,IAAS;QACnC,MAAM,IAAI,CAAC,QAAQ,CAAC,cAAc,EAAE,KAAK,EAAE,IAAI,CAAC,CAAC;QACjD,OAAO,IAAI,CAAC,QAAQ,CAAC,QAAQ,EAAE,KAAK,EAAE,KAAK,IAAI,EAAE;YAC/C,MAAM,IAAI,CAAC,WAAW,CAAC,KAAK,EAAE,IAAI,CAAC,CAAC;YACpC,MAAM,IAAI,GAAG,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;YAC/B,MAAM,GAAG,GAAG,gBAAgB,KAAK,MAAM,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,aAAa,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,mBAAmB,CAAC;YAClJ,MAAM,GAAG,GAAG,MAAM,IAAI,CAAC,KAAK,CAAC,GAAG,EAAE,MAAM,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC,CAAC;YACvD,MAAM,SAAS,GAAG,EAAE,GAAG,EAAE,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,EAAE,GAAG,IAAI,EAAE,CAAC;YAC/C,MAAM,IAAI,CAAC,QAAQ,CAAC,aAAa,EAAE,KAAK,EAAE,SAAS,CAAC,CAAC;YACrD,OAAO,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC;QACpB,CAAC,CAAC,CAAC;IACL,CAAC;IAED,KAAK,CAAC,MAAM,CAAC,KAAa,EAAE,IAAS,EAAE,KAAU;QAC/C,MAAM,IAAI,CAAC,QAAQ,CAAC,cAAc,EAAE,KAAK,EAAE,EAAE,IAAI,EAAE,KAAK,EAAE,CAAC,CAAC;QAC5D,OAAO,IAAI,CAAC,QAAQ,CAAC,QAAQ,EAAE,KAAK,EAAE,KAAK,IAAI,EAAE;YAC/C,MAAM,IAAI,CAAC,WAAW,CAAC,KAAK,EAAE,EAAE,GAAG,IAAI,EAAE,GAAG,KAAK,EAAE,CAAC,CAAC;YACrD,MAAM,IAAI,GAAG,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;YAC/B,MAAM,GAAG,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;YAC/D,MAAM,KAAK,GAAG,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;YACjC,MAAM,GAAG,GAAG,WAAW,KAAK,SAAS,GAAG,UAAU,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,IAAI,CAAC,QAAQ,IAAI,CAAC,MAAM,GAAG,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,IAAI,CAAC,OAAO,CAAC,EAAE,CAAC;YAC1H,MAAM,IAAI,GAAG,MAAM,IAAI,CAAC,kBAAkB,CAAC;YAC3C,MAAM,GAAG,GAAG,MAAM,IAAI,CAAC,KAAK,CAAC,GAAG,EAAE,CAAC,GAAG,MAAM,CAAC,MAAM,CAAC,IAAI,CAAC,EAAE,GAAG,MAAM,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC;YACrF,OAAO,GAAG,CAAC,QAAQ,IAAI,CAAC,CAAC;QAC3B,CAAC,CAAC,CAAC;IACL,CAAC;IAED,KAAK,CAAC,MAAM,CAAC,KAAa,EAAE,KAAU;QACpC,MAAM,IAAI,CAAC,QAAQ,CAAC,cAAc,EAAE,KAAK,EAAE,KAAK,CAAC,CAAC;QAClD,OAAO,IAAI,CAAC,QAAQ,CAAC,QAAQ,EAAE,KAAK,EAAE,KAAK,IAAI,EAAE;YAC/C,MAAM,IAAI,CAAC,WAAW,CAAC,KAAK,EAAE,KAAK,CAAC,CAAC;YACrC,MAAM,KAAK,GAAG,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;YACjC,MAAM,GAAG,GAAG,gBAAgB,KAAK,WAAW,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,IAAI,CAAC,OAAO,CAAC,EAAE,CAAC;YACtG,MAAM,IAAI,GAAG,MAAM,IAAI,CAAC,kBAAkB,CAAC;YAC3C,MAAM,GAAG,GAAG,MAAM,IAAI,CAAC,KAAK,CAAC,GAAG,EAAE,MAAM,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC,CAAC;YACxD,OAAO,GAAG,CAAC,QAAQ,IAAI,CAAC,CAAC;QAC3B,CAAC,CAAC,CAAC;IACL,CAAC;IAED,KAAK,CAAC,MAAM,CAAU,KAAa,EAAE,QAAa,IAAI;QACpD,OAAO,IAAI,CAAC,QAAQ,CAAC,QAAQ,EAAE,KAAK,EAAE,KAAK,IAAI,EAAE;YAC/C,MAAM,IAAI,CAAC,WAAW,CAAC,KAAK,EAAE,KAAK,IAAI,EAAE,CAAC,CAAC;YAC3C,MAAM,KAAK,GAAG,KAAK,CAAC,CAAC,CAAC,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC;YAC9C,MAAM,GAAG,GAAG,kBAAkB,KAAK,IAAI,KAAK,CAAC,MAAM,CAAC,CAAC,CAAC,SAAS,GAAG,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC;YACjI,OAAO,IAAI,CAAC,KAAK,CAAC,GAAG,EAAE,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAiB,CAAC;QACnE,CAAC,CAAC,CAAC;IACL,CAAC;IAED,KAAK,CAAC,SAAS,CAAU,KAAa,EAAE,QAAa,IAAI;QACvD,MAAM,GAAG,GAAG,MAAM,IAAI,CAAC,MAAM,CAAI,KAAK,EAAE,KAAK,CAAC,CAAC;QAC/C,OAAO,GAAG,CAAC,CAAC,CAAC,IAAI,IAAI,CAAC;IACxB,CAAC;IAED,KAAK,CAAC,GAAG,CAAC,KAAa,EAAE,IAAS,EAAE,KAAU;QAC5C,MAAM,EAAE,GAAG,MAAM,IAAI,CAAC,SAAS,CAAC,KAAK,EAAE,KAAK,CAAC,CAAC;QAC9C,OAAO,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,MAAM,CAAC,KAAK,EAAE,IAAI,EAAE,KAAK,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,MAAM,CAAC,KAAK,EAAE,EAAE,GAAG,KAAK,EAAE,GAAG,IAAI,EAAE,CAAC,CAAC;IAC1F,CAAC;IAED,KAAK,CAAC,UAAU,CAAC,KAAa,EAAE,SAAgB;QAC9C,IAAI,CAAC,SAAS,CAAC,MAAM;YAAE,OAAO,CAAC,CAAC;QAChC,KAAK,MAAM,CAAC,IAAI,SAAS;YAAE,MAAM,IAAI,CAAC,MAAM,CAAC,KAAK,EAAE,CAAC,CAAC,CAAC;QACvD,OAAO,SAAS,CAAC,MAAM,CAAC;IAC1B,CAAC;IAED,KAAK,CAAC,SAAS,CAAC,KAAa,EAAE,IAA4B,EAAE,KAAU;QACrE,OAAO,IAAI,CAAC,QAAQ,CAAC,WAAW,EAAE,KAAK,EAAE,KAAK,IAAI,EAAE;YAClD,MAAM,IAAI,CAAC,WAAW,CAAC,KAAK,EAAE,KAAK,CAAC,CAAC;YACrC,MAAM,IAAI,GAAG,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;YAC/B,MAAM,GAAG,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,IAAI,CAAC,QAAQ,CAAC,QAAQ,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;YACxE,MAAM,KAAK,GAAG,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;YACjC,MAAM,GAAG,GAAG,WAAW,KAAK,SAAS,GAAG,UAAU,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,IAAI,CAAC,QAAQ,IAAI,CAAC,MAAM,GAAG,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,IAAI,CAAC,OAAO,CAAC,EAAE,CAAC;YAC1H,MAAM,IAAI,GAAG,MAAM,IAAI,CAAC,kBAAkB,CAAC;YAC3C,MAAM,GAAG,GAAG,MAAM,IAAI,CAAC,KAAK,CAAC,GAAG,EAAE,CAAC,GAAG,MAAM,CAAC,MAAM,CAAC,IAAI,CAAC,EAAE,GAAG,MAAM,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC;YACrF,OAAO,GAAG,CAAC,QAAQ,IAAI,CAAC,CAAC;QAC3B,CAAC,CAAC,CAAC;IACL,CAAC;IAED,KAAK,CAAC,SAAS,CAAC,KAAa,EAAE,IAA4B,EAAE,KAAU;QACrE,MAAM,IAAI,GAAQ,EAAE,CAAC;QACrB,KAAK,MAAM,CAAC,IAAI,IAAI;YAAE,IAAI,CAAC,CAAC,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;QACzC,OAAO,IAAI,CAAC,SAAS,CAAC,KAAK,EAAE,IAAI,EAAE,KAAK,CAAC,CAAC;IAC5C,CAAC;IAED,KAAK,CAAC,KAAK,KAAoB,IAAI,IAAI,CAAC,IAAI;QAAE,MAAM,IAAI,CAAC,IAAI,CAAC,GAAG,EAAE,CAAC,CAAC,CAAC;CACvE;AA5JD,gDA4JC;AAED,SAAgB,cAAc,CAAC,MAAwB;IACrD,OAAO,IAAI,kBAAkB,CAAC,MAAM,CAAC,CAAC;AACxC,CAAC;AACD,kBAAe,kBAAkB,CAAC"}
|
package/package.json
ADDED
|
@@ -0,0 +1,21 @@
|
|
|
1
|
+
{
|
|
2
|
+
"name": "zerohelper-postgres-adapter",
|
|
3
|
+
"version": "11.0.0",
|
|
4
|
+
"description": "PostgreSQL adapter for ZeroHelper database framework",
|
|
5
|
+
"main": "dist/index.js",
|
|
6
|
+
"types": "dist/index.d.ts",
|
|
7
|
+
"scripts": {
|
|
8
|
+
"build": "tsc",
|
|
9
|
+
"clean": "rm -rf dist",
|
|
10
|
+
"test": "jest",
|
|
11
|
+
"lint": "tsc --noEmit"
|
|
12
|
+
},
|
|
13
|
+
"keywords": ["zerohelper", "database", "postgres", "postgresql", "adapter"],
|
|
14
|
+
"author": "Onure9e",
|
|
15
|
+
"license": "ISC",
|
|
16
|
+
"dependencies": { "pg": "^8.14.1" },
|
|
17
|
+
"peerDependencies": { "@onurege3467/zerohelper-core": "^11.0.0" },
|
|
18
|
+
"devDependencies": { "@types/node": "^22.10.2", "@types/pg": "^8.11.10", "typescript": "^5.7.2" },
|
|
19
|
+
"files": ["dist", "README.md"],
|
|
20
|
+
"publishConfig": { "access": "public" }
|
|
21
|
+
}
|