prostgles-server 3.0.87 → 3.0.88
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/.eslintignore +5 -0
- package/.eslintrc.json +30 -0
- package/dist/DBEventsManager.js +1 -1
- package/dist/DBEventsManager.js.map +1 -1
- package/dist/DBSchemaBuilder.d.ts.map +1 -1
- package/dist/DBSchemaBuilder.js +6 -6
- package/dist/DBSchemaBuilder.js.map +1 -1
- package/dist/DboBuilder/QueryBuilder/Functions.js +9 -9
- package/dist/DboBuilder/QueryBuilder/Functions.js.map +1 -1
- package/dist/DboBuilder/QueryBuilder/QueryBuilder.d.ts.map +1 -1
- package/dist/DboBuilder/QueryBuilder/QueryBuilder.js +8 -7
- package/dist/DboBuilder/QueryBuilder/QueryBuilder.js.map +1 -1
- package/dist/DboBuilder/QueryBuilder/makeSelectQuery.d.ts.map +1 -1
- package/dist/DboBuilder/QueryBuilder/makeSelectQuery.js +4 -4
- package/dist/DboBuilder/QueryBuilder/makeSelectQuery.js.map +1 -1
- package/dist/DboBuilder/TableHandler.d.ts.map +1 -1
- package/dist/DboBuilder/TableHandler.js +18 -20
- package/dist/DboBuilder/TableHandler.js.map +1 -1
- package/dist/DboBuilder/ViewHandler.d.ts +0 -10
- package/dist/DboBuilder/ViewHandler.d.ts.map +1 -1
- package/dist/DboBuilder/ViewHandler.js +50 -63
- package/dist/DboBuilder/ViewHandler.js.map +1 -1
- package/dist/DboBuilder/delete.js +0 -1
- package/dist/DboBuilder/delete.js.map +1 -1
- package/dist/DboBuilder/getColumns.js +5 -4
- package/dist/DboBuilder/getColumns.js.map +1 -1
- package/dist/DboBuilder/getCondition.d.ts.map +1 -1
- package/dist/DboBuilder/getCondition.js +6 -6
- package/dist/DboBuilder/getCondition.js.map +1 -1
- package/dist/DboBuilder/insert.js +15 -16
- package/dist/DboBuilder/insert.js.map +1 -1
- package/dist/DboBuilder/insertDataParse.d.ts.map +1 -1
- package/dist/DboBuilder/insertDataParse.js +9 -10
- package/dist/DboBuilder/insertDataParse.js.map +1 -1
- package/dist/DboBuilder/parseUpdateRules.js +2 -2
- package/dist/DboBuilder/parseUpdateRules.js.map +1 -1
- package/dist/DboBuilder/runSQL.d.ts.map +1 -1
- package/dist/DboBuilder/runSQL.js +5 -5
- package/dist/DboBuilder/runSQL.js.map +1 -1
- package/dist/DboBuilder/subscribe.js +3 -3
- package/dist/DboBuilder/subscribe.js.map +1 -1
- package/dist/DboBuilder/update.js +5 -6
- package/dist/DboBuilder/update.js.map +1 -1
- package/dist/DboBuilder/uploadFile.d.ts.map +1 -1
- package/dist/DboBuilder/uploadFile.js +1 -1
- package/dist/DboBuilder/uploadFile.js.map +1 -1
- package/dist/DboBuilder.d.ts.map +1 -1
- package/dist/DboBuilder.js +13 -14
- package/dist/DboBuilder.js.map +1 -1
- package/dist/FileManager.d.ts.map +1 -1
- package/dist/FileManager.js +3 -5
- package/dist/FileManager.js.map +1 -1
- package/dist/Filtering.js +7 -7
- package/dist/Filtering.js.map +1 -1
- package/dist/JSONBValidation/validate_jsonb_schema_sql.d.ts +3 -0
- package/dist/JSONBValidation/validate_jsonb_schema_sql.d.ts.map +1 -0
- package/dist/JSONBValidation/validate_jsonb_schema_sql.js +295 -0
- package/dist/JSONBValidation/validate_jsonb_schema_sql.js.map +1 -0
- package/dist/JSONBValidation/validation.d.ts +108 -0
- package/dist/JSONBValidation/validation.d.ts.map +1 -0
- package/dist/JSONBValidation/validation.js +222 -0
- package/dist/JSONBValidation/validation.js.map +1 -0
- package/dist/PostgresNotifListenManager.js +1 -1
- package/dist/PostgresNotifListenManager.js.map +1 -1
- package/dist/Prostgles.d.ts.map +1 -1
- package/dist/Prostgles.js +20 -20
- package/dist/Prostgles.js.map +1 -1
- package/dist/PubSubManager/initPubSubManager.d.ts.map +1 -1
- package/dist/PubSubManager/initPubSubManager.js +10 -7
- package/dist/PubSubManager/initPubSubManager.js.map +1 -1
- package/dist/PublishParser.d.ts.map +1 -1
- package/dist/PublishParser.js +122 -125
- package/dist/PublishParser.js.map +1 -1
- package/dist/SyncReplication.d.ts.map +1 -1
- package/dist/SyncReplication.js +19 -16
- package/dist/SyncReplication.js.map +1 -1
- package/dist/TableConfig.d.ts +9 -5
- package/dist/TableConfig.d.ts.map +1 -1
- package/dist/TableConfig.js +33 -12
- package/dist/TableConfig.js.map +1 -1
- package/dist/index.js +1 -1
- package/dist/index.js.map +1 -1
- package/dist/shortestPath.js +11 -11
- package/dist/shortestPath.js.map +1 -1
- package/dist/validation.d.ts +50 -24
- package/dist/validation.d.ts.map +1 -1
- package/dist/validation.js +177 -53
- package/dist/validation.js.map +1 -1
- package/lib/AuthHandler.d.ts +11 -11
- package/lib/AuthHandler.d.ts.map +1 -1
- package/lib/DBEventsManager.js +1 -1
- package/lib/DBEventsManager.ts +1 -1
- package/lib/DBSchemaBuilder.d.ts +3 -3
- package/lib/DBSchemaBuilder.d.ts.map +1 -1
- package/lib/DBSchemaBuilder.js +6 -6
- package/lib/DBSchemaBuilder.ts +10 -9
- package/lib/DboBuilder/QueryBuilder/Functions.d.ts +3 -3
- package/lib/DboBuilder/QueryBuilder/Functions.d.ts.map +1 -1
- package/lib/DboBuilder/QueryBuilder/Functions.js +9 -9
- package/lib/DboBuilder/QueryBuilder/Functions.ts +13 -13
- package/lib/DboBuilder/QueryBuilder/QueryBuilder.d.ts +3 -3
- package/lib/DboBuilder/QueryBuilder/QueryBuilder.d.ts.map +1 -1
- package/lib/DboBuilder/QueryBuilder/QueryBuilder.js +8 -7
- package/lib/DboBuilder/QueryBuilder/QueryBuilder.ts +12 -12
- package/lib/DboBuilder/QueryBuilder/makeSelectQuery.d.ts.map +1 -1
- package/lib/DboBuilder/QueryBuilder/makeSelectQuery.js +4 -4
- package/lib/DboBuilder/QueryBuilder/makeSelectQuery.ts +5 -5
- package/lib/DboBuilder/TableHandler.d.ts +1 -1
- package/lib/DboBuilder/TableHandler.d.ts.map +1 -1
- package/lib/DboBuilder/TableHandler.js +18 -20
- package/lib/DboBuilder/TableHandler.ts +21 -20
- package/lib/DboBuilder/ViewHandler.d.ts +1 -11
- package/lib/DboBuilder/ViewHandler.d.ts.map +1 -1
- package/lib/DboBuilder/ViewHandler.js +50 -63
- package/lib/DboBuilder/ViewHandler.ts +68 -97
- package/lib/DboBuilder/delete.js +0 -1
- package/lib/DboBuilder/delete.ts +1 -1
- package/lib/DboBuilder/getColumns.js +5 -4
- package/lib/DboBuilder/getColumns.ts +5 -5
- package/lib/DboBuilder/getCondition.d.ts.map +1 -1
- package/lib/DboBuilder/getCondition.js +6 -6
- package/lib/DboBuilder/getCondition.ts +7 -7
- package/lib/DboBuilder/insert.js +15 -16
- package/lib/DboBuilder/insert.ts +18 -18
- package/lib/DboBuilder/insertDataParse.d.ts.map +1 -1
- package/lib/DboBuilder/insertDataParse.js +9 -10
- package/lib/DboBuilder/insertDataParse.ts +42 -43
- package/lib/DboBuilder/parseUpdateRules.js +2 -2
- package/lib/DboBuilder/parseUpdateRules.ts +2 -2
- package/lib/DboBuilder/runSQL.d.ts.map +1 -1
- package/lib/DboBuilder/runSQL.js +5 -5
- package/lib/DboBuilder/runSQL.ts +6 -6
- package/lib/DboBuilder/subscribe.d.ts +1 -1
- package/lib/DboBuilder/subscribe.d.ts.map +1 -1
- package/lib/DboBuilder/subscribe.js +3 -3
- package/lib/DboBuilder/subscribe.ts +3 -3
- package/lib/DboBuilder/update.js +5 -6
- package/lib/DboBuilder/update.ts +6 -6
- package/lib/DboBuilder/uploadFile.d.ts.map +1 -1
- package/lib/DboBuilder/uploadFile.js +1 -1
- package/lib/DboBuilder/uploadFile.ts +2 -2
- package/lib/DboBuilder.d.ts +22 -22
- package/lib/DboBuilder.d.ts.map +1 -1
- package/lib/DboBuilder.js +13 -14
- package/lib/DboBuilder.ts +19 -19
- package/lib/FileManager.d.ts +6 -6
- package/lib/FileManager.d.ts.map +1 -1
- package/lib/FileManager.js +3 -5
- package/lib/FileManager.ts +7 -6
- package/lib/Filtering.d.ts +1 -1
- package/lib/Filtering.d.ts.map +1 -1
- package/lib/Filtering.js +7 -7
- package/lib/Filtering.ts +7 -7
- package/lib/JSONBValidation/validate_jsonb_schema_sql.d.ts +3 -0
- package/lib/JSONBValidation/validate_jsonb_schema_sql.d.ts.map +1 -0
- package/lib/JSONBValidation/validate_jsonb_schema_sql.js +294 -0
- package/lib/JSONBValidation/validate_jsonb_schema_sql.ts +293 -0
- package/lib/JSONBValidation/validation.d.ts +108 -0
- package/lib/JSONBValidation/validation.d.ts.map +1 -0
- package/lib/JSONBValidation/validation.js +221 -0
- package/lib/JSONBValidation/validation.ts +332 -0
- package/lib/PostgresNotifListenManager.d.ts +1 -1
- package/lib/PostgresNotifListenManager.d.ts.map +1 -1
- package/lib/PostgresNotifListenManager.js +1 -1
- package/lib/PostgresNotifListenManager.ts +1 -1
- package/lib/Prostgles.d.ts +14 -14
- package/lib/Prostgles.d.ts.map +1 -1
- package/lib/Prostgles.js +20 -19
- package/lib/Prostgles.ts +22 -21
- package/lib/PubSubManager/PubSubManager.d.ts +7 -7
- package/lib/PubSubManager/PubSubManager.d.ts.map +1 -1
- package/lib/PubSubManager/initPubSubManager.d.ts.map +1 -1
- package/lib/PubSubManager/initPubSubManager.js +10 -7
- package/lib/PubSubManager/initPubSubManager.ts +12 -7
- package/lib/PublishParser.d.ts +32 -32
- package/lib/PublishParser.d.ts.map +1 -1
- package/lib/PublishParser.js +121 -124
- package/lib/PublishParser.ts +125 -127
- package/lib/SchemaWatch.d.ts +1 -1
- package/lib/SchemaWatch.d.ts.map +1 -1
- package/lib/SyncReplication.d.ts +5 -5
- package/lib/SyncReplication.d.ts.map +1 -1
- package/lib/SyncReplication.js +19 -16
- package/lib/SyncReplication.ts +470 -471
- package/lib/TableConfig.d.ts +28 -24
- package/lib/TableConfig.d.ts.map +1 -1
- package/lib/TableConfig.js +33 -12
- package/lib/TableConfig.ts +55 -21
- package/lib/index.js +1 -1
- package/lib/index.ts +1 -1
- package/lib/shortestPath.d.ts +1 -1
- package/lib/shortestPath.d.ts.map +1 -1
- package/lib/shortestPath.js +11 -11
- package/lib/shortestPath.ts +11 -11
- package/package.json +10 -6
- package/tests/client/PID.txt +1 -1
- package/tests/client/package-lock.json +53 -31
- package/tests/client/package.json +4 -1
- package/tests/isomorphic_queries.d.ts.map +1 -1
- package/tests/isomorphic_queries.js +28 -26
- package/tests/isomorphic_queries.ts +30 -29
- package/tests/server/DBoGenerated.d.ts +1 -1
- package/tests/server/index.js +8 -7
- package/tests/server/index.ts +10 -8
- package/tests/server/package-lock.json +76 -58
- package/tests/server/package.json +2 -2
- package/tests/server/server.ts +2 -3
- package/lib/validation.d.ts +0 -100
- package/lib/validation.d.ts.map +0 -1
- package/lib/validation.js +0 -280
- package/lib/validation.ts +0 -360
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"TableHandler.d.ts","sourceRoot":"","sources":["../../lib/DboBuilder/TableHandler.ts"],"names":[],"mappings":"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
|
|
1
|
+
{"version":3,"file":"TableHandler.d.ts","sourceRoot":"","sources":["../../lib/DboBuilder/TableHandler.ts"],"names":[],"mappings":"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"}
|
|
@@ -18,9 +18,9 @@ class TableHandler extends ViewHandler_1.ViewHandler {
|
|
|
18
18
|
this.update = update_1.update.bind(this);
|
|
19
19
|
this.insertDataParse = insertDataParse_1.insertDataParse;
|
|
20
20
|
this.prepareReturning = async (returning, allowedFields) => {
|
|
21
|
-
|
|
21
|
+
const result = [];
|
|
22
22
|
if (returning) {
|
|
23
|
-
|
|
23
|
+
const sBuilder = new QueryBuilder_1.SelectItemBuilder({
|
|
24
24
|
allFields: this.column_names.slice(0),
|
|
25
25
|
allowedFields,
|
|
26
26
|
allowedOrderByFields: allowedFields,
|
|
@@ -79,7 +79,7 @@ class TableHandler extends ViewHandler_1.ViewHandler {
|
|
|
79
79
|
if (synced_field && !row[synced_field]) {
|
|
80
80
|
row[synced_field] = Date.now();
|
|
81
81
|
}
|
|
82
|
-
|
|
82
|
+
const data = this.prepareFieldValues(row, forcedData, allowedFields, fixIssues);
|
|
83
83
|
const dataKeys = (0, prostgles_types_1.getKeys)(data);
|
|
84
84
|
dataKeys.map(col => {
|
|
85
85
|
this.dboBuilder.prostgles?.tableConfigurator?.checkColVal({ table: this.name, col, value: data[col] });
|
|
@@ -106,20 +106,12 @@ class TableHandler extends ViewHandler_1.ViewHandler {
|
|
|
106
106
|
async delete(filter, params, param3_unused, table_rules, localParams) {
|
|
107
107
|
return delete_1._delete.bind(this)(filter, params, param3_unused, table_rules, localParams);
|
|
108
108
|
}
|
|
109
|
-
;
|
|
110
109
|
remove(filter, params, param3_unused, tableRules, localParams) {
|
|
111
110
|
return this.delete(filter, params, param3_unused, tableRules, localParams);
|
|
112
111
|
}
|
|
113
112
|
async upsert(filter, newData, params, table_rules, localParams) {
|
|
114
113
|
try {
|
|
115
|
-
|
|
116
|
-
if (!this.t) {
|
|
117
|
-
return this.dboBuilder.getTX(dbTX => _upsert(dbTX[this.name]));
|
|
118
|
-
}
|
|
119
|
-
else {
|
|
120
|
-
return _upsert(this);
|
|
121
|
-
}
|
|
122
|
-
async function _upsert(tblH) {
|
|
114
|
+
const _upsert = async function (tblH) {
|
|
123
115
|
return tblH.find(filter, { select: "", limit: 1 }, undefined, table_rules, localParams)
|
|
124
116
|
.then(exists => {
|
|
125
117
|
if (exists && exists.length) {
|
|
@@ -129,6 +121,13 @@ class TableHandler extends ViewHandler_1.ViewHandler {
|
|
|
129
121
|
return tblH.insert({ ...newData, ...filter }, params, undefined, table_rules, localParams);
|
|
130
122
|
}
|
|
131
123
|
});
|
|
124
|
+
};
|
|
125
|
+
/* Do it within a transaction to ensure consisency */
|
|
126
|
+
if (!this.t) {
|
|
127
|
+
return this.dboBuilder.getTX(dbTX => _upsert(dbTX[this.name]));
|
|
128
|
+
}
|
|
129
|
+
else {
|
|
130
|
+
return _upsert(this);
|
|
132
131
|
}
|
|
133
132
|
}
|
|
134
133
|
catch (e) {
|
|
@@ -137,7 +136,6 @@ class TableHandler extends ViewHandler_1.ViewHandler {
|
|
|
137
136
|
throw (0, DboBuilder_1.parseError)(e, `dbo.${this.name}.upsert()`);
|
|
138
137
|
}
|
|
139
138
|
}
|
|
140
|
-
;
|
|
141
139
|
/* External request. Cannot sync from server */
|
|
142
140
|
async sync(filter, params, param3_unused, table_rules, localParams) {
|
|
143
141
|
if (!localParams)
|
|
@@ -154,19 +152,19 @@ class TableHandler extends ViewHandler_1.ViewHandler {
|
|
|
154
152
|
if (invalidParams.length)
|
|
155
153
|
throw "Invalid or dissallowed params found: " + invalidParams.join(", ");
|
|
156
154
|
try {
|
|
157
|
-
|
|
158
|
-
|
|
159
|
-
if (!id_fields || !synced_field) {
|
|
155
|
+
const { synced_field, allow_delete } = table_rules.sync;
|
|
156
|
+
if (!table_rules.sync.id_fields.length || !synced_field) {
|
|
160
157
|
const err = "INTERNAL ERROR: id_fields OR synced_field missing from publish";
|
|
161
158
|
console.error(err);
|
|
162
159
|
throw err;
|
|
163
160
|
}
|
|
164
|
-
id_fields = this.parseFieldFilter(id_fields, false);
|
|
165
|
-
|
|
161
|
+
const id_fields = this.parseFieldFilter(table_rules.sync.id_fields, false);
|
|
162
|
+
const syncFields = [...id_fields, synced_field];
|
|
163
|
+
const allowedSelect = this.parseFieldFilter(table_rules?.select.fields ?? false);
|
|
166
164
|
if (syncFields.find(f => !allowedSelect.includes(f))) {
|
|
167
165
|
throw `INTERNAL ERROR: sync field missing from publish.${this.name}.select.fields`;
|
|
168
166
|
}
|
|
169
|
-
|
|
167
|
+
const select = this.getAllowedSelectFields((params || {})?.select || "*", allowedSelect, false);
|
|
170
168
|
if (!select.length)
|
|
171
169
|
throw "Empty select not allowed";
|
|
172
170
|
/* Add sync fields if missing */
|
|
@@ -176,7 +174,7 @@ class TableHandler extends ViewHandler_1.ViewHandler {
|
|
|
176
174
|
});
|
|
177
175
|
/* Step 1: parse command and params */
|
|
178
176
|
return this.find(filter, { select, limit: 0 }, undefined, table_rules, localParams)
|
|
179
|
-
.then(async (
|
|
177
|
+
.then(async (_isValid) => {
|
|
180
178
|
const { filterFields, forcedFilter } = table_rules?.select || {};
|
|
181
179
|
const condition = (await this.prepareWhere({ filter, forcedFilter, filterFields, addKeywords: false, localParams, tableRule: table_rules })).where;
|
|
182
180
|
// let final_filter = getFindFilter(filter, table_rules);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"TableHandler.js","sourceRoot":"","sources":["../../lib/DboBuilder/TableHandler.ts"],"names":[],"mappings":";;;AACA,qDAAoJ;AACpJ,8CAA8H;AAG9H,qCAAmC;AACnC,qCAAkC;AAClC,uDAAoD;AACpD,8DAA4E;AAC5E,qCAAkC;AAClC,+CAAuD;AACvD,yDAAsD;AACtD,wDAAsE;AAWtE,MAAa,YAAa,SAAQ,yBAAW;IAQ3C,YAAY,EAAM,EAAE,eAA4B,EAAE,UAAsB,EAAE,CAAuB,EAAE,IAAoB,EAAE,SAAqB;QAC5I,KAAK,CAAC,EAAE,EAAE,eAAe,EAAE,UAAU,EAAE,CAAC,EAAE,IAAI,EAAE,SAAS,CAAC,CAAC;QAuD7D,qBAAgB,GAAG,mCAAgB,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;QAE/C,WAAM,GAAG,eAAM,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;QA6B3B,oBAAe,GAAG,iCAAe,CAAC;QAKlC,qBAAgB,GAAG,KAAK,EAAE,SAA6B,EAAE,aAAuB,EAAyB,EAAE;YACzG,
|
|
1
|
+
{"version":3,"file":"TableHandler.js","sourceRoot":"","sources":["../../lib/DboBuilder/TableHandler.ts"],"names":[],"mappings":";;;AACA,qDAAoJ;AACpJ,8CAA8H;AAG9H,qCAAmC;AACnC,qCAAkC;AAClC,uDAAoD;AACpD,8DAA4E;AAC5E,qCAAkC;AAClC,+CAAuD;AACvD,yDAAsD;AACtD,wDAAsE;AAWtE,MAAa,YAAa,SAAQ,yBAAW;IAQ3C,YAAY,EAAM,EAAE,eAA4B,EAAE,UAAsB,EAAE,CAAuB,EAAE,IAAoB,EAAE,SAAqB;QAC5I,KAAK,CAAC,EAAE,EAAE,eAAe,EAAE,UAAU,EAAE,CAAC,EAAE,IAAI,EAAE,SAAS,CAAC,CAAC;QAuD7D,qBAAgB,GAAG,mCAAgB,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;QAE/C,WAAM,GAAG,eAAM,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;QA6B3B,oBAAe,GAAG,iCAAe,CAAC;QAKlC,qBAAgB,GAAG,KAAK,EAAE,SAA6B,EAAE,aAAuB,EAAyB,EAAE;YACzG,MAAM,MAAM,GAAiB,EAAE,CAAC;YAChC,IAAI,SAAS,EAAE;gBACb,MAAM,QAAQ,GAAG,IAAI,gCAAiB,CAAC;oBACrC,SAAS,EAAE,IAAI,CAAC,YAAY,CAAC,KAAK,CAAC,CAAC,CAAC;oBACrC,aAAa;oBACb,oBAAoB,EAAE,aAAa;oBACnC,cAAc,EAAE,2BAAe;oBAC/B,SAAS,EAAE,qBAAS,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,KAAK,UAAU,IAAI,CAAC,CAAC,YAAY,CAAC;oBACzE,MAAM,EAAE,IAAI,CAAC,OAAO;oBACpB,OAAO,EAAE,IAAI,CAAC,OAAO;iBACtB,CAAC,CAAC;gBACH,MAAM,QAAQ,CAAC,eAAe,CAAC,SAAS,CAAC,CAAC;gBAE1C,OAAO,QAAQ,CAAC,MAAM,CAAC;aACxB;YAED,OAAO,MAAM,CAAC;QAChB,CAAC,CAAA;QA3GC,IAAI,CAAC,MAAM,GAAG,IAAI,CAAC,MAAM,CAAC;QAE1B,IAAI,CAAC,QAAQ,GAAG;YACd,KAAK,EAAE,IAAI,CAAC,GAAG,EAAE;YACjB,OAAO,EAAE,CAAC;YACV,wBAAwB,EAAE,GAAG;YAC7B,QAAQ,EAAE,IAAI;SACf,CAAC;QACF,IAAI,CAAC,OAAO,GAAG,KAAK,CAAC;QACrB,IAAI,CAAC,QAAQ,GAAG,UAAU,CAAC,SAAS,CAAC,OAAO,CAAC,IAAI,CAAC,IAAI,CAAC,CAAA;IACzD,CAAC;IAED,0CAA0C;IAC1C,SAAS,CAAC,KAAa;QACrB,MAAM,GAAG,GAAG,IAAI,CAAC,GAAG,EAAE,CAAC;QACvB,IAAI,IAAI,CAAC,QAAQ,CAAC,KAAK,GAAG,IAAI,CAAC,GAAG,EAAE,EAAE;YACpC,IAAI,CAAC,QAAQ,CAAC,KAAK,GAAG,IAAI,CAAC,GAAG,EAAE,CAAC;YACjC,IAAI,CAAC,QAAQ,CAAC,OAAO,GAAG,CAAC,CAAC;SAC3B;aAAM;YACL,IAAI,CAAC,QAAQ,CAAC,OAAO,EAAE,CAAC;SACzB;QAED,IAAI,IAAI,CAAC,QAAQ,CAAC,OAAO,GAAG,IAAI,CAAC,QAAQ,CAAC,wBAAwB,EAAE;YAElE,OAAO,IAAI,CAAC;SACb;IACH,CAAC;IAGD,KAAK,CAAC,WAAW,CAAC,IAA2B,EAAE,MAAqB,EAAE,UAAsB,EAAE,WAAyB;QACrH,IAAI;YACF,MAAM,OAAO,GAAG,MAAM,OAAO,CAAC,GAAG,CAC/B,IAAI,CAAC,GAAG,CAAC,KAAK,EAAE,CAAC,MAAM,EAAE,IAAI,CAAC,EAAE,EAAE,CAChC,MAAM,IAAI,CAAC,MAAM,CACf,MAAM,EACN,IAAI,EACJ,EAAE,GAAG,CAAC,MAAM,IAAI,EAAE,CAAC,EAAE,SAAS,EAAE,SAAS,EAAE,EAC3C,UAAU,EACV,EAAE,GAAG,CAAC,WAAW,IAAI,EAAE,CAAC,EAAE,WAAW,EAAE,IAAI,EAAE,CAC9C,CACF,CACF,CAAC;YACF,MAAM,IAAI,GAAG,CAAC,IAAI,IAAI,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC;YAC/D,OAAO,IAAI,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE;gBACpB,MAAM,QAAQ,GAAG,OAAO,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,CAAsB,CAAC,CAAC,CAAA;gBACjE,OAAO,CAAC,CAAC,KAAK,CAAC,QAAQ,CAAC,CAAA;YAC1B,CAAC,CAAC,CAAC,KAAK,CAAC,GAAG,CAAC,EAAE,CAAC,IAAA,iCAAoB,EAAC,GAAG,EAAE,WAAW,EAAE,IAAI,EAAE,IAAI,CAAC,CAAC,CAAC;SACrE;QAAC,OAAO,CAAC,EAAE;YACV,IAAI,WAAW,IAAI,WAAW,CAAC,QAAQ;gBAAE,MAAM,CAAC,CAAC;YACjD,MAAM,IAAA,uBAAU,EAAC,CAAC,EAAE,OAAO,IAAI,CAAC,IAAI,WAAW,CAAC,CAAC;SAClD;IACH,CAAC;IAMD,eAAe,CAAC,EAAE,GAAG,EAAE,UAAU,EAAE,aAAa,EAAE,UAAU,EAAE,SAAS,GAAG,KAAK,EAAmB;QAChG,MAAM,YAAY,GAAG,CAAC,UAAU,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE,YAAY,CAAC;QAE5D,mDAAmD;QACnD,IAAI,YAAY,IAAI,CAAC,GAAG,CAAC,YAAY,CAAC,EAAE;YACtC,GAAG,CAAC,YAAY,CAAC,GAAG,IAAI,CAAC,GAAG,EAAE,CAAC;SAChC;QAED,MAAM,IAAI,GAAG,IAAI,CAAC,kBAAkB,CAAC,GAAG,EAAE,UAAU,EAAE,aAAa,EAAE,SAAS,CAAC,CAAC;QAChF,MAAM,QAAQ,GAAG,IAAA,yBAAO,EAAC,IAAI,CAAC,CAAC;QAE/B,QAAQ,CAAC,GAAG,CAAC,GAAG,CAAC,EAAE;YACjB,IAAI,CAAC,UAAU,CAAC,SAAS,EAAE,iBAAiB,EAAE,WAAW,CAAC,EAAE,KAAK,EAAE,IAAI,CAAC,IAAI,EAAE,GAAG,EAAE,KAAK,EAAE,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC;YACvG,MAAM,SAAS,GAAG,IAAI,CAAC,UAAU,CAAC,SAAS,EAAE,iBAAiB,EAAE,eAAe,CAAC,IAAI,CAAC,IAAI,EAAE,GAAG,CAAC,CAAC;YAChG,IAAI,SAAS,IAAI,IAAA,0BAAQ,EAAC,SAAS,CAAC,IAAI,QAAQ,IAAI,SAAS,IAAI,IAAI,CAAC,GAAG,CAAC,EAAE;gBAC1E,IAAI,SAAS,CAAC,UAAU,EAAE;oBACxB,IAAI,CAAC,GAAG,CAAC,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,QAAQ,EAAE,CAAC,WAAW,EAAE,CAAA;iBAC/C;gBACD,IAAI,SAAS,CAAC,OAAO,EAAE;oBACrB,IAAI,CAAC,GAAG,CAAC,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,QAAQ,EAAE,CAAC,IAAI,EAAE,CAAA;iBACxC;aACF;QACH,CAAC,CAAC,CAAA;QAEF,OAAO,EAAE,IAAI,EAAE,WAAW,EAAE,IAAI,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC,QAAQ,CAAC,QAAQ,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,EAAE,CAAA;IACpG,CAAC;IAGD,KAAK,CAAC,MAAM,CAAC,SAAoC,EAAE,MAAqB,EAAE,aAAyB,EAAE,UAAsB,EAAE,YAA0B;QACrJ,OAAO,eAAM,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,SAAS,EAAE,MAAM,EAAE,aAAa,EAAE,UAAU,EAAE,YAAY,CAAC,CAAA;IACtF,CAAC;IAsBD,eAAe,CAAC,KAAoB;QAClC,IAAI,KAAK,EAAE,MAAM;YAAE,OAAO,aAAa,GAAG,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,QAAQ,EAAE,GAAG,MAAM,GAAG,IAAA,wBAAM,EAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;QAC7G,OAAO,EAAE,CAAC;IACZ,CAAC;IAED,KAAK,CAAC,MAAM,CAAC,MAAe,EAAE,MAAqB,EAAE,aAAyB,EAAE,WAAuB,EAAE,WAAyB;QAChI,OAAO,gBAAO,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,MAAM,EAAE,MAAM,EAAE,aAAa,EAAE,WAAW,EAAE,WAAW,CAAC,CAAC;IACrF,CAAC;IAED,MAAM,CAAC,MAAc,EAAE,MAAqB,EAAE,aAAyB,EAAE,UAAsB,EAAE,WAAyB;QACxH,OAAO,IAAI,CAAC,MAAM,CAAC,MAAM,EAAE,MAAM,EAAE,aAAa,EAAE,UAAU,EAAE,WAAW,CAAC,CAAC;IAC7E,CAAC;IAED,KAAK,CAAC,MAAM,CAAC,MAAc,EAAE,OAAkB,EAAE,MAAqB,EAAE,WAAuB,EAAE,WAAyB;QACxH,IAAI;YACF,MAAM,OAAO,GAAG,KAAK,WAAW,IAAkB;gBAChD,OAAO,IAAI,CAAC,IAAI,CAAC,MAAM,EAAE,EAAE,MAAM,EAAE,EAAE,EAAE,KAAK,EAAE,CAAC,EAAE,EAAE,SAAS,EAAE,WAAW,EAAE,WAAW,CAAC;qBACpF,IAAI,CAAC,MAAM,CAAC,EAAE;oBACb,IAAI,MAAM,IAAI,MAAM,CAAC,MAAM,EAAE;wBAC3B,OAAO,IAAI,CAAC,MAAM,CAAC,MAAM,EAAE,OAAO,EAAE,MAAM,EAAE,WAAW,EAAE,WAAW,CAAC,CAAC;qBACvE;yBAAM;wBACL,OAAO,IAAI,CAAC,MAAM,CAAC,EAAE,GAAG,OAAO,EAAE,GAAG,MAAM,EAAE,EAAE,MAAM,EAAE,SAAS,EAAE,WAAW,EAAE,WAAW,CAAC,CAAC;qBAC5F;gBACH,CAAC,CAAC,CAAC;YACP,CAAC,CAAA;YAED,qDAAqD;YACrD,IAAI,CAAC,IAAI,CAAC,CAAC,EAAE;gBACX,OAAO,IAAI,CAAC,UAAU,CAAC,KAAK,CAAC,IAAI,CAAC,EAAE,CAAC,OAAO,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,CAAiB,CAAC,CAAC,CAAA;aAC/E;iBAAM;gBACL,OAAO,OAAO,CAAC,IAAI,CAAC,CAAC;aACtB;SAEF;QAAC,OAAO,CAAC,EAAE;YACV,IAAI,WAAW,IAAI,WAAW,CAAC,QAAQ;gBAAE,MAAM,CAAC,CAAC;YACjD,MAAM,IAAA,uBAAU,EAAC,CAAC,EAAE,OAAO,IAAI,CAAC,IAAI,WAAW,CAAC,CAAC;SAClD;IACH,CAAC;IAED,+CAA+C;IAC/C,KAAK,CAAC,IAAI,CAAC,MAAc,EAAE,MAAoB,EAAE,aAAwB,EAAE,WAAsB,EAAE,WAAwB;QACzH,IAAI,CAAC,WAAW;YAAE,MAAM,8CAA8C,CAAC;QACvE,MAAM,EAAE,MAAM,EAAE,GAAG,WAAW,CAAC;QAC/B,IAAI,CAAC,MAAM;YAAE,MAAM,gCAAgC,CAAC;QAGpD,IAAI,CAAC,WAAW,IAAI,CAAC,WAAW,CAAC,IAAI,IAAI,CAAC,WAAW,CAAC,MAAM;YAAE,MAAM,8CAA8C,CAAC;QAEnH,IAAI,IAAI,CAAC,CAAC;YAAE,MAAM,sCAAsC,CAAC;QAEzD,MAAM,cAAc,GAAG,CAAC,QAAQ,CAAC,CAAC;QAClC,MAAM,aAAa,GAAG,MAAM,CAAC,IAAI,CAAC,MAAM,IAAI,EAAE,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,cAAc,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,CAAC;QACzF,IAAI,aAAa,CAAC,MAAM;YAAE,MAAM,uCAAuC,GAAG,aAAa,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;QAEnG,IAAI;YAGF,MAAM,EAAE,YAAY,EAAE,YAAY,EAAE,GAAa,WAAW,CAAC,IAAI,CAAC;YAElE,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC,SAAS,CAAC,MAAM,IAAI,CAAC,YAAY,EAAE;gBACvD,MAAM,GAAG,GAAG,gEAAgE,CAAC;gBAC7E,OAAO,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;gBACnB,MAAM,GAAG,CAAC;aACX;YAED,MAAM,SAAS,GAAG,IAAI,CAAC,gBAAgB,CAAC,WAAW,CAAC,IAAI,CAAC,SAAS,EAAE,KAAK,CAAC,CAAC;YAC3E,MAAM,UAAU,GAAG,CAAC,GAAG,SAAS,EAAE,YAAY,CAAC,CAAC;YAEhD,MAAM,aAAa,GAAG,IAAI,CAAC,gBAAgB,CAAC,WAAW,EAAE,MAAM,CAAC,MAAM,IAAI,KAAK,CAAC,CAAC;YACjF,IAAI,UAAU,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,aAAa,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,EAAE;gBACpD,MAAM,mDAAmD,IAAI,CAAC,IAAI,gBAAgB,CAAC;aACpF;YACD,MAAM,MAAM,GAAG,IAAI,CAAC,sBAAsB,CACxC,CAAC,MAAM,IAAI,EAAE,CAAC,EAAE,MAAM,IAAI,GAAG,EAC7B,aAAa,EACb,KAAK,CACN,CAAC;YACF,IAAI,CAAC,MAAM,CAAC,MAAM;gBAAE,MAAM,0BAA0B,CAAC;YAErD,gCAAgC;YAChC,UAAU,CAAC,GAAG,CAAC,EAAE,CAAC,EAAE;gBAClB,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC,EAAE,CAAC;oBAAE,MAAM,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;YAC5C,CAAC,CAAC,CAAC;YAEH,sCAAsC;YACtC,OAAO,IAAI,CAAC,IAAI,CAAC,MAAM,EAAE,EAAE,MAAM,EAAE,KAAK,EAAE,CAAC,EAAE,EAAE,SAAS,EAAE,WAAW,EAAE,WAAW,CAAC;iBAChF,IAAI,CAAC,KAAK,EAAC,QAAQ,EAAC,EAAE;gBAErB,MAAM,EAAE,YAAY,EAAE,YAAY,EAAE,GAAG,WAAW,EAAE,MAAM,IAAI,EAAE,CAAC;gBACjE,MAAM,SAAS,GAAG,CAAC,MAAM,IAAI,CAAC,YAAY,CAAC,EAAE,MAAM,EAAE,YAAY,EAAE,YAAY,EAAE,WAAW,EAAE,KAAK,EAAE,WAAW,EAAE,SAAS,EAAE,WAAW,EAAE,CAAC,CAAC,CAAC,KAAK,CAAC;gBAEnJ,yDAAyD;gBACzD,MAAM,aAAa,GAAG,MAAM,IAAI,CAAC,UAAU,CAAC,gBAAgB,EAAE,CAAC;gBAC/D,OAAO,aAAa,CAAC,OAAO,CAAC;oBAC3B,UAAU,EAAE,IAAI,CAAC,eAAe;oBAChC,SAAS;oBACT,SAAS,EAAE,YAAY;oBACvB,YAAY;oBACZ,MAAM;oBACN,WAAW;oBACX,MAAM,EAAE,EAAE,GAAG,MAAM,EAAE;oBACrB,MAAM,EAAE,EAAE,MAAM,EAAE;iBACnB,CAAC,CAAC,IAAI,CAAC,WAAW,CAAC,EAAE,CAAC,CAAC,EAAE,WAAW,EAAE,SAAS,EAAE,YAAY,EAAE,CAAC,CAAC,CAAC;YACrE,CAAC,CAAC,CAAC;SAEN;QAAC,OAAO,CAAC,EAAE;YACV,IAAI,WAAW,IAAI,WAAW,CAAC,QAAQ;gBAAE,MAAM,CAAC,CAAC;YACjD,MAAM,IAAA,uBAAU,EAAC,CAAC,EAAE,OAAO,IAAI,CAAC,IAAI,SAAS,CAAC,CAAC;SAChD;QAED;;;;;;;;;;;;;;;;;;;;;;;;cAwBM;IACR,CAAC;CAEF;AAjQD,oCAiQC"}
|
|
@@ -79,16 +79,6 @@ export declare class ViewHandler {
|
|
|
79
79
|
getAllowedSelectFields(selectParams: FieldFilter<AnyObject> | undefined, allowed_cols: FieldFilter, allow_empty?: boolean): string[];
|
|
80
80
|
prepareColumnSet(selectParams: FieldFilter<AnyObject> | undefined, allowed_cols: FieldFilter, allow_empty?: boolean, onlyNames?: boolean): string | pgPromise.ColumnSet;
|
|
81
81
|
prepareSelect(selectParams: FieldFilter<AnyObject> | undefined, allowed_cols: FieldFilter, allow_empty?: boolean, tableAlias?: string): string;
|
|
82
|
-
prepareHaving(params: {
|
|
83
|
-
having: Filter;
|
|
84
|
-
select: SelectItem[];
|
|
85
|
-
forcedFilter: object;
|
|
86
|
-
filterFields: FieldFilter;
|
|
87
|
-
addKeywords?: boolean;
|
|
88
|
-
tableAlias?: string;
|
|
89
|
-
localParams: LocalParams;
|
|
90
|
-
tableRule: TableRule;
|
|
91
|
-
}): Promise<string>;
|
|
92
82
|
/**
|
|
93
83
|
* Parses group or simple filter
|
|
94
84
|
*/
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ViewHandler.d.ts","sourceRoot":"","sources":["../../lib/DboBuilder/ViewHandler.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,SAAS,MAAM,YAAY,CAAC;AAExC,OAAO,EACL,UAAU,EAAE,WAAW,EAAE,YAAY,EACrC,OAAO,EAGP,SAAS,IAAI,KAAK,EAClB,SAAS,EAEgB,eAAe,EACzC,MAAM,iBAAiB,CAAC;AACzB,OAAO,EAAE,EAAE,EAAE,eAAe,EAAE,IAAI,EAAE,MAAM,cAAc,CAAC;AACzD,OAAO,EACL,UAAU,EAAiB,kBAAkB,EAAC,MAAM,EACpD,QAAQ,EAAE,WAAW,EAA2D,QAAQ,EACxF,aAAa,EAAE,WAAW,EAAE,mBAAmB,EAChD,MAAM,eAAe,CAAC;AACvB,OAAO,EAAE,KAAK,EAAE,MAAM,iBAAiB,CAAC;AACxC,OAAO,EAAE,SAAS,EAAE,UAAU,EAAE,WAAW,EAAE,MAAM,kBAAkB,CAAC;AAGtE,OAAO,
|
|
1
|
+
{"version":3,"file":"ViewHandler.d.ts","sourceRoot":"","sources":["../../lib/DboBuilder/ViewHandler.ts"],"names":[],"mappings":"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"}
|
|
@@ -126,7 +126,7 @@ class ViewHandler {
|
|
|
126
126
|
// fix this
|
|
127
127
|
// and also make hot schema reload over ws
|
|
128
128
|
this.colSet = new ColSet(this.columns, this.name);
|
|
129
|
-
const { $and: $and_key, $or: $or_key } = this.dboBuilder.prostgles.keywords;
|
|
129
|
+
// const { $and: $and_key, $or: $or_key } = this.dboBuilder.prostgles.keywords;
|
|
130
130
|
// this.tsDataName = snakify(this.name, true);
|
|
131
131
|
// if(this.tsDataName === "T") this.tsDataName = this.tsDataName + "_";
|
|
132
132
|
// this.tsDataDef = `export type ${this.tsDataName} = {\n`;
|
|
@@ -225,7 +225,8 @@ class ViewHandler {
|
|
|
225
225
|
const getJoinCondition = (on, leftTable, rightTable) => {
|
|
226
226
|
return on.map(cond => Object.keys(cond).map(lKey => `${leftTable}.${lKey} = ${rightTable}.${cond[lKey]}`).join("\nAND ")).join(" OR ");
|
|
227
227
|
};
|
|
228
|
-
let toOne = true
|
|
228
|
+
let toOne = true;
|
|
229
|
+
const query = this.joins.map(({ tables, on, type }, i) => {
|
|
229
230
|
if (type.split("-")[1] === "many") {
|
|
230
231
|
toOne = false;
|
|
231
232
|
}
|
|
@@ -288,9 +289,9 @@ class ViewHandler {
|
|
|
288
289
|
if (!jo)
|
|
289
290
|
throw `Joining ${t1} <-> ${t2} dissallowed or missing`;
|
|
290
291
|
;
|
|
291
|
-
|
|
292
|
+
const on = [];
|
|
292
293
|
jo.on.map(cond => {
|
|
293
|
-
|
|
294
|
+
const condArr = [];
|
|
294
295
|
Object.keys(cond).map(leftKey => {
|
|
295
296
|
const rightKey = cond[leftKey];
|
|
296
297
|
/* Left table is joining on keys */
|
|
@@ -311,7 +312,7 @@ class ViewHandler {
|
|
|
311
312
|
on
|
|
312
313
|
};
|
|
313
314
|
});
|
|
314
|
-
|
|
315
|
+
const expectOne = false;
|
|
315
316
|
// paths.map(({ source, target, on }, i) => {
|
|
316
317
|
// if(expectOne && on.length === 1){
|
|
317
318
|
// const sourceCol = on[0][1];
|
|
@@ -410,7 +411,7 @@ class ViewHandler {
|
|
|
410
411
|
const firstValid = fieldParams.find(fp => fp !== undefined);
|
|
411
412
|
return this.parseFieldFilter(firstValid);
|
|
412
413
|
};
|
|
413
|
-
|
|
414
|
+
const res = {
|
|
414
415
|
allColumns,
|
|
415
416
|
getColumns: tableRules?.getColumns ?? true,
|
|
416
417
|
getInfo: tableRules?.getColumns ?? true,
|
|
@@ -527,13 +528,10 @@ class ViewHandler {
|
|
|
527
528
|
}
|
|
528
529
|
/* Validate publish */
|
|
529
530
|
if (tableRules) {
|
|
530
|
-
let fields, filterFields, forcedFilter, maxLimit;
|
|
531
531
|
if (!tableRules.select)
|
|
532
532
|
throw "select rules missing for " + this.name;
|
|
533
|
-
fields = tableRules.select.fields;
|
|
534
|
-
|
|
535
|
-
filterFields = tableRules.select.filterFields;
|
|
536
|
-
maxLimit = tableRules.select.maxLimit;
|
|
533
|
+
const fields = tableRules.select.fields;
|
|
534
|
+
const maxLimit = tableRules.select.maxLimit;
|
|
537
535
|
if (tableRules.select !== "*" && typeof tableRules.select !== "boolean" && !(0, DboBuilder_1.isPlainObject)(tableRules.select))
|
|
538
536
|
throw `\nINVALID publish.${this.name}.select\nExpecting any of: "*" | { fields: "*" } | true | false`;
|
|
539
537
|
if (!fields)
|
|
@@ -541,7 +539,7 @@ class ViewHandler {
|
|
|
541
539
|
if (maxLimit && !Number.isInteger(maxLimit))
|
|
542
540
|
throw ` invalid publish.${this.name}.select.maxLimit -> expecting integer but got ` + maxLimit;
|
|
543
541
|
}
|
|
544
|
-
|
|
542
|
+
const q = await (0, QueryBuilder_1.getNewQuery)(this, filter, selectParams, param3_unused, tableRules, localParams, this.columns), _query = (0, makeSelectQuery_1.makeSelectQuery)(this, q, undefined, undefined, selectParams);
|
|
545
543
|
// console.log(_query, JSON.stringify(q, null, 2))
|
|
546
544
|
if (testRule) {
|
|
547
545
|
try {
|
|
@@ -606,7 +604,7 @@ class ViewHandler {
|
|
|
606
604
|
}
|
|
607
605
|
subscribeOne(filter, params = {}, localFunc, table_rules, localParams) {
|
|
608
606
|
//@ts-ignore
|
|
609
|
-
|
|
607
|
+
const func = localParams ? undefined : (rows) => localFunc(rows[0]);
|
|
610
608
|
//@ts-ignore
|
|
611
609
|
return this.subscribe(filter, { ...params, limit: 2 }, func, table_rules, localParams);
|
|
612
610
|
}
|
|
@@ -614,10 +612,10 @@ class ViewHandler {
|
|
|
614
612
|
filter = filter || {};
|
|
615
613
|
try {
|
|
616
614
|
return await this.find(filter, { select: "", limit: 0 }, undefined, table_rules, localParams)
|
|
617
|
-
.then(async (
|
|
615
|
+
.then(async (_allowed) => {
|
|
618
616
|
const { filterFields, forcedFilter } = table_rules?.select || {};
|
|
619
617
|
const where = (await this.prepareWhere({ filter, forcedFilter, filterFields, addKeywords: true, localParams, tableRule: table_rules })).where;
|
|
620
|
-
|
|
618
|
+
const query = "SELECT COUNT(*) FROM " + this.escapedName + " " + where;
|
|
621
619
|
return (this.t || this.db).one(query, { _psqlWS_tableName: this.name }).then(({ count }) => +count);
|
|
622
620
|
});
|
|
623
621
|
}
|
|
@@ -652,7 +650,8 @@ class ViewHandler {
|
|
|
652
650
|
}
|
|
653
651
|
}
|
|
654
652
|
getAllowedSelectFields(selectParams = "*", allowed_cols, allow_empty = true) {
|
|
655
|
-
|
|
653
|
+
const all_columns = this.column_names.slice(0);
|
|
654
|
+
let allowedFields = all_columns.slice(0), resultFields = [];
|
|
656
655
|
if (selectParams) {
|
|
657
656
|
resultFields = this.parseFieldFilter(selectParams, allow_empty);
|
|
658
657
|
}
|
|
@@ -666,32 +665,24 @@ class ViewHandler {
|
|
|
666
665
|
return col_names;
|
|
667
666
|
}
|
|
668
667
|
prepareColumnSet(selectParams = "*", allowed_cols, allow_empty = true, onlyNames = true) {
|
|
669
|
-
|
|
668
|
+
const all_columns = this.column_names.slice(0);
|
|
670
669
|
let col_names = this.getAllowedSelectFields(selectParams, all_columns, allow_empty);
|
|
671
670
|
/** Ensure order is maintained */
|
|
672
671
|
if (selectParams && Array.isArray(selectParams) && typeof selectParams[0] === "string") {
|
|
673
672
|
col_names = col_names.sort((a, b) => selectParams.indexOf(a) - selectParams.indexOf(b));
|
|
674
673
|
}
|
|
675
|
-
|
|
676
|
-
|
|
677
|
-
return onlyNames ? colSet.names : colSet;
|
|
678
|
-
}
|
|
679
|
-
catch (e) {
|
|
680
|
-
throw e;
|
|
681
|
-
}
|
|
674
|
+
const colSet = new DboBuilder_1.pgp.helpers.ColumnSet(col_names);
|
|
675
|
+
return onlyNames ? colSet.names : colSet;
|
|
682
676
|
}
|
|
683
677
|
prepareSelect(selectParams = "*", allowed_cols, allow_empty = true, tableAlias) {
|
|
684
678
|
if (tableAlias) {
|
|
685
|
-
|
|
679
|
+
const cs = this.prepareColumnSet(selectParams, allowed_cols, true, false);
|
|
686
680
|
return cs.columns.map(col => `${this.escapedName}.${(0, prostgles_types_1.asName)(col.name)}`).join(", ");
|
|
687
681
|
}
|
|
688
682
|
else {
|
|
689
683
|
return this.prepareColumnSet(selectParams, allowed_cols, true, true);
|
|
690
684
|
}
|
|
691
685
|
}
|
|
692
|
-
async prepareHaving(params) {
|
|
693
|
-
return "";
|
|
694
|
-
}
|
|
695
686
|
/**
|
|
696
687
|
* Parses group or simple filter
|
|
697
688
|
*/
|
|
@@ -706,7 +697,7 @@ class ViewHandler {
|
|
|
706
697
|
if (!f)
|
|
707
698
|
throw "Invalid/missing group filter provided";
|
|
708
699
|
let result = "";
|
|
709
|
-
|
|
700
|
+
const keys = (0, prostgles_types_1.getKeys)(f);
|
|
710
701
|
if (!keys.length)
|
|
711
702
|
return result;
|
|
712
703
|
if ((keys.includes($and_key) || keys.includes($or_key))) {
|
|
@@ -718,7 +709,7 @@ class ViewHandler {
|
|
|
718
709
|
const { [$and_key]: $and, [$or_key]: $or } = f, group = $and || $or;
|
|
719
710
|
if (group && group.length) {
|
|
720
711
|
const operand = $and ? " AND " : " OR ";
|
|
721
|
-
|
|
712
|
+
const conditions = (await Promise.all(group.map(async (gf) => await parseFullFilter(gf, group, isForcedFilterBypass)))).filter(c => c);
|
|
722
713
|
if (conditions && conditions.length) {
|
|
723
714
|
if (conditions.length === 1)
|
|
724
715
|
return conditions.join(operand);
|
|
@@ -758,8 +749,8 @@ class ViewHandler {
|
|
|
758
749
|
let res = "";
|
|
759
750
|
const thisTable = this.name;
|
|
760
751
|
const isNotExists = ["$notExists", "$notExistsJoined"].includes(eConfig.existType);
|
|
761
|
-
|
|
762
|
-
|
|
752
|
+
const { f2, tables, isJoined } = eConfig;
|
|
753
|
+
const t2 = tables[tables.length - 1];
|
|
763
754
|
tables.forEach(t => {
|
|
764
755
|
if (!this.dboBuilder.dbo[t])
|
|
765
756
|
throw { stack: ["prepareExistCondition()"], message: `Invalid or dissallowed table: ${t}` };
|
|
@@ -772,7 +763,7 @@ class ViewHandler {
|
|
|
772
763
|
let joinPaths = [];
|
|
773
764
|
let expectOne = true;
|
|
774
765
|
tables.map((t2, depth) => {
|
|
775
|
-
|
|
766
|
+
const t1 = depth ? tables[depth - 1] : thisTable;
|
|
776
767
|
let exactPaths = [t1, t2];
|
|
777
768
|
if (!depth && eConfig.shortestJoin)
|
|
778
769
|
exactPaths = undefined;
|
|
@@ -780,16 +771,16 @@ class ViewHandler {
|
|
|
780
771
|
expectOne = Boolean(expectOne && jinf.expectOne);
|
|
781
772
|
joinPaths = joinPaths.concat(jinf.paths);
|
|
782
773
|
});
|
|
783
|
-
|
|
774
|
+
const r = makeJoin({ paths: joinPaths, expectOne }, 0);
|
|
784
775
|
return r;
|
|
785
776
|
function makeJoin(joinInfo, ji) {
|
|
786
777
|
const { paths } = joinInfo;
|
|
787
778
|
const jp = paths[ji];
|
|
788
779
|
// let prevTable = ji? paths[ji - 1].table : jp.source;
|
|
789
|
-
|
|
790
|
-
|
|
791
|
-
|
|
792
|
-
|
|
780
|
+
const table = paths[ji].table;
|
|
781
|
+
const tableAlias = (0, prostgles_types_1.asName)(ji < paths.length - 1 ? `jd${ji}` : table);
|
|
782
|
+
const prevTableAlias = (0, prostgles_types_1.asName)(ji ? `jd${ji - 1}` : thisTable);
|
|
783
|
+
const cond = `${jp.on.map(c => {
|
|
793
784
|
return c.map(([c1, c2]) => `${prevTableAlias}.${(0, prostgles_types_1.asName)(c1)} = ${tableAlias}.${(0, prostgles_types_1.asName)(c2)}`).join(" AND ");
|
|
794
785
|
}).join("\n OR ")}`;
|
|
795
786
|
let j = `SELECT 1 \n` +
|
|
@@ -804,7 +795,7 @@ class ViewHandler {
|
|
|
804
795
|
j += `AND ${makeJoin(joinInfo, ji + 1)} \n`;
|
|
805
796
|
}
|
|
806
797
|
j = indent(j, ji + 1);
|
|
807
|
-
|
|
798
|
+
const res = `${isNotExists ? " NOT " : " "} EXISTS ( \n` +
|
|
808
799
|
j +
|
|
809
800
|
`) \n`;
|
|
810
801
|
return indent(res, ji);
|
|
@@ -821,21 +812,15 @@ class ViewHandler {
|
|
|
821
812
|
throw "Dissallowed";
|
|
822
813
|
({ forcedFilter, filterFields } = t2Rules.select);
|
|
823
814
|
}
|
|
824
|
-
|
|
825
|
-
|
|
826
|
-
|
|
827
|
-
|
|
828
|
-
|
|
829
|
-
|
|
830
|
-
|
|
831
|
-
|
|
832
|
-
|
|
833
|
-
})).where;
|
|
834
|
-
}
|
|
835
|
-
catch (err) {
|
|
836
|
-
// console.trace(err)
|
|
837
|
-
throw err;
|
|
838
|
-
}
|
|
815
|
+
finalWhere = (await this.dboBuilder.dbo[t2].prepareWhere({
|
|
816
|
+
filter: f2,
|
|
817
|
+
forcedFilter,
|
|
818
|
+
filterFields,
|
|
819
|
+
addKeywords: false,
|
|
820
|
+
tableAlias,
|
|
821
|
+
localParams,
|
|
822
|
+
tableRule: t2Rules
|
|
823
|
+
})).where;
|
|
839
824
|
if (!isJoined) {
|
|
840
825
|
res = `${isNotExists ? " NOT " : " "} EXISTS (SELECT 1 \nFROM ${(0, prostgles_types_1.asName)(t2)} \n${finalWhere ? `WHERE ${finalWhere}` : ""}) `;
|
|
841
826
|
}
|
|
@@ -899,7 +884,7 @@ class ViewHandler {
|
|
|
899
884
|
}
|
|
900
885
|
else if (Array.isArray(orderBy)) {
|
|
901
886
|
/* Order by is formed of a list of ascending field names */
|
|
902
|
-
|
|
887
|
+
const _orderBy = orderBy;
|
|
903
888
|
if (_orderBy && !_orderBy.find(v => typeof v !== "string")) {
|
|
904
889
|
/* [string] */
|
|
905
890
|
_ob = _orderBy.map(key => ({ key, asc: true }));
|
|
@@ -916,7 +901,7 @@ class ViewHandler {
|
|
|
916
901
|
return [];
|
|
917
902
|
const validatedAggAliases = select.filter(s => s.type !== "joinedColumn" &&
|
|
918
903
|
(!s.fields.length || s.fields.every(f => allowed_cols.includes(f)))).map(s => s.alias);
|
|
919
|
-
|
|
904
|
+
const bad_param = _ob.find(({ key }) => !(validatedAggAliases || []).includes(key) &&
|
|
920
905
|
!allowed_cols.includes(key));
|
|
921
906
|
if (!bad_param) {
|
|
922
907
|
const selectedAliases = select.filter(s => s.selected).map(s => s.alias);
|
|
@@ -1001,15 +986,16 @@ class ViewHandler {
|
|
|
1001
986
|
* @param {string[]} allowed_cols - allowed columns (excluding forcedData) from table rules
|
|
1002
987
|
*/
|
|
1003
988
|
prepareFieldValues(obj = {}, forcedData = {}, allowed_cols, fixIssues = false) {
|
|
1004
|
-
|
|
989
|
+
const column_names = this.column_names.slice(0);
|
|
1005
990
|
if (!column_names || !column_names.length)
|
|
1006
991
|
throw "table column_names mising";
|
|
1007
992
|
let _allowed_cols = column_names.slice(0);
|
|
1008
|
-
|
|
993
|
+
const _obj = { ...obj };
|
|
1009
994
|
if (allowed_cols) {
|
|
1010
995
|
_allowed_cols = this.parseFieldFilter(allowed_cols, false);
|
|
1011
996
|
}
|
|
1012
|
-
let final_filter = { ..._obj }
|
|
997
|
+
let final_filter = { ..._obj };
|
|
998
|
+
const filter_keys = Object.keys(final_filter);
|
|
1013
999
|
if (fixIssues && filter_keys.length) {
|
|
1014
1000
|
final_filter = {};
|
|
1015
1001
|
filter_keys
|
|
@@ -1040,7 +1026,8 @@ class ViewHandler {
|
|
|
1040
1026
|
if (!all_cols)
|
|
1041
1027
|
throw "all_cols missing";
|
|
1042
1028
|
const all_fields = all_cols; // || this.column_names.slice(0);
|
|
1043
|
-
let colNames = []
|
|
1029
|
+
let colNames = [];
|
|
1030
|
+
const initialParams = JSON.stringify(fieldParams);
|
|
1044
1031
|
if (fieldParams) {
|
|
1045
1032
|
/*
|
|
1046
1033
|
"field1, field2, field4" | "*"
|
|
@@ -1082,7 +1069,7 @@ class ViewHandler {
|
|
|
1082
1069
|
if (!(0, prostgles_types_1.getKeys)(fieldParams).length) {
|
|
1083
1070
|
return []; //all_fields.slice(0) as typeof all_fields;
|
|
1084
1071
|
}
|
|
1085
|
-
|
|
1072
|
+
const keys = (0, prostgles_types_1.getKeys)(fieldParams);
|
|
1086
1073
|
if (keys[0] === "") {
|
|
1087
1074
|
if (allow_empty) {
|
|
1088
1075
|
return [""];
|
|
@@ -1097,7 +1084,7 @@ class ViewHandler {
|
|
|
1097
1084
|
if (!allowedVals.includes(fieldParams[key]))
|
|
1098
1085
|
throw `Invalid field selection value for: { ${key}: ${fieldParams[key]} }. \n Allowed values: ${allowedVals.join(" OR ")}`;
|
|
1099
1086
|
});
|
|
1100
|
-
|
|
1087
|
+
const allowed = keys.filter(key => fieldParams[key]), disallowed = keys.filter(key => !fieldParams[key]);
|
|
1101
1088
|
if (disallowed && disallowed.length) {
|
|
1102
1089
|
return all_fields.filter(col => !disallowed.includes(col));
|
|
1103
1090
|
}
|
|
@@ -1112,7 +1099,7 @@ class ViewHandler {
|
|
|
1112
1099
|
}
|
|
1113
1100
|
return colNames;
|
|
1114
1101
|
function validate(cols) {
|
|
1115
|
-
|
|
1102
|
+
const bad_keys = cols.filter(col => !all_fields.includes(col));
|
|
1116
1103
|
if (bad_keys && bad_keys.length) {
|
|
1117
1104
|
throw "\nUnrecognised or illegal fields: " + bad_keys.join(", ");
|
|
1118
1105
|
}
|