prostgles-server 2.0.264 → 2.0.267
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/DboBuilder/runSQL.d.ts +6 -0
- package/dist/DboBuilder/runSQL.d.ts.map +1 -0
- package/dist/DboBuilder/runSQL.js +104 -0
- package/dist/DboBuilder/runSQL.js.map +1 -0
- package/dist/DboBuilder.d.ts +3 -4
- package/dist/DboBuilder.d.ts.map +1 -1
- package/dist/DboBuilder.js +22 -185
- package/dist/DboBuilder.js.map +1 -1
- package/dist/QueryBuilder.d.ts +3 -1
- package/dist/QueryBuilder.d.ts.map +1 -1
- package/lib/DboBuilder/runSQL.d.ts +6 -0
- package/lib/DboBuilder/runSQL.d.ts.map +1 -0
- package/lib/DboBuilder/runSQL.js +103 -0
- package/lib/DboBuilder/runSQL.ts +109 -0
- package/lib/DboBuilder.d.ts +3 -4
- package/lib/DboBuilder.d.ts.map +1 -1
- package/lib/DboBuilder.js +22 -185
- package/lib/DboBuilder.ts +26 -215
- package/package.json +2 -2
- package/tests/client/PID.txt +1 -1
- package/tests/server/package-lock.json +3 -3
|
@@ -0,0 +1,103 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.canRunSQL = exports.runSQL = void 0;
|
|
4
|
+
const DboBuilder_1 = require("../DboBuilder");
|
|
5
|
+
const PubSubManager_1 = require("../PubSubManager");
|
|
6
|
+
const { ParameterizedQuery: PQ } = require('pg-promise');
|
|
7
|
+
let DATA_TYPES;
|
|
8
|
+
let USER_TABLES;
|
|
9
|
+
async function runSQL(query, params, options, localParams) {
|
|
10
|
+
/** Cache types */
|
|
11
|
+
DATA_TYPES ?? (DATA_TYPES = await this.db.any("SELECT oid, typname FROM pg_type") ?? []);
|
|
12
|
+
USER_TABLES ?? (USER_TABLES = await this.db.any("SELECT relid, relname FROM pg_catalog.pg_statio_user_tables") ?? []);
|
|
13
|
+
if (!(await (0, exports.canRunSQL)(this.prostgles, localParams)))
|
|
14
|
+
throw "Not allowed to run SQL";
|
|
15
|
+
const { returnType, allowListen } = options || {};
|
|
16
|
+
const { socket } = localParams || {};
|
|
17
|
+
const db = localParams?.tx?.t || this.db;
|
|
18
|
+
if (returnType === "noticeSubscription") {
|
|
19
|
+
if (!socket)
|
|
20
|
+
throw "Only allowed with client socket";
|
|
21
|
+
return await this.prostgles.dbEventsManager?.addNotice(socket);
|
|
22
|
+
}
|
|
23
|
+
else if (returnType === "statement") {
|
|
24
|
+
try {
|
|
25
|
+
return DboBuilder_1.pgp.as.format(query, params);
|
|
26
|
+
}
|
|
27
|
+
catch (err) {
|
|
28
|
+
throw err.toString();
|
|
29
|
+
}
|
|
30
|
+
}
|
|
31
|
+
else if (db) {
|
|
32
|
+
let finalQuery = query + "";
|
|
33
|
+
if (returnType === "arrayMode" && !["listen ", "notify "].find(c => query.toLowerCase().trim().startsWith(c))) {
|
|
34
|
+
finalQuery = new PQ({ text: DboBuilder_1.pgp.as.format(query, params), rowMode: "array" });
|
|
35
|
+
}
|
|
36
|
+
let _qres = await db.result(finalQuery, params);
|
|
37
|
+
const { fields, rows, command } = _qres;
|
|
38
|
+
/**
|
|
39
|
+
* Fallback for watchSchema in case not superuser and cannot add db event listener
|
|
40
|
+
*/
|
|
41
|
+
const { watchSchema, watchSchemaType } = this.prostgles?.opts || {};
|
|
42
|
+
if (watchSchema &&
|
|
43
|
+
(!this.prostgles.isSuperUser || watchSchemaType === "prostgles_queries")) {
|
|
44
|
+
if (["CREATE", "ALTER", "DROP"].includes(command)) {
|
|
45
|
+
this.prostgles.onSchemaChange({ command, query });
|
|
46
|
+
}
|
|
47
|
+
else if (query) {
|
|
48
|
+
const cleanedQuery = query.toLowerCase().replace(/\s\s+/g, ' ');
|
|
49
|
+
if (PubSubManager_1.PubSubManager.SCHEMA_ALTERING_QUERIES.some(q => cleanedQuery.includes(q.toLowerCase()))) {
|
|
50
|
+
this.prostgles.onSchemaChange({ command, query });
|
|
51
|
+
}
|
|
52
|
+
}
|
|
53
|
+
}
|
|
54
|
+
if (command === "LISTEN") {
|
|
55
|
+
if (!allowListen)
|
|
56
|
+
throw new Error(`Your query contains a LISTEN command. Set { allowListen: true } to get subscription hooks. Or ignore this message`);
|
|
57
|
+
if (!socket)
|
|
58
|
+
throw "Only allowed with client socket";
|
|
59
|
+
return await this.prostgles.dbEventsManager?.addNotify(query, socket);
|
|
60
|
+
}
|
|
61
|
+
else if (returnType === "rows") {
|
|
62
|
+
return rows;
|
|
63
|
+
}
|
|
64
|
+
else if (returnType === "row") {
|
|
65
|
+
return rows[0];
|
|
66
|
+
}
|
|
67
|
+
else if (returnType === "value") {
|
|
68
|
+
return Object.values(rows?.[0] || {})?.[0];
|
|
69
|
+
}
|
|
70
|
+
else if (returnType === "values") {
|
|
71
|
+
return rows.map(r => Object.values(r[0]));
|
|
72
|
+
}
|
|
73
|
+
else {
|
|
74
|
+
let qres = {
|
|
75
|
+
duration: 0,
|
|
76
|
+
..._qres,
|
|
77
|
+
fields: fields?.map(f => {
|
|
78
|
+
const dataType = DATA_TYPES.find(dt => +dt.oid === +f.dataTypeID)?.typname ?? "text", tableName = USER_TABLES.find(t => +t.relid === +f.tableID), tsDataType = (0, DboBuilder_1.postgresToTsType)(dataType);
|
|
79
|
+
return {
|
|
80
|
+
...f,
|
|
81
|
+
tsDataType,
|
|
82
|
+
dataType,
|
|
83
|
+
udt_name: dataType,
|
|
84
|
+
tableName: tableName?.relname
|
|
85
|
+
};
|
|
86
|
+
}) ?? []
|
|
87
|
+
};
|
|
88
|
+
return qres;
|
|
89
|
+
}
|
|
90
|
+
}
|
|
91
|
+
else
|
|
92
|
+
console.error("db missing");
|
|
93
|
+
}
|
|
94
|
+
exports.runSQL = runSQL;
|
|
95
|
+
const canRunSQL = async (prostgles, localParams) => {
|
|
96
|
+
if (!localParams?.socket || !localParams?.httpReq)
|
|
97
|
+
return true;
|
|
98
|
+
const { socket } = localParams;
|
|
99
|
+
const publishParams = await prostgles.publishParser.getPublishParams({ socket });
|
|
100
|
+
let res = await prostgles.opts.publishRawSQL?.(publishParams);
|
|
101
|
+
return Boolean(res && typeof res === "boolean" || res === "*");
|
|
102
|
+
};
|
|
103
|
+
exports.canRunSQL = canRunSQL;
|
|
@@ -0,0 +1,109 @@
|
|
|
1
|
+
import { PG_COLUMN_UDT_DATA_TYPE, SQLHandler, SQLOptions, SQLResult } from "prostgles-types";
|
|
2
|
+
import { DboBuilder, LocalParams, pgp, postgresToTsType } from "../DboBuilder";
|
|
3
|
+
import { Prostgles } from "../Prostgles";
|
|
4
|
+
import { PubSubManager } from "../PubSubManager";
|
|
5
|
+
const { ParameterizedQuery: PQ } = require('pg-promise');
|
|
6
|
+
|
|
7
|
+
let DATA_TYPES: {oid: string, typname: PG_COLUMN_UDT_DATA_TYPE }[] | undefined;
|
|
8
|
+
let USER_TABLES: { relid: string; relname: string; }[] | undefined;
|
|
9
|
+
|
|
10
|
+
export async function runSQL(this: DboBuilder, query: string, params: any, options: SQLOptions | undefined, localParams?: LocalParams){
|
|
11
|
+
|
|
12
|
+
/** Cache types */
|
|
13
|
+
DATA_TYPES ??= await this.db.any("SELECT oid, typname FROM pg_type") ?? [];
|
|
14
|
+
USER_TABLES ??= await this.db.any("SELECT relid, relname FROM pg_catalog.pg_statio_user_tables") ?? [];
|
|
15
|
+
|
|
16
|
+
if(!(await canRunSQL(this.prostgles, localParams))) throw "Not allowed to run SQL";
|
|
17
|
+
|
|
18
|
+
const { returnType, allowListen }: SQLOptions = options || ({} as any);
|
|
19
|
+
const { socket } = localParams || {};
|
|
20
|
+
|
|
21
|
+
const db = localParams?.tx?.t || this.db;
|
|
22
|
+
if(returnType === "noticeSubscription"){
|
|
23
|
+
if(!socket) throw "Only allowed with client socket"
|
|
24
|
+
return await this.prostgles.dbEventsManager?.addNotice(socket);
|
|
25
|
+
} else if(returnType === "statement"){
|
|
26
|
+
try {
|
|
27
|
+
return pgp.as.format(query, params);
|
|
28
|
+
} catch (err){
|
|
29
|
+
throw (err as any).toString();
|
|
30
|
+
}
|
|
31
|
+
} else if(db) {
|
|
32
|
+
|
|
33
|
+
let finalQuery = query + "";
|
|
34
|
+
if(returnType === "arrayMode" && !["listen ", "notify "].find(c => query.toLowerCase().trim().startsWith(c))){
|
|
35
|
+
finalQuery = new PQ({ text: pgp.as.format(query, params), rowMode: "array" });
|
|
36
|
+
}
|
|
37
|
+
|
|
38
|
+
let _qres = await db.result(finalQuery, params)
|
|
39
|
+
const { fields, rows, command } = _qres;
|
|
40
|
+
|
|
41
|
+
/**
|
|
42
|
+
* Fallback for watchSchema in case not superuser and cannot add db event listener
|
|
43
|
+
*/
|
|
44
|
+
const { watchSchema, watchSchemaType } = this.prostgles?.opts || {};
|
|
45
|
+
|
|
46
|
+
if(
|
|
47
|
+
watchSchema &&
|
|
48
|
+
(!this.prostgles.isSuperUser || watchSchemaType === "prostgles_queries")
|
|
49
|
+
){
|
|
50
|
+
if(["CREATE", "ALTER", "DROP"].includes(command)){
|
|
51
|
+
this.prostgles.onSchemaChange({ command, query })
|
|
52
|
+
} else if(query) {
|
|
53
|
+
const cleanedQuery = query.toLowerCase().replace(/\s\s+/g, ' ');
|
|
54
|
+
if(PubSubManager.SCHEMA_ALTERING_QUERIES.some(q => cleanedQuery.includes(q.toLowerCase()))){
|
|
55
|
+
this.prostgles.onSchemaChange({ command, query })
|
|
56
|
+
}
|
|
57
|
+
}
|
|
58
|
+
}
|
|
59
|
+
|
|
60
|
+
if(command === "LISTEN"){
|
|
61
|
+
if(!allowListen) throw new Error(`Your query contains a LISTEN command. Set { allowListen: true } to get subscription hooks. Or ignore this message`)
|
|
62
|
+
if(!socket) throw "Only allowed with client socket"
|
|
63
|
+
return await this.prostgles.dbEventsManager?.addNotify(query, socket);
|
|
64
|
+
|
|
65
|
+
} else if(returnType === "rows") {
|
|
66
|
+
return rows;
|
|
67
|
+
|
|
68
|
+
} else if(returnType === "row") {
|
|
69
|
+
return rows[0];
|
|
70
|
+
|
|
71
|
+
} else if(returnType === "value") {
|
|
72
|
+
return Object.values(rows?.[0] || {})?.[0];
|
|
73
|
+
|
|
74
|
+
} else if(returnType === "values") {
|
|
75
|
+
return rows.map(r => Object.values(r[0]));
|
|
76
|
+
|
|
77
|
+
} else {
|
|
78
|
+
|
|
79
|
+
let qres: SQLResult<typeof returnType> = {
|
|
80
|
+
duration: 0,
|
|
81
|
+
..._qres,
|
|
82
|
+
fields: fields?.map(f => {
|
|
83
|
+
const dataType = DATA_TYPES!.find(dt => +dt.oid === +f.dataTypeID)?.typname ?? "text",
|
|
84
|
+
tableName = USER_TABLES!.find(t => +t.relid === +f.tableID),
|
|
85
|
+
tsDataType = postgresToTsType(dataType);
|
|
86
|
+
|
|
87
|
+
return {
|
|
88
|
+
...f,
|
|
89
|
+
tsDataType,
|
|
90
|
+
dataType,
|
|
91
|
+
udt_name: dataType,
|
|
92
|
+
tableName: tableName?.relname
|
|
93
|
+
}
|
|
94
|
+
}) ?? []
|
|
95
|
+
};
|
|
96
|
+
return qres;
|
|
97
|
+
}
|
|
98
|
+
|
|
99
|
+
} else console.error("db missing");
|
|
100
|
+
}
|
|
101
|
+
|
|
102
|
+
export const canRunSQL = async (prostgles: Prostgles, localParams?: LocalParams): Promise<boolean> => {
|
|
103
|
+
if(!localParams?.socket || !localParams?.httpReq) return true;
|
|
104
|
+
|
|
105
|
+
const { socket } = localParams;
|
|
106
|
+
const publishParams = await prostgles.publishParser!.getPublishParams({ socket });
|
|
107
|
+
let res = await prostgles.opts.publishRawSQL?.(publishParams);
|
|
108
|
+
return Boolean(res && typeof res === "boolean" || res === "*");
|
|
109
|
+
}
|
package/lib/DboBuilder.d.ts
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import * as pgPromise from 'pg-promise';
|
|
2
2
|
import pg = require('pg-promise/typescript/pg-subset');
|
|
3
|
-
import { ColumnInfo, ValidatedColumnInfo, FieldFilter, SelectParams, SubscribeParams, OrderBy, InsertParams, UpdateParams, DeleteParams,
|
|
3
|
+
import { ColumnInfo, ValidatedColumnInfo, FieldFilter, SelectParams, SubscribeParams, OrderBy, InsertParams, UpdateParams, DeleteParams, DbJoinMaker, PG_COLUMN_UDT_DATA_TYPE, TS_PG_Types, TableInfo as TInfo, SQLHandler, AnyObject, Select, ProstglesError } from "prostgles-types";
|
|
4
4
|
export declare type Media = {
|
|
5
5
|
"id"?: string;
|
|
6
6
|
"title"?: string;
|
|
@@ -271,7 +271,7 @@ export declare class ViewHandler {
|
|
|
271
271
|
where: string;
|
|
272
272
|
filter: AnyObject;
|
|
273
273
|
}>;
|
|
274
|
-
prepareExistCondition(eConfig: ExistsFilterConfig, localParams: LocalParams | undefined
|
|
274
|
+
prepareExistCondition(eConfig: ExistsFilterConfig, localParams: LocalParams | undefined): Promise<string>;
|
|
275
275
|
/**
|
|
276
276
|
* parses a single filter
|
|
277
277
|
* @example
|
|
@@ -285,7 +285,6 @@ export declare class ViewHandler {
|
|
|
285
285
|
tableAlias?: string;
|
|
286
286
|
localParams?: LocalParams;
|
|
287
287
|
tableRules?: TableRule;
|
|
288
|
-
checkForeignTablePublished: boolean;
|
|
289
288
|
}): Promise<string>;
|
|
290
289
|
prepareSort(orderBy: OrderBy | undefined, allowed_cols: FieldFilter, tableAlias: string | undefined, excludeOrder: boolean, select: SelectItem[]): string;
|
|
291
290
|
prepareLimitQuery(limit: number, p: ValidatedTableRules): number;
|
|
@@ -392,7 +391,7 @@ export declare class DboBuilder {
|
|
|
392
391
|
getJoins(): Join[];
|
|
393
392
|
getJoinPaths(): JoinPaths;
|
|
394
393
|
parseJoins(): Promise<JoinPaths>;
|
|
395
|
-
runSQL
|
|
394
|
+
private runSQL;
|
|
396
395
|
build(): Promise<DBHandlerServer>;
|
|
397
396
|
getTX: (cb: TxCB) => Promise<any>;
|
|
398
397
|
}
|
package/lib/DboBuilder.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"DboBuilder.d.ts","sourceRoot":"","sources":["DboBuilder.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"DboBuilder.d.ts","sourceRoot":"","sources":["DboBuilder.ts"],"names":[],"mappings":"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"}
|
package/lib/DboBuilder.js
CHANGED
|
@@ -32,7 +32,7 @@ exports.postgresToTsType = exports.isPlainObject = exports.DboBuilder = exports.
|
|
|
32
32
|
const Bluebird = __importStar(require("bluebird"));
|
|
33
33
|
// declare global { export interface Promise<T> extends Bluebird<T> {} }
|
|
34
34
|
const pgPromise = __importStar(require("pg-promise"));
|
|
35
|
-
const
|
|
35
|
+
const runSQL_1 = require("./DboBuilder/runSQL");
|
|
36
36
|
const prostgles_types_1 = require("prostgles-types");
|
|
37
37
|
// export const getFilterFields = (f: Filter | any, $and_key: string, $or_key: string, prevFields: string[] = []): string[] => {
|
|
38
38
|
// if(Array.isArray(f)){
|
|
@@ -710,6 +710,12 @@ class ViewHandler {
|
|
|
710
710
|
}
|
|
711
711
|
if (returnQuery)
|
|
712
712
|
return _query;
|
|
713
|
+
if (returnType === "statement") {
|
|
714
|
+
if (!(await (0, runSQL_1.canRunSQL)(this.dboBuilder.prostgles, localParams))) {
|
|
715
|
+
throw `Not allowed: {returnType: "statement"} requires sql privileges `;
|
|
716
|
+
}
|
|
717
|
+
return _query;
|
|
718
|
+
}
|
|
713
719
|
if (["row", "value"].includes(returnType)) {
|
|
714
720
|
return (this.t || this.db).oneOrNone(_query).then(data => {
|
|
715
721
|
return (data && returnType === "value") ? Object.values(data)[0] : data;
|
|
@@ -837,7 +843,7 @@ class ViewHandler {
|
|
|
837
843
|
/* Local update allow all. TODO -> FIX THIS */
|
|
838
844
|
if (!ff && !tableRule)
|
|
839
845
|
filterFields = "*";
|
|
840
|
-
const parseFullFilter = async (f, parentFilter = null,
|
|
846
|
+
const parseFullFilter = async (f, parentFilter = null, isForcedFilterBypass) => {
|
|
841
847
|
if (!f)
|
|
842
848
|
throw "Invalid/missing group filter provided";
|
|
843
849
|
let result = "";
|
|
@@ -853,7 +859,7 @@ class ViewHandler {
|
|
|
853
859
|
const { [$and_key]: $and, [$or_key]: $or } = f, group = $and || $or;
|
|
854
860
|
if (group && group.length) {
|
|
855
861
|
const operand = $and ? " AND " : " OR ";
|
|
856
|
-
let conditions = (await Promise.all(group.map(async (gf) => await parseFullFilter(gf, group,
|
|
862
|
+
let conditions = (await Promise.all(group.map(async (gf) => await parseFullFilter(gf, group, isForcedFilterBypass)))).filter(c => c);
|
|
857
863
|
if (conditions && conditions.length) {
|
|
858
864
|
if (conditions.length === 1)
|
|
859
865
|
return conditions.join(operand);
|
|
@@ -862,14 +868,14 @@ class ViewHandler {
|
|
|
862
868
|
}
|
|
863
869
|
}
|
|
864
870
|
else if (!group) {
|
|
871
|
+
/** forcedFilters do not get checked against publish and are treated as server-side requests */
|
|
865
872
|
result = await this.getCondition({
|
|
866
873
|
filter: { ...f },
|
|
867
874
|
select,
|
|
868
875
|
allowed_colnames: this.parseFieldFilter(filterFields),
|
|
869
876
|
tableAlias,
|
|
870
|
-
localParams,
|
|
871
|
-
tableRules: tableRule
|
|
872
|
-
checkForeignTablePublished
|
|
877
|
+
localParams: isForcedFilterBypass ? undefined : localParams,
|
|
878
|
+
tableRules: isForcedFilterBypass ? undefined : tableRule
|
|
873
879
|
});
|
|
874
880
|
}
|
|
875
881
|
return result;
|
|
@@ -877,8 +883,8 @@ class ViewHandler {
|
|
|
877
883
|
if (!isPlainObject(filter))
|
|
878
884
|
throw "\nInvalid filter\nExpecting an object but got -> " + JSON.stringify(filter);
|
|
879
885
|
/* A forced filter condition will not check if the existsJoined filter tables have been published */
|
|
880
|
-
const forcedFilterCond = forcedFilter ? await parseFullFilter(forcedFilter, null,
|
|
881
|
-
const filterCond = await parseFullFilter(filter, null);
|
|
886
|
+
const forcedFilterCond = forcedFilter ? await parseFullFilter(forcedFilter, null, true) : undefined;
|
|
887
|
+
const filterCond = await parseFullFilter(filter, null, false);
|
|
882
888
|
let cond = [
|
|
883
889
|
forcedFilterCond, filterCond
|
|
884
890
|
].filter(c => c).join(" AND ");
|
|
@@ -889,7 +895,7 @@ class ViewHandler {
|
|
|
889
895
|
cond = "WHERE " + cond;
|
|
890
896
|
return { where: cond || "", filter: finalFilter };
|
|
891
897
|
}
|
|
892
|
-
async prepareExistCondition(eConfig, localParams
|
|
898
|
+
async prepareExistCondition(eConfig, localParams) {
|
|
893
899
|
let res = "";
|
|
894
900
|
const thisTable = this.name;
|
|
895
901
|
const isNotExists = ["$notExists", "$notExistsJoined"].includes(eConfig.existType);
|
|
@@ -946,11 +952,11 @@ class ViewHandler {
|
|
|
946
952
|
}
|
|
947
953
|
};
|
|
948
954
|
let finalWhere = "";
|
|
949
|
-
console.error("NEED TO ENSURE PUBLISH FILTERS BYPASS THE CHECKS HERE");
|
|
950
955
|
let t2Rules = undefined, forcedFilter, filterFields, tableAlias;
|
|
951
|
-
/* Check if allowed to view data */
|
|
952
|
-
if (localParams &&
|
|
953
|
-
|
|
956
|
+
/* Check if allowed to view data - forcedFilters will bypass this check through isForcedFilterBypass */
|
|
957
|
+
if (localParams && (!localParams?.socket && !localParams?.httpReq))
|
|
958
|
+
throw "Unexpected: localParams missing socket/httpReq";
|
|
959
|
+
if (localParams && (localParams.socket || localParams.httpReq) && this.dboBuilder.publishParser) {
|
|
954
960
|
t2Rules = await this.dboBuilder.publishParser.getValidatedRequestRuleWusr({ tableName: t2, command: "find", localParams });
|
|
955
961
|
if (!t2Rules || !t2Rules.select)
|
|
956
962
|
throw "Dissallowed";
|
|
@@ -986,7 +992,7 @@ class ViewHandler {
|
|
|
986
992
|
* { fff: { $ilike: 'abc' } } => "fff" ilike 'abc'
|
|
987
993
|
*/
|
|
988
994
|
async getCondition(params) {
|
|
989
|
-
const { filter, select, allowed_colnames, tableAlias, localParams, tableRules
|
|
995
|
+
const { filter, select, allowed_colnames, tableAlias, localParams, tableRules } = params;
|
|
990
996
|
let data = { ...filter };
|
|
991
997
|
/* Exists join filter */
|
|
992
998
|
const ERR = "Invalid exists filter. \nExpecting somethibng like: { $exists: { tableName.tableName2: Filter } } | { $exists: { \"**.tableName3\": Filter } }\n";
|
|
@@ -1046,7 +1052,7 @@ class ViewHandler {
|
|
|
1046
1052
|
});
|
|
1047
1053
|
let existsCond = "";
|
|
1048
1054
|
if (existsKeys.length) {
|
|
1049
|
-
existsCond = (await Promise.all(existsKeys.map(async (k) => await this.prepareExistCondition(k, localParams
|
|
1055
|
+
existsCond = (await Promise.all(existsKeys.map(async (k) => await this.prepareExistCondition(k, localParams)))).join(" AND ");
|
|
1050
1056
|
}
|
|
1051
1057
|
/* Computed field queries */
|
|
1052
1058
|
const p = this.getValidatedRules(tableRules, localParams);
|
|
@@ -1842,8 +1848,6 @@ class TableHandler extends ViewHandler {
|
|
|
1842
1848
|
}
|
|
1843
1849
|
}
|
|
1844
1850
|
exports.TableHandler = TableHandler;
|
|
1845
|
-
let DATA_TYPES;
|
|
1846
|
-
let USER_TABLES;
|
|
1847
1851
|
const Prostgles_1 = require("./Prostgles");
|
|
1848
1852
|
const DBSchemaBuilder_1 = require("./DBSchemaBuilder");
|
|
1849
1853
|
class DboBuilder {
|
|
@@ -1888,97 +1892,7 @@ class DboBuilder {
|
|
|
1888
1892
|
return this;
|
|
1889
1893
|
};
|
|
1890
1894
|
this.runSQL = async (query, params, options, localParams) => {
|
|
1891
|
-
|
|
1892
|
-
DATA_TYPES ?? (DATA_TYPES = await this.db.any("SELECT oid, typname FROM pg_type") ?? []);
|
|
1893
|
-
USER_TABLES ?? (USER_TABLES = await this.db.any("SELECT relid, relname FROM pg_catalog.pg_statio_user_tables") ?? []);
|
|
1894
|
-
const canRunSQL = async (localParams) => {
|
|
1895
|
-
if (!localParams?.socket || !localParams?.httpReq)
|
|
1896
|
-
return true;
|
|
1897
|
-
const { socket } = localParams;
|
|
1898
|
-
const publishParams = await this.prostgles.publishParser.getPublishParams({ socket });
|
|
1899
|
-
let res = await this.prostgles.opts.publishRawSQL?.(publishParams);
|
|
1900
|
-
return Boolean(res && typeof res === "boolean" || res === "*");
|
|
1901
|
-
};
|
|
1902
|
-
if (!(await canRunSQL(localParams)))
|
|
1903
|
-
throw "Not allowed to run SQL";
|
|
1904
|
-
const { returnType, allowListen } = options || {};
|
|
1905
|
-
const { socket } = localParams || {};
|
|
1906
|
-
const db = localParams?.tx?.t || this.db;
|
|
1907
|
-
if (returnType === "noticeSubscription") {
|
|
1908
|
-
if (!socket)
|
|
1909
|
-
throw "Only allowed with client socket";
|
|
1910
|
-
return await this.prostgles.dbEventsManager?.addNotice(socket);
|
|
1911
|
-
}
|
|
1912
|
-
else if (returnType === "statement") {
|
|
1913
|
-
try {
|
|
1914
|
-
return exports.pgp.as.format(query, params);
|
|
1915
|
-
}
|
|
1916
|
-
catch (err) {
|
|
1917
|
-
throw err.toString();
|
|
1918
|
-
}
|
|
1919
|
-
}
|
|
1920
|
-
else if (db) {
|
|
1921
|
-
let finalQuery = query + "";
|
|
1922
|
-
if (returnType === "arrayMode" && !["listen ", "notify "].find(c => query.toLowerCase().trim().startsWith(c))) {
|
|
1923
|
-
finalQuery = new PQ({ text: exports.pgp.as.format(query, params), rowMode: "array" });
|
|
1924
|
-
}
|
|
1925
|
-
let _qres = await db.result(finalQuery, params);
|
|
1926
|
-
const { fields, rows, command } = _qres;
|
|
1927
|
-
/**
|
|
1928
|
-
* Fallback for watchSchema in case not superuser and cannot add db event listener
|
|
1929
|
-
*/
|
|
1930
|
-
const { watchSchema, watchSchemaType } = this.prostgles?.opts || {};
|
|
1931
|
-
if (watchSchema &&
|
|
1932
|
-
(!this.prostgles.isSuperUser || watchSchemaType === "prostgles_queries")) {
|
|
1933
|
-
if (["CREATE", "ALTER", "DROP"].includes(command)) {
|
|
1934
|
-
this.prostgles.onSchemaChange({ command, query });
|
|
1935
|
-
}
|
|
1936
|
-
else if (query) {
|
|
1937
|
-
const cleanedQuery = query.toLowerCase().replace(/\s\s+/g, ' ');
|
|
1938
|
-
if (PubSubManager_1.PubSubManager.SCHEMA_ALTERING_QUERIES.some(q => cleanedQuery.includes(q.toLowerCase()))) {
|
|
1939
|
-
this.prostgles.onSchemaChange({ command, query });
|
|
1940
|
-
}
|
|
1941
|
-
}
|
|
1942
|
-
}
|
|
1943
|
-
if (command === "LISTEN") {
|
|
1944
|
-
if (!allowListen)
|
|
1945
|
-
throw new Error(`Your query contains a LISTEN command. Set { allowListen: true } to get subscription hooks. Or ignore this message`);
|
|
1946
|
-
if (!socket)
|
|
1947
|
-
throw "Only allowed with client socket";
|
|
1948
|
-
return await this.prostgles.dbEventsManager?.addNotify(query, socket);
|
|
1949
|
-
}
|
|
1950
|
-
else if (returnType === "rows") {
|
|
1951
|
-
return rows;
|
|
1952
|
-
}
|
|
1953
|
-
else if (returnType === "row") {
|
|
1954
|
-
return rows[0];
|
|
1955
|
-
}
|
|
1956
|
-
else if (returnType === "value") {
|
|
1957
|
-
return Object.values(rows?.[0] || {})?.[0];
|
|
1958
|
-
}
|
|
1959
|
-
else if (returnType === "values") {
|
|
1960
|
-
return rows.map(r => Object.values(r[0]));
|
|
1961
|
-
}
|
|
1962
|
-
else {
|
|
1963
|
-
let qres = {
|
|
1964
|
-
duration: 0,
|
|
1965
|
-
..._qres,
|
|
1966
|
-
fields: fields?.map(f => {
|
|
1967
|
-
const dataType = DATA_TYPES.find(dt => +dt.oid === +f.dataTypeID)?.typname ?? "text", tableName = USER_TABLES.find(t => +t.relid === +f.tableID), tsDataType = postgresToTsType(dataType);
|
|
1968
|
-
return {
|
|
1969
|
-
...f,
|
|
1970
|
-
tsDataType,
|
|
1971
|
-
dataType,
|
|
1972
|
-
udt_name: dataType,
|
|
1973
|
-
tableName: tableName?.relname
|
|
1974
|
-
};
|
|
1975
|
-
}) ?? []
|
|
1976
|
-
};
|
|
1977
|
-
return qres;
|
|
1978
|
-
}
|
|
1979
|
-
}
|
|
1980
|
-
else
|
|
1981
|
-
console.error("db missing");
|
|
1895
|
+
return runSQL_1.runSQL.bind(this)(query, params, options, localParams);
|
|
1982
1896
|
};
|
|
1983
1897
|
this.getTX = (cb) => {
|
|
1984
1898
|
return this.db.tx((t) => {
|
|
@@ -2156,83 +2070,6 @@ class DboBuilder {
|
|
|
2156
2070
|
}
|
|
2157
2071
|
if (!this.dbo.sql) {
|
|
2158
2072
|
this.dbo.sql = this.runSQL;
|
|
2159
|
-
// this.dbo.sql = async (query: string, params: any, options: SQLOptions | undefined, localParams?: LocalParams) => {
|
|
2160
|
-
// const canRunSQL = async (localParams?: LocalParams) => {
|
|
2161
|
-
// if(!localParams?.socket || !localParams?.httpReq) return true;
|
|
2162
|
-
// const { socket } = localParams;
|
|
2163
|
-
// const publishParams = await this.prostgles.publishParser!.getPublishParams({ socket });
|
|
2164
|
-
// let res = await this.prostgles.opts.publishRawSQL?.(publishParams);
|
|
2165
|
-
// return Boolean(res && typeof res === "boolean" || res === "*");
|
|
2166
|
-
// }
|
|
2167
|
-
// if(!(await canRunSQL(localParams))) throw "Not allowed to run SQL";
|
|
2168
|
-
// const { returnType, allowListen }: SQLOptions = options || ({} as any);
|
|
2169
|
-
// const { socket } = localParams || {};
|
|
2170
|
-
// if(returnType === "noticeSubscription"){
|
|
2171
|
-
// if(!socket) throw "Only allowed with client socket"
|
|
2172
|
-
// return await this.prostgles.dbEventsManager?.addNotice(socket);
|
|
2173
|
-
// } else if(returnType === "statement"){
|
|
2174
|
-
// try {
|
|
2175
|
-
// return pgp.as.format(query, params);
|
|
2176
|
-
// } catch (err){
|
|
2177
|
-
// throw (err as any).toString();
|
|
2178
|
-
// }
|
|
2179
|
-
// } else if(this.db) {
|
|
2180
|
-
// let finalQuery = query + "";
|
|
2181
|
-
// if(returnType === "arrayMode" && !["listen ", "notify "].find(c => query.toLowerCase().trim().startsWith(c))){
|
|
2182
|
-
// finalQuery = new PQ({ text: pgp.as.format(query, params), rowMode: "array" });
|
|
2183
|
-
// }
|
|
2184
|
-
// let _qres = await this.db.result(finalQuery, params)
|
|
2185
|
-
// const { fields, rows, command } = _qres;
|
|
2186
|
-
// /**
|
|
2187
|
-
// * Fallback for watchSchema in case not superuser and cannot add db event listener
|
|
2188
|
-
// */
|
|
2189
|
-
// const { watchSchema, watchSchemaType } = this.prostgles?.opts || {};
|
|
2190
|
-
// if(
|
|
2191
|
-
// watchSchema &&
|
|
2192
|
-
// (!this.prostgles.isSuperUser || watchSchemaType === "prostgles_queries")
|
|
2193
|
-
// ){
|
|
2194
|
-
// if(["CREATE", "ALTER", "DROP"].includes(command)){
|
|
2195
|
-
// this.prostgles.onSchemaChange({ command, query })
|
|
2196
|
-
// } else if(query) {
|
|
2197
|
-
// const cleanedQuery = query.toLowerCase().replace(/\s\s+/g, ' ');
|
|
2198
|
-
// if(PubSubManager.SCHEMA_ALTERING_QUERIES.some(q => cleanedQuery.includes(q.toLowerCase()))){
|
|
2199
|
-
// this.prostgles.onSchemaChange({ command, query })
|
|
2200
|
-
// }
|
|
2201
|
-
// }
|
|
2202
|
-
// }
|
|
2203
|
-
// if(command === "LISTEN"){
|
|
2204
|
-
// if(!allowListen) throw new Error(`Your query contains a LISTEN command. Set { allowListen: true } to get subscription hooks. Or ignore this message`)
|
|
2205
|
-
// if(!socket) throw "Only allowed with client socket"
|
|
2206
|
-
// return await this.prostgles.dbEventsManager?.addNotify(query, socket);
|
|
2207
|
-
// } else if(returnType === "rows") {
|
|
2208
|
-
// return rows;
|
|
2209
|
-
// } else if(returnType === "row") {
|
|
2210
|
-
// return rows[0];
|
|
2211
|
-
// } else if(returnType === "value") {
|
|
2212
|
-
// return Object.values(rows?.[0] || {})?.[0];
|
|
2213
|
-
// } else if(returnType === "values") {
|
|
2214
|
-
// return rows.map(r => Object.values(r[0]));
|
|
2215
|
-
// } else {
|
|
2216
|
-
// let qres: SQLResult<typeof returnType> = {
|
|
2217
|
-
// duration: 0,
|
|
2218
|
-
// ..._qres,
|
|
2219
|
-
// fields: fields?.map(f => {
|
|
2220
|
-
// const dataType = DATA_TYPES.find(dt => +dt.oid === +f.dataTypeID)?.typname ?? "text",
|
|
2221
|
-
// tableName = USER_TABLES.find(t => +t.relid === +f.tableID),
|
|
2222
|
-
// tsDataType = postgresToTsType(dataType);
|
|
2223
|
-
// return {
|
|
2224
|
-
// ...f,
|
|
2225
|
-
// tsDataType,
|
|
2226
|
-
// dataType,
|
|
2227
|
-
// udt_name: dataType,
|
|
2228
|
-
// tableName: tableName?.relname
|
|
2229
|
-
// }
|
|
2230
|
-
// }) ?? []
|
|
2231
|
-
// };
|
|
2232
|
-
// return qres;
|
|
2233
|
-
// }
|
|
2234
|
-
// } else console.error("db missing");
|
|
2235
|
-
// }
|
|
2236
2073
|
}
|
|
2237
2074
|
else {
|
|
2238
2075
|
console.warn(`Could not create dbo.sql handler because there is already a table named "sql"`);
|