@event-driven-io/dumbo 0.13.0-beta.4 → 0.13.0-beta.41

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 (83) hide show
  1. package/dist/cloudflare.cjs +397 -0
  2. package/dist/cloudflare.cjs.map +1 -0
  3. package/dist/cloudflare.d.cts +99 -0
  4. package/dist/cloudflare.d.ts +99 -0
  5. package/dist/cloudflare.js +361 -0
  6. package/dist/cloudflare.js.map +1 -0
  7. package/dist/core-BMeDuqBQ.js +2265 -0
  8. package/dist/core-BMeDuqBQ.js.map +1 -0
  9. package/dist/core-BPNgo5b6.js +379 -0
  10. package/dist/core-BPNgo5b6.js.map +1 -0
  11. package/dist/core-CIVu4cNp.cjs +588 -0
  12. package/dist/core-CIVu4cNp.cjs.map +1 -0
  13. package/dist/core-D5W_5J8k.cjs +3246 -0
  14. package/dist/core-D5W_5J8k.cjs.map +1 -0
  15. package/dist/core-DqUjje4u.cjs +450 -0
  16. package/dist/core-DqUjje4u.cjs.map +1 -0
  17. package/dist/core-gu5fi784.js +451 -0
  18. package/dist/core-gu5fi784.js.map +1 -0
  19. package/dist/{index-C2z_XBn6.d.ts → index-B-q2er0S.d.cts} +122 -75
  20. package/dist/{index-C0h0c380.d.cts → index-B5qbt5nP.d.ts} +122 -75
  21. package/dist/index-BJJAkyuJ.d.ts +68 -0
  22. package/dist/index-CRbkvVjT.d.ts +1587 -0
  23. package/dist/index-Cmdlb0KP.d.cts +1587 -0
  24. package/dist/index-D7qxqMf9.d.cts +67 -0
  25. package/dist/index-DtRCGhFP.d.cts +68 -0
  26. package/dist/index-m5LDyNNF.d.ts +67 -0
  27. package/dist/index.cjs +219 -270
  28. package/dist/index.cjs.map +1 -1
  29. package/dist/index.d.cts +3 -127
  30. package/dist/index.d.ts +3 -127
  31. package/dist/index.js +56 -269
  32. package/dist/index.js.map +1 -1
  33. package/dist/pg.cjs +373 -659
  34. package/dist/pg.cjs.map +1 -1
  35. package/dist/pg.d.cts +140 -153
  36. package/dist/pg.d.ts +140 -153
  37. package/dist/pg.js +326 -658
  38. package/dist/pg.js.map +1 -1
  39. package/dist/postgreSQLMetadata-Khf1e9CT.js +65 -0
  40. package/dist/postgreSQLMetadata-Khf1e9CT.js.map +1 -0
  41. package/dist/postgreSQLMetadata-Ri_p5u6i.cjs +118 -0
  42. package/dist/postgreSQLMetadata-Ri_p5u6i.cjs.map +1 -0
  43. package/dist/postgresql.cjs +25 -0
  44. package/dist/postgresql.d.cts +3 -0
  45. package/dist/postgresql.d.ts +3 -0
  46. package/dist/postgresql.js +4 -0
  47. package/dist/sqlite.cjs +30 -0
  48. package/dist/sqlite.d.cts +3 -0
  49. package/dist/sqlite.d.ts +3 -0
  50. package/dist/sqlite.js +4 -0
  51. package/dist/sqlite3.cjs +437 -273
  52. package/dist/sqlite3.cjs.map +1 -1
  53. package/dist/sqlite3.d.cts +92 -70
  54. package/dist/sqlite3.d.ts +92 -70
  55. package/dist/sqlite3.js +402 -272
  56. package/dist/sqlite3.js.map +1 -1
  57. package/dist/sqliteMetadata-CpmoZxqb.cjs +46 -0
  58. package/dist/sqliteMetadata-CpmoZxqb.cjs.map +1 -0
  59. package/dist/sqliteMetadata-viYmVwA5.js +29 -0
  60. package/dist/sqliteMetadata-viYmVwA5.js.map +1 -0
  61. package/package.json +60 -37
  62. package/dist/chunk-32AL3EAS.cjs +0 -47
  63. package/dist/chunk-32AL3EAS.cjs.map +0 -1
  64. package/dist/chunk-6IHCIJ7S.js +0 -47
  65. package/dist/chunk-6IHCIJ7S.js.map +0 -1
  66. package/dist/chunk-IYEHOE4S.cjs +0 -405
  67. package/dist/chunk-IYEHOE4S.cjs.map +0 -1
  68. package/dist/chunk-N7RWT46K.js +0 -2011
  69. package/dist/chunk-N7RWT46K.js.map +0 -1
  70. package/dist/chunk-OJ34O3Q2.cjs +0 -2011
  71. package/dist/chunk-OJ34O3Q2.cjs.map +0 -1
  72. package/dist/chunk-XVV3OOQX.js +0 -405
  73. package/dist/chunk-XVV3OOQX.js.map +0 -1
  74. package/dist/columnProcessors-BX-sH7ah.d.cts +0 -8
  75. package/dist/columnProcessors-DMPpTPqM.d.ts +0 -8
  76. package/dist/connectionString-B1wm0TFc.d.cts +0 -1271
  77. package/dist/connectionString-B1wm0TFc.d.ts +0 -1271
  78. package/dist/d1.cjs +0 -277
  79. package/dist/d1.cjs.map +0 -1
  80. package/dist/d1.d.cts +0 -72
  81. package/dist/d1.d.ts +0 -72
  82. package/dist/d1.js +0 -277
  83. package/dist/d1.js.map +0 -1
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/core/connections/connectionString.ts","../src/storage/postgresql/core/locks/advisoryLocks.ts","../src/storage/postgresql/core/schema/migrations.ts","../src/storage/postgresql/core/schema/schema.ts","../src/storage/postgresql/core/sql/processors/columProcessors.ts","../src/storage/postgresql/core/sql/formatter/reserved.ts","../src/storage/postgresql/core/sql/formatter/index.ts","../src/storage/postgresql/core/index.ts","../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":["advisoryLock"],"mappings":"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","file":"/home/runner/work/Pongo/Pongo/src/packages/dumbo/dist/pg.cjs","sourcesContent":[null,"import pgcs from 'pg-connection-string';\nimport type { DatabaseConnectionString } from '../../../all';\nimport { defaultPostgreSqlDatabase } from '../schema';\n\nexport const defaultPostgreSQLConnectionString: PostgreSQLConnectionString =\n 'postgresql://postgres@localhost:5432/postgres' as PostgreSQLConnectionString;\n\nexport const getDatabaseNameOrDefault = (connectionString: string) =>\n pgcs.parse(connectionString).database ?? defaultPostgreSqlDatabase;\n\nexport type PostgreSQLConnectionString = DatabaseConnectionString<\n 'PostgreSQL',\n `postgresql://${string}` | `postgres://${string}`\n>;\n\nexport const PostgreSQLConnectionString = (\n connectionString: string,\n): PostgreSQLConnectionString => {\n if (\n !connectionString.startsWith('postgresql://') &&\n !connectionString.startsWith('postgres://')\n ) {\n throw new Error(\n `Invalid PostgreSQL connection string: ${connectionString}. It should start with \"postgresql://\".`,\n );\n }\n return connectionString as PostgreSQLConnectionString;\n};\n","import {\n defaultDatabaseLockOptions,\n single,\n SQL,\n type AcquireDatabaseLockMode,\n type AcquireDatabaseLockOptions,\n type DatabaseLock,\n type DatabaseLockOptions,\n type ReleaseDatabaseLockOptions,\n type SQLExecutor,\n} from '../../../../core';\n\nexport const tryAcquireAdvisoryLock = async (\n execute: SQLExecutor,\n options: AcquireDatabaseLockOptions,\n): Promise<boolean> => {\n const timeoutMs = options.timeoutMs ?? defaultDatabaseLockOptions.timeoutMs;\n\n const advisoryLock =\n options.mode === 'Permanent' ? 'pg_advisory_lock' : 'pg_advisory_xact_lock';\n\n try {\n await single(\n execute.query<{ locked: boolean }>(\n SQL`SELECT ${SQL.plain(advisoryLock)}(${options.lockId}) AS locked`,\n { timeoutMs },\n ),\n );\n return true;\n } catch (error) {\n if (error instanceof Error && 'code' in error && error.code === '57014')\n return false;\n\n throw error;\n }\n};\n\nexport const releaseAdvisoryLock = async (\n execute: SQLExecutor,\n options: ReleaseDatabaseLockOptions,\n): Promise<boolean> => {\n const timeoutMs = options.timeoutMs ?? defaultDatabaseLockOptions.timeoutMs;\n\n try {\n await single(\n execute.query<{ locked: boolean }>(\n SQL`SELECT pg_advisory_unlock(${options.lockId}) AS locked`,\n { timeoutMs },\n ),\n );\n return true;\n } catch (error) {\n if (error instanceof Error && 'code' in error && error.code === '57014')\n return false;\n\n throw error;\n }\n};\n\nexport const acquireAdvisoryLock = async (\n execute: SQLExecutor,\n options: AcquireDatabaseLockOptions,\n) => {\n const lockAcquired = await tryAcquireAdvisoryLock(execute, options);\n if (!lockAcquired) {\n throw new Error(\n 'Failed to acquire advisory lock within the specified timeout. Migration aborted.',\n );\n }\n};\n\nexport const AdvisoryLock: DatabaseLock = {\n acquire: acquireAdvisoryLock,\n tryAcquire: tryAcquireAdvisoryLock,\n release: releaseAdvisoryLock,\n withAcquire: async <Result>(\n execute: SQLExecutor,\n handle: () => Promise<Result>,\n options: AcquireDatabaseLockOptions,\n ) => {\n await acquireAdvisoryLock(execute, options);\n try {\n return await handle();\n } finally {\n if (options.mode === 'Permanent')\n await releaseAdvisoryLock(execute, options);\n }\n },\n};\n\nexport const advisoryLock = (\n execute: SQLExecutor,\n options: DatabaseLockOptions,\n) => ({\n acquire: (acquireOptions?: { mode: AcquireDatabaseLockMode }) =>\n acquireAdvisoryLock(execute, {\n ...options,\n ...(acquireOptions ?? {}),\n }),\n tryAcquire: (acquireOptions?: { mode: AcquireDatabaseLockMode }) =>\n tryAcquireAdvisoryLock(execute, {\n ...options,\n ...(acquireOptions ?? {}),\n }),\n release: () => releaseAdvisoryLock(execute, options),\n withAcquire: async <Result>(\n handle: () => Promise<Result>,\n acquireOptions?: { mode: AcquireDatabaseLockMode },\n ) => {\n await acquireAdvisoryLock(execute, {\n ...options,\n ...(acquireOptions ?? {}),\n });\n try {\n return await handle();\n } finally {\n await releaseAdvisoryLock(execute, options);\n }\n },\n});\n","import {\n type MigratorOptions,\n registerDefaultMigratorOptions,\n} from '../../../../core';\nimport { AdvisoryLock } from '../locks';\n\nexport const DefaultPostgreSQLMigratorOptions: MigratorOptions = {\n lock: {\n databaseLock: AdvisoryLock,\n },\n};\n\nregisterDefaultMigratorOptions('PostgreSQL', DefaultPostgreSQLMigratorOptions);\n","import { exists, SQL, type ConnectionPool } from '../../../../core';\nexport * from './schema';\n\nexport const defaultPostgreSqlDatabase = 'postgres';\n\nexport const tableExistsSQL = (tableName: string): SQL =>\n SQL`\n SELECT EXISTS (\n SELECT FROM pg_tables\n WHERE tablename = ${tableName}\n ) AS exists;`;\n\nexport const tableExists = async (\n pool: ConnectionPool,\n tableName: string,\n): Promise<boolean> => exists(pool.execute.query(tableExistsSQL(tableName)));\n\nexport const functionExistsSQL = (functionName: string): SQL =>\n SQL`\n SELECT EXISTS (\n SELECT FROM pg_proc\n WHERE\n proname = ${functionName}\n ) AS exists;`;\n\nexport const functionExists = async (\n pool: ConnectionPool,\n tableName: string,\n): Promise<boolean> => exists(pool.execute.query(functionExistsSQL(tableName)));\n","import {\n mapDefaultSQLColumnProcessors,\n type DefaultSQLColumnProcessors,\n type DefaultSQLColumnToken,\n type SQLProcessorContext,\n} from '../../../../../core';\n\nconst mapColumnType = (\n token: DefaultSQLColumnToken,\n { builder }: SQLProcessorContext,\n): void => {\n let columnSQL: string;\n const { sqlTokenType } = token;\n switch (sqlTokenType) {\n case 'SQL_COLUMN_AUTO_INCREMENT':\n columnSQL = `${token.bigint ? 'BIGSERIAL' : 'SERIAL'} ${token.primaryKey ? 'PRIMARY KEY' : ''}`;\n break;\n case 'SQL_COLUMN_BIGINT':\n columnSQL = 'BIGINT';\n break;\n case 'SQL_COLUMN_SERIAL':\n columnSQL = 'SERIAL';\n break;\n case 'SQL_COLUMN_INTEGER':\n columnSQL = 'INTEGER';\n break;\n case 'SQL_COLUMN_JSONB':\n columnSQL = 'JSONB';\n break;\n case 'SQL_COLUMN_BIGSERIAL':\n columnSQL = 'BIGSERIAL';\n break;\n case 'SQL_COLUMN_TIMESTAMP':\n columnSQL = 'TIMESTAMP';\n break;\n case 'SQL_COLUMN_TIMESTAMPTZ':\n columnSQL = 'TIMESTAMPTZ';\n break;\n case 'SQL_COLUMN_VARCHAR':\n columnSQL = `VARCHAR ${Number.isNaN(token.length) ? '' : `(${token.length})`}`;\n break;\n default: {\n const exhaustiveCheck: never = sqlTokenType;\n // eslint-disable-next-line @typescript-eslint/restrict-template-expressions\n throw new Error(`Unknown column type: ${exhaustiveCheck}`);\n }\n }\n builder.addSQL(columnSQL);\n};\n\nexport const postgreSQLColumnProcessors: DefaultSQLColumnProcessors =\n mapDefaultSQLColumnProcessors(mapColumnType);\n","// Ported from: https://github.com/datalanche/node-pg-format/blob/master/lib/reserved.js\n//\n// PostgreSQL reserved words\n//\nconst reservedMap: { [key: string]: boolean } = {\n AES128: true,\n AES256: true,\n ALL: true,\n ALLOWOVERWRITE: true,\n ANALYSE: true,\n ANALYZE: true,\n AND: true,\n ANY: true,\n ARRAY: true,\n AS: true,\n ASC: true,\n AUTHORIZATION: true,\n BACKUP: true,\n BETWEEN: true,\n BINARY: true,\n BLANKSASNULL: true,\n BOTH: true,\n BYTEDICT: true,\n CASE: true,\n CAST: true,\n CHECK: true,\n COLLATE: true,\n COLUMN: true,\n CONSTRAINT: true,\n CREATE: true,\n CREDENTIALS: true,\n CROSS: true,\n CURRENT_DATE: true,\n CURRENT_TIME: true,\n CURRENT_TIMESTAMP: true,\n CURRENT_USER: true,\n CURRENT_USER_ID: true,\n DEFAULT: true,\n DEFERRABLE: true,\n DEFLATE: true,\n DEFRAG: true,\n DELTA: true,\n DELTA32K: true,\n DESC: true,\n DISABLE: true,\n DISTINCT: true,\n DO: true,\n ELSE: true,\n EMPTYASNULL: true,\n ENABLE: true,\n ENCODE: true,\n ENCRYPT: true,\n ENCRYPTION: true,\n END: true,\n EXCEPT: true,\n EXPLICIT: true,\n FALSE: true,\n FOR: true,\n FOREIGN: true,\n FREEZE: true,\n FROM: true,\n FULL: true,\n GLOBALDICT256: true,\n GLOBALDICT64K: true,\n GRANT: true,\n GROUP: true,\n GZIP: true,\n HAVING: true,\n IDENTITY: true,\n IGNORE: true,\n ILIKE: true,\n IN: true,\n INITIALLY: true,\n INNER: true,\n INTERSECT: true,\n INTO: true,\n IS: true,\n ISNULL: true,\n JOIN: true,\n LEADING: true,\n LEFT: true,\n LIKE: true,\n LIMIT: true,\n LOCALTIME: true,\n LOCALTIMESTAMP: true,\n LUN: true,\n LUNS: true,\n LZO: true,\n LZOP: true,\n MINUS: true,\n MOSTLY13: true,\n MOSTLY32: true,\n MOSTLY8: true,\n NATURAL: true,\n NEW: true,\n NOT: true,\n NOTNULL: true,\n NULL: true,\n NULLS: true,\n OFF: true,\n OFFLINE: true,\n OFFSET: true,\n OLD: true,\n ON: true,\n ONLY: true,\n OPEN: true,\n OR: true,\n ORDER: true,\n OUTER: true,\n OVERLAPS: true,\n PARALLEL: true,\n PARTITION: true,\n PERCENT: true,\n PLACING: true,\n PRIMARY: true,\n RAW: true,\n READRATIO: true,\n RECOVER: true,\n REFERENCES: true,\n REJECTLOG: true,\n RESORT: true,\n RESTORE: true,\n RIGHT: true,\n SELECT: true,\n SESSION_USER: true,\n SIMILAR: true,\n SOME: true,\n SYSDATE: true,\n SYSTEM: true,\n TABLE: true,\n TAG: true,\n TDES: true,\n TEXT255: true,\n TEXT32K: true,\n THEN: true,\n TO: true,\n TOP: true,\n TRAILING: true,\n TRUE: true,\n TRUNCATECOLUMNS: true,\n UNION: true,\n UNIQUE: true,\n USER: true,\n USING: true,\n VERBOSE: true,\n WALLET: true,\n WHEN: true,\n WHERE: true,\n WITH: true,\n WITHOUT: true,\n};\n\nexport default reservedMap;\n","import {\n SQLFormatter,\n SQLProcessorsRegistry,\n defaultProcessorsRegistry,\n mapSQLIdentifier,\n registerFormatter,\n} from '../../../../../core';\nimport { postgreSQLColumnProcessors } from '../processors';\nimport reservedMap from './reserved';\n\nconst postgreSQLProcessorsRegistry = SQLProcessorsRegistry({\n from: defaultProcessorsRegistry,\n}).register(postgreSQLColumnProcessors);\n\nconst pgFormatter: SQLFormatter = SQLFormatter({\n processorsRegistry: postgreSQLProcessorsRegistry,\n valueMapper: {\n mapDate: (value: Date): unknown =>\n value.toISOString().replace('T', ' ').replace('Z', '+00'),\n mapPlaceholder: (index: number): string => `$${index + 1}`,\n mapIdentifier: (value: string): string =>\n mapSQLIdentifier(value, { reservedWords: reservedMap }),\n },\n});\n\nregisterFormatter('PostgreSQL', pgFormatter);\n\n// Export the original functions if needed\nexport { pgFormatter };\n","import type { DatabaseDriverType } from '../../../core';\n\nexport * from './connections';\nexport * from './locks';\nexport * from './schema';\nexport * from './sql';\n\nexport type PostgreSQLDatabaseName = 'PostgreSQL';\nexport const PostgreSQLDatabaseName = 'PostgreSQL';\n\nexport type PostgreSQLDriverType<DriverName extends string = string> =\n DatabaseDriverType<PostgreSQLDatabaseName, DriverName>;\n","import pg from 'pg';\nimport { createConnection, type Connection } from '../../../../core';\nimport type { PostgreSQLDriverType } from '../../core';\nimport { nodePostgresSQLExecutor } from '../execute';\nimport { nodePostgresTransaction } from './transaction';\n\nexport type NodePostgresDriverType = PostgreSQLDriverType<'pg'>;\nexport const NodePostgresDriverType: NodePostgresDriverType = 'PostgreSQL:pg';\n\nexport type NodePostgresPoolClient = pg.PoolClient;\nexport type NodePostgresClient = pg.Client;\n\nexport type NodePostgresClientOrPoolClient =\n | NodePostgresPoolClient\n | NodePostgresClient;\n\nexport type NodePostgresPoolOrClient =\n | pg.Pool\n | NodePostgresPoolClient\n | NodePostgresClient;\n\nexport type NodePostgresClientConnection = Connection<\n NodePostgresClientConnection,\n NodePostgresDriverType,\n NodePostgresClient\n>;\n\nexport type NodePostgresPoolClientConnection = Connection<\n NodePostgresPoolClientConnection,\n NodePostgresDriverType,\n NodePostgresPoolClient\n>;\n\nexport type NodePostgresConnection =\n | NodePostgresPoolClientConnection\n | NodePostgresClientConnection;\n\nexport type NodePostgresPoolClientOptions = {\n type: 'PoolClient';\n connect: () => Promise<NodePostgresPoolClient>;\n close: (client: NodePostgresPoolClient) => Promise<void>;\n};\n\nexport type NodePostgresClientOptions = {\n type: 'Client';\n connect: () => Promise<NodePostgresClient>;\n close: (client: NodePostgresClient) => Promise<void>;\n};\n\nexport const nodePostgresClientConnection = (\n options: NodePostgresClientOptions,\n): NodePostgresClientConnection => {\n const { connect, close } = options;\n\n return createConnection({\n driverType: NodePostgresDriverType,\n connect,\n close,\n initTransaction: (connection) => nodePostgresTransaction(connection),\n executor: nodePostgresSQLExecutor,\n });\n};\n\nexport const nodePostgresPoolClientConnection = (\n options: NodePostgresPoolClientOptions,\n): NodePostgresPoolClientConnection => {\n const { connect, close } = options;\n\n return createConnection({\n driverType: NodePostgresDriverType,\n connect,\n close,\n initTransaction: (connection) => nodePostgresTransaction(connection),\n executor: nodePostgresSQLExecutor,\n });\n};\n\nexport function nodePostgresConnection(\n options: NodePostgresPoolClientOptions,\n): NodePostgresPoolClientConnection;\nexport function nodePostgresConnection(\n options: NodePostgresClientOptions,\n): NodePostgresClientConnection;\nexport function nodePostgresConnection(\n options: NodePostgresPoolClientOptions | NodePostgresClientOptions,\n): NodePostgresPoolClientConnection | NodePostgresClientConnection {\n return options.type === 'Client'\n ? nodePostgresClientConnection(options)\n : nodePostgresPoolClientConnection(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 {\n tracer,\n type DbSQLExecutor,\n type QueryResult,\n type QueryResultRow,\n type SQL,\n type SQLCommandOptions,\n type SQLQueryOptions,\n} from '../../../../core';\nimport { pgFormatter } from '../../core';\nimport {\n NodePostgresDriverType,\n type NodePostgresClientOrPoolClient,\n} from '../connections';\n\nexport const isNodePostgresNativePool = (\n poolOrClient: pg.Pool | pg.PoolClient | pg.Client,\n): poolOrClient is pg.Pool => {\n return poolOrClient instanceof pg.Pool;\n};\n\nexport const isNodePostgresClient = (\n poolOrClient: pg.Pool | pg.PoolClient | pg.Client,\n): poolOrClient is pg.Client => poolOrClient instanceof pg.Client;\n\nexport const isNodePostgresPoolClient = (\n poolOrClient: pg.Pool | pg.PoolClient | pg.Client,\n): poolOrClient is pg.PoolClient =>\n 'release' in poolOrClient && typeof poolOrClient.release === 'function';\n\nexport const nodePostgresExecute = async <Result = void>(\n poolOrClient: pg.Pool | pg.PoolClient | pg.Client,\n handle: (client: pg.PoolClient | pg.Client) => Promise<Result>,\n) => {\n const client = isNodePostgresNativePool(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 (\n isNodePostgresNativePool(poolOrClient) &&\n isNodePostgresPoolClient(client)\n )\n client.release();\n }\n};\n\nexport type NodePostgresSQLExecutor = DbSQLExecutor<\n NodePostgresDriverType,\n NodePostgresClientOrPoolClient\n>;\n\nexport const nodePostgresSQLExecutor = (): NodePostgresSQLExecutor => ({\n driverType: NodePostgresDriverType,\n query: batch,\n batchQuery: batch,\n command: batch,\n batchCommand: batch,\n formatter: pgFormatter,\n});\n\nfunction batch<Result extends QueryResultRow = QueryResultRow>(\n client: NodePostgresClientOrPoolClient,\n sqlOrSqls: SQL,\n options?: SQLQueryOptions | SQLCommandOptions,\n): Promise<QueryResult<Result>>;\nfunction batch<Result extends QueryResultRow = QueryResultRow>(\n client: NodePostgresClientOrPoolClient,\n sqlOrSqls: SQL[],\n options?: SQLQueryOptions | SQLCommandOptions,\n): Promise<QueryResult<Result>[]>;\nasync function batch<Result extends QueryResultRow = QueryResultRow>(\n client: NodePostgresClientOrPoolClient,\n sqlOrSqls: SQL | SQL[],\n options?: SQLQueryOptions | SQLCommandOptions,\n): Promise<QueryResult<Result> | QueryResult<Result>[]> {\n const sqls = Array.isArray(sqlOrSqls) ? sqlOrSqls : [sqlOrSqls];\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]!);\n tracer.info('db:sql:query', {\n query,\n params,\n debugSQL: pgFormatter.describe(sqls[i]!),\n });\n const result = await client.query<Result>(query, params);\n results[i] = { rowCount: result.rowCount, rows: result.rows };\n }\n return Array.isArray(sqlOrSqls) ? results : results[0]!;\n}\n","import {\n sqlExecutor,\n type AnyConnection,\n type DatabaseTransaction,\n type DatabaseTransactionOptions,\n} from '../../../../core';\nimport { nodePostgresSQLExecutor } from '../execute';\nimport {\n NodePostgresDriverType,\n type NodePostgresConnection,\n type NodePostgresPoolOrClient,\n} from './connection';\n\nexport type NodePostgresTransaction =\n DatabaseTransaction<NodePostgresConnection>;\n\nexport const nodePostgresTransaction =\n <ConnectionType extends AnyConnection = AnyConnection>(\n connection: () => ConnectionType,\n ) =>\n <DbClient extends NodePostgresPoolOrClient = NodePostgresPoolOrClient>(\n getClient: Promise<DbClient>,\n options?: {\n close: (client: DbClient, error?: unknown) => Promise<void>;\n } & DatabaseTransactionOptions,\n ): DatabaseTransaction<ConnectionType> => ({\n connection: connection(),\n driverType: NodePostgresDriverType,\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(nodePostgresSQLExecutor(), {\n connect: () => getClient,\n }),\n });\n","import pg from 'pg';\nimport {\n createAmbientConnectionPool,\n createConnectionPool,\n JSONSerializer,\n tracer,\n type ConnectionPool,\n} from '../../../../core';\nimport {\n defaultPostgreSqlDatabase,\n getDatabaseNameOrDefault,\n} from '../../core';\nimport { setNodePostgresTypeParser } from '../serialization';\nimport {\n nodePostgresConnection,\n NodePostgresDriverType,\n type NodePostgresClientConnection,\n type NodePostgresPoolClientConnection,\n} from './connection';\n\nexport type NodePostgresNativePool =\n ConnectionPool<NodePostgresPoolClientConnection>;\n\nexport type NodePostgresAmbientClientPool =\n ConnectionPool<NodePostgresClientConnection>;\n\nexport type NodePostgresAmbientConnectionPool = ConnectionPool<\n NodePostgresPoolClientConnection | NodePostgresClientConnection\n>;\n\nexport type NodePostgresPool =\n | NodePostgresNativePool\n | NodePostgresAmbientClientPool\n | NodePostgresAmbientConnectionPool;\n\nexport const nodePostgresNativePool = (options: {\n connectionString: string;\n database?: string | undefined;\n}): NodePostgresNativePool => {\n const { connectionString, database } = options;\n const pool = getPool({ connectionString, database });\n\n const getConnection = () =>\n nodePostgresConnection({\n type: 'PoolClient',\n connect: () => pool.connect(),\n close: (client) => Promise.resolve(client.release()),\n });\n\n const open = () => Promise.resolve(getConnection());\n const close = () => endPool({ connectionString, database });\n\n return createConnectionPool({\n driverType: NodePostgresDriverType,\n connection: open,\n close,\n getConnection,\n });\n};\n\nexport const nodePostgresAmbientNativePool = (options: {\n pool: pg.Pool;\n}): NodePostgresNativePool => {\n const { pool } = options;\n\n return createConnectionPool({\n driverType: NodePostgresDriverType,\n getConnection: () =>\n nodePostgresConnection({\n type: 'PoolClient',\n connect: () => pool.connect(),\n close: (client) => Promise.resolve(client.release()),\n }),\n });\n};\n\nexport const nodePostgresAmbientConnectionPool = (options: {\n connection: NodePostgresPoolClientConnection | NodePostgresClientConnection;\n}): NodePostgresAmbientConnectionPool => {\n const { connection } = options;\n\n return createAmbientConnectionPool({\n driverType: NodePostgresDriverType,\n connection,\n });\n};\n\nexport const nodePostgresClientPool = (options: {\n connectionString: string;\n database?: string | undefined;\n}): NodePostgresAmbientClientPool => {\n const { connectionString, database } = options;\n\n return createConnectionPool({\n driverType: NodePostgresDriverType,\n getConnection: () => {\n const connect = async () => {\n const client = new pg.Client({ connectionString, database });\n await client.connect();\n return client;\n };\n\n return nodePostgresConnection({\n type: 'Client',\n connect,\n close: (client) => client.end(),\n });\n },\n });\n};\n\nexport const nodePostgresAmbientClientPool = (options: {\n client: pg.Client;\n}): NodePostgresAmbientClientPool => {\n const { client } = options;\n\n const getConnection = () => {\n const connect = () => Promise.resolve(client);\n\n return nodePostgresConnection({\n type: 'Client',\n connect,\n close: () => Promise.resolve(),\n });\n };\n\n const open = () => Promise.resolve(getConnection());\n const close = () => Promise.resolve();\n\n return createConnectionPool({\n driverType: NodePostgresDriverType,\n connection: open,\n close,\n getConnection,\n });\n};\n\nexport type NodePostgresPoolPooledOptions =\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 NodePostgresPoolNotPooledOptions =\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:\n | NodePostgresPoolClientConnection\n | NodePostgresClientConnection;\n pooled?: false;\n };\n\nexport type NodePostgresPoolOptions = (\n | NodePostgresPoolPooledOptions\n | NodePostgresPoolNotPooledOptions\n) & {\n serializer?: JSONSerializer;\n};\n\nexport function nodePostgresPool(\n options: NodePostgresPoolPooledOptions,\n): NodePostgresNativePool;\nexport function nodePostgresPool(\n options: NodePostgresPoolNotPooledOptions,\n): NodePostgresAmbientClientPool;\nexport function nodePostgresPool(\n options: NodePostgresPoolOptions,\n):\n | NodePostgresNativePool\n | NodePostgresAmbientClientPool\n | NodePostgresAmbientConnectionPool {\n const { connectionString, database, serializer } = options;\n\n setNodePostgresTypeParser(serializer ?? JSONSerializer);\n\n if ('client' in options && options.client)\n return nodePostgresAmbientClientPool({ client: options.client });\n\n if ('connection' in options && options.connection)\n return nodePostgresAmbientConnectionPool({\n connection: options.connection,\n });\n\n if ('pooled' in options && options.pooled === false)\n return nodePostgresClientPool({ connectionString, database });\n\n if ('pool' in options && options.pool)\n return nodePostgresAmbientNativePool({ pool: options.pool });\n\n return nodePostgresNativePool({\n connectionString,\n database,\n });\n}\n\nconst pools: Map<string, pg.Pool> = new Map();\nconst usageCounter: Map<string, number> = new Map();\n\nexport const getPool = (\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 ? getDatabaseNameOrDefault(poolOptions.connectionString)\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 endPool = async ({\n connectionString,\n database,\n force,\n}: {\n connectionString: string;\n database?: string | undefined;\n force?: boolean;\n}): Promise<void> => {\n database = database ?? getDatabaseNameOrDefault(connectionString);\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 endAllPools = () =>\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 pg from 'pg';\nimport { JSONSerializer } from '../../../../core/serializer';\n\nexport const setNodePostgresTypeParser = (jsonSerializer: JSONSerializer) => {\n // BigInt\n pg.types.setTypeParser(20, (val) => BigInt(val));\n\n // JSONB\n // eslint-disable-next-line @typescript-eslint/no-unsafe-return\n pg.types.setTypeParser(3802, (val) => jsonSerializer.deserialize(val));\n\n // JSON\n // eslint-disable-next-line @typescript-eslint/no-unsafe-return\n pg.types.setTypeParser(114, (val) => jsonSerializer.deserialize(val));\n};\n","import {\n canHandleDriverWithConnectionString,\n type DumboDatabaseDriver,\n dumboDatabaseDriverRegistry,\n} from '../../../core';\nimport {\n DefaultPostgreSQLMigratorOptions,\n getDatabaseNameOrDefault,\n pgFormatter,\n PostgreSQLConnectionString,\n} from '../core';\nimport {\n type NodePostgresConnection,\n NodePostgresDriverType,\n type NodePostgresPool,\n nodePostgresPool,\n type NodePostgresPoolOptions,\n} from './connections';\n\nconst tryParseConnectionString = (connectionString: string) => {\n try {\n return PostgreSQLConnectionString(connectionString);\n } catch {\n return null;\n }\n};\n\nexport const pgDatabaseDriver: DumboDatabaseDriver<\n NodePostgresConnection,\n NodePostgresPoolOptions\n> = {\n driverType: NodePostgresDriverType,\n createPool: (options) => nodePostgresPool(options as NodePostgresPoolOptions),\n sqlFormatter: pgFormatter,\n defaultMigratorOptions: DefaultPostgreSQLMigratorOptions,\n getDatabaseNameOrDefault,\n canHandle: canHandleDriverWithConnectionString(\n NodePostgresDriverType,\n tryParseConnectionString,\n ),\n};\n\nexport const usePgDatabaseDriver = () => {\n dumboDatabaseDriverRegistry.register(\n NodePostgresDriverType,\n pgDatabaseDriver,\n );\n};\n\nusePgDatabaseDriver();\n\nexport * from './connections';\nexport * from './execute';\nexport * from './serialization';\n\nexport { pgDatabaseDriver as databaseDriver };\n\n// TODO: Remove stuff below\n\nexport type PostgresDriverType = NodePostgresDriverType;\nexport type PostgresPool = NodePostgresPool;\nexport type PostgresConnection = NodePostgresConnection;\n\nexport type PostgresPoolOptions = NodePostgresPoolOptions;\nexport const postgresPool = nodePostgresPool;\n\nexport const connectionPool = postgresPool;\n"]}
1
+ {"version":3,"file":"pg.cjs","names":["pgFormatter","mapSQLQueryResult","mapPostgresError","BatchCommandNoChangesError","sqlExecutor","createConnection","createConnectionPool","createAmbientConnectionPool","JSONSerializer","parseDatabaseName","PostgreSQLConnectionString","pgFormatter","DefaultPostgreSQLMigratorOptions","canHandleDriverWithConnectionString","postgreSQLMetadata"],"sources":["../src/storage/postgresql/pg/execute/execute.ts","../src/storage/postgresql/pg/connections/transaction.ts","../src/storage/postgresql/pg/connections/connection.ts","../src/storage/postgresql/pg/serialization/index.ts","../src/storage/postgresql/pg/connections/pool.ts","../src/storage/postgresql/pg/index.ts"],"sourcesContent":["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' | 'READ COMMITTED' | 'REPEATABLE READ' | '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 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 | 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 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 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 | PgAmbientClientPool | 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 {\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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"}
package/dist/pg.d.cts CHANGED
@@ -1,171 +1,158 @@
1
- import { dv as DatabaseConnectionString, as as SQLExecutor, aC as AcquireDatabaseLockOptions, aD as ReleaseDatabaseLockOptions, aF as DatabaseLock, aA as DatabaseLockOptions, aB as AcquireDatabaseLockMode, M as MigratorOptions, cU as SQL, b as ConnectionPool, S as SQLFormatter, q as DatabaseDriverType, C as Connection, cy as JSONSerializer, D as DatabaseTransaction, v as AnyConnection, a as DatabaseTransactionOptions, c as DbSQLExecutor, d as DumboDatabaseDriver } from './connectionString-B1wm0TFc.cjs';
2
- import pg from 'pg';
3
- import { D as DefaultSQLColumnProcessors } from './columnProcessors-BX-sH7ah.cjs';
1
+ import { D as Connection, E as AnyConnection, Gt as DbSQLExecutor, K as DatabaseTransaction, co as JSONSerializer, ft as DumboDatabaseDriver, oo as JSONSerializationOptions, p as ConnectionPool, q as DatabaseTransactionOptions, r as postgreSQLMetadata } from "./index-Cmdlb0KP.cjs";
2
+ import { _ as tryAcquireAdvisoryLock, a as PostgreSQLExpandSQLInProcessor, b as defaultPostgreSQLConnectionString, c as functionExists, d as tableExistsSQL, f as DefaultPostgreSQLMigratorOptions, g as releaseAdvisoryLock, h as advisoryLock, i as PostgreSQLArrayProcessor, l as functionExistsSQL, m as acquireAdvisoryLock, n as PostgreSQLDriverType, o as pgFormatter, p as AdvisoryLock, r as postgreSQLColumnProcessors, s as defaultPostgreSqlDatabase, t as PostgreSQLDatabaseName, u as tableExists, v as mapPostgresError, x as parseDatabaseName, y as PostgreSQLConnectionString } from "./index-DtRCGhFP.cjs";
3
+ import pg from "pg";
4
4
 
5
- declare const defaultPostgreSQLConnectionString: PostgreSQLConnectionString;
6
- declare const getDatabaseNameOrDefault: (connectionString: string) => string;
7
- type PostgreSQLConnectionString = DatabaseConnectionString<'PostgreSQL', `postgresql://${string}` | `postgres://${string}`>;
8
- declare const PostgreSQLConnectionString: (connectionString: string) => PostgreSQLConnectionString;
9
-
10
- declare const tryAcquireAdvisoryLock: (execute: SQLExecutor, options: AcquireDatabaseLockOptions) => Promise<boolean>;
11
- declare const releaseAdvisoryLock: (execute: SQLExecutor, options: ReleaseDatabaseLockOptions) => Promise<boolean>;
12
- declare const acquireAdvisoryLock: (execute: SQLExecutor, options: AcquireDatabaseLockOptions) => Promise<void>;
13
- declare const AdvisoryLock: DatabaseLock;
14
- declare const advisoryLock: (execute: SQLExecutor, options: DatabaseLockOptions) => {
15
- acquire: (acquireOptions?: {
16
- mode: AcquireDatabaseLockMode;
17
- }) => Promise<void>;
18
- tryAcquire: (acquireOptions?: {
19
- mode: AcquireDatabaseLockMode;
20
- }) => Promise<boolean>;
21
- release: () => Promise<boolean>;
22
- withAcquire: <Result>(handle: () => Promise<Result>, acquireOptions?: {
23
- mode: AcquireDatabaseLockMode;
24
- }) => Promise<Result>;
5
+ //#region src/storage/postgresql/pg/connections/transaction.d.ts
6
+ type PgTransaction = DatabaseTransaction<PgConnection, PgTransactionOptions>;
7
+ type PgIsolationLevel = 'READ UNCOMMITTED' | 'READ COMMITTED' | 'REPEATABLE READ' | 'SERIALIZABLE';
8
+ type PgTransactionOptions = DatabaseTransactionOptions & {
9
+ isolationLevel?: PgIsolationLevel;
25
10
  };
26
-
27
- declare const DefaultPostgreSQLMigratorOptions: MigratorOptions;
28
-
29
- declare const defaultPostgreSqlDatabase = "postgres";
30
- declare const tableExistsSQL: (tableName: string) => SQL;
31
- declare const tableExists: (pool: ConnectionPool, tableName: string) => Promise<boolean>;
32
- declare const functionExistsSQL: (functionName: string) => SQL;
33
- declare const functionExists: (pool: ConnectionPool, tableName: string) => Promise<boolean>;
34
-
35
- declare const pgFormatter: SQLFormatter;
36
-
37
- declare const postgreSQLColumnProcessors: DefaultSQLColumnProcessors;
38
-
39
- type PostgreSQLDatabaseName = 'PostgreSQL';
40
- declare const PostgreSQLDatabaseName = "PostgreSQL";
41
- type PostgreSQLDriverType<DriverName extends string = string> = DatabaseDriverType<PostgreSQLDatabaseName, DriverName>;
42
-
43
- type NodePostgresDriverType = PostgreSQLDriverType<'pg'>;
44
- declare const NodePostgresDriverType: NodePostgresDriverType;
45
- type NodePostgresPoolClient = pg.PoolClient;
46
- type NodePostgresClient = pg.Client;
47
- type NodePostgresClientOrPoolClient = NodePostgresPoolClient | NodePostgresClient;
48
- type NodePostgresPoolOrClient = pg.Pool | NodePostgresPoolClient | NodePostgresClient;
49
- type NodePostgresClientConnection = Connection<NodePostgresClientConnection, NodePostgresDriverType, NodePostgresClient>;
50
- type NodePostgresPoolClientConnection = Connection<NodePostgresPoolClientConnection, NodePostgresDriverType, NodePostgresPoolClient>;
51
- type NodePostgresConnection = NodePostgresPoolClientConnection | NodePostgresClientConnection;
52
- type NodePostgresPoolClientOptions = {
53
- type: 'PoolClient';
54
- connect: () => Promise<NodePostgresPoolClient>;
55
- close: (client: NodePostgresPoolClient) => Promise<void>;
11
+ declare const pgTransaction: <ConnectionType extends AnyConnection = AnyConnection>(connection: () => ConnectionType, serializer: JSONSerializer) => <DbClient extends PgPoolOrClient = PgPoolOrClient>(getClient: Promise<DbClient>, options?: {
12
+ close: (client: DbClient, error?: unknown) => Promise<void>;
13
+ } & PgTransactionOptions) => DatabaseTransaction<ConnectionType>;
14
+ //#endregion
15
+ //#region src/storage/postgresql/pg/connections/connection.d.ts
16
+ type PgDriverType = PostgreSQLDriverType<'pg'>;
17
+ declare const PgDriverType: PgDriverType;
18
+ type PgPoolClient = pg.PoolClient;
19
+ type PgClient = pg.Client;
20
+ type PgClientOrPoolClient = PgPoolClient | PgClient;
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>>;
24
+ type PgConnection = PgPoolClientConnection | PgClientConnection;
25
+ type PgPoolClientOptions = {
26
+ type: 'PoolClient';
27
+ connect: () => Promise<PgPoolClient>;
28
+ close: (client: PgPoolClient) => Promise<void>;
29
+ };
30
+ type PgClientOptions = {
31
+ type: 'Client';
32
+ connect: () => Promise<PgClient>;
33
+ close: (client: PgClient) => Promise<void>;
34
+ };
35
+ type PgClientConnectionOptions = PgClientOptions & {
36
+ serializer: JSONSerializer;
56
37
  };
57
- type NodePostgresClientOptions = {
58
- type: 'Client';
59
- connect: () => Promise<NodePostgresClient>;
60
- close: (client: NodePostgresClient) => Promise<void>;
38
+ type PgPoolClientConnectionOptions = PgPoolClientOptions & {
39
+ serializer: JSONSerializer;
61
40
  };
62
- declare const nodePostgresClientConnection: (options: NodePostgresClientOptions) => NodePostgresClientConnection;
63
- declare const nodePostgresPoolClientConnection: (options: NodePostgresPoolClientOptions) => NodePostgresPoolClientConnection;
64
- declare function nodePostgresConnection(options: NodePostgresPoolClientOptions): NodePostgresPoolClientConnection;
65
- declare function nodePostgresConnection(options: NodePostgresClientOptions): NodePostgresClientConnection;
41
+ declare const pgClientConnection: (options: PgClientConnectionOptions) => PgClientConnection;
42
+ declare const pgPoolClientConnection: (options: PgPoolClientConnectionOptions) => PgPoolClientConnection;
43
+ type PgConnectionOptions = PgPoolClientConnectionOptions | PgClientConnectionOptions;
44
+ declare function pgConnection(options: PgPoolClientConnectionOptions): PgPoolClientConnection;
45
+ declare function pgConnection(options: PgClientConnectionOptions): PgClientConnection;
66
46
  type ConnectionCheckResult = {
67
- successful: true;
47
+ successful: true;
68
48
  } | {
69
- successful: false;
70
- code: string | undefined;
71
- errorType: 'ConnectionRefused' | 'Authentication' | 'Unknown';
72
- error: unknown;
49
+ successful: false;
50
+ code: string | undefined;
51
+ errorType: 'ConnectionRefused' | 'Authentication' | 'Unknown';
52
+ error: unknown;
73
53
  };
74
54
  declare const checkConnection: (connectionString: string) => Promise<ConnectionCheckResult>;
75
-
76
- type NodePostgresNativePool = ConnectionPool<NodePostgresPoolClientConnection>;
77
- type NodePostgresAmbientClientPool = ConnectionPool<NodePostgresClientConnection>;
78
- type NodePostgresAmbientConnectionPool = ConnectionPool<NodePostgresPoolClientConnection | NodePostgresClientConnection>;
79
- type NodePostgresPool = NodePostgresNativePool | NodePostgresAmbientClientPool | NodePostgresAmbientConnectionPool;
80
- declare const nodePostgresNativePool: (options: {
81
- connectionString: string;
82
- database?: string | undefined;
83
- }) => NodePostgresNativePool;
84
- declare const nodePostgresAmbientNativePool: (options: {
85
- pool: pg.Pool;
86
- }) => NodePostgresNativePool;
87
- declare const nodePostgresAmbientConnectionPool: (options: {
88
- connection: NodePostgresPoolClientConnection | NodePostgresClientConnection;
89
- }) => NodePostgresAmbientConnectionPool;
90
- declare const nodePostgresClientPool: (options: {
91
- connectionString: string;
92
- database?: string | undefined;
93
- }) => NodePostgresAmbientClientPool;
94
- declare const nodePostgresAmbientClientPool: (options: {
95
- client: pg.Client;
96
- }) => NodePostgresAmbientClientPool;
97
- type NodePostgresPoolPooledOptions = {
98
- connectionString: string;
99
- database?: string;
100
- pooled: true;
101
- pool: pg.Pool;
55
+ //#endregion
56
+ //#region src/storage/postgresql/pg/connections/pool.d.ts
57
+ type PgNativePool = ConnectionPool<PgPoolClientConnection>;
58
+ type PgAmbientClientPool = ConnectionPool<PgClientConnection>;
59
+ type PgAmbientConnectionPool = ConnectionPool<PgPoolClientConnection | PgClientConnection>;
60
+ type PgPool = PgNativePool | PgAmbientClientPool | PgAmbientConnectionPool;
61
+ declare const pgNativePool: (options: {
62
+ connectionString: string;
63
+ database?: string | undefined;
64
+ serializer: JSONSerializer;
65
+ }) => PgNativePool;
66
+ declare const pgAmbientNativePool: (options: {
67
+ pool: pg.Pool;
68
+ serializer: JSONSerializer;
69
+ }) => PgNativePool;
70
+ declare const pgAmbientConnectionPool: (options: {
71
+ connection: PgPoolClientConnection | PgClientConnection;
72
+ }) => PgAmbientConnectionPool;
73
+ declare const pgClientPool: (options: {
74
+ connectionString: string;
75
+ database?: string | undefined;
76
+ serializer: JSONSerializer;
77
+ }) => PgAmbientClientPool;
78
+ declare const pgAmbientClientPool: (options: {
79
+ client: pg.Client;
80
+ serializer: JSONSerializer;
81
+ }) => PgAmbientClientPool;
82
+ type PgPoolPooledOptions = {
83
+ connectionString: string;
84
+ database?: string;
85
+ pooled: true;
86
+ pool: pg.Pool;
102
87
  } | {
103
- connectionString: string;
104
- database?: string;
105
- pool: pg.Pool;
88
+ connectionString: string;
89
+ database?: string;
90
+ pool: pg.Pool;
106
91
  } | {
107
- connectionString: string;
108
- database?: string;
109
- pooled: true;
92
+ connectionString: string;
93
+ database?: string;
94
+ pooled: true;
110
95
  } | {
111
- connectionString: string;
112
- database?: string;
96
+ connectionString: string;
97
+ database?: string;
113
98
  };
114
- type NodePostgresPoolNotPooledOptions = {
115
- connectionString: string;
116
- database?: string;
117
- pooled: false;
118
- client: pg.Client;
99
+ type PgPoolNotPooledOptions = {
100
+ connectionString: string;
101
+ database?: string;
102
+ pooled: false;
103
+ client: pg.Client;
119
104
  } | {
120
- connectionString: string;
121
- database?: string;
122
- client: pg.Client;
105
+ connectionString: string;
106
+ database?: string;
107
+ client: pg.Client;
123
108
  } | {
124
- connectionString: string;
125
- database?: string;
126
- pooled: false;
109
+ connectionString: string;
110
+ database?: string;
111
+ pooled: false;
127
112
  } | {
128
- connectionString: string;
129
- database?: string;
130
- connection: NodePostgresPoolClientConnection | NodePostgresClientConnection;
131
- pooled?: false;
132
- };
133
- type NodePostgresPoolOptions = (NodePostgresPoolPooledOptions | NodePostgresPoolNotPooledOptions) & {
134
- serializer?: JSONSerializer;
113
+ connectionString: string;
114
+ database?: string;
115
+ connection: PgPoolClientConnection | PgClientConnection;
116
+ pooled?: false;
135
117
  };
136
- declare function nodePostgresPool(options: NodePostgresPoolPooledOptions): NodePostgresNativePool;
137
- declare function nodePostgresPool(options: NodePostgresPoolNotPooledOptions): NodePostgresAmbientClientPool;
138
- declare const getPool: (connectionStringOrOptions: string | pg.PoolConfig) => pg.Pool;
139
- declare const endPool: ({ connectionString, database, force, }: {
140
- connectionString: string;
141
- database?: string | undefined;
142
- force?: boolean;
118
+ type PgPoolOptions = (PgPoolPooledOptions | PgPoolNotPooledOptions) & JSONSerializationOptions;
119
+ declare function pgPool(options: PgPoolPooledOptions): PgNativePool;
120
+ declare function pgPool(options: PgPoolNotPooledOptions): PgAmbientClientPool;
121
+ declare const getPgPool: (connectionStringOrOptions: string | pg.PoolConfig) => pg.Pool;
122
+ declare const endPgPool: ({
123
+ connectionString,
124
+ database,
125
+ force
126
+ }: {
127
+ connectionString: string;
128
+ database?: string | undefined;
129
+ force?: boolean;
143
130
  }) => Promise<void>;
144
131
  declare const onEndPool: (lookupKey: string, pool: pg.Pool) => Promise<void>;
145
- declare const endAllPools: () => Promise<void[]>;
146
-
147
- type NodePostgresTransaction = DatabaseTransaction<NodePostgresConnection>;
148
- declare const nodePostgresTransaction: <ConnectionType extends AnyConnection = AnyConnection>(connection: () => ConnectionType) => <DbClient extends NodePostgresPoolOrClient = NodePostgresPoolOrClient>(getClient: Promise<DbClient>, options?: {
149
- close: (client: DbClient, error?: unknown) => Promise<void>;
150
- } & DatabaseTransactionOptions) => DatabaseTransaction<ConnectionType>;
151
-
152
- declare const isNodePostgresNativePool: (poolOrClient: pg.Pool | pg.PoolClient | pg.Client) => poolOrClient is pg.Pool;
153
- declare const isNodePostgresClient: (poolOrClient: pg.Pool | pg.PoolClient | pg.Client) => poolOrClient is pg.Client;
154
- declare const isNodePostgresPoolClient: (poolOrClient: pg.Pool | pg.PoolClient | pg.Client) => poolOrClient is pg.PoolClient;
155
- declare const nodePostgresExecute: <Result = void>(poolOrClient: pg.Pool | pg.PoolClient | pg.Client, handle: (client: pg.PoolClient | pg.Client) => Promise<Result>) => Promise<Result>;
156
- type NodePostgresSQLExecutor = DbSQLExecutor<NodePostgresDriverType, NodePostgresClientOrPoolClient>;
157
- declare const nodePostgresSQLExecutor: () => NodePostgresSQLExecutor;
158
-
159
- declare const setNodePostgresTypeParser: (jsonSerializer: JSONSerializer) => void;
160
-
161
- declare const pgDatabaseDriver: DumboDatabaseDriver<NodePostgresConnection, NodePostgresPoolOptions>;
162
- declare const usePgDatabaseDriver: () => void;
163
-
164
- type PostgresDriverType = NodePostgresDriverType;
165
- type PostgresPool = NodePostgresPool;
166
- type PostgresConnection = NodePostgresConnection;
167
- type PostgresPoolOptions = NodePostgresPoolOptions;
168
- declare const postgresPool: typeof nodePostgresPool;
169
- declare const connectionPool: typeof nodePostgresPool;
170
-
171
- export { AdvisoryLock, type ConnectionCheckResult, DefaultPostgreSQLMigratorOptions, type NodePostgresAmbientClientPool, type NodePostgresAmbientConnectionPool, type NodePostgresClient, type NodePostgresClientConnection, type NodePostgresClientOptions, type NodePostgresClientOrPoolClient, type NodePostgresConnection, NodePostgresDriverType, type NodePostgresNativePool, type NodePostgresPool, type NodePostgresPoolClient, type NodePostgresPoolClientConnection, type NodePostgresPoolClientOptions, type NodePostgresPoolNotPooledOptions, type NodePostgresPoolOptions, type NodePostgresPoolOrClient, type NodePostgresPoolPooledOptions, type NodePostgresSQLExecutor, type NodePostgresTransaction, PostgreSQLConnectionString, PostgreSQLDatabaseName, type PostgreSQLDriverType, type PostgresConnection, type PostgresDriverType, type PostgresPool, type PostgresPoolOptions, acquireAdvisoryLock, advisoryLock, checkConnection, connectionPool, pgDatabaseDriver as databaseDriver, defaultPostgreSQLConnectionString, defaultPostgreSqlDatabase, endAllPools, endPool, functionExists, functionExistsSQL, getDatabaseNameOrDefault, getPool, isNodePostgresClient, isNodePostgresNativePool, isNodePostgresPoolClient, nodePostgresAmbientClientPool, nodePostgresAmbientConnectionPool, nodePostgresAmbientNativePool, nodePostgresClientConnection, nodePostgresClientPool, nodePostgresConnection, nodePostgresExecute, nodePostgresNativePool, nodePostgresPool, nodePostgresPoolClientConnection, nodePostgresSQLExecutor, nodePostgresTransaction, onEndPool, pgDatabaseDriver, pgFormatter, postgreSQLColumnProcessors, postgresPool, releaseAdvisoryLock, setNodePostgresTypeParser, tableExists, tableExistsSQL, tryAcquireAdvisoryLock, usePgDatabaseDriver };
132
+ declare const endAllPgPools: () => Promise<void[]>;
133
+ //#endregion
134
+ //#region src/storage/postgresql/pg/execute/execute.d.ts
135
+ declare const isPgNativePool: (poolOrClient: pg.Pool | pg.PoolClient | pg.Client) => poolOrClient is pg.Pool;
136
+ declare const isPgClient: (poolOrClient: pg.Pool | pg.PoolClient | pg.Client) => poolOrClient is pg.Client;
137
+ declare const isPgPoolClient: (poolOrClient: pg.Pool | pg.PoolClient | pg.Client) => poolOrClient is pg.PoolClient;
138
+ declare const pgExecute: <Result = void>(poolOrClient: pg.Pool | pg.PoolClient | pg.Client, handle: (client: pg.PoolClient | pg.Client) => Promise<Result>) => Promise<Result>;
139
+ type PgSQLExecutor = DbSQLExecutor<PgDriverType, PgClientOrPoolClient>;
140
+ declare const pgSQLExecutor: ({
141
+ serializer
142
+ }: {
143
+ serializer: JSONSerializer;
144
+ }) => PgSQLExecutor;
145
+ //#endregion
146
+ //#region src/storage/postgresql/pg/serialization/index.d.ts
147
+ declare const setPgTypeParser: (client: pg.Client | pg.PoolClient, options?: {
148
+ parseBigInts?: boolean;
149
+ serializer: JSONSerializer;
150
+ }) => void;
151
+ //#endregion
152
+ //#region src/storage/postgresql/pg/index.d.ts
153
+ declare const pgDumboDriver: DumboDatabaseDriver<PgConnection, PgPoolOptions, PgPool>;
154
+ declare const usePgDumboDriver: () => void;
155
+ type PgDumboOptions = PgPoolOptions;
156
+ //#endregion
157
+ export { AdvisoryLock, ConnectionCheckResult, DefaultPostgreSQLMigratorOptions, PgAmbientClientPool, PgAmbientConnectionPool, PgClient, PgClientConnection, PgClientConnectionOptions, PgClientOptions, PgClientOrPoolClient, PgConnection, PgConnectionOptions, PgDriverType, PgDumboOptions, PgIsolationLevel, PgNativePool, PgPool, PgPoolClient, PgPoolClientConnection, PgPoolClientConnectionOptions, PgPoolClientOptions, PgPoolNotPooledOptions, PgPoolOptions, PgPoolOrClient, PgPoolPooledOptions, PgSQLExecutor, PgTransaction, PgTransactionOptions, PostgreSQLArrayProcessor, PostgreSQLConnectionString, PostgreSQLDatabaseName, PostgreSQLDriverType, PostgreSQLExpandSQLInProcessor, acquireAdvisoryLock, advisoryLock, checkConnection, defaultPostgreSQLConnectionString, defaultPostgreSqlDatabase, endAllPgPools, endPgPool, functionExists, functionExistsSQL, getPgPool, isPgClient, isPgNativePool, isPgPoolClient, mapPostgresError, onEndPool, parseDatabaseName, pgAmbientClientPool, pgAmbientConnectionPool, pgAmbientNativePool, pgClientConnection, pgClientPool, pgConnection, pgDumboDriver, pgExecute, pgFormatter, pgNativePool, pgPool, pgPoolClientConnection, pgSQLExecutor, pgTransaction, postgreSQLColumnProcessors, postgreSQLMetadata, releaseAdvisoryLock, setPgTypeParser, tableExists, tableExistsSQL, tryAcquireAdvisoryLock, usePgDumboDriver };
158
+ //# sourceMappingURL=pg.d.cts.map