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.
Files changed (77) hide show
  1. package/dist/AuthHandler.d.ts +15 -13
  2. package/dist/AuthHandler.d.ts.map +1 -1
  3. package/dist/AuthHandler.js +41 -43
  4. package/dist/AuthHandler.js.map +1 -1
  5. package/dist/DBEventsManager.d.ts +6 -5
  6. package/dist/DBEventsManager.d.ts.map +1 -1
  7. package/dist/DBEventsManager.js +8 -2
  8. package/dist/DBEventsManager.js.map +1 -1
  9. package/dist/DboBuilder.d.ts +62 -50
  10. package/dist/DboBuilder.d.ts.map +1 -1
  11. package/dist/DboBuilder.js +229 -170
  12. package/dist/DboBuilder.js.map +1 -1
  13. package/dist/FileManager.d.ts +5 -5
  14. package/dist/FileManager.d.ts.map +1 -1
  15. package/dist/FileManager.js +48 -21
  16. package/dist/FileManager.js.map +1 -1
  17. package/dist/Filtering.d.ts.map +1 -1
  18. package/dist/Filtering.js +11 -9
  19. package/dist/Filtering.js.map +1 -1
  20. package/dist/PostgresNotifListenManager.d.ts +3 -3
  21. package/dist/PostgresNotifListenManager.d.ts.map +1 -1
  22. package/dist/PostgresNotifListenManager.js +7 -5
  23. package/dist/PostgresNotifListenManager.js.map +1 -1
  24. package/dist/Prostgles.d.ts +6 -9
  25. package/dist/Prostgles.d.ts.map +1 -1
  26. package/dist/Prostgles.js +122 -83
  27. package/dist/Prostgles.js.map +1 -1
  28. package/dist/PubSubManager.d.ts +9 -9
  29. package/dist/PubSubManager.d.ts.map +1 -1
  30. package/dist/PubSubManager.js +10 -9
  31. package/dist/PubSubManager.js.map +1 -1
  32. package/dist/QueryBuilder.d.ts +26 -8
  33. package/dist/QueryBuilder.d.ts.map +1 -1
  34. package/dist/QueryBuilder.js +114 -46
  35. package/dist/QueryBuilder.js.map +1 -1
  36. package/dist/SyncReplication.d.ts +1 -1
  37. package/dist/SyncReplication.d.ts.map +1 -1
  38. package/dist/SyncReplication.js +31 -29
  39. package/dist/SyncReplication.js.map +1 -1
  40. package/dist/TableConfig.d.ts +0 -1
  41. package/dist/TableConfig.d.ts.map +1 -1
  42. package/dist/TableConfig.js +25 -17
  43. package/dist/TableConfig.js.map +1 -1
  44. package/dist/shortestPath.d.ts.map +1 -1
  45. package/dist/shortestPath.js.map +1 -1
  46. package/dist/utils.d.ts +2 -0
  47. package/dist/utils.d.ts.map +1 -1
  48. package/dist/utils.js +6 -0
  49. package/dist/utils.js.map +1 -1
  50. package/lib/AuthHandler.ts +50 -40
  51. package/lib/DBEventsManager.ts +14 -7
  52. package/lib/DboBuilder.ts +265 -199
  53. package/lib/FileManager.ts +30 -21
  54. package/lib/Filtering.ts +19 -16
  55. package/lib/PostgresNotifListenManager.ts +11 -10
  56. package/lib/Prostgles.ts +89 -73
  57. package/lib/PubSubManager.ts +13 -11
  58. package/lib/QueryBuilder.ts +135 -54
  59. package/lib/SyncReplication.ts +10 -10
  60. package/lib/TableConfig.ts +23 -15
  61. package/lib/shortestPath.ts +6 -4
  62. package/lib/utils.ts +7 -1
  63. package/package.json +7 -8
  64. package/tests/client/PID.txt +1 -1
  65. package/tests/client/index.js +10 -7
  66. package/tests/client/index.ts +12 -8
  67. package/tests/client/package-lock.json +14 -14
  68. package/tests/client/package.json +2 -2
  69. package/tests/client/tsconfig.json +2 -2
  70. package/tests/client_only_queries.js +127 -104
  71. package/tests/client_only_queries.ts +43 -17
  72. package/tests/isomorphic_queries.js +44 -6
  73. package/tests/isomorphic_queries.ts +42 -6
  74. package/tests/server/package-lock.json +27 -29
  75. package/tests/server/package.json +2 -2
  76. package/tests/server/tsconfig.json +2 -2
  77. 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.flat = exports.Prostgles = exports.JOIN_TYPES = void 0;
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
- let currConnection;
21
+ const TABLE_METHODS = ["update", "find", "findOne", "insert", "delete", "upsert"];
22
22
  function getDbConnection(dbConnection, options, debugQueries = false, onNotice) {
23
- let pgp = pgPromise(Object.assign(Object.assign({ promiseLib: promise }, (debugQueries ? {
24
- query: function (e) {
25
- console.log({ psql: e.query, params: e.params });
26
- },
27
- } : {})), ((onNotice || debugQueries) ? {
28
- connect: function (client, dc, isFresh) {
29
- if (isFresh && !client.listeners('notice').length) {
30
- client.on('notice', function (msg) {
31
- if (onNotice) {
32
- onNotice(msg, utils_1.get(msg, "message"));
33
- }
34
- else {
35
- console.log("notice: %j", utils_1.get(msg, "message"));
36
- }
37
- });
38
- }
39
- if (isFresh && !client.listeners('error').length) {
40
- client.on('error', function (msg) {
41
- if (onNotice) {
42
- onNotice(msg, utils_1.get(msg, "message"));
43
- }
44
- else {
45
- console.log("error: %j", utils_1.get(msg, "message"));
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
- var _a;
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.getSchemaFromPublish(socket);
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.getPublishParams({ socket });
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.sql)
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.getMethods(socket);
161
- socket.emit(prostgles_types_1.CHANNELS.SCHEMA, Object.assign(Object.assign({ schema, methods: Object.keys(methods) }, (fullSchema ? { fullSchema } : {})), { rawSQL, joinTables: joinTables2, auth,
162
- version, err: publishValidationError }));
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 ((_a = this.opts) === null || _a === void 0 ? void 0 : _a.fileTable) {
183
- this.opts.fileTable.tableName = ((_c = (_b = this.opts) === null || _b === void 0 ? void 0 : _b.fileTable) === null || _c === void 0 ? void 0 : _c.tableName) || "media";
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 = Object.assign(Object.assign({}, DEFAULT_KEYWORDS), params.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
- var _a, _b;
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 { db, pgp } = this;
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
- (_a = this.dboBuilder) === null || _a === void 0 ? void 0 : _a.destroy();
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.multi(fileContent).then((data) => {
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.removeNotice(socket);
473
- this.dbEventsManager.removeNotify(socket);
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.getMethods(socket);
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
- // let res = arr.reduce((acc, val) => [ ...acc, ...val ], []);
599
- let res = arr.reduce(function (farr, toFlatten) {
600
- return farr.concat(Array.isArray(toFlatten) ? flat(toFlatten) : toFlatten);
601
- }, []);
602
- return res;
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 Object.assign(Object.assign({}, (clientInfo || await this.prostgles.authHandler.getClientInfo(localParams))), { dbo: this.dbo, db: this.db, socket: localParams.socket });
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
- Object.keys(_methods).map(key => {
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.map(tov => {
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) => (Object.assign(Object.assign({}, a), { [v.rule]: v.no_limits })), {});
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 = (_d = (_c = (_b = (_a = localParams === null || localParams === void 0 ? void 0 : localParams.socket) === null || _a === void 0 ? void 0 : _a.prostgles) === null || _b === void 0 ? void 0 : _b.schema) === null || _c === void 0 ? void 0 : _c[tableName]) === null || _d === void 0 ? void 0 : _d[command];
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
- table_rules[r.rule] = Object.assign({}, r.no_limits);
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
- r.methods.map(method => {
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 (Object.keys(table_rules).length) {
746
- const ruleKeys = Object.keys(table_rules);
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: ${flat(MY_RULES.map(r => [r.rule, ...r.methods])).join(", ")}`;
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
- let method_params = Object.keys(table_rules[method]);
762
- let iparam = method_params.find(p => !rm.allowed_params.includes(p));
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
- table_rules[sr.rule] = Object.assign({}, sr.no_limits);
784
- table_rules.subscribeOne = Object.assign({}, sr.no_limits);
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.getClientInfo({ socket });
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.map(tov => tov.name).join(", ")}
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 = Object.keys(table_rules);
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 (["update", "find", "findOne", "insert", "delete", "upsert"].includes(method)) {
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);
@@ -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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"}