prostgles-server 4.2.105 → 4.2.107

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (64) hide show
  1. package/dist/DBSchemaBuilder.d.ts +3 -3
  2. package/dist/DBSchemaBuilder.d.ts.map +1 -1
  3. package/dist/index.d.ts.map +1 -1
  4. package/dist/index.js +2 -0
  5. package/dist/index.js.map +1 -1
  6. package/dist/initProstgles.d.ts +1 -1
  7. package/dist/initProstgles.d.ts.map +1 -1
  8. package/dist/initProstgles.js +5 -0
  9. package/dist/initProstgles.js.map +1 -1
  10. package/dist/typeTests/dboTypeCheck.d.ts +2 -0
  11. package/dist/typeTests/dboTypeCheck.d.ts.map +1 -0
  12. package/dist/typeTests/dboTypeCheck.js +54 -0
  13. package/dist/typeTests/dboTypeCheck.js.map +1 -0
  14. package/lib/DBSchemaBuilder.ts +4 -4
  15. package/lib/index.ts +3 -0
  16. package/lib/initProstgles.ts +6 -1
  17. package/lib/typeTests/DBoGenerated.d.ts +320 -0
  18. package/lib/typeTests/dboTypeCheck.ts +81 -0
  19. package/package.json +1 -1
  20. package/tests/server/index.ts +0 -11
  21. package/tests/server/package-lock.json +1 -1
  22. package/dist/DboBuilder/QueryBuilder/prepareHaving.d.ts +0 -11
  23. package/dist/DboBuilder/QueryBuilder/prepareHaving.d.ts.map +0 -1
  24. package/dist/DboBuilder/QueryBuilder/prepareHaving.js +0 -18
  25. package/dist/DboBuilder/QueryBuilder/prepareHaving.js.map +0 -1
  26. package/dist/DboBuilder/ViewHandler/ColSet.d.ts +0 -16
  27. package/dist/DboBuilder/ViewHandler/ColSet.d.ts.map +0 -1
  28. package/dist/DboBuilder/ViewHandler/ColSet.js +0 -105
  29. package/dist/DboBuilder/ViewHandler/ColSet.js.map +0 -1
  30. package/dist/DboBuilder/find.d.ts +0 -18
  31. package/dist/DboBuilder/find.d.ts.map +0 -1
  32. package/dist/DboBuilder/find.js +0 -121
  33. package/dist/DboBuilder/find.js.map +0 -1
  34. package/dist/DboBuilder/insertDataParse.d.ts +0 -27
  35. package/dist/DboBuilder/insertDataParse.d.ts.map +0 -1
  36. package/dist/DboBuilder/insertDataParse.js +0 -275
  37. package/dist/DboBuilder/insertDataParse.js.map +0 -1
  38. package/dist/DboBuilder/parseMediaOrNestedInsert.d.ts +0 -29
  39. package/dist/DboBuilder/parseMediaOrNestedInsert.d.ts.map +0 -1
  40. package/dist/DboBuilder/parseMediaOrNestedInsert.js +0 -271
  41. package/dist/DboBuilder/parseMediaOrNestedInsert.js.map +0 -1
  42. package/dist/DboBuilder/subscribe.d.ts +0 -20
  43. package/dist/DboBuilder/subscribe.d.ts.map +0 -1
  44. package/dist/DboBuilder/subscribe.js +0 -96
  45. package/dist/DboBuilder/subscribe.js.map +0 -1
  46. package/dist/DboBuilder.d.ts +0 -324
  47. package/dist/DboBuilder.d.ts.map +0 -1
  48. package/dist/DboBuilder.js +0 -345
  49. package/dist/DboBuilder.js.map +0 -1
  50. package/dist/PubSubManager/getInitQuery.d.ts +0 -13
  51. package/dist/PubSubManager/getInitQuery.d.ts.map +0 -1
  52. package/dist/PubSubManager/getInitQuery.js +0 -616
  53. package/dist/PubSubManager/getInitQuery.js.map +0 -1
  54. package/dist/SchemaWatch/SCHEMA_WATCH_QUERIES.d.ts +0 -2
  55. package/dist/SchemaWatch/SCHEMA_WATCH_QUERIES.d.ts.map +0 -1
  56. package/dist/SchemaWatch/SCHEMA_WATCH_QUERIES.js +0 -53
  57. package/dist/SchemaWatch/SCHEMA_WATCH_QUERIES.js.map +0 -1
  58. package/dist/SchemaWatch.d.ts +0 -30
  59. package/dist/SchemaWatch.d.ts.map +0 -1
  60. package/dist/SchemaWatch.js +0 -127
  61. package/dist/SchemaWatch.js.map +0 -1
  62. package/dist/my.d copy.ts +0 -1020
  63. package/dist/my.d.ts +0 -1655
  64. package/tests/server/dboTypeCheck.ts +0 -34
