prostgles-server 2.0.144 → 2.0.147
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/AuthHandler.d.ts +15 -13
- package/dist/AuthHandler.d.ts.map +1 -1
- package/dist/AuthHandler.js +41 -43
- package/dist/AuthHandler.js.map +1 -1
- package/dist/DBEventsManager.d.ts +6 -5
- package/dist/DBEventsManager.d.ts.map +1 -1
- package/dist/DBEventsManager.js +8 -2
- package/dist/DBEventsManager.js.map +1 -1
- package/dist/DboBuilder.d.ts +62 -50
- package/dist/DboBuilder.d.ts.map +1 -1
- package/dist/DboBuilder.js +229 -170
- package/dist/DboBuilder.js.map +1 -1
- package/dist/FileManager.d.ts +5 -5
- package/dist/FileManager.d.ts.map +1 -1
- package/dist/FileManager.js +48 -21
- package/dist/FileManager.js.map +1 -1
- package/dist/Filtering.d.ts.map +1 -1
- package/dist/Filtering.js +11 -9
- package/dist/Filtering.js.map +1 -1
- package/dist/PostgresNotifListenManager.d.ts +3 -3
- package/dist/PostgresNotifListenManager.d.ts.map +1 -1
- package/dist/PostgresNotifListenManager.js +7 -5
- package/dist/PostgresNotifListenManager.js.map +1 -1
- package/dist/Prostgles.d.ts +6 -9
- package/dist/Prostgles.d.ts.map +1 -1
- package/dist/Prostgles.js +122 -83
- package/dist/Prostgles.js.map +1 -1
- package/dist/PubSubManager.d.ts +9 -9
- package/dist/PubSubManager.d.ts.map +1 -1
- package/dist/PubSubManager.js +10 -9
- package/dist/PubSubManager.js.map +1 -1
- package/dist/QueryBuilder.d.ts +26 -8
- package/dist/QueryBuilder.d.ts.map +1 -1
- package/dist/QueryBuilder.js +114 -46
- package/dist/QueryBuilder.js.map +1 -1
- package/dist/SyncReplication.d.ts +1 -1
- package/dist/SyncReplication.d.ts.map +1 -1
- package/dist/SyncReplication.js +31 -29
- package/dist/SyncReplication.js.map +1 -1
- package/dist/TableConfig.d.ts +0 -1
- package/dist/TableConfig.d.ts.map +1 -1
- package/dist/TableConfig.js +25 -17
- package/dist/TableConfig.js.map +1 -1
- package/dist/shortestPath.d.ts.map +1 -1
- package/dist/shortestPath.js.map +1 -1
- package/dist/utils.d.ts +2 -0
- package/dist/utils.d.ts.map +1 -1
- package/dist/utils.js +6 -0
- package/dist/utils.js.map +1 -1
- package/lib/AuthHandler.ts +50 -40
- package/lib/DBEventsManager.ts +14 -7
- package/lib/DboBuilder.ts +265 -199
- package/lib/FileManager.ts +30 -21
- package/lib/Filtering.ts +19 -16
- package/lib/PostgresNotifListenManager.ts +11 -10
- package/lib/Prostgles.ts +89 -73
- package/lib/PubSubManager.ts +13 -11
- package/lib/QueryBuilder.ts +135 -54
- package/lib/SyncReplication.ts +10 -10
- package/lib/TableConfig.ts +23 -15
- package/lib/shortestPath.ts +6 -4
- package/lib/utils.ts +7 -1
- package/package.json +7 -8
- package/tests/client/PID.txt +1 -1
- package/tests/client/index.js +10 -7
- package/tests/client/index.ts +12 -8
- package/tests/client/package-lock.json +14 -14
- package/tests/client/package.json +2 -2
- package/tests/client/tsconfig.json +2 -2
- package/tests/client_only_queries.js +127 -104
- package/tests/client_only_queries.ts +43 -17
- package/tests/isomorphic_queries.js +44 -6
- package/tests/isomorphic_queries.ts +42 -6
- package/tests/server/package-lock.json +27 -29
- package/tests/server/package.json +2 -2
- package/tests/server/tsconfig.json +2 -2
- package/tsconfig.json +3 -2
package/dist/Prostgles.js
CHANGED
|
@@ -4,7 +4,7 @@
|
|
|
4
4
|
* Licensed under the MIT License. See LICENSE in the project root for license information.
|
|
5
5
|
*--------------------------------------------------------------------------------------------*/
|
|
6
6
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
7
|
-
exports.isSuperUser = exports.PublishParser = exports.
|
|
7
|
+
exports.isSuperUser = exports.PublishParser = exports.Prostgles = exports.JOIN_TYPES = void 0;
|
|
8
8
|
const promise = require("bluebird");
|
|
9
9
|
const pgPromise = require("pg-promise");
|
|
10
10
|
const FileManager_1 = require("./FileManager");
|
|
@@ -18,36 +18,40 @@ const DboBuilder_1 = require("./DboBuilder");
|
|
|
18
18
|
const PubSubManager_1 = require("./PubSubManager");
|
|
19
19
|
const prostgles_types_1 = require("prostgles-types");
|
|
20
20
|
const DBEventsManager_1 = require("./DBEventsManager");
|
|
21
|
-
|
|
21
|
+
const TABLE_METHODS = ["update", "find", "findOne", "insert", "delete", "upsert"];
|
|
22
22
|
function getDbConnection(dbConnection, options, debugQueries = false, onNotice) {
|
|
23
|
-
let pgp = pgPromise(
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
|
|
48
|
-
|
|
49
|
-
|
|
50
|
-
|
|
23
|
+
let pgp = pgPromise({
|
|
24
|
+
promiseLib: promise,
|
|
25
|
+
...(debugQueries ? {
|
|
26
|
+
query: function (e) {
|
|
27
|
+
console.log({ psql: e.query, params: e.params });
|
|
28
|
+
},
|
|
29
|
+
} : {}),
|
|
30
|
+
...((onNotice || debugQueries) ? {
|
|
31
|
+
connect: function (client, dc, isFresh) {
|
|
32
|
+
if (isFresh && !client.listeners('notice').length) {
|
|
33
|
+
client.on('notice', function (msg) {
|
|
34
|
+
if (onNotice) {
|
|
35
|
+
onNotice(msg, utils_1.get(msg, "message"));
|
|
36
|
+
}
|
|
37
|
+
else {
|
|
38
|
+
console.log("notice: %j", utils_1.get(msg, "message"));
|
|
39
|
+
}
|
|
40
|
+
});
|
|
41
|
+
}
|
|
42
|
+
if (isFresh && !client.listeners('error').length) {
|
|
43
|
+
client.on('error', function (msg) {
|
|
44
|
+
if (onNotice) {
|
|
45
|
+
onNotice(msg, utils_1.get(msg, "message"));
|
|
46
|
+
}
|
|
47
|
+
else {
|
|
48
|
+
console.log("error: %j", utils_1.get(msg, "message"));
|
|
49
|
+
}
|
|
50
|
+
});
|
|
51
|
+
}
|
|
52
|
+
},
|
|
53
|
+
} : {})
|
|
54
|
+
});
|
|
51
55
|
pgp.pg.defaults.max = 70;
|
|
52
56
|
// /* Casts count/sum/max to bigint. Needs rework to remove casting "+count" and other issues; */
|
|
53
57
|
// pgp.pg.types.setTypeParser(20, BigInt);
|
|
@@ -69,7 +73,6 @@ const DEFAULT_KEYWORDS = {
|
|
|
69
73
|
const fs = require("fs");
|
|
70
74
|
class Prostgles {
|
|
71
75
|
constructor(params) {
|
|
72
|
-
var _a, _b, _c;
|
|
73
76
|
this.opts = {
|
|
74
77
|
DEBUG_MODE: false,
|
|
75
78
|
dbConnection: {
|
|
@@ -97,8 +100,7 @@ class Prostgles {
|
|
|
97
100
|
this.isSuperUser = false;
|
|
98
101
|
this.connectedSockets = [];
|
|
99
102
|
this.pushSocketSchema = async (socket) => {
|
|
100
|
-
|
|
101
|
-
let auth = await ((_a = this.authHandler) === null || _a === void 0 ? void 0 : _a.makeSocketAuth(socket)) || {};
|
|
103
|
+
let auth = await this.authHandler?.makeSocketAuth(socket) || {};
|
|
102
104
|
// let needType = this.publishRawSQL && typeof this.publishRawSQL === "function";
|
|
103
105
|
// let DATA_TYPES = !needType? [] : await this.db.any("SELECT oid, typname FROM pg_type");
|
|
104
106
|
// let USER_TABLES = !needType? [] : await this.db.any("SELECT relid, relname FROM pg_catalog.pg_statio_user_tables");
|
|
@@ -107,7 +109,7 @@ class Prostgles {
|
|
|
107
109
|
let rawSQL = false;
|
|
108
110
|
const { dbo, db, pgp, publishParser } = this;
|
|
109
111
|
try {
|
|
110
|
-
schema = await publishParser
|
|
112
|
+
schema = await publishParser?.getSchemaFromPublish(socket);
|
|
111
113
|
}
|
|
112
114
|
catch (e) {
|
|
113
115
|
publishValidationError = "Server Error: PUBLISH VALIDATION ERROR";
|
|
@@ -118,17 +120,17 @@ class Prostgles {
|
|
|
118
120
|
/* RUN Raw sql from client IF PUBLISHED
|
|
119
121
|
*/
|
|
120
122
|
let fullSchema = [];
|
|
121
|
-
let allTablesViews = this.dboBuilder.tablesOrViews;
|
|
123
|
+
let allTablesViews = this.dboBuilder.tablesOrViews ?? [];
|
|
122
124
|
if (this.opts.publishRawSQL && typeof this.opts.publishRawSQL === "function") {
|
|
123
125
|
const canRunSQL = async () => {
|
|
124
|
-
const publishParams = await this.publishParser
|
|
125
|
-
let res = await this.opts.publishRawSQL(publishParams);
|
|
126
|
+
const publishParams = await this.publishParser?.getPublishParams({ socket });
|
|
127
|
+
let res = await this.opts.publishRawSQL?.(publishParams);
|
|
126
128
|
return Boolean(res && typeof res === "boolean" || res === "*");
|
|
127
129
|
};
|
|
128
130
|
if (await canRunSQL()) {
|
|
129
131
|
socket.removeAllListeners(prostgles_types_1.CHANNELS.SQL);
|
|
130
132
|
socket.on(prostgles_types_1.CHANNELS.SQL, async ({ query, params, options }, cb = (...callback) => { }) => {
|
|
131
|
-
if (!this.dbo
|
|
133
|
+
if (!this.dbo?.sql)
|
|
132
134
|
throw "Internal error: sql handler missing";
|
|
133
135
|
this.dbo.sql(query, params, options, { socket }).then(res => {
|
|
134
136
|
cb(null, res);
|
|
@@ -157,9 +159,17 @@ class Prostgles {
|
|
|
157
159
|
}
|
|
158
160
|
});
|
|
159
161
|
}
|
|
160
|
-
const methods = await publishParser
|
|
161
|
-
socket.emit(prostgles_types_1.CHANNELS.SCHEMA,
|
|
162
|
-
|
|
162
|
+
const methods = await publishParser?.getMethods(socket);
|
|
163
|
+
socket.emit(prostgles_types_1.CHANNELS.SCHEMA, {
|
|
164
|
+
schema,
|
|
165
|
+
methods: DboBuilder_1.getKeys(methods),
|
|
166
|
+
...(fullSchema ? { fullSchema } : {}),
|
|
167
|
+
rawSQL,
|
|
168
|
+
joinTables: joinTables2,
|
|
169
|
+
auth,
|
|
170
|
+
version,
|
|
171
|
+
err: publishValidationError
|
|
172
|
+
});
|
|
163
173
|
};
|
|
164
174
|
if (!params)
|
|
165
175
|
throw "ProstglesInitOptions missing";
|
|
@@ -179,11 +189,14 @@ class Prostgles {
|
|
|
179
189
|
}
|
|
180
190
|
Object.assign(this.opts, params);
|
|
181
191
|
/* set defaults */
|
|
182
|
-
if (
|
|
183
|
-
this.opts.fileTable.tableName =
|
|
192
|
+
if (this.opts?.fileTable) {
|
|
193
|
+
this.opts.fileTable.tableName = this.opts?.fileTable?.tableName || "media";
|
|
184
194
|
}
|
|
185
195
|
this.opts.schema = this.opts.schema || "public";
|
|
186
|
-
this.keywords =
|
|
196
|
+
this.keywords = {
|
|
197
|
+
...DEFAULT_KEYWORDS,
|
|
198
|
+
...params.keywords,
|
|
199
|
+
};
|
|
187
200
|
}
|
|
188
201
|
get dboBuilder() {
|
|
189
202
|
if (!this._dboBuilder)
|
|
@@ -194,8 +207,7 @@ class Prostgles {
|
|
|
194
207
|
this._dboBuilder = d;
|
|
195
208
|
}
|
|
196
209
|
isMedia(tableName) {
|
|
197
|
-
|
|
198
|
-
return ((_b = (_a = this.opts) === null || _a === void 0 ? void 0 : _a.fileTable) === null || _b === void 0 ? void 0 : _b.tableName) === tableName;
|
|
210
|
+
return this.opts?.fileTable?.tableName === tableName;
|
|
199
211
|
}
|
|
200
212
|
async onSchemaChange(event) {
|
|
201
213
|
const { watchSchema, onReady, tsGeneratedTypesDir } = this.opts;
|
|
@@ -296,7 +308,8 @@ class Prostgles {
|
|
|
296
308
|
this.isSuperUser = await isSuperUser(db);
|
|
297
309
|
}
|
|
298
310
|
this.checkDb();
|
|
299
|
-
const
|
|
311
|
+
const db = this.db;
|
|
312
|
+
const pgp = this.pgp;
|
|
300
313
|
/* 2. Execute any SQL file if provided */
|
|
301
314
|
if (this.opts.sqlFilePath) {
|
|
302
315
|
await this.runSQLFile(this.opts.sqlFilePath);
|
|
@@ -367,7 +380,6 @@ class Prostgles {
|
|
|
367
380
|
pgp,
|
|
368
381
|
io: this.opts.io,
|
|
369
382
|
destroy: async () => {
|
|
370
|
-
var _a;
|
|
371
383
|
console.log("destroying prgl instance");
|
|
372
384
|
this.destroyed = true;
|
|
373
385
|
if (this.opts.io) {
|
|
@@ -379,7 +391,7 @@ class Prostgles {
|
|
|
379
391
|
console.log("this.io.close");
|
|
380
392
|
}
|
|
381
393
|
}
|
|
382
|
-
|
|
394
|
+
this.dboBuilder?.destroy();
|
|
383
395
|
this.dbo = undefined;
|
|
384
396
|
this.db = undefined;
|
|
385
397
|
await db.$pool.end();
|
|
@@ -390,12 +402,13 @@ class Prostgles {
|
|
|
390
402
|
}
|
|
391
403
|
catch (e) {
|
|
392
404
|
console.trace(e);
|
|
405
|
+
// @ts-ignore
|
|
393
406
|
throw "init issues: " + e.toString();
|
|
394
407
|
}
|
|
395
408
|
}
|
|
396
409
|
async runSQLFile(filePath) {
|
|
397
410
|
const fileContent = await this.getFileText(filePath); //.then(console.log);
|
|
398
|
-
return this.db
|
|
411
|
+
return this.db?.multi(fileContent).then((data) => {
|
|
399
412
|
console.log("Prostgles: SQL file executed successfuly \n -> " + filePath);
|
|
400
413
|
return data;
|
|
401
414
|
}).catch((err) => {
|
|
@@ -447,13 +460,14 @@ class Prostgles {
|
|
|
447
460
|
socket.removeAllListeners(prostgles_types_1.CHANNELS.DEFAULT);
|
|
448
461
|
socket.on(prostgles_types_1.CHANNELS.DEFAULT, async ({ tableName, command, param1, param2, param3 }, cb = (...callback) => { }) => {
|
|
449
462
|
try { /* Channel name will only include client-sent params so we ignore table_rules enforced params */
|
|
450
|
-
if (!socket) {
|
|
451
|
-
console.error("socket missing??!!");
|
|
452
|
-
throw "socket missing??!!";
|
|
463
|
+
if (!socket || !this.authHandler || !this.publishParser || !this.dbo) {
|
|
464
|
+
console.error("socket or authhandler missing??!!");
|
|
465
|
+
throw "socket or authhandler missing??!!";
|
|
453
466
|
}
|
|
454
467
|
const clientInfo = await this.authHandler.getClientInfo({ socket });
|
|
455
468
|
let valid_table_command_rules = await this.publishParser.getValidatedRequestRule({ tableName, command, localParams: { socket } }, clientInfo);
|
|
456
469
|
if (valid_table_command_rules) {
|
|
470
|
+
//@ts-ignore
|
|
457
471
|
let res = await this.dbo[tableName][command](param1, param2, param3, valid_table_command_rules, { socket, has_rules: true });
|
|
458
472
|
cb(null, res);
|
|
459
473
|
}
|
|
@@ -469,8 +483,8 @@ class Prostgles {
|
|
|
469
483
|
}
|
|
470
484
|
});
|
|
471
485
|
socket.on("disconnect", () => {
|
|
472
|
-
this.dbEventsManager
|
|
473
|
-
this.dbEventsManager
|
|
486
|
+
this.dbEventsManager?.removeNotice(socket);
|
|
487
|
+
this.dbEventsManager?.removeNotify(undefined, socket);
|
|
474
488
|
this.connectedSockets = this.connectedSockets.filter(s => s.id !== socket.id);
|
|
475
489
|
// subscriptions = subscriptions.filter(sub => sub.socket.id !== socket.id);
|
|
476
490
|
if (this.opts.onSocketDisconnect) {
|
|
@@ -481,7 +495,7 @@ class Prostgles {
|
|
|
481
495
|
socket.removeAllListeners(prostgles_types_1.CHANNELS.METHOD);
|
|
482
496
|
socket.on(prostgles_types_1.CHANNELS.METHOD, async ({ method, params }, cb = (...callback) => { }) => {
|
|
483
497
|
try {
|
|
484
|
-
const methods = await this.publishParser
|
|
498
|
+
const methods = await this.publishParser?.getMethods(socket);
|
|
485
499
|
if (!methods || !methods[method]) {
|
|
486
500
|
cb("Disallowed/missing method " + JSON.stringify(method));
|
|
487
501
|
}
|
|
@@ -594,14 +608,13 @@ const RULE_TO_METHODS = [
|
|
|
594
608
|
];
|
|
595
609
|
// const ALL_PUBLISH_METHODS = ["update", "upsert", "delete", "insert", "find", "findOne", "subscribe", "unsubscribe", "sync", "unsync", "remove"];
|
|
596
610
|
// const ALL_PUBLISH_METHODS = RULE_TO_METHODS.map(r => r.methods).flat();
|
|
597
|
-
function flat(arr)
|
|
598
|
-
|
|
599
|
-
|
|
600
|
-
|
|
601
|
-
|
|
602
|
-
|
|
603
|
-
}
|
|
604
|
-
exports.flat = flat;
|
|
611
|
+
// export function flat(arr){
|
|
612
|
+
// // let res = arr.reduce((acc, val) => [ ...acc, ...val ], []);
|
|
613
|
+
// let res = arr.reduce(function (farr, toFlatten) {
|
|
614
|
+
// return farr.concat(Array.isArray(toFlatten) ? flat(toFlatten) : toFlatten);
|
|
615
|
+
// }, []);
|
|
616
|
+
// return res;
|
|
617
|
+
// }
|
|
605
618
|
class PublishParser {
|
|
606
619
|
constructor(publish, publishMethods, publishRawSQL, dbo, db, prostgles) {
|
|
607
620
|
this.publish = publish;
|
|
@@ -614,15 +627,21 @@ class PublishParser {
|
|
|
614
627
|
throw "INTERNAL ERROR: dbo and/or publish missing";
|
|
615
628
|
}
|
|
616
629
|
async getPublishParams(localParams, clientInfo) {
|
|
617
|
-
return
|
|
630
|
+
return {
|
|
631
|
+
...(clientInfo || await this.prostgles.authHandler?.getClientInfo(localParams)),
|
|
632
|
+
dbo: this.dbo,
|
|
633
|
+
db: this.db,
|
|
634
|
+
socket: localParams.socket
|
|
635
|
+
};
|
|
618
636
|
}
|
|
619
637
|
async getMethods(socket) {
|
|
620
638
|
let methods = {};
|
|
621
639
|
const publishParams = await this.getPublishParams({ socket });
|
|
622
640
|
const _methods = await applyParamsIfFunc(this.publishMethods, publishParams);
|
|
623
641
|
if (_methods && Object.keys(_methods).length) {
|
|
624
|
-
|
|
642
|
+
DboBuilder_1.getKeys(_methods).map(key => {
|
|
625
643
|
if (_methods[key] && (typeof _methods[key] === "function" || typeof _methods[key].then === "function")) {
|
|
644
|
+
//@ts-ignore
|
|
626
645
|
methods[key] = _methods[key];
|
|
627
646
|
}
|
|
628
647
|
else {
|
|
@@ -642,7 +661,7 @@ class PublishParser {
|
|
|
642
661
|
let _publish = await applyParamsIfFunc(this.publish, publishParams);
|
|
643
662
|
if (_publish === "*") {
|
|
644
663
|
let publish = {};
|
|
645
|
-
this.prostgles.dboBuilder.tablesOrViews
|
|
664
|
+
this.prostgles.dboBuilder.tablesOrViews?.map(tov => {
|
|
646
665
|
publish[tov.name] = "*";
|
|
647
666
|
});
|
|
648
667
|
return publish;
|
|
@@ -654,7 +673,6 @@ class PublishParser {
|
|
|
654
673
|
return await this.getValidatedRequestRule({ tableName, command, localParams }, clientInfo);
|
|
655
674
|
}
|
|
656
675
|
async getValidatedRequestRule({ tableName, command, localParams }, clientInfo) {
|
|
657
|
-
var _a, _b, _c, _d;
|
|
658
676
|
if (!this.dbo)
|
|
659
677
|
throw "INTERNAL ERROR: dbo is missing";
|
|
660
678
|
if (!command || !tableName)
|
|
@@ -665,13 +683,16 @@ class PublishParser {
|
|
|
665
683
|
}
|
|
666
684
|
/* Must be local request -> allow everything */
|
|
667
685
|
if (!localParams || (!localParams.socket && !localParams.httpReq)) {
|
|
668
|
-
return RULE_TO_METHODS.reduce((a, v) => (
|
|
686
|
+
return RULE_TO_METHODS.reduce((a, v) => ({
|
|
687
|
+
...a,
|
|
688
|
+
[v.rule]: v.no_limits
|
|
689
|
+
}), {});
|
|
669
690
|
}
|
|
670
691
|
/* Must be from socket. Must have a publish */
|
|
671
692
|
if (!this.publish)
|
|
672
693
|
throw "publish is missing";
|
|
673
694
|
/* Get any publish errors for socket */
|
|
674
|
-
const schm =
|
|
695
|
+
const schm = localParams?.socket?.prostgles?.schema?.[tableName]?.[command];
|
|
675
696
|
if (schm && schm.err)
|
|
676
697
|
throw schm.err;
|
|
677
698
|
let table_rule = await this.getTableRules({ tableName, localParams }, clientInfo);
|
|
@@ -705,7 +726,8 @@ class PublishParser {
|
|
|
705
726
|
MY_RULES.map(r => {
|
|
706
727
|
/** Check PG User privileges */
|
|
707
728
|
if (tHandler.tableOrViewInfo.privileges[r.sqlRule]) {
|
|
708
|
-
|
|
729
|
+
// @ts-ignore
|
|
730
|
+
table_rules[r.rule] = { ...r.no_limits };
|
|
709
731
|
}
|
|
710
732
|
});
|
|
711
733
|
// if(tableName === "various") console.warn(1042, table_rules)
|
|
@@ -713,16 +735,22 @@ class PublishParser {
|
|
|
713
735
|
/* Add missing implied rules */
|
|
714
736
|
MY_RULES.map(r => {
|
|
715
737
|
if (["getInfo", "getColumns"].includes(r.rule) && ![null, false, 0].includes(table_rules[r.rule])) {
|
|
738
|
+
// @ts-ignore
|
|
716
739
|
table_rules[r.rule] = r.no_limits;
|
|
717
740
|
return;
|
|
718
741
|
}
|
|
719
742
|
/* Add nested properties for fully allowed rules */
|
|
743
|
+
// @ts-ignore
|
|
720
744
|
if ([true, "*"].includes(table_rules[r.rule]) && r.no_limits) {
|
|
745
|
+
// @ts-ignore
|
|
721
746
|
table_rules[r.rule] = Object.assign({}, r.no_limits);
|
|
722
747
|
}
|
|
748
|
+
// @ts-ignore
|
|
723
749
|
if (table_rules[r.rule]) {
|
|
724
750
|
/* Add implied methods if not falsy */
|
|
725
|
-
|
|
751
|
+
// @ts-ignore
|
|
752
|
+
r.methods.forEach(method => {
|
|
753
|
+
// @ts-ignore
|
|
726
754
|
if (table_rules[method] === undefined) {
|
|
727
755
|
const publishedTable = table_rules;
|
|
728
756
|
if (method === "updateBatch" && !publishedTable.update) {
|
|
@@ -731,6 +759,7 @@ class PublishParser {
|
|
|
731
759
|
// return;
|
|
732
760
|
}
|
|
733
761
|
else {
|
|
762
|
+
// @ts-ignore
|
|
734
763
|
table_rules[method] = {};
|
|
735
764
|
}
|
|
736
765
|
}
|
|
@@ -742,46 +771,56 @@ class PublishParser {
|
|
|
742
771
|
Add defaults
|
|
743
772
|
Check for invalid params
|
|
744
773
|
*/
|
|
745
|
-
if (
|
|
746
|
-
const ruleKeys =
|
|
774
|
+
if (table_rules && DboBuilder_1.getKeys(table_rules).length && table_rules !== "*") {
|
|
775
|
+
const ruleKeys = DboBuilder_1.getKeys(table_rules);
|
|
776
|
+
// @ts-ignore
|
|
747
777
|
ruleKeys.filter(m => table_rules[m])
|
|
748
778
|
.find(method => {
|
|
749
779
|
let rm = MY_RULES.find(r => r.rule === method || r.methods.includes(method));
|
|
750
780
|
if (!rm) {
|
|
751
|
-
throw `Invalid rule in publish.${tableName} -> ${method} \nExpecting any of: ${
|
|
781
|
+
throw `Invalid rule in publish.${tableName} -> ${method} \nExpecting any of: ${MY_RULES.flatMap(r => [r.rule, ...r.methods]).join(", ")}`;
|
|
752
782
|
}
|
|
753
783
|
/** Check user privileges */
|
|
754
784
|
if (!tHandler.tableOrViewInfo.privileges[rm.sqlRule]) {
|
|
785
|
+
// @ts-ignore
|
|
755
786
|
delete table_rules[method];
|
|
756
787
|
return;
|
|
757
788
|
}
|
|
758
789
|
/* Check RULES for invalid params */
|
|
759
790
|
/* Methods do not have params -> They use them from rules */
|
|
760
791
|
if (method === rm.rule) {
|
|
761
|
-
|
|
762
|
-
let
|
|
792
|
+
// @ts-ignore
|
|
793
|
+
let method_params = DboBuilder_1.getKeys(table_rules[method]);
|
|
794
|
+
let iparam = method_params.find(p => !rm?.allowed_params.includes(p));
|
|
763
795
|
if (iparam) {
|
|
764
796
|
throw `Invalid setting in publish.${tableName}.${method} -> ${iparam}. \n Expecting any of: ${rm.allowed_params.join(", ")}`;
|
|
765
797
|
}
|
|
766
798
|
}
|
|
767
799
|
/* Add default params (if missing) */
|
|
800
|
+
// @ts-ignore
|
|
768
801
|
if (method === "sync") {
|
|
802
|
+
// @ts-ignore
|
|
769
803
|
if ([true, "*"].includes(table_rules[method])) {
|
|
770
804
|
throw "Invalid sync rule. Expecting { id_fields: string[], synced_field: string } ";
|
|
771
805
|
}
|
|
772
806
|
if (typeof utils_1.get(table_rules, [method, "throttle"]) !== "number") {
|
|
807
|
+
// @ts-ignore
|
|
773
808
|
table_rules[method].throttle = 100;
|
|
774
809
|
}
|
|
775
810
|
if (typeof utils_1.get(table_rules, [method, "batch_size"]) !== "number") {
|
|
811
|
+
// @ts-ignore
|
|
776
812
|
table_rules[method].batch_size = PubSubManager_1.DEFAULT_SYNC_BATCH_SIZE;
|
|
777
813
|
}
|
|
778
814
|
}
|
|
779
815
|
/* Enable subscribe if not explicitly disabled */
|
|
816
|
+
// @ts-ignore
|
|
780
817
|
if (method === "select" && !ruleKeys.includes("subscribe")) {
|
|
781
818
|
const sr = MY_RULES.find(r => r.rule === "subscribe");
|
|
782
819
|
if (sr) {
|
|
783
|
-
|
|
784
|
-
table_rules.
|
|
820
|
+
// @ts-ignore
|
|
821
|
+
table_rules[sr.rule] = { ...sr.no_limits };
|
|
822
|
+
// @ts-ignore
|
|
823
|
+
table_rules.subscribeOne = { ...sr.no_limits };
|
|
785
824
|
}
|
|
786
825
|
}
|
|
787
826
|
});
|
|
@@ -798,7 +837,7 @@ class PublishParser {
|
|
|
798
837
|
let schema = {};
|
|
799
838
|
try {
|
|
800
839
|
/* Publish tables and views based on socket */
|
|
801
|
-
const clientInfo = await this.prostgles.authHandler
|
|
840
|
+
const clientInfo = await this.prostgles.authHandler?.getClientInfo({ socket });
|
|
802
841
|
let _publish = await this.getPublish(socket, clientInfo);
|
|
803
842
|
if (_publish && Object.keys(_publish).length) {
|
|
804
843
|
let txKey = "tx";
|
|
@@ -811,7 +850,7 @@ class PublishParser {
|
|
|
811
850
|
.map(async (tableName) => {
|
|
812
851
|
if (!this.dbo[tableName]) {
|
|
813
852
|
throw `Table ${tableName} does not exist
|
|
814
|
-
Expecting one of: ${this.prostgles.dboBuilder.tablesOrViews
|
|
853
|
+
Expecting one of: ${this.prostgles.dboBuilder.tablesOrViews?.map(tov => tov.name).join(", ")}
|
|
815
854
|
DBO tables: ${Object.keys(this.dbo).filter(k => this.dbo[k].find).join(", ")}
|
|
816
855
|
`;
|
|
817
856
|
}
|
|
@@ -821,7 +860,7 @@ class PublishParser {
|
|
|
821
860
|
schema[tableName] = {};
|
|
822
861
|
let methods = [];
|
|
823
862
|
if (typeof table_rules === "object") {
|
|
824
|
-
methods =
|
|
863
|
+
methods = DboBuilder_1.getKeys(table_rules);
|
|
825
864
|
}
|
|
826
865
|
await Promise.all(methods.filter(m => m !== "select").map(async (method) => {
|
|
827
866
|
if (method === "sync" && table_rules[method]) {
|
|
@@ -831,7 +870,7 @@ class PublishParser {
|
|
|
831
870
|
else if (table_rules[method]) {
|
|
832
871
|
schema[tableName][method] = {};
|
|
833
872
|
/* Test for issues with the publish rules */
|
|
834
|
-
if (
|
|
873
|
+
if (TABLE_METHODS.includes(method)) {
|
|
835
874
|
let err = null;
|
|
836
875
|
try {
|
|
837
876
|
let valid_table_command_rules = await this.getValidatedRequestRule({ tableName, command: method, localParams: { socket } }, clientInfo);
|
package/dist/Prostgles.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Prostgles.js","sourceRoot":"","sources":["../lib/Prostgles.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"Prostgles.js","sourceRoot":"","sources":["../lib/Prostgles.ts"],"names":[],"mappings":"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"}
|