@restura/core 0.1.0-alpha.13 → 0.1.0-alpha.15

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/dist/index.d.mts CHANGED
@@ -1,7 +1,7 @@
1
1
  import winston from 'winston';
2
2
  import * as express from 'express';
3
3
  import { z } from 'zod';
4
- import { PoolConfig, Pool } from 'pg';
4
+ import { QueryResultRow, QueryConfigValues, QueryResult, PoolConfig, Pool, ClientConfig, Client } from 'pg';
5
5
  import { IncomingHttpHeaders } from 'http2';
6
6
 
7
7
  declare const logger: winston.Logger;
@@ -62,7 +62,7 @@ declare const resturaZodSchema: z.ZodObject<{
62
62
  name: z.ZodString;
63
63
  columns: z.ZodArray<z.ZodObject<{
64
64
  name: z.ZodString;
65
- type: z.ZodUnion<[z.ZodEnum<["SMALLINT", "INTEGER", "BIGINT", "DECIMAL", "NUMERIC", "REAL", "DOUBLE PRECISION", "SERIAL", "BIGSERIAL"]>, z.ZodEnum<["CHAR", "VARCHAR", "TEXT", "BYTEA"]>, z.ZodEnum<["DATE", "TIMESTAMP", "TIMESTAMPTZ", "TIME", "INTERVAL"]>, z.ZodEnum<["BOOLEAN", "TINYINT", "SMALLINT", "MEDIUMINT", "INTEGER", "BIGINT", "DECIMAL", "FLOAT", "DOUBLE"]>, z.ZodEnum<["CHAR", "VARCHAR", "TINYTEXT", "TINYBLOB", "TEXT", "BLOB", "MEDIUMTEXT", "MEDIUMBLOB", "LONGTEXT", "JSON", "LONGBLOB", "ENUM"]>, z.ZodEnum<["DATE", "DATETIME", "TIME", "TIMESTAMP"]>]>;
65
+ type: z.ZodUnion<[z.ZodEnum<["SMALLINT", "INTEGER", "BIGINT", "DECIMAL", "NUMERIC", "REAL", "DOUBLE PRECISION", "SERIAL", "BIGSERIAL"]>, z.ZodEnum<["CHAR", "VARCHAR", "TEXT", "BYTEA"]>, z.ZodEnum<["DATE", "TIMESTAMP", "TIMESTAMPTZ", "TIME", "INTERVAL"]>, z.ZodEnum<["JSON", "JSONB"]>, z.ZodEnum<["BOOLEAN", "TINYINT", "SMALLINT", "MEDIUMINT", "INTEGER", "BIGINT", "DECIMAL", "FLOAT", "DOUBLE"]>, z.ZodEnum<["CHAR", "VARCHAR", "TINYTEXT", "TINYBLOB", "TEXT", "BLOB", "MEDIUMTEXT", "MEDIUMBLOB", "LONGTEXT", "JSON", "LONGBLOB", "ENUM"]>, z.ZodEnum<["DATE", "DATETIME", "TIME", "TIMESTAMP"]>]>;
66
66
  isNullable: z.ZodBoolean;
67
67
  roles: z.ZodArray<z.ZodString, "many">;
68
68
  comment: z.ZodOptional<z.ZodString>;
@@ -73,7 +73,7 @@ declare const resturaZodSchema: z.ZodObject<{
73
73
  hasAutoIncrement: z.ZodOptional<z.ZodBoolean>;
74
74
  length: z.ZodOptional<z.ZodNumber>;
75
75
  }, "strict", z.ZodTypeAny, {
76
- type: "SMALLINT" | "INTEGER" | "BIGINT" | "DECIMAL" | "NUMERIC" | "REAL" | "DOUBLE PRECISION" | "SERIAL" | "BIGSERIAL" | "CHAR" | "VARCHAR" | "TEXT" | "BYTEA" | "DATE" | "TIMESTAMP" | "TIMESTAMPTZ" | "TIME" | "INTERVAL" | "BOOLEAN" | "TINYINT" | "MEDIUMINT" | "FLOAT" | "DOUBLE" | "TINYTEXT" | "TINYBLOB" | "BLOB" | "MEDIUMTEXT" | "MEDIUMBLOB" | "LONGTEXT" | "JSON" | "LONGBLOB" | "ENUM" | "DATETIME";
76
+ type: "SMALLINT" | "INTEGER" | "BIGINT" | "DECIMAL" | "NUMERIC" | "REAL" | "DOUBLE PRECISION" | "SERIAL" | "BIGSERIAL" | "CHAR" | "VARCHAR" | "TEXT" | "BYTEA" | "DATE" | "TIMESTAMP" | "TIMESTAMPTZ" | "TIME" | "INTERVAL" | "JSON" | "JSONB" | "BOOLEAN" | "TINYINT" | "MEDIUMINT" | "FLOAT" | "DOUBLE" | "TINYTEXT" | "TINYBLOB" | "BLOB" | "MEDIUMTEXT" | "MEDIUMBLOB" | "LONGTEXT" | "LONGBLOB" | "ENUM" | "DATETIME";
77
77
  name: string;
78
78
  isNullable: boolean;
79
79
  roles: string[];
@@ -85,7 +85,7 @@ declare const resturaZodSchema: z.ZodObject<{
85
85
  isUnique?: boolean | undefined;
86
86
  hasAutoIncrement?: boolean | undefined;
87
87
  }, {
88
- type: "SMALLINT" | "INTEGER" | "BIGINT" | "DECIMAL" | "NUMERIC" | "REAL" | "DOUBLE PRECISION" | "SERIAL" | "BIGSERIAL" | "CHAR" | "VARCHAR" | "TEXT" | "BYTEA" | "DATE" | "TIMESTAMP" | "TIMESTAMPTZ" | "TIME" | "INTERVAL" | "BOOLEAN" | "TINYINT" | "MEDIUMINT" | "FLOAT" | "DOUBLE" | "TINYTEXT" | "TINYBLOB" | "BLOB" | "MEDIUMTEXT" | "MEDIUMBLOB" | "LONGTEXT" | "JSON" | "LONGBLOB" | "ENUM" | "DATETIME";
88
+ type: "SMALLINT" | "INTEGER" | "BIGINT" | "DECIMAL" | "NUMERIC" | "REAL" | "DOUBLE PRECISION" | "SERIAL" | "BIGSERIAL" | "CHAR" | "VARCHAR" | "TEXT" | "BYTEA" | "DATE" | "TIMESTAMP" | "TIMESTAMPTZ" | "TIME" | "INTERVAL" | "JSON" | "JSONB" | "BOOLEAN" | "TINYINT" | "MEDIUMINT" | "FLOAT" | "DOUBLE" | "TINYTEXT" | "TINYBLOB" | "BLOB" | "MEDIUMTEXT" | "MEDIUMBLOB" | "LONGTEXT" | "LONGBLOB" | "ENUM" | "DATETIME";
89
89
  name: string;
90
90
  isNullable: boolean;
91
91
  roles: string[];
@@ -153,7 +153,7 @@ declare const resturaZodSchema: z.ZodObject<{
153
153
  name: string;
154
154
  roles: string[];
155
155
  columns: {
156
- type: "SMALLINT" | "INTEGER" | "BIGINT" | "DECIMAL" | "NUMERIC" | "REAL" | "DOUBLE PRECISION" | "SERIAL" | "BIGSERIAL" | "CHAR" | "VARCHAR" | "TEXT" | "BYTEA" | "DATE" | "TIMESTAMP" | "TIMESTAMPTZ" | "TIME" | "INTERVAL" | "BOOLEAN" | "TINYINT" | "MEDIUMINT" | "FLOAT" | "DOUBLE" | "TINYTEXT" | "TINYBLOB" | "BLOB" | "MEDIUMTEXT" | "MEDIUMBLOB" | "LONGTEXT" | "JSON" | "LONGBLOB" | "ENUM" | "DATETIME";
156
+ type: "SMALLINT" | "INTEGER" | "BIGINT" | "DECIMAL" | "NUMERIC" | "REAL" | "DOUBLE PRECISION" | "SERIAL" | "BIGSERIAL" | "CHAR" | "VARCHAR" | "TEXT" | "BYTEA" | "DATE" | "TIMESTAMP" | "TIMESTAMPTZ" | "TIME" | "INTERVAL" | "JSON" | "JSONB" | "BOOLEAN" | "TINYINT" | "MEDIUMINT" | "FLOAT" | "DOUBLE" | "TINYTEXT" | "TINYBLOB" | "BLOB" | "MEDIUMTEXT" | "MEDIUMBLOB" | "LONGTEXT" | "LONGBLOB" | "ENUM" | "DATETIME";
157
157
  name: string;
158
158
  isNullable: boolean;
159
159
  roles: string[];
@@ -188,7 +188,7 @@ declare const resturaZodSchema: z.ZodObject<{
188
188
  name: string;
189
189
  roles: string[];
190
190
  columns: {
191
- type: "SMALLINT" | "INTEGER" | "BIGINT" | "DECIMAL" | "NUMERIC" | "REAL" | "DOUBLE PRECISION" | "SERIAL" | "BIGSERIAL" | "CHAR" | "VARCHAR" | "TEXT" | "BYTEA" | "DATE" | "TIMESTAMP" | "TIMESTAMPTZ" | "TIME" | "INTERVAL" | "BOOLEAN" | "TINYINT" | "MEDIUMINT" | "FLOAT" | "DOUBLE" | "TINYTEXT" | "TINYBLOB" | "BLOB" | "MEDIUMTEXT" | "MEDIUMBLOB" | "LONGTEXT" | "JSON" | "LONGBLOB" | "ENUM" | "DATETIME";
191
+ type: "SMALLINT" | "INTEGER" | "BIGINT" | "DECIMAL" | "NUMERIC" | "REAL" | "DOUBLE PRECISION" | "SERIAL" | "BIGSERIAL" | "CHAR" | "VARCHAR" | "TEXT" | "BYTEA" | "DATE" | "TIMESTAMP" | "TIMESTAMPTZ" | "TIME" | "INTERVAL" | "JSON" | "JSONB" | "BOOLEAN" | "TINYINT" | "MEDIUMINT" | "FLOAT" | "DOUBLE" | "TINYTEXT" | "TINYBLOB" | "BLOB" | "MEDIUMTEXT" | "MEDIUMBLOB" | "LONGTEXT" | "LONGBLOB" | "ENUM" | "DATETIME";
192
192
  name: string;
193
193
  isNullable: boolean;
194
194
  roles: string[];
@@ -290,7 +290,7 @@ declare const resturaZodSchema: z.ZodObject<{
290
290
  request: z.ZodArray<z.ZodObject<{
291
291
  name: z.ZodString;
292
292
  required: z.ZodBoolean;
293
- isNullable: z.ZodDefault<z.ZodOptional<z.ZodBoolean>>;
293
+ isNullable: z.ZodOptional<z.ZodBoolean>;
294
294
  validator: z.ZodArray<z.ZodObject<{
295
295
  type: z.ZodEnum<["TYPE_CHECK", "MIN", "MAX", "ONE_OF"]>;
296
296
  value: z.ZodUnion<[z.ZodString, z.ZodArray<z.ZodString, "many">, z.ZodNumber, z.ZodArray<z.ZodNumber, "many">]>;
@@ -304,11 +304,11 @@ declare const resturaZodSchema: z.ZodObject<{
304
304
  }, "strict", z.ZodTypeAny, {
305
305
  name: string;
306
306
  required: boolean;
307
- isNullable: boolean;
308
307
  validator: {
309
308
  type: "TYPE_CHECK" | "MIN" | "MAX" | "ONE_OF";
310
309
  value: string | number | string[] | number[];
311
310
  }[];
311
+ isNullable?: boolean | undefined;
312
312
  }, {
313
313
  name: string;
314
314
  required: boolean;
@@ -567,11 +567,11 @@ declare const resturaZodSchema: z.ZodObject<{
567
567
  request: {
568
568
  name: string;
569
569
  required: boolean;
570
- isNullable: boolean;
571
570
  validator: {
572
571
  type: "TYPE_CHECK" | "MIN" | "MAX" | "ONE_OF";
573
572
  value: string | number | string[] | number[];
574
573
  }[];
574
+ isNullable?: boolean | undefined;
575
575
  }[];
576
576
  response: {
577
577
  name: string;
@@ -707,7 +707,7 @@ declare const resturaZodSchema: z.ZodObject<{
707
707
  request: z.ZodOptional<z.ZodArray<z.ZodObject<{
708
708
  name: z.ZodString;
709
709
  required: z.ZodBoolean;
710
- isNullable: z.ZodDefault<z.ZodOptional<z.ZodBoolean>>;
710
+ isNullable: z.ZodOptional<z.ZodBoolean>;
711
711
  validator: z.ZodArray<z.ZodObject<{
712
712
  type: z.ZodEnum<["TYPE_CHECK", "MIN", "MAX", "ONE_OF"]>;
713
713
  value: z.ZodUnion<[z.ZodString, z.ZodArray<z.ZodString, "many">, z.ZodNumber, z.ZodArray<z.ZodNumber, "many">]>;
@@ -721,11 +721,11 @@ declare const resturaZodSchema: z.ZodObject<{
721
721
  }, "strict", z.ZodTypeAny, {
722
722
  name: string;
723
723
  required: boolean;
724
- isNullable: boolean;
725
724
  validator: {
726
725
  type: "TYPE_CHECK" | "MIN" | "MAX" | "ONE_OF";
727
726
  value: string | number | string[] | number[];
728
727
  }[];
728
+ isNullable?: boolean | undefined;
729
729
  }, {
730
730
  name: string;
731
731
  required: boolean;
@@ -753,11 +753,11 @@ declare const resturaZodSchema: z.ZodObject<{
753
753
  request?: {
754
754
  name: string;
755
755
  required: boolean;
756
- isNullable: boolean;
757
756
  validator: {
758
757
  type: "TYPE_CHECK" | "MIN" | "MAX" | "ONE_OF";
759
758
  value: string | number | string[] | number[];
760
759
  }[];
760
+ isNullable?: boolean | undefined;
761
761
  }[] | undefined;
762
762
  requestType?: string | undefined;
763
763
  fileUploadType?: "SINGLE" | "MULTIPLE" | undefined;
@@ -819,11 +819,11 @@ declare const resturaZodSchema: z.ZodObject<{
819
819
  request: {
820
820
  name: string;
821
821
  required: boolean;
822
- isNullable: boolean;
823
822
  validator: {
824
823
  type: "TYPE_CHECK" | "MIN" | "MAX" | "ONE_OF";
825
824
  value: string | number | string[] | number[];
826
825
  }[];
826
+ isNullable?: boolean | undefined;
827
827
  }[];
828
828
  response: {
829
829
  name: string;
@@ -881,11 +881,11 @@ declare const resturaZodSchema: z.ZodObject<{
881
881
  request?: {
882
882
  name: string;
883
883
  required: boolean;
884
- isNullable: boolean;
885
884
  validator: {
886
885
  type: "TYPE_CHECK" | "MIN" | "MAX" | "ONE_OF";
887
886
  value: string | number | string[] | number[];
888
887
  }[];
888
+ isNullable?: boolean | undefined;
889
889
  }[] | undefined;
890
890
  requestType?: string | undefined;
891
891
  fileUploadType?: "SINGLE" | "MULTIPLE" | undefined;
@@ -1006,7 +1006,7 @@ declare const resturaZodSchema: z.ZodObject<{
1006
1006
  name: string;
1007
1007
  roles: string[];
1008
1008
  columns: {
1009
- type: "SMALLINT" | "INTEGER" | "BIGINT" | "DECIMAL" | "NUMERIC" | "REAL" | "DOUBLE PRECISION" | "SERIAL" | "BIGSERIAL" | "CHAR" | "VARCHAR" | "TEXT" | "BYTEA" | "DATE" | "TIMESTAMP" | "TIMESTAMPTZ" | "TIME" | "INTERVAL" | "BOOLEAN" | "TINYINT" | "MEDIUMINT" | "FLOAT" | "DOUBLE" | "TINYTEXT" | "TINYBLOB" | "BLOB" | "MEDIUMTEXT" | "MEDIUMBLOB" | "LONGTEXT" | "JSON" | "LONGBLOB" | "ENUM" | "DATETIME";
1009
+ type: "SMALLINT" | "INTEGER" | "BIGINT" | "DECIMAL" | "NUMERIC" | "REAL" | "DOUBLE PRECISION" | "SERIAL" | "BIGSERIAL" | "CHAR" | "VARCHAR" | "TEXT" | "BYTEA" | "DATE" | "TIMESTAMP" | "TIMESTAMPTZ" | "TIME" | "INTERVAL" | "JSON" | "JSONB" | "BOOLEAN" | "TINYINT" | "MEDIUMINT" | "FLOAT" | "DOUBLE" | "TINYTEXT" | "TINYBLOB" | "BLOB" | "MEDIUMTEXT" | "MEDIUMBLOB" | "LONGTEXT" | "LONGBLOB" | "ENUM" | "DATETIME";
1010
1010
  name: string;
1011
1011
  isNullable: boolean;
1012
1012
  roles: string[];
@@ -1073,11 +1073,11 @@ declare const resturaZodSchema: z.ZodObject<{
1073
1073
  request: {
1074
1074
  name: string;
1075
1075
  required: boolean;
1076
- isNullable: boolean;
1077
1076
  validator: {
1078
1077
  type: "TYPE_CHECK" | "MIN" | "MAX" | "ONE_OF";
1079
1078
  value: string | number | string[] | number[];
1080
1079
  }[];
1080
+ isNullable?: boolean | undefined;
1081
1081
  }[];
1082
1082
  response: {
1083
1083
  name: string;
@@ -1135,11 +1135,11 @@ declare const resturaZodSchema: z.ZodObject<{
1135
1135
  request?: {
1136
1136
  name: string;
1137
1137
  required: boolean;
1138
- isNullable: boolean;
1139
1138
  validator: {
1140
1139
  type: "TYPE_CHECK" | "MIN" | "MAX" | "ONE_OF";
1141
1140
  value: string | number | string[] | number[];
1142
1141
  }[];
1142
+ isNullable?: boolean | undefined;
1143
1143
  }[] | undefined;
1144
1144
  requestType?: string | undefined;
1145
1145
  fileUploadType?: "SINGLE" | "MULTIPLE" | undefined;
@@ -1153,7 +1153,7 @@ declare const resturaZodSchema: z.ZodObject<{
1153
1153
  name: string;
1154
1154
  roles: string[];
1155
1155
  columns: {
1156
- type: "SMALLINT" | "INTEGER" | "BIGINT" | "DECIMAL" | "NUMERIC" | "REAL" | "DOUBLE PRECISION" | "SERIAL" | "BIGSERIAL" | "CHAR" | "VARCHAR" | "TEXT" | "BYTEA" | "DATE" | "TIMESTAMP" | "TIMESTAMPTZ" | "TIME" | "INTERVAL" | "BOOLEAN" | "TINYINT" | "MEDIUMINT" | "FLOAT" | "DOUBLE" | "TINYTEXT" | "TINYBLOB" | "BLOB" | "MEDIUMTEXT" | "MEDIUMBLOB" | "LONGTEXT" | "JSON" | "LONGBLOB" | "ENUM" | "DATETIME";
1156
+ type: "SMALLINT" | "INTEGER" | "BIGINT" | "DECIMAL" | "NUMERIC" | "REAL" | "DOUBLE PRECISION" | "SERIAL" | "BIGSERIAL" | "CHAR" | "VARCHAR" | "TEXT" | "BYTEA" | "DATE" | "TIMESTAMP" | "TIMESTAMPTZ" | "TIME" | "INTERVAL" | "JSON" | "JSONB" | "BOOLEAN" | "TINYINT" | "MEDIUMINT" | "FLOAT" | "DOUBLE" | "TINYTEXT" | "TINYBLOB" | "BLOB" | "MEDIUMTEXT" | "MEDIUMBLOB" | "LONGTEXT" | "LONGBLOB" | "ENUM" | "DATETIME";
1157
1157
  name: string;
1158
1158
  isNullable: boolean;
1159
1159
  roles: string[];
@@ -1391,13 +1391,31 @@ interface AsyncExpressApplication {
1391
1391
  delete: (url: string, handler: RsRouteHandler, nextFunction?: RsRouteHandler) => Promise<void> | void;
1392
1392
  }
1393
1393
 
1394
- declare class PsqlPool {
1394
+ declare abstract class PsqlConnection {
1395
+ constructor();
1396
+ protected abstract query<R extends QueryResultRow = QueryResultRow, T extends Array<unknown> = unknown[]>(query: string, values?: QueryConfigValues<T>): Promise<QueryResult<R>>;
1397
+ queryOne(query: string, options: any[], requesterDetails: RequesterDetails): Promise<QueryResultRow>;
1398
+ runQuery(query: string, options: any[], requesterDetails: RequesterDetails): Promise<QueryResultRow[]>;
1399
+ private logSqlStatement;
1400
+ }
1401
+
1402
+ declare class PsqlPool extends PsqlConnection {
1395
1403
  poolConfig: PoolConfig;
1396
1404
  pool: Pool;
1397
1405
  constructor(poolConfig: PoolConfig);
1398
- queryOne(query: string, options: any[], requesterDetails: RequesterDetails): Promise<any>;
1399
- runQuery(query: string, options: any[], requesterDetails: RequesterDetails): Promise<any[]>;
1400
- private logSqlStatement;
1406
+ protected query<R extends QueryResultRow = QueryResultRow, T extends Array<unknown> = unknown[]>(query: string, values?: QueryConfigValues<T>): Promise<QueryResult<R>>;
1407
+ }
1408
+
1409
+ declare class PsqlTransaction extends PsqlConnection {
1410
+ clientConfig: ClientConfig;
1411
+ client: Client;
1412
+ private beginTransactionPromise;
1413
+ constructor(clientConfig: ClientConfig);
1414
+ private beginTransaction;
1415
+ rollback(): Promise<QueryResult<QueryResultRow>>;
1416
+ commit(): Promise<QueryResult<QueryResultRow>>;
1417
+ release(): Promise<void>;
1418
+ protected query<R extends QueryResultRow = QueryResultRow, T extends Array<unknown> = unknown[]>(query: string, values?: QueryConfigValues<T>): Promise<QueryResult<R>>;
1401
1419
  }
1402
1420
 
1403
1421
  declare class ResturaEngine {
@@ -1498,4 +1516,4 @@ declare function updateObjectQuery(table: string, obj: DynamicObject, whereState
1498
1516
  declare function isValueNumber(value: unknown): value is number;
1499
1517
  declare function SQL(strings: any, ...values: any): any;
1500
1518
 
1501
- export { type ApiMethod, type AsyncExpressApplication, type AuthenticateHandler, type AuthenticationUserDetails, type ConjunctionTypes, type DynamicObject, type ErrorCode, HtmlStatusCodes, type LoginDetails, type MatchTypes, type PageQuery, PsqlPool, type RequesterDetails, type ResponseType, type ResponseTypeMap, RsError, type RsErrorData, type RsErrorInternalData, type RsHeaders, type RsPagedResponseData, type RsRequest, type RsResponse, type RsResponseData, type RsRouteHandler, SQL, type SchemaChangeValue, type SchemaPreview, type StandardOrderTypes, type ValidAuthenticationCallback, type ValidatorString, escapeColumnName, insertObjectQuery, isValueNumber, logger, questionMarksToOrderedParams, restura, updateObjectQuery };
1519
+ export { type ApiMethod, type AsyncExpressApplication, type AuthenticateHandler, type AuthenticationUserDetails, type ConjunctionTypes, type DynamicObject, type ErrorCode, HtmlStatusCodes, type LoginDetails, type MatchTypes, type PageQuery, PsqlConnection, PsqlPool, PsqlTransaction, type RequesterDetails, type ResponseType, type ResponseTypeMap, RsError, type RsErrorData, type RsErrorInternalData, type RsHeaders, type RsPagedResponseData, type RsRequest, type RsResponse, type RsResponseData, type RsRouteHandler, SQL, type SchemaChangeValue, type SchemaPreview, type StandardOrderTypes, type ValidAuthenticationCallback, type ValidatorString, escapeColumnName, insertObjectQuery, isValueNumber, logger, questionMarksToOrderedParams, restura, updateObjectQuery };
package/dist/index.d.ts CHANGED
@@ -1,7 +1,7 @@
1
1
  import winston from 'winston';
2
2
  import * as express from 'express';
3
3
  import { z } from 'zod';
4
- import { PoolConfig, Pool } from 'pg';
4
+ import { QueryResultRow, QueryConfigValues, QueryResult, PoolConfig, Pool, ClientConfig, Client } from 'pg';
5
5
  import { IncomingHttpHeaders } from 'http2';
6
6
 
7
7
  declare const logger: winston.Logger;
@@ -62,7 +62,7 @@ declare const resturaZodSchema: z.ZodObject<{
62
62
  name: z.ZodString;
63
63
  columns: z.ZodArray<z.ZodObject<{
64
64
  name: z.ZodString;
65
- type: z.ZodUnion<[z.ZodEnum<["SMALLINT", "INTEGER", "BIGINT", "DECIMAL", "NUMERIC", "REAL", "DOUBLE PRECISION", "SERIAL", "BIGSERIAL"]>, z.ZodEnum<["CHAR", "VARCHAR", "TEXT", "BYTEA"]>, z.ZodEnum<["DATE", "TIMESTAMP", "TIMESTAMPTZ", "TIME", "INTERVAL"]>, z.ZodEnum<["BOOLEAN", "TINYINT", "SMALLINT", "MEDIUMINT", "INTEGER", "BIGINT", "DECIMAL", "FLOAT", "DOUBLE"]>, z.ZodEnum<["CHAR", "VARCHAR", "TINYTEXT", "TINYBLOB", "TEXT", "BLOB", "MEDIUMTEXT", "MEDIUMBLOB", "LONGTEXT", "JSON", "LONGBLOB", "ENUM"]>, z.ZodEnum<["DATE", "DATETIME", "TIME", "TIMESTAMP"]>]>;
65
+ type: z.ZodUnion<[z.ZodEnum<["SMALLINT", "INTEGER", "BIGINT", "DECIMAL", "NUMERIC", "REAL", "DOUBLE PRECISION", "SERIAL", "BIGSERIAL"]>, z.ZodEnum<["CHAR", "VARCHAR", "TEXT", "BYTEA"]>, z.ZodEnum<["DATE", "TIMESTAMP", "TIMESTAMPTZ", "TIME", "INTERVAL"]>, z.ZodEnum<["JSON", "JSONB"]>, z.ZodEnum<["BOOLEAN", "TINYINT", "SMALLINT", "MEDIUMINT", "INTEGER", "BIGINT", "DECIMAL", "FLOAT", "DOUBLE"]>, z.ZodEnum<["CHAR", "VARCHAR", "TINYTEXT", "TINYBLOB", "TEXT", "BLOB", "MEDIUMTEXT", "MEDIUMBLOB", "LONGTEXT", "JSON", "LONGBLOB", "ENUM"]>, z.ZodEnum<["DATE", "DATETIME", "TIME", "TIMESTAMP"]>]>;
66
66
  isNullable: z.ZodBoolean;
67
67
  roles: z.ZodArray<z.ZodString, "many">;
68
68
  comment: z.ZodOptional<z.ZodString>;
@@ -73,7 +73,7 @@ declare const resturaZodSchema: z.ZodObject<{
73
73
  hasAutoIncrement: z.ZodOptional<z.ZodBoolean>;
74
74
  length: z.ZodOptional<z.ZodNumber>;
75
75
  }, "strict", z.ZodTypeAny, {
76
- type: "SMALLINT" | "INTEGER" | "BIGINT" | "DECIMAL" | "NUMERIC" | "REAL" | "DOUBLE PRECISION" | "SERIAL" | "BIGSERIAL" | "CHAR" | "VARCHAR" | "TEXT" | "BYTEA" | "DATE" | "TIMESTAMP" | "TIMESTAMPTZ" | "TIME" | "INTERVAL" | "BOOLEAN" | "TINYINT" | "MEDIUMINT" | "FLOAT" | "DOUBLE" | "TINYTEXT" | "TINYBLOB" | "BLOB" | "MEDIUMTEXT" | "MEDIUMBLOB" | "LONGTEXT" | "JSON" | "LONGBLOB" | "ENUM" | "DATETIME";
76
+ type: "SMALLINT" | "INTEGER" | "BIGINT" | "DECIMAL" | "NUMERIC" | "REAL" | "DOUBLE PRECISION" | "SERIAL" | "BIGSERIAL" | "CHAR" | "VARCHAR" | "TEXT" | "BYTEA" | "DATE" | "TIMESTAMP" | "TIMESTAMPTZ" | "TIME" | "INTERVAL" | "JSON" | "JSONB" | "BOOLEAN" | "TINYINT" | "MEDIUMINT" | "FLOAT" | "DOUBLE" | "TINYTEXT" | "TINYBLOB" | "BLOB" | "MEDIUMTEXT" | "MEDIUMBLOB" | "LONGTEXT" | "LONGBLOB" | "ENUM" | "DATETIME";
77
77
  name: string;
78
78
  isNullable: boolean;
79
79
  roles: string[];
@@ -85,7 +85,7 @@ declare const resturaZodSchema: z.ZodObject<{
85
85
  isUnique?: boolean | undefined;
86
86
  hasAutoIncrement?: boolean | undefined;
87
87
  }, {
88
- type: "SMALLINT" | "INTEGER" | "BIGINT" | "DECIMAL" | "NUMERIC" | "REAL" | "DOUBLE PRECISION" | "SERIAL" | "BIGSERIAL" | "CHAR" | "VARCHAR" | "TEXT" | "BYTEA" | "DATE" | "TIMESTAMP" | "TIMESTAMPTZ" | "TIME" | "INTERVAL" | "BOOLEAN" | "TINYINT" | "MEDIUMINT" | "FLOAT" | "DOUBLE" | "TINYTEXT" | "TINYBLOB" | "BLOB" | "MEDIUMTEXT" | "MEDIUMBLOB" | "LONGTEXT" | "JSON" | "LONGBLOB" | "ENUM" | "DATETIME";
88
+ type: "SMALLINT" | "INTEGER" | "BIGINT" | "DECIMAL" | "NUMERIC" | "REAL" | "DOUBLE PRECISION" | "SERIAL" | "BIGSERIAL" | "CHAR" | "VARCHAR" | "TEXT" | "BYTEA" | "DATE" | "TIMESTAMP" | "TIMESTAMPTZ" | "TIME" | "INTERVAL" | "JSON" | "JSONB" | "BOOLEAN" | "TINYINT" | "MEDIUMINT" | "FLOAT" | "DOUBLE" | "TINYTEXT" | "TINYBLOB" | "BLOB" | "MEDIUMTEXT" | "MEDIUMBLOB" | "LONGTEXT" | "LONGBLOB" | "ENUM" | "DATETIME";
89
89
  name: string;
90
90
  isNullable: boolean;
91
91
  roles: string[];
@@ -153,7 +153,7 @@ declare const resturaZodSchema: z.ZodObject<{
153
153
  name: string;
154
154
  roles: string[];
155
155
  columns: {
156
- type: "SMALLINT" | "INTEGER" | "BIGINT" | "DECIMAL" | "NUMERIC" | "REAL" | "DOUBLE PRECISION" | "SERIAL" | "BIGSERIAL" | "CHAR" | "VARCHAR" | "TEXT" | "BYTEA" | "DATE" | "TIMESTAMP" | "TIMESTAMPTZ" | "TIME" | "INTERVAL" | "BOOLEAN" | "TINYINT" | "MEDIUMINT" | "FLOAT" | "DOUBLE" | "TINYTEXT" | "TINYBLOB" | "BLOB" | "MEDIUMTEXT" | "MEDIUMBLOB" | "LONGTEXT" | "JSON" | "LONGBLOB" | "ENUM" | "DATETIME";
156
+ type: "SMALLINT" | "INTEGER" | "BIGINT" | "DECIMAL" | "NUMERIC" | "REAL" | "DOUBLE PRECISION" | "SERIAL" | "BIGSERIAL" | "CHAR" | "VARCHAR" | "TEXT" | "BYTEA" | "DATE" | "TIMESTAMP" | "TIMESTAMPTZ" | "TIME" | "INTERVAL" | "JSON" | "JSONB" | "BOOLEAN" | "TINYINT" | "MEDIUMINT" | "FLOAT" | "DOUBLE" | "TINYTEXT" | "TINYBLOB" | "BLOB" | "MEDIUMTEXT" | "MEDIUMBLOB" | "LONGTEXT" | "LONGBLOB" | "ENUM" | "DATETIME";
157
157
  name: string;
158
158
  isNullable: boolean;
159
159
  roles: string[];
@@ -188,7 +188,7 @@ declare const resturaZodSchema: z.ZodObject<{
188
188
  name: string;
189
189
  roles: string[];
190
190
  columns: {
191
- type: "SMALLINT" | "INTEGER" | "BIGINT" | "DECIMAL" | "NUMERIC" | "REAL" | "DOUBLE PRECISION" | "SERIAL" | "BIGSERIAL" | "CHAR" | "VARCHAR" | "TEXT" | "BYTEA" | "DATE" | "TIMESTAMP" | "TIMESTAMPTZ" | "TIME" | "INTERVAL" | "BOOLEAN" | "TINYINT" | "MEDIUMINT" | "FLOAT" | "DOUBLE" | "TINYTEXT" | "TINYBLOB" | "BLOB" | "MEDIUMTEXT" | "MEDIUMBLOB" | "LONGTEXT" | "JSON" | "LONGBLOB" | "ENUM" | "DATETIME";
191
+ type: "SMALLINT" | "INTEGER" | "BIGINT" | "DECIMAL" | "NUMERIC" | "REAL" | "DOUBLE PRECISION" | "SERIAL" | "BIGSERIAL" | "CHAR" | "VARCHAR" | "TEXT" | "BYTEA" | "DATE" | "TIMESTAMP" | "TIMESTAMPTZ" | "TIME" | "INTERVAL" | "JSON" | "JSONB" | "BOOLEAN" | "TINYINT" | "MEDIUMINT" | "FLOAT" | "DOUBLE" | "TINYTEXT" | "TINYBLOB" | "BLOB" | "MEDIUMTEXT" | "MEDIUMBLOB" | "LONGTEXT" | "LONGBLOB" | "ENUM" | "DATETIME";
192
192
  name: string;
193
193
  isNullable: boolean;
194
194
  roles: string[];
@@ -290,7 +290,7 @@ declare const resturaZodSchema: z.ZodObject<{
290
290
  request: z.ZodArray<z.ZodObject<{
291
291
  name: z.ZodString;
292
292
  required: z.ZodBoolean;
293
- isNullable: z.ZodDefault<z.ZodOptional<z.ZodBoolean>>;
293
+ isNullable: z.ZodOptional<z.ZodBoolean>;
294
294
  validator: z.ZodArray<z.ZodObject<{
295
295
  type: z.ZodEnum<["TYPE_CHECK", "MIN", "MAX", "ONE_OF"]>;
296
296
  value: z.ZodUnion<[z.ZodString, z.ZodArray<z.ZodString, "many">, z.ZodNumber, z.ZodArray<z.ZodNumber, "many">]>;
@@ -304,11 +304,11 @@ declare const resturaZodSchema: z.ZodObject<{
304
304
  }, "strict", z.ZodTypeAny, {
305
305
  name: string;
306
306
  required: boolean;
307
- isNullable: boolean;
308
307
  validator: {
309
308
  type: "TYPE_CHECK" | "MIN" | "MAX" | "ONE_OF";
310
309
  value: string | number | string[] | number[];
311
310
  }[];
311
+ isNullable?: boolean | undefined;
312
312
  }, {
313
313
  name: string;
314
314
  required: boolean;
@@ -567,11 +567,11 @@ declare const resturaZodSchema: z.ZodObject<{
567
567
  request: {
568
568
  name: string;
569
569
  required: boolean;
570
- isNullable: boolean;
571
570
  validator: {
572
571
  type: "TYPE_CHECK" | "MIN" | "MAX" | "ONE_OF";
573
572
  value: string | number | string[] | number[];
574
573
  }[];
574
+ isNullable?: boolean | undefined;
575
575
  }[];
576
576
  response: {
577
577
  name: string;
@@ -707,7 +707,7 @@ declare const resturaZodSchema: z.ZodObject<{
707
707
  request: z.ZodOptional<z.ZodArray<z.ZodObject<{
708
708
  name: z.ZodString;
709
709
  required: z.ZodBoolean;
710
- isNullable: z.ZodDefault<z.ZodOptional<z.ZodBoolean>>;
710
+ isNullable: z.ZodOptional<z.ZodBoolean>;
711
711
  validator: z.ZodArray<z.ZodObject<{
712
712
  type: z.ZodEnum<["TYPE_CHECK", "MIN", "MAX", "ONE_OF"]>;
713
713
  value: z.ZodUnion<[z.ZodString, z.ZodArray<z.ZodString, "many">, z.ZodNumber, z.ZodArray<z.ZodNumber, "many">]>;
@@ -721,11 +721,11 @@ declare const resturaZodSchema: z.ZodObject<{
721
721
  }, "strict", z.ZodTypeAny, {
722
722
  name: string;
723
723
  required: boolean;
724
- isNullable: boolean;
725
724
  validator: {
726
725
  type: "TYPE_CHECK" | "MIN" | "MAX" | "ONE_OF";
727
726
  value: string | number | string[] | number[];
728
727
  }[];
728
+ isNullable?: boolean | undefined;
729
729
  }, {
730
730
  name: string;
731
731
  required: boolean;
@@ -753,11 +753,11 @@ declare const resturaZodSchema: z.ZodObject<{
753
753
  request?: {
754
754
  name: string;
755
755
  required: boolean;
756
- isNullable: boolean;
757
756
  validator: {
758
757
  type: "TYPE_CHECK" | "MIN" | "MAX" | "ONE_OF";
759
758
  value: string | number | string[] | number[];
760
759
  }[];
760
+ isNullable?: boolean | undefined;
761
761
  }[] | undefined;
762
762
  requestType?: string | undefined;
763
763
  fileUploadType?: "SINGLE" | "MULTIPLE" | undefined;
@@ -819,11 +819,11 @@ declare const resturaZodSchema: z.ZodObject<{
819
819
  request: {
820
820
  name: string;
821
821
  required: boolean;
822
- isNullable: boolean;
823
822
  validator: {
824
823
  type: "TYPE_CHECK" | "MIN" | "MAX" | "ONE_OF";
825
824
  value: string | number | string[] | number[];
826
825
  }[];
826
+ isNullable?: boolean | undefined;
827
827
  }[];
828
828
  response: {
829
829
  name: string;
@@ -881,11 +881,11 @@ declare const resturaZodSchema: z.ZodObject<{
881
881
  request?: {
882
882
  name: string;
883
883
  required: boolean;
884
- isNullable: boolean;
885
884
  validator: {
886
885
  type: "TYPE_CHECK" | "MIN" | "MAX" | "ONE_OF";
887
886
  value: string | number | string[] | number[];
888
887
  }[];
888
+ isNullable?: boolean | undefined;
889
889
  }[] | undefined;
890
890
  requestType?: string | undefined;
891
891
  fileUploadType?: "SINGLE" | "MULTIPLE" | undefined;
@@ -1006,7 +1006,7 @@ declare const resturaZodSchema: z.ZodObject<{
1006
1006
  name: string;
1007
1007
  roles: string[];
1008
1008
  columns: {
1009
- type: "SMALLINT" | "INTEGER" | "BIGINT" | "DECIMAL" | "NUMERIC" | "REAL" | "DOUBLE PRECISION" | "SERIAL" | "BIGSERIAL" | "CHAR" | "VARCHAR" | "TEXT" | "BYTEA" | "DATE" | "TIMESTAMP" | "TIMESTAMPTZ" | "TIME" | "INTERVAL" | "BOOLEAN" | "TINYINT" | "MEDIUMINT" | "FLOAT" | "DOUBLE" | "TINYTEXT" | "TINYBLOB" | "BLOB" | "MEDIUMTEXT" | "MEDIUMBLOB" | "LONGTEXT" | "JSON" | "LONGBLOB" | "ENUM" | "DATETIME";
1009
+ type: "SMALLINT" | "INTEGER" | "BIGINT" | "DECIMAL" | "NUMERIC" | "REAL" | "DOUBLE PRECISION" | "SERIAL" | "BIGSERIAL" | "CHAR" | "VARCHAR" | "TEXT" | "BYTEA" | "DATE" | "TIMESTAMP" | "TIMESTAMPTZ" | "TIME" | "INTERVAL" | "JSON" | "JSONB" | "BOOLEAN" | "TINYINT" | "MEDIUMINT" | "FLOAT" | "DOUBLE" | "TINYTEXT" | "TINYBLOB" | "BLOB" | "MEDIUMTEXT" | "MEDIUMBLOB" | "LONGTEXT" | "LONGBLOB" | "ENUM" | "DATETIME";
1010
1010
  name: string;
1011
1011
  isNullable: boolean;
1012
1012
  roles: string[];
@@ -1073,11 +1073,11 @@ declare const resturaZodSchema: z.ZodObject<{
1073
1073
  request: {
1074
1074
  name: string;
1075
1075
  required: boolean;
1076
- isNullable: boolean;
1077
1076
  validator: {
1078
1077
  type: "TYPE_CHECK" | "MIN" | "MAX" | "ONE_OF";
1079
1078
  value: string | number | string[] | number[];
1080
1079
  }[];
1080
+ isNullable?: boolean | undefined;
1081
1081
  }[];
1082
1082
  response: {
1083
1083
  name: string;
@@ -1135,11 +1135,11 @@ declare const resturaZodSchema: z.ZodObject<{
1135
1135
  request?: {
1136
1136
  name: string;
1137
1137
  required: boolean;
1138
- isNullable: boolean;
1139
1138
  validator: {
1140
1139
  type: "TYPE_CHECK" | "MIN" | "MAX" | "ONE_OF";
1141
1140
  value: string | number | string[] | number[];
1142
1141
  }[];
1142
+ isNullable?: boolean | undefined;
1143
1143
  }[] | undefined;
1144
1144
  requestType?: string | undefined;
1145
1145
  fileUploadType?: "SINGLE" | "MULTIPLE" | undefined;
@@ -1153,7 +1153,7 @@ declare const resturaZodSchema: z.ZodObject<{
1153
1153
  name: string;
1154
1154
  roles: string[];
1155
1155
  columns: {
1156
- type: "SMALLINT" | "INTEGER" | "BIGINT" | "DECIMAL" | "NUMERIC" | "REAL" | "DOUBLE PRECISION" | "SERIAL" | "BIGSERIAL" | "CHAR" | "VARCHAR" | "TEXT" | "BYTEA" | "DATE" | "TIMESTAMP" | "TIMESTAMPTZ" | "TIME" | "INTERVAL" | "BOOLEAN" | "TINYINT" | "MEDIUMINT" | "FLOAT" | "DOUBLE" | "TINYTEXT" | "TINYBLOB" | "BLOB" | "MEDIUMTEXT" | "MEDIUMBLOB" | "LONGTEXT" | "JSON" | "LONGBLOB" | "ENUM" | "DATETIME";
1156
+ type: "SMALLINT" | "INTEGER" | "BIGINT" | "DECIMAL" | "NUMERIC" | "REAL" | "DOUBLE PRECISION" | "SERIAL" | "BIGSERIAL" | "CHAR" | "VARCHAR" | "TEXT" | "BYTEA" | "DATE" | "TIMESTAMP" | "TIMESTAMPTZ" | "TIME" | "INTERVAL" | "JSON" | "JSONB" | "BOOLEAN" | "TINYINT" | "MEDIUMINT" | "FLOAT" | "DOUBLE" | "TINYTEXT" | "TINYBLOB" | "BLOB" | "MEDIUMTEXT" | "MEDIUMBLOB" | "LONGTEXT" | "LONGBLOB" | "ENUM" | "DATETIME";
1157
1157
  name: string;
1158
1158
  isNullable: boolean;
1159
1159
  roles: string[];
@@ -1391,13 +1391,31 @@ interface AsyncExpressApplication {
1391
1391
  delete: (url: string, handler: RsRouteHandler, nextFunction?: RsRouteHandler) => Promise<void> | void;
1392
1392
  }
1393
1393
 
1394
- declare class PsqlPool {
1394
+ declare abstract class PsqlConnection {
1395
+ constructor();
1396
+ protected abstract query<R extends QueryResultRow = QueryResultRow, T extends Array<unknown> = unknown[]>(query: string, values?: QueryConfigValues<T>): Promise<QueryResult<R>>;
1397
+ queryOne(query: string, options: any[], requesterDetails: RequesterDetails): Promise<QueryResultRow>;
1398
+ runQuery(query: string, options: any[], requesterDetails: RequesterDetails): Promise<QueryResultRow[]>;
1399
+ private logSqlStatement;
1400
+ }
1401
+
1402
+ declare class PsqlPool extends PsqlConnection {
1395
1403
  poolConfig: PoolConfig;
1396
1404
  pool: Pool;
1397
1405
  constructor(poolConfig: PoolConfig);
1398
- queryOne(query: string, options: any[], requesterDetails: RequesterDetails): Promise<any>;
1399
- runQuery(query: string, options: any[], requesterDetails: RequesterDetails): Promise<any[]>;
1400
- private logSqlStatement;
1406
+ protected query<R extends QueryResultRow = QueryResultRow, T extends Array<unknown> = unknown[]>(query: string, values?: QueryConfigValues<T>): Promise<QueryResult<R>>;
1407
+ }
1408
+
1409
+ declare class PsqlTransaction extends PsqlConnection {
1410
+ clientConfig: ClientConfig;
1411
+ client: Client;
1412
+ private beginTransactionPromise;
1413
+ constructor(clientConfig: ClientConfig);
1414
+ private beginTransaction;
1415
+ rollback(): Promise<QueryResult<QueryResultRow>>;
1416
+ commit(): Promise<QueryResult<QueryResultRow>>;
1417
+ release(): Promise<void>;
1418
+ protected query<R extends QueryResultRow = QueryResultRow, T extends Array<unknown> = unknown[]>(query: string, values?: QueryConfigValues<T>): Promise<QueryResult<R>>;
1401
1419
  }
1402
1420
 
1403
1421
  declare class ResturaEngine {
@@ -1498,4 +1516,4 @@ declare function updateObjectQuery(table: string, obj: DynamicObject, whereState
1498
1516
  declare function isValueNumber(value: unknown): value is number;
1499
1517
  declare function SQL(strings: any, ...values: any): any;
1500
1518
 
1501
- export { type ApiMethod, type AsyncExpressApplication, type AuthenticateHandler, type AuthenticationUserDetails, type ConjunctionTypes, type DynamicObject, type ErrorCode, HtmlStatusCodes, type LoginDetails, type MatchTypes, type PageQuery, PsqlPool, type RequesterDetails, type ResponseType, type ResponseTypeMap, RsError, type RsErrorData, type RsErrorInternalData, type RsHeaders, type RsPagedResponseData, type RsRequest, type RsResponse, type RsResponseData, type RsRouteHandler, SQL, type SchemaChangeValue, type SchemaPreview, type StandardOrderTypes, type ValidAuthenticationCallback, type ValidatorString, escapeColumnName, insertObjectQuery, isValueNumber, logger, questionMarksToOrderedParams, restura, updateObjectQuery };
1519
+ export { type ApiMethod, type AsyncExpressApplication, type AuthenticateHandler, type AuthenticationUserDetails, type ConjunctionTypes, type DynamicObject, type ErrorCode, HtmlStatusCodes, type LoginDetails, type MatchTypes, type PageQuery, PsqlConnection, PsqlPool, PsqlTransaction, type RequesterDetails, type ResponseType, type ResponseTypeMap, RsError, type RsErrorData, type RsErrorInternalData, type RsHeaders, type RsPagedResponseData, type RsRequest, type RsResponse, type RsResponseData, type RsRouteHandler, SQL, type SchemaChangeValue, type SchemaPreview, type StandardOrderTypes, type ValidAuthenticationCallback, type ValidatorString, escapeColumnName, insertObjectQuery, isValueNumber, logger, questionMarksToOrderedParams, restura, updateObjectQuery };