@event-driven-io/dumbo 0.13.0-beta.2 → 0.13.0-beta.20

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 (90) hide show
  1. package/dist/chunk-3B24ORM3.js +34 -0
  2. package/dist/chunk-3B24ORM3.js.map +1 -0
  3. package/dist/chunk-FXETEUW2.cjs +34 -0
  4. package/dist/chunk-FXETEUW2.cjs.map +1 -0
  5. package/dist/chunk-JDP6VMRY.cjs +556 -0
  6. package/dist/chunk-JDP6VMRY.cjs.map +1 -0
  7. package/dist/{chunk-OJ34O3Q2.cjs → chunk-PYTHH6WO.cjs} +2161 -1639
  8. package/dist/chunk-PYTHH6WO.cjs.map +1 -0
  9. package/dist/chunk-SQXAAA3N.cjs +481 -0
  10. package/dist/chunk-SQXAAA3N.cjs.map +1 -0
  11. package/dist/chunk-U445U32Q.js +83 -0
  12. package/dist/chunk-U445U32Q.js.map +1 -0
  13. package/dist/{chunk-XVV3OOQX.js → chunk-USPL7TWB.js} +209 -58
  14. package/dist/chunk-USPL7TWB.js.map +1 -0
  15. package/dist/chunk-V3QUMPUM.js +481 -0
  16. package/dist/chunk-V3QUMPUM.js.map +1 -0
  17. package/dist/chunk-VIQJEUVF.cjs +83 -0
  18. package/dist/chunk-VIQJEUVF.cjs.map +1 -0
  19. package/dist/{chunk-N7RWT46K.js → chunk-ZH6YVE3B.js} +2132 -1610
  20. package/dist/chunk-ZH6YVE3B.js.map +1 -0
  21. package/dist/cloudflare.cjs +451 -0
  22. package/dist/cloudflare.cjs.map +1 -0
  23. package/dist/cloudflare.d.cts +92 -0
  24. package/dist/cloudflare.d.ts +92 -0
  25. package/dist/cloudflare.js +451 -0
  26. package/dist/cloudflare.js.map +1 -0
  27. package/dist/{columnProcessors-DMPpTPqM.d.ts → columnProcessors-BwcyMnUX.d.ts} +1 -1
  28. package/dist/{columnProcessors-BX-sH7ah.d.cts → columnProcessors-CO9z2XBz.d.cts} +1 -1
  29. package/dist/{connectionString-B1wm0TFc.d.cts → connectionString-DHJiGj2D.d.cts} +339 -129
  30. package/dist/{connectionString-B1wm0TFc.d.ts → connectionString-DHJiGj2D.d.ts} +339 -129
  31. package/dist/index.cjs +96 -4
  32. package/dist/index.cjs.map +1 -1
  33. package/dist/index.d.cts +23 -18
  34. package/dist/index.d.ts +23 -18
  35. package/dist/index.js +99 -7
  36. package/dist/index.js.map +1 -1
  37. package/dist/pg.cjs +375 -9
  38. package/dist/pg.cjs.map +1 -1
  39. package/dist/pg.d.cts +76 -104
  40. package/dist/pg.d.ts +76 -104
  41. package/dist/pg.js +427 -61
  42. package/dist/pg.js.map +1 -1
  43. package/dist/postgresql.cjs +50 -0
  44. package/dist/postgresql.cjs.map +1 -0
  45. package/dist/postgresql.d.cts +61 -0
  46. package/dist/postgresql.d.ts +61 -0
  47. package/dist/postgresql.js +50 -0
  48. package/dist/sqlite.cjs +56 -0
  49. package/dist/sqlite.cjs.map +1 -0
  50. package/dist/{index-C0h0c380.d.cts → sqlite.d.cts} +24 -7
  51. package/dist/{index-C2z_XBn6.d.ts → sqlite.d.ts} +24 -7
  52. package/dist/sqlite.js +56 -0
  53. package/dist/sqlite3.cjs +240 -11
  54. package/dist/sqlite3.cjs.map +1 -1
  55. package/dist/sqlite3.d.cts +38 -18
  56. package/dist/sqlite3.d.ts +38 -18
  57. package/dist/sqlite3.js +251 -22
  58. package/dist/sqlite3.js.map +1 -1
  59. package/package.json +69 -29
  60. package/dist/chunk-A7TC7IOP.cjs +0 -55
  61. package/dist/chunk-A7TC7IOP.cjs.map +0 -1
  62. package/dist/chunk-F7JQ7BX7.js +0 -240
  63. package/dist/chunk-F7JQ7BX7.js.map +0 -1
  64. package/dist/chunk-I34X53VL.js +0 -688
  65. package/dist/chunk-I34X53VL.js.map +0 -1
  66. package/dist/chunk-ISNF6USX.cjs +0 -688
  67. package/dist/chunk-ISNF6USX.cjs.map +0 -1
  68. package/dist/chunk-IYEHOE4S.cjs +0 -405
  69. package/dist/chunk-IYEHOE4S.cjs.map +0 -1
  70. package/dist/chunk-L2YZQAG3.cjs +0 -240
  71. package/dist/chunk-L2YZQAG3.cjs.map +0 -1
  72. package/dist/chunk-N7RWT46K.js.map +0 -1
  73. package/dist/chunk-OJ34O3Q2.cjs.map +0 -1
  74. package/dist/chunk-TXSETOGH.js +0 -55
  75. package/dist/chunk-TXSETOGH.js.map +0 -1
  76. package/dist/chunk-XVV3OOQX.js.map +0 -1
  77. package/dist/d1.cjs +0 -277
  78. package/dist/d1.cjs.map +0 -1
  79. package/dist/d1.d.cts +0 -72
  80. package/dist/d1.d.ts +0 -72
  81. package/dist/d1.js +0 -277
  82. package/dist/d1.js.map +0 -1
  83. package/dist/pg-3ACXFMU4.cjs +0 -59
  84. package/dist/pg-3ACXFMU4.cjs.map +0 -1
  85. package/dist/pg-GHOW3XSG.js +0 -59
  86. package/dist/sqlite3-EEIKQCJR.js +0 -25
  87. package/dist/sqlite3-SE4DDYZE.cjs +0 -25
  88. package/dist/sqlite3-SE4DDYZE.cjs.map +0 -1
  89. /package/dist/{pg-GHOW3XSG.js.map → postgresql.js.map} +0 -0
  90. /package/dist/{sqlite3-EEIKQCJR.js.map → sqlite.js.map} +0 -0
