pqb 0.61.13 → 0.62.1

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.
@@ -1,6 +1,7 @@
1
1
  'use strict';
2
2
 
3
3
  var postgres = require('postgres');
4
+ var internal = require('pqb/internal');
4
5
  var pqb = require('pqb');
5
6
 
6
7
  const transactionArgs = {
@@ -63,11 +64,11 @@ const types = {
63
64
  dateAndTimestampAsStrings: {
64
65
  to: 25,
65
66
  from: [1082, 1114, 1184],
66
- parse: pqb.returnArg
67
+ parse: internal.returnArg
67
68
  },
68
69
  interval: {
69
70
  from: [1186],
70
- serialize: pqb.returnArg,
71
+ serialize: internal.returnArg,
71
72
  parse(str) {
72
73
  const [years, , months, , days, , time] = str.split(" ");
73
74
  const [hours, minutes, seconds] = time.split(":");
@@ -85,7 +86,7 @@ const types = {
85
86
  json: {
86
87
  to: 114,
87
88
  from: [114, 3802],
88
- serialize: pqb.returnArg,
89
+ serialize: internal.returnArg,
89
90
  parse: (x) => {
90
91
  return JSON.parse(x);
91
92
  }
@@ -98,7 +99,7 @@ class PostgresJsAdapter {
98
99
  this.sql = this.configure(config);
99
100
  this.locals = config.searchPath ? {
100
101
  search_path: config.searchPath
101
- } : pqb.emptyObject;
102
+ } : internal.emptyObject;
102
103
  }
103
104
  isInTransaction() {
104
105
  return false;
@@ -133,13 +134,13 @@ class PostgresJsAdapter {
133
134
  sql = postgres(this.config);
134
135
  }
135
136
  if (config.connectRetry) {
136
- pqb.setConnectRetryConfig(
137
+ internal.setConnectRetryConfig(
137
138
  this,
138
- config.connectRetry === true ? pqb.emptyObject : config.connectRetry
139
+ config.connectRetry === true ? internal.emptyObject : config.connectRetry
139
140
  );
140
141
  if (!this.wrappedWithConnectRetry) {
141
- this.query = pqb.wrapAdapterFnWithConnectRetry(this, this.query);
142
- this.arrays = pqb.wrapAdapterFnWithConnectRetry(this, this.arrays);
142
+ this.query = internal.wrapAdapterFnWithConnectRetry(this, this.query);
143
+ this.arrays = internal.wrapAdapterFnWithConnectRetry(this, this.arrays);
143
144
  this.wrappedWithConnectRetry = true;
144
145
  }
145
146
  }
@@ -246,28 +247,32 @@ class PostgresJsAdapter {
246
247
  to.routine = from.routine;
247
248
  }
248
249
  }
249
- const query = (sql, text, values, catchingSavepoint, arrays2) => {
250
+ const query = (sql, text, values, startingSavepoint, releasingSavepoint, arrays2) => {
250
251
  let query2 = sql.unsafe(text, values);
251
252
  if (arrays2) query2 = query2.values();
252
- if (catchingSavepoint) {
253
- return Promise.all([
254
- sql.unsafe(`SAVEPOINT "${catchingSavepoint}"`),
255
- query2,
256
- sql.unsafe(`RELEASE SAVEPOINT "${catchingSavepoint}"`)
257
- ]).then(
258
- (results) => {
259
- return wrapResult(results[1]);
260
- },
261
- (err) => sql.unsafe(`ROLLBACK TO SAVEPOINT "${catchingSavepoint}"`).then(() => {
262
- throw err;
263
- })
264
- );
265
- } else {
253
+ if (!startingSavepoint && !releasingSavepoint) {
266
254
  return query2.then(wrapResult);
267
255
  }
256
+ return Promise.all([
257
+ startingSavepoint && sql.unsafe(`SAVEPOINT "${startingSavepoint}"`),
258
+ query2,
259
+ releasingSavepoint && sql.unsafe(`RELEASE SAVEPOINT "${releasingSavepoint}"`)
260
+ ]).then(
261
+ (results) => {
262
+ return wrapResult(results[1]);
263
+ },
264
+ (err) => {
265
+ if (!releasingSavepoint) {
266
+ throw err;
267
+ }
268
+ return sql.unsafe(`ROLLBACK TO SAVEPOINT "${releasingSavepoint}"`).then(() => {
269
+ throw err;
270
+ });
271
+ }
272
+ );
268
273
  };
269
- const arrays = (sql, text, values, catchingSavepoint) => {
270
- return query(sql, text, values, catchingSavepoint, true);
274
+ const arrays = (sql, text, values, startingSavepoint, releasingSavepoint) => {
275
+ return query(sql, text, values, startingSavepoint, releasingSavepoint, true);
271
276
  };
272
277
  class PostgresJsTransactionAdapter {
273
278
  constructor(adapter, sql, parent, locals) {
@@ -301,12 +306,18 @@ class PostgresJsTransactionAdapter {
301
306
  getSchema() {
302
307
  return this.adapter.getSchema();
303
308
  }
304
- query(text, values, catchingSavepoint) {
305
- return query(this.sql, text, values, catchingSavepoint);
309
+ query(text, values, startingSavepoint, releasingSavepoint) {
310
+ return query(this.sql, text, values, startingSavepoint, releasingSavepoint);
306
311
  }
307
312
  // eslint-disable-next-line @typescript-eslint/no-explicit-any
308
- arrays(text, values, catchingSavepoint) {
309
- return arrays(this.sql, text, values, catchingSavepoint);
313
+ arrays(text, values, startingSavepoint, releasingSavepoint) {
314
+ return arrays(
315
+ this.sql,
316
+ text,
317
+ values,
318
+ startingSavepoint,
319
+ releasingSavepoint
320
+ );
310
321
  }
311
322
  async transaction(...args) {
312
323
  const { cb, options } = getTransactionArgs(args);
@@ -1 +1 @@
1
- {"version":3,"file":"postgres-js.js","sources":["../src/adapters/adapter.utils.ts","../src/adapters/postgres-js.ts"],"sourcesContent":["import {\n AdapterTransactionOptions,\n TransactionAdapterBase,\n TransactionArgs,\n} from './adapter';\nimport { RecordStringOrNumber } from 'pqb';\n\ninterface SolvedTransactionArgs {\n options: AdapterTransactionOptions | undefined;\n cb: (adapter: TransactionAdapterBase) => Promise<unknown>;\n}\n\nconst transactionArgs: SolvedTransactionArgs = {\n cb: undefined,\n options: undefined,\n} as never;\n\nexport const getTransactionArgs = (args: TransactionArgs<unknown>) => {\n if (args[1]) {\n transactionArgs.options = args[0] as AdapterTransactionOptions;\n transactionArgs.cb = args[1];\n } else {\n transactionArgs.cb = args[0] as never;\n }\n return transactionArgs;\n};\n\nexport const mergeLocals = (\n locals: RecordStringOrNumber,\n options?: AdapterTransactionOptions,\n): RecordStringOrNumber =>\n options?.locals ? { ...locals, ...options.locals } : locals;\n\nexport const getSetLocalsSql = (\n options?: AdapterTransactionOptions,\n): string | undefined => {\n if (!options?.locals) return;\n\n return Object.entries(options.locals)\n .map(([key, value]) => `SET LOCAL ${key}=${value}`)\n .join('; ');\n};\n\nexport const getResetLocalsSql = (\n parentLocals: RecordStringOrNumber,\n options?: AdapterTransactionOptions,\n): string | undefined => {\n if (!options?.locals) return;\n\n return Object.entries(options.locals)\n .reduce<string[]>((acc, [key, value]) => {\n if (parentLocals[key] !== value) {\n acc.push(`SET LOCAL ${key}=${parentLocals[key]}`);\n }\n return acc;\n }, [])\n .join('; ');\n};\n","import postgres, { Error, Row, RowList, TransactionSql } from 'postgres';\nimport {\n AdapterBase,\n AdapterConfigBase,\n emptyObject,\n MaybeArray,\n QueryArraysResult,\n QueryError,\n QueryResult,\n QueryResultRow,\n returnArg,\n setConnectRetryConfig,\n wrapAdapterFnWithConnectRetry,\n DbOptions,\n DefaultColumnTypes,\n DefaultSchemaConfig,\n createDbWithAdapter,\n DbResult,\n ColumnSchemaConfig,\n TransactionAdapterBase,\n QuerySchema,\n TransactionArgs,\n RecordStringOrNumber,\n} from 'pqb';\nimport {\n getResetLocalsSql,\n getSetLocalsSql,\n getTransactionArgs,\n mergeLocals,\n} from './adapter.utils';\n\nexport interface CreatePostgresJsDbOptions<\n SchemaConfig extends ColumnSchemaConfig,\n ColumnTypes,\n> extends PostgresJsAdapterOptions,\n DbOptions<SchemaConfig, ColumnTypes> {}\n\nexport const createDb = <\n SchemaConfig extends ColumnSchemaConfig = DefaultSchemaConfig,\n ColumnTypes = DefaultColumnTypes<SchemaConfig>,\n>(\n options: CreatePostgresJsDbOptions<SchemaConfig, ColumnTypes>,\n): DbResult<ColumnTypes> => {\n return createDbWithAdapter({\n ...options,\n adapter: new PostgresJsAdapter(options as never),\n });\n};\n\nexport interface PostgresJsAdapterOptions\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n extends postgres.Options<any>,\n AdapterConfigBase {\n databaseURL?: string;\n searchPath?: string;\n schema?: QuerySchema;\n}\n\ntype RawResult = RowList<(Row & Iterable<Row>)[]>;\n\nclass PostgresJsResult<T extends QueryResultRow> implements QueryResult<T> {\n rowCount: number;\n rows: T[];\n fields: QueryResult<T>['fields'];\n\n constructor(result: RawResult) {\n this.rowCount = result.count;\n this.rows = result as never;\n this.fields = result.statement.columns;\n }\n}\n\n// eslint-disable-next-line @typescript-eslint/no-explicit-any\nconst wrapResult = (result: MaybeArray<RawResult>): QueryArraysResult<any> => {\n if (result.constructor === Array) {\n return (result as RawResult[]).map(\n (res) => new PostgresJsResult(res),\n ) as never;\n } else {\n return new PostgresJsResult(result as RawResult);\n }\n};\n\nconst types: Record<string, Partial<postgres.PostgresType>> = {\n bytea: {\n to: 17,\n from: 17 as never,\n serialize: (x) => '\\\\x' + Buffer.from(x).toString('hex'),\n // omit parse, let bytea return a string, so it remains consistent with when it's selected via JSON\n },\n dateAndTimestampAsStrings: {\n to: 25,\n from: [1082, 1114, 1184],\n parse: returnArg,\n },\n interval: {\n from: [1186],\n serialize: returnArg,\n parse(str: string) {\n const [years, , months, , days, , time] = str.split(' ');\n const [hours, minutes, seconds] = time.split(':');\n\n return {\n years: years ? Number(years) : 0,\n months: months ? Number(months) : 0,\n days: days ? Number(days) : 0,\n hours: hours ? Number(hours) : 0,\n minutes: minutes ? Number(minutes) : 0,\n seconds: seconds ? Number(seconds) : 0,\n };\n },\n },\n // overrides the built-in json type to not serialize it, because it incorrectly serializes\n json: {\n to: 114,\n from: [114, 3802],\n serialize: returnArg,\n parse: (x) => {\n return JSON.parse(x);\n },\n },\n};\n\nexport class PostgresJsAdapter implements AdapterBase {\n sql: postgres.Sql;\n searchPath?: string;\n config: PostgresJsAdapterOptions;\n errorClass = postgres.PostgresError;\n locals: RecordStringOrNumber;\n private wrappedWithConnectRetry?: boolean;\n\n constructor(config: PostgresJsAdapterOptions) {\n this.config = { ...config, types };\n this.sql = this.configure(config);\n this.locals = config.searchPath\n ? {\n search_path: config.searchPath,\n }\n : emptyObject;\n }\n\n isInTransaction(): boolean {\n return false;\n }\n\n private configure(config: PostgresJsAdapterOptions): postgres.Sql {\n this.searchPath = config.searchPath;\n if (this.searchPath) {\n this.config.connection = {\n ...config.connection,\n search_path: this.searchPath,\n };\n }\n\n let sql;\n if (this.config.databaseURL) {\n const urlString = this.config.databaseURL;\n const url = new URL(urlString);\n\n const ssl = url.searchParams.get('ssl');\n if (ssl === 'false' || ssl === 'true') {\n this.config.ssl = ssl === 'true';\n }\n\n const searchPath = url.searchParams.get('searchPath');\n if (searchPath) {\n this.searchPath = searchPath;\n url.searchParams.delete('searchPath');\n this.config.connection = {\n ...config.connection,\n search_path: searchPath,\n };\n }\n\n sql = postgres(url.toString(), this.config);\n } else {\n sql = postgres(this.config);\n }\n\n if (config.connectRetry) {\n setConnectRetryConfig(\n this,\n config.connectRetry === true ? emptyObject : config.connectRetry,\n );\n\n if (!this.wrappedWithConnectRetry) {\n this.query = wrapAdapterFnWithConnectRetry(this, this.query);\n this.arrays = wrapAdapterFnWithConnectRetry(this, this.arrays);\n this.wrappedWithConnectRetry = true;\n }\n }\n\n return sql;\n }\n\n private getURL(): URL | undefined {\n return this.config.databaseURL\n ? new URL(this.config.databaseURL)\n : undefined;\n }\n\n private replaceSql(config: PostgresJsAdapterOptions): Promise<void> {\n const { sql } = this;\n // Swap the client before ending the old one so the adapter remains reusable\n this.sql = this.configure(config);\n return sql.end();\n }\n\n async updateConfig(config: PostgresJsAdapterOptions): Promise<void> {\n await this.replaceSql({ ...this.config, ...config });\n }\n\n reconfigure(params: {\n database?: string;\n user?: string;\n password?: string;\n searchPath?: string;\n }): AdapterBase {\n const url = this.getURL();\n if (url) {\n if ('database' in params) {\n url.pathname = `/${params.database}`;\n }\n\n if (params.user !== undefined) {\n url.username = params.user;\n }\n\n if (params.password !== undefined) {\n url.password = params.password;\n }\n\n if (params.searchPath !== undefined) {\n url.searchParams.set('searchPath', params.searchPath);\n }\n\n return new PostgresJsAdapter({\n ...this.config,\n databaseURL: url.toString(),\n });\n } else {\n return new PostgresJsAdapter({ ...this.config, ...params });\n }\n }\n\n getDatabase(): string {\n const url = this.getURL();\n return url ? url.pathname.slice(1) : (this.config.database as string);\n }\n\n getUser(): string {\n const url = this.getURL();\n return url ? url.username : (this.config.user as string);\n }\n\n getSearchPath(): string | undefined {\n return this.searchPath;\n }\n\n getHost(): string {\n const url = this.getURL();\n return url ? url.hostname : (this.config.host as string);\n }\n\n getSchema(): QuerySchema | undefined {\n return this.config.schema;\n }\n\n query<T extends QueryResultRow = QueryResultRow>(\n text: string,\n values?: unknown[],\n ): Promise<QueryResult<T>> {\n return query(this.sql, text, values);\n }\n\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n arrays<R extends any[] = any[]>(\n text: string,\n values?: unknown[],\n ): Promise<QueryArraysResult<R>> {\n return arrays(this.sql, text, values);\n }\n\n async transaction<Result>(...args: TransactionArgs<Result>): Promise<Result> {\n let ok: boolean | undefined;\n let result: unknown;\n\n const { cb, options } = getTransactionArgs(args);\n\n const fn = (sql: TransactionSql) => {\n const localsSql = getSetLocalsSql(options);\n if (localsSql) {\n sql.unsafe(localsSql).execute();\n }\n\n const locals = mergeLocals(this.locals, options);\n\n return cb(\n new PostgresJsTransactionAdapter(this, sql as never, this, locals),\n ).then((res) => {\n ok = true;\n return (result = res);\n });\n };\n\n return (\n options?.options\n ? this.sql.begin(options.options, fn)\n : this.sql.begin(fn)\n ).catch((err) => {\n if (ok) return result;\n\n throw err;\n }) as never;\n }\n\n close(): Promise<void> {\n return this.replaceSql(this.config);\n }\n\n assignError(to: QueryError, dbError: Error) {\n const from = dbError as postgres.PostgresError;\n to.message = from.message;\n to.severity = from.severity;\n to.code = from.code;\n to.detail = from.detail;\n to.schema = from.schema_name;\n to.table = from.table_name;\n to.constraint = from.constraint_name;\n to.hint = from.hint;\n to.position = from.position;\n to.where = from.where;\n to.file = from.file;\n to.line = from.line;\n to.routine = from.routine;\n }\n}\n\nconst query = <T extends QueryResultRow = QueryResultRow>(\n sql: postgres.Sql,\n text: string,\n values?: unknown[],\n catchingSavepoint?: string,\n arrays?: boolean,\n): Promise<QueryResult<T>> => {\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n let query = sql.unsafe(text, values as never) as any;\n\n if (arrays) query = query.values();\n\n if (catchingSavepoint) {\n return Promise.all([\n sql.unsafe(`SAVEPOINT \"${catchingSavepoint}\"`),\n query,\n sql.unsafe(`RELEASE SAVEPOINT \"${catchingSavepoint}\"`),\n ]).then(\n (results: RawResult[]) => {\n return wrapResult(results[1]);\n },\n (err) =>\n sql.unsafe(`ROLLBACK TO SAVEPOINT \"${catchingSavepoint}\"`).then(() => {\n throw err;\n }),\n );\n } else {\n return query.then(wrapResult);\n }\n};\n\n// eslint-disable-next-line @typescript-eslint/no-explicit-any\nconst arrays = <R extends any[] = any[]>(\n sql: postgres.Sql,\n text: string,\n values?: unknown[],\n catchingSavepoint?: string,\n): Promise<QueryArraysResult<R>> => {\n return query(sql, text, values, catchingSavepoint, true);\n};\n\nexport class PostgresJsTransactionAdapter implements TransactionAdapterBase {\n errorClass = postgres.PostgresError;\n\n constructor(\n public adapter: PostgresJsAdapter,\n public sql: postgres.Sql,\n public parent: AdapterBase,\n public locals: RecordStringOrNumber,\n ) {}\n\n isInTransaction(): true {\n return true;\n }\n\n updateConfig(config: PostgresJsAdapterOptions): Promise<void> {\n return this.adapter.updateConfig(config);\n }\n\n reconfigure(params: {\n database?: string;\n user?: string;\n password?: string;\n searchPath?: string;\n }): AdapterBase {\n return this.adapter.reconfigure(params);\n }\n\n getDatabase(): string {\n return this.adapter.getDatabase();\n }\n\n getUser(): string {\n return this.adapter.getUser();\n }\n\n getSearchPath(): string | undefined {\n return this.adapter.searchPath;\n }\n\n getHost(): string {\n return this.adapter.getHost();\n }\n\n getSchema(): QuerySchema | undefined {\n return this.adapter.getSchema();\n }\n\n query<T extends QueryResultRow = QueryResultRow>(\n text: string,\n values?: unknown[],\n catchingSavepoint?: string,\n ): Promise<QueryResult<T>> {\n return query(this.sql, text, values, catchingSavepoint);\n }\n\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n arrays<R extends any[] = any[]>(\n text: string,\n values?: unknown[],\n catchingSavepoint?: string,\n ): Promise<QueryArraysResult<R>> {\n return arrays(this.sql, text, values, catchingSavepoint);\n }\n\n async transaction<Result>(...args: TransactionArgs<Result>): Promise<Result> {\n const { cb, options } = getTransactionArgs(args);\n const localsSql = getSetLocalsSql(options);\n if (localsSql) {\n this.sql.unsafe(localsSql).execute();\n }\n\n const locals = mergeLocals(this.locals, options);\n\n const res = (await cb(\n new PostgresJsTransactionAdapter(this.adapter, this.sql, this, locals),\n )) as Result;\n\n const resetLocalsSql = getResetLocalsSql(this.locals, options);\n if (resetLocalsSql) {\n await this.sql.unsafe(resetLocalsSql);\n }\n\n return res;\n }\n\n close(): Promise<void> {\n return this.sql.end();\n }\n\n assignError(to: QueryError, from: Error) {\n return this.adapter.assignError(to, from);\n }\n}\n"],"names":["createDbWithAdapter","returnArg","emptyObject","setConnectRetryConfig","wrapAdapterFnWithConnectRetry","arrays","query"],"mappings":";;;;;AAYA,MAAM,eAAyC,GAAA;AAAA,EAC7C,EAAI,EAAA,KAAA,CAAA;AAAA,EACJ,OAAS,EAAA,KAAA,CAAA;AACX,CAAA,CAAA;AAEa,MAAA,kBAAA,GAAqB,CAAC,IAAmC,KAAA;AACpE,EAAI,IAAA,IAAA,CAAK,CAAC,CAAG,EAAA;AACX,IAAgB,eAAA,CAAA,OAAA,GAAU,KAAK,CAAC,CAAA,CAAA;AAChC,IAAgB,eAAA,CAAA,EAAA,GAAK,KAAK,CAAC,CAAA,CAAA;AAAA,GACtB,MAAA;AACL,IAAgB,eAAA,CAAA,EAAA,GAAK,KAAK,CAAC,CAAA,CAAA;AAAA,GAC7B;AACA,EAAO,OAAA,eAAA,CAAA;AACT,CAAA,CAAA;AAEO,MAAM,WAAc,GAAA,CACzB,MACA,EAAA,OAAA,KAEA,OAAS,EAAA,MAAA,GAAS,EAAE,GAAG,MAAQ,EAAA,GAAG,OAAQ,CAAA,MAAA,EAAW,GAAA,MAAA,CAAA;AAE1C,MAAA,eAAA,GAAkB,CAC7B,OACuB,KAAA;AACvB,EAAI,IAAA,CAAC,SAAS,MAAQ,EAAA,OAAA;AAEtB,EAAA,OAAO,OAAO,OAAQ,CAAA,OAAA,CAAQ,MAAM,CACjC,CAAA,GAAA,CAAI,CAAC,CAAC,GAAA,EAAK,KAAK,CAAA,KAAM,aAAa,GAAG,CAAA,CAAA,EAAI,KAAK,CAAE,CAAA,CAAA,CACjD,KAAK,IAAI,CAAA,CAAA;AACd,CAAA,CAAA;AAEa,MAAA,iBAAA,GAAoB,CAC/B,YAAA,EACA,OACuB,KAAA;AACvB,EAAI,IAAA,CAAC,SAAS,MAAQ,EAAA,OAAA;AAEtB,EAAO,OAAA,MAAA,CAAO,OAAQ,CAAA,OAAA,CAAQ,MAAM,CAAA,CACjC,MAAiB,CAAA,CAAC,GAAK,EAAA,CAAC,GAAK,EAAA,KAAK,CAAM,KAAA;AACvC,IAAI,IAAA,YAAA,CAAa,GAAG,CAAA,KAAM,KAAO,EAAA;AAC/B,MAAA,GAAA,CAAI,KAAK,CAAa,UAAA,EAAA,GAAG,IAAI,YAAa,CAAA,GAAG,CAAC,CAAE,CAAA,CAAA,CAAA;AAAA,KAClD;AACA,IAAO,OAAA,GAAA,CAAA;AAAA,GACN,EAAA,EAAE,CAAA,CACJ,KAAK,IAAI,CAAA,CAAA;AACd,CAAA;;ACpBa,MAAA,QAAA,GAAW,CAItB,OAC0B,KAAA;AAC1B,EAAA,OAAOA,uBAAoB,CAAA;AAAA,IACzB,GAAG,OAAA;AAAA,IACH,OAAA,EAAS,IAAI,iBAAA,CAAkB,OAAgB,CAAA;AAAA,GAChD,CAAA,CAAA;AACH,EAAA;AAaA,MAAM,gBAAqE,CAAA;AAAA,EAKzE,YAAY,MAAmB,EAAA;AAC7B,IAAA,IAAA,CAAK,WAAW,MAAO,CAAA,KAAA,CAAA;AACvB,IAAA,IAAA,CAAK,IAAO,GAAA,MAAA,CAAA;AACZ,IAAK,IAAA,CAAA,MAAA,GAAS,OAAO,SAAU,CAAA,OAAA,CAAA;AAAA,GACjC;AACF,CAAA;AAGA,MAAM,UAAA,GAAa,CAAC,MAA0D,KAAA;AAC5E,EAAI,IAAA,MAAA,CAAO,gBAAgB,KAAO,EAAA;AAChC,IAAA,OAAQ,MAAuB,CAAA,GAAA;AAAA,MAC7B,CAAC,GAAA,KAAQ,IAAI,gBAAA,CAAiB,GAAG,CAAA;AAAA,KACnC,CAAA;AAAA,GACK,MAAA;AACL,IAAO,OAAA,IAAI,iBAAiB,MAAmB,CAAA,CAAA;AAAA,GACjD;AACF,CAAA,CAAA;AAEA,MAAM,KAAwD,GAAA;AAAA,EAC5D,KAAO,EAAA;AAAA,IACL,EAAI,EAAA,EAAA;AAAA,IACJ,IAAM,EAAA,EAAA;AAAA,IACN,SAAA,EAAW,CAAC,CAAM,KAAA,KAAA,GAAQ,OAAO,IAAK,CAAA,CAAC,CAAE,CAAA,QAAA,CAAS,KAAK,CAAA;AAAA;AAAA,GAEzD;AAAA,EACA,yBAA2B,EAAA;AAAA,IACzB,EAAI,EAAA,EAAA;AAAA,IACJ,IAAM,EAAA,CAAC,IAAM,EAAA,IAAA,EAAM,IAAI,CAAA;AAAA,IACvB,KAAO,EAAAC,aAAA;AAAA,GACT;AAAA,EACA,QAAU,EAAA;AAAA,IACR,IAAA,EAAM,CAAC,IAAI,CAAA;AAAA,IACX,SAAW,EAAAA,aAAA;AAAA,IACX,MAAM,GAAa,EAAA;AACjB,MAAM,MAAA,CAAC,KAAO,IAAE,MAAQ,IAAE,IAAM,IAAE,IAAI,CAAA,GAAI,GAAI,CAAA,KAAA,CAAM,GAAG,CAAA,CAAA;AACvD,MAAA,MAAM,CAAC,KAAO,EAAA,OAAA,EAAS,OAAO,CAAI,GAAA,IAAA,CAAK,MAAM,GAAG,CAAA,CAAA;AAEhD,MAAO,OAAA;AAAA,QACL,KAAO,EAAA,KAAA,GAAQ,MAAO,CAAA,KAAK,CAAI,GAAA,CAAA;AAAA,QAC/B,MAAQ,EAAA,MAAA,GAAS,MAAO,CAAA,MAAM,CAAI,GAAA,CAAA;AAAA,QAClC,IAAM,EAAA,IAAA,GAAO,MAAO,CAAA,IAAI,CAAI,GAAA,CAAA;AAAA,QAC5B,KAAO,EAAA,KAAA,GAAQ,MAAO,CAAA,KAAK,CAAI,GAAA,CAAA;AAAA,QAC/B,OAAS,EAAA,OAAA,GAAU,MAAO,CAAA,OAAO,CAAI,GAAA,CAAA;AAAA,QACrC,OAAS,EAAA,OAAA,GAAU,MAAO,CAAA,OAAO,CAAI,GAAA,CAAA;AAAA,OACvC,CAAA;AAAA,KACF;AAAA,GACF;AAAA;AAAA,EAEA,IAAM,EAAA;AAAA,IACJ,EAAI,EAAA,GAAA;AAAA,IACJ,IAAA,EAAM,CAAC,GAAA,EAAK,IAAI,CAAA;AAAA,IAChB,SAAW,EAAAA,aAAA;AAAA,IACX,KAAA,EAAO,CAAC,CAAM,KAAA;AACZ,MAAO,OAAA,IAAA,CAAK,MAAM,CAAC,CAAA,CAAA;AAAA,KACrB;AAAA,GACF;AACF,CAAA,CAAA;AAEO,MAAM,iBAAyC,CAAA;AAAA,EAQpD,YAAY,MAAkC,EAAA;AAJ9C,IAAA,IAAA,CAAA,UAAA,GAAa,QAAS,CAAA,aAAA,CAAA;AAKpB,IAAA,IAAA,CAAK,MAAS,GAAA,EAAE,GAAG,MAAA,EAAQ,KAAM,EAAA,CAAA;AACjC,IAAK,IAAA,CAAA,GAAA,GAAM,IAAK,CAAA,SAAA,CAAU,MAAM,CAAA,CAAA;AAChC,IAAK,IAAA,CAAA,MAAA,GAAS,OAAO,UACjB,GAAA;AAAA,MACE,aAAa,MAAO,CAAA,UAAA;AAAA,KAEtB,GAAAC,eAAA,CAAA;AAAA,GACN;AAAA,EAEA,eAA2B,GAAA;AACzB,IAAO,OAAA,KAAA,CAAA;AAAA,GACT;AAAA,EAEQ,UAAU,MAAgD,EAAA;AAChE,IAAA,IAAA,CAAK,aAAa,MAAO,CAAA,UAAA,CAAA;AACzB,IAAA,IAAI,KAAK,UAAY,EAAA;AACnB,MAAA,IAAA,CAAK,OAAO,UAAa,GAAA;AAAA,QACvB,GAAG,MAAO,CAAA,UAAA;AAAA,QACV,aAAa,IAAK,CAAA,UAAA;AAAA,OACpB,CAAA;AAAA,KACF;AAEA,IAAI,IAAA,GAAA,CAAA;AACJ,IAAI,IAAA,IAAA,CAAK,OAAO,WAAa,EAAA;AAC3B,MAAM,MAAA,SAAA,GAAY,KAAK,MAAO,CAAA,WAAA,CAAA;AAC9B,MAAM,MAAA,GAAA,GAAM,IAAI,GAAA,CAAI,SAAS,CAAA,CAAA;AAE7B,MAAA,MAAM,GAAM,GAAA,GAAA,CAAI,YAAa,CAAA,GAAA,CAAI,KAAK,CAAA,CAAA;AACtC,MAAI,IAAA,GAAA,KAAQ,OAAW,IAAA,GAAA,KAAQ,MAAQ,EAAA;AACrC,QAAK,IAAA,CAAA,MAAA,CAAO,MAAM,GAAQ,KAAA,MAAA,CAAA;AAAA,OAC5B;AAEA,MAAA,MAAM,UAAa,GAAA,GAAA,CAAI,YAAa,CAAA,GAAA,CAAI,YAAY,CAAA,CAAA;AACpD,MAAA,IAAI,UAAY,EAAA;AACd,QAAA,IAAA,CAAK,UAAa,GAAA,UAAA,CAAA;AAClB,QAAI,GAAA,CAAA,YAAA,CAAa,OAAO,YAAY,CAAA,CAAA;AACpC,QAAA,IAAA,CAAK,OAAO,UAAa,GAAA;AAAA,UACvB,GAAG,MAAO,CAAA,UAAA;AAAA,UACV,WAAa,EAAA,UAAA;AAAA,SACf,CAAA;AAAA,OACF;AAEA,MAAA,GAAA,GAAM,QAAS,CAAA,GAAA,CAAI,QAAS,EAAA,EAAG,KAAK,MAAM,CAAA,CAAA;AAAA,KACrC,MAAA;AACL,MAAM,GAAA,GAAA,QAAA,CAAS,KAAK,MAAM,CAAA,CAAA;AAAA,KAC5B;AAEA,IAAA,IAAI,OAAO,YAAc,EAAA;AACvB,MAAAC,yBAAA;AAAA,QACE,IAAA;AAAA,QACA,MAAO,CAAA,YAAA,KAAiB,IAAO,GAAAD,eAAA,GAAc,MAAO,CAAA,YAAA;AAAA,OACtD,CAAA;AAEA,MAAI,IAAA,CAAC,KAAK,uBAAyB,EAAA;AACjC,QAAA,IAAA,CAAK,KAAQ,GAAAE,iCAAA,CAA8B,IAAM,EAAA,IAAA,CAAK,KAAK,CAAA,CAAA;AAC3D,QAAA,IAAA,CAAK,MAAS,GAAAA,iCAAA,CAA8B,IAAM,EAAA,IAAA,CAAK,MAAM,CAAA,CAAA;AAC7D,QAAA,IAAA,CAAK,uBAA0B,GAAA,IAAA,CAAA;AAAA,OACjC;AAAA,KACF;AAEA,IAAO,OAAA,GAAA,CAAA;AAAA,GACT;AAAA,EAEQ,MAA0B,GAAA;AAChC,IAAO,OAAA,IAAA,CAAK,OAAO,WACf,GAAA,IAAI,IAAI,IAAK,CAAA,MAAA,CAAO,WAAW,CAC/B,GAAA,KAAA,CAAA,CAAA;AAAA,GACN;AAAA,EAEQ,WAAW,MAAiD,EAAA;AAClE,IAAM,MAAA,EAAE,KAAQ,GAAA,IAAA,CAAA;AAEhB,IAAK,IAAA,CAAA,GAAA,GAAM,IAAK,CAAA,SAAA,CAAU,MAAM,CAAA,CAAA;AAChC,IAAA,OAAO,IAAI,GAAI,EAAA,CAAA;AAAA,GACjB;AAAA,EAEA,MAAM,aAAa,MAAiD,EAAA;AAClE,IAAM,MAAA,IAAA,CAAK,WAAW,EAAE,GAAG,KAAK,MAAQ,EAAA,GAAG,QAAQ,CAAA,CAAA;AAAA,GACrD;AAAA,EAEA,YAAY,MAKI,EAAA;AACd,IAAM,MAAA,GAAA,GAAM,KAAK,MAAO,EAAA,CAAA;AACxB,IAAA,IAAI,GAAK,EAAA;AACP,MAAA,IAAI,cAAc,MAAQ,EAAA;AACxB,QAAI,GAAA,CAAA,QAAA,GAAW,CAAI,CAAA,EAAA,MAAA,CAAO,QAAQ,CAAA,CAAA,CAAA;AAAA,OACpC;AAEA,MAAI,IAAA,MAAA,CAAO,SAAS,KAAW,CAAA,EAAA;AAC7B,QAAA,GAAA,CAAI,WAAW,MAAO,CAAA,IAAA,CAAA;AAAA,OACxB;AAEA,MAAI,IAAA,MAAA,CAAO,aAAa,KAAW,CAAA,EAAA;AACjC,QAAA,GAAA,CAAI,WAAW,MAAO,CAAA,QAAA,CAAA;AAAA,OACxB;AAEA,MAAI,IAAA,MAAA,CAAO,eAAe,KAAW,CAAA,EAAA;AACnC,QAAA,GAAA,CAAI,YAAa,CAAA,GAAA,CAAI,YAAc,EAAA,MAAA,CAAO,UAAU,CAAA,CAAA;AAAA,OACtD;AAEA,MAAA,OAAO,IAAI,iBAAkB,CAAA;AAAA,QAC3B,GAAG,IAAK,CAAA,MAAA;AAAA,QACR,WAAA,EAAa,IAAI,QAAS,EAAA;AAAA,OAC3B,CAAA,CAAA;AAAA,KACI,MAAA;AACL,MAAO,OAAA,IAAI,kBAAkB,EAAE,GAAG,KAAK,MAAQ,EAAA,GAAG,QAAQ,CAAA,CAAA;AAAA,KAC5D;AAAA,GACF;AAAA,EAEA,WAAsB,GAAA;AACpB,IAAM,MAAA,GAAA,GAAM,KAAK,MAAO,EAAA,CAAA;AACxB,IAAA,OAAO,MAAM,GAAI,CAAA,QAAA,CAAS,MAAM,CAAC,CAAA,GAAK,KAAK,MAAO,CAAA,QAAA,CAAA;AAAA,GACpD;AAAA,EAEA,OAAkB,GAAA;AAChB,IAAM,MAAA,GAAA,GAAM,KAAK,MAAO,EAAA,CAAA;AACxB,IAAA,OAAO,GAAM,GAAA,GAAA,CAAI,QAAY,GAAA,IAAA,CAAK,MAAO,CAAA,IAAA,CAAA;AAAA,GAC3C;AAAA,EAEA,aAAoC,GAAA;AAClC,IAAA,OAAO,IAAK,CAAA,UAAA,CAAA;AAAA,GACd;AAAA,EAEA,OAAkB,GAAA;AAChB,IAAM,MAAA,GAAA,GAAM,KAAK,MAAO,EAAA,CAAA;AACxB,IAAA,OAAO,GAAM,GAAA,GAAA,CAAI,QAAY,GAAA,IAAA,CAAK,MAAO,CAAA,IAAA,CAAA;AAAA,GAC3C;AAAA,EAEA,SAAqC,GAAA;AACnC,IAAA,OAAO,KAAK,MAAO,CAAA,MAAA,CAAA;AAAA,GACrB;AAAA,EAEA,KAAA,CACE,MACA,MACyB,EAAA;AACzB,IAAA,OAAO,KAAM,CAAA,IAAA,CAAK,GAAK,EAAA,IAAA,EAAM,MAAM,CAAA,CAAA;AAAA,GACrC;AAAA;AAAA,EAGA,MAAA,CACE,MACA,MAC+B,EAAA;AAC/B,IAAA,OAAO,MAAO,CAAA,IAAA,CAAK,GAAK,EAAA,IAAA,EAAM,MAAM,CAAA,CAAA;AAAA,GACtC;AAAA,EAEA,MAAM,eAAuB,IAAgD,EAAA;AAC3E,IAAI,IAAA,EAAA,CAAA;AACJ,IAAI,IAAA,MAAA,CAAA;AAEJ,IAAA,MAAM,EAAE,EAAA,EAAI,OAAQ,EAAA,GAAI,mBAAmB,IAAI,CAAA,CAAA;AAE/C,IAAM,MAAA,EAAA,GAAK,CAAC,GAAwB,KAAA;AAClC,MAAM,MAAA,SAAA,GAAY,gBAAgB,OAAO,CAAA,CAAA;AACzC,MAAA,IAAI,SAAW,EAAA;AACb,QAAI,GAAA,CAAA,MAAA,CAAO,SAAS,CAAA,CAAE,OAAQ,EAAA,CAAA;AAAA,OAChC;AAEA,MAAA,MAAM,MAAS,GAAA,WAAA,CAAY,IAAK,CAAA,MAAA,EAAQ,OAAO,CAAA,CAAA;AAE/C,MAAO,OAAA,EAAA;AAAA,QACL,IAAI,4BAAA,CAA6B,IAAM,EAAA,GAAA,EAAc,MAAM,MAAM,CAAA;AAAA,OACnE,CAAE,IAAK,CAAA,CAAC,GAAQ,KAAA;AACd,QAAK,EAAA,GAAA,IAAA,CAAA;AACL,QAAA,OAAQ,MAAS,GAAA,GAAA,CAAA;AAAA,OAClB,CAAA,CAAA;AAAA,KACH,CAAA;AAEA,IAAA,OAAA,CACE,SAAS,OACL,GAAA,IAAA,CAAK,GAAI,CAAA,KAAA,CAAM,QAAQ,OAAS,EAAA,EAAE,CAClC,GAAA,IAAA,CAAK,IAAI,KAAM,CAAA,EAAE,CACrB,EAAA,KAAA,CAAM,CAAC,GAAQ,KAAA;AACf,MAAA,IAAI,IAAW,OAAA,MAAA,CAAA;AAEf,MAAM,MAAA,GAAA,CAAA;AAAA,KACP,CAAA,CAAA;AAAA,GACH;AAAA,EAEA,KAAuB,GAAA;AACrB,IAAO,OAAA,IAAA,CAAK,UAAW,CAAA,IAAA,CAAK,MAAM,CAAA,CAAA;AAAA,GACpC;AAAA,EAEA,WAAA,CAAY,IAAgB,OAAgB,EAAA;AAC1C,IAAA,MAAM,IAAO,GAAA,OAAA,CAAA;AACb,IAAA,EAAA,CAAG,UAAU,IAAK,CAAA,OAAA,CAAA;AAClB,IAAA,EAAA,CAAG,WAAW,IAAK,CAAA,QAAA,CAAA;AACnB,IAAA,EAAA,CAAG,OAAO,IAAK,CAAA,IAAA,CAAA;AACf,IAAA,EAAA,CAAG,SAAS,IAAK,CAAA,MAAA,CAAA;AACjB,IAAA,EAAA,CAAG,SAAS,IAAK,CAAA,WAAA,CAAA;AACjB,IAAA,EAAA,CAAG,QAAQ,IAAK,CAAA,UAAA,CAAA;AAChB,IAAA,EAAA,CAAG,aAAa,IAAK,CAAA,eAAA,CAAA;AACrB,IAAA,EAAA,CAAG,OAAO,IAAK,CAAA,IAAA,CAAA;AACf,IAAA,EAAA,CAAG,WAAW,IAAK,CAAA,QAAA,CAAA;AACnB,IAAA,EAAA,CAAG,QAAQ,IAAK,CAAA,KAAA,CAAA;AAChB,IAAA,EAAA,CAAG,OAAO,IAAK,CAAA,IAAA,CAAA;AACf,IAAA,EAAA,CAAG,OAAO,IAAK,CAAA,IAAA,CAAA;AACf,IAAA,EAAA,CAAG,UAAU,IAAK,CAAA,OAAA,CAAA;AAAA,GACpB;AACF,CAAA;AAEA,MAAM,QAAQ,CACZ,GAAA,EACA,IACA,EAAA,MAAA,EACA,mBACAC,OAC4B,KAAA;AAE5B,EAAA,IAAIC,MAAQ,GAAA,GAAA,CAAI,MAAO,CAAA,IAAA,EAAM,MAAe,CAAA,CAAA;AAE5C,EAAA,IAAID,OAAQ,EAAAC,MAAQA,GAAAA,MAAAA,CAAM,MAAO,EAAA,CAAA;AAEjC,EAAA,IAAI,iBAAmB,EAAA;AACrB,IAAA,OAAO,QAAQ,GAAI,CAAA;AAAA,MACjB,GAAI,CAAA,MAAA,CAAO,CAAc,WAAA,EAAA,iBAAiB,CAAG,CAAA,CAAA,CAAA;AAAA,MAC7CA,MAAAA;AAAA,MACA,GAAI,CAAA,MAAA,CAAO,CAAsB,mBAAA,EAAA,iBAAiB,CAAG,CAAA,CAAA,CAAA;AAAA,KACtD,CAAE,CAAA,IAAA;AAAA,MACD,CAAC,OAAyB,KAAA;AACxB,QAAO,OAAA,UAAA,CAAW,OAAQ,CAAA,CAAC,CAAC,CAAA,CAAA;AAAA,OAC9B;AAAA,MACA,CAAC,QACC,GAAI,CAAA,MAAA,CAAO,0BAA0B,iBAAiB,CAAA,CAAA,CAAG,CAAE,CAAA,IAAA,CAAK,MAAM;AACpE,QAAM,MAAA,GAAA,CAAA;AAAA,OACP,CAAA;AAAA,KACL,CAAA;AAAA,GACK,MAAA;AACL,IAAOA,OAAAA,MAAAA,CAAM,KAAK,UAAU,CAAA,CAAA;AAAA,GAC9B;AACF,CAAA,CAAA;AAGA,MAAM,MAAS,GAAA,CACb,GACA,EAAA,IAAA,EACA,QACA,iBACkC,KAAA;AAClC,EAAA,OAAO,KAAM,CAAA,GAAA,EAAK,IAAM,EAAA,MAAA,EAAQ,mBAAmB,IAAI,CAAA,CAAA;AACzD,CAAA,CAAA;AAEO,MAAM,4BAA+D,CAAA;AAAA,EAG1E,WACS,CAAA,OAAA,EACA,GACA,EAAA,MAAA,EACA,MACP,EAAA;AAJO,IAAA,IAAA,CAAA,OAAA,GAAA,OAAA,CAAA;AACA,IAAA,IAAA,CAAA,GAAA,GAAA,GAAA,CAAA;AACA,IAAA,IAAA,CAAA,MAAA,GAAA,MAAA,CAAA;AACA,IAAA,IAAA,CAAA,MAAA,GAAA,MAAA,CAAA;AANT,IAAA,IAAA,CAAA,UAAA,GAAa,QAAS,CAAA,aAAA,CAAA;AAAA,GAOnB;AAAA,EAEH,eAAwB,GAAA;AACtB,IAAO,OAAA,IAAA,CAAA;AAAA,GACT;AAAA,EAEA,aAAa,MAAiD,EAAA;AAC5D,IAAO,OAAA,IAAA,CAAK,OAAQ,CAAA,YAAA,CAAa,MAAM,CAAA,CAAA;AAAA,GACzC;AAAA,EAEA,YAAY,MAKI,EAAA;AACd,IAAO,OAAA,IAAA,CAAK,OAAQ,CAAA,WAAA,CAAY,MAAM,CAAA,CAAA;AAAA,GACxC;AAAA,EAEA,WAAsB,GAAA;AACpB,IAAO,OAAA,IAAA,CAAK,QAAQ,WAAY,EAAA,CAAA;AAAA,GAClC;AAAA,EAEA,OAAkB,GAAA;AAChB,IAAO,OAAA,IAAA,CAAK,QAAQ,OAAQ,EAAA,CAAA;AAAA,GAC9B;AAAA,EAEA,aAAoC,GAAA;AAClC,IAAA,OAAO,KAAK,OAAQ,CAAA,UAAA,CAAA;AAAA,GACtB;AAAA,EAEA,OAAkB,GAAA;AAChB,IAAO,OAAA,IAAA,CAAK,QAAQ,OAAQ,EAAA,CAAA;AAAA,GAC9B;AAAA,EAEA,SAAqC,GAAA;AACnC,IAAO,OAAA,IAAA,CAAK,QAAQ,SAAU,EAAA,CAAA;AAAA,GAChC;AAAA,EAEA,KAAA,CACE,IACA,EAAA,MAAA,EACA,iBACyB,EAAA;AACzB,IAAA,OAAO,KAAM,CAAA,IAAA,CAAK,GAAK,EAAA,IAAA,EAAM,QAAQ,iBAAiB,CAAA,CAAA;AAAA,GACxD;AAAA;AAAA,EAGA,MAAA,CACE,IACA,EAAA,MAAA,EACA,iBAC+B,EAAA;AAC/B,IAAA,OAAO,MAAO,CAAA,IAAA,CAAK,GAAK,EAAA,IAAA,EAAM,QAAQ,iBAAiB,CAAA,CAAA;AAAA,GACzD;AAAA,EAEA,MAAM,eAAuB,IAAgD,EAAA;AAC3E,IAAA,MAAM,EAAE,EAAA,EAAI,OAAQ,EAAA,GAAI,mBAAmB,IAAI,CAAA,CAAA;AAC/C,IAAM,MAAA,SAAA,GAAY,gBAAgB,OAAO,CAAA,CAAA;AACzC,IAAA,IAAI,SAAW,EAAA;AACb,MAAA,IAAA,CAAK,GAAI,CAAA,MAAA,CAAO,SAAS,CAAA,CAAE,OAAQ,EAAA,CAAA;AAAA,KACrC;AAEA,IAAA,MAAM,MAAS,GAAA,WAAA,CAAY,IAAK,CAAA,MAAA,EAAQ,OAAO,CAAA,CAAA;AAE/C,IAAA,MAAM,MAAO,MAAM,EAAA;AAAA,MACjB,IAAI,4BAA6B,CAAA,IAAA,CAAK,SAAS,IAAK,CAAA,GAAA,EAAK,MAAM,MAAM,CAAA;AAAA,KACvE,CAAA;AAEA,IAAA,MAAM,cAAiB,GAAA,iBAAA,CAAkB,IAAK,CAAA,MAAA,EAAQ,OAAO,CAAA,CAAA;AAC7D,IAAA,IAAI,cAAgB,EAAA;AAClB,MAAM,MAAA,IAAA,CAAK,GAAI,CAAA,MAAA,CAAO,cAAc,CAAA,CAAA;AAAA,KACtC;AAEA,IAAO,OAAA,GAAA,CAAA;AAAA,GACT;AAAA,EAEA,KAAuB,GAAA;AACrB,IAAO,OAAA,IAAA,CAAK,IAAI,GAAI,EAAA,CAAA;AAAA,GACtB;AAAA,EAEA,WAAA,CAAY,IAAgB,IAAa,EAAA;AACvC,IAAA,OAAO,IAAK,CAAA,OAAA,CAAQ,WAAY,CAAA,EAAA,EAAI,IAAI,CAAA,CAAA;AAAA,GAC1C;AACF;;;;;;"}
1
+ {"version":3,"file":"postgres-js.js","sources":["../src/adapters/adapter.utils.ts","../src/adapters/postgres-js.ts"],"sourcesContent":["import {\n AdapterTransactionOptions,\n TransactionAdapterBase,\n TransactionArgs,\n} from './adapter';\nimport { RecordStringOrNumber } from 'pqb/internal';\n\ninterface SolvedTransactionArgs {\n options: AdapterTransactionOptions | undefined;\n cb: (adapter: TransactionAdapterBase) => Promise<unknown>;\n}\n\nconst transactionArgs: SolvedTransactionArgs = {\n cb: undefined,\n options: undefined,\n} as never;\n\nexport const getTransactionArgs = (args: TransactionArgs<unknown>) => {\n if (args[1]) {\n transactionArgs.options = args[0] as AdapterTransactionOptions;\n transactionArgs.cb = args[1];\n } else {\n transactionArgs.cb = args[0] as never;\n }\n return transactionArgs;\n};\n\nexport const mergeLocals = (\n locals: RecordStringOrNumber,\n options?: AdapterTransactionOptions,\n): RecordStringOrNumber =>\n options?.locals ? { ...locals, ...options.locals } : locals;\n\nexport const getSetLocalsSql = (\n options?: AdapterTransactionOptions,\n): string | undefined => {\n if (!options?.locals) return;\n\n return Object.entries(options.locals)\n .map(([key, value]) => `SET LOCAL ${key}=${value}`)\n .join('; ');\n};\n\nexport const getResetLocalsSql = (\n parentLocals: RecordStringOrNumber,\n options?: AdapterTransactionOptions,\n): string | undefined => {\n if (!options?.locals) return;\n\n return Object.entries(options.locals)\n .reduce<string[]>((acc, [key, value]) => {\n if (parentLocals[key] !== value) {\n acc.push(`SET LOCAL ${key}=${parentLocals[key]}`);\n }\n return acc;\n }, [])\n .join('; ');\n};\n","import postgres, { Error, Row, RowList, TransactionSql } from 'postgres';\nimport {\n AdapterBase,\n AdapterConfigBase,\n emptyObject,\n MaybeArray,\n QueryArraysResult,\n QueryResult,\n QueryResultRow,\n returnArg,\n setConnectRetryConfig,\n wrapAdapterFnWithConnectRetry,\n DbOptions,\n DefaultColumnTypes,\n DefaultSchemaConfig,\n DbResult,\n ColumnSchemaConfig,\n TransactionAdapterBase,\n QuerySchema,\n TransactionArgs,\n RecordStringOrNumber,\n} from 'pqb/internal';\nimport { QueryError, createDbWithAdapter } from 'pqb';\nimport {\n getResetLocalsSql,\n getSetLocalsSql,\n getTransactionArgs,\n mergeLocals,\n} from './adapter.utils';\n\nexport interface CreatePostgresJsDbOptions<\n SchemaConfig extends ColumnSchemaConfig,\n ColumnTypes,\n>\n extends PostgresJsAdapterOptions, DbOptions<SchemaConfig, ColumnTypes> {}\n\nexport const createDb = <\n SchemaConfig extends ColumnSchemaConfig = DefaultSchemaConfig,\n ColumnTypes = DefaultColumnTypes<SchemaConfig>,\n>(\n options: CreatePostgresJsDbOptions<SchemaConfig, ColumnTypes>,\n): DbResult<ColumnTypes> => {\n return createDbWithAdapter({\n ...options,\n adapter: new PostgresJsAdapter(options as never),\n });\n};\n\nexport interface PostgresJsAdapterOptions\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n extends postgres.Options<any>, AdapterConfigBase {\n databaseURL?: string;\n searchPath?: string;\n schema?: QuerySchema;\n}\n\ntype RawResult = RowList<(Row & Iterable<Row>)[]>;\n\nclass PostgresJsResult<T extends QueryResultRow> implements QueryResult<T> {\n rowCount: number;\n rows: T[];\n fields: QueryResult<T>['fields'];\n\n constructor(result: RawResult) {\n this.rowCount = result.count;\n this.rows = result as never;\n this.fields = result.statement.columns;\n }\n}\n\n// eslint-disable-next-line @typescript-eslint/no-explicit-any\nconst wrapResult = (result: MaybeArray<RawResult>): QueryArraysResult<any> => {\n if (result.constructor === Array) {\n return (result as RawResult[]).map(\n (res) => new PostgresJsResult(res),\n ) as never;\n } else {\n return new PostgresJsResult(result as RawResult);\n }\n};\n\nconst types: Record<string, Partial<postgres.PostgresType>> = {\n bytea: {\n to: 17,\n from: 17 as never,\n serialize: (x) => '\\\\x' + Buffer.from(x).toString('hex'),\n // omit parse, let bytea return a string, so it remains consistent with when it's selected via JSON\n },\n dateAndTimestampAsStrings: {\n to: 25,\n from: [1082, 1114, 1184],\n parse: returnArg,\n },\n interval: {\n from: [1186],\n serialize: returnArg,\n parse(str: string) {\n const [years, , months, , days, , time] = str.split(' ');\n const [hours, minutes, seconds] = time.split(':');\n\n return {\n years: years ? Number(years) : 0,\n months: months ? Number(months) : 0,\n days: days ? Number(days) : 0,\n hours: hours ? Number(hours) : 0,\n minutes: minutes ? Number(minutes) : 0,\n seconds: seconds ? Number(seconds) : 0,\n };\n },\n },\n // overrides the built-in json type to not serialize it, because it incorrectly serializes\n json: {\n to: 114,\n from: [114, 3802],\n serialize: returnArg,\n parse: (x) => {\n return JSON.parse(x);\n },\n },\n};\n\nexport class PostgresJsAdapter implements AdapterBase {\n sql: postgres.Sql;\n searchPath?: string;\n config: PostgresJsAdapterOptions;\n errorClass = postgres.PostgresError;\n locals: RecordStringOrNumber;\n private wrappedWithConnectRetry?: boolean;\n\n constructor(config: PostgresJsAdapterOptions) {\n this.config = { ...config, types };\n this.sql = this.configure(config);\n this.locals = config.searchPath\n ? {\n search_path: config.searchPath,\n }\n : emptyObject;\n }\n\n isInTransaction(): boolean {\n return false;\n }\n\n private configure(config: PostgresJsAdapterOptions): postgres.Sql {\n this.searchPath = config.searchPath;\n if (this.searchPath) {\n this.config.connection = {\n ...config.connection,\n search_path: this.searchPath,\n };\n }\n\n let sql;\n if (this.config.databaseURL) {\n const urlString = this.config.databaseURL;\n const url = new URL(urlString);\n\n const ssl = url.searchParams.get('ssl');\n if (ssl === 'false' || ssl === 'true') {\n this.config.ssl = ssl === 'true';\n }\n\n const searchPath = url.searchParams.get('searchPath');\n if (searchPath) {\n this.searchPath = searchPath;\n url.searchParams.delete('searchPath');\n this.config.connection = {\n ...config.connection,\n search_path: searchPath,\n };\n }\n\n sql = postgres(url.toString(), this.config);\n } else {\n sql = postgres(this.config);\n }\n\n if (config.connectRetry) {\n setConnectRetryConfig(\n this,\n config.connectRetry === true ? emptyObject : config.connectRetry,\n );\n\n if (!this.wrappedWithConnectRetry) {\n this.query = wrapAdapterFnWithConnectRetry(this, this.query);\n this.arrays = wrapAdapterFnWithConnectRetry(this, this.arrays);\n this.wrappedWithConnectRetry = true;\n }\n }\n\n return sql;\n }\n\n private getURL(): URL | undefined {\n return this.config.databaseURL\n ? new URL(this.config.databaseURL)\n : undefined;\n }\n\n private replaceSql(config: PostgresJsAdapterOptions): Promise<void> {\n const { sql } = this;\n // Swap the client before ending the old one so the adapter remains reusable\n this.sql = this.configure(config);\n return sql.end();\n }\n\n async updateConfig(config: PostgresJsAdapterOptions): Promise<void> {\n await this.replaceSql({ ...this.config, ...config });\n }\n\n reconfigure(params: {\n database?: string;\n user?: string;\n password?: string;\n searchPath?: string;\n }): AdapterBase {\n const url = this.getURL();\n if (url) {\n if ('database' in params) {\n url.pathname = `/${params.database}`;\n }\n\n if (params.user !== undefined) {\n url.username = params.user;\n }\n\n if (params.password !== undefined) {\n url.password = params.password;\n }\n\n if (params.searchPath !== undefined) {\n url.searchParams.set('searchPath', params.searchPath);\n }\n\n return new PostgresJsAdapter({\n ...this.config,\n databaseURL: url.toString(),\n });\n } else {\n return new PostgresJsAdapter({ ...this.config, ...params });\n }\n }\n\n getDatabase(): string {\n const url = this.getURL();\n return url ? url.pathname.slice(1) : (this.config.database as string);\n }\n\n getUser(): string {\n const url = this.getURL();\n return url ? url.username : (this.config.user as string);\n }\n\n getSearchPath(): string | undefined {\n return this.searchPath;\n }\n\n getHost(): string {\n const url = this.getURL();\n return url ? url.hostname : (this.config.host as string);\n }\n\n getSchema(): QuerySchema | undefined {\n return this.config.schema;\n }\n\n query<T extends QueryResultRow = QueryResultRow>(\n text: string,\n values?: unknown[],\n ): Promise<QueryResult<T>> {\n return query(this.sql, text, values);\n }\n\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n arrays<R extends any[] = any[]>(\n text: string,\n values?: unknown[],\n ): Promise<QueryArraysResult<R>> {\n return arrays(this.sql, text, values);\n }\n\n async transaction<Result>(...args: TransactionArgs<Result>): Promise<Result> {\n let ok: boolean | undefined;\n let result: unknown;\n\n const { cb, options } = getTransactionArgs(args);\n\n const fn = (sql: TransactionSql) => {\n const localsSql = getSetLocalsSql(options);\n if (localsSql) {\n sql.unsafe(localsSql).execute();\n }\n\n const locals = mergeLocals(this.locals, options);\n\n return cb(\n new PostgresJsTransactionAdapter(this, sql as never, this, locals),\n ).then((res) => {\n ok = true;\n return (result = res);\n });\n };\n\n return (\n options?.options\n ? this.sql.begin(options.options, fn)\n : this.sql.begin(fn)\n ).catch((err) => {\n if (ok) return result;\n\n throw err;\n }) as never;\n }\n\n close(): Promise<void> {\n return this.replaceSql(this.config);\n }\n\n assignError(to: QueryError, dbError: Error) {\n const from = dbError as postgres.PostgresError;\n to.message = from.message;\n to.severity = from.severity;\n to.code = from.code;\n to.detail = from.detail;\n to.schema = from.schema_name;\n to.table = from.table_name;\n to.constraint = from.constraint_name;\n to.hint = from.hint;\n to.position = from.position;\n to.where = from.where;\n to.file = from.file;\n to.line = from.line;\n to.routine = from.routine;\n }\n}\n\nconst query = <T extends QueryResultRow = QueryResultRow>(\n sql: postgres.Sql,\n text: string,\n values?: unknown[],\n startingSavepoint?: string,\n releasingSavepoint?: string,\n arrays?: boolean,\n): Promise<QueryResult<T>> => {\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n let query = sql.unsafe(text, values as never) as any;\n\n if (arrays) query = query.values();\n\n if (!startingSavepoint && !releasingSavepoint) {\n return query.then(wrapResult);\n }\n\n return Promise.all([\n startingSavepoint && sql.unsafe(`SAVEPOINT \"${startingSavepoint}\"`),\n query,\n releasingSavepoint &&\n sql.unsafe(`RELEASE SAVEPOINT \"${releasingSavepoint}\"`),\n ]).then(\n (results: RawResult[]) => {\n return wrapResult(results[1]);\n },\n (err) => {\n if (!releasingSavepoint) {\n throw err;\n }\n\n return sql\n .unsafe(`ROLLBACK TO SAVEPOINT \"${releasingSavepoint}\"`)\n .then(() => {\n throw err;\n });\n },\n );\n};\n\n// eslint-disable-next-line @typescript-eslint/no-explicit-any\nconst arrays = <R extends any[] = any[]>(\n sql: postgres.Sql,\n text: string,\n values?: unknown[],\n startingSavepoint?: string,\n releasingSavepoint?: string,\n): Promise<QueryArraysResult<R>> => {\n return query(sql, text, values, startingSavepoint, releasingSavepoint, true);\n};\n\nexport class PostgresJsTransactionAdapter implements TransactionAdapterBase {\n errorClass = postgres.PostgresError;\n\n constructor(\n public adapter: PostgresJsAdapter,\n public sql: postgres.Sql,\n public parent: AdapterBase,\n public locals: RecordStringOrNumber,\n ) {}\n\n isInTransaction(): true {\n return true;\n }\n\n updateConfig(config: PostgresJsAdapterOptions): Promise<void> {\n return this.adapter.updateConfig(config);\n }\n\n reconfigure(params: {\n database?: string;\n user?: string;\n password?: string;\n searchPath?: string;\n }): AdapterBase {\n return this.adapter.reconfigure(params);\n }\n\n getDatabase(): string {\n return this.adapter.getDatabase();\n }\n\n getUser(): string {\n return this.adapter.getUser();\n }\n\n getSearchPath(): string | undefined {\n return this.adapter.searchPath;\n }\n\n getHost(): string {\n return this.adapter.getHost();\n }\n\n getSchema(): QuerySchema | undefined {\n return this.adapter.getSchema();\n }\n\n query<T extends QueryResultRow = QueryResultRow>(\n text: string,\n values?: unknown[],\n startingSavepoint?: string,\n releasingSavepoint?: string,\n ): Promise<QueryResult<T>> {\n return query(this.sql, text, values, startingSavepoint, releasingSavepoint);\n }\n\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n arrays<R extends any[] = any[]>(\n text: string,\n values?: unknown[],\n startingSavepoint?: string,\n releasingSavepoint?: string,\n ): Promise<QueryArraysResult<R>> {\n return arrays(\n this.sql,\n text,\n values,\n startingSavepoint,\n releasingSavepoint,\n );\n }\n\n async transaction<Result>(...args: TransactionArgs<Result>): Promise<Result> {\n const { cb, options } = getTransactionArgs(args);\n const localsSql = getSetLocalsSql(options);\n if (localsSql) {\n this.sql.unsafe(localsSql).execute();\n }\n\n const locals = mergeLocals(this.locals, options);\n\n const res = (await cb(\n new PostgresJsTransactionAdapter(this.adapter, this.sql, this, locals),\n )) as Result;\n\n const resetLocalsSql = getResetLocalsSql(this.locals, options);\n if (resetLocalsSql) {\n await this.sql.unsafe(resetLocalsSql);\n }\n\n return res;\n }\n\n close(): Promise<void> {\n return this.sql.end();\n }\n\n assignError(to: QueryError, from: Error) {\n return this.adapter.assignError(to, from);\n }\n}\n"],"names":["createDbWithAdapter","returnArg","emptyObject","setConnectRetryConfig","wrapAdapterFnWithConnectRetry","arrays","query"],"mappings":"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"}
@@ -1,5 +1,6 @@
1
1
  import postgres from 'postgres';
2
- import { createDbWithAdapter, emptyObject, setConnectRetryConfig, wrapAdapterFnWithConnectRetry, returnArg } from 'pqb';
2
+ import { returnArg, emptyObject, setConnectRetryConfig, wrapAdapterFnWithConnectRetry } from 'pqb/internal';
3
+ import { createDbWithAdapter } from 'pqb';
3
4
 
4
5
  const transactionArgs = {
5
6
  cb: void 0,
@@ -244,28 +245,32 @@ class PostgresJsAdapter {
244
245
  to.routine = from.routine;
245
246
  }
246
247
  }
247
- const query = (sql, text, values, catchingSavepoint, arrays2) => {
248
+ const query = (sql, text, values, startingSavepoint, releasingSavepoint, arrays2) => {
248
249
  let query2 = sql.unsafe(text, values);
249
250
  if (arrays2) query2 = query2.values();
250
- if (catchingSavepoint) {
251
- return Promise.all([
252
- sql.unsafe(`SAVEPOINT "${catchingSavepoint}"`),
253
- query2,
254
- sql.unsafe(`RELEASE SAVEPOINT "${catchingSavepoint}"`)
255
- ]).then(
256
- (results) => {
257
- return wrapResult(results[1]);
258
- },
259
- (err) => sql.unsafe(`ROLLBACK TO SAVEPOINT "${catchingSavepoint}"`).then(() => {
260
- throw err;
261
- })
262
- );
263
- } else {
251
+ if (!startingSavepoint && !releasingSavepoint) {
264
252
  return query2.then(wrapResult);
265
253
  }
254
+ return Promise.all([
255
+ startingSavepoint && sql.unsafe(`SAVEPOINT "${startingSavepoint}"`),
256
+ query2,
257
+ releasingSavepoint && sql.unsafe(`RELEASE SAVEPOINT "${releasingSavepoint}"`)
258
+ ]).then(
259
+ (results) => {
260
+ return wrapResult(results[1]);
261
+ },
262
+ (err) => {
263
+ if (!releasingSavepoint) {
264
+ throw err;
265
+ }
266
+ return sql.unsafe(`ROLLBACK TO SAVEPOINT "${releasingSavepoint}"`).then(() => {
267
+ throw err;
268
+ });
269
+ }
270
+ );
266
271
  };
267
- const arrays = (sql, text, values, catchingSavepoint) => {
268
- return query(sql, text, values, catchingSavepoint, true);
272
+ const arrays = (sql, text, values, startingSavepoint, releasingSavepoint) => {
273
+ return query(sql, text, values, startingSavepoint, releasingSavepoint, true);
269
274
  };
270
275
  class PostgresJsTransactionAdapter {
271
276
  constructor(adapter, sql, parent, locals) {
@@ -299,12 +304,18 @@ class PostgresJsTransactionAdapter {
299
304
  getSchema() {
300
305
  return this.adapter.getSchema();
301
306
  }
302
- query(text, values, catchingSavepoint) {
303
- return query(this.sql, text, values, catchingSavepoint);
307
+ query(text, values, startingSavepoint, releasingSavepoint) {
308
+ return query(this.sql, text, values, startingSavepoint, releasingSavepoint);
304
309
  }
305
310
  // eslint-disable-next-line @typescript-eslint/no-explicit-any
306
- arrays(text, values, catchingSavepoint) {
307
- return arrays(this.sql, text, values, catchingSavepoint);
311
+ arrays(text, values, startingSavepoint, releasingSavepoint) {
312
+ return arrays(
313
+ this.sql,
314
+ text,
315
+ values,
316
+ startingSavepoint,
317
+ releasingSavepoint
318
+ );
308
319
  }
309
320
  async transaction(...args) {
310
321
  const { cb, options } = getTransactionArgs(args);
@@ -1 +1 @@
1
- {"version":3,"file":"postgres-js.mjs","sources":["../src/adapters/adapter.utils.ts","../src/adapters/postgres-js.ts"],"sourcesContent":["import {\n AdapterTransactionOptions,\n TransactionAdapterBase,\n TransactionArgs,\n} from './adapter';\nimport { RecordStringOrNumber } from 'pqb';\n\ninterface SolvedTransactionArgs {\n options: AdapterTransactionOptions | undefined;\n cb: (adapter: TransactionAdapterBase) => Promise<unknown>;\n}\n\nconst transactionArgs: SolvedTransactionArgs = {\n cb: undefined,\n options: undefined,\n} as never;\n\nexport const getTransactionArgs = (args: TransactionArgs<unknown>) => {\n if (args[1]) {\n transactionArgs.options = args[0] as AdapterTransactionOptions;\n transactionArgs.cb = args[1];\n } else {\n transactionArgs.cb = args[0] as never;\n }\n return transactionArgs;\n};\n\nexport const mergeLocals = (\n locals: RecordStringOrNumber,\n options?: AdapterTransactionOptions,\n): RecordStringOrNumber =>\n options?.locals ? { ...locals, ...options.locals } : locals;\n\nexport const getSetLocalsSql = (\n options?: AdapterTransactionOptions,\n): string | undefined => {\n if (!options?.locals) return;\n\n return Object.entries(options.locals)\n .map(([key, value]) => `SET LOCAL ${key}=${value}`)\n .join('; ');\n};\n\nexport const getResetLocalsSql = (\n parentLocals: RecordStringOrNumber,\n options?: AdapterTransactionOptions,\n): string | undefined => {\n if (!options?.locals) return;\n\n return Object.entries(options.locals)\n .reduce<string[]>((acc, [key, value]) => {\n if (parentLocals[key] !== value) {\n acc.push(`SET LOCAL ${key}=${parentLocals[key]}`);\n }\n return acc;\n }, [])\n .join('; ');\n};\n","import postgres, { Error, Row, RowList, TransactionSql } from 'postgres';\nimport {\n AdapterBase,\n AdapterConfigBase,\n emptyObject,\n MaybeArray,\n QueryArraysResult,\n QueryError,\n QueryResult,\n QueryResultRow,\n returnArg,\n setConnectRetryConfig,\n wrapAdapterFnWithConnectRetry,\n DbOptions,\n DefaultColumnTypes,\n DefaultSchemaConfig,\n createDbWithAdapter,\n DbResult,\n ColumnSchemaConfig,\n TransactionAdapterBase,\n QuerySchema,\n TransactionArgs,\n RecordStringOrNumber,\n} from 'pqb';\nimport {\n getResetLocalsSql,\n getSetLocalsSql,\n getTransactionArgs,\n mergeLocals,\n} from './adapter.utils';\n\nexport interface CreatePostgresJsDbOptions<\n SchemaConfig extends ColumnSchemaConfig,\n ColumnTypes,\n> extends PostgresJsAdapterOptions,\n DbOptions<SchemaConfig, ColumnTypes> {}\n\nexport const createDb = <\n SchemaConfig extends ColumnSchemaConfig = DefaultSchemaConfig,\n ColumnTypes = DefaultColumnTypes<SchemaConfig>,\n>(\n options: CreatePostgresJsDbOptions<SchemaConfig, ColumnTypes>,\n): DbResult<ColumnTypes> => {\n return createDbWithAdapter({\n ...options,\n adapter: new PostgresJsAdapter(options as never),\n });\n};\n\nexport interface PostgresJsAdapterOptions\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n extends postgres.Options<any>,\n AdapterConfigBase {\n databaseURL?: string;\n searchPath?: string;\n schema?: QuerySchema;\n}\n\ntype RawResult = RowList<(Row & Iterable<Row>)[]>;\n\nclass PostgresJsResult<T extends QueryResultRow> implements QueryResult<T> {\n rowCount: number;\n rows: T[];\n fields: QueryResult<T>['fields'];\n\n constructor(result: RawResult) {\n this.rowCount = result.count;\n this.rows = result as never;\n this.fields = result.statement.columns;\n }\n}\n\n// eslint-disable-next-line @typescript-eslint/no-explicit-any\nconst wrapResult = (result: MaybeArray<RawResult>): QueryArraysResult<any> => {\n if (result.constructor === Array) {\n return (result as RawResult[]).map(\n (res) => new PostgresJsResult(res),\n ) as never;\n } else {\n return new PostgresJsResult(result as RawResult);\n }\n};\n\nconst types: Record<string, Partial<postgres.PostgresType>> = {\n bytea: {\n to: 17,\n from: 17 as never,\n serialize: (x) => '\\\\x' + Buffer.from(x).toString('hex'),\n // omit parse, let bytea return a string, so it remains consistent with when it's selected via JSON\n },\n dateAndTimestampAsStrings: {\n to: 25,\n from: [1082, 1114, 1184],\n parse: returnArg,\n },\n interval: {\n from: [1186],\n serialize: returnArg,\n parse(str: string) {\n const [years, , months, , days, , time] = str.split(' ');\n const [hours, minutes, seconds] = time.split(':');\n\n return {\n years: years ? Number(years) : 0,\n months: months ? Number(months) : 0,\n days: days ? Number(days) : 0,\n hours: hours ? Number(hours) : 0,\n minutes: minutes ? Number(minutes) : 0,\n seconds: seconds ? Number(seconds) : 0,\n };\n },\n },\n // overrides the built-in json type to not serialize it, because it incorrectly serializes\n json: {\n to: 114,\n from: [114, 3802],\n serialize: returnArg,\n parse: (x) => {\n return JSON.parse(x);\n },\n },\n};\n\nexport class PostgresJsAdapter implements AdapterBase {\n sql: postgres.Sql;\n searchPath?: string;\n config: PostgresJsAdapterOptions;\n errorClass = postgres.PostgresError;\n locals: RecordStringOrNumber;\n private wrappedWithConnectRetry?: boolean;\n\n constructor(config: PostgresJsAdapterOptions) {\n this.config = { ...config, types };\n this.sql = this.configure(config);\n this.locals = config.searchPath\n ? {\n search_path: config.searchPath,\n }\n : emptyObject;\n }\n\n isInTransaction(): boolean {\n return false;\n }\n\n private configure(config: PostgresJsAdapterOptions): postgres.Sql {\n this.searchPath = config.searchPath;\n if (this.searchPath) {\n this.config.connection = {\n ...config.connection,\n search_path: this.searchPath,\n };\n }\n\n let sql;\n if (this.config.databaseURL) {\n const urlString = this.config.databaseURL;\n const url = new URL(urlString);\n\n const ssl = url.searchParams.get('ssl');\n if (ssl === 'false' || ssl === 'true') {\n this.config.ssl = ssl === 'true';\n }\n\n const searchPath = url.searchParams.get('searchPath');\n if (searchPath) {\n this.searchPath = searchPath;\n url.searchParams.delete('searchPath');\n this.config.connection = {\n ...config.connection,\n search_path: searchPath,\n };\n }\n\n sql = postgres(url.toString(), this.config);\n } else {\n sql = postgres(this.config);\n }\n\n if (config.connectRetry) {\n setConnectRetryConfig(\n this,\n config.connectRetry === true ? emptyObject : config.connectRetry,\n );\n\n if (!this.wrappedWithConnectRetry) {\n this.query = wrapAdapterFnWithConnectRetry(this, this.query);\n this.arrays = wrapAdapterFnWithConnectRetry(this, this.arrays);\n this.wrappedWithConnectRetry = true;\n }\n }\n\n return sql;\n }\n\n private getURL(): URL | undefined {\n return this.config.databaseURL\n ? new URL(this.config.databaseURL)\n : undefined;\n }\n\n private replaceSql(config: PostgresJsAdapterOptions): Promise<void> {\n const { sql } = this;\n // Swap the client before ending the old one so the adapter remains reusable\n this.sql = this.configure(config);\n return sql.end();\n }\n\n async updateConfig(config: PostgresJsAdapterOptions): Promise<void> {\n await this.replaceSql({ ...this.config, ...config });\n }\n\n reconfigure(params: {\n database?: string;\n user?: string;\n password?: string;\n searchPath?: string;\n }): AdapterBase {\n const url = this.getURL();\n if (url) {\n if ('database' in params) {\n url.pathname = `/${params.database}`;\n }\n\n if (params.user !== undefined) {\n url.username = params.user;\n }\n\n if (params.password !== undefined) {\n url.password = params.password;\n }\n\n if (params.searchPath !== undefined) {\n url.searchParams.set('searchPath', params.searchPath);\n }\n\n return new PostgresJsAdapter({\n ...this.config,\n databaseURL: url.toString(),\n });\n } else {\n return new PostgresJsAdapter({ ...this.config, ...params });\n }\n }\n\n getDatabase(): string {\n const url = this.getURL();\n return url ? url.pathname.slice(1) : (this.config.database as string);\n }\n\n getUser(): string {\n const url = this.getURL();\n return url ? url.username : (this.config.user as string);\n }\n\n getSearchPath(): string | undefined {\n return this.searchPath;\n }\n\n getHost(): string {\n const url = this.getURL();\n return url ? url.hostname : (this.config.host as string);\n }\n\n getSchema(): QuerySchema | undefined {\n return this.config.schema;\n }\n\n query<T extends QueryResultRow = QueryResultRow>(\n text: string,\n values?: unknown[],\n ): Promise<QueryResult<T>> {\n return query(this.sql, text, values);\n }\n\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n arrays<R extends any[] = any[]>(\n text: string,\n values?: unknown[],\n ): Promise<QueryArraysResult<R>> {\n return arrays(this.sql, text, values);\n }\n\n async transaction<Result>(...args: TransactionArgs<Result>): Promise<Result> {\n let ok: boolean | undefined;\n let result: unknown;\n\n const { cb, options } = getTransactionArgs(args);\n\n const fn = (sql: TransactionSql) => {\n const localsSql = getSetLocalsSql(options);\n if (localsSql) {\n sql.unsafe(localsSql).execute();\n }\n\n const locals = mergeLocals(this.locals, options);\n\n return cb(\n new PostgresJsTransactionAdapter(this, sql as never, this, locals),\n ).then((res) => {\n ok = true;\n return (result = res);\n });\n };\n\n return (\n options?.options\n ? this.sql.begin(options.options, fn)\n : this.sql.begin(fn)\n ).catch((err) => {\n if (ok) return result;\n\n throw err;\n }) as never;\n }\n\n close(): Promise<void> {\n return this.replaceSql(this.config);\n }\n\n assignError(to: QueryError, dbError: Error) {\n const from = dbError as postgres.PostgresError;\n to.message = from.message;\n to.severity = from.severity;\n to.code = from.code;\n to.detail = from.detail;\n to.schema = from.schema_name;\n to.table = from.table_name;\n to.constraint = from.constraint_name;\n to.hint = from.hint;\n to.position = from.position;\n to.where = from.where;\n to.file = from.file;\n to.line = from.line;\n to.routine = from.routine;\n }\n}\n\nconst query = <T extends QueryResultRow = QueryResultRow>(\n sql: postgres.Sql,\n text: string,\n values?: unknown[],\n catchingSavepoint?: string,\n arrays?: boolean,\n): Promise<QueryResult<T>> => {\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n let query = sql.unsafe(text, values as never) as any;\n\n if (arrays) query = query.values();\n\n if (catchingSavepoint) {\n return Promise.all([\n sql.unsafe(`SAVEPOINT \"${catchingSavepoint}\"`),\n query,\n sql.unsafe(`RELEASE SAVEPOINT \"${catchingSavepoint}\"`),\n ]).then(\n (results: RawResult[]) => {\n return wrapResult(results[1]);\n },\n (err) =>\n sql.unsafe(`ROLLBACK TO SAVEPOINT \"${catchingSavepoint}\"`).then(() => {\n throw err;\n }),\n );\n } else {\n return query.then(wrapResult);\n }\n};\n\n// eslint-disable-next-line @typescript-eslint/no-explicit-any\nconst arrays = <R extends any[] = any[]>(\n sql: postgres.Sql,\n text: string,\n values?: unknown[],\n catchingSavepoint?: string,\n): Promise<QueryArraysResult<R>> => {\n return query(sql, text, values, catchingSavepoint, true);\n};\n\nexport class PostgresJsTransactionAdapter implements TransactionAdapterBase {\n errorClass = postgres.PostgresError;\n\n constructor(\n public adapter: PostgresJsAdapter,\n public sql: postgres.Sql,\n public parent: AdapterBase,\n public locals: RecordStringOrNumber,\n ) {}\n\n isInTransaction(): true {\n return true;\n }\n\n updateConfig(config: PostgresJsAdapterOptions): Promise<void> {\n return this.adapter.updateConfig(config);\n }\n\n reconfigure(params: {\n database?: string;\n user?: string;\n password?: string;\n searchPath?: string;\n }): AdapterBase {\n return this.adapter.reconfigure(params);\n }\n\n getDatabase(): string {\n return this.adapter.getDatabase();\n }\n\n getUser(): string {\n return this.adapter.getUser();\n }\n\n getSearchPath(): string | undefined {\n return this.adapter.searchPath;\n }\n\n getHost(): string {\n return this.adapter.getHost();\n }\n\n getSchema(): QuerySchema | undefined {\n return this.adapter.getSchema();\n }\n\n query<T extends QueryResultRow = QueryResultRow>(\n text: string,\n values?: unknown[],\n catchingSavepoint?: string,\n ): Promise<QueryResult<T>> {\n return query(this.sql, text, values, catchingSavepoint);\n }\n\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n arrays<R extends any[] = any[]>(\n text: string,\n values?: unknown[],\n catchingSavepoint?: string,\n ): Promise<QueryArraysResult<R>> {\n return arrays(this.sql, text, values, catchingSavepoint);\n }\n\n async transaction<Result>(...args: TransactionArgs<Result>): Promise<Result> {\n const { cb, options } = getTransactionArgs(args);\n const localsSql = getSetLocalsSql(options);\n if (localsSql) {\n this.sql.unsafe(localsSql).execute();\n }\n\n const locals = mergeLocals(this.locals, options);\n\n const res = (await cb(\n new PostgresJsTransactionAdapter(this.adapter, this.sql, this, locals),\n )) as Result;\n\n const resetLocalsSql = getResetLocalsSql(this.locals, options);\n if (resetLocalsSql) {\n await this.sql.unsafe(resetLocalsSql);\n }\n\n return res;\n }\n\n close(): Promise<void> {\n return this.sql.end();\n }\n\n assignError(to: QueryError, from: Error) {\n return this.adapter.assignError(to, from);\n }\n}\n"],"names":["arrays","query"],"mappings":"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"}
1
+ {"version":3,"file":"postgres-js.mjs","sources":["../src/adapters/adapter.utils.ts","../src/adapters/postgres-js.ts"],"sourcesContent":["import {\n AdapterTransactionOptions,\n TransactionAdapterBase,\n TransactionArgs,\n} from './adapter';\nimport { RecordStringOrNumber } from 'pqb/internal';\n\ninterface SolvedTransactionArgs {\n options: AdapterTransactionOptions | undefined;\n cb: (adapter: TransactionAdapterBase) => Promise<unknown>;\n}\n\nconst transactionArgs: SolvedTransactionArgs = {\n cb: undefined,\n options: undefined,\n} as never;\n\nexport const getTransactionArgs = (args: TransactionArgs<unknown>) => {\n if (args[1]) {\n transactionArgs.options = args[0] as AdapterTransactionOptions;\n transactionArgs.cb = args[1];\n } else {\n transactionArgs.cb = args[0] as never;\n }\n return transactionArgs;\n};\n\nexport const mergeLocals = (\n locals: RecordStringOrNumber,\n options?: AdapterTransactionOptions,\n): RecordStringOrNumber =>\n options?.locals ? { ...locals, ...options.locals } : locals;\n\nexport const getSetLocalsSql = (\n options?: AdapterTransactionOptions,\n): string | undefined => {\n if (!options?.locals) return;\n\n return Object.entries(options.locals)\n .map(([key, value]) => `SET LOCAL ${key}=${value}`)\n .join('; ');\n};\n\nexport const getResetLocalsSql = (\n parentLocals: RecordStringOrNumber,\n options?: AdapterTransactionOptions,\n): string | undefined => {\n if (!options?.locals) return;\n\n return Object.entries(options.locals)\n .reduce<string[]>((acc, [key, value]) => {\n if (parentLocals[key] !== value) {\n acc.push(`SET LOCAL ${key}=${parentLocals[key]}`);\n }\n return acc;\n }, [])\n .join('; ');\n};\n","import postgres, { Error, Row, RowList, TransactionSql } from 'postgres';\nimport {\n AdapterBase,\n AdapterConfigBase,\n emptyObject,\n MaybeArray,\n QueryArraysResult,\n QueryResult,\n QueryResultRow,\n returnArg,\n setConnectRetryConfig,\n wrapAdapterFnWithConnectRetry,\n DbOptions,\n DefaultColumnTypes,\n DefaultSchemaConfig,\n DbResult,\n ColumnSchemaConfig,\n TransactionAdapterBase,\n QuerySchema,\n TransactionArgs,\n RecordStringOrNumber,\n} from 'pqb/internal';\nimport { QueryError, createDbWithAdapter } from 'pqb';\nimport {\n getResetLocalsSql,\n getSetLocalsSql,\n getTransactionArgs,\n mergeLocals,\n} from './adapter.utils';\n\nexport interface CreatePostgresJsDbOptions<\n SchemaConfig extends ColumnSchemaConfig,\n ColumnTypes,\n>\n extends PostgresJsAdapterOptions, DbOptions<SchemaConfig, ColumnTypes> {}\n\nexport const createDb = <\n SchemaConfig extends ColumnSchemaConfig = DefaultSchemaConfig,\n ColumnTypes = DefaultColumnTypes<SchemaConfig>,\n>(\n options: CreatePostgresJsDbOptions<SchemaConfig, ColumnTypes>,\n): DbResult<ColumnTypes> => {\n return createDbWithAdapter({\n ...options,\n adapter: new PostgresJsAdapter(options as never),\n });\n};\n\nexport interface PostgresJsAdapterOptions\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n extends postgres.Options<any>, AdapterConfigBase {\n databaseURL?: string;\n searchPath?: string;\n schema?: QuerySchema;\n}\n\ntype RawResult = RowList<(Row & Iterable<Row>)[]>;\n\nclass PostgresJsResult<T extends QueryResultRow> implements QueryResult<T> {\n rowCount: number;\n rows: T[];\n fields: QueryResult<T>['fields'];\n\n constructor(result: RawResult) {\n this.rowCount = result.count;\n this.rows = result as never;\n this.fields = result.statement.columns;\n }\n}\n\n// eslint-disable-next-line @typescript-eslint/no-explicit-any\nconst wrapResult = (result: MaybeArray<RawResult>): QueryArraysResult<any> => {\n if (result.constructor === Array) {\n return (result as RawResult[]).map(\n (res) => new PostgresJsResult(res),\n ) as never;\n } else {\n return new PostgresJsResult(result as RawResult);\n }\n};\n\nconst types: Record<string, Partial<postgres.PostgresType>> = {\n bytea: {\n to: 17,\n from: 17 as never,\n serialize: (x) => '\\\\x' + Buffer.from(x).toString('hex'),\n // omit parse, let bytea return a string, so it remains consistent with when it's selected via JSON\n },\n dateAndTimestampAsStrings: {\n to: 25,\n from: [1082, 1114, 1184],\n parse: returnArg,\n },\n interval: {\n from: [1186],\n serialize: returnArg,\n parse(str: string) {\n const [years, , months, , days, , time] = str.split(' ');\n const [hours, minutes, seconds] = time.split(':');\n\n return {\n years: years ? Number(years) : 0,\n months: months ? Number(months) : 0,\n days: days ? Number(days) : 0,\n hours: hours ? Number(hours) : 0,\n minutes: minutes ? Number(minutes) : 0,\n seconds: seconds ? Number(seconds) : 0,\n };\n },\n },\n // overrides the built-in json type to not serialize it, because it incorrectly serializes\n json: {\n to: 114,\n from: [114, 3802],\n serialize: returnArg,\n parse: (x) => {\n return JSON.parse(x);\n },\n },\n};\n\nexport class PostgresJsAdapter implements AdapterBase {\n sql: postgres.Sql;\n searchPath?: string;\n config: PostgresJsAdapterOptions;\n errorClass = postgres.PostgresError;\n locals: RecordStringOrNumber;\n private wrappedWithConnectRetry?: boolean;\n\n constructor(config: PostgresJsAdapterOptions) {\n this.config = { ...config, types };\n this.sql = this.configure(config);\n this.locals = config.searchPath\n ? {\n search_path: config.searchPath,\n }\n : emptyObject;\n }\n\n isInTransaction(): boolean {\n return false;\n }\n\n private configure(config: PostgresJsAdapterOptions): postgres.Sql {\n this.searchPath = config.searchPath;\n if (this.searchPath) {\n this.config.connection = {\n ...config.connection,\n search_path: this.searchPath,\n };\n }\n\n let sql;\n if (this.config.databaseURL) {\n const urlString = this.config.databaseURL;\n const url = new URL(urlString);\n\n const ssl = url.searchParams.get('ssl');\n if (ssl === 'false' || ssl === 'true') {\n this.config.ssl = ssl === 'true';\n }\n\n const searchPath = url.searchParams.get('searchPath');\n if (searchPath) {\n this.searchPath = searchPath;\n url.searchParams.delete('searchPath');\n this.config.connection = {\n ...config.connection,\n search_path: searchPath,\n };\n }\n\n sql = postgres(url.toString(), this.config);\n } else {\n sql = postgres(this.config);\n }\n\n if (config.connectRetry) {\n setConnectRetryConfig(\n this,\n config.connectRetry === true ? emptyObject : config.connectRetry,\n );\n\n if (!this.wrappedWithConnectRetry) {\n this.query = wrapAdapterFnWithConnectRetry(this, this.query);\n this.arrays = wrapAdapterFnWithConnectRetry(this, this.arrays);\n this.wrappedWithConnectRetry = true;\n }\n }\n\n return sql;\n }\n\n private getURL(): URL | undefined {\n return this.config.databaseURL\n ? new URL(this.config.databaseURL)\n : undefined;\n }\n\n private replaceSql(config: PostgresJsAdapterOptions): Promise<void> {\n const { sql } = this;\n // Swap the client before ending the old one so the adapter remains reusable\n this.sql = this.configure(config);\n return sql.end();\n }\n\n async updateConfig(config: PostgresJsAdapterOptions): Promise<void> {\n await this.replaceSql({ ...this.config, ...config });\n }\n\n reconfigure(params: {\n database?: string;\n user?: string;\n password?: string;\n searchPath?: string;\n }): AdapterBase {\n const url = this.getURL();\n if (url) {\n if ('database' in params) {\n url.pathname = `/${params.database}`;\n }\n\n if (params.user !== undefined) {\n url.username = params.user;\n }\n\n if (params.password !== undefined) {\n url.password = params.password;\n }\n\n if (params.searchPath !== undefined) {\n url.searchParams.set('searchPath', params.searchPath);\n }\n\n return new PostgresJsAdapter({\n ...this.config,\n databaseURL: url.toString(),\n });\n } else {\n return new PostgresJsAdapter({ ...this.config, ...params });\n }\n }\n\n getDatabase(): string {\n const url = this.getURL();\n return url ? url.pathname.slice(1) : (this.config.database as string);\n }\n\n getUser(): string {\n const url = this.getURL();\n return url ? url.username : (this.config.user as string);\n }\n\n getSearchPath(): string | undefined {\n return this.searchPath;\n }\n\n getHost(): string {\n const url = this.getURL();\n return url ? url.hostname : (this.config.host as string);\n }\n\n getSchema(): QuerySchema | undefined {\n return this.config.schema;\n }\n\n query<T extends QueryResultRow = QueryResultRow>(\n text: string,\n values?: unknown[],\n ): Promise<QueryResult<T>> {\n return query(this.sql, text, values);\n }\n\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n arrays<R extends any[] = any[]>(\n text: string,\n values?: unknown[],\n ): Promise<QueryArraysResult<R>> {\n return arrays(this.sql, text, values);\n }\n\n async transaction<Result>(...args: TransactionArgs<Result>): Promise<Result> {\n let ok: boolean | undefined;\n let result: unknown;\n\n const { cb, options } = getTransactionArgs(args);\n\n const fn = (sql: TransactionSql) => {\n const localsSql = getSetLocalsSql(options);\n if (localsSql) {\n sql.unsafe(localsSql).execute();\n }\n\n const locals = mergeLocals(this.locals, options);\n\n return cb(\n new PostgresJsTransactionAdapter(this, sql as never, this, locals),\n ).then((res) => {\n ok = true;\n return (result = res);\n });\n };\n\n return (\n options?.options\n ? this.sql.begin(options.options, fn)\n : this.sql.begin(fn)\n ).catch((err) => {\n if (ok) return result;\n\n throw err;\n }) as never;\n }\n\n close(): Promise<void> {\n return this.replaceSql(this.config);\n }\n\n assignError(to: QueryError, dbError: Error) {\n const from = dbError as postgres.PostgresError;\n to.message = from.message;\n to.severity = from.severity;\n to.code = from.code;\n to.detail = from.detail;\n to.schema = from.schema_name;\n to.table = from.table_name;\n to.constraint = from.constraint_name;\n to.hint = from.hint;\n to.position = from.position;\n to.where = from.where;\n to.file = from.file;\n to.line = from.line;\n to.routine = from.routine;\n }\n}\n\nconst query = <T extends QueryResultRow = QueryResultRow>(\n sql: postgres.Sql,\n text: string,\n values?: unknown[],\n startingSavepoint?: string,\n releasingSavepoint?: string,\n arrays?: boolean,\n): Promise<QueryResult<T>> => {\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n let query = sql.unsafe(text, values as never) as any;\n\n if (arrays) query = query.values();\n\n if (!startingSavepoint && !releasingSavepoint) {\n return query.then(wrapResult);\n }\n\n return Promise.all([\n startingSavepoint && sql.unsafe(`SAVEPOINT \"${startingSavepoint}\"`),\n query,\n releasingSavepoint &&\n sql.unsafe(`RELEASE SAVEPOINT \"${releasingSavepoint}\"`),\n ]).then(\n (results: RawResult[]) => {\n return wrapResult(results[1]);\n },\n (err) => {\n if (!releasingSavepoint) {\n throw err;\n }\n\n return sql\n .unsafe(`ROLLBACK TO SAVEPOINT \"${releasingSavepoint}\"`)\n .then(() => {\n throw err;\n });\n },\n );\n};\n\n// eslint-disable-next-line @typescript-eslint/no-explicit-any\nconst arrays = <R extends any[] = any[]>(\n sql: postgres.Sql,\n text: string,\n values?: unknown[],\n startingSavepoint?: string,\n releasingSavepoint?: string,\n): Promise<QueryArraysResult<R>> => {\n return query(sql, text, values, startingSavepoint, releasingSavepoint, true);\n};\n\nexport class PostgresJsTransactionAdapter implements TransactionAdapterBase {\n errorClass = postgres.PostgresError;\n\n constructor(\n public adapter: PostgresJsAdapter,\n public sql: postgres.Sql,\n public parent: AdapterBase,\n public locals: RecordStringOrNumber,\n ) {}\n\n isInTransaction(): true {\n return true;\n }\n\n updateConfig(config: PostgresJsAdapterOptions): Promise<void> {\n return this.adapter.updateConfig(config);\n }\n\n reconfigure(params: {\n database?: string;\n user?: string;\n password?: string;\n searchPath?: string;\n }): AdapterBase {\n return this.adapter.reconfigure(params);\n }\n\n getDatabase(): string {\n return this.adapter.getDatabase();\n }\n\n getUser(): string {\n return this.adapter.getUser();\n }\n\n getSearchPath(): string | undefined {\n return this.adapter.searchPath;\n }\n\n getHost(): string {\n return this.adapter.getHost();\n }\n\n getSchema(): QuerySchema | undefined {\n return this.adapter.getSchema();\n }\n\n query<T extends QueryResultRow = QueryResultRow>(\n text: string,\n values?: unknown[],\n startingSavepoint?: string,\n releasingSavepoint?: string,\n ): Promise<QueryResult<T>> {\n return query(this.sql, text, values, startingSavepoint, releasingSavepoint);\n }\n\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n arrays<R extends any[] = any[]>(\n text: string,\n values?: unknown[],\n startingSavepoint?: string,\n releasingSavepoint?: string,\n ): Promise<QueryArraysResult<R>> {\n return arrays(\n this.sql,\n text,\n values,\n startingSavepoint,\n releasingSavepoint,\n );\n }\n\n async transaction<Result>(...args: TransactionArgs<Result>): Promise<Result> {\n const { cb, options } = getTransactionArgs(args);\n const localsSql = getSetLocalsSql(options);\n if (localsSql) {\n this.sql.unsafe(localsSql).execute();\n }\n\n const locals = mergeLocals(this.locals, options);\n\n const res = (await cb(\n new PostgresJsTransactionAdapter(this.adapter, this.sql, this, locals),\n )) as Result;\n\n const resetLocalsSql = getResetLocalsSql(this.locals, options);\n if (resetLocalsSql) {\n await this.sql.unsafe(resetLocalsSql);\n }\n\n return res;\n }\n\n close(): Promise<void> {\n return this.sql.end();\n }\n\n assignError(to: QueryError, from: Error) {\n return this.adapter.assignError(to, from);\n }\n}\n"],"names":["arrays","query"],"mappings":"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"}
@@ -0,0 +1 @@
1
+ export { NotFoundError, OrchidOrmInternalError, QueryError, copyTableData, createDbWithAdapter, getColumnInfo, testTransaction } from './index';
package/dist/public.js ADDED
@@ -0,0 +1,35 @@
1
+ 'use strict';
2
+
3
+ var index = require('./index');
4
+
5
+
6
+
7
+ Object.defineProperty(exports, "NotFoundError", {
8
+ enumerable: true,
9
+ get: function () { return index.NotFoundError; }
10
+ });
11
+ Object.defineProperty(exports, "OrchidOrmInternalError", {
12
+ enumerable: true,
13
+ get: function () { return index.OrchidOrmInternalError; }
14
+ });
15
+ Object.defineProperty(exports, "QueryError", {
16
+ enumerable: true,
17
+ get: function () { return index.QueryError; }
18
+ });
19
+ Object.defineProperty(exports, "copyTableData", {
20
+ enumerable: true,
21
+ get: function () { return index.copyTableData; }
22
+ });
23
+ Object.defineProperty(exports, "createDbWithAdapter", {
24
+ enumerable: true,
25
+ get: function () { return index.createDbWithAdapter; }
26
+ });
27
+ Object.defineProperty(exports, "getColumnInfo", {
28
+ enumerable: true,
29
+ get: function () { return index.getColumnInfo; }
30
+ });
31
+ Object.defineProperty(exports, "testTransaction", {
32
+ enumerable: true,
33
+ get: function () { return index.testTransaction; }
34
+ });
35
+ //# sourceMappingURL=public.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"public.js","sources":[],"sourcesContent":[],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;"}
@@ -0,0 +1,2 @@
1
+ export { NotFoundError, OrchidOrmInternalError, QueryError, copyTableData, createDbWithAdapter, getColumnInfo, testTransaction } from './index';
2
+ //# sourceMappingURL=public.mjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"public.mjs","sources":[],"sourcesContent":[],"names":[],"mappings":""}
package/package.json CHANGED
@@ -1,21 +1,36 @@
1
1
  {
2
2
  "name": "pqb",
3
- "version": "0.61.13",
3
+ "version": "0.62.1",
4
4
  "description": "Postgres query builder",
5
+ "keywords": [
6
+ "pg",
7
+ "postgres",
8
+ "query-builder"
9
+ ],
5
10
  "homepage": "https://orchid-orm.netlify.app/guide/orm-and-query-builder.html",
11
+ "license": "ISC",
12
+ "author": "Roman Kushyn",
6
13
  "repository": {
7
14
  "type": "git",
8
15
  "url": "https://github.com/romeerez/orchid-orm.git",
9
16
  "directory": "packages/pqb"
10
17
  },
11
- "main": "dist/index.js",
12
- "module": "dist/index.mjs",
13
- "typings": "dist/index.d.ts",
18
+ "files": [
19
+ "dist"
20
+ ],
21
+ "main": "dist/public.js",
22
+ "module": "dist/public.mjs",
23
+ "typings": "dist/public.d.ts",
14
24
  "exports": {
15
25
  ".": {
16
- "require": "./dist/index.js",
17
- "import": "./dist/index.mjs",
18
- "types": "./dist/index.d.ts"
26
+ "require": "./dist/public.js",
27
+ "import": "./dist/public.mjs",
28
+ "types": "./dist/public.d.ts"
29
+ },
30
+ "./internal": {
31
+ "require": "./dist/internal.js",
32
+ "import": "./dist/internal.mjs",
33
+ "types": "./dist/internal.d.ts"
19
34
  },
20
35
  "./node-postgres": {
21
36
  "require": "./dist/node-postgres.js",
@@ -28,22 +43,12 @@
28
43
  "types": "./dist/postgres-js.d.ts"
29
44
  }
30
45
  },
31
- "files": [
32
- "dist"
33
- ],
34
- "keywords": [
35
- "pg",
36
- "postgres",
37
- "query-builder"
38
- ],
39
- "author": "Roman Kushyn",
40
- "license": "ISC",
41
46
  "dependencies": {
42
47
  "@types/pg": ">=8"
43
48
  },
44
49
  "devDependencies": {
45
50
  "zod": "^4.3.6",
46
- "test-utils": "0.3.5"
51
+ "test-utils": "0.3.6"
47
52
  },
48
53
  "peerDependencies": {
49
54
  "pg": ">=8",
@@ -62,6 +67,10 @@
62
67
  "check": "jest",
63
68
  "types": "tsc",
64
69
  "test:ci": "jest --coverage --coverageReporters json-summary",
65
- "build": "rimraf ./dist/ && rollup -c ./rollup.config.mjs"
70
+ "build": "rimraf ./dist/ && rollup -c ./rollup.config.mjs",
71
+ "lint": "oxlint --fix",
72
+ "lint:check": "oxlint",
73
+ "fmt": "oxfmt",
74
+ "fmt:check": "oxfmt --check"
66
75
  }
67
76
  }