@@ -1,20 +0,0 @@
1
- import { AnyObject, SubscribeParams, SubscriptionChannels } from "prostgles-types";
2
- import { TableRule } from "../../PublishParser/PublishParser";
3
- import { Filter, LocalParams } from "../DboBuilder";
4
- import { ViewHandler } from "./ViewHandler";
5
- type OnData = (items: AnyObject[]) => any;
6
- export type LocalFuncs = {
7
- onData: OnData;
8
- onError?: (error: any) => void;
9
- } | OnData;
10
- export declare const getOnDataFunc: (localFuncs: LocalFuncs | undefined) => Function | undefined;
11
- export declare const matchesLocalFuncs: (localFuncs1: LocalFuncs | undefined, localFuncs2: LocalFuncs | undefined) => boolean | undefined;
12
- export declare const parseLocalFuncs: (localFuncs1: LocalFuncs | undefined) => Extract<LocalFuncs, {
13
- onData: OnData;
14
- }> | undefined;
15
- declare function subscribe(this: ViewHandler, filter: Filter, params: SubscribeParams, localFuncs: LocalFuncs): Promise<{
16
- unsubscribe: () => any;
17
- }>;
18
- declare function subscribe(this: ViewHandler, filter: Filter, params: SubscribeParams, localFuncs: undefined, table_rules: TableRule | undefined, localParams: LocalParams): Promise<SubscriptionChannels>;
19
- export { subscribe };
20
- //# sourceMappingURL=subscribe.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"subscribe.d.ts","sourceRoot":"","sources":["../../lib/DboBuilder/subscribe.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,eAAe,EAAE,oBAAoB,EAAE,MAAM,iBAAiB,CAAC;AACnF,OAAO,EAAE,SAAS,EAAE,MAAM,gCAAgC,CAAC;AAC3D,OAAO,EAAE,MAAM,EAAE,WAAW,EAAc,MAAM,cAAc,CAAC;AAE/D,OAAO,EAAE,WAAW,EAAE,MAAM,2BAA2B,CAAC;AAGxD,KAAK,MAAM,GAAG,CAAC,KAAK,EAAE,SAAS,EAAE,KAAK,GAAG,CAAC;AAC1C,MAAM,MAAM,UAAU,GAAG;IACvB,MAAM,EAAE,MAAM,CAAA;IACd,OAAO,CAAC,EAAE,CAAC,KAAK,EAAE,GAAG,KAAK,IAAI,CAAC;CAChC,GAAG,MAAM,CAAC;AAEX,eAAO,MAAM,aAAa,eAAgB,UAAU,GAAG,SAAS,KAAG,QAAQ,GAAG,SAE7E,CAAA;AACD,eAAO,MAAM,iBAAiB,gBAAiB,UAAU,GAAG,SAAS,eAAe,UAAU,GAAG,SAAS,wBAEzG,CAAA;AACD,eAAO,MAAM,eAAe,gBAAiB,UAAU,GAAG,SAAS,KAAG,QAAQ,UAAU,EAAE;IAAE,MAAM,EAAE,MAAM,CAAA;CAAE,CAAC,GAAG,SAI/G,CAAA;AAED,iBAAe,SAAS,CAAC,IAAI,EAAE,WAAW,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,eAAe,EAAE,UAAU,EAAE,UAAU,GAAG,OAAO,CAAC;IAAE,WAAW,EAAE,MAAM,GAAG,CAAA;CAAE,CAAC,CAAA;AACjJ,iBAAe,SAAS,CAAC,IAAI,EAAE,WAAW,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,eAAe,EAAE,UAAU,EAAE,SAAS,EAAE,WAAW,EAAE,SAAS,GAAG,SAAS,EAAE,WAAW,EAAE,WAAW,GAAG,OAAO,CAAC,oBAAoB,CAAC,CAAA;AAuFxM,OAAO,EAAE,SAAS,EAAE,CAAC"}
@@ -1,96 +0,0 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.subscribe = exports.parseLocalFuncs = exports.matchesLocalFuncs = exports.getOnDataFunc = void 0;
4
- const DboBuilder_1 = require("./DboBuilder");
5
- const getSubscribeRelatedTables_1 = require("./getSubscribeRelatedTables");
6
- const getOnDataFunc = (localFuncs) => {
7
- return typeof localFuncs === "function" ? localFuncs : localFuncs?.onData;
8
- };
9
- exports.getOnDataFunc = getOnDataFunc;
10
- const matchesLocalFuncs = (localFuncs1, localFuncs2) => {
11
- return localFuncs1 && localFuncs2 && (0, exports.getOnDataFunc)(localFuncs1) === (0, exports.getOnDataFunc)(localFuncs2);
12
- };
13
- exports.matchesLocalFuncs = matchesLocalFuncs;
14
- const parseLocalFuncs = (localFuncs1) => {
15
- return !localFuncs1 ? undefined : typeof localFuncs1 === "function" ? {
16
- onData: localFuncs1
17
- } : localFuncs1;
18
- };
19
- exports.parseLocalFuncs = parseLocalFuncs;
20
- async function subscribe(filter, params, localFuncs, table_rules, localParams) {
21
- try {
22
- await this._log({ command: "subscribe", localParams, data: { filter, params } });
23
- if (this.tx) {
24
- throw "subscribe not allowed within transactions";
25
- }
26
- if (!localParams && !localFuncs) {
27
- throw " missing data. provide -> localFunc | localParams { socket } ";
28
- }
29
- if (localParams?.socket && localFuncs) {
30
- console.error({ localParams, localFuncs });
31
- throw " Cannot have localFunc AND socket ";
32
- }
33
- const { throttle = 0, throttleOpts, ...selectParams } = params;
34
- /** Ensure request is valid */
35
- await this.find(filter, { ...selectParams, limit: 0 }, undefined, table_rules, localParams);
36
- /** app_triggers condition field has an index which limits it's value.
37
- * TODO: use condition md5 hash
38
- * */
39
- const filterSize = JSON.stringify(filter || {}).length;
40
- if (filterSize * 4 > 2704) {
41
- throw "filter too big. Might exceed the btree version 4 maximum 2704. Use a primary key or a $rowhash filter instead";
42
- }
43
- if (!this.dboBuilder.prostgles.isSuperUser) {
44
- throw "Subscribe not possible. Must be superuser to add triggers 1856";
45
- }
46
- const newQuery = await this.find(filter, { ...selectParams, limit: 0 }, undefined, table_rules, { ...localParams, returnNewQuery: true });
47
- const viewOptions = await getSubscribeRelatedTables_1.getSubscribeRelatedTables.bind(this)({
48
- filter, selectParams,
49
- table_rules, localParams,
50
- newQuery
51
- });
52
- const commonSubOpts = {
53
- table_info: this.tableOrViewInfo,
54
- viewOptions,
55
- table_rules,
56
- condition: newQuery.whereOpts.condition,
57
- table_name: this.name,
58
- filter: { ...filter },
59
- params: { ...selectParams },
60
- throttle,
61
- throttleOpts,
62
- last_throttled: 0,
63
- };
64
- const pubSubManager = await this.dboBuilder.getPubSubManager();
65
- if (!localFuncs) {
66
- const { socket } = localParams ?? {};
67
- return pubSubManager.addSub({
68
- ...commonSubOpts,
69
- socket,
70
- localFuncs: undefined,
71
- socket_id: socket?.id,
72
- });
73
- }
74
- else {
75
- const { channelName } = await pubSubManager.addSub({
76
- ...commonSubOpts,
77
- socket: undefined,
78
- localFuncs,
79
- socket_id: undefined,
80
- });
81
- const unsubscribe = async () => {
82
- const pubSubManager = await this.dboBuilder.getPubSubManager();
83
- pubSubManager.removeLocalSub(channelName, localFuncs);
84
- };
85
- const res = Object.freeze({ unsubscribe });
86
- return res;
87
- }
88
- }
89
- catch (e) {
90
- if (localParams && localParams.testRule)
91
- throw e;
92
- throw (0, DboBuilder_1.parseError)(e, `dbo.${this.name}.subscribe()`);
93
- }
94
- }
95
- exports.subscribe = subscribe;
96
- //# sourceMappingURL=subscribe.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"subscribe.js","sourceRoot":"","sources":["../../lib/DboBuilder/subscribe.ts"],"names":[],"mappings":"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"}
@@ -1,324 +0,0 @@
1
- import { QueryStreamer } from "./DboBuilder/QueryStreamer";
2
- import * as pgPromise from 'pg-promise';
3
- import { AnyObject, ColumnInfo, DbJoinMaker, EXISTS_KEY, PG_COLUMN_UDT_DATA_TYPE, ProstglesError, RawJoinPath, SQLHandler, SQLOptions, TableInfo as TInfo, TS_PG_Types } from "prostgles-types";
4
- import pg = require('pg-promise/typescript/pg-subset');
5
- export type SortItem = {
6
- asc: boolean;
7
- nulls?: "first" | "last";
8
- nullEmpty?: boolean;
9
- key: string;
10
- nested?: {
11
- table: string;
12
- selectItemAlias: string;
13
- isNumeric: boolean;
14
- wrapperQuerySortItem: string;
15
- joinAlias: string;
16
- };
17
- } & ({
18
- type: "query";
19
- fieldQuery: string;
20
- } | {
21
- type: "position";
22
- fieldPosition: number;
23
- });
24
- export type Media = {
25
- id?: string;
26
- title?: string;
27
- extension?: string;
28
- content_type?: string;
29
- content_length?: number;
30
- url?: string;
31
- added?: Date;
32
- signed_url?: string;
33
- signed_url_expires?: number;
34
- name?: string;
35
- original_name?: string;
36
- etag?: string;
37
- deleted?: string | null;
38
- deleted_from_storage?: string | null;
39
- };
40
- export type ParsedMedia = Required<Pick<Media, "extension" | "content_type">>;
41
- export type TxCB<TH = DbTxTableHandlers> = {
42
- (t: TH & Pick<DBHandlerServer, "sql">, _t: pgPromise.ITask<{}>): (any | void);
43
- };
44
- export type TX<TH = TableHandlers> = {
45
- (t: TxCB<TH>): Promise<(any | void)>;
46
- };
47
- export type TableHandlers = {
48
- [key: string]: Partial<TableHandler> | TableHandler;
49
- };
50
- export type DbTxTableHandlers = {
51
- [key: string]: Omit<Partial<TableHandler>, "dbTx"> | Omit<TableHandler, "dbTx">;
52
- };
53
- export type DBHandlerServer<TH = TableHandlers> = TH & Partial<DbJoinMaker> & {
54
- sql?: SQLHandler;
55
- } & {
56
- tx?: TX<TH>;
57
- };
58
- import { FieldSpec } from "./DboBuilder/QueryBuilder/Functions";
59
- import { JoinPaths, ViewHandler } from "./DboBuilder/ViewHandler/ViewHandler";
60
- import { DB, Join, Prostgles } from "./Prostgles";
61
- import { BasicCallback, PubSubManager } from "./PubSubManager/PubSubManager";
62
- import { PublishAllOrNothing, PublishParser } from "./PublishParser/PublishParser";
63
- type PGP = pgPromise.IMain<{}, pg.IClient>;
64
- export declare const pgp: PGP;
65
- export type TableInfo = TInfo & {
66
- schema: string;
67
- name: string;
68
- oid: number;
69
- comment: string;
70
- columns: ColumnInfo[];
71
- };
72
- export type ViewInfo = TableInfo & {
73
- parent_tables: string[];
74
- };
75
- export type TableOrViewInfo = TableInfo & ViewInfo & {
76
- is_view: boolean;
77
- };
78
- export type PRGLIOSocket = {
79
- readonly id: string;
80
- readonly handshake: {
81
- query?: Record<string, string | string[] | undefined>;
82
- /**
83
- * IP Address
84
- */
85
- address: string;
86
- headers?: AnyObject & {
87
- cookie?: string;
88
- };
89
- auth?: Record<string, any>;
90
- };
91
- readonly on: (channel: string, params: any, cb?: (err: any, res?: any) => void) => any;
92
- readonly emit: (channel: string, message?: any, cb?: BasicCallback) => any;
93
- readonly once: (channel: string, cb: (_data: any, cb: BasicCallback) => void) => void;
94
- readonly removeAllListeners: (channel: string) => void;
95
- readonly disconnect: () => void;
96
- readonly request: {
97
- url?: string;
98
- connection: {
99
- remoteAddress?: string;
100
- };
101
- };
102
- /** Used for session caching */
103
- __prglCache?: {
104
- session: BasicSession;
105
- user: UserLike;
106
- clientUser: AnyObject;
107
- };
108
- _user?: AnyObject;
109
- /** Used for publish error caching */
110
- prostgles?: AnyObject;
111
- };
112
- export type LocalParams = {
113
- httpReq?: ExpressReq;
114
- socket?: PRGLIOSocket;
115
- func?: () => any;
116
- isRemoteRequest?: {
117
- user?: UserLike | undefined;
118
- };
119
- testRule?: boolean;
120
- tableAlias?: string;
121
- tx?: {
122
- dbTX: TableHandlers;
123
- t: pgPromise.ITask<{}>;
124
- };
125
- returnQuery?: boolean | "noRLS" | "where-condition";
126
- returnNewQuery?: boolean;
127
- /** Used for count/size queries */
128
- bypassLimit?: boolean;
129
- nestedInsert?: {
130
- depth: number;
131
- previousData: AnyObject;
132
- previousTable: string;
133
- referencingColumn?: string;
134
- };
135
- };
136
- export declare function escapeTSNames(str: string, capitalize?: boolean): string;
137
- export type Aggregation = {
138
- field: string;
139
- query: string;
140
- alias: string;
141
- getQuery: (alias: string) => string;
142
- };
143
- export type Filter = AnyObject | {
144
- $and: Filter[];
145
- } | {
146
- $or: Filter[];
147
- };
148
- export type JoinInfo = {
149
- /**
150
- * If true then all joins involve unique columns and the result is a 1 to 1 join
151
- */
152
- expectOne?: boolean;
153
- paths: {
154
- /**
155
- * The table that JOIN ON columns refer to.
156
- * columns in index = 1 refer to this table. index = 0 columns refer to previous JoinInfo.table
157
- */
158
- table: string;
159
- /**
160
- * Source and target JOIN ON column groups for each existing constraint
161
- * Each inner array group will be combined with AND and outer arrays with OR to allow multiple references to the same table
162
- * e.g.: [[source_table_column: string, table_column: string]]
163
- */
164
- on: [string, string][][];
165
- /**
166
- * Source table name
167
- */
168
- source: string;
169
- /**
170
- * Target table name
171
- */
172
- target: string;
173
- }[];
174
- };
175
- import { Graph } from "./shortestPath";
176
- export type CommonTableRules = {
177
- /**
178
- * True by default. Allows clients to get column information on any columns that are allowed in (select, insert, update) field rules.
179
- */
180
- getColumns?: PublishAllOrNothing;
181
- /**
182
- * True by default. Allows clients to get table information (oid, comment, label, has_media).
183
- */
184
- getInfo?: PublishAllOrNothing;
185
- };
186
- export type ValidatedTableRules = CommonTableRules & {
187
- allColumns: FieldSpec[];
188
- select: {
189
- fields: string[];
190
- orderByFields: string[];
191
- filterFields: string[];
192
- forcedFilter: any;
193
- maxLimit: number | null;
194
- };
195
- update: {
196
- fields: string[];
197
- returningFields: string[];
198
- filterFields: string[];
199
- forcedFilter: any;
200
- forcedData: any;
201
- };
202
- insert: {
203
- fields: string[];
204
- returningFields: string[];
205
- forcedData: any;
206
- };
207
- delete: {
208
- filterFields: string[];
209
- forcedFilter: any;
210
- returningFields: string[];
211
- };
212
- };
213
- export declare function makeErrorFromPGError(err: any, localParams?: LocalParams, view?: ViewHandler, allowedKeys?: string[]): Promise<never>;
214
- /**
215
- * Ensure the error is a serializable Object
216
- */
217
- export declare function parseError(e: any, caller: string): ProstglesError;
218
- export type ExistsFilterConfig = {
219
- existType: EXISTS_KEY;
220
- /**
221
- * Target table filter. target table is the last table from tables
222
- */
223
- targetTableFilter: Filter;
224
- } & ({
225
- isJoined: true;
226
- /**
227
- * list of join tables in their order
228
- * If table path starts with "**" then get shortest join to first table
229
- * e.g.: "**.users" means finding the shortest join from root table to users table
230
- */
231
- path: RawJoinPath;
232
- parsedPath: ParsedJoinPath[];
233
- } | {
234
- isJoined: false;
235
- targetTable: string;
236
- });
237
- type OidInfo = {
238
- /**
239
- * Oid
240
- */
241
- relid: number;
242
- relname: string;
243
- schemaname: string;
244
- };
245
- type TableOidInfo = OidInfo & {
246
- pkey_columns: string[] | null;
247
- };
248
- type TableOidColumnInfo = OidInfo & {
249
- column_name: string;
250
- udt_name: string;
251
- ordinal_position: number;
252
- };
253
- import { BasicSession, ExpressReq, UserLike } from "./AuthHandler";
254
- import { TableHandler } from "./DboBuilder/TableHandler/TableHandler";
255
- import { ParsedJoinPath } from "./DboBuilder/ViewHandler/parseJoinPath";
256
- import { TableSchema } from "./DboBuilder/DboBuilderTypes";
257
- export declare class DboBuilder {
258
- tablesOrViews?: TableSchema[];
259
- /**
260
- * Used in obtaining column names for error messages
261
- */
262
- constraints?: PGConstraint[];
263
- db: DB;
264
- dbo: DBHandlerServer;
265
- _pubSubManager?: PubSubManager;
266
- /**
267
- * Used for db.sql field type details
268
- */
269
- DATA_TYPES: {
270
- oid: string;
271
- typname: PG_COLUMN_UDT_DATA_TYPE;
272
- }[] | undefined;
273
- USER_TABLES: TableOidInfo[] | undefined;
274
- USER_TABLE_COLUMNS: TableOidColumnInfo[] | undefined;
275
- queryStreamer: QueryStreamer;
276
- getPubSubManager: () => Promise<PubSubManager>;
277
- tsTypesDefinition?: string;
278
- joinGraph?: Graph;
279
- private shortestJoinPaths;
280
- prostgles: Prostgles;
281
- publishParser?: PublishParser;
282
- onSchemaChange?: (event: {
283
- command: string;
284
- query: string;
285
- }) => void;
286
- private constructor();
287
- private init;
288
- static create: (prostgles: Prostgles) => Promise<DboBuilder>;
289
- destroy(): void;
290
- _joins?: Join[];
291
- get joins(): Join[];
292
- set joins(j: Join[]);
293
- getAllJoinPaths(): JoinPaths;
294
- prepareShortestJoinPaths: () => Promise<void>;
295
- runSQL: (query: string, params: any, options: SQLOptions | undefined, localParams?: LocalParams) => Promise<any>;
296
- build(): Promise<DBHandlerServer>;
297
- getShortestJoinPath: (viewHandler: ViewHandler, target: string) => JoinPaths[number] | undefined;
298
- getTX: (cb: TxCB) => Promise<any>;
299
- }
300
- type PGConstraint = {
301
- /**
302
- * Constraint type
303
- */
304
- contype: "u" | "p" | "c";
305
- /**
306
- * Column ordinal positions
307
- */
308
- conkey: number[];
309
- /**
310
- * Constraint name
311
- */
312
- conname: string;
313
- /**
314
- * Table name
315
- */
316
- relname: string;
317
- };
318
- export declare function isPlainObject(o: any): o is Record<string, any>;
319
- export declare function postgresToTsType(udt_data_type: PG_COLUMN_UDT_DATA_TYPE): keyof typeof TS_PG_Types;
320
- export declare const prepareOrderByQuery: (items: SortItem[], tableAlias?: string) => string[];
321
- export declare const canEXECUTE: (db: DB) => Promise<boolean>;
322
- export declare const withUserRLS: (localParams: LocalParams | undefined, query: string) => string;
323
- export {};
324
- //# sourceMappingURL=DboBuilder.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"DboBuilder.d.ts","sourceRoot":"","sources":["../lib/DboBuilder.ts"],"names":[],"mappings":"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"}