package/dist/pg.js CHANGED
@@ -1,93 +1,459 @@
1
1
  import {
2
2
  AdvisoryLock,
3
3
  DefaultPostgreSQLMigratorOptions,
4
- NodePostgresDriverType,
5
- PostgreSQLConnectionString,
4
+ PostgreSQLArrayProcessor,
6
5
  PostgreSQLDatabaseName,
6
+ PostgreSQLExpandSQLInProcessor,
7
7
  acquireAdvisoryLock,
8
8
  advisoryLock,
9
- checkConnection,
10
- connectionPool,
9
+ mapPostgresError,
10
+ pgFormatter,
11
+ postgreSQLColumnProcessors,
12
+ releaseAdvisoryLock,
13
+ tryAcquireAdvisoryLock
14
+ } from "./chunk-V3QUMPUM.js";
15
+ import {
16
+ PostgreSQLConnectionString,
11
17
  defaultPostgreSQLConnectionString,
12
18
  defaultPostgreSqlDatabase,
13
- endAllPools,
14
- endPool,
15
19
  functionExists,
16
20
  functionExistsSQL,
17
- getDatabaseNameOrDefault,
18
- getPool,
19
- isNodePostgresClient,
20
- isNodePostgresNativePool,
21
- isNodePostgresPoolClient,
22
- nodePostgresAmbientClientPool,
23
- nodePostgresAmbientConnectionPool,
24
- nodePostgresAmbientNativePool,
25
- nodePostgresClientConnection,
26
- nodePostgresClientPool,
27
- nodePostgresConnection,
28
- nodePostgresExecute,
29
- nodePostgresNativePool,
30
- nodePostgresPool,
31
- nodePostgresPoolClientConnection,
32
- nodePostgresSQLExecutor,
33
- nodePostgresTransaction,
34
- onEndPool,
35
- pgDatabaseDriver,
36
- pgFormatter,
37
- postgreSQLColumnProcessors,
38
- postgresPool,
39
- releaseAdvisoryLock,
40
- setNodePostgresTypeParser,
21
+ parseDatabaseName,
22
+ postgreSQLMetadata,
41
23
  tableExists,
42
- tableExistsSQL,
43
- tryAcquireAdvisoryLock,
44
- usePgDatabaseDriver
45
- } from "./chunk-I34X53VL.js";
46
- import "./chunk-N7RWT46K.js";
24
+ tableExistsSQL
25
+ } from "./chunk-U445U32Q.js";
26
+ import {
27
+ BatchCommandNoChangesError,
28
+ JSONSerializer,
29
+ canHandleDriverWithConnectionString,
30
+ createAmbientConnectionPool,
31
+ createConnection,
32
+ createConnectionPool,
33
+ dumboDatabaseDriverRegistry,
34
+ mapSQLQueryResult,
35
+ sqlExecutor,
36
+ tracer
37
+ } from "./chunk-ZH6YVE3B.js";
38
+
39
+ // src/storage/postgresql/pg/connections/connection.ts
40
+ import pg2 from "pg";
41
+
42
+ // src/storage/postgresql/pg/execute/execute.ts
43
+ import pg from "pg";
44
+ var isPgNativePool = (poolOrClient) => {
45
+ return poolOrClient instanceof pg.Pool;
46
+ };
47
+ var isPgClient = (poolOrClient) => poolOrClient instanceof pg.Client;
48
+ var isPgPoolClient = (poolOrClient) => "release" in poolOrClient && typeof poolOrClient.release === "function";
49
+ var pgExecute = async (poolOrClient, handle) => {
50
+ const client = isPgNativePool(poolOrClient) ? await poolOrClient.connect() : poolOrClient;
51
+ try {
52
+ return await handle(client);
53
+ } finally {
54
+ if (isPgNativePool(poolOrClient) && isPgPoolClient(client))
55
+ client.release();
56
+ }
57
+ };
58
+ var pgSQLExecutor = ({
59
+ serializer
60
+ }) => ({
61
+ driverType: PgDriverType,
62
+ query: async (client, sql, options) => {
63
+ const results = await batchQuery(
64
+ client,
65
+ [sql],
66
+ serializer,
67
+ options
68
+ );
69
+ return results[0];
70
+ },
71
+ batchQuery: (client, sqls, options) => batchQuery(client, sqls, serializer, options),
72
+ command: async (client, sql, options) => {
73
+ const results = await batchCommand(
74
+ client,
75
+ [sql],
76
+ serializer,
77
+ options
78
+ );
79
+ return results[0];
80
+ },
81
+ batchCommand: (client, sqls, options) => batchCommand(client, sqls, serializer, options),
82
+ formatter: pgFormatter
83
+ });
84
+ async function batchQuery(client, sqls, serializer, options) {
85
+ const results = Array(
86
+ sqls.length
87
+ );
88
+ if (options?.timeoutMs) {
89
+ await client.query(`SET statement_timeout = ${options.timeoutMs}`);
90
+ }
91
+ for (let i = 0; i < sqls.length; i++) {
92
+ const { query, params } = pgFormatter.format(sqls[i], { serializer });
93
+ tracer.info("db:sql:query", {
94
+ query,
95
+ params,
96
+ debugSQL: pgFormatter.describe(sqls[i], { serializer })
97
+ });
98
+ try {
99
+ let result = params.length > 0 ? await client.query(query, params) : await client.query(query);
100
+ if (options?.mapping) {
101
+ result = {
102
+ ...result,
103
+ rows: result.rows.map(
104
+ (row) => mapSQLQueryResult(row, options.mapping)
105
+ )
106
+ };
107
+ }
108
+ results[i] = { rowCount: result.rowCount, rows: result.rows };
109
+ } catch (error) {
110
+ tracer.error("db:sql:batch_query:execute:error", { error });
111
+ throw mapPostgresError(error);
112
+ }
113
+ }
114
+ return results;
115
+ }
116
+ async function batchCommand(client, sqls, serializer, options) {
117
+ const results = Array(
118
+ sqls.length
119
+ );
120
+ if (options?.timeoutMs) {
121
+ await client.query(`SET statement_timeout = ${options.timeoutMs}`);
122
+ }
123
+ for (let i = 0; i < sqls.length; i++) {
124
+ const { query, params } = pgFormatter.format(sqls[i], { serializer });
125
+ tracer.info("db:sql:command", {
126
+ query,
127
+ params,
128
+ debugSQL: pgFormatter.describe(sqls[i], { serializer })
129
+ });
130
+ try {
131
+ let result = params.length > 0 ? await client.query(query, params) : await client.query(query);
132
+ if (options?.mapping) {
133
+ result = {
134
+ ...result,
135
+ rows: result.rows.map(
136
+ (row) => mapSQLQueryResult(row, options.mapping)
137
+ )
138
+ };
139
+ }
140
+ results[i] = { rowCount: result.rowCount, rows: result.rows };
141
+ if (options?.assertChanges && (results[i].rowCount ?? 0) === 0) {
142
+ throw new BatchCommandNoChangesError(i);
143
+ }
144
+ } catch (error) {
145
+ tracer.error("db:sql:batch_command:execute:error", { error });
146
+ throw mapPostgresError(error);
147
+ }
148
+ }
149
+ return results;
150
+ }
151
+
152
+ // src/storage/postgresql/pg/connections/transaction.ts
153
+ var pgTransaction = (connection, serializer) => (getClient, options) => ({
154
+ connection: connection(),
155
+ driverType: PgDriverType,
156
+ begin: async () => {
157
+ const client = await getClient;
158
+ await client.query("BEGIN");
159
+ },
160
+ commit: async () => {
161
+ const client = await getClient;
162
+ try {
163
+ await client.query("COMMIT");
164
+ } finally {
165
+ if (options?.close) await options?.close(client);
166
+ }
167
+ },
168
+ rollback: async (error) => {
169
+ const client = await getClient;
170
+ try {
171
+ await client.query("ROLLBACK");
172
+ } finally {
173
+ if (options?.close) await options?.close(client, error);
174
+ }
175
+ },
176
+ execute: sqlExecutor(pgSQLExecutor({ serializer }), {
177
+ connect: () => getClient
178
+ })
179
+ });
180
+
181
+ // src/storage/postgresql/pg/connections/connection.ts
182
+ var PgDriverType = "PostgreSQL:pg";
183
+ var pgClientConnection = (options) => {
184
+ const { connect, close } = options;
185
+ return createConnection({
186
+ driverType: PgDriverType,
187
+ connect,
188
+ close,
189
+ initTransaction: (connection) => pgTransaction(connection, options.serializer),
190
+ executor: pgSQLExecutor,
191
+ serializer: options.serializer
192
+ });
193
+ };
194
+ var pgPoolClientConnection = (options) => {
195
+ const { connect, close } = options;
196
+ return createConnection({
197
+ driverType: PgDriverType,
198
+ connect,
199
+ close,
200
+ initTransaction: (connection) => pgTransaction(connection, options.serializer),
201
+ executor: pgSQLExecutor,
202
+ serializer: options.serializer
203
+ });
204
+ };
205
+ function pgConnection(options) {
206
+ return options.type === "Client" ? pgClientConnection(options) : pgPoolClientConnection(options);
207
+ }
208
+ var checkConnection = async (connectionString) => {
209
+ const client = new pg2.Client({
210
+ connectionString
211
+ });
212
+ try {
213
+ await client.connect();
214
+ return { successful: true };
215
+ } catch (error) {
216
+ const code = error instanceof Error && "code" in error && typeof error.code === "string" ? error.code : void 0;
217
+ return {
218
+ successful: false,
219
+ errorType: code === "ECONNREFUSED" ? "ConnectionRefused" : code === "28P01" ? "Authentication" : "Unknown",
220
+ code,
221
+ error
222
+ };
223
+ } finally {
224
+ await client.end();
225
+ }
226
+ };
227
+
228
+ // src/storage/postgresql/pg/connections/pool.ts
229
+ import pg3 from "pg";
230
+
231
+ // src/storage/postgresql/pg/serialization/index.ts
232
+ var setPgTypeParser = (client, options) => {
233
+ if (options?.parseBigInts === true)
234
+ client.setTypeParser(20, (val) => BigInt(val));
235
+ if (options?.serializer) {
236
+ client.setTypeParser(3802, (val) => options.serializer.deserialize(val));
237
+ client.setTypeParser(114, (val) => options.serializer.deserialize(val));
238
+ }
239
+ };
240
+
241
+ // src/storage/postgresql/pg/connections/pool.ts
242
+ var pgNativePool = (options) => {
243
+ const { connectionString, database } = options;
244
+ const pool = getPgPool({ connectionString, database });
245
+ const getConnection = () => pgConnection({
246
+ type: "PoolClient",
247
+ connect: async () => {
248
+ const client = await pool.connect();
249
+ setPgTypeParser(client, {
250
+ parseBigInts: true,
251
+ serializer: options.serializer
252
+ });
253
+ return client;
254
+ },
255
+ close: (client) => Promise.resolve(client.release()),
256
+ serializer: options.serializer
257
+ });
258
+ const open = () => Promise.resolve(getConnection());
259
+ const close = () => endPgPool({ connectionString, database });
260
+ return createConnectionPool({
261
+ driverType: PgDriverType,
262
+ connection: open,
263
+ close,
264
+ getConnection
265
+ });
266
+ };
267
+ var pgAmbientNativePool = (options) => {
268
+ const { pool } = options;
269
+ return createConnectionPool({
270
+ driverType: PgDriverType,
271
+ getConnection: () => pgConnection({
272
+ type: "PoolClient",
273
+ connect: () => pool.connect(),
274
+ close: (client) => Promise.resolve(client.release()),
275
+ serializer: options.serializer
276
+ })
277
+ });
278
+ };
279
+ var pgAmbientConnectionPool = (options) => {
280
+ const { connection } = options;
281
+ return createAmbientConnectionPool({
282
+ driverType: PgDriverType,
283
+ connection
284
+ });
285
+ };
286
+ var pgClientPool = (options) => {
287
+ const { connectionString, database } = options;
288
+ return createConnectionPool({
289
+ driverType: PgDriverType,
290
+ getConnection: () => {
291
+ const connect = async () => {
292
+ const client = new pg3.Client({ connectionString, database });
293
+ setPgTypeParser(client, {
294
+ parseBigInts: true,
295
+ serializer: options.serializer
296
+ });
297
+ await client.connect();
298
+ return client;
299
+ };
300
+ return pgConnection({
301
+ type: "Client",
302
+ connect,
303
+ close: (client) => client.end(),
304
+ serializer: options.serializer
305
+ });
306
+ }
307
+ });
308
+ };
309
+ var pgAmbientClientPool = (options) => {
310
+ const { client } = options;
311
+ const getConnection = () => {
312
+ const connect = () => Promise.resolve(client);
313
+ return pgConnection({
314
+ type: "Client",
315
+ connect,
316
+ close: () => Promise.resolve(),
317
+ serializer: options.serializer
318
+ });
319
+ };
320
+ const open = () => Promise.resolve(getConnection());
321
+ const close = () => Promise.resolve();
322
+ return createConnectionPool({
323
+ driverType: PgDriverType,
324
+ connection: open,
325
+ close,
326
+ getConnection
327
+ });
328
+ };
329
+ function pgPool(options) {
330
+ const { connectionString, database } = options;
331
+ const serializer = options.serialization?.serializer ?? JSONSerializer;
332
+ if ("client" in options && options.client)
333
+ return pgAmbientClientPool({ client: options.client, serializer });
334
+ if ("connection" in options && options.connection)
335
+ return pgAmbientConnectionPool({
336
+ connection: options.connection
337
+ });
338
+ if ("pooled" in options && options.pooled === false)
339
+ return pgClientPool({ connectionString, database, serializer });
340
+ if ("pool" in options && options.pool)
341
+ return pgAmbientNativePool({ pool: options.pool, serializer });
342
+ return pgNativePool({
343
+ connectionString,
344
+ database,
345
+ serializer
346
+ });
347
+ }
348
+ var pools = /* @__PURE__ */ new Map();
349
+ var usageCounter = /* @__PURE__ */ new Map();
350
+ var getPgPool = (connectionStringOrOptions) => {
351
+ const connectionString = typeof connectionStringOrOptions === "string" ? connectionStringOrOptions : connectionStringOrOptions.connectionString;
352
+ const poolOptions = typeof connectionStringOrOptions === "string" ? { connectionString } : connectionStringOrOptions;
353
+ const database = poolOptions.database ?? (poolOptions.connectionString ? parseDatabaseName(poolOptions.connectionString) ?? defaultPostgreSqlDatabase : void 0);
354
+ const lookupKey = key(connectionString, database);
355
+ updatePoolUsageCounter(lookupKey, 1);
356
+ return pools.get(lookupKey) ?? pools.set(lookupKey, new pg3.Pool(poolOptions)).get(lookupKey);
357
+ };
358
+ var endPgPool = async ({
359
+ connectionString,
360
+ database,
361
+ force
362
+ }) => {
363
+ database = database ?? parseDatabaseName(connectionString) ?? void 0;
364
+ const lookupKey = key(connectionString, database);
365
+ const pool = pools.get(lookupKey);
366
+ if (pool && (updatePoolUsageCounter(lookupKey, -1) <= 0 || force === true)) {
367
+ await onEndPool(lookupKey, pool);
368
+ }
369
+ };
370
+ var onEndPool = async (lookupKey, pool) => {
371
+ try {
372
+ await pool.end();
373
+ } catch (error) {
374
+ tracer.error("connection-closing-error", { lookupKey, error });
375
+ }
376
+ pools.delete(lookupKey);
377
+ };
378
+ var endAllPgPools = () => Promise.all(
379
+ [...pools.entries()].map(([lookupKey, pool]) => onEndPool(lookupKey, pool))
380
+ );
381
+ var key = (connectionString, database) => `${connectionString}|${database ?? defaultPostgreSqlDatabase}`;
382
+ var updatePoolUsageCounter = (lookupKey, by) => {
383
+ const currentCounter = usageCounter.get(lookupKey) ?? 0;
384
+ const newCounter = currentCounter + by;
385
+ usageCounter.set(lookupKey, currentCounter + by);
386
+ return newCounter;
387
+ };
388
+
389
+ // src/storage/postgresql/pg/index.ts
390
+ var tryParseConnectionString = (connectionString) => {
391
+ try {
392
+ return PostgreSQLConnectionString(connectionString);
393
+ } catch {
394
+ return null;
395
+ }
396
+ };
397
+ var pgDumboDriver = {
398
+ driverType: PgDriverType,
399
+ createPool: (options) => pgPool(options),
400
+ sqlFormatter: pgFormatter,
401
+ defaultMigratorOptions: DefaultPostgreSQLMigratorOptions,
402
+ canHandle: canHandleDriverWithConnectionString(
403
+ PgDriverType,
404
+ tryParseConnectionString
405
+ ),
406
+ databaseMetadata: postgreSQLMetadata
407
+ };
408
+ var usePgDumboDriver = () => {
409
+ dumboDatabaseDriverRegistry.register(PgDriverType, pgDumboDriver);
410
+ };
411
+ usePgDumboDriver();
47
412
  export {
48
413
  AdvisoryLock,
49
414
  DefaultPostgreSQLMigratorOptions,
50
- NodePostgresDriverType,
415
+ PgDriverType,
416
+ PostgreSQLArrayProcessor,
51
417
  PostgreSQLConnectionString,
52
418
  PostgreSQLDatabaseName,
419
+ PostgreSQLExpandSQLInProcessor,
53
420
  acquireAdvisoryLock,
54
421
  advisoryLock,
55
422
  checkConnection,
56
- connectionPool,
57
- pgDatabaseDriver as databaseDriver,
58
423
  defaultPostgreSQLConnectionString,
59
424
  defaultPostgreSqlDatabase,
60
- endAllPools,
61
- endPool,
425
+ endAllPgPools,
426
+ endPgPool,
62
427
  functionExists,
63
428
  functionExistsSQL,
64
- getDatabaseNameOrDefault,
65
- getPool,
66
- isNodePostgresClient,
67
- isNodePostgresNativePool,
68
- isNodePostgresPoolClient,
69
- nodePostgresAmbientClientPool,
70
- nodePostgresAmbientConnectionPool,
71
- nodePostgresAmbientNativePool,
72
- nodePostgresClientConnection,
73
- nodePostgresClientPool,
74
- nodePostgresConnection,
75
- nodePostgresExecute,
76
- nodePostgresNativePool,
77
- nodePostgresPool,
78
- nodePostgresPoolClientConnection,
79
- nodePostgresSQLExecutor,
80
- nodePostgresTransaction,
429
+ getPgPool,
430
+ isPgClient,
431
+ isPgNativePool,
432
+ isPgPoolClient,
433
+ mapPostgresError,
81
434
  onEndPool,
82
- pgDatabaseDriver,
435
+ parseDatabaseName,
436
+ pgAmbientClientPool,
437
+ pgAmbientConnectionPool,
438
+ pgAmbientNativePool,
439
+ pgClientConnection,
440
+ pgClientPool,
441
+ pgConnection,
442
+ pgDumboDriver,
443
+ pgExecute,
83
444
  pgFormatter,
445
+ pgNativePool,
446
+ pgPool,
447
+ pgPoolClientConnection,
448
+ pgSQLExecutor,
449
+ pgTransaction,
84
450
  postgreSQLColumnProcessors,
85
- postgresPool,
451
+ postgreSQLMetadata,
86
452
  releaseAdvisoryLock,
87
- setNodePostgresTypeParser,
453
+ setPgTypeParser,
88
454
  tableExists,
89
455
  tableExistsSQL,
90
456
  tryAcquireAdvisoryLock,
91
- usePgDatabaseDriver
457
+ usePgDumboDriver
92
458
  };
93
459
  //# sourceMappingURL=pg.js.map
package/dist/pg.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"sources":[],"sourcesContent":[],"mappings":"","names":[]}
1
+ {"version":3,"sources":["../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"],"sourcesContent":["import pg from 'pg';\nimport type { JSONSerializer } from '../../../../core';\nimport { createConnection, type Connection } from '../../../../core';\nimport type { PostgreSQLDriverType } from '../../core';\nimport { pgSQLExecutor } from '../execute';\nimport { pgTransaction } 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>;\n\nexport type PgPoolClientConnection = Connection<\n PgPoolClientConnection,\n PgDriverType,\n PgPoolClient\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 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 } & DatabaseTransactionOptions,\n ): DatabaseTransaction<ConnectionType> => ({\n connection: connection(),\n driverType: PgDriverType,\n begin: async () => {\n const client = await getClient;\n await client.query('BEGIN');\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 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"],"mappings":"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","names":["pg","pg","pg","pg"]}
@@ -0,0 +1,50 @@
1
+ "use strict";Object.defineProperty(exports, "__esModule", {value: true});
2
+
3
+
4
+
5
+
6
+
7
+
8
+
9
+
10
+
11
+
12
+
13
+
14
+ var _chunkSQXAAA3Ncjs = require('./chunk-SQXAAA3N.cjs');
15
+
16
+
17
+
18
+
19
+
20
+
21
+
22
+
23
+
24
+
25
+ var _chunkVIQJEUVFcjs = require('./chunk-VIQJEUVF.cjs');
26
+ require('./chunk-PYTHH6WO.cjs');
27
+
28
+
29
+
30
+
31
+
32
+
33
+
34
+
35
+
36
+
37
+
38
+
39
+
40
+
41
+
42
+
43
+
44
+
45
+
46
+
47
+
48
+
49
+ exports.AdvisoryLock = _chunkSQXAAA3Ncjs.AdvisoryLock; exports.DefaultPostgreSQLMigratorOptions = _chunkSQXAAA3Ncjs.DefaultPostgreSQLMigratorOptions; exports.PostgreSQLArrayProcessor = _chunkSQXAAA3Ncjs.PostgreSQLArrayProcessor; exports.PostgreSQLConnectionString = _chunkVIQJEUVFcjs.PostgreSQLConnectionString; exports.PostgreSQLDatabaseName = _chunkSQXAAA3Ncjs.PostgreSQLDatabaseName; exports.PostgreSQLExpandSQLInProcessor = _chunkSQXAAA3Ncjs.PostgreSQLExpandSQLInProcessor; exports.acquireAdvisoryLock = _chunkSQXAAA3Ncjs.acquireAdvisoryLock; exports.advisoryLock = _chunkSQXAAA3Ncjs.advisoryLock; exports.defaultPostgreSQLConnectionString = _chunkVIQJEUVFcjs.defaultPostgreSQLConnectionString; exports.defaultPostgreSqlDatabase = _chunkVIQJEUVFcjs.defaultPostgreSqlDatabase; exports.functionExists = _chunkVIQJEUVFcjs.functionExists; exports.functionExistsSQL = _chunkVIQJEUVFcjs.functionExistsSQL; exports.mapPostgresError = _chunkSQXAAA3Ncjs.mapPostgresError; exports.parseDatabaseName = _chunkVIQJEUVFcjs.parseDatabaseName; exports.pgFormatter = _chunkSQXAAA3Ncjs.pgFormatter; exports.postgreSQLColumnProcessors = _chunkSQXAAA3Ncjs.postgreSQLColumnProcessors; exports.postgreSQLMetadata = _chunkVIQJEUVFcjs.postgreSQLMetadata; exports.releaseAdvisoryLock = _chunkSQXAAA3Ncjs.releaseAdvisoryLock; exports.tableExists = _chunkVIQJEUVFcjs.tableExists; exports.tableExistsSQL = _chunkVIQJEUVFcjs.tableExistsSQL; exports.tryAcquireAdvisoryLock = _chunkSQXAAA3Ncjs.tryAcquireAdvisoryLock;
50
+ //# sourceMappingURL=postgresql.cjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["/home/runner/work/Pongo/Pongo/src/packages/dumbo/dist/postgresql.cjs"],"names":[],"mappings":"AAAA;AACE;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACF,wDAA6B;AAC7B;AACE;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACF,wDAA6B;AAC7B,gCAA6B;AAC7B;AACE;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACF,k9CAAC","file":"/home/runner/work/Pongo/Pongo/src/packages/dumbo/dist/postgresql.cjs"}