@starbemtech/star-db-query-builder 1.0.36 → 1.0.38
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/coverage/clover.xml +2 -2
- package/coverage/lcov-report/index.html +1 -1
- package/dist/index.d.ts +1 -1
- package/dist/index.js +2 -2
- package/dist/index.js.map +1 -1
- package/dist/src/db/initDb.d.ts +7 -3
- package/dist/src/db/initDb.js +18 -11
- package/dist/src/db/initDb.js.map +1 -1
- package/dist/src/db/mysqlClient.d.ts +2 -1
- package/dist/src/db/mysqlClient.js +69 -7
- package/dist/src/db/mysqlClient.js.map +1 -1
- package/dist/src/db/pgClient.d.ts +3 -2
- package/dist/src/db/pgClient.js +92 -7
- package/dist/src/db/pgClient.js.map +1 -1
- package/dist/src/default/genericRepository.d.ts +7 -2
- package/dist/src/default/genericRepository.js +26 -6
- package/dist/src/default/genericRepository.js.map +1 -1
- package/dist/src/default/types.d.ts +10 -1
- package/dist/src/default/utils.d.ts +1 -1
- package/dist/src/default/utils.js +30 -33
- package/dist/src/default/utils.js.map +1 -1
- package/dist/src/monitor/monitor.d.ts +9 -0
- package/dist/src/monitor/monitor.js +14 -0
- package/dist/src/monitor/monitor.js.map +1 -0
- package/package.json +1 -2
- package/dist/src/services/payment/index.d.ts +0 -2
- package/dist/src/services/payment/index.js +0 -21
- package/dist/src/services/payment/index.js.map +0 -1
package/coverage/clover.xml
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
<?xml version="1.0" encoding="UTF-8"?>
|
|
2
|
-
<coverage generated="
|
|
3
|
-
<project timestamp="
|
|
2
|
+
<coverage generated="1745451387556" clover="3.2.0">
|
|
3
|
+
<project timestamp="1745451387556" name="All files">
|
|
4
4
|
<metrics statements="0" coveredstatements="0" conditionals="0" coveredconditionals="0" methods="0" coveredmethods="0" elements="0" coveredelements="0" complexity="0" loc="0" ncloc="0" packages="0" files="0" classes="0"/>
|
|
5
5
|
</project>
|
|
6
6
|
</coverage>
|
|
@@ -86,7 +86,7 @@
|
|
|
86
86
|
<div class='footer quiet pad2 space-top1 center small'>
|
|
87
87
|
Code coverage generated by
|
|
88
88
|
<a href="https://istanbul.js.org/" target="_blank" rel="noopener noreferrer">istanbul</a>
|
|
89
|
-
at 2025-04-23T23:
|
|
89
|
+
at 2025-04-23T23:36:27.552Z
|
|
90
90
|
</div>
|
|
91
91
|
<script src="prettify.js"></script>
|
|
92
92
|
<script>
|
package/dist/index.d.ts
CHANGED
|
@@ -3,5 +3,5 @@ import { PoolOptions as MySqlPoolOptions } from 'mysql2';
|
|
|
3
3
|
import { Conditions as TypeConditions } from './src/default/types';
|
|
4
4
|
export * from './src/db/initDb';
|
|
5
5
|
export * from './src/default/genericRepository';
|
|
6
|
-
export * from './src/
|
|
6
|
+
export * from './src/monitor/monitor';
|
|
7
7
|
export type { PgPoolConfig, MySqlPoolOptions, TypeConditions };
|
package/dist/index.js
CHANGED
|
@@ -18,6 +18,6 @@ Object.defineProperty(exports, "__esModule", { value: true });
|
|
|
18
18
|
__exportStar(require("./src/db/initDb"), exports);
|
|
19
19
|
// Generic Repository
|
|
20
20
|
__exportStar(require("./src/default/genericRepository"), exports);
|
|
21
|
-
//
|
|
22
|
-
__exportStar(require("./src/
|
|
21
|
+
// Monitor
|
|
22
|
+
__exportStar(require("./src/monitor/monitor"), exports);
|
|
23
23
|
//# sourceMappingURL=index.js.map
|
package/dist/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;AAIA,UAAU;AACV,kDAA+B;AAE/B,qBAAqB;AACrB,kEAA+C;AAE/C,
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;AAIA,UAAU;AACV,kDAA+B;AAE/B,qBAAqB;AACrB,kEAA+C;AAE/C,UAAU;AACV,wDAAqC"}
|
package/dist/src/db/initDb.d.ts
CHANGED
|
@@ -1,7 +1,11 @@
|
|
|
1
1
|
import { IDatabaseClient } from './IDatabaseClient';
|
|
2
|
-
import { DBClients } from '../default/types';
|
|
2
|
+
import { DBClients, RetryOptions } from '../default/types';
|
|
3
3
|
export declare const initDb: <T>(config: {
|
|
4
|
+
name?: string;
|
|
4
5
|
type: DBClients;
|
|
5
6
|
options: T;
|
|
6
|
-
|
|
7
|
-
|
|
7
|
+
retryOptions?: RetryOptions;
|
|
8
|
+
installUnaccentExtension?: boolean;
|
|
9
|
+
}) => Promise<void>;
|
|
10
|
+
export declare const getDbClient: (name?: string) => IDatabaseClient;
|
|
11
|
+
export declare const getAllDbClients: () => Record<string, IDatabaseClient>;
|
package/dist/src/db/initDb.js
CHANGED
|
@@ -1,36 +1,43 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.getDbClient = exports.initDb = void 0;
|
|
3
|
+
exports.getAllDbClients = exports.getDbClient = exports.initDb = void 0;
|
|
4
4
|
const pg_1 = require("pg");
|
|
5
5
|
const promise_1 = require("mysql2/promise");
|
|
6
6
|
const pgClient_1 = require("./pgClient");
|
|
7
7
|
const mysqlClient_1 = require("./mysqlClient");
|
|
8
|
-
|
|
9
|
-
const
|
|
8
|
+
const dbClients = {};
|
|
9
|
+
const defaultName = 'default';
|
|
10
|
+
const initDb = async (config) => {
|
|
10
11
|
if (!config.type)
|
|
11
12
|
throw new Error('Type is required. Accept values: pg | mysql');
|
|
12
13
|
if (!config.options)
|
|
13
14
|
throw new Error('Connection options is required');
|
|
14
15
|
if (config.type === 'pg') {
|
|
16
|
+
const poolConfig = config.options;
|
|
15
17
|
const pool = new pg_1.Pool(config.options);
|
|
16
|
-
|
|
17
|
-
console.log(`@starbemtech/star-db-query-builder: Postgres db client created
|
|
18
|
+
dbClients[config.name || defaultName] = await (0, pgClient_1.createPgClient)(pool, config.retryOptions, poolConfig, config.installUnaccentExtension);
|
|
19
|
+
console.log(`@starbemtech/star-db-query-builder: Postgres db client "${config.name}" created successfully`);
|
|
18
20
|
}
|
|
19
21
|
else if (config.type === 'mysql') {
|
|
20
22
|
const pool = (0, promise_1.createPool)(config.options);
|
|
21
|
-
|
|
22
|
-
console.info(`@starbemtech/star-db-query-builder:
|
|
23
|
+
dbClients[config.name || defaultName] = (0, mysqlClient_1.createMysqlClient)(pool, config.retryOptions);
|
|
24
|
+
console.info(`@starbemtech/star-db-query-builder: Postgres db client "${config.name}" created successfully`);
|
|
23
25
|
}
|
|
24
26
|
else {
|
|
25
27
|
throw new Error('Unsupported database type');
|
|
26
28
|
}
|
|
27
29
|
};
|
|
28
30
|
exports.initDb = initDb;
|
|
29
|
-
const getDbClient = () => {
|
|
30
|
-
|
|
31
|
-
|
|
31
|
+
const getDbClient = (name) => {
|
|
32
|
+
const client = dbClients[name || defaultName];
|
|
33
|
+
if (!client) {
|
|
34
|
+
throw new Error(`Database client "${name}" is not initialized`);
|
|
32
35
|
}
|
|
33
|
-
return
|
|
36
|
+
return client;
|
|
34
37
|
};
|
|
35
38
|
exports.getDbClient = getDbClient;
|
|
39
|
+
const getAllDbClients = () => {
|
|
40
|
+
return dbClients;
|
|
41
|
+
};
|
|
42
|
+
exports.getAllDbClients = getAllDbClients;
|
|
36
43
|
//# sourceMappingURL=initDb.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"initDb.js","sourceRoot":"","sources":["../../../src/db/initDb.ts"],"names":[],"mappings":";;;AAAA,
|
|
1
|
+
{"version":3,"file":"initDb.js","sourceRoot":"","sources":["../../../src/db/initDb.ts"],"names":[],"mappings":";;;AAAA,2BAAqC;AACrC,4CAA8D;AAC9D,yCAA2C;AAC3C,+CAAiD;AAIjD,MAAM,SAAS,GAAoC,EAAE,CAAA;AACrD,MAAM,WAAW,GAAG,SAAS,CAAA;AAEtB,MAAM,MAAM,GAAG,KAAK,EAAK,MAM/B,EAAiB,EAAE;IAClB,IAAI,CAAC,MAAM,CAAC,IAAI;QACd,MAAM,IAAI,KAAK,CAAC,6CAA6C,CAAC,CAAA;IAEhE,IAAI,CAAC,MAAM,CAAC,OAAO;QAAE,MAAM,IAAI,KAAK,CAAC,gCAAgC,CAAC,CAAA;IAEtE,IAAI,MAAM,CAAC,IAAI,KAAK,IAAI,EAAE,CAAC;QACzB,MAAM,UAAU,GAAG,MAAM,CAAC,OAAgC,CAAA;QAC1D,MAAM,IAAI,GAAG,IAAI,SAAI,CAAC,MAAM,CAAC,OAAO,CAAC,CAAA;QACrC,SAAS,CAAC,MAAM,CAAC,IAAI,IAAI,WAAW,CAAC,GAAG,MAAM,IAAA,yBAAc,EAC1D,IAAI,EACJ,MAAM,CAAC,YAAY,EACnB,UAAU,EACV,MAAM,CAAC,wBAAwB,CAChC,CAAA;QAED,OAAO,CAAC,GAAG,CACT,2DAA2D,MAAM,CAAC,IAAI,wBAAwB,CAC/F,CAAA;IACH,CAAC;SAAM,IAAI,MAAM,CAAC,IAAI,KAAK,OAAO,EAAE,CAAC;QACnC,MAAM,IAAI,GAAG,IAAA,oBAAe,EAAC,MAAM,CAAC,OAAO,CAAC,CAAA;QAC5C,SAAS,CAAC,MAAM,CAAC,IAAI,IAAI,WAAW,CAAC,GAAG,IAAA,+BAAiB,EACvD,IAAI,EACJ,MAAM,CAAC,YAAY,CACpB,CAAA;QAED,OAAO,CAAC,IAAI,CACV,2DAA2D,MAAM,CAAC,IAAI,wBAAwB,CAC/F,CAAA;IACH,CAAC;SAAM,CAAC;QACN,MAAM,IAAI,KAAK,CAAC,2BAA2B,CAAC,CAAA;IAC9C,CAAC;AACH,CAAC,CAAA;AAtCY,QAAA,MAAM,UAsClB;AAEM,MAAM,WAAW,GAAG,CAAC,IAAa,EAAmB,EAAE;IAC5D,MAAM,MAAM,GAAG,SAAS,CAAC,IAAI,IAAI,WAAW,CAAC,CAAA;IAC7C,IAAI,CAAC,MAAM,EAAE,CAAC;QACZ,MAAM,IAAI,KAAK,CAAC,oBAAoB,IAAI,sBAAsB,CAAC,CAAA;IACjE,CAAC;IAED,OAAO,MAAM,CAAA;AACf,CAAC,CAAA;AAPY,QAAA,WAAW,eAOvB;AAEM,MAAM,eAAe,GAAG,GAAoC,EAAE;IACnE,OAAO,SAAS,CAAA;AAClB,CAAC,CAAA;AAFY,QAAA,eAAe,mBAE3B"}
|
|
@@ -1,3 +1,4 @@
|
|
|
1
1
|
import { Pool } from 'mysql2/promise';
|
|
2
2
|
import { IDatabaseClient } from './IDatabaseClient';
|
|
3
|
-
|
|
3
|
+
import { RetryOptions } from '../default/types';
|
|
4
|
+
export declare const createMysqlClient: (pool: Pool, retryOptions?: RetryOptions) => IDatabaseClient;
|
|
@@ -1,12 +1,74 @@
|
|
|
1
1
|
"use strict";
|
|
2
|
+
var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
3
|
+
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
4
|
+
};
|
|
2
5
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
6
|
exports.createMysqlClient = void 0;
|
|
4
|
-
const
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
7
|
+
const promise_retry_1 = __importDefault(require("promise-retry"));
|
|
8
|
+
const monitor_1 = require("../monitor/monitor");
|
|
9
|
+
const transientErrorCodes = new Set([
|
|
10
|
+
'ECONNRESET',
|
|
11
|
+
'ETIMEDOUT',
|
|
12
|
+
'PROTOCOL_CONNECTION_LOST',
|
|
13
|
+
'ECONNREFUSED',
|
|
14
|
+
]);
|
|
15
|
+
function isTransientError(error) {
|
|
16
|
+
return error && error.code && transientErrorCodes.has(error.code);
|
|
17
|
+
}
|
|
18
|
+
const createMysqlClient = (pool, retryOptions) => {
|
|
19
|
+
monitor_1.monitor.emit(monitor_1.MonitorEvents.CONNECTION_CREATED, {
|
|
20
|
+
clientType: 'mysql',
|
|
21
|
+
poolOptions: pool.config,
|
|
22
|
+
});
|
|
23
|
+
return {
|
|
24
|
+
clientType: 'mysql',
|
|
25
|
+
query: async (sql, params) => {
|
|
26
|
+
return (0, promise_retry_1.default)(async (retry, attempt) => {
|
|
27
|
+
const startTime = Date.now();
|
|
28
|
+
try {
|
|
29
|
+
monitor_1.monitor.emit(monitor_1.MonitorEvents.QUERY_START, {
|
|
30
|
+
clientType: 'mysql',
|
|
31
|
+
sql,
|
|
32
|
+
params,
|
|
33
|
+
attempt,
|
|
34
|
+
});
|
|
35
|
+
const [rows] = await pool.execute(sql, params);
|
|
36
|
+
const elapsedTime = Date.now() - startTime;
|
|
37
|
+
monitor_1.monitor.emit(monitor_1.MonitorEvents.QUERY_END, {
|
|
38
|
+
clientType: 'mysql',
|
|
39
|
+
sql,
|
|
40
|
+
params,
|
|
41
|
+
attempt,
|
|
42
|
+
elapsedTime,
|
|
43
|
+
});
|
|
44
|
+
return rows;
|
|
45
|
+
}
|
|
46
|
+
catch (error) {
|
|
47
|
+
const elapsedTime = Date.now() - startTime;
|
|
48
|
+
monitor_1.monitor.emit(monitor_1.MonitorEvents.QUERY_ERROR, {
|
|
49
|
+
clientType: 'mysql',
|
|
50
|
+
sql,
|
|
51
|
+
params,
|
|
52
|
+
attempt,
|
|
53
|
+
elapsedTime,
|
|
54
|
+
error,
|
|
55
|
+
});
|
|
56
|
+
if (isTransientError(error)) {
|
|
57
|
+
console.warn(`MySQL query attempt ${attempt} failed, retrying...`, error);
|
|
58
|
+
monitor_1.monitor.emit(monitor_1.MonitorEvents.RETRY_ATTEMPT, {
|
|
59
|
+
clientType: 'mysql',
|
|
60
|
+
sql,
|
|
61
|
+
params,
|
|
62
|
+
attempt,
|
|
63
|
+
error,
|
|
64
|
+
});
|
|
65
|
+
return retry(error);
|
|
66
|
+
}
|
|
67
|
+
throw error;
|
|
68
|
+
}
|
|
69
|
+
}, retryOptions);
|
|
70
|
+
},
|
|
71
|
+
};
|
|
72
|
+
};
|
|
11
73
|
exports.createMysqlClient = createMysqlClient;
|
|
12
74
|
//# sourceMappingURL=mysqlClient.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"mysqlClient.js","sourceRoot":"","sources":["../../../src/db/mysqlClient.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"mysqlClient.js","sourceRoot":"","sources":["../../../src/db/mysqlClient.ts"],"names":[],"mappings":";;;;;;AACA,kEAAwC;AAGxC,gDAA2D;AAE3D,MAAM,mBAAmB,GAAG,IAAI,GAAG,CAAC;IAClC,YAAY;IACZ,WAAW;IACX,0BAA0B;IAC1B,cAAc;CACf,CAAC,CAAA;AAEF,SAAS,gBAAgB,CAAC,KAAU;IAClC,OAAO,KAAK,IAAI,KAAK,CAAC,IAAI,IAAI,mBAAmB,CAAC,GAAG,CAAC,KAAK,CAAC,IAAI,CAAC,CAAA;AACnE,CAAC;AAEM,MAAM,iBAAiB,GAAG,CAC/B,IAAU,EACV,YAA2B,EACV,EAAE;IACnB,iBAAO,CAAC,IAAI,CAAC,uBAAa,CAAC,kBAAkB,EAAE;QAC7C,UAAU,EAAE,OAAO;QACnB,WAAW,EAAE,IAAI,CAAC,MAAM;KACzB,CAAC,CAAA;IAEF,OAAO;QACL,UAAU,EAAE,OAAO;QACnB,KAAK,EAAE,KAAK,EAAK,GAAW,EAAE,MAAc,EAAc,EAAE;YAC1D,OAAO,IAAA,uBAAY,EAAC,KAAK,EAAE,KAAK,EAAE,OAAO,EAAE,EAAE;gBAC3C,MAAM,SAAS,GAAG,IAAI,CAAC,GAAG,EAAE,CAAA;gBAC5B,IAAI,CAAC;oBACH,iBAAO,CAAC,IAAI,CAAC,uBAAa,CAAC,WAAW,EAAE;wBACtC,UAAU,EAAE,OAAO;wBACnB,GAAG;wBACH,MAAM;wBACN,OAAO;qBACR,CAAC,CAAA;oBAEF,MAAM,CAAC,IAAI,CAAC,GAAG,MAAM,IAAI,CAAC,OAAO,CAAC,GAAG,EAAE,MAAM,CAAC,CAAA;oBAE9C,MAAM,WAAW,GAAG,IAAI,CAAC,GAAG,EAAE,GAAG,SAAS,CAAA;oBAC1C,iBAAO,CAAC,IAAI,CAAC,uBAAa,CAAC,SAAS,EAAE;wBACpC,UAAU,EAAE,OAAO;wBACnB,GAAG;wBACH,MAAM;wBACN,OAAO;wBACP,WAAW;qBACZ,CAAC,CAAA;oBAEF,OAAO,IAAoB,CAAA;gBAC7B,CAAC;gBAAC,OAAO,KAAU,EAAE,CAAC;oBACpB,MAAM,WAAW,GAAG,IAAI,CAAC,GAAG,EAAE,GAAG,SAAS,CAAA;oBAC1C,iBAAO,CAAC,IAAI,CAAC,uBAAa,CAAC,WAAW,EAAE;wBACtC,UAAU,EAAE,OAAO;wBACnB,GAAG;wBACH,MAAM;wBACN,OAAO;wBACP,WAAW;wBACX,KAAK;qBACN,CAAC,CAAA;oBAEF,IAAI,gBAAgB,CAAC,KAAK,CAAC,EAAE,CAAC;wBAC5B,OAAO,CAAC,IAAI,CACV,uBAAuB,OAAO,sBAAsB,EACpD,KAAK,CACN,CAAA;wBACD,iBAAO,CAAC,IAAI,CAAC,uBAAa,CAAC,aAAa,EAAE;4BACxC,UAAU,EAAE,OAAO;4BACnB,GAAG;4BACH,MAAM;4BACN,OAAO;4BACP,KAAK;yBACN,CAAC,CAAA;wBAEF,OAAO,KAAK,CAAC,KAAK,CAAC,CAAA;oBACrB,CAAC;oBAED,MAAM,KAAK,CAAA;gBACb,CAAC;YACH,CAAC,EAAE,YAAY,CAAC,CAAA;QAClB,CAAC;KACF,CAAA;AACH,CAAC,CAAA;AAlEY,QAAA,iBAAiB,qBAkE7B"}
|
|
@@ -1,3 +1,4 @@
|
|
|
1
|
-
import { Pool } from 'pg';
|
|
1
|
+
import { Pool, PoolConfig } from 'pg';
|
|
2
2
|
import { IDatabaseClient } from './IDatabaseClient';
|
|
3
|
-
|
|
3
|
+
import { RetryOptions } from '../default/types';
|
|
4
|
+
export declare const createPgClient: (pool: Pool, retryOptions?: RetryOptions, poolConfig?: PoolConfig, installUnaccentExtension?: boolean) => Promise<IDatabaseClient>;
|
package/dist/src/db/pgClient.js
CHANGED
|
@@ -1,12 +1,97 @@
|
|
|
1
1
|
"use strict";
|
|
2
|
+
var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
3
|
+
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
4
|
+
};
|
|
2
5
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
6
|
exports.createPgClient = void 0;
|
|
4
|
-
const
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
7
|
+
const promise_retry_1 = __importDefault(require("promise-retry"));
|
|
8
|
+
const monitor_1 = require("../monitor/monitor");
|
|
9
|
+
const transientErrorCodes = new Set(['ECONNRESET', 'ETIMEDOUT', 'ECONNREFUSED']);
|
|
10
|
+
function isTransientError(error) {
|
|
11
|
+
return error && error.code && transientErrorCodes.has(error.code);
|
|
12
|
+
}
|
|
13
|
+
async function ensureUnaccentExtension(pool) {
|
|
14
|
+
try {
|
|
15
|
+
const checkResult = await pool.query(`
|
|
16
|
+
SELECT 1 FROM pg_extension WHERE extname = 'unaccent'
|
|
17
|
+
`);
|
|
18
|
+
if (checkResult.rows.length === 0) {
|
|
19
|
+
await pool.query('CREATE EXTENSION IF NOT EXISTS unaccent');
|
|
20
|
+
monitor_1.monitor.emit(monitor_1.MonitorEvents.CONNECTION_CREATED, {
|
|
21
|
+
clientType: 'pg',
|
|
22
|
+
extension: 'unaccent',
|
|
23
|
+
status: 'installed',
|
|
24
|
+
});
|
|
25
|
+
console.info('@starbemtech/star-db-query-builder: Extensão unaccent instalada com sucesso.');
|
|
26
|
+
}
|
|
27
|
+
}
|
|
28
|
+
catch (error) {
|
|
29
|
+
monitor_1.monitor.emit(monitor_1.MonitorEvents.QUERY_ERROR, {
|
|
30
|
+
clientType: 'pg',
|
|
31
|
+
action: 'install_unaccent',
|
|
32
|
+
error,
|
|
33
|
+
});
|
|
34
|
+
throw new Error(`@starbemtech/star-db-query-builder: Não foi possível instalar a extensão unaccent:
|
|
35
|
+
${error}`);
|
|
36
|
+
}
|
|
37
|
+
}
|
|
38
|
+
const createPgClient = async (pool, retryOptions, poolConfig, installUnaccentExtension) => {
|
|
39
|
+
if (installUnaccentExtension) {
|
|
40
|
+
await ensureUnaccentExtension(pool);
|
|
41
|
+
}
|
|
42
|
+
monitor_1.monitor.emit(monitor_1.MonitorEvents.CONNECTION_CREATED, {
|
|
43
|
+
clientType: 'pg',
|
|
44
|
+
poolOptions: poolConfig,
|
|
45
|
+
});
|
|
46
|
+
return {
|
|
47
|
+
clientType: 'pg',
|
|
48
|
+
query: async (sql, params) => {
|
|
49
|
+
return (0, promise_retry_1.default)(async (retry, attempt) => {
|
|
50
|
+
const startTime = Date.now();
|
|
51
|
+
try {
|
|
52
|
+
monitor_1.monitor.emit(monitor_1.MonitorEvents.QUERY_START, {
|
|
53
|
+
clientType: 'pg',
|
|
54
|
+
sql,
|
|
55
|
+
params,
|
|
56
|
+
attempt,
|
|
57
|
+
});
|
|
58
|
+
const { rows } = await pool.query(sql, params);
|
|
59
|
+
const elapsedTime = Date.now() - startTime;
|
|
60
|
+
monitor_1.monitor.emit(monitor_1.MonitorEvents.QUERY_END, {
|
|
61
|
+
clientType: 'pg',
|
|
62
|
+
sql,
|
|
63
|
+
params,
|
|
64
|
+
attempt,
|
|
65
|
+
elapsedTime,
|
|
66
|
+
});
|
|
67
|
+
return rows;
|
|
68
|
+
}
|
|
69
|
+
catch (error) {
|
|
70
|
+
const elapsedTime = Date.now() - startTime;
|
|
71
|
+
monitor_1.monitor.emit(monitor_1.MonitorEvents.QUERY_ERROR, {
|
|
72
|
+
clientType: 'pg',
|
|
73
|
+
sql,
|
|
74
|
+
params,
|
|
75
|
+
attempt,
|
|
76
|
+
elapsedTime,
|
|
77
|
+
error,
|
|
78
|
+
});
|
|
79
|
+
if (isTransientError(error)) {
|
|
80
|
+
console.warn(`Postgres query attempt ${attempt} failed, retrying...`, error);
|
|
81
|
+
monitor_1.monitor.emit(monitor_1.MonitorEvents.RETRY_ATTEMPT, {
|
|
82
|
+
clientType: 'pg',
|
|
83
|
+
sql,
|
|
84
|
+
params,
|
|
85
|
+
attempt,
|
|
86
|
+
error,
|
|
87
|
+
});
|
|
88
|
+
return retry(error);
|
|
89
|
+
}
|
|
90
|
+
throw error;
|
|
91
|
+
}
|
|
92
|
+
}, retryOptions);
|
|
93
|
+
},
|
|
94
|
+
};
|
|
95
|
+
};
|
|
11
96
|
exports.createPgClient = createPgClient;
|
|
12
97
|
//# sourceMappingURL=pgClient.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"pgClient.js","sourceRoot":"","sources":["../../../src/db/pgClient.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"pgClient.js","sourceRoot":"","sources":["../../../src/db/pgClient.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import { QueryParams } from './types';
|
|
2
2
|
export declare const findFirst: <T>({ tableName, dbClient, select, where, groupBy, orderBy, }: QueryParams<T>) => Promise<T | null>;
|
|
3
|
-
export declare const findMany: <T>({ tableName, dbClient, select, where, groupBy, orderBy, limit, offset, }: QueryParams<T>) => Promise<T[]>;
|
|
3
|
+
export declare const findMany: <T>({ tableName, dbClient, select, where, groupBy, orderBy, limit, offset, unaccent, }: QueryParams<T>) => Promise<T[]>;
|
|
4
4
|
export declare const insert: <P, R>({ tableName, dbClient, data, returning, }: QueryParams<R> & {
|
|
5
5
|
data: P;
|
|
6
6
|
returning?: string[];
|
|
@@ -12,4 +12,9 @@ export declare const update: <P, R>({ tableName, dbClient, id, data, returning,
|
|
|
12
12
|
export declare const deleteOne: <T>({ tableName, dbClient, id, permanently, }: QueryParams<T> & {
|
|
13
13
|
permanently?: boolean;
|
|
14
14
|
}) => Promise<void>;
|
|
15
|
-
export declare const
|
|
15
|
+
export declare const deleteMany: <T>({ tableName, dbClient, ids, field, permanently, }: QueryParams<T> & {
|
|
16
|
+
ids: string[] | number[];
|
|
17
|
+
field?: string;
|
|
18
|
+
permanently?: boolean;
|
|
19
|
+
}) => Promise<void>;
|
|
20
|
+
export declare const joins: <T>({ tableName, dbClient, select, joins, where, groupBy, orderBy, limit, offset, unaccent, }: QueryParams<T>) => Promise<T[]>;
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.joins = exports.deleteOne = exports.update = exports.insert = exports.findMany = exports.findFirst = void 0;
|
|
3
|
+
exports.joins = exports.deleteMany = exports.deleteOne = exports.update = exports.insert = exports.findMany = exports.findFirst = void 0;
|
|
4
4
|
const uuid_1 = require("uuid");
|
|
5
5
|
const utils_1 = require("./utils");
|
|
6
6
|
const findFirst = async ({ tableName, dbClient, select, where, groupBy, orderBy, }) => {
|
|
@@ -20,13 +20,13 @@ const findFirst = async ({ tableName, dbClient, select, where, groupBy, orderBy,
|
|
|
20
20
|
return rows[0] || null;
|
|
21
21
|
};
|
|
22
22
|
exports.findFirst = findFirst;
|
|
23
|
-
const findMany = async ({ tableName, dbClient, select, where, groupBy, orderBy, limit, offset, }) => {
|
|
23
|
+
const findMany = async ({ tableName, dbClient, select, where, groupBy, orderBy, limit, offset, unaccent, }) => {
|
|
24
24
|
if (!tableName)
|
|
25
25
|
throw new Error('Table name is required');
|
|
26
26
|
if (!dbClient)
|
|
27
27
|
throw new Error('DB client is required');
|
|
28
28
|
const fields = (0, utils_1.createSelectFields)(select, dbClient.clientType);
|
|
29
|
-
const [whereClause, params] = (0, utils_1.createWhereClause)(where, 1, dbClient.clientType);
|
|
29
|
+
const [whereClause, params] = (0, utils_1.createWhereClause)(where, 1, dbClient.clientType, unaccent);
|
|
30
30
|
const orderByClause = (0, utils_1.createOrderByClause)(orderBy);
|
|
31
31
|
const groupByClause = (0, utils_1.createGroupByClause)(groupBy);
|
|
32
32
|
const limitClause = (0, utils_1.createLimitClause)(limit);
|
|
@@ -48,7 +48,9 @@ const insert = async ({ tableName, dbClient, data, returning, }) => {
|
|
|
48
48
|
throw new Error('DB client is required');
|
|
49
49
|
if (!data)
|
|
50
50
|
throw new Error('Data object is required');
|
|
51
|
-
const keys =
|
|
51
|
+
const keys = dbClient.clientType === 'pg'
|
|
52
|
+
? Object.keys(data).map((key) => key === 'authorization' ? `"${key}"` : key)
|
|
53
|
+
: Object.keys(data);
|
|
52
54
|
const values = Object.values(data);
|
|
53
55
|
keys.unshift('id');
|
|
54
56
|
const generatedUUID = (0, uuid_1.v4)();
|
|
@@ -118,14 +120,32 @@ const deleteOne = async ({ tableName, dbClient, id, permanently = false, }) => {
|
|
|
118
120
|
: `UPDATE ${tableName} SET status = 'deleted' WHERE id = ${dbClient.clientType === 'pg' ? '$1' : '?'}`, [id]);
|
|
119
121
|
};
|
|
120
122
|
exports.deleteOne = deleteOne;
|
|
121
|
-
const
|
|
123
|
+
const deleteMany = async ({ tableName, dbClient, ids, field = 'id', permanently = false, }) => {
|
|
124
|
+
if (!tableName)
|
|
125
|
+
throw new Error('Table name is required');
|
|
126
|
+
if (!dbClient)
|
|
127
|
+
throw new Error('DB client is required');
|
|
128
|
+
if (!ids || ids.length === 0)
|
|
129
|
+
throw new Error('IDs are required and cannot be empty');
|
|
130
|
+
if (!field)
|
|
131
|
+
throw new Error('Field is required');
|
|
132
|
+
const placeholders = dbClient.clientType === 'pg'
|
|
133
|
+
? ids.map((_, index) => `$${index + 1}`).join(', ')
|
|
134
|
+
: ids.map(() => '?').join(', ');
|
|
135
|
+
const query = permanently
|
|
136
|
+
? `DELETE FROM ${tableName} WHERE ${field} IN (${placeholders})`
|
|
137
|
+
: `UPDATE ${tableName} SET status = 'deleted' WHERE ${field} IN (${placeholders})`;
|
|
138
|
+
await dbClient.query(query, ids);
|
|
139
|
+
};
|
|
140
|
+
exports.deleteMany = deleteMany;
|
|
141
|
+
const joins = async ({ tableName, dbClient, select, joins, where, groupBy, orderBy, limit, offset, unaccent, }) => {
|
|
122
142
|
if (!tableName)
|
|
123
143
|
throw new Error('Table name is required');
|
|
124
144
|
if (!dbClient)
|
|
125
145
|
throw new Error('DB client is required');
|
|
126
146
|
const fields = Array.isArray(select) ? select : [];
|
|
127
147
|
const selectFields = (0, utils_1.createSelectFields)(fields, dbClient.clientType);
|
|
128
|
-
const [whereClause, params] = (0, utils_1.createWhereClause)(where, 1, dbClient.clientType);
|
|
148
|
+
const [whereClause, params] = (0, utils_1.createWhereClause)(where, 1, dbClient.clientType, unaccent);
|
|
129
149
|
const groupByClause = (0, utils_1.createGroupByClause)(groupBy);
|
|
130
150
|
const orderByClause = (0, utils_1.createOrderByClause)(orderBy);
|
|
131
151
|
const limitClause = (0, utils_1.createLimitClause)(limit);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"genericRepository.js","sourceRoot":"","sources":["../../../src/default/genericRepository.ts"],"names":[],"mappings":";;;AAAA,+BAAiC;AAEjC,mCASgB;AAET,MAAM,SAAS,GAAG,KAAK,EAAK,EACjC,SAAS,EACT,QAAQ,EACR,MAAM,EACN,KAAK,EACL,OAAO,EACP,OAAO,GACQ,EAAqB,EAAE;IACtC,IAAI,CAAC,SAAS;QAAE,MAAM,IAAI,KAAK,CAAC,wBAAwB,CAAC,CAAA;IACzD,IAAI,CAAC,QAAQ;QAAE,MAAM,IAAI,KAAK,CAAC,uBAAuB,CAAC,CAAA;IAEvD,MAAM,MAAM,GAAG,IAAA,0BAAkB,EAAC,MAAM,EAAE,QAAQ,CAAC,UAAU,CAAC,CAAA;IAC9D,MAAM,CAAC,WAAW,EAAE,MAAM,CAAC,GAAG,IAAA,yBAAiB,EAC7C,KAAK,EACL,CAAC,EACD,QAAQ,CAAC,UAAU,CACpB,CAAA;IAED,MAAM,aAAa,GAAG,IAAA,2BAAmB,EAAC,OAAO,CAAC,CAAA;IAClD,MAAM,aAAa,GAAG,IAAA,2BAAmB,EAAC,OAAO,CAAC,CAAA;IAElD,MAAM,IAAI,GAAG,MAAM,QAAQ,CAAC,KAAK,CAC/B,UAAU,MAAM,SAAS,SAAS;QAC9B,WAAW,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,WAAW,CAAC,CAAC,CAAC,EAAE;QACzC,aAAa;QACb,aAAa;OACd,EACH,MAAM,CACP,CAAA;IAED,OAAO,IAAI,CAAC,CAAC,CAAC,IAAI,IAAI,CAAA;AACxB,CAAC,CAAA;AA/BY,QAAA,SAAS,aA+BrB;AAEM,MAAM,QAAQ,GAAG,KAAK,EAAK,EAChC,SAAS,EACT,QAAQ,EACR,MAAM,EACN,KAAK,EACL,OAAO,EACP,OAAO,EACP,KAAK,EACL,MAAM,
|
|
1
|
+
{"version":3,"file":"genericRepository.js","sourceRoot":"","sources":["../../../src/default/genericRepository.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,11 +1,18 @@
|
|
|
1
1
|
import { IDatabaseClient } from '../db/IDatabaseClient';
|
|
2
|
+
export interface RetryOptions {
|
|
3
|
+
retries?: number;
|
|
4
|
+
factor?: number;
|
|
5
|
+
minTimeout?: number;
|
|
6
|
+
maxTimeout?: number;
|
|
7
|
+
randomize?: boolean;
|
|
8
|
+
}
|
|
2
9
|
export interface QueryExec {
|
|
3
10
|
text: string;
|
|
4
11
|
values?: any[];
|
|
5
12
|
}
|
|
6
13
|
type SimpleValue = string | number | boolean | Date;
|
|
7
14
|
export interface OperatorCondition {
|
|
8
|
-
operator: 'LIKE' | '=' | '>' | '<' | 'IN' | 'BETWEEN' | '!=' | '<=' | '>=' | 'NOT IN' | 'LIKE' | 'NOT LIKE';
|
|
15
|
+
operator: 'ILIKE' | 'LIKE' | '=' | '>' | '<' | 'IN' | 'BETWEEN' | '!=' | '<=' | '>=' | 'NOT IN' | 'LIKE' | 'NOT LIKE' | 'IS NULL' | 'IS NOT NULL' | 'NOT EXISTS';
|
|
9
16
|
value: SimpleValue | SimpleValue[];
|
|
10
17
|
}
|
|
11
18
|
export type LogicalOperator = 'OR' | 'AND';
|
|
@@ -14,6 +21,7 @@ interface LogicalCondition<T> {
|
|
|
14
21
|
OR?: Conditions<T>[];
|
|
15
22
|
AND?: Conditions<T>[];
|
|
16
23
|
JOINS?: Conditions<object>;
|
|
24
|
+
notExists?: OperatorCondition;
|
|
17
25
|
}
|
|
18
26
|
export type Conditions<T> = {
|
|
19
27
|
[P in keyof T]?: Condition<T[P]>;
|
|
@@ -34,6 +42,7 @@ export interface QueryParams<T> {
|
|
|
34
42
|
limit?: number;
|
|
35
43
|
offset?: number;
|
|
36
44
|
joins?: JoinClause[];
|
|
45
|
+
unaccent?: boolean;
|
|
37
46
|
}
|
|
38
47
|
interface JoinClause {
|
|
39
48
|
type: 'INNER' | 'LEFT' | 'RIGHT' | 'FULL';
|
|
@@ -2,7 +2,7 @@ import { Conditions, OrderBy, DBClients } from './types';
|
|
|
2
2
|
export declare const createSelectFields: (fields: string[] | undefined, clientType: DBClients) => string;
|
|
3
3
|
export declare const generatePlaceholders: (keys: any[], clientType: DBClients) => string;
|
|
4
4
|
export declare const generateSetClause: (keys: any[], clientType: DBClients) => string;
|
|
5
|
-
export declare const createWhereClause: <T>(conditions: Conditions<T> | undefined, startIndex: number | undefined, clientType: DBClients) => [string, any[], number];
|
|
5
|
+
export declare const createWhereClause: <T>(conditions: Conditions<T> | undefined, startIndex: number | undefined, clientType: DBClients, unaccent?: boolean) => [string, any[], number];
|
|
6
6
|
export declare const createOrderByClause: (orderBy?: OrderBy) => string;
|
|
7
7
|
export declare const createGroupByClause: (groupBy?: string[]) => string;
|
|
8
8
|
export declare const createLimitClause: (limit?: number) => string;
|
|
@@ -25,7 +25,7 @@ const generateSetClause = (keys, clientType) => {
|
|
|
25
25
|
.join(', ');
|
|
26
26
|
};
|
|
27
27
|
exports.generateSetClause = generateSetClause;
|
|
28
|
-
const createWhereClause = (conditions = {}, startIndex = 1, clientType) => {
|
|
28
|
+
const createWhereClause = (conditions = {}, startIndex = 1, clientType, unaccent) => {
|
|
29
29
|
let index = startIndex;
|
|
30
30
|
const whereParts = [];
|
|
31
31
|
const values = [];
|
|
@@ -33,33 +33,44 @@ const createWhereClause = (conditions = {}, startIndex = 1, clientType) => {
|
|
|
33
33
|
if (typeof condition === 'object' && condition !== null) {
|
|
34
34
|
if ('operator' in condition && 'value' in condition) {
|
|
35
35
|
const { operator, value } = condition;
|
|
36
|
-
if (
|
|
36
|
+
if (operator === 'NOT EXISTS' && typeof value === 'string') {
|
|
37
|
+
whereParts.push(`NOT EXISTS (${value})`);
|
|
38
|
+
}
|
|
39
|
+
else if (operator.includes('NULL')) {
|
|
40
|
+
whereParts.push(`${key} ${operator}`);
|
|
41
|
+
}
|
|
42
|
+
else if (Array.isArray(value)) {
|
|
37
43
|
const placeholders = value
|
|
38
44
|
.map(() => clientType === 'pg'
|
|
39
45
|
? pgPlaceholderGenerator(index++)
|
|
40
46
|
: mysqlPlaceholderGenerator())
|
|
41
47
|
.join(', ');
|
|
42
48
|
if (operator === 'BETWEEN') {
|
|
43
|
-
whereParts.push(
|
|
44
|
-
? `${key} ${operator} ${placeholders.replace(', ', ' AND ')}`
|
|
45
|
-
: `${key} ${operator} ${placeholders.replace(', ', ' AND ')}`);
|
|
49
|
+
whereParts.push(`${key} ${operator} ${placeholders.replace(', ', ' AND ')}`);
|
|
46
50
|
}
|
|
47
51
|
else if (operator === 'IN') {
|
|
48
|
-
whereParts.push(
|
|
49
|
-
? `${key} ${operator} ${placeholders.replace(', ', ' AND ')}`
|
|
50
|
-
: `${key} ${operator} (${placeholders})`);
|
|
52
|
+
whereParts.push(`${key} ${operator} (${placeholders})`);
|
|
51
53
|
}
|
|
52
54
|
else {
|
|
53
|
-
whereParts.push(
|
|
54
|
-
? `${key} ${operator} (${placeholders})`
|
|
55
|
-
: `${key} ${operator} ${placeholders}`);
|
|
55
|
+
whereParts.push(`${key} ${operator} (${placeholders})`);
|
|
56
56
|
}
|
|
57
57
|
values.push(...value);
|
|
58
58
|
}
|
|
59
59
|
else {
|
|
60
|
-
|
|
61
|
-
|
|
62
|
-
|
|
60
|
+
if (unaccent && clientType === 'pg') {
|
|
61
|
+
if (operator.toUpperCase() === 'ILIKE') {
|
|
62
|
+
whereParts.push(`unaccent(${key}::text) ILIKE unaccent(${pgPlaceholderGenerator(index)})`);
|
|
63
|
+
}
|
|
64
|
+
else {
|
|
65
|
+
whereParts.push(`unaccent(${key}::text) ${operator} unaccent(${pgPlaceholderGenerator(index)})`);
|
|
66
|
+
}
|
|
67
|
+
}
|
|
68
|
+
else {
|
|
69
|
+
whereParts.push(clientType === 'pg'
|
|
70
|
+
? `${key} ${operator} ${pgPlaceholderGenerator(index)}`
|
|
71
|
+
: `${key} ${operator} ${mysqlPlaceholderGenerator()}`);
|
|
72
|
+
}
|
|
73
|
+
index++;
|
|
63
74
|
values.push(value);
|
|
64
75
|
}
|
|
65
76
|
}
|
|
@@ -76,23 +87,18 @@ const createWhereClause = (conditions = {}, startIndex = 1, clientType) => {
|
|
|
76
87
|
subCondition !== null) {
|
|
77
88
|
const key = Object.keys(subCondition)[0];
|
|
78
89
|
const condition = subCondition[key];
|
|
90
|
+
// Adiciona o tratamento de unaccent nas condições de JOINS
|
|
79
91
|
processCondition(key, condition);
|
|
80
92
|
return whereParts.pop();
|
|
81
93
|
}
|
|
82
94
|
return '';
|
|
83
95
|
})
|
|
84
96
|
.filter((part) => part);
|
|
85
|
-
whereParts.push(
|
|
86
|
-
? `(${subWhereParts.join(` ${logicalOperator} `)})`
|
|
87
|
-
: `${subWhereParts.join(` ${logicalOperator} `)}`);
|
|
97
|
+
whereParts.push(`(${subWhereParts.join(` ${logicalOperator} `)})`);
|
|
88
98
|
}
|
|
89
99
|
}
|
|
90
100
|
else {
|
|
91
|
-
Object.entries(conditions).forEach(([key, value]) =>
|
|
92
|
-
// eslint-disable-next-line @typescript-eslint/ban-ts-comment
|
|
93
|
-
// @ts-expect-error
|
|
94
|
-
processCondition(key, value);
|
|
95
|
-
});
|
|
101
|
+
Object.entries(conditions).forEach(([key, value]) => processCondition(key, value));
|
|
96
102
|
}
|
|
97
103
|
if ('OR' in conditions || 'AND' in conditions) {
|
|
98
104
|
const logicalOperator = conditions.OR ? 'OR' : 'AND';
|
|
@@ -105,24 +111,15 @@ const createWhereClause = (conditions = {}, startIndex = 1, clientType) => {
|
|
|
105
111
|
subCondition !== null) {
|
|
106
112
|
const key = Object.keys(subCondition)[0];
|
|
107
113
|
const condition = subCondition[key];
|
|
108
|
-
processCondition(key, condition);
|
|
114
|
+
processCondition(key, condition); // Certifica que o unaccent é processado aqui também
|
|
109
115
|
return whereParts.pop();
|
|
110
116
|
}
|
|
111
117
|
return '';
|
|
112
118
|
})
|
|
113
119
|
.filter((part) => part);
|
|
114
|
-
whereParts.push(
|
|
115
|
-
? `(${subWhereParts.join(` ${logicalOperator} `)})`
|
|
116
|
-
: `${subWhereParts.join(` ${logicalOperator} `)}`);
|
|
120
|
+
whereParts.push(`(${subWhereParts.join(` ${logicalOperator} `)})`);
|
|
117
121
|
}
|
|
118
122
|
}
|
|
119
|
-
else {
|
|
120
|
-
Object.entries(conditions).forEach(([key, value]) => {
|
|
121
|
-
// eslint-disable-next-line @typescript-eslint/ban-ts-comment
|
|
122
|
-
// @ts-expect-error
|
|
123
|
-
processCondition(key, value);
|
|
124
|
-
});
|
|
125
|
-
}
|
|
126
123
|
const whereClause = whereParts.length > 0 ? ` WHERE ${whereParts.join(' AND ')}` : '';
|
|
127
124
|
return [whereClause, values, index];
|
|
128
125
|
};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"utils.js","sourceRoot":"","sources":["../../../src/default/utils.ts"],"names":[],"mappings":";;;AAEA,MAAM,uBAAuB,GAAG,CAC9B,KAAe,EACf,UAAqB,EACb,EAAE;IACV,MAAM,eAAe,GAAG,KAAK,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,EAAE,CACzC,UAAU,KAAK,IAAI,CAAC,CAAC,CAAC,GAAG,IAAI,EAAE,CAAC,CAAC,CAAC,GAAG,IAAI,EAAE,CAC5C,CAAA;IACD,OAAO,eAAe,CAAC,IAAI,CAAC,IAAI,CAAC,CAAA;AACnC,CAAC,CAAA;AAED,MAAM,sBAAsB,GAAG,CAAC,KAAa,EAAE,EAAE,CAAC,IAAI,KAAK,EAAE,CAAA;AAC7D,MAAM,yBAAyB,GAAG,GAAG,EAAE,CAAC,GAAG,CAAA;AAEpC,MAAM,kBAAkB,GAAG,CAChC,SAAmB,EAAE,EACrB,UAAqB,EACb,EAAE;IACV,OAAO,MAAM,IAAI,MAAM,CAAC,MAAM,GAAG,CAAC;QAChC,CAAC,CAAC,uBAAuB,CAAC,MAAM,EAAE,UAAU,CAAC;QAC7C,CAAC,CAAC,GAAG,CAAA;AACT,CAAC,CAAA;AAPY,QAAA,kBAAkB,sBAO9B;AAEM,MAAM,oBAAoB,GAAG,CAClC,IAAW,EACX,UAAqB,EACb,EAAE;IACV,OAAO,IAAI;SACR,GAAG,CAAC,CAAC,CAAC,EAAE,KAAK,EAAE,EAAE,CAAC,CAAC,UAAU,KAAK,IAAI,CAAC,CAAC,CAAC,IAAI,KAAK,GAAG,CAAC,EAAE,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC;SAChE,IAAI,CAAC,IAAI,CAAC,CAAA;AACf,CAAC,CAAA;AAPY,QAAA,oBAAoB,wBAOhC;AAEM,MAAM,iBAAiB,GAAG,CAC/B,IAAW,EACX,UAAqB,EACb,EAAE;IACV,OAAO,IAAI;SACR,GAAG,CAAC,CAAC,GAAG,EAAE,KAAK,EAAE,EAAE,CAClB,UAAU,KAAK,IAAI,CAAC,CAAC,CAAC,GAAG,GAAG,OAAO,KAAK,GAAG,CAAC,EAAE,CAAC,CAAC,CAAC,GAAG,GAAG,MAAM,CAC9D;SACA,IAAI,CAAC,IAAI,CAAC,CAAA;AACf,CAAC,CAAA;AATY,QAAA,iBAAiB,qBAS7B;AAEM,MAAM,iBAAiB,GAAG,CAC/B,aAA4B,EAAE,EAC9B,UAAU,GAAG,CAAC,EACd,UAAqB,
|
|
1
|
+
{"version":3,"file":"utils.js","sourceRoot":"","sources":["../../../src/default/utils.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,9 @@
|
|
|
1
|
+
import { EventEmitter } from 'stream';
|
|
2
|
+
export declare enum MonitorEvents {
|
|
3
|
+
CONNECTION_CREATED = "connection_created",
|
|
4
|
+
QUERY_START = "query_start",
|
|
5
|
+
QUERY_END = "query_end",
|
|
6
|
+
QUERY_ERROR = "query_error",
|
|
7
|
+
RETRY_ATTEMPT = "retry_attempt"
|
|
8
|
+
}
|
|
9
|
+
export declare const monitor: EventEmitter<[never]>;
|
|
@@ -0,0 +1,14 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.monitor = exports.MonitorEvents = void 0;
|
|
4
|
+
const stream_1 = require("stream");
|
|
5
|
+
var MonitorEvents;
|
|
6
|
+
(function (MonitorEvents) {
|
|
7
|
+
MonitorEvents["CONNECTION_CREATED"] = "connection_created";
|
|
8
|
+
MonitorEvents["QUERY_START"] = "query_start";
|
|
9
|
+
MonitorEvents["QUERY_END"] = "query_end";
|
|
10
|
+
MonitorEvents["QUERY_ERROR"] = "query_error";
|
|
11
|
+
MonitorEvents["RETRY_ATTEMPT"] = "retry_attempt";
|
|
12
|
+
})(MonitorEvents || (exports.MonitorEvents = MonitorEvents = {}));
|
|
13
|
+
exports.monitor = new stream_1.EventEmitter();
|
|
14
|
+
//# sourceMappingURL=monitor.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"monitor.js","sourceRoot":"","sources":["../../../src/monitor/monitor.ts"],"names":[],"mappings":";;;AAAA,mCAAqC;AAErC,IAAY,aAMX;AAND,WAAY,aAAa;IACvB,0DAAyC,CAAA;IACzC,4CAA2B,CAAA;IAC3B,wCAAuB,CAAA;IACvB,4CAA2B,CAAA;IAC3B,gDAA+B,CAAA;AACjC,CAAC,EANW,aAAa,6BAAb,aAAa,QAMxB;AAEY,QAAA,OAAO,GAAG,IAAI,qBAAY,EAAE,CAAA"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@starbemtech/star-db-query-builder",
|
|
3
|
-
"version": "1.0.
|
|
3
|
+
"version": "1.0.38",
|
|
4
4
|
"description": "A query builder to be used with mysql or postgres",
|
|
5
5
|
"author": "Julio Sousa <julio.sousa@starbem.app>",
|
|
6
6
|
"main": "./dist/index.js",
|
|
@@ -50,7 +50,6 @@
|
|
|
50
50
|
"typescript": "^5.8.2"
|
|
51
51
|
},
|
|
52
52
|
"dependencies": {
|
|
53
|
-
"@starbemtech/star-db-query-builder": "link:",
|
|
54
53
|
"mysql2": "^3.13.0",
|
|
55
54
|
"pg": "^8.13.3",
|
|
56
55
|
"promise-retry": "^2.0.1",
|
|
@@ -1,21 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.getByUserAndSubscription = void 0;
|
|
4
|
-
const utils_1 = require("../../default/utils");
|
|
5
|
-
const getByUserAndSubscription = async ({ tableName, dbClient, select, where, }) => {
|
|
6
|
-
if (!tableName)
|
|
7
|
-
throw new Error('Table name is required');
|
|
8
|
-
if (!dbClient)
|
|
9
|
-
throw new Error('DB client is required');
|
|
10
|
-
const fields = (0, utils_1.createSelectFields)(select, dbClient.clientType);
|
|
11
|
-
const [whereClause, params] = (0, utils_1.createWhereClause)(where, 1, dbClient.clientType);
|
|
12
|
-
const rows = await dbClient.query(`SELECT
|
|
13
|
-
${fields}
|
|
14
|
-
FROM payments.plan_association_users pa
|
|
15
|
-
LEFT JOIN payments.plans ON pa.plan_id = plans.id
|
|
16
|
-
${whereClause}
|
|
17
|
-
AND pa.status IN ('active', 'cancelation_requested', 'blocked')`, params);
|
|
18
|
-
return rows || null;
|
|
19
|
-
};
|
|
20
|
-
exports.getByUserAndSubscription = getByUserAndSubscription;
|
|
21
|
-
//# sourceMappingURL=index.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../src/services/payment/index.ts"],"names":[],"mappings":";;;AAAA,+CAA2E;AAGpE,MAAM,wBAAwB,GAAG,KAAK,EAAK,EAChD,SAAS,EACT,QAAQ,EACR,MAAM,EACN,KAAK,GACU,EAAqB,EAAE;IACtC,IAAI,CAAC,SAAS;QAAE,MAAM,IAAI,KAAK,CAAC,wBAAwB,CAAC,CAAA;IACzD,IAAI,CAAC,QAAQ;QAAE,MAAM,IAAI,KAAK,CAAC,uBAAuB,CAAC,CAAA;IAEvD,MAAM,MAAM,GAAG,IAAA,0BAAkB,EAAC,MAAM,EAAE,QAAQ,CAAC,UAAU,CAAC,CAAA;IAC9D,MAAM,CAAC,WAAW,EAAE,MAAM,CAAC,GAAG,IAAA,yBAAiB,EAC7C,KAAK,EACL,CAAC,EACD,QAAQ,CAAC,UAAU,CACpB,CAAA;IAED,MAAM,IAAI,GAAG,MAAM,QAAQ,CAAC,KAAK,CAC/B;UACM,MAAM;;;UAGN,WAAW;wEACmD,EACpE,MAAM,CACP,CAAA;IAED,OAAO,IAAI,IAAI,IAAI,CAAA;AACrB,CAAC,CAAA;AA3BY,QAAA,wBAAwB,4BA2BpC"}
|