@event-driven-io/dumbo 0.13.0-beta.21 → 0.13.0-beta.23

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (62) hide show
  1. package/dist/{chunk-FC4JR2R3.js → chunk-56QRSCG5.js} +2 -2
  2. package/dist/{chunk-65DKXURG.js → chunk-5OX6NE4Z.js} +2 -2
  3. package/dist/{chunk-IVJ3SNPJ.js → chunk-5SCFH2HY.js} +2 -2
  4. package/dist/{chunk-AMACBMAZ.cjs → chunk-7D7WADBK.cjs} +186 -98
  5. package/dist/chunk-7D7WADBK.cjs.map +1 -0
  6. package/dist/{chunk-H7ZKIJHB.cjs → chunk-7RMJPFU5.cjs} +6 -6
  7. package/dist/{chunk-H7ZKIJHB.cjs.map → chunk-7RMJPFU5.cjs.map} +1 -1
  8. package/dist/{chunk-7WEBHXZD.cjs → chunk-HXQYRDCR.cjs} +43 -43
  9. package/dist/{chunk-7WEBHXZD.cjs.map → chunk-HXQYRDCR.cjs.map} +1 -1
  10. package/dist/{chunk-T4A6BQRA.js → chunk-LPIIB75Q.js} +120 -32
  11. package/dist/chunk-LPIIB75Q.js.map +1 -0
  12. package/dist/{chunk-XO5T5N5S.js → chunk-QUAG4MBP.js} +294 -14
  13. package/dist/chunk-QUAG4MBP.js.map +1 -0
  14. package/dist/{chunk-XOQHZABK.cjs → chunk-QVEVSWG6.cjs} +307 -27
  15. package/dist/chunk-QVEVSWG6.cjs.map +1 -0
  16. package/dist/{chunk-R7P7CNMK.cjs → chunk-TMFEMKPE.cjs} +4 -4
  17. package/dist/{chunk-R7P7CNMK.cjs.map → chunk-TMFEMKPE.cjs.map} +1 -1
  18. package/dist/cloudflare.cjs +66 -61
  19. package/dist/cloudflare.cjs.map +1 -1
  20. package/dist/cloudflare.d.cts +4 -4
  21. package/dist/cloudflare.d.ts +4 -4
  22. package/dist/cloudflare.js +9 -4
  23. package/dist/cloudflare.js.map +1 -1
  24. package/dist/{columnProcessors-Difrrk4c.d.cts → columnProcessors-CsQjv8si.d.cts} +1 -1
  25. package/dist/{columnProcessors-C7fRa54L.d.ts → columnProcessors-giHzjHuv.d.ts} +1 -1
  26. package/dist/{connectionString-oeg1LD5V.d.ts → connectionString-J4yRT71A.d.cts} +40 -31
  27. package/dist/{connectionString-oeg1LD5V.d.cts → connectionString-J4yRT71A.d.ts} +40 -31
  28. package/dist/index.cjs +7 -5
  29. package/dist/index.cjs.map +1 -1
  30. package/dist/index.d.cts +3 -3
  31. package/dist/index.d.ts +3 -3
  32. package/dist/index.js +5 -3
  33. package/dist/index.js.map +1 -1
  34. package/dist/pg.cjs +39 -38
  35. package/dist/pg.cjs.map +1 -1
  36. package/dist/pg.d.cts +7 -7
  37. package/dist/pg.d.ts +7 -7
  38. package/dist/pg.js +5 -4
  39. package/dist/pg.js.map +1 -1
  40. package/dist/postgresql.cjs +4 -4
  41. package/dist/postgresql.d.cts +2 -2
  42. package/dist/postgresql.d.ts +2 -2
  43. package/dist/postgresql.js +3 -3
  44. package/dist/sqlite.cjs +8 -4
  45. package/dist/sqlite.cjs.map +1 -1
  46. package/dist/sqlite.d.cts +49 -23
  47. package/dist/sqlite.d.ts +49 -23
  48. package/dist/sqlite.js +7 -3
  49. package/dist/sqlite3.cjs +65 -28
  50. package/dist/sqlite3.cjs.map +1 -1
  51. package/dist/sqlite3.d.cts +11 -11
  52. package/dist/sqlite3.d.ts +11 -11
  53. package/dist/sqlite3.js +48 -11
  54. package/dist/sqlite3.js.map +1 -1
  55. package/package.json +1 -1
  56. package/dist/chunk-AMACBMAZ.cjs.map +0 -1
  57. package/dist/chunk-T4A6BQRA.js.map +0 -1
  58. package/dist/chunk-XO5T5N5S.js.map +0 -1
  59. package/dist/chunk-XOQHZABK.cjs.map +0 -1
  60. /package/dist/{chunk-FC4JR2R3.js.map → chunk-56QRSCG5.js.map} +0 -0
  61. /package/dist/{chunk-65DKXURG.js.map → chunk-5OX6NE4Z.js.map} +0 -0
  62. /package/dist/{chunk-IVJ3SNPJ.js.map → chunk-5SCFH2HY.js.map} +0 -0
package/dist/pg.cjs CHANGED
@@ -11,7 +11,7 @@
11
11
 
12
12
 
13
13
 
14
- var _chunk7WEBHXZDcjs = require('./chunk-7WEBHXZD.cjs');
14
+ var _chunkHXQYRDCRcjs = require('./chunk-HXQYRDCR.cjs');
15
15
 
16
16
 
17
17
 
@@ -22,7 +22,7 @@ var _chunk7WEBHXZDcjs = require('./chunk-7WEBHXZD.cjs');
22
22
 
23
23
 
24
24
 
25
- var _chunkH7ZKIJHBcjs = require('./chunk-H7ZKIJHB.cjs');
25
+ var _chunk7RMJPFU5cjs = require('./chunk-7RMJPFU5.cjs');
26
26
 
27
27
 
28
28
 
@@ -34,7 +34,7 @@ var _chunkH7ZKIJHBcjs = require('./chunk-H7ZKIJHB.cjs');
34
34
 
35
35
 
36
36
 
37
- var _chunkXOQHZABKcjs = require('./chunk-XOQHZABK.cjs');
37
+ var _chunkQVEVSWG6cjs = require('./chunk-QVEVSWG6.cjs');
38
38
 
39
39
  // src/storage/postgresql/pg/connections/connection.ts
40
40
  var _pg = require('pg'); var _pg2 = _interopRequireDefault(_pg);
@@ -79,7 +79,7 @@ var pgSQLExecutor = ({
79
79
  return results[0];
80
80
  },
81
81
  batchCommand: (client, sqls, options) => batchCommand(client, sqls, serializer, options),
82
- formatter: _chunk7WEBHXZDcjs.pgFormatter
82
+ formatter: _chunkHXQYRDCRcjs.pgFormatter
83
83
  });
84
84
  async function batchQuery(client, sqls, serializer, options) {
85
85
  const results = Array(
@@ -89,11 +89,11 @@ async function batchQuery(client, sqls, serializer, options) {
89
89
  await client.query(`SET statement_timeout = ${options.timeoutMs}`);
90
90
  }
91
91
  for (let i = 0; i < sqls.length; i++) {
92
- const { query, params } = _chunk7WEBHXZDcjs.pgFormatter.format(sqls[i], { serializer });
93
- _chunkXOQHZABKcjs.tracer.info("db:sql:query", {
92
+ const { query, params } = _chunkHXQYRDCRcjs.pgFormatter.format(sqls[i], { serializer });
93
+ _chunkQVEVSWG6cjs.tracer.info("db:sql:query", {
94
94
  query,
95
95
  params,
96
- debugSQL: _chunk7WEBHXZDcjs.pgFormatter.describe(sqls[i], { serializer })
96
+ debugSQL: _chunkHXQYRDCRcjs.pgFormatter.describe(sqls[i], { serializer })
97
97
  });
98
98
  try {
99
99
  let result = params.length > 0 ? await client.query(query, params) : await client.query(query);
@@ -101,14 +101,14 @@ async function batchQuery(client, sqls, serializer, options) {
101
101
  result = {
102
102
  ...result,
103
103
  rows: result.rows.map(
104
- (row) => _chunkXOQHZABKcjs.mapSQLQueryResult.call(void 0, row, options.mapping)
104
+ (row) => _chunkQVEVSWG6cjs.mapSQLQueryResult.call(void 0, row, options.mapping)
105
105
  )
106
106
  };
107
107
  }
108
108
  results[i] = { rowCount: result.rowCount, rows: result.rows };
109
109
  } catch (error) {
110
- _chunkXOQHZABKcjs.tracer.error("db:sql:batch_query:execute:error", { error });
111
- throw _chunk7WEBHXZDcjs.mapPostgresError.call(void 0, error);
110
+ _chunkQVEVSWG6cjs.tracer.error("db:sql:batch_query:execute:error", { error });
111
+ throw _chunkHXQYRDCRcjs.mapPostgresError.call(void 0, error);
112
112
  }
113
113
  }
114
114
  return results;
@@ -121,11 +121,11 @@ async function batchCommand(client, sqls, serializer, options) {
121
121
  await client.query(`SET statement_timeout = ${options.timeoutMs}`);
122
122
  }
123
123
  for (let i = 0; i < sqls.length; i++) {
124
- const { query, params } = _chunk7WEBHXZDcjs.pgFormatter.format(sqls[i], { serializer });
125
- _chunkXOQHZABKcjs.tracer.info("db:sql:command", {
124
+ const { query, params } = _chunkHXQYRDCRcjs.pgFormatter.format(sqls[i], { serializer });
125
+ _chunkQVEVSWG6cjs.tracer.info("db:sql:command", {
126
126
  query,
127
127
  params,
128
- debugSQL: _chunk7WEBHXZDcjs.pgFormatter.describe(sqls[i], { serializer })
128
+ debugSQL: _chunkHXQYRDCRcjs.pgFormatter.describe(sqls[i], { serializer })
129
129
  });
130
130
  try {
131
131
  let result = params.length > 0 ? await client.query(query, params) : await client.query(query);
@@ -133,17 +133,17 @@ async function batchCommand(client, sqls, serializer, options) {
133
133
  result = {
134
134
  ...result,
135
135
  rows: result.rows.map(
136
- (row) => _chunkXOQHZABKcjs.mapSQLQueryResult.call(void 0, row, options.mapping)
136
+ (row) => _chunkQVEVSWG6cjs.mapSQLQueryResult.call(void 0, row, options.mapping)
137
137
  )
138
138
  };
139
139
  }
140
140
  results[i] = { rowCount: result.rowCount, rows: result.rows };
141
141
  if (_optionalChain([options, 'optionalAccess', _5 => _5.assertChanges]) && (_nullishCoalesce(results[i].rowCount, () => ( 0))) === 0) {
142
- throw new (0, _chunkXOQHZABKcjs.BatchCommandNoChangesError)(i);
142
+ throw new (0, _chunkQVEVSWG6cjs.BatchCommandNoChangesError)(i);
143
143
  }
144
144
  } catch (error) {
145
- _chunkXOQHZABKcjs.tracer.error("db:sql:batch_command:execute:error", { error });
146
- throw _chunk7WEBHXZDcjs.mapPostgresError.call(void 0, error);
145
+ _chunkQVEVSWG6cjs.tracer.error("db:sql:batch_command:execute:error", { error });
146
+ throw _chunkHXQYRDCRcjs.mapPostgresError.call(void 0, error);
147
147
  }
148
148
  }
149
149
  return results;
@@ -180,16 +180,17 @@ var pgTransaction = (connection, serializer) => (getClient, options) => ({
180
180
  if (_optionalChain([options, 'optionalAccess', _11 => _11.close])) await _optionalChain([options, 'optionalAccess', _12 => _12.close, 'call', _13 => _13(client, error)]);
181
181
  }
182
182
  },
183
- execute: _chunkXOQHZABKcjs.sqlExecutor.call(void 0, pgSQLExecutor({ serializer }), {
183
+ execute: _chunkQVEVSWG6cjs.sqlExecutor.call(void 0, pgSQLExecutor({ serializer }), {
184
184
  connect: () => getClient
185
- })
185
+ }),
186
+ _transactionOptions: _nullishCoalesce(options, () => ( {}))
186
187
  });
187
188
 
188
189
  // src/storage/postgresql/pg/connections/connection.ts
189
190
  var PgDriverType = "PostgreSQL:pg";
190
191
  var pgClientConnection = (options) => {
191
192
  const { connect, close } = options;
192
- return _chunkXOQHZABKcjs.createConnection.call(void 0, {
193
+ return _chunkQVEVSWG6cjs.createConnection.call(void 0, {
193
194
  driverType: PgDriverType,
194
195
  connect,
195
196
  close,
@@ -200,7 +201,7 @@ var pgClientConnection = (options) => {
200
201
  };
201
202
  var pgPoolClientConnection = (options) => {
202
203
  const { connect, close } = options;
203
- return _chunkXOQHZABKcjs.createConnection.call(void 0, {
204
+ return _chunkQVEVSWG6cjs.createConnection.call(void 0, {
204
205
  driverType: PgDriverType,
205
206
  connect,
206
207
  close,
@@ -264,7 +265,7 @@ var pgNativePool = (options) => {
264
265
  });
265
266
  const open = () => Promise.resolve(getConnection());
266
267
  const close = () => endPgPool({ connectionString, database });
267
- return _chunkXOQHZABKcjs.createConnectionPool.call(void 0, {
268
+ return _chunkQVEVSWG6cjs.createConnectionPool.call(void 0, {
268
269
  driverType: PgDriverType,
269
270
  connection: open,
270
271
  close,
@@ -273,7 +274,7 @@ var pgNativePool = (options) => {
273
274
  };
274
275
  var pgAmbientNativePool = (options) => {
275
276
  const { pool } = options;
276
- return _chunkXOQHZABKcjs.createConnectionPool.call(void 0, {
277
+ return _chunkQVEVSWG6cjs.createConnectionPool.call(void 0, {
277
278
  driverType: PgDriverType,
278
279
  getConnection: () => pgConnection({
279
280
  type: "PoolClient",
@@ -285,14 +286,14 @@ var pgAmbientNativePool = (options) => {
285
286
  };
286
287
  var pgAmbientConnectionPool = (options) => {
287
288
  const { connection } = options;
288
- return _chunkXOQHZABKcjs.createAmbientConnectionPool.call(void 0, {
289
+ return _chunkQVEVSWG6cjs.createAmbientConnectionPool.call(void 0, {
289
290
  driverType: PgDriverType,
290
291
  connection
291
292
  });
292
293
  };
293
294
  var pgClientPool = (options) => {
294
295
  const { connectionString, database } = options;
295
- return _chunkXOQHZABKcjs.createConnectionPool.call(void 0, {
296
+ return _chunkQVEVSWG6cjs.createConnectionPool.call(void 0, {
296
297
  driverType: PgDriverType,
297
298
  getConnection: () => {
298
299
  const connect = async () => {
@@ -326,7 +327,7 @@ var pgAmbientClientPool = (options) => {
326
327
  };
327
328
  const open = () => Promise.resolve(getConnection());
328
329
  const close = () => Promise.resolve();
329
- return _chunkXOQHZABKcjs.createConnectionPool.call(void 0, {
330
+ return _chunkQVEVSWG6cjs.createConnectionPool.call(void 0, {
330
331
  driverType: PgDriverType,
331
332
  connection: open,
332
333
  close,
@@ -335,7 +336,7 @@ var pgAmbientClientPool = (options) => {
335
336
  };
336
337
  function pgPool(options) {
337
338
  const { connectionString, database } = options;
338
- const serializer = _nullishCoalesce(_optionalChain([options, 'access', _16 => _16.serialization, 'optionalAccess', _17 => _17.serializer]), () => ( _chunkXOQHZABKcjs.JSONSerializer));
339
+ const serializer = _nullishCoalesce(_optionalChain([options, 'access', _16 => _16.serialization, 'optionalAccess', _17 => _17.serializer]), () => ( _chunkQVEVSWG6cjs.JSONSerializer));
339
340
  if ("client" in options && options.client)
340
341
  return pgAmbientClientPool({ client: options.client, serializer });
341
342
  if ("connection" in options && options.connection)
@@ -357,7 +358,7 @@ var usageCounter = /* @__PURE__ */ new Map();
357
358
  var getPgPool = (connectionStringOrOptions) => {
358
359
  const connectionString = typeof connectionStringOrOptions === "string" ? connectionStringOrOptions : connectionStringOrOptions.connectionString;
359
360
  const poolOptions = typeof connectionStringOrOptions === "string" ? { connectionString } : connectionStringOrOptions;
360
- const database = _nullishCoalesce(poolOptions.database, () => ( (poolOptions.connectionString ? _nullishCoalesce(_chunkH7ZKIJHBcjs.parseDatabaseName.call(void 0, poolOptions.connectionString), () => ( _chunkH7ZKIJHBcjs.defaultPostgreSqlDatabase)) : void 0)));
361
+ const database = _nullishCoalesce(poolOptions.database, () => ( (poolOptions.connectionString ? _nullishCoalesce(_chunk7RMJPFU5cjs.parseDatabaseName.call(void 0, poolOptions.connectionString), () => ( _chunk7RMJPFU5cjs.defaultPostgreSqlDatabase)) : void 0)));
361
362
  const lookupKey = key(connectionString, database);
362
363
  updatePoolUsageCounter(lookupKey, 1);
363
364
  return _nullishCoalesce(pools.get(lookupKey), () => ( pools.set(lookupKey, new _pg2.default.Pool(poolOptions)).get(lookupKey)));
@@ -367,7 +368,7 @@ var endPgPool = async ({
367
368
  database,
368
369
  force
369
370
  }) => {
370
- database = _nullishCoalesce(_nullishCoalesce(database, () => ( _chunkH7ZKIJHBcjs.parseDatabaseName.call(void 0, connectionString))), () => ( void 0));
371
+ database = _nullishCoalesce(_nullishCoalesce(database, () => ( _chunk7RMJPFU5cjs.parseDatabaseName.call(void 0, connectionString))), () => ( void 0));
371
372
  const lookupKey = key(connectionString, database);
372
373
  const pool = pools.get(lookupKey);
373
374
  if (pool && (updatePoolUsageCounter(lookupKey, -1) <= 0 || force === true)) {
@@ -378,14 +379,14 @@ var onEndPool = async (lookupKey, pool) => {
378
379
  try {
379
380
  await pool.end();
380
381
  } catch (error) {
381
- _chunkXOQHZABKcjs.tracer.error("connection-closing-error", { lookupKey, error });
382
+ _chunkQVEVSWG6cjs.tracer.error("connection-closing-error", { lookupKey, error });
382
383
  }
383
384
  pools.delete(lookupKey);
384
385
  };
385
386
  var endAllPgPools = () => Promise.all(
386
387
  [...pools.entries()].map(([lookupKey, pool]) => onEndPool(lookupKey, pool))
387
388
  );
388
- var key = (connectionString, database) => `${connectionString}|${_nullishCoalesce(database, () => ( _chunkH7ZKIJHBcjs.defaultPostgreSqlDatabase))}`;
389
+ var key = (connectionString, database) => `${connectionString}|${_nullishCoalesce(database, () => ( _chunk7RMJPFU5cjs.defaultPostgreSqlDatabase))}`;
389
390
  var updatePoolUsageCounter = (lookupKey, by) => {
390
391
  const currentCounter = _nullishCoalesce(usageCounter.get(lookupKey), () => ( 0));
391
392
  const newCounter = currentCounter + by;
@@ -396,7 +397,7 @@ var updatePoolUsageCounter = (lookupKey, by) => {
396
397
  // src/storage/postgresql/pg/index.ts
397
398
  var tryParseConnectionString = (connectionString) => {
398
399
  try {
399
- return _chunkH7ZKIJHBcjs.PostgreSQLConnectionString.call(void 0, connectionString);
400
+ return _chunk7RMJPFU5cjs.PostgreSQLConnectionString.call(void 0, connectionString);
400
401
  } catch (e) {
401
402
  return null;
402
403
  }
@@ -404,16 +405,16 @@ var tryParseConnectionString = (connectionString) => {
404
405
  var pgDumboDriver = {
405
406
  driverType: PgDriverType,
406
407
  createPool: (options) => pgPool(options),
407
- sqlFormatter: _chunk7WEBHXZDcjs.pgFormatter,
408
- defaultMigratorOptions: _chunk7WEBHXZDcjs.DefaultPostgreSQLMigratorOptions,
409
- canHandle: _chunkXOQHZABKcjs.canHandleDriverWithConnectionString.call(void 0,
408
+ sqlFormatter: _chunkHXQYRDCRcjs.pgFormatter,
409
+ defaultMigratorOptions: _chunkHXQYRDCRcjs.DefaultPostgreSQLMigratorOptions,
410
+ canHandle: _chunkQVEVSWG6cjs.canHandleDriverWithConnectionString.call(void 0,
410
411
  PgDriverType,
411
412
  tryParseConnectionString
412
413
  ),
413
- databaseMetadata: _chunkH7ZKIJHBcjs.postgreSQLMetadata
414
+ databaseMetadata: _chunk7RMJPFU5cjs.postgreSQLMetadata
414
415
  };
415
416
  var usePgDumboDriver = () => {
416
- _chunkXOQHZABKcjs.dumboDatabaseDriverRegistry.register(PgDriverType, pgDumboDriver);
417
+ _chunkQVEVSWG6cjs.dumboDatabaseDriverRegistry.register(PgDriverType, pgDumboDriver);
417
418
  };
418
419
  usePgDumboDriver();
419
420
 
@@ -462,5 +463,5 @@ usePgDumboDriver();
462
463
 
463
464
 
464
465
 
465
- exports.AdvisoryLock = _chunk7WEBHXZDcjs.AdvisoryLock; exports.DefaultPostgreSQLMigratorOptions = _chunk7WEBHXZDcjs.DefaultPostgreSQLMigratorOptions; exports.PgDriverType = PgDriverType; exports.PostgreSQLArrayProcessor = _chunk7WEBHXZDcjs.PostgreSQLArrayProcessor; exports.PostgreSQLConnectionString = _chunkH7ZKIJHBcjs.PostgreSQLConnectionString; exports.PostgreSQLDatabaseName = _chunk7WEBHXZDcjs.PostgreSQLDatabaseName; exports.PostgreSQLExpandSQLInProcessor = _chunk7WEBHXZDcjs.PostgreSQLExpandSQLInProcessor; exports.acquireAdvisoryLock = _chunk7WEBHXZDcjs.acquireAdvisoryLock; exports.advisoryLock = _chunk7WEBHXZDcjs.advisoryLock; exports.checkConnection = checkConnection; exports.defaultPostgreSQLConnectionString = _chunkH7ZKIJHBcjs.defaultPostgreSQLConnectionString; exports.defaultPostgreSqlDatabase = _chunkH7ZKIJHBcjs.defaultPostgreSqlDatabase; exports.endAllPgPools = endAllPgPools; exports.endPgPool = endPgPool; exports.functionExists = _chunkH7ZKIJHBcjs.functionExists; exports.functionExistsSQL = _chunkH7ZKIJHBcjs.functionExistsSQL; exports.getPgPool = getPgPool; exports.isPgClient = isPgClient; exports.isPgNativePool = isPgNativePool; exports.isPgPoolClient = isPgPoolClient; exports.mapPostgresError = _chunk7WEBHXZDcjs.mapPostgresError; exports.onEndPool = onEndPool; exports.parseDatabaseName = _chunkH7ZKIJHBcjs.parseDatabaseName; exports.pgAmbientClientPool = pgAmbientClientPool; exports.pgAmbientConnectionPool = pgAmbientConnectionPool; exports.pgAmbientNativePool = pgAmbientNativePool; exports.pgClientConnection = pgClientConnection; exports.pgClientPool = pgClientPool; exports.pgConnection = pgConnection; exports.pgDumboDriver = pgDumboDriver; exports.pgExecute = pgExecute; exports.pgFormatter = _chunk7WEBHXZDcjs.pgFormatter; exports.pgNativePool = pgNativePool; exports.pgPool = pgPool; exports.pgPoolClientConnection = pgPoolClientConnection; exports.pgSQLExecutor = pgSQLExecutor; exports.pgTransaction = pgTransaction; exports.postgreSQLColumnProcessors = _chunk7WEBHXZDcjs.postgreSQLColumnProcessors; exports.postgreSQLMetadata = _chunkH7ZKIJHBcjs.postgreSQLMetadata; exports.releaseAdvisoryLock = _chunk7WEBHXZDcjs.releaseAdvisoryLock; exports.setPgTypeParser = setPgTypeParser; exports.tableExists = _chunkH7ZKIJHBcjs.tableExists; exports.tableExistsSQL = _chunkH7ZKIJHBcjs.tableExistsSQL; exports.tryAcquireAdvisoryLock = _chunk7WEBHXZDcjs.tryAcquireAdvisoryLock; exports.usePgDumboDriver = usePgDumboDriver;
466
+ exports.AdvisoryLock = _chunkHXQYRDCRcjs.AdvisoryLock; exports.DefaultPostgreSQLMigratorOptions = _chunkHXQYRDCRcjs.DefaultPostgreSQLMigratorOptions; exports.PgDriverType = PgDriverType; exports.PostgreSQLArrayProcessor = _chunkHXQYRDCRcjs.PostgreSQLArrayProcessor; exports.PostgreSQLConnectionString = _chunk7RMJPFU5cjs.PostgreSQLConnectionString; exports.PostgreSQLDatabaseName = _chunkHXQYRDCRcjs.PostgreSQLDatabaseName; exports.PostgreSQLExpandSQLInProcessor = _chunkHXQYRDCRcjs.PostgreSQLExpandSQLInProcessor; exports.acquireAdvisoryLock = _chunkHXQYRDCRcjs.acquireAdvisoryLock; exports.advisoryLock = _chunkHXQYRDCRcjs.advisoryLock; exports.checkConnection = checkConnection; exports.defaultPostgreSQLConnectionString = _chunk7RMJPFU5cjs.defaultPostgreSQLConnectionString; exports.defaultPostgreSqlDatabase = _chunk7RMJPFU5cjs.defaultPostgreSqlDatabase; exports.endAllPgPools = endAllPgPools; exports.endPgPool = endPgPool; exports.functionExists = _chunk7RMJPFU5cjs.functionExists; exports.functionExistsSQL = _chunk7RMJPFU5cjs.functionExistsSQL; exports.getPgPool = getPgPool; exports.isPgClient = isPgClient; exports.isPgNativePool = isPgNativePool; exports.isPgPoolClient = isPgPoolClient; exports.mapPostgresError = _chunkHXQYRDCRcjs.mapPostgresError; exports.onEndPool = onEndPool; exports.parseDatabaseName = _chunk7RMJPFU5cjs.parseDatabaseName; exports.pgAmbientClientPool = pgAmbientClientPool; exports.pgAmbientConnectionPool = pgAmbientConnectionPool; exports.pgAmbientNativePool = pgAmbientNativePool; exports.pgClientConnection = pgClientConnection; exports.pgClientPool = pgClientPool; exports.pgConnection = pgConnection; exports.pgDumboDriver = pgDumboDriver; exports.pgExecute = pgExecute; exports.pgFormatter = _chunkHXQYRDCRcjs.pgFormatter; exports.pgNativePool = pgNativePool; exports.pgPool = pgPool; exports.pgPoolClientConnection = pgPoolClientConnection; exports.pgSQLExecutor = pgSQLExecutor; exports.pgTransaction = pgTransaction; exports.postgreSQLColumnProcessors = _chunkHXQYRDCRcjs.postgreSQLColumnProcessors; exports.postgreSQLMetadata = _chunk7RMJPFU5cjs.postgreSQLMetadata; exports.releaseAdvisoryLock = _chunkHXQYRDCRcjs.releaseAdvisoryLock; exports.setPgTypeParser = setPgTypeParser; exports.tableExists = _chunk7RMJPFU5cjs.tableExists; exports.tableExistsSQL = _chunk7RMJPFU5cjs.tableExistsSQL; exports.tryAcquireAdvisoryLock = _chunkHXQYRDCRcjs.tryAcquireAdvisoryLock; exports.usePgDumboDriver = usePgDumboDriver;
466
467
  //# sourceMappingURL=pg.cjs.map
package/dist/pg.cjs.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"sources":["/home/runner/work/Pongo/Pongo/src/packages/dumbo/dist/pg.cjs","../src/storage/postgresql/pg/connections/connection.ts","../src/storage/postgresql/pg/execute/execute.ts","../src/storage/postgresql/pg/connections/transaction.ts","../src/storage/postgresql/pg/connections/pool.ts","../src/storage/postgresql/pg/serialization/index.ts","../src/storage/postgresql/pg/index.ts"],"names":[],"mappings":"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","file":"/home/runner/work/Pongo/Pongo/src/packages/dumbo/dist/pg.cjs","sourcesContent":[null,"import pg from 'pg';\nimport type { JSONSerializer } from '../../../../core';\nimport {\n createConnection,\n type Connection,\n type DatabaseTransaction,\n} from '../../../../core';\nimport type { PostgreSQLDriverType } from '../../core';\nimport { pgSQLExecutor } from '../execute';\nimport { pgTransaction, type PgTransactionOptions } from './transaction';\n\nexport type PgDriverType = PostgreSQLDriverType<'pg'>;\nexport const PgDriverType: PgDriverType = 'PostgreSQL:pg';\n\nexport type PgPoolClient = pg.PoolClient;\nexport type PgClient = pg.Client;\n\nexport type PgClientOrPoolClient = PgPoolClient | PgClient;\n\nexport type PgPoolOrClient = pg.Pool | PgPoolClient | PgClient;\n\nexport type PgClientConnection = Connection<\n PgClientConnection,\n PgDriverType,\n PgClient,\n DatabaseTransaction<PgClientConnection>,\n PgTransactionOptions\n>;\n\nexport type PgPoolClientConnection = Connection<\n PgPoolClientConnection,\n PgDriverType,\n PgPoolClient,\n DatabaseTransaction<PgPoolClientConnection>,\n PgTransactionOptions\n>;\n\nexport type PgConnection = PgPoolClientConnection | PgClientConnection;\n\nexport type PgPoolClientOptions = {\n type: 'PoolClient';\n connect: () => Promise<PgPoolClient>;\n close: (client: PgPoolClient) => Promise<void>;\n};\n\nexport type PgClientOptions = {\n type: 'Client';\n connect: () => Promise<PgClient>;\n close: (client: PgClient) => Promise<void>;\n};\n\nexport type PgClientConnectionOptions = PgClientOptions & {\n serializer: JSONSerializer;\n};\n\nexport type PgPoolClientConnectionOptions = PgPoolClientOptions & {\n serializer: JSONSerializer;\n};\n\nexport const pgClientConnection = (\n options: PgClientConnectionOptions,\n): PgClientConnection => {\n const { connect, close } = options;\n\n return createConnection({\n driverType: PgDriverType,\n connect,\n close,\n initTransaction: (connection) =>\n pgTransaction(connection, options.serializer),\n executor: pgSQLExecutor,\n serializer: options.serializer,\n });\n};\n\nexport const pgPoolClientConnection = (\n options: PgPoolClientConnectionOptions,\n): PgPoolClientConnection => {\n const { connect, close } = options;\n\n return createConnection({\n driverType: PgDriverType,\n connect,\n close,\n initTransaction: (connection) =>\n pgTransaction(connection, options.serializer),\n executor: pgSQLExecutor,\n serializer: options.serializer,\n });\n};\n\nexport type PgConnectionOptions =\n | PgPoolClientConnectionOptions\n | PgClientConnectionOptions;\n\nexport function pgConnection(\n options: PgPoolClientConnectionOptions,\n): PgPoolClientConnection;\nexport function pgConnection(\n options: PgClientConnectionOptions,\n): PgClientConnection;\nexport function pgConnection(\n options: PgPoolClientConnectionOptions | PgClientConnectionOptions,\n): PgPoolClientConnection | PgClientConnection {\n return options.type === 'Client'\n ? pgClientConnection(options)\n : pgPoolClientConnection(options);\n}\n\nexport type ConnectionCheckResult =\n | { successful: true }\n | {\n successful: false;\n code: string | undefined;\n errorType: 'ConnectionRefused' | 'Authentication' | 'Unknown';\n error: unknown;\n };\n\nexport const checkConnection = async (\n connectionString: string,\n): Promise<ConnectionCheckResult> => {\n const client = new pg.Client({\n connectionString,\n });\n\n try {\n await client.connect();\n return { successful: true };\n } catch (error) {\n const code =\n error instanceof Error &&\n 'code' in error &&\n typeof error.code === 'string'\n ? error.code\n : undefined;\n\n return {\n successful: false,\n errorType:\n code === 'ECONNREFUSED'\n ? 'ConnectionRefused'\n : code === '28P01'\n ? 'Authentication'\n : 'Unknown',\n code,\n error,\n };\n } finally {\n // Ensure the client is closed properly if connected\n await client.end();\n }\n};\n","import pg from 'pg';\nimport type { JSONSerializer } from '../../../../core';\nimport {\n BatchCommandNoChangesError,\n mapSQLQueryResult,\n tracer,\n type BatchSQLCommandOptions,\n type DbSQLExecutor,\n type QueryResult,\n type QueryResultRow,\n type SQL,\n type SQLQueryOptions,\n} from '../../../../core';\nimport { pgFormatter } from '../../core';\nimport { mapPostgresError } from '../../core/errors/errorMapper';\nimport { PgDriverType, type PgClientOrPoolClient } from '../connections';\n\nexport const isPgNativePool = (\n poolOrClient: pg.Pool | pg.PoolClient | pg.Client,\n): poolOrClient is pg.Pool => {\n return poolOrClient instanceof pg.Pool;\n};\n\nexport const isPgClient = (\n poolOrClient: pg.Pool | pg.PoolClient | pg.Client,\n): poolOrClient is pg.Client => poolOrClient instanceof pg.Client;\n\nexport const isPgPoolClient = (\n poolOrClient: pg.Pool | pg.PoolClient | pg.Client,\n): poolOrClient is pg.PoolClient =>\n 'release' in poolOrClient && typeof poolOrClient.release === 'function';\n\nexport const pgExecute = async <Result = void>(\n poolOrClient: pg.Pool | pg.PoolClient | pg.Client,\n handle: (client: pg.PoolClient | pg.Client) => Promise<Result>,\n) => {\n const client = isPgNativePool(poolOrClient)\n ? await poolOrClient.connect()\n : poolOrClient;\n\n try {\n return await handle(client);\n } finally {\n // release only if client wasn't injected externally\n if (isPgNativePool(poolOrClient) && isPgPoolClient(client))\n client.release();\n }\n};\n\nexport type PgSQLExecutor = DbSQLExecutor<PgDriverType, PgClientOrPoolClient>;\n\nexport const pgSQLExecutor = ({\n serializer,\n}: {\n serializer: JSONSerializer;\n}): PgSQLExecutor => ({\n driverType: PgDriverType,\n query: async <Result extends QueryResultRow = QueryResultRow>(\n client: PgClientOrPoolClient,\n sql: SQL,\n options: SQLQueryOptions | undefined,\n ) => {\n const results = await batchQuery<Result>(\n client,\n [sql],\n serializer,\n options,\n );\n return results[0]!;\n },\n batchQuery: <Result extends QueryResultRow = QueryResultRow>(\n client: PgClientOrPoolClient,\n sqls: SQL[],\n options: SQLQueryOptions | undefined,\n ) => batchQuery<Result>(client, sqls, serializer, options),\n command: async <Result extends QueryResultRow = QueryResultRow>(\n client: PgClientOrPoolClient,\n sql: SQL,\n options: BatchSQLCommandOptions | undefined,\n ) => {\n const results = await batchCommand<Result>(\n client,\n [sql],\n serializer,\n options,\n );\n return results[0]!;\n },\n batchCommand: <Result extends QueryResultRow = QueryResultRow>(\n client: PgClientOrPoolClient,\n sqls: SQL[],\n options: BatchSQLCommandOptions | undefined,\n ) => batchCommand<Result>(client, sqls, serializer, options),\n formatter: pgFormatter,\n});\n\nasync function batchQuery<Result extends QueryResultRow = QueryResultRow>(\n client: PgClientOrPoolClient,\n sqls: SQL[],\n serializer: JSONSerializer,\n options?: SQLQueryOptions,\n): Promise<QueryResult<Result>[]> {\n const results: QueryResult<Result>[] = Array<QueryResult<Result>>(\n sqls.length,\n );\n\n if (options?.timeoutMs) {\n await client.query(`SET statement_timeout = ${options.timeoutMs}`);\n }\n\n //TODO: make it smarter at some point\n for (let i = 0; i < sqls.length; i++) {\n const { query, params } = pgFormatter.format(sqls[i]!, { serializer });\n tracer.info('db:sql:query', {\n query,\n params,\n debugSQL: pgFormatter.describe(sqls[i]!, { serializer }),\n });\n try {\n let result =\n params.length > 0\n ? await client.query<Result>(query, params)\n : await client.query<Result>(query);\n\n if (options?.mapping) {\n result = {\n ...result,\n rows: result.rows.map((row) =>\n mapSQLQueryResult(row, options.mapping!),\n ),\n };\n }\n\n results[i] = { rowCount: result.rowCount, rows: result.rows };\n } catch (error) {\n tracer.error('db:sql:batch_query:execute:error', { error });\n throw mapPostgresError(error);\n }\n }\n\n return results;\n}\n\nasync function batchCommand<Result extends QueryResultRow = QueryResultRow>(\n client: PgClientOrPoolClient,\n sqls: SQL[],\n serializer: JSONSerializer,\n options?: BatchSQLCommandOptions,\n): Promise<QueryResult<Result>[]> {\n const results: QueryResult<Result>[] = Array<QueryResult<Result>>(\n sqls.length,\n );\n\n if (options?.timeoutMs) {\n await client.query(`SET statement_timeout = ${options.timeoutMs}`);\n }\n\n //TODO: make it smarter at some point\n for (let i = 0; i < sqls.length; i++) {\n const { query, params } = pgFormatter.format(sqls[i]!, { serializer });\n tracer.info('db:sql:command', {\n query,\n params,\n debugSQL: pgFormatter.describe(sqls[i]!, { serializer }),\n });\n try {\n let result =\n params.length > 0\n ? await client.query<Result>(query, params)\n : await client.query<Result>(query);\n\n if (options?.mapping) {\n result = {\n ...result,\n rows: result.rows.map((row) =>\n mapSQLQueryResult(row, options.mapping!),\n ),\n };\n }\n\n results[i] = { rowCount: result.rowCount, rows: result.rows };\n\n if (options?.assertChanges && (results[i]!.rowCount ?? 0) === 0) {\n throw new BatchCommandNoChangesError(i);\n }\n } catch (error) {\n tracer.error('db:sql:batch_command:execute:error', { error });\n throw mapPostgresError(error);\n }\n }\n\n return results;\n}\n","import type { JSONSerializer } from '../../../../core';\nimport {\n sqlExecutor,\n type AnyConnection,\n type DatabaseTransaction,\n type DatabaseTransactionOptions,\n} from '../../../../core';\nimport { pgSQLExecutor } from '../execute';\nimport {\n PgDriverType,\n type PgConnection,\n type PgPoolOrClient,\n} from './connection';\n\nexport type PgTransaction = DatabaseTransaction<PgConnection>;\n\nexport type PgIsolationLevel =\n | 'READ UNCOMMITTED'\n | 'READ COMMITTED'\n | 'REPEATABLE READ'\n | 'SERIALIZABLE';\n\nexport type PgTransactionOptions = DatabaseTransactionOptions & {\n isolationLevel?: PgIsolationLevel;\n};\n\nexport const pgTransaction =\n <ConnectionType extends AnyConnection = AnyConnection>(\n connection: () => ConnectionType,\n serializer: JSONSerializer,\n ) =>\n <DbClient extends PgPoolOrClient = PgPoolOrClient>(\n getClient: Promise<DbClient>,\n options?: {\n close: (client: DbClient, error?: unknown) => Promise<void>;\n } & PgTransactionOptions,\n ): DatabaseTransaction<ConnectionType> => ({\n connection: connection(),\n driverType: PgDriverType,\n begin: async () => {\n const client = await getClient;\n const parts = ['BEGIN'];\n if (options?.isolationLevel) {\n parts.push(`ISOLATION LEVEL ${options.isolationLevel}`);\n }\n if (options?.readonly) {\n parts.push('READ ONLY');\n }\n await client.query(parts.join(' '));\n },\n commit: async () => {\n const client = await getClient;\n\n try {\n await client.query('COMMIT');\n } finally {\n if (options?.close) await options?.close(client);\n }\n },\n rollback: async (error?: unknown) => {\n const client = await getClient;\n try {\n await client.query('ROLLBACK');\n } finally {\n if (options?.close) await options?.close(client, error);\n }\n },\n execute: sqlExecutor(pgSQLExecutor({ serializer }), {\n connect: () => getClient,\n }),\n });\n","import pg from 'pg';\nimport {\n createAmbientConnectionPool,\n createConnectionPool,\n JSONSerializer,\n tracer,\n type ConnectionPool,\n type InferTransactionFromConnection,\n type InferTransactionOptionsFromConnection,\n type JSONSerializationOptions,\n} from '../../../../core';\nimport { defaultPostgreSqlDatabase, parseDatabaseName } from '../../core';\nimport { setPgTypeParser } from '../serialization';\nimport {\n pgConnection,\n PgDriverType,\n type PgClientConnection,\n type PgPoolClientConnection,\n} from './connection';\n\nexport type PgNativePool = ConnectionPool<\n PgPoolClientConnection,\n InferTransactionFromConnection<PgPoolClientConnection>,\n InferTransactionOptionsFromConnection<PgPoolClientConnection>\n>;\n\nexport type PgAmbientClientPool = ConnectionPool<\n PgClientConnection,\n InferTransactionFromConnection<PgClientConnection>,\n InferTransactionOptionsFromConnection<PgClientConnection>\n>;\n\nexport type PgAmbientConnectionPool = ConnectionPool<\n PgPoolClientConnection | PgClientConnection\n>;\n\nexport type PgPool =\n | PgNativePool\n | PgAmbientClientPool\n | PgAmbientConnectionPool;\n\nexport const pgNativePool = (options: {\n connectionString: string;\n database?: string | undefined;\n serializer: JSONSerializer;\n}): PgNativePool => {\n const { connectionString, database } = options;\n const pool = getPgPool({ connectionString, database });\n\n const getConnection = () =>\n pgConnection({\n type: 'PoolClient',\n connect: async () => {\n const client = await pool.connect();\n\n setPgTypeParser(client, {\n parseBigInts: true,\n serializer: options.serializer,\n });\n\n return client;\n },\n close: (client) => Promise.resolve(client.release()),\n serializer: options.serializer,\n });\n\n const open = () => Promise.resolve(getConnection());\n const close = () => endPgPool({ connectionString, database });\n\n return createConnectionPool({\n driverType: PgDriverType,\n connection: open,\n close,\n getConnection,\n });\n};\n\nexport const pgAmbientNativePool = (options: {\n pool: pg.Pool;\n serializer: JSONSerializer;\n}): PgNativePool => {\n const { pool } = options;\n\n return createConnectionPool({\n driverType: PgDriverType,\n getConnection: () =>\n pgConnection({\n type: 'PoolClient',\n connect: () => pool.connect(),\n close: (client) => Promise.resolve(client.release()),\n serializer: options.serializer,\n }),\n });\n};\n\nexport const pgAmbientConnectionPool = (options: {\n connection: PgPoolClientConnection | PgClientConnection;\n}): PgAmbientConnectionPool => {\n const { connection } = options;\n\n return createAmbientConnectionPool({\n driverType: PgDriverType,\n connection,\n });\n};\n\nexport const pgClientPool = (options: {\n connectionString: string;\n database?: string | undefined;\n serializer: JSONSerializer;\n}): PgAmbientClientPool => {\n const { connectionString, database } = options;\n\n return createConnectionPool({\n driverType: PgDriverType,\n getConnection: () => {\n const connect = async () => {\n const client = new pg.Client({ connectionString, database });\n\n setPgTypeParser(client, {\n parseBigInts: true,\n serializer: options.serializer,\n });\n\n await client.connect();\n return client;\n };\n\n return pgConnection({\n type: 'Client',\n connect,\n close: (client) => client.end(),\n serializer: options.serializer,\n });\n },\n });\n};\n\nexport const pgAmbientClientPool = (options: {\n client: pg.Client;\n serializer: JSONSerializer;\n}): PgAmbientClientPool => {\n const { client } = options;\n\n const getConnection = () => {\n const connect = () => Promise.resolve(client);\n\n return pgConnection({\n type: 'Client',\n connect,\n close: () => Promise.resolve(),\n serializer: options.serializer,\n });\n };\n\n const open = () => Promise.resolve(getConnection());\n const close = () => Promise.resolve();\n\n return createConnectionPool({\n driverType: PgDriverType,\n connection: open,\n close,\n getConnection,\n });\n};\n\nexport type PgPoolPooledOptions =\n | {\n connectionString: string;\n database?: string;\n pooled: true;\n pool: pg.Pool;\n }\n | {\n connectionString: string;\n database?: string;\n pool: pg.Pool;\n }\n | {\n connectionString: string;\n database?: string;\n pooled: true;\n }\n | {\n connectionString: string;\n database?: string;\n };\n\nexport type PgPoolNotPooledOptions =\n | {\n connectionString: string;\n database?: string;\n pooled: false;\n client: pg.Client;\n }\n | {\n connectionString: string;\n database?: string;\n client: pg.Client;\n }\n | {\n connectionString: string;\n database?: string;\n pooled: false;\n }\n | {\n connectionString: string;\n database?: string;\n connection: PgPoolClientConnection | PgClientConnection;\n pooled?: false;\n };\n\nexport type PgPoolOptions = (PgPoolPooledOptions | PgPoolNotPooledOptions) &\n JSONSerializationOptions;\n\nexport function pgPool(options: PgPoolPooledOptions): PgNativePool;\nexport function pgPool(options: PgPoolNotPooledOptions): PgAmbientClientPool;\nexport function pgPool(\n options: PgPoolOptions,\n): PgNativePool | PgAmbientClientPool | PgAmbientConnectionPool {\n const { connectionString, database } = options;\n\n const serializer = options.serialization?.serializer ?? JSONSerializer;\n\n if ('client' in options && options.client)\n return pgAmbientClientPool({ client: options.client, serializer });\n\n if ('connection' in options && options.connection)\n return pgAmbientConnectionPool({\n connection: options.connection,\n });\n\n if ('pooled' in options && options.pooled === false)\n return pgClientPool({ connectionString, database, serializer });\n\n if ('pool' in options && options.pool)\n return pgAmbientNativePool({ pool: options.pool, serializer });\n\n return pgNativePool({\n connectionString,\n database,\n serializer,\n });\n}\n\nconst pools: Map<string, pg.Pool> = new Map();\nconst usageCounter: Map<string, number> = new Map();\n\nexport const getPgPool = (\n connectionStringOrOptions: string | pg.PoolConfig,\n): pg.Pool => {\n const connectionString =\n typeof connectionStringOrOptions === 'string'\n ? connectionStringOrOptions\n : connectionStringOrOptions.connectionString!;\n\n const poolOptions =\n typeof connectionStringOrOptions === 'string'\n ? { connectionString }\n : connectionStringOrOptions;\n\n const database =\n poolOptions.database ??\n (poolOptions.connectionString\n ? (parseDatabaseName(poolOptions.connectionString) ??\n defaultPostgreSqlDatabase)\n : undefined);\n\n const lookupKey = key(connectionString, database);\n\n updatePoolUsageCounter(lookupKey, 1);\n\n return (\n pools.get(lookupKey) ??\n pools.set(lookupKey, new pg.Pool(poolOptions)).get(lookupKey)!\n );\n};\n\nexport const endPgPool = async ({\n connectionString,\n database,\n force,\n}: {\n connectionString: string;\n database?: string | undefined;\n force?: boolean;\n}): Promise<void> => {\n database = database ?? parseDatabaseName(connectionString) ?? undefined;\n const lookupKey = key(connectionString, database);\n\n const pool = pools.get(lookupKey);\n if (pool && (updatePoolUsageCounter(lookupKey, -1) <= 0 || force === true)) {\n await onEndPool(lookupKey, pool);\n }\n};\n\nexport const onEndPool = async (lookupKey: string, pool: pg.Pool) => {\n try {\n await pool.end();\n } catch (error) {\n tracer.error('connection-closing-error', { lookupKey, error });\n }\n pools.delete(lookupKey);\n};\n\nexport const endAllPgPools = () =>\n Promise.all(\n [...pools.entries()].map(([lookupKey, pool]) => onEndPool(lookupKey, pool)),\n );\n\nconst key = (connectionString: string, database: string | undefined) =>\n `${connectionString}|${database ?? defaultPostgreSqlDatabase}`;\n\nconst updatePoolUsageCounter = (lookupKey: string, by: 1 | -1): number => {\n const currentCounter = usageCounter.get(lookupKey) ?? 0;\n const newCounter = currentCounter + by;\n\n usageCounter.set(lookupKey, currentCounter + by);\n\n return newCounter;\n};\n","import type pg from 'pg';\nimport type { JSONSerializer } from '../../../../core/serializer';\n\nexport const setPgTypeParser = (\n client: pg.Client | pg.PoolClient,\n options?: {\n parseBigInts?: boolean;\n serializer: JSONSerializer;\n },\n) => {\n // BigInt\n if (options?.parseBigInts === true)\n client.setTypeParser(20, (val) => BigInt(val));\n\n if (options?.serializer) {\n // JSONB\n // eslint-disable-next-line @typescript-eslint/no-unsafe-return\n client.setTypeParser(3802, (val) => options.serializer.deserialize(val));\n\n // JSON\n // eslint-disable-next-line @typescript-eslint/no-unsafe-return\n client.setTypeParser(114, (val) => options.serializer.deserialize(val));\n }\n};\n","import {\n canHandleDriverWithConnectionString,\n type DumboDatabaseDriver,\n dumboDatabaseDriverRegistry,\n} from '../../../core';\nimport {\n DefaultPostgreSQLMigratorOptions,\n pgFormatter,\n PostgreSQLConnectionString,\n postgreSQLMetadata,\n} from '../core';\nimport {\n type PgConnection,\n PgDriverType,\n pgPool,\n type PgPool,\n type PgPoolOptions,\n} from './connections';\n\nconst tryParseConnectionString = (connectionString: string) => {\n try {\n return PostgreSQLConnectionString(connectionString);\n } catch {\n return null;\n }\n};\n\nexport const pgDumboDriver: DumboDatabaseDriver<\n PgConnection,\n PgPoolOptions,\n PgPool\n> = {\n driverType: PgDriverType,\n createPool: (options) => pgPool(options as PgPoolOptions),\n sqlFormatter: pgFormatter,\n defaultMigratorOptions: DefaultPostgreSQLMigratorOptions,\n canHandle: canHandleDriverWithConnectionString(\n PgDriverType,\n tryParseConnectionString,\n ),\n databaseMetadata: postgreSQLMetadata,\n};\n\nexport const usePgDumboDriver = () => {\n dumboDatabaseDriverRegistry.register(PgDriverType, pgDumboDriver);\n};\n\nusePgDumboDriver();\n\nexport type PgDumboOptions = PgPoolOptions;\nexport * from './connections';\nexport * from './execute';\nexport * from './serialization';\n"]}
1
+ {"version":3,"sources":["/home/runner/work/Pongo/Pongo/src/packages/dumbo/dist/pg.cjs","../src/storage/postgresql/pg/connections/connection.ts","../src/storage/postgresql/pg/execute/execute.ts","../src/storage/postgresql/pg/connections/transaction.ts","../src/storage/postgresql/pg/connections/pool.ts","../src/storage/postgresql/pg/serialization/index.ts","../src/storage/postgresql/pg/index.ts"],"names":[],"mappings":"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","file":"/home/runner/work/Pongo/Pongo/src/packages/dumbo/dist/pg.cjs","sourcesContent":[null,"import pg from 'pg';\nimport type { JSONSerializer } from '../../../../core';\nimport {\n createConnection,\n type Connection,\n type DatabaseTransaction,\n} from '../../../../core';\nimport type { PostgreSQLDriverType } from '../../core';\nimport { pgSQLExecutor } from '../execute';\nimport { pgTransaction, type PgTransactionOptions } from './transaction';\n\nexport type PgDriverType = PostgreSQLDriverType<'pg'>;\nexport const PgDriverType: PgDriverType = 'PostgreSQL:pg';\n\nexport type PgPoolClient = pg.PoolClient;\nexport type PgClient = pg.Client;\n\nexport type PgClientOrPoolClient = PgPoolClient | PgClient;\n\nexport type PgPoolOrClient = pg.Pool | PgPoolClient | PgClient;\n\nexport type PgClientConnection = Connection<\n PgClientConnection,\n PgDriverType,\n PgClient,\n DatabaseTransaction<PgClientConnection, PgTransactionOptions>\n>;\n\nexport type PgPoolClientConnection = Connection<\n PgPoolClientConnection,\n PgDriverType,\n PgPoolClient,\n DatabaseTransaction<PgPoolClientConnection, PgTransactionOptions>\n>;\n\nexport type PgConnection = PgPoolClientConnection | PgClientConnection;\n\nexport type PgPoolClientOptions = {\n type: 'PoolClient';\n connect: () => Promise<PgPoolClient>;\n close: (client: PgPoolClient) => Promise<void>;\n};\n\nexport type PgClientOptions = {\n type: 'Client';\n connect: () => Promise<PgClient>;\n close: (client: PgClient) => Promise<void>;\n};\n\nexport type PgClientConnectionOptions = PgClientOptions & {\n serializer: JSONSerializer;\n};\n\nexport type PgPoolClientConnectionOptions = PgPoolClientOptions & {\n serializer: JSONSerializer;\n};\n\nexport const pgClientConnection = (\n options: PgClientConnectionOptions,\n): PgClientConnection => {\n const { connect, close } = options;\n\n return createConnection({\n driverType: PgDriverType,\n connect,\n close,\n initTransaction: (connection) =>\n pgTransaction(connection, options.serializer),\n executor: pgSQLExecutor,\n serializer: options.serializer,\n });\n};\n\nexport const pgPoolClientConnection = (\n options: PgPoolClientConnectionOptions,\n): PgPoolClientConnection => {\n const { connect, close } = options;\n\n return createConnection({\n driverType: PgDriverType,\n connect,\n close,\n initTransaction: (connection) =>\n pgTransaction(connection, options.serializer),\n executor: pgSQLExecutor,\n serializer: options.serializer,\n });\n};\n\nexport type PgConnectionOptions =\n | PgPoolClientConnectionOptions\n | PgClientConnectionOptions;\n\nexport function pgConnection(\n options: PgPoolClientConnectionOptions,\n): PgPoolClientConnection;\nexport function pgConnection(\n options: PgClientConnectionOptions,\n): PgClientConnection;\nexport function pgConnection(\n options: PgPoolClientConnectionOptions | PgClientConnectionOptions,\n): PgPoolClientConnection | PgClientConnection {\n return options.type === 'Client'\n ? pgClientConnection(options)\n : pgPoolClientConnection(options);\n}\n\nexport type ConnectionCheckResult =\n | { successful: true }\n | {\n successful: false;\n code: string | undefined;\n errorType: 'ConnectionRefused' | 'Authentication' | 'Unknown';\n error: unknown;\n };\n\nexport const checkConnection = async (\n connectionString: string,\n): Promise<ConnectionCheckResult> => {\n const client = new pg.Client({\n connectionString,\n });\n\n try {\n await client.connect();\n return { successful: true };\n } catch (error) {\n const code =\n error instanceof Error &&\n 'code' in error &&\n typeof error.code === 'string'\n ? error.code\n : undefined;\n\n return {\n successful: false,\n errorType:\n code === 'ECONNREFUSED'\n ? 'ConnectionRefused'\n : code === '28P01'\n ? 'Authentication'\n : 'Unknown',\n code,\n error,\n };\n } finally {\n // Ensure the client is closed properly if connected\n await client.end();\n }\n};\n","import pg from 'pg';\nimport type { JSONSerializer } from '../../../../core';\nimport {\n BatchCommandNoChangesError,\n mapSQLQueryResult,\n tracer,\n type BatchSQLCommandOptions,\n type DbSQLExecutor,\n type QueryResult,\n type QueryResultRow,\n type SQL,\n type SQLQueryOptions,\n} from '../../../../core';\nimport { pgFormatter } from '../../core';\nimport { mapPostgresError } from '../../core/errors/errorMapper';\nimport { PgDriverType, type PgClientOrPoolClient } from '../connections';\n\nexport const isPgNativePool = (\n poolOrClient: pg.Pool | pg.PoolClient | pg.Client,\n): poolOrClient is pg.Pool => {\n return poolOrClient instanceof pg.Pool;\n};\n\nexport const isPgClient = (\n poolOrClient: pg.Pool | pg.PoolClient | pg.Client,\n): poolOrClient is pg.Client => poolOrClient instanceof pg.Client;\n\nexport const isPgPoolClient = (\n poolOrClient: pg.Pool | pg.PoolClient | pg.Client,\n): poolOrClient is pg.PoolClient =>\n 'release' in poolOrClient && typeof poolOrClient.release === 'function';\n\nexport const pgExecute = async <Result = void>(\n poolOrClient: pg.Pool | pg.PoolClient | pg.Client,\n handle: (client: pg.PoolClient | pg.Client) => Promise<Result>,\n) => {\n const client = isPgNativePool(poolOrClient)\n ? await poolOrClient.connect()\n : poolOrClient;\n\n try {\n return await handle(client);\n } finally {\n // release only if client wasn't injected externally\n if (isPgNativePool(poolOrClient) && isPgPoolClient(client))\n client.release();\n }\n};\n\nexport type PgSQLExecutor = DbSQLExecutor<PgDriverType, PgClientOrPoolClient>;\n\nexport const pgSQLExecutor = ({\n serializer,\n}: {\n serializer: JSONSerializer;\n}): PgSQLExecutor => ({\n driverType: PgDriverType,\n query: async <Result extends QueryResultRow = QueryResultRow>(\n client: PgClientOrPoolClient,\n sql: SQL,\n options: SQLQueryOptions | undefined,\n ) => {\n const results = await batchQuery<Result>(\n client,\n [sql],\n serializer,\n options,\n );\n return results[0]!;\n },\n batchQuery: <Result extends QueryResultRow = QueryResultRow>(\n client: PgClientOrPoolClient,\n sqls: SQL[],\n options: SQLQueryOptions | undefined,\n ) => batchQuery<Result>(client, sqls, serializer, options),\n command: async <Result extends QueryResultRow = QueryResultRow>(\n client: PgClientOrPoolClient,\n sql: SQL,\n options: BatchSQLCommandOptions | undefined,\n ) => {\n const results = await batchCommand<Result>(\n client,\n [sql],\n serializer,\n options,\n );\n return results[0]!;\n },\n batchCommand: <Result extends QueryResultRow = QueryResultRow>(\n client: PgClientOrPoolClient,\n sqls: SQL[],\n options: BatchSQLCommandOptions | undefined,\n ) => batchCommand<Result>(client, sqls, serializer, options),\n formatter: pgFormatter,\n});\n\nasync function batchQuery<Result extends QueryResultRow = QueryResultRow>(\n client: PgClientOrPoolClient,\n sqls: SQL[],\n serializer: JSONSerializer,\n options?: SQLQueryOptions,\n): Promise<QueryResult<Result>[]> {\n const results: QueryResult<Result>[] = Array<QueryResult<Result>>(\n sqls.length,\n );\n\n if (options?.timeoutMs) {\n await client.query(`SET statement_timeout = ${options.timeoutMs}`);\n }\n\n //TODO: make it smarter at some point\n for (let i = 0; i < sqls.length; i++) {\n const { query, params } = pgFormatter.format(sqls[i]!, { serializer });\n tracer.info('db:sql:query', {\n query,\n params,\n debugSQL: pgFormatter.describe(sqls[i]!, { serializer }),\n });\n try {\n let result =\n params.length > 0\n ? await client.query<Result>(query, params)\n : await client.query<Result>(query);\n\n if (options?.mapping) {\n result = {\n ...result,\n rows: result.rows.map((row) =>\n mapSQLQueryResult(row, options.mapping!),\n ),\n };\n }\n\n results[i] = { rowCount: result.rowCount, rows: result.rows };\n } catch (error) {\n tracer.error('db:sql:batch_query:execute:error', { error });\n throw mapPostgresError(error);\n }\n }\n\n return results;\n}\n\nasync function batchCommand<Result extends QueryResultRow = QueryResultRow>(\n client: PgClientOrPoolClient,\n sqls: SQL[],\n serializer: JSONSerializer,\n options?: BatchSQLCommandOptions,\n): Promise<QueryResult<Result>[]> {\n const results: QueryResult<Result>[] = Array<QueryResult<Result>>(\n sqls.length,\n );\n\n if (options?.timeoutMs) {\n await client.query(`SET statement_timeout = ${options.timeoutMs}`);\n }\n\n //TODO: make it smarter at some point\n for (let i = 0; i < sqls.length; i++) {\n const { query, params } = pgFormatter.format(sqls[i]!, { serializer });\n tracer.info('db:sql:command', {\n query,\n params,\n debugSQL: pgFormatter.describe(sqls[i]!, { serializer }),\n });\n try {\n let result =\n params.length > 0\n ? await client.query<Result>(query, params)\n : await client.query<Result>(query);\n\n if (options?.mapping) {\n result = {\n ...result,\n rows: result.rows.map((row) =>\n mapSQLQueryResult(row, options.mapping!),\n ),\n };\n }\n\n results[i] = { rowCount: result.rowCount, rows: result.rows };\n\n if (options?.assertChanges && (results[i]!.rowCount ?? 0) === 0) {\n throw new BatchCommandNoChangesError(i);\n }\n } catch (error) {\n tracer.error('db:sql:batch_command:execute:error', { error });\n throw mapPostgresError(error);\n }\n }\n\n return results;\n}\n","import type { JSONSerializer } from '../../../../core';\nimport {\n sqlExecutor,\n type AnyConnection,\n type DatabaseTransaction,\n type DatabaseTransactionOptions,\n} from '../../../../core';\nimport { pgSQLExecutor } from '../execute';\nimport {\n PgDriverType,\n type PgConnection,\n type PgPoolOrClient,\n} from './connection';\n\nexport type PgTransaction = DatabaseTransaction<\n PgConnection,\n PgTransactionOptions\n>;\n\nexport type PgIsolationLevel =\n | 'READ UNCOMMITTED'\n | 'READ COMMITTED'\n | 'REPEATABLE READ'\n | 'SERIALIZABLE';\n\nexport type PgTransactionOptions = DatabaseTransactionOptions & {\n isolationLevel?: PgIsolationLevel;\n};\n\nexport const pgTransaction =\n <ConnectionType extends AnyConnection = AnyConnection>(\n connection: () => ConnectionType,\n serializer: JSONSerializer,\n ) =>\n <DbClient extends PgPoolOrClient = PgPoolOrClient>(\n getClient: Promise<DbClient>,\n options?: {\n close: (client: DbClient, error?: unknown) => Promise<void>;\n } & PgTransactionOptions,\n ): DatabaseTransaction<ConnectionType> => ({\n connection: connection(),\n driverType: PgDriverType,\n begin: async () => {\n const client = await getClient;\n const parts = ['BEGIN'];\n if (options?.isolationLevel) {\n parts.push(`ISOLATION LEVEL ${options.isolationLevel}`);\n }\n if (options?.readonly) {\n parts.push('READ ONLY');\n }\n await client.query(parts.join(' '));\n },\n commit: async () => {\n const client = await getClient;\n\n try {\n await client.query('COMMIT');\n } finally {\n if (options?.close) await options?.close(client);\n }\n },\n rollback: async (error?: unknown) => {\n const client = await getClient;\n try {\n await client.query('ROLLBACK');\n } finally {\n if (options?.close) await options?.close(client, error);\n }\n },\n execute: sqlExecutor(pgSQLExecutor({ serializer }), {\n connect: () => getClient,\n }),\n _transactionOptions: options ?? {},\n });\n","import pg from 'pg';\nimport {\n createAmbientConnectionPool,\n createConnectionPool,\n JSONSerializer,\n tracer,\n type ConnectionPool,\n type JSONSerializationOptions,\n} from '../../../../core';\nimport { defaultPostgreSqlDatabase, parseDatabaseName } from '../../core';\nimport { setPgTypeParser } from '../serialization';\nimport {\n pgConnection,\n PgDriverType,\n type PgClientConnection,\n type PgPoolClientConnection,\n} from './connection';\n\nexport type PgNativePool = ConnectionPool<PgPoolClientConnection>;\n\nexport type PgAmbientClientPool = ConnectionPool<PgClientConnection>;\n\nexport type PgAmbientConnectionPool = ConnectionPool<\n PgPoolClientConnection | PgClientConnection\n>;\n\nexport type PgPool =\n | PgNativePool\n | PgAmbientClientPool\n | PgAmbientConnectionPool;\n\nexport const pgNativePool = (options: {\n connectionString: string;\n database?: string | undefined;\n serializer: JSONSerializer;\n}): PgNativePool => {\n const { connectionString, database } = options;\n const pool = getPgPool({ connectionString, database });\n\n const getConnection = () =>\n pgConnection({\n type: 'PoolClient',\n connect: async () => {\n const client = await pool.connect();\n\n setPgTypeParser(client, {\n parseBigInts: true,\n serializer: options.serializer,\n });\n\n return client;\n },\n close: (client) => Promise.resolve(client.release()),\n serializer: options.serializer,\n });\n\n const open = () => Promise.resolve(getConnection());\n const close = () => endPgPool({ connectionString, database });\n\n return createConnectionPool({\n driverType: PgDriverType,\n connection: open,\n close,\n getConnection,\n });\n};\n\nexport const pgAmbientNativePool = (options: {\n pool: pg.Pool;\n serializer: JSONSerializer;\n}): PgNativePool => {\n const { pool } = options;\n\n return createConnectionPool({\n driverType: PgDriverType,\n getConnection: () =>\n pgConnection({\n type: 'PoolClient',\n connect: () => pool.connect(),\n close: (client) => Promise.resolve(client.release()),\n serializer: options.serializer,\n }),\n });\n};\n\nexport const pgAmbientConnectionPool = (options: {\n connection: PgPoolClientConnection | PgClientConnection;\n}): PgAmbientConnectionPool => {\n const { connection } = options;\n\n return createAmbientConnectionPool({\n driverType: PgDriverType,\n connection,\n });\n};\n\nexport const pgClientPool = (options: {\n connectionString: string;\n database?: string | undefined;\n serializer: JSONSerializer;\n}): PgAmbientClientPool => {\n const { connectionString, database } = options;\n\n return createConnectionPool({\n driverType: PgDriverType,\n getConnection: () => {\n const connect = async () => {\n const client = new pg.Client({ connectionString, database });\n\n setPgTypeParser(client, {\n parseBigInts: true,\n serializer: options.serializer,\n });\n\n await client.connect();\n return client;\n };\n\n return pgConnection({\n type: 'Client',\n connect,\n close: (client) => client.end(),\n serializer: options.serializer,\n });\n },\n });\n};\n\nexport const pgAmbientClientPool = (options: {\n client: pg.Client;\n serializer: JSONSerializer;\n}): PgAmbientClientPool => {\n const { client } = options;\n\n const getConnection = () => {\n const connect = () => Promise.resolve(client);\n\n return pgConnection({\n type: 'Client',\n connect,\n close: () => Promise.resolve(),\n serializer: options.serializer,\n });\n };\n\n const open = () => Promise.resolve(getConnection());\n const close = () => Promise.resolve();\n\n return createConnectionPool({\n driverType: PgDriverType,\n connection: open,\n close,\n getConnection,\n });\n};\n\nexport type PgPoolPooledOptions =\n | {\n connectionString: string;\n database?: string;\n pooled: true;\n pool: pg.Pool;\n }\n | {\n connectionString: string;\n database?: string;\n pool: pg.Pool;\n }\n | {\n connectionString: string;\n database?: string;\n pooled: true;\n }\n | {\n connectionString: string;\n database?: string;\n };\n\nexport type PgPoolNotPooledOptions =\n | {\n connectionString: string;\n database?: string;\n pooled: false;\n client: pg.Client;\n }\n | {\n connectionString: string;\n database?: string;\n client: pg.Client;\n }\n | {\n connectionString: string;\n database?: string;\n pooled: false;\n }\n | {\n connectionString: string;\n database?: string;\n connection: PgPoolClientConnection | PgClientConnection;\n pooled?: false;\n };\n\nexport type PgPoolOptions = (PgPoolPooledOptions | PgPoolNotPooledOptions) &\n JSONSerializationOptions;\n\nexport function pgPool(options: PgPoolPooledOptions): PgNativePool;\nexport function pgPool(options: PgPoolNotPooledOptions): PgAmbientClientPool;\nexport function pgPool(\n options: PgPoolOptions,\n): PgNativePool | PgAmbientClientPool | PgAmbientConnectionPool {\n const { connectionString, database } = options;\n\n const serializer = options.serialization?.serializer ?? JSONSerializer;\n\n if ('client' in options && options.client)\n return pgAmbientClientPool({ client: options.client, serializer });\n\n if ('connection' in options && options.connection)\n return pgAmbientConnectionPool({\n connection: options.connection,\n });\n\n if ('pooled' in options && options.pooled === false)\n return pgClientPool({ connectionString, database, serializer });\n\n if ('pool' in options && options.pool)\n return pgAmbientNativePool({ pool: options.pool, serializer });\n\n return pgNativePool({\n connectionString,\n database,\n serializer,\n });\n}\n\nconst pools: Map<string, pg.Pool> = new Map();\nconst usageCounter: Map<string, number> = new Map();\n\nexport const getPgPool = (\n connectionStringOrOptions: string | pg.PoolConfig,\n): pg.Pool => {\n const connectionString =\n typeof connectionStringOrOptions === 'string'\n ? connectionStringOrOptions\n : connectionStringOrOptions.connectionString!;\n\n const poolOptions =\n typeof connectionStringOrOptions === 'string'\n ? { connectionString }\n : connectionStringOrOptions;\n\n const database =\n poolOptions.database ??\n (poolOptions.connectionString\n ? (parseDatabaseName(poolOptions.connectionString) ??\n defaultPostgreSqlDatabase)\n : undefined);\n\n const lookupKey = key(connectionString, database);\n\n updatePoolUsageCounter(lookupKey, 1);\n\n return (\n pools.get(lookupKey) ??\n pools.set(lookupKey, new pg.Pool(poolOptions)).get(lookupKey)!\n );\n};\n\nexport const endPgPool = async ({\n connectionString,\n database,\n force,\n}: {\n connectionString: string;\n database?: string | undefined;\n force?: boolean;\n}): Promise<void> => {\n database = database ?? parseDatabaseName(connectionString) ?? undefined;\n const lookupKey = key(connectionString, database);\n\n const pool = pools.get(lookupKey);\n if (pool && (updatePoolUsageCounter(lookupKey, -1) <= 0 || force === true)) {\n await onEndPool(lookupKey, pool);\n }\n};\n\nexport const onEndPool = async (lookupKey: string, pool: pg.Pool) => {\n try {\n await pool.end();\n } catch (error) {\n tracer.error('connection-closing-error', { lookupKey, error });\n }\n pools.delete(lookupKey);\n};\n\nexport const endAllPgPools = () =>\n Promise.all(\n [...pools.entries()].map(([lookupKey, pool]) => onEndPool(lookupKey, pool)),\n );\n\nconst key = (connectionString: string, database: string | undefined) =>\n `${connectionString}|${database ?? defaultPostgreSqlDatabase}`;\n\nconst updatePoolUsageCounter = (lookupKey: string, by: 1 | -1): number => {\n const currentCounter = usageCounter.get(lookupKey) ?? 0;\n const newCounter = currentCounter + by;\n\n usageCounter.set(lookupKey, currentCounter + by);\n\n return newCounter;\n};\n","import type pg from 'pg';\nimport type { JSONSerializer } from '../../../../core/serializer';\n\nexport const setPgTypeParser = (\n client: pg.Client | pg.PoolClient,\n options?: {\n parseBigInts?: boolean;\n serializer: JSONSerializer;\n },\n) => {\n // BigInt\n if (options?.parseBigInts === true)\n client.setTypeParser(20, (val) => BigInt(val));\n\n if (options?.serializer) {\n // JSONB\n // eslint-disable-next-line @typescript-eslint/no-unsafe-return\n client.setTypeParser(3802, (val) => options.serializer.deserialize(val));\n\n // JSON\n // eslint-disable-next-line @typescript-eslint/no-unsafe-return\n client.setTypeParser(114, (val) => options.serializer.deserialize(val));\n }\n};\n","import {\n canHandleDriverWithConnectionString,\n type DumboDatabaseDriver,\n dumboDatabaseDriverRegistry,\n} from '../../../core';\nimport {\n DefaultPostgreSQLMigratorOptions,\n pgFormatter,\n PostgreSQLConnectionString,\n postgreSQLMetadata,\n} from '../core';\nimport {\n type PgConnection,\n PgDriverType,\n pgPool,\n type PgPool,\n type PgPoolOptions,\n} from './connections';\n\nconst tryParseConnectionString = (connectionString: string) => {\n try {\n return PostgreSQLConnectionString(connectionString);\n } catch {\n return null;\n }\n};\n\nexport const pgDumboDriver: DumboDatabaseDriver<\n PgConnection,\n PgPoolOptions,\n PgPool\n> = {\n driverType: PgDriverType,\n createPool: (options) => pgPool(options as PgPoolOptions),\n sqlFormatter: pgFormatter,\n defaultMigratorOptions: DefaultPostgreSQLMigratorOptions,\n canHandle: canHandleDriverWithConnectionString(\n PgDriverType,\n tryParseConnectionString,\n ),\n databaseMetadata: postgreSQLMetadata,\n};\n\nexport const usePgDumboDriver = () => {\n dumboDatabaseDriverRegistry.register(PgDriverType, pgDumboDriver);\n};\n\nusePgDumboDriver();\n\nexport type PgDumboOptions = PgPoolOptions;\nexport * from './connections';\nexport * from './execute';\nexport * from './serialization';\n"]}
package/dist/pg.d.cts CHANGED
@@ -1,10 +1,10 @@
1
1
  import { PostgreSQLDriverType } from './postgresql.cjs';
2
2
  export { AdvisoryLock, DefaultPostgreSQLMigratorOptions, PostgreSQLArrayProcessor, PostgreSQLConnectionString, PostgreSQLDatabaseName, PostgreSQLExpandSQLInProcessor, acquireAdvisoryLock, advisoryLock, defaultPostgreSQLConnectionString, defaultPostgreSqlDatabase, functionExists, functionExistsSQL, mapPostgresError, parseDatabaseName, pgFormatter, postgreSQLColumnProcessors, postgreSQLMetadata, releaseAdvisoryLock, tableExists, tableExistsSQL, tryAcquireAdvisoryLock } from './postgresql.cjs';
3
- import { g as DatabaseTransactionOptions, h as DatabaseTransaction, A as AnyConnection, J as JSONSerializer, C as Connection, i as ConnectionPool, I as InferTransactionFromConnection, j as InferTransactionOptionsFromConnection, k as JSONSerializationOptions, l as DbSQLExecutor, c as DumboDatabaseDriver } from './connectionString-oeg1LD5V.cjs';
3
+ import { h as DatabaseTransactionOptions, i as DatabaseTransaction, A as AnyConnection, J as JSONSerializer, C as Connection, j as ConnectionPool, k as JSONSerializationOptions, l as DbSQLExecutor, c as DumboDatabaseDriver } from './connectionString-J4yRT71A.cjs';
4
4
  import pg from 'pg';
5
- import './columnProcessors-Difrrk4c.cjs';
5
+ import './columnProcessors-CsQjv8si.cjs';
6
6
 
7
- type PgTransaction = DatabaseTransaction<PgConnection>;
7
+ type PgTransaction = DatabaseTransaction<PgConnection, PgTransactionOptions>;
8
8
  type PgIsolationLevel = 'READ UNCOMMITTED' | 'READ COMMITTED' | 'REPEATABLE READ' | 'SERIALIZABLE';
9
9
  type PgTransactionOptions = DatabaseTransactionOptions & {
10
10
  isolationLevel?: PgIsolationLevel;
@@ -19,8 +19,8 @@ type PgPoolClient = pg.PoolClient;
19
19
  type PgClient = pg.Client;
20
20
  type PgClientOrPoolClient = PgPoolClient | PgClient;
21
21
  type PgPoolOrClient = pg.Pool | PgPoolClient | PgClient;
22
- type PgClientConnection = Connection<PgClientConnection, PgDriverType, PgClient, DatabaseTransaction<PgClientConnection>, PgTransactionOptions>;
23
- type PgPoolClientConnection = Connection<PgPoolClientConnection, PgDriverType, PgPoolClient, DatabaseTransaction<PgPoolClientConnection>, PgTransactionOptions>;
22
+ type PgClientConnection = Connection<PgClientConnection, PgDriverType, PgClient, DatabaseTransaction<PgClientConnection, PgTransactionOptions>>;
23
+ type PgPoolClientConnection = Connection<PgPoolClientConnection, PgDriverType, PgPoolClient, DatabaseTransaction<PgPoolClientConnection, PgTransactionOptions>>;
24
24
  type PgConnection = PgPoolClientConnection | PgClientConnection;
25
25
  type PgPoolClientOptions = {
26
26
  type: 'PoolClient';
@@ -53,8 +53,8 @@ type ConnectionCheckResult = {
53
53
  };
54
54
  declare const checkConnection: (connectionString: string) => Promise<ConnectionCheckResult>;
55
55
 
56
- type PgNativePool = ConnectionPool<PgPoolClientConnection, InferTransactionFromConnection<PgPoolClientConnection>, InferTransactionOptionsFromConnection<PgPoolClientConnection>>;
57
- type PgAmbientClientPool = ConnectionPool<PgClientConnection, InferTransactionFromConnection<PgClientConnection>, InferTransactionOptionsFromConnection<PgClientConnection>>;
56
+ type PgNativePool = ConnectionPool<PgPoolClientConnection>;
57
+ type PgAmbientClientPool = ConnectionPool<PgClientConnection>;
58
58
  type PgAmbientConnectionPool = ConnectionPool<PgPoolClientConnection | PgClientConnection>;
59
59
  type PgPool = PgNativePool | PgAmbientClientPool | PgAmbientConnectionPool;
60
60
  declare const pgNativePool: (options: {
package/dist/pg.d.ts CHANGED
@@ -1,10 +1,10 @@
1
1
  import { PostgreSQLDriverType } from './postgresql.js';
2
2
  export { AdvisoryLock, DefaultPostgreSQLMigratorOptions, PostgreSQLArrayProcessor, PostgreSQLConnectionString, PostgreSQLDatabaseName, PostgreSQLExpandSQLInProcessor, acquireAdvisoryLock, advisoryLock, defaultPostgreSQLConnectionString, defaultPostgreSqlDatabase, functionExists, functionExistsSQL, mapPostgresError, parseDatabaseName, pgFormatter, postgreSQLColumnProcessors, postgreSQLMetadata, releaseAdvisoryLock, tableExists, tableExistsSQL, tryAcquireAdvisoryLock } from './postgresql.js';
3
- import { g as DatabaseTransactionOptions, h as DatabaseTransaction, A as AnyConnection, J as JSONSerializer, C as Connection, i as ConnectionPool, I as InferTransactionFromConnection, j as InferTransactionOptionsFromConnection, k as JSONSerializationOptions, l as DbSQLExecutor, c as DumboDatabaseDriver } from './connectionString-oeg1LD5V.js';
3
+ import { h as DatabaseTransactionOptions, i as DatabaseTransaction, A as AnyConnection, J as JSONSerializer, C as Connection, j as ConnectionPool, k as JSONSerializationOptions, l as DbSQLExecutor, c as DumboDatabaseDriver } from './connectionString-J4yRT71A.js';
4
4
  import pg from 'pg';
5
- import './columnProcessors-C7fRa54L.js';
5
+ import './columnProcessors-giHzjHuv.js';
6
6
 
7
- type PgTransaction = DatabaseTransaction<PgConnection>;
7
+ type PgTransaction = DatabaseTransaction<PgConnection, PgTransactionOptions>;
8
8
  type PgIsolationLevel = 'READ UNCOMMITTED' | 'READ COMMITTED' | 'REPEATABLE READ' | 'SERIALIZABLE';
9
9
  type PgTransactionOptions = DatabaseTransactionOptions & {
10
10
  isolationLevel?: PgIsolationLevel;
@@ -19,8 +19,8 @@ type PgPoolClient = pg.PoolClient;
19
19
  type PgClient = pg.Client;
20
20
  type PgClientOrPoolClient = PgPoolClient | PgClient;
21
21
  type PgPoolOrClient = pg.Pool | PgPoolClient | PgClient;
22
- type PgClientConnection = Connection<PgClientConnection, PgDriverType, PgClient, DatabaseTransaction<PgClientConnection>, PgTransactionOptions>;
23
- type PgPoolClientConnection = Connection<PgPoolClientConnection, PgDriverType, PgPoolClient, DatabaseTransaction<PgPoolClientConnection>, PgTransactionOptions>;
22
+ type PgClientConnection = Connection<PgClientConnection, PgDriverType, PgClient, DatabaseTransaction<PgClientConnection, PgTransactionOptions>>;
23
+ type PgPoolClientConnection = Connection<PgPoolClientConnection, PgDriverType, PgPoolClient, DatabaseTransaction<PgPoolClientConnection, PgTransactionOptions>>;
24
24
  type PgConnection = PgPoolClientConnection | PgClientConnection;
25
25
  type PgPoolClientOptions = {
26
26
  type: 'PoolClient';
@@ -53,8 +53,8 @@ type ConnectionCheckResult = {
53
53
  };
54
54
  declare const checkConnection: (connectionString: string) => Promise<ConnectionCheckResult>;
55
55
 
56
- type PgNativePool = ConnectionPool<PgPoolClientConnection, InferTransactionFromConnection<PgPoolClientConnection>, InferTransactionOptionsFromConnection<PgPoolClientConnection>>;
57
- type PgAmbientClientPool = ConnectionPool<PgClientConnection, InferTransactionFromConnection<PgClientConnection>, InferTransactionOptionsFromConnection<PgClientConnection>>;
56
+ type PgNativePool = ConnectionPool<PgPoolClientConnection>;
57
+ type PgAmbientClientPool = ConnectionPool<PgClientConnection>;
58
58
  type PgAmbientConnectionPool = ConnectionPool<PgPoolClientConnection | PgClientConnection>;
59
59
  type PgPool = PgNativePool | PgAmbientClientPool | PgAmbientConnectionPool;
60
60
  declare const pgNativePool: (options: {
package/dist/pg.js CHANGED
@@ -11,7 +11,7 @@ import {
11
11
  postgreSQLColumnProcessors,
12
12
  releaseAdvisoryLock,
13
13
  tryAcquireAdvisoryLock
14
- } from "./chunk-65DKXURG.js";
14
+ } from "./chunk-5OX6NE4Z.js";
15
15
  import {
16
16
  PostgreSQLConnectionString,
17
17
  defaultPostgreSQLConnectionString,
@@ -22,7 +22,7 @@ import {
22
22
  postgreSQLMetadata,
23
23
  tableExists,
24
24
  tableExistsSQL
25
- } from "./chunk-FC4JR2R3.js";
25
+ } from "./chunk-56QRSCG5.js";
26
26
  import {
27
27
  BatchCommandNoChangesError,
28
28
  JSONSerializer,
@@ -34,7 +34,7 @@ import {
34
34
  mapSQLQueryResult,
35
35
  sqlExecutor,
36
36
  tracer
37
- } from "./chunk-XO5T5N5S.js";
37
+ } from "./chunk-QUAG4MBP.js";
38
38
 
39
39
  // src/storage/postgresql/pg/connections/connection.ts
40
40
  import pg2 from "pg";
@@ -182,7 +182,8 @@ var pgTransaction = (connection, serializer) => (getClient, options) => ({
182
182
  },
183
183
  execute: sqlExecutor(pgSQLExecutor({ serializer }), {
184
184
  connect: () => getClient
185
- })
185
+ }),
186
+ _transactionOptions: options ?? {}
186
187
  });
187
188
 
188
189
  // src/storage/postgresql/pg/connections/connection.ts