@event-driven-io/dumbo 0.13.0-beta.32 → 0.13.0-beta.34
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/dist/{chunk-4SM4JJJZ.js → chunk-33P5766L.js} +2 -2
- package/dist/{chunk-GVR3PSDL.cjs → chunk-4MMMEDQ7.cjs} +180 -85
- package/dist/chunk-4MMMEDQ7.cjs.map +1 -0
- package/dist/{chunk-CMHMR5VO.js → chunk-6HAHSSPW.js} +158 -168
- package/dist/chunk-6HAHSSPW.js.map +1 -0
- package/dist/{chunk-UA542GT3.cjs → chunk-GNH5XC6D.cjs} +43 -43
- package/dist/{chunk-UA542GT3.cjs.map → chunk-GNH5XC6D.cjs.map} +1 -1
- package/dist/{chunk-JKE6SULM.js → chunk-H2JBS7HM.js} +163 -68
- package/dist/chunk-H2JBS7HM.js.map +1 -0
- package/dist/{chunk-J2S3DPDR.cjs → chunk-JIZGCEPE.cjs} +216 -226
- package/dist/chunk-JIZGCEPE.cjs.map +1 -0
- package/dist/{chunk-MOPKHYYU.cjs → chunk-NJI6PJFZ.cjs} +6 -6
- package/dist/{chunk-MOPKHYYU.cjs.map → chunk-NJI6PJFZ.cjs.map} +1 -1
- package/dist/{chunk-HZM7GDOT.cjs → chunk-RQ3KKMTP.cjs} +4 -4
- package/dist/{chunk-HZM7GDOT.cjs.map → chunk-RQ3KKMTP.cjs.map} +1 -1
- package/dist/{chunk-WLWELSA2.js → chunk-UK7MXVS2.js} +2 -2
- package/dist/{chunk-RA2L3FQW.js → chunk-Y5TD53QE.js} +2 -2
- package/dist/cloudflare.cjs +60 -60
- package/dist/cloudflare.js +3 -3
- package/dist/index.cjs +5 -5
- package/dist/index.js +3 -3
- package/dist/pg.cjs +37 -37
- package/dist/pg.js +3 -3
- package/dist/postgresql.cjs +4 -4
- package/dist/postgresql.js +3 -3
- package/dist/sqlite.cjs +4 -4
- package/dist/sqlite.d.cts +16 -15
- package/dist/sqlite.d.ts +16 -15
- package/dist/sqlite.js +3 -3
- package/dist/sqlite3.cjs +29 -29
- package/dist/sqlite3.js +3 -3
- package/package.json +15 -14
- package/dist/chunk-CMHMR5VO.js.map +0 -1
- package/dist/chunk-GVR3PSDL.cjs.map +0 -1
- package/dist/chunk-J2S3DPDR.cjs.map +0 -1
- package/dist/chunk-JKE6SULM.js.map +0 -1
- /package/dist/{chunk-4SM4JJJZ.js.map → chunk-33P5766L.js.map} +0 -0
- /package/dist/{chunk-WLWELSA2.js.map → chunk-UK7MXVS2.js.map} +0 -0
- /package/dist/{chunk-RA2L3FQW.js.map → chunk-Y5TD53QE.js.map} +0 -0
|
@@ -28,7 +28,7 @@
|
|
|
28
28
|
|
|
29
29
|
|
|
30
30
|
|
|
31
|
-
var
|
|
31
|
+
var _chunk4MMMEDQ7cjs = require('./chunk-4MMMEDQ7.cjs');
|
|
32
32
|
|
|
33
33
|
// src/storage/postgresql/core/errors/errorMapper.ts
|
|
34
34
|
var getPostgresErrorCode = (error) => {
|
|
@@ -40,10 +40,10 @@ var getPostgresErrorCode = (error) => {
|
|
|
40
40
|
var getErrorMessage = (error) => error instanceof Error ? error.message : void 0;
|
|
41
41
|
var asError = (error) => error instanceof Error ? error : void 0;
|
|
42
42
|
var mapPostgresError = (error) => {
|
|
43
|
-
if (
|
|
43
|
+
if (_chunk4MMMEDQ7cjs.DumboError.isInstanceOf(error)) return error;
|
|
44
44
|
const code = getPostgresErrorCode(error);
|
|
45
45
|
if (!code)
|
|
46
|
-
return new (0,
|
|
46
|
+
return new (0, _chunk4MMMEDQ7cjs.DumboError)({
|
|
47
47
|
errorCode: 500,
|
|
48
48
|
message: getErrorMessage(error),
|
|
49
49
|
innerError: asError(error)
|
|
@@ -53,61 +53,61 @@ var mapPostgresError = (error) => {
|
|
|
53
53
|
switch (code) {
|
|
54
54
|
// ── Class 23: Integrity Constraint Violations ──
|
|
55
55
|
case "23505":
|
|
56
|
-
return new (0,
|
|
56
|
+
return new (0, _chunk4MMMEDQ7cjs.UniqueConstraintError)(message, innerError);
|
|
57
57
|
case "23503":
|
|
58
|
-
return new (0,
|
|
58
|
+
return new (0, _chunk4MMMEDQ7cjs.ForeignKeyViolationError)(message, innerError);
|
|
59
59
|
case "23502":
|
|
60
|
-
return new (0,
|
|
60
|
+
return new (0, _chunk4MMMEDQ7cjs.NotNullViolationError)(message, innerError);
|
|
61
61
|
case "23514":
|
|
62
|
-
return new (0,
|
|
62
|
+
return new (0, _chunk4MMMEDQ7cjs.CheckViolationError)(message, innerError);
|
|
63
63
|
case "23P01":
|
|
64
|
-
return new (0,
|
|
64
|
+
return new (0, _chunk4MMMEDQ7cjs.ExclusionViolationError)(message, innerError);
|
|
65
65
|
// ── Class 40: Transaction Rollback ──
|
|
66
66
|
case "40001":
|
|
67
|
-
return new (0,
|
|
67
|
+
return new (0, _chunk4MMMEDQ7cjs.SerializationError)(message, innerError);
|
|
68
68
|
case "40P01":
|
|
69
|
-
return new (0,
|
|
69
|
+
return new (0, _chunk4MMMEDQ7cjs.DeadlockError)(message, innerError);
|
|
70
70
|
// ── Class 55: Object Not In Prerequisite State ──
|
|
71
71
|
case "55P03":
|
|
72
72
|
case "55006":
|
|
73
|
-
return new (0,
|
|
73
|
+
return new (0, _chunk4MMMEDQ7cjs.LockNotAvailableError)(message, innerError);
|
|
74
74
|
// ── Class 57: Operator Intervention ──
|
|
75
75
|
case "57014":
|
|
76
|
-
return new (0,
|
|
76
|
+
return new (0, _chunk4MMMEDQ7cjs.QueryCanceledError)(message, innerError);
|
|
77
77
|
case "57P01":
|
|
78
78
|
// admin shutdown
|
|
79
79
|
case "57P02":
|
|
80
|
-
return new (0,
|
|
80
|
+
return new (0, _chunk4MMMEDQ7cjs.AdminShutdownError)(message, innerError);
|
|
81
81
|
case "57P03":
|
|
82
82
|
// cannot connect now
|
|
83
83
|
case "57P05":
|
|
84
|
-
return new (0,
|
|
84
|
+
return new (0, _chunk4MMMEDQ7cjs.ConnectionError)(message, innerError);
|
|
85
85
|
}
|
|
86
86
|
const sqlClass = code.slice(0, 2);
|
|
87
87
|
switch (sqlClass) {
|
|
88
88
|
// ── Class 08: Connection Exception ──
|
|
89
89
|
case "08":
|
|
90
|
-
return new (0,
|
|
90
|
+
return new (0, _chunk4MMMEDQ7cjs.ConnectionError)(message, innerError);
|
|
91
91
|
// ── Class 22: Data Exception ──
|
|
92
92
|
case "22":
|
|
93
|
-
return new (0,
|
|
93
|
+
return new (0, _chunk4MMMEDQ7cjs.DataError)(message, innerError);
|
|
94
94
|
// ── Class 23: Integrity Constraint (fallback for unknown codes) ──
|
|
95
95
|
case "23":
|
|
96
|
-
return new (0,
|
|
96
|
+
return new (0, _chunk4MMMEDQ7cjs.IntegrityConstraintViolationError)(message, innerError);
|
|
97
97
|
// ── Class 42: Syntax Error or Access Rule Violation ──
|
|
98
98
|
case "42":
|
|
99
|
-
return new (0,
|
|
99
|
+
return new (0, _chunk4MMMEDQ7cjs.InvalidOperationError)(message, innerError);
|
|
100
100
|
// ── Class 53: Insufficient Resources ──
|
|
101
101
|
case "53":
|
|
102
|
-
return new (0,
|
|
102
|
+
return new (0, _chunk4MMMEDQ7cjs.InsufficientResourcesError)(message, innerError);
|
|
103
103
|
// ── Class 57: Operator Intervention (fallback) ──
|
|
104
104
|
case "57":
|
|
105
|
-
return new (0,
|
|
105
|
+
return new (0, _chunk4MMMEDQ7cjs.ConnectionError)(message, innerError);
|
|
106
106
|
// ── Class 58: System Error ──
|
|
107
107
|
case "58":
|
|
108
|
-
return new (0,
|
|
108
|
+
return new (0, _chunk4MMMEDQ7cjs.SystemError)(message, innerError);
|
|
109
109
|
}
|
|
110
|
-
return new (0,
|
|
110
|
+
return new (0, _chunk4MMMEDQ7cjs.DumboError)({
|
|
111
111
|
errorCode: 500,
|
|
112
112
|
message,
|
|
113
113
|
innerError
|
|
@@ -116,37 +116,37 @@ var mapPostgresError = (error) => {
|
|
|
116
116
|
|
|
117
117
|
// src/storage/postgresql/core/locks/advisoryLocks.ts
|
|
118
118
|
var tryAcquireAdvisoryLock = async (execute, options) => {
|
|
119
|
-
const timeoutMs = _nullishCoalesce(options.timeoutMs, () => (
|
|
119
|
+
const timeoutMs = _nullishCoalesce(options.timeoutMs, () => ( _chunk4MMMEDQ7cjs.defaultDatabaseLockOptions.timeoutMs));
|
|
120
120
|
const advisoryLock2 = options.mode === "Permanent" ? "pg_advisory_lock" : "pg_advisory_xact_lock";
|
|
121
121
|
try {
|
|
122
|
-
await
|
|
122
|
+
await _chunk4MMMEDQ7cjs.single.call(void 0,
|
|
123
123
|
execute.query(
|
|
124
|
-
|
|
124
|
+
_chunk4MMMEDQ7cjs.SQL`SELECT ${_chunk4MMMEDQ7cjs.SQL.plain(advisoryLock2)}(${options.lockId}) AS locked`,
|
|
125
125
|
{ timeoutMs }
|
|
126
126
|
)
|
|
127
127
|
);
|
|
128
128
|
return true;
|
|
129
129
|
} catch (error) {
|
|
130
|
-
if (error instanceof
|
|
131
|
-
errorType:
|
|
130
|
+
if (error instanceof _chunk4MMMEDQ7cjs.QueryCanceledError || _chunk4MMMEDQ7cjs.DumboError.isInstanceOf(error, {
|
|
131
|
+
errorType: _chunk4MMMEDQ7cjs.QueryCanceledError.ErrorType
|
|
132
132
|
}))
|
|
133
133
|
return false;
|
|
134
134
|
throw error;
|
|
135
135
|
}
|
|
136
136
|
};
|
|
137
137
|
var releaseAdvisoryLock = async (execute, options) => {
|
|
138
|
-
const timeoutMs = _nullishCoalesce(options.timeoutMs, () => (
|
|
138
|
+
const timeoutMs = _nullishCoalesce(options.timeoutMs, () => ( _chunk4MMMEDQ7cjs.defaultDatabaseLockOptions.timeoutMs));
|
|
139
139
|
try {
|
|
140
|
-
await
|
|
140
|
+
await _chunk4MMMEDQ7cjs.single.call(void 0,
|
|
141
141
|
execute.query(
|
|
142
|
-
|
|
142
|
+
_chunk4MMMEDQ7cjs.SQL`SELECT pg_advisory_unlock(${options.lockId}) AS locked`,
|
|
143
143
|
{ timeoutMs }
|
|
144
144
|
)
|
|
145
145
|
);
|
|
146
146
|
return true;
|
|
147
147
|
} catch (error) {
|
|
148
|
-
if (error instanceof
|
|
149
|
-
errorType:
|
|
148
|
+
if (error instanceof _chunk4MMMEDQ7cjs.QueryCanceledError || _chunk4MMMEDQ7cjs.DumboError.isInstanceOf(error, {
|
|
149
|
+
errorType: _chunk4MMMEDQ7cjs.QueryCanceledError.ErrorType
|
|
150
150
|
}))
|
|
151
151
|
return false;
|
|
152
152
|
throw error;
|
|
@@ -203,10 +203,10 @@ var DefaultPostgreSQLMigratorOptions = {
|
|
|
203
203
|
databaseLock: AdvisoryLock
|
|
204
204
|
}
|
|
205
205
|
};
|
|
206
|
-
|
|
206
|
+
_chunk4MMMEDQ7cjs.registerDefaultMigratorOptions.call(void 0, "PostgreSQL", DefaultPostgreSQLMigratorOptions);
|
|
207
207
|
|
|
208
208
|
// src/storage/postgresql/core/sql/processors/arrayProcessors.ts
|
|
209
|
-
var PostgreSQLArrayProcessor =
|
|
209
|
+
var PostgreSQLArrayProcessor = _chunk4MMMEDQ7cjs.SQLProcessor.call(void 0, {
|
|
210
210
|
canHandle: "SQL_ARRAY",
|
|
211
211
|
handle: (token, { builder, mapper, serializer }) => {
|
|
212
212
|
if (token.value.length === 0) {
|
|
@@ -222,7 +222,7 @@ var PostgreSQLArrayProcessor = _chunkGVR3PSDLcjs.SQLProcessor.call(void 0, {
|
|
|
222
222
|
}
|
|
223
223
|
}
|
|
224
224
|
});
|
|
225
|
-
var PostgreSQLExpandSQLInProcessor =
|
|
225
|
+
var PostgreSQLExpandSQLInProcessor = _chunk4MMMEDQ7cjs.SQLProcessor.call(void 0,
|
|
226
226
|
{
|
|
227
227
|
canHandle: "SQL_IN",
|
|
228
228
|
handle: (token, context) => {
|
|
@@ -235,7 +235,7 @@ var PostgreSQLExpandSQLInProcessor = _chunkGVR3PSDLcjs.SQLProcessor.call(void 0,
|
|
|
235
235
|
builder.addSQL(
|
|
236
236
|
mapper.mapValue(column.value, context.serializer)
|
|
237
237
|
);
|
|
238
|
-
const arrayProcessor = processorsRegistry.get(
|
|
238
|
+
const arrayProcessor = processorsRegistry.get(_chunk4MMMEDQ7cjs.SQLArray.type);
|
|
239
239
|
if (!arrayProcessor) {
|
|
240
240
|
throw new Error(
|
|
241
241
|
"No sql processor registered for an array. Cannot expand IN statement"
|
|
@@ -294,7 +294,7 @@ var mapColumnType = (token, { builder }) => {
|
|
|
294
294
|
}
|
|
295
295
|
builder.addSQL(columnSQL);
|
|
296
296
|
};
|
|
297
|
-
var postgreSQLColumnProcessors =
|
|
297
|
+
var postgreSQLColumnProcessors = _chunk4MMMEDQ7cjs.mapDefaultSQLColumnProcessors.call(void 0, mapColumnType);
|
|
298
298
|
|
|
299
299
|
// src/storage/postgresql/core/sql/formatter/reserved.ts
|
|
300
300
|
var reservedMap = {
|
|
@@ -447,19 +447,19 @@ var reservedMap = {
|
|
|
447
447
|
var reserved_default = reservedMap;
|
|
448
448
|
|
|
449
449
|
// src/storage/postgresql/core/sql/formatter/index.ts
|
|
450
|
-
var postgreSQLProcessorsRegistry =
|
|
451
|
-
from:
|
|
450
|
+
var postgreSQLProcessorsRegistry = _chunk4MMMEDQ7cjs.SQLProcessorsRegistry.call(void 0, {
|
|
451
|
+
from: _chunk4MMMEDQ7cjs.defaultProcessorsRegistry
|
|
452
452
|
}).register(postgreSQLColumnProcessors).register(PostgreSQLArrayProcessor, PostgreSQLExpandSQLInProcessor);
|
|
453
|
-
var pgFormatter =
|
|
453
|
+
var pgFormatter = _chunk4MMMEDQ7cjs.SQLFormatter.call(void 0, {
|
|
454
454
|
processorsRegistry: postgreSQLProcessorsRegistry,
|
|
455
455
|
valueMapper: {
|
|
456
456
|
mapDate: (value) => value.toISOString().replace("T", " ").replace("Z", "+00"),
|
|
457
457
|
mapPlaceholder: (index) => `$${index + 1}`,
|
|
458
|
-
mapIdentifier: (value) =>
|
|
458
|
+
mapIdentifier: (value) => _chunk4MMMEDQ7cjs.mapSQLIdentifier.call(void 0, value, { reservedWords: reserved_default }),
|
|
459
459
|
mapArray: (values) => values
|
|
460
460
|
}
|
|
461
461
|
});
|
|
462
|
-
|
|
462
|
+
_chunk4MMMEDQ7cjs.registerFormatter.call(void 0, "PostgreSQL", pgFormatter);
|
|
463
463
|
|
|
464
464
|
// src/storage/postgresql/core/index.ts
|
|
465
465
|
var PostgreSQLDatabaseName = "PostgreSQL";
|
|
@@ -478,4 +478,4 @@ var PostgreSQLDatabaseName = "PostgreSQL";
|
|
|
478
478
|
|
|
479
479
|
|
|
480
480
|
exports.mapPostgresError = mapPostgresError; exports.tryAcquireAdvisoryLock = tryAcquireAdvisoryLock; exports.releaseAdvisoryLock = releaseAdvisoryLock; exports.acquireAdvisoryLock = acquireAdvisoryLock; exports.AdvisoryLock = AdvisoryLock; exports.advisoryLock = advisoryLock; exports.DefaultPostgreSQLMigratorOptions = DefaultPostgreSQLMigratorOptions; exports.PostgreSQLArrayProcessor = PostgreSQLArrayProcessor; exports.PostgreSQLExpandSQLInProcessor = PostgreSQLExpandSQLInProcessor; exports.postgreSQLColumnProcessors = postgreSQLColumnProcessors; exports.pgFormatter = pgFormatter; exports.PostgreSQLDatabaseName = PostgreSQLDatabaseName;
|
|
481
|
-
//# sourceMappingURL=chunk-
|
|
481
|
+
//# sourceMappingURL=chunk-GNH5XC6D.cjs.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["/home/runner/work/Pongo/Pongo/src/packages/dumbo/dist/chunk-UA542GT3.cjs","../src/storage/postgresql/core/errors/errorMapper.ts","../src/storage/postgresql/core/locks/advisoryLocks.ts","../src/storage/postgresql/core/schema/migrations.ts","../src/storage/postgresql/core/sql/processors/arrayProcessors.ts","../src/storage/postgresql/core/sql/processors/columProcessors.ts","../src/storage/postgresql/core/sql/formatter/reserved.ts","../src/storage/postgresql/core/sql/formatter/index.ts","../src/storage/postgresql/core/index.ts"],"names":["advisoryLock"],"mappings":"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;AACH,EAAA;AACA,EAAA;AACC,EAAA;AACI,EAAA;AACK,EAAA;AACX,EAAA;AACC,EAAA;AACD,EAAA;AACC,EAAA;AACC,EAAA;AACG,EAAA;AACA,EAAA;AACD,EAAA;AACA,EAAA;AACJ,EAAA;AACA,EAAA;AACI,EAAA;AACH,EAAA;AACC,EAAA;AACF,EAAA;AACI,EAAA;AACD,EAAA;AACH,EAAA;AACD,EAAA;AACE,EAAA;AACA,EAAA;AACF,EAAA;AACG,EAAA;AACA,EAAA;AACG,EAAA;AACA,EAAA;AACC,EAAA;AACF,EAAA;AACA,EAAA;AACA,EAAA;AACJ,EAAA;AACM,EAAA;AACF,EAAA;AACG,EAAA;AACD,EAAA;AACH,EAAA;AACC,EAAA;AACF,EAAA;AACC,EAAA;AACM,EAAA;AACL,EAAA;AACH,EAAA;AACG,EAAA;AACD,EAAA;AACD,EAAA;AACF,EAAA;AACC,EAAA;AACG,EAAA;AACA,EAAA;AACH,EAAA;AACF,EAAA;AACC,EAAA;AACK,EAAA;AACJ,EAAA;AACW,EAAA;AACV,EAAA;AACC,EAAA;AACF,EAAA;AACC,EAAA;AACE,EAAA;AACD,EAAA;AACF,EAAA;AACC,EAAA;AACD,EAAA;AACG,EAAA;AACX;AAEO;ANuSY;AACA;AOlbb;AACE,EAAA;AAEI;AAGsB;AAChC,EAAA;AACa,EAAA;AACD,IAAA;AAEV,IAAA;AACe,IAAA;AAEJ,IAAA;AACb,EAAA;AACD;AAEiB;AP8aC;AACA;AQtcN;ARwcM;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA","file":"/home/runner/work/Pongo/Pongo/src/packages/dumbo/dist/chunk-UA542GT3.cjs","sourcesContent":[null,"import {\n AdminShutdownError,\n CheckViolationError,\n ConnectionError,\n DataError,\n DeadlockError,\n DumboError,\n ExclusionViolationError,\n ForeignKeyViolationError,\n InsufficientResourcesError,\n IntegrityConstraintViolationError,\n InvalidOperationError,\n LockNotAvailableError,\n NotNullViolationError,\n QueryCanceledError,\n SerializationError,\n SystemError,\n UniqueConstraintError,\n} from '../../../../core/errors';\n\n/**\n * Checks whether the given error looks like a PostgreSQL DatabaseError\n * from the `pg` driver (has a string `code` property with a SQLSTATE value).\n */\nconst getPostgresErrorCode = (error: unknown): string | undefined => {\n if (\n error instanceof Error &&\n 'code' in error &&\n typeof (error as Record<string, unknown>).code === 'string'\n ) {\n return (error as Record<string, unknown>).code as string;\n }\n return undefined;\n};\n\nconst getErrorMessage = (error: unknown): string | undefined =>\n error instanceof Error ? error.message : undefined;\n\nconst asError = (error: unknown): Error | undefined =>\n error instanceof Error ? error : undefined;\n\n/**\n * Maps a PostgreSQL error (from the `pg` driver) to a typed DumboError\n * based on the SQLSTATE code.\n *\n * SQLSTATE reference: https://www.postgresql.org/docs/current/errcodes-appendix.html\n * Transient classification based on Npgsql's PostgresException.IsTransient.\n *\n * Falls back to a generic DumboError (500) if the error is not a recognized PostgreSQL error.\n */\nexport const mapPostgresError = (error: unknown): DumboError => {\n if (DumboError.isInstanceOf<DumboError>(error)) return error;\n\n const code = getPostgresErrorCode(error);\n if (!code)\n return new DumboError({\n errorCode: 500,\n message: getErrorMessage(error),\n innerError: asError(error),\n });\n\n const message = getErrorMessage(error);\n const innerError = asError(error);\n\n // Exact SQLSTATE matches first, then class prefix fallbacks\n\n switch (code) {\n // ── Class 23: Integrity Constraint Violations ──\n case '23505':\n return new UniqueConstraintError(message, innerError);\n case '23503':\n return new ForeignKeyViolationError(message, innerError);\n case '23502':\n return new NotNullViolationError(message, innerError);\n case '23514':\n return new CheckViolationError(message, innerError);\n case '23P01':\n return new ExclusionViolationError(message, innerError);\n\n // ── Class 40: Transaction Rollback ──\n case '40001':\n return new SerializationError(message, innerError);\n case '40P01':\n return new DeadlockError(message, innerError);\n\n // ── Class 55: Object Not In Prerequisite State ──\n case '55P03':\n case '55006':\n return new LockNotAvailableError(message, innerError);\n\n // ── Class 57: Operator Intervention ──\n case '57014': // query_canceled (e.g. statement timeout)\n return new QueryCanceledError(message, innerError);\n case '57P01': // admin shutdown\n case '57P02': // crash shutdown\n return new AdminShutdownError(message, innerError);\n case '57P03': // cannot connect now\n case '57P05': // idle session timeout\n return new ConnectionError(message, innerError);\n }\n\n // Class prefix fallbacks (first 2 characters of the SQLSTATE code)\n const sqlClass = code.slice(0, 2);\n\n switch (sqlClass) {\n // ── Class 08: Connection Exception ──\n case '08':\n return new ConnectionError(message, innerError);\n\n // ── Class 22: Data Exception ──\n case '22':\n return new DataError(message, innerError);\n\n // ── Class 23: Integrity Constraint (fallback for unknown codes) ──\n case '23':\n return new IntegrityConstraintViolationError(message, innerError);\n\n // ── Class 42: Syntax Error or Access Rule Violation ──\n case '42':\n return new InvalidOperationError(message, innerError);\n\n // ── Class 53: Insufficient Resources ──\n case '53':\n return new InsufficientResourcesError(message, innerError);\n\n // ── Class 57: Operator Intervention (fallback) ──\n case '57':\n return new ConnectionError(message, innerError);\n\n // ── Class 58: System Error ──\n case '58':\n return new SystemError(message, innerError);\n }\n\n return new DumboError({\n errorCode: 500,\n message,\n innerError,\n });\n};\n","import {\n defaultDatabaseLockOptions,\n single,\n SQL,\n type AcquireDatabaseLockMode,\n type AcquireDatabaseLockOptions,\n type DatabaseLock,\n type DatabaseLockOptions,\n type ReleaseDatabaseLockOptions,\n type SQLExecutor,\n} from '../../../../core';\nimport { DumboError, QueryCanceledError } from '../../../../core/errors';\n\nexport const tryAcquireAdvisoryLock = async (\n execute: SQLExecutor,\n options: AcquireDatabaseLockOptions,\n): Promise<boolean> => {\n const timeoutMs = options.timeoutMs ?? defaultDatabaseLockOptions.timeoutMs;\n\n const advisoryLock =\n options.mode === 'Permanent' ? 'pg_advisory_lock' : 'pg_advisory_xact_lock';\n\n try {\n await single(\n execute.query<{ locked: boolean }>(\n SQL`SELECT ${SQL.plain(advisoryLock)}(${options.lockId}) AS locked`,\n { timeoutMs },\n ),\n );\n return true;\n } catch (error) {\n if (\n error instanceof QueryCanceledError ||\n DumboError.isInstanceOf(error, {\n errorType: QueryCanceledError.ErrorType,\n })\n )\n return false;\n\n throw error;\n }\n};\n\nexport const releaseAdvisoryLock = async (\n execute: SQLExecutor,\n options: ReleaseDatabaseLockOptions,\n): Promise<boolean> => {\n const timeoutMs = options.timeoutMs ?? defaultDatabaseLockOptions.timeoutMs;\n\n try {\n await single(\n execute.query<{ locked: boolean }>(\n SQL`SELECT pg_advisory_unlock(${options.lockId}) AS locked`,\n { timeoutMs },\n ),\n );\n return true;\n } catch (error) {\n if (\n error instanceof QueryCanceledError ||\n DumboError.isInstanceOf(error, {\n errorType: QueryCanceledError.ErrorType,\n })\n )\n return false;\n\n throw error;\n }\n};\n\nexport const acquireAdvisoryLock = async (\n execute: SQLExecutor,\n options: AcquireDatabaseLockOptions,\n) => {\n const lockAcquired = await tryAcquireAdvisoryLock(execute, options);\n if (!lockAcquired) {\n throw new Error(\n 'Failed to acquire advisory lock within the specified timeout. Migration aborted.',\n );\n }\n};\n\nexport const AdvisoryLock: DatabaseLock = {\n acquire: acquireAdvisoryLock,\n tryAcquire: tryAcquireAdvisoryLock,\n release: releaseAdvisoryLock,\n withAcquire: async <Result>(\n execute: SQLExecutor,\n handle: () => Promise<Result>,\n options: AcquireDatabaseLockOptions,\n ) => {\n await acquireAdvisoryLock(execute, options);\n try {\n return await handle();\n } finally {\n if (options.mode === 'Permanent')\n await releaseAdvisoryLock(execute, options);\n }\n },\n};\n\nexport const advisoryLock = (\n execute: SQLExecutor,\n options: DatabaseLockOptions,\n) => ({\n acquire: (acquireOptions?: { mode: AcquireDatabaseLockMode }) =>\n acquireAdvisoryLock(execute, {\n ...options,\n ...(acquireOptions ?? {}),\n }),\n tryAcquire: (acquireOptions?: { mode: AcquireDatabaseLockMode }) =>\n tryAcquireAdvisoryLock(execute, {\n ...options,\n ...(acquireOptions ?? {}),\n }),\n release: () => releaseAdvisoryLock(execute, options),\n withAcquire: async <Result>(\n handle: () => Promise<Result>,\n acquireOptions?: { mode: AcquireDatabaseLockMode },\n ) => {\n await acquireAdvisoryLock(execute, {\n ...options,\n ...(acquireOptions ?? {}),\n });\n try {\n return await handle();\n } finally {\n await releaseAdvisoryLock(execute, options);\n }\n },\n});\n","import {\n type MigratorOptions,\n registerDefaultMigratorOptions,\n} from '../../../../core';\nimport { AdvisoryLock } from '../locks';\n\nexport const DefaultPostgreSQLMigratorOptions: MigratorOptions = {\n lock: {\n databaseLock: AdvisoryLock,\n },\n};\n\nregisterDefaultMigratorOptions('PostgreSQL', DefaultPostgreSQLMigratorOptions);\n","import type { SQLIn } from '../../../../../core';\nimport {\n SQLArray,\n SQLProcessor,\n type SQLProcessorContext,\n} from '../../../../../core';\n\nexport const PostgreSQLArrayProcessor: SQLProcessor<SQLArray> = SQLProcessor({\n canHandle: 'SQL_ARRAY',\n handle: (\n token: SQLArray,\n { builder, mapper, serializer }: SQLProcessorContext,\n ) => {\n if (token.value.length === 0) {\n throw new Error(\n \"Empty arrays are not supported. If you're using it with SELECT IN statement Use SQL.in(column, array) helper instead.\",\n );\n }\n const mappedValue = mapper.mapValue(token.value, serializer) as unknown[];\n\n if (token.mode === 'params') {\n builder.addParams(mappedValue);\n } else {\n builder.addParam(mappedValue);\n }\n },\n});\n\nexport const PostgreSQLExpandSQLInProcessor: SQLProcessor<SQLIn> = SQLProcessor(\n {\n canHandle: 'SQL_IN',\n handle: (token: SQLIn, context: SQLProcessorContext) => {\n const { builder, mapper, processorsRegistry } = context;\n const { values: inValues, column, mode } = token;\n\n if (inValues.value.length === 0) {\n builder.addParam(mapper.mapValue(false, context.serializer));\n return;\n }\n\n builder.addSQL(\n mapper.mapValue(column.value, context.serializer) as string,\n );\n const arrayProcessor = processorsRegistry.get(SQLArray.type);\n\n if (!arrayProcessor) {\n throw new Error(\n 'No sql processor registered for an array. Cannot expand IN statement',\n );\n }\n\n if (mode === 'params') {\n builder.addSQL(` IN (`);\n const expandedArray = { ...inValues, mode: 'params' as const };\n arrayProcessor.handle(expandedArray, context);\n builder.addSQL(`)`);\n } else {\n builder.addSQL(` = ANY (`);\n arrayProcessor.handle(inValues, context);\n builder.addSQL(`)`);\n }\n },\n },\n);\n","import {\n mapDefaultSQLColumnProcessors,\n type DefaultSQLColumnProcessors,\n type DefaultSQLColumnToken,\n type SQLProcessorContext,\n} from '../../../../../core';\n\nconst mapColumnType = (\n token: DefaultSQLColumnToken,\n { builder }: SQLProcessorContext,\n): void => {\n let columnSQL: string;\n const { sqlTokenType } = token;\n switch (sqlTokenType) {\n case 'SQL_COLUMN_AUTO_INCREMENT':\n columnSQL = `${token.bigint ? 'BIGSERIAL' : 'SERIAL'} ${token.primaryKey ? 'PRIMARY KEY' : ''}`;\n break;\n case 'SQL_COLUMN_BIGINT':\n columnSQL = 'BIGINT';\n break;\n case 'SQL_COLUMN_SERIAL':\n columnSQL = 'SERIAL';\n break;\n case 'SQL_COLUMN_INTEGER':\n columnSQL = 'INTEGER';\n break;\n case 'SQL_COLUMN_JSONB':\n columnSQL = 'JSONB';\n break;\n case 'SQL_COLUMN_BIGSERIAL':\n columnSQL = 'BIGSERIAL';\n break;\n case 'SQL_COLUMN_TIMESTAMP':\n columnSQL = 'TIMESTAMP';\n break;\n case 'SQL_COLUMN_TIMESTAMPTZ':\n columnSQL = 'TIMESTAMPTZ';\n break;\n case 'SQL_COLUMN_VARCHAR':\n columnSQL = `VARCHAR ${Number.isNaN(token.length) ? '' : `(${token.length})`}`;\n break;\n default: {\n const exhaustiveCheck: never = sqlTokenType;\n // eslint-disable-next-line @typescript-eslint/restrict-template-expressions\n throw new Error(`Unknown column type: ${exhaustiveCheck}`);\n }\n }\n builder.addSQL(columnSQL);\n};\n\nexport const postgreSQLColumnProcessors: DefaultSQLColumnProcessors =\n mapDefaultSQLColumnProcessors(mapColumnType);\n","// Ported from: https://github.com/datalanche/node-pg-format/blob/master/lib/reserved.js\n//\n// PostgreSQL reserved words\n//\nconst reservedMap: { [key: string]: boolean } = {\n AES128: true,\n AES256: true,\n ALL: true,\n ALLOWOVERWRITE: true,\n ANALYSE: true,\n ANALYZE: true,\n AND: true,\n ANY: true,\n ARRAY: true,\n AS: true,\n ASC: true,\n AUTHORIZATION: true,\n BACKUP: true,\n BETWEEN: true,\n BINARY: true,\n BLANKSASNULL: true,\n BOTH: true,\n BYTEDICT: true,\n CASE: true,\n CAST: true,\n CHECK: true,\n COLLATE: true,\n COLUMN: true,\n CONSTRAINT: true,\n CREATE: true,\n CREDENTIALS: true,\n CROSS: true,\n CURRENT_DATE: true,\n CURRENT_TIME: true,\n CURRENT_TIMESTAMP: true,\n CURRENT_USER: true,\n CURRENT_USER_ID: true,\n DEFAULT: true,\n DEFERRABLE: true,\n DEFLATE: true,\n DEFRAG: true,\n DELTA: true,\n DELTA32K: true,\n DESC: true,\n DISABLE: true,\n DISTINCT: true,\n DO: true,\n ELSE: true,\n EMPTYASNULL: true,\n ENABLE: true,\n ENCODE: true,\n ENCRYPT: true,\n ENCRYPTION: true,\n END: true,\n EXCEPT: true,\n EXPLICIT: true,\n FALSE: true,\n FOR: true,\n FOREIGN: true,\n FREEZE: true,\n FROM: true,\n FULL: true,\n GLOBALDICT256: true,\n GLOBALDICT64K: true,\n GRANT: true,\n GROUP: true,\n GZIP: true,\n HAVING: true,\n IDENTITY: true,\n IGNORE: true,\n ILIKE: true,\n IN: true,\n INITIALLY: true,\n INNER: true,\n INTERSECT: true,\n INTO: true,\n IS: true,\n ISNULL: true,\n JOIN: true,\n LEADING: true,\n LEFT: true,\n LIKE: true,\n LIMIT: true,\n LOCALTIME: true,\n LOCALTIMESTAMP: true,\n LUN: true,\n LUNS: true,\n LZO: true,\n LZOP: true,\n MINUS: true,\n MOSTLY13: true,\n MOSTLY32: true,\n MOSTLY8: true,\n NATURAL: true,\n NEW: true,\n NOT: true,\n NOTNULL: true,\n NULL: true,\n NULLS: true,\n OFF: true,\n OFFLINE: true,\n OFFSET: true,\n OLD: true,\n ON: true,\n ONLY: true,\n OPEN: true,\n OR: true,\n ORDER: true,\n OUTER: true,\n OVERLAPS: true,\n PARALLEL: true,\n PARTITION: true,\n PERCENT: true,\n PLACING: true,\n PRIMARY: true,\n RAW: true,\n READRATIO: true,\n RECOVER: true,\n REFERENCES: true,\n REJECTLOG: true,\n RESORT: true,\n RESTORE: true,\n RIGHT: true,\n SELECT: true,\n SESSION_USER: true,\n SIMILAR: true,\n SOME: true,\n SYSDATE: true,\n SYSTEM: true,\n TABLE: true,\n TAG: true,\n TDES: true,\n TEXT255: true,\n TEXT32K: true,\n THEN: true,\n TO: true,\n TOP: true,\n TRAILING: true,\n TRUE: true,\n TRUNCATECOLUMNS: true,\n UNION: true,\n UNIQUE: true,\n USER: true,\n USING: true,\n VERBOSE: true,\n WALLET: true,\n WHEN: true,\n WHERE: true,\n WITH: true,\n WITHOUT: true,\n};\n\nexport default reservedMap;\n","import {\n defaultProcessorsRegistry,\n mapSQLIdentifier,\n registerFormatter,\n SQLFormatter,\n SQLProcessorsRegistry,\n} from '../../../../../core';\nimport {\n PostgreSQLArrayProcessor,\n postgreSQLColumnProcessors,\n PostgreSQLExpandSQLInProcessor,\n} from '../processors';\nimport reservedMap from './reserved';\n\nconst postgreSQLProcessorsRegistry = SQLProcessorsRegistry({\n from: defaultProcessorsRegistry,\n})\n .register(postgreSQLColumnProcessors)\n .register(PostgreSQLArrayProcessor, PostgreSQLExpandSQLInProcessor);\n\nconst pgFormatter: SQLFormatter = SQLFormatter({\n processorsRegistry: postgreSQLProcessorsRegistry,\n valueMapper: {\n mapDate: (value: Date): unknown =>\n value.toISOString().replace('T', ' ').replace('Z', '+00'),\n mapPlaceholder: (index: number): string => `$${index + 1}`,\n mapIdentifier: (value: string): string =>\n mapSQLIdentifier(value, { reservedWords: reservedMap }),\n mapArray: (values: unknown[]): unknown[] => values,\n },\n});\n\nregisterFormatter('PostgreSQL', pgFormatter);\n\n// Export the original functions if needed\nexport { pgFormatter };\n","import type { DatabaseDriverType } from '../../../core';\n\nexport * from './connections';\nexport * from './errors';\nexport * from './locks';\nexport * from './schema';\nexport * from './sql';\n\nexport type PostgreSQLDatabaseName = 'PostgreSQL';\nexport const PostgreSQLDatabaseName = 'PostgreSQL';\n\nexport type PostgreSQLDriverType<DriverName extends string = string> =\n DatabaseDriverType<PostgreSQLDatabaseName, DriverName>;\n"]}
|
|
1
|
+
{"version":3,"sources":["/home/runner/work/Pongo/Pongo/src/packages/dumbo/dist/chunk-GNH5XC6D.cjs","../src/storage/postgresql/core/errors/errorMapper.ts","../src/storage/postgresql/core/locks/advisoryLocks.ts","../src/storage/postgresql/core/schema/migrations.ts","../src/storage/postgresql/core/sql/processors/arrayProcessors.ts","../src/storage/postgresql/core/sql/processors/columProcessors.ts","../src/storage/postgresql/core/sql/formatter/reserved.ts","../src/storage/postgresql/core/sql/formatter/index.ts","../src/storage/postgresql/core/index.ts"],"names":["advisoryLock"],"mappings":"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;AACH,EAAA;AACA,EAAA;AACC,EAAA;AACI,EAAA;AACK,EAAA;AACX,EAAA;AACC,EAAA;AACD,EAAA;AACC,EAAA;AACC,EAAA;AACG,EAAA;AACA,EAAA;AACD,EAAA;AACA,EAAA;AACJ,EAAA;AACA,EAAA;AACI,EAAA;AACH,EAAA;AACC,EAAA;AACF,EAAA;AACI,EAAA;AACD,EAAA;AACH,EAAA;AACD,EAAA;AACE,EAAA;AACA,EAAA;AACF,EAAA;AACG,EAAA;AACA,EAAA;AACG,EAAA;AACA,EAAA;AACC,EAAA;AACF,EAAA;AACA,EAAA;AACA,EAAA;AACJ,EAAA;AACM,EAAA;AACF,EAAA;AACG,EAAA;AACD,EAAA;AACH,EAAA;AACC,EAAA;AACF,EAAA;AACC,EAAA;AACM,EAAA;AACL,EAAA;AACH,EAAA;AACG,EAAA;AACD,EAAA;AACD,EAAA;AACF,EAAA;AACC,EAAA;AACG,EAAA;AACA,EAAA;AACH,EAAA;AACF,EAAA;AACC,EAAA;AACK,EAAA;AACJ,EAAA;AACW,EAAA;AACV,EAAA;AACC,EAAA;AACF,EAAA;AACC,EAAA;AACE,EAAA;AACD,EAAA;AACF,EAAA;AACC,EAAA;AACD,EAAA;AACG,EAAA;AACX;AAEO;ANuSY;AACA;AOlbb;AACE,EAAA;AAEI;AAGsB;AAChC,EAAA;AACa,EAAA;AACD,IAAA;AAEV,IAAA;AACe,IAAA;AAEJ,IAAA;AACb,EAAA;AACD;AAEiB;AP8aC;AACA;AQtcN;ARwcM;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA","file":"/home/runner/work/Pongo/Pongo/src/packages/dumbo/dist/chunk-GNH5XC6D.cjs","sourcesContent":[null,"import {\n AdminShutdownError,\n CheckViolationError,\n ConnectionError,\n DataError,\n DeadlockError,\n DumboError,\n ExclusionViolationError,\n ForeignKeyViolationError,\n InsufficientResourcesError,\n IntegrityConstraintViolationError,\n InvalidOperationError,\n LockNotAvailableError,\n NotNullViolationError,\n QueryCanceledError,\n SerializationError,\n SystemError,\n UniqueConstraintError,\n} from '../../../../core/errors';\n\n/**\n * Checks whether the given error looks like a PostgreSQL DatabaseError\n * from the `pg` driver (has a string `code` property with a SQLSTATE value).\n */\nconst getPostgresErrorCode = (error: unknown): string | undefined => {\n if (\n error instanceof Error &&\n 'code' in error &&\n typeof (error as Record<string, unknown>).code === 'string'\n ) {\n return (error as Record<string, unknown>).code as string;\n }\n return undefined;\n};\n\nconst getErrorMessage = (error: unknown): string | undefined =>\n error instanceof Error ? error.message : undefined;\n\nconst asError = (error: unknown): Error | undefined =>\n error instanceof Error ? error : undefined;\n\n/**\n * Maps a PostgreSQL error (from the `pg` driver) to a typed DumboError\n * based on the SQLSTATE code.\n *\n * SQLSTATE reference: https://www.postgresql.org/docs/current/errcodes-appendix.html\n * Transient classification based on Npgsql's PostgresException.IsTransient.\n *\n * Falls back to a generic DumboError (500) if the error is not a recognized PostgreSQL error.\n */\nexport const mapPostgresError = (error: unknown): DumboError => {\n if (DumboError.isInstanceOf<DumboError>(error)) return error;\n\n const code = getPostgresErrorCode(error);\n if (!code)\n return new DumboError({\n errorCode: 500,\n message: getErrorMessage(error),\n innerError: asError(error),\n });\n\n const message = getErrorMessage(error);\n const innerError = asError(error);\n\n // Exact SQLSTATE matches first, then class prefix fallbacks\n\n switch (code) {\n // ── Class 23: Integrity Constraint Violations ──\n case '23505':\n return new UniqueConstraintError(message, innerError);\n case '23503':\n return new ForeignKeyViolationError(message, innerError);\n case '23502':\n return new NotNullViolationError(message, innerError);\n case '23514':\n return new CheckViolationError(message, innerError);\n case '23P01':\n return new ExclusionViolationError(message, innerError);\n\n // ── Class 40: Transaction Rollback ──\n case '40001':\n return new SerializationError(message, innerError);\n case '40P01':\n return new DeadlockError(message, innerError);\n\n // ── Class 55: Object Not In Prerequisite State ──\n case '55P03':\n case '55006':\n return new LockNotAvailableError(message, innerError);\n\n // ── Class 57: Operator Intervention ──\n case '57014': // query_canceled (e.g. statement timeout)\n return new QueryCanceledError(message, innerError);\n case '57P01': // admin shutdown\n case '57P02': // crash shutdown\n return new AdminShutdownError(message, innerError);\n case '57P03': // cannot connect now\n case '57P05': // idle session timeout\n return new ConnectionError(message, innerError);\n }\n\n // Class prefix fallbacks (first 2 characters of the SQLSTATE code)\n const sqlClass = code.slice(0, 2);\n\n switch (sqlClass) {\n // ── Class 08: Connection Exception ──\n case '08':\n return new ConnectionError(message, innerError);\n\n // ── Class 22: Data Exception ──\n case '22':\n return new DataError(message, innerError);\n\n // ── Class 23: Integrity Constraint (fallback for unknown codes) ──\n case '23':\n return new IntegrityConstraintViolationError(message, innerError);\n\n // ── Class 42: Syntax Error or Access Rule Violation ──\n case '42':\n return new InvalidOperationError(message, innerError);\n\n // ── Class 53: Insufficient Resources ──\n case '53':\n return new InsufficientResourcesError(message, innerError);\n\n // ── Class 57: Operator Intervention (fallback) ──\n case '57':\n return new ConnectionError(message, innerError);\n\n // ── Class 58: System Error ──\n case '58':\n return new SystemError(message, innerError);\n }\n\n return new DumboError({\n errorCode: 500,\n message,\n innerError,\n });\n};\n","import {\n defaultDatabaseLockOptions,\n single,\n SQL,\n type AcquireDatabaseLockMode,\n type AcquireDatabaseLockOptions,\n type DatabaseLock,\n type DatabaseLockOptions,\n type ReleaseDatabaseLockOptions,\n type SQLExecutor,\n} from '../../../../core';\nimport { DumboError, QueryCanceledError } from '../../../../core/errors';\n\nexport const tryAcquireAdvisoryLock = async (\n execute: SQLExecutor,\n options: AcquireDatabaseLockOptions,\n): Promise<boolean> => {\n const timeoutMs = options.timeoutMs ?? defaultDatabaseLockOptions.timeoutMs;\n\n const advisoryLock =\n options.mode === 'Permanent' ? 'pg_advisory_lock' : 'pg_advisory_xact_lock';\n\n try {\n await single(\n execute.query<{ locked: boolean }>(\n SQL`SELECT ${SQL.plain(advisoryLock)}(${options.lockId}) AS locked`,\n { timeoutMs },\n ),\n );\n return true;\n } catch (error) {\n if (\n error instanceof QueryCanceledError ||\n DumboError.isInstanceOf(error, {\n errorType: QueryCanceledError.ErrorType,\n })\n )\n return false;\n\n throw error;\n }\n};\n\nexport const releaseAdvisoryLock = async (\n execute: SQLExecutor,\n options: ReleaseDatabaseLockOptions,\n): Promise<boolean> => {\n const timeoutMs = options.timeoutMs ?? defaultDatabaseLockOptions.timeoutMs;\n\n try {\n await single(\n execute.query<{ locked: boolean }>(\n SQL`SELECT pg_advisory_unlock(${options.lockId}) AS locked`,\n { timeoutMs },\n ),\n );\n return true;\n } catch (error) {\n if (\n error instanceof QueryCanceledError ||\n DumboError.isInstanceOf(error, {\n errorType: QueryCanceledError.ErrorType,\n })\n )\n return false;\n\n throw error;\n }\n};\n\nexport const acquireAdvisoryLock = async (\n execute: SQLExecutor,\n options: AcquireDatabaseLockOptions,\n) => {\n const lockAcquired = await tryAcquireAdvisoryLock(execute, options);\n if (!lockAcquired) {\n throw new Error(\n 'Failed to acquire advisory lock within the specified timeout. Migration aborted.',\n );\n }\n};\n\nexport const AdvisoryLock: DatabaseLock = {\n acquire: acquireAdvisoryLock,\n tryAcquire: tryAcquireAdvisoryLock,\n release: releaseAdvisoryLock,\n withAcquire: async <Result>(\n execute: SQLExecutor,\n handle: () => Promise<Result>,\n options: AcquireDatabaseLockOptions,\n ) => {\n await acquireAdvisoryLock(execute, options);\n try {\n return await handle();\n } finally {\n if (options.mode === 'Permanent')\n await releaseAdvisoryLock(execute, options);\n }\n },\n};\n\nexport const advisoryLock = (\n execute: SQLExecutor,\n options: DatabaseLockOptions,\n) => ({\n acquire: (acquireOptions?: { mode: AcquireDatabaseLockMode }) =>\n acquireAdvisoryLock(execute, {\n ...options,\n ...(acquireOptions ?? {}),\n }),\n tryAcquire: (acquireOptions?: { mode: AcquireDatabaseLockMode }) =>\n tryAcquireAdvisoryLock(execute, {\n ...options,\n ...(acquireOptions ?? {}),\n }),\n release: () => releaseAdvisoryLock(execute, options),\n withAcquire: async <Result>(\n handle: () => Promise<Result>,\n acquireOptions?: { mode: AcquireDatabaseLockMode },\n ) => {\n await acquireAdvisoryLock(execute, {\n ...options,\n ...(acquireOptions ?? {}),\n });\n try {\n return await handle();\n } finally {\n await releaseAdvisoryLock(execute, options);\n }\n },\n});\n","import {\n type MigratorOptions,\n registerDefaultMigratorOptions,\n} from '../../../../core';\nimport { AdvisoryLock } from '../locks';\n\nexport const DefaultPostgreSQLMigratorOptions: MigratorOptions = {\n lock: {\n databaseLock: AdvisoryLock,\n },\n};\n\nregisterDefaultMigratorOptions('PostgreSQL', DefaultPostgreSQLMigratorOptions);\n","import type { SQLIn } from '../../../../../core';\nimport {\n SQLArray,\n SQLProcessor,\n type SQLProcessorContext,\n} from '../../../../../core';\n\nexport const PostgreSQLArrayProcessor: SQLProcessor<SQLArray> = SQLProcessor({\n canHandle: 'SQL_ARRAY',\n handle: (\n token: SQLArray,\n { builder, mapper, serializer }: SQLProcessorContext,\n ) => {\n if (token.value.length === 0) {\n throw new Error(\n \"Empty arrays are not supported. If you're using it with SELECT IN statement Use SQL.in(column, array) helper instead.\",\n );\n }\n const mappedValue = mapper.mapValue(token.value, serializer) as unknown[];\n\n if (token.mode === 'params') {\n builder.addParams(mappedValue);\n } else {\n builder.addParam(mappedValue);\n }\n },\n});\n\nexport const PostgreSQLExpandSQLInProcessor: SQLProcessor<SQLIn> = SQLProcessor(\n {\n canHandle: 'SQL_IN',\n handle: (token: SQLIn, context: SQLProcessorContext) => {\n const { builder, mapper, processorsRegistry } = context;\n const { values: inValues, column, mode } = token;\n\n if (inValues.value.length === 0) {\n builder.addParam(mapper.mapValue(false, context.serializer));\n return;\n }\n\n builder.addSQL(\n mapper.mapValue(column.value, context.serializer) as string,\n );\n const arrayProcessor = processorsRegistry.get(SQLArray.type);\n\n if (!arrayProcessor) {\n throw new Error(\n 'No sql processor registered for an array. Cannot expand IN statement',\n );\n }\n\n if (mode === 'params') {\n builder.addSQL(` IN (`);\n const expandedArray = { ...inValues, mode: 'params' as const };\n arrayProcessor.handle(expandedArray, context);\n builder.addSQL(`)`);\n } else {\n builder.addSQL(` = ANY (`);\n arrayProcessor.handle(inValues, context);\n builder.addSQL(`)`);\n }\n },\n },\n);\n","import {\n mapDefaultSQLColumnProcessors,\n type DefaultSQLColumnProcessors,\n type DefaultSQLColumnToken,\n type SQLProcessorContext,\n} from '../../../../../core';\n\nconst mapColumnType = (\n token: DefaultSQLColumnToken,\n { builder }: SQLProcessorContext,\n): void => {\n let columnSQL: string;\n const { sqlTokenType } = token;\n switch (sqlTokenType) {\n case 'SQL_COLUMN_AUTO_INCREMENT':\n columnSQL = `${token.bigint ? 'BIGSERIAL' : 'SERIAL'} ${token.primaryKey ? 'PRIMARY KEY' : ''}`;\n break;\n case 'SQL_COLUMN_BIGINT':\n columnSQL = 'BIGINT';\n break;\n case 'SQL_COLUMN_SERIAL':\n columnSQL = 'SERIAL';\n break;\n case 'SQL_COLUMN_INTEGER':\n columnSQL = 'INTEGER';\n break;\n case 'SQL_COLUMN_JSONB':\n columnSQL = 'JSONB';\n break;\n case 'SQL_COLUMN_BIGSERIAL':\n columnSQL = 'BIGSERIAL';\n break;\n case 'SQL_COLUMN_TIMESTAMP':\n columnSQL = 'TIMESTAMP';\n break;\n case 'SQL_COLUMN_TIMESTAMPTZ':\n columnSQL = 'TIMESTAMPTZ';\n break;\n case 'SQL_COLUMN_VARCHAR':\n columnSQL = `VARCHAR ${Number.isNaN(token.length) ? '' : `(${token.length})`}`;\n break;\n default: {\n const exhaustiveCheck: never = sqlTokenType;\n // eslint-disable-next-line @typescript-eslint/restrict-template-expressions\n throw new Error(`Unknown column type: ${exhaustiveCheck}`);\n }\n }\n builder.addSQL(columnSQL);\n};\n\nexport const postgreSQLColumnProcessors: DefaultSQLColumnProcessors =\n mapDefaultSQLColumnProcessors(mapColumnType);\n","// Ported from: https://github.com/datalanche/node-pg-format/blob/master/lib/reserved.js\n//\n// PostgreSQL reserved words\n//\nconst reservedMap: { [key: string]: boolean } = {\n AES128: true,\n AES256: true,\n ALL: true,\n ALLOWOVERWRITE: true,\n ANALYSE: true,\n ANALYZE: true,\n AND: true,\n ANY: true,\n ARRAY: true,\n AS: true,\n ASC: true,\n AUTHORIZATION: true,\n BACKUP: true,\n BETWEEN: true,\n BINARY: true,\n BLANKSASNULL: true,\n BOTH: true,\n BYTEDICT: true,\n CASE: true,\n CAST: true,\n CHECK: true,\n COLLATE: true,\n COLUMN: true,\n CONSTRAINT: true,\n CREATE: true,\n CREDENTIALS: true,\n CROSS: true,\n CURRENT_DATE: true,\n CURRENT_TIME: true,\n CURRENT_TIMESTAMP: true,\n CURRENT_USER: true,\n CURRENT_USER_ID: true,\n DEFAULT: true,\n DEFERRABLE: true,\n DEFLATE: true,\n DEFRAG: true,\n DELTA: true,\n DELTA32K: true,\n DESC: true,\n DISABLE: true,\n DISTINCT: true,\n DO: true,\n ELSE: true,\n EMPTYASNULL: true,\n ENABLE: true,\n ENCODE: true,\n ENCRYPT: true,\n ENCRYPTION: true,\n END: true,\n EXCEPT: true,\n EXPLICIT: true,\n FALSE: true,\n FOR: true,\n FOREIGN: true,\n FREEZE: true,\n FROM: true,\n FULL: true,\n GLOBALDICT256: true,\n GLOBALDICT64K: true,\n GRANT: true,\n GROUP: true,\n GZIP: true,\n HAVING: true,\n IDENTITY: true,\n IGNORE: true,\n ILIKE: true,\n IN: true,\n INITIALLY: true,\n INNER: true,\n INTERSECT: true,\n INTO: true,\n IS: true,\n ISNULL: true,\n JOIN: true,\n LEADING: true,\n LEFT: true,\n LIKE: true,\n LIMIT: true,\n LOCALTIME: true,\n LOCALTIMESTAMP: true,\n LUN: true,\n LUNS: true,\n LZO: true,\n LZOP: true,\n MINUS: true,\n MOSTLY13: true,\n MOSTLY32: true,\n MOSTLY8: true,\n NATURAL: true,\n NEW: true,\n NOT: true,\n NOTNULL: true,\n NULL: true,\n NULLS: true,\n OFF: true,\n OFFLINE: true,\n OFFSET: true,\n OLD: true,\n ON: true,\n ONLY: true,\n OPEN: true,\n OR: true,\n ORDER: true,\n OUTER: true,\n OVERLAPS: true,\n PARALLEL: true,\n PARTITION: true,\n PERCENT: true,\n PLACING: true,\n PRIMARY: true,\n RAW: true,\n READRATIO: true,\n RECOVER: true,\n REFERENCES: true,\n REJECTLOG: true,\n RESORT: true,\n RESTORE: true,\n RIGHT: true,\n SELECT: true,\n SESSION_USER: true,\n SIMILAR: true,\n SOME: true,\n SYSDATE: true,\n SYSTEM: true,\n TABLE: true,\n TAG: true,\n TDES: true,\n TEXT255: true,\n TEXT32K: true,\n THEN: true,\n TO: true,\n TOP: true,\n TRAILING: true,\n TRUE: true,\n TRUNCATECOLUMNS: true,\n UNION: true,\n UNIQUE: true,\n USER: true,\n USING: true,\n VERBOSE: true,\n WALLET: true,\n WHEN: true,\n WHERE: true,\n WITH: true,\n WITHOUT: true,\n};\n\nexport default reservedMap;\n","import {\n defaultProcessorsRegistry,\n mapSQLIdentifier,\n registerFormatter,\n SQLFormatter,\n SQLProcessorsRegistry,\n} from '../../../../../core';\nimport {\n PostgreSQLArrayProcessor,\n postgreSQLColumnProcessors,\n PostgreSQLExpandSQLInProcessor,\n} from '../processors';\nimport reservedMap from './reserved';\n\nconst postgreSQLProcessorsRegistry = SQLProcessorsRegistry({\n from: defaultProcessorsRegistry,\n})\n .register(postgreSQLColumnProcessors)\n .register(PostgreSQLArrayProcessor, PostgreSQLExpandSQLInProcessor);\n\nconst pgFormatter: SQLFormatter = SQLFormatter({\n processorsRegistry: postgreSQLProcessorsRegistry,\n valueMapper: {\n mapDate: (value: Date): unknown =>\n value.toISOString().replace('T', ' ').replace('Z', '+00'),\n mapPlaceholder: (index: number): string => `$${index + 1}`,\n mapIdentifier: (value: string): string =>\n mapSQLIdentifier(value, { reservedWords: reservedMap }),\n mapArray: (values: unknown[]): unknown[] => values,\n },\n});\n\nregisterFormatter('PostgreSQL', pgFormatter);\n\n// Export the original functions if needed\nexport { pgFormatter };\n","import type { DatabaseDriverType } from '../../../core';\n\nexport * from './connections';\nexport * from './errors';\nexport * from './locks';\nexport * from './schema';\nexport * from './sql';\n\nexport type PostgreSQLDatabaseName = 'PostgreSQL';\nexport const PostgreSQLDatabaseName = 'PostgreSQL';\n\nexport type PostgreSQLDriverType<DriverName extends string = string> =\n DatabaseDriverType<PostgreSQLDatabaseName, DriverName>;\n"]}
|
|
@@ -2180,6 +2180,9 @@ var createConnection = (options) => {
|
|
|
2180
2180
|
return typedConnection;
|
|
2181
2181
|
};
|
|
2182
2182
|
|
|
2183
|
+
// src/core/taskProcessing/executionGuards.ts
|
|
2184
|
+
import { v7 as uuid } from "uuid";
|
|
2185
|
+
|
|
2183
2186
|
// src/core/taskProcessing/taskProcessor.ts
|
|
2184
2187
|
var TaskProcessor = class {
|
|
2185
2188
|
queue = [];
|
|
@@ -2187,10 +2190,14 @@ var TaskProcessor = class {
|
|
|
2187
2190
|
activeTasks = 0;
|
|
2188
2191
|
activeGroups = /* @__PURE__ */ new Set();
|
|
2189
2192
|
options;
|
|
2193
|
+
stopped = false;
|
|
2190
2194
|
constructor(options) {
|
|
2191
2195
|
this.options = options;
|
|
2192
2196
|
}
|
|
2193
2197
|
enqueue(task, options) {
|
|
2198
|
+
if (this.stopped) {
|
|
2199
|
+
return Promise.reject(new DumboError("TaskProcessor has been stopped"));
|
|
2200
|
+
}
|
|
2194
2201
|
if (this.queue.length >= this.options.maxQueueSize) {
|
|
2195
2202
|
return Promise.reject(
|
|
2196
2203
|
new TransientDatabaseError(
|
|
@@ -2203,6 +2210,15 @@ var TaskProcessor = class {
|
|
|
2203
2210
|
waitForEndOfProcessing() {
|
|
2204
2211
|
return this.schedule(({ ack }) => Promise.resolve(ack()));
|
|
2205
2212
|
}
|
|
2213
|
+
async stop(options) {
|
|
2214
|
+
if (this.stopped) return;
|
|
2215
|
+
this.stopped = true;
|
|
2216
|
+
this.queue.length = 0;
|
|
2217
|
+
this.activeGroups.clear();
|
|
2218
|
+
if (!options?.force) {
|
|
2219
|
+
await this.waitForEndOfProcessing();
|
|
2220
|
+
}
|
|
2221
|
+
}
|
|
2206
2222
|
schedule(task, options) {
|
|
2207
2223
|
return promiseWithDeadline(
|
|
2208
2224
|
(resolve, reject) => {
|
|
@@ -2281,23 +2297,145 @@ var DEFAULT_PROMISE_DEADLINE = 2147483647;
|
|
|
2281
2297
|
var promiseWithDeadline = (executor, options) => {
|
|
2282
2298
|
return new Promise((resolve, reject) => {
|
|
2283
2299
|
let taskStarted = false;
|
|
2284
|
-
|
|
2285
|
-
|
|
2300
|
+
let timeoutId = null;
|
|
2301
|
+
const deadline = options.deadline ?? DEFAULT_PROMISE_DEADLINE;
|
|
2302
|
+
timeoutId = setTimeout(() => {
|
|
2286
2303
|
if (!taskStarted) {
|
|
2287
2304
|
reject(
|
|
2288
2305
|
new Error("Task was not started within the maximum waiting time")
|
|
2289
2306
|
);
|
|
2290
2307
|
}
|
|
2291
|
-
},
|
|
2292
|
-
|
|
2293
|
-
|
|
2294
|
-
|
|
2295
|
-
|
|
2308
|
+
}, deadline);
|
|
2309
|
+
timeoutId.unref();
|
|
2310
|
+
executor(
|
|
2311
|
+
(value) => {
|
|
2312
|
+
taskStarted = true;
|
|
2313
|
+
if (timeoutId) {
|
|
2314
|
+
clearTimeout(timeoutId);
|
|
2315
|
+
}
|
|
2316
|
+
timeoutId = null;
|
|
2317
|
+
resolve(value);
|
|
2318
|
+
},
|
|
2319
|
+
(reason) => {
|
|
2320
|
+
if (timeoutId) {
|
|
2321
|
+
clearTimeout(timeoutId);
|
|
2322
|
+
}
|
|
2323
|
+
timeoutId = null;
|
|
2324
|
+
reject(reason);
|
|
2325
|
+
}
|
|
2326
|
+
);
|
|
2327
|
+
});
|
|
2328
|
+
};
|
|
2329
|
+
|
|
2330
|
+
// src/core/taskProcessing/executionGuards.ts
|
|
2331
|
+
var guardBoundedAccess = (getResource, options) => {
|
|
2332
|
+
let isStopped = false;
|
|
2333
|
+
const taskProcessor = new TaskProcessor({
|
|
2334
|
+
maxActiveTasks: options.maxResources,
|
|
2335
|
+
maxQueueSize: options.maxQueueSize ?? 1e3
|
|
2336
|
+
});
|
|
2337
|
+
const resourcePool = [];
|
|
2338
|
+
const allResources = /* @__PURE__ */ new Set();
|
|
2339
|
+
const ackCallbacks = /* @__PURE__ */ new Map();
|
|
2340
|
+
const acquire = async () => taskProcessor.enqueue(async ({ ack }) => {
|
|
2341
|
+
try {
|
|
2342
|
+
let resource;
|
|
2343
|
+
if (options.reuseResources) {
|
|
2344
|
+
resource = resourcePool.pop();
|
|
2345
|
+
}
|
|
2346
|
+
if (!resource) {
|
|
2347
|
+
resource = await getResource();
|
|
2348
|
+
allResources.add(resource);
|
|
2349
|
+
}
|
|
2350
|
+
ackCallbacks.set(resource, ack);
|
|
2351
|
+
return resource;
|
|
2352
|
+
} catch (e) {
|
|
2353
|
+
ack();
|
|
2354
|
+
throw e;
|
|
2355
|
+
}
|
|
2356
|
+
});
|
|
2357
|
+
const release = (resource) => {
|
|
2358
|
+
const ack = ackCallbacks.get(resource);
|
|
2359
|
+
if (ack) {
|
|
2360
|
+
ackCallbacks.delete(resource);
|
|
2361
|
+
if (options.reuseResources) {
|
|
2362
|
+
resourcePool.push(resource);
|
|
2363
|
+
}
|
|
2364
|
+
ack();
|
|
2365
|
+
}
|
|
2366
|
+
};
|
|
2367
|
+
const execute = async (operation) => {
|
|
2368
|
+
const resource = await acquire();
|
|
2369
|
+
try {
|
|
2370
|
+
return await operation(resource);
|
|
2371
|
+
} finally {
|
|
2372
|
+
release(resource);
|
|
2373
|
+
}
|
|
2374
|
+
};
|
|
2375
|
+
return {
|
|
2376
|
+
acquire,
|
|
2377
|
+
release,
|
|
2378
|
+
execute,
|
|
2379
|
+
waitForIdle: () => taskProcessor.waitForEndOfProcessing(),
|
|
2380
|
+
stop: async (stopOptions) => {
|
|
2381
|
+
if (isStopped) return;
|
|
2382
|
+
isStopped = true;
|
|
2383
|
+
if (options?.closeResource) {
|
|
2384
|
+
const resources = [...allResources];
|
|
2385
|
+
allResources.clear();
|
|
2386
|
+
resourcePool.length = 0;
|
|
2387
|
+
await Promise.all(
|
|
2388
|
+
resources.map(
|
|
2389
|
+
async (resource) => await options.closeResource(resource)
|
|
2390
|
+
)
|
|
2391
|
+
);
|
|
2296
2392
|
}
|
|
2297
|
-
|
|
2298
|
-
|
|
2299
|
-
|
|
2393
|
+
await taskProcessor.stop(stopOptions);
|
|
2394
|
+
}
|
|
2395
|
+
};
|
|
2396
|
+
};
|
|
2397
|
+
var guardInitializedOnce = (initialize, options) => {
|
|
2398
|
+
let initPromise = null;
|
|
2399
|
+
const taskProcessor = new TaskProcessor({
|
|
2400
|
+
maxActiveTasks: 1,
|
|
2401
|
+
maxQueueSize: options?.maxQueueSize ?? 1e3
|
|
2300
2402
|
});
|
|
2403
|
+
const ensureInitialized = async (retryCount = 0) => {
|
|
2404
|
+
if (initPromise !== null) {
|
|
2405
|
+
return initPromise;
|
|
2406
|
+
}
|
|
2407
|
+
return taskProcessor.enqueue(
|
|
2408
|
+
async ({ ack }) => {
|
|
2409
|
+
if (initPromise !== null) {
|
|
2410
|
+
ack();
|
|
2411
|
+
return initPromise;
|
|
2412
|
+
}
|
|
2413
|
+
try {
|
|
2414
|
+
const promise = initialize();
|
|
2415
|
+
initPromise = promise;
|
|
2416
|
+
const result = await promise;
|
|
2417
|
+
ack();
|
|
2418
|
+
return result;
|
|
2419
|
+
} catch (error) {
|
|
2420
|
+
initPromise = null;
|
|
2421
|
+
ack();
|
|
2422
|
+
const maxRetries = options?.maxRetries ?? 3;
|
|
2423
|
+
if (retryCount < maxRetries) {
|
|
2424
|
+
return ensureInitialized(retryCount + 1);
|
|
2425
|
+
}
|
|
2426
|
+
throw error;
|
|
2427
|
+
}
|
|
2428
|
+
},
|
|
2429
|
+
{ taskGroupId: uuid() }
|
|
2430
|
+
);
|
|
2431
|
+
};
|
|
2432
|
+
return {
|
|
2433
|
+
ensureInitialized,
|
|
2434
|
+
reset: () => {
|
|
2435
|
+
initPromise = null;
|
|
2436
|
+
},
|
|
2437
|
+
stop: (options2) => taskProcessor.stop(options2)
|
|
2438
|
+
};
|
|
2301
2439
|
};
|
|
2302
2440
|
|
|
2303
2441
|
// src/core/connections/pool.ts
|
|
@@ -2352,67 +2490,29 @@ var createSingletonConnectionPool = (options) => {
|
|
|
2352
2490
|
};
|
|
2353
2491
|
return result;
|
|
2354
2492
|
};
|
|
2355
|
-
var memoizeConnection = (fn) => {
|
|
2356
|
-
let promise = null;
|
|
2357
|
-
return () => {
|
|
2358
|
-
if (!promise) {
|
|
2359
|
-
promise = Promise.resolve(fn()).catch((err) => {
|
|
2360
|
-
promise = null;
|
|
2361
|
-
throw err;
|
|
2362
|
-
});
|
|
2363
|
-
}
|
|
2364
|
-
return promise;
|
|
2365
|
-
};
|
|
2366
|
-
};
|
|
2367
2493
|
var createBoundedConnectionPool = (options) => {
|
|
2368
2494
|
const { driverType, maxConnections } = options;
|
|
2369
|
-
const
|
|
2370
|
-
|
|
2371
|
-
|
|
2372
|
-
const taskProcessor = new TaskProcessor({
|
|
2373
|
-
maxActiveTasks: maxConnections,
|
|
2374
|
-
maxQueueSize: 1e3
|
|
2495
|
+
const guardMaxConnections = guardBoundedAccess(options.getConnection, {
|
|
2496
|
+
maxResources: maxConnections,
|
|
2497
|
+
reuseResources: true
|
|
2375
2498
|
});
|
|
2376
|
-
const ackCallbacks = /* @__PURE__ */ new Map();
|
|
2377
2499
|
let closed = false;
|
|
2378
|
-
const acquire = async () => {
|
|
2379
|
-
if (closed) throw new DumboError("Connection pool is closed");
|
|
2380
|
-
return taskProcessor.enqueue(async ({ ack }) => {
|
|
2381
|
-
try {
|
|
2382
|
-
let conn = pool.pop();
|
|
2383
|
-
if (!conn) {
|
|
2384
|
-
conn = await getConnection();
|
|
2385
|
-
allConnections.add(conn);
|
|
2386
|
-
}
|
|
2387
|
-
ackCallbacks.set(conn, ack);
|
|
2388
|
-
return conn;
|
|
2389
|
-
} catch (e) {
|
|
2390
|
-
ack();
|
|
2391
|
-
throw e;
|
|
2392
|
-
}
|
|
2393
|
-
});
|
|
2394
|
-
};
|
|
2395
|
-
const release = (conn) => {
|
|
2396
|
-
const ack = ackCallbacks.get(conn);
|
|
2397
|
-
if (ack) {
|
|
2398
|
-
ackCallbacks.delete(conn);
|
|
2399
|
-
pool.push(conn);
|
|
2400
|
-
ack();
|
|
2401
|
-
}
|
|
2402
|
-
};
|
|
2403
2500
|
const executeWithPooling = async (operation) => {
|
|
2404
|
-
const conn = await acquire();
|
|
2501
|
+
const conn = await guardMaxConnections.acquire();
|
|
2405
2502
|
try {
|
|
2406
2503
|
return await operation(conn);
|
|
2407
2504
|
} finally {
|
|
2408
|
-
release(conn);
|
|
2505
|
+
guardMaxConnections.release(conn);
|
|
2409
2506
|
}
|
|
2410
2507
|
};
|
|
2411
2508
|
return {
|
|
2412
2509
|
driverType,
|
|
2413
2510
|
connection: async () => {
|
|
2414
|
-
const conn = await acquire();
|
|
2415
|
-
return wrapPooledConnection(
|
|
2511
|
+
const conn = await guardMaxConnections.acquire();
|
|
2512
|
+
return wrapPooledConnection(
|
|
2513
|
+
conn,
|
|
2514
|
+
() => Promise.resolve(guardMaxConnections.release(conn))
|
|
2515
|
+
);
|
|
2416
2516
|
},
|
|
2417
2517
|
execute: {
|
|
2418
2518
|
query: (sql, opts) => executeWithPooling((c) => c.execute.query(sql, opts)),
|
|
@@ -2423,18 +2523,13 @@ var createBoundedConnectionPool = (options) => {
|
|
|
2423
2523
|
withConnection: executeWithPooling,
|
|
2424
2524
|
...transactionFactoryWithAsyncAmbientConnection(
|
|
2425
2525
|
driverType,
|
|
2426
|
-
acquire,
|
|
2427
|
-
release
|
|
2526
|
+
guardMaxConnections.acquire,
|
|
2527
|
+
guardMaxConnections.release
|
|
2428
2528
|
),
|
|
2429
2529
|
close: async () => {
|
|
2430
2530
|
if (closed) return;
|
|
2431
2531
|
closed = true;
|
|
2432
|
-
|
|
2433
|
-
ackCallbacks.clear();
|
|
2434
|
-
const connections = [...allConnections];
|
|
2435
|
-
allConnections.clear();
|
|
2436
|
-
pool.length = 0;
|
|
2437
|
-
await Promise.all(connections.map((conn) => conn.close()));
|
|
2532
|
+
await guardMaxConnections.stop({ force: true });
|
|
2438
2533
|
}
|
|
2439
2534
|
};
|
|
2440
2535
|
};
|
|
@@ -2838,7 +2933,7 @@ export {
|
|
|
2838
2933
|
createSingletonConnection,
|
|
2839
2934
|
createTransientConnection,
|
|
2840
2935
|
createConnection,
|
|
2841
|
-
|
|
2936
|
+
guardInitializedOnce,
|
|
2842
2937
|
createAmbientConnectionPool,
|
|
2843
2938
|
createSingletonConnectionPool,
|
|
2844
2939
|
createBoundedConnectionPool,
|
|
@@ -2846,4 +2941,4 @@ export {
|
|
|
2846
2941
|
createAlwaysNewConnectionPool,
|
|
2847
2942
|
createConnectionPool
|
|
2848
2943
|
};
|
|
2849
|
-
//# sourceMappingURL=chunk-
|
|
2944
|
+
//# sourceMappingURL=chunk-H2JBS7HM.js.map
|