prostgles-server 3.0.77 → 3.0.79

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 (81) hide show
  1. package/dist/DboBuilder/QueryBuilder/Functions.d.ts.map +1 -1
  2. package/dist/DboBuilder/QueryBuilder/Functions.js +18 -0
  3. package/dist/DboBuilder/QueryBuilder/Functions.js.map +1 -1
  4. package/dist/DboBuilder/TableHandler.d.ts.map +1 -1
  5. package/dist/DboBuilder/TableHandler.js +1 -1
  6. package/dist/DboBuilder/TableHandler.js.map +1 -1
  7. package/dist/DboBuilder/ViewHandler.d.ts +6 -12
  8. package/dist/DboBuilder/ViewHandler.d.ts.map +1 -1
  9. package/dist/DboBuilder/ViewHandler.js +5 -207
  10. package/dist/DboBuilder/ViewHandler.js.map +1 -1
  11. package/dist/DboBuilder/delete.d.ts.map +1 -1
  12. package/dist/DboBuilder/delete.js +1 -1
  13. package/dist/DboBuilder/delete.js.map +1 -1
  14. package/dist/DboBuilder/getCondition.d.ts +19 -0
  15. package/dist/DboBuilder/getCondition.d.ts.map +1 -0
  16. package/dist/DboBuilder/getCondition.js +236 -0
  17. package/dist/DboBuilder/getCondition.js.map +1 -0
  18. package/dist/DboBuilder/insert.d.ts.map +1 -1
  19. package/dist/DboBuilder/insert.js +2 -2
  20. package/dist/DboBuilder/insert.js.map +1 -1
  21. package/dist/DboBuilder/subscribe.d.ts.map +1 -1
  22. package/dist/DboBuilder/subscribe.js +1 -1
  23. package/dist/DboBuilder/subscribe.js.map +1 -1
  24. package/dist/DboBuilder/update.d.ts.map +1 -1
  25. package/dist/DboBuilder/update.js +2 -2
  26. package/dist/DboBuilder/update.js.map +1 -1
  27. package/dist/DboBuilder.d.ts +2 -4
  28. package/dist/DboBuilder.d.ts.map +1 -1
  29. package/dist/DboBuilder.js +3 -4
  30. package/dist/DboBuilder.js.map +1 -1
  31. package/dist/Filtering.d.ts.map +1 -1
  32. package/dist/Filtering.js +94 -73
  33. package/dist/Filtering.js.map +1 -1
  34. package/dist/PubSubManager/initPubSubManager.d.ts.map +1 -1
  35. package/dist/PubSubManager/initPubSubManager.js +10 -2
  36. package/dist/PubSubManager/initPubSubManager.js.map +1 -1
  37. package/dist/PublishParser.d.ts.map +1 -1
  38. package/dist/PublishParser.js +8 -3
  39. package/dist/PublishParser.js.map +1 -1
  40. package/lib/DboBuilder/QueryBuilder/Functions.d.ts.map +1 -1
  41. package/lib/DboBuilder/QueryBuilder/Functions.js +18 -0
  42. package/lib/DboBuilder/QueryBuilder/Functions.ts +23 -0
  43. package/lib/DboBuilder/TableHandler.d.ts.map +1 -1
  44. package/lib/DboBuilder/TableHandler.js +1 -1
  45. package/lib/DboBuilder/TableHandler.ts +2 -2
  46. package/lib/DboBuilder/ViewHandler.d.ts +1 -14
  47. package/lib/DboBuilder/ViewHandler.d.ts.map +1 -1
  48. package/lib/DboBuilder/ViewHandler.js +5 -207
  49. package/lib/DboBuilder/ViewHandler.ts +9 -248
  50. package/lib/DboBuilder/delete.d.ts.map +1 -1
  51. package/lib/DboBuilder/delete.js +1 -1
  52. package/lib/DboBuilder/delete.ts +2 -2
  53. package/lib/DboBuilder/getCondition.d.ts +19 -0
  54. package/lib/DboBuilder/getCondition.d.ts.map +1 -0
  55. package/lib/DboBuilder/getCondition.js +235 -0
  56. package/lib/DboBuilder/getCondition.ts +279 -0
  57. package/lib/DboBuilder/insert.d.ts.map +1 -1
  58. package/lib/DboBuilder/insert.js +2 -2
  59. package/lib/DboBuilder/insert.ts +3 -3
  60. package/lib/DboBuilder/subscribe.d.ts.map +1 -1
  61. package/lib/DboBuilder/subscribe.js +1 -1
  62. package/lib/DboBuilder/subscribe.ts +2 -2
  63. package/lib/DboBuilder/update.d.ts.map +1 -1
  64. package/lib/DboBuilder/update.js +2 -2
  65. package/lib/DboBuilder/update.ts +3 -3
  66. package/lib/DboBuilder.d.ts +2 -4
  67. package/lib/DboBuilder.d.ts.map +1 -1
  68. package/lib/DboBuilder.js +3 -4
  69. package/lib/DboBuilder.ts +5 -13
  70. package/lib/Filtering.d.ts.map +1 -1
  71. package/lib/Filtering.js +94 -73
  72. package/lib/Filtering.ts +104 -79
  73. package/lib/PubSubManager/initPubSubManager.d.ts.map +1 -1
  74. package/lib/PubSubManager/initPubSubManager.js +10 -2
  75. package/lib/PubSubManager/initPubSubManager.ts +11 -2
  76. package/lib/PublishParser.d.ts.map +1 -1
  77. package/lib/PublishParser.js +8 -3
  78. package/lib/PublishParser.ts +10 -4
  79. package/package.json +4 -4
  80. package/tests/client/PID.txt +1 -1
  81. package/tests/server/package-lock.json +7 -7
package/lib/Filtering.ts CHANGED
@@ -4,7 +4,7 @@ import { SelectItem } from "./DboBuilder/QueryBuilder/QueryBuilder";
4
4
  import {
5
5
  isEmpty, getKeys, FullFilter, EXISTS_KEYS, FilterDataType,
6
6
  GeomFilterKeys, GeomFilter_Funcs,
7
- TextFilter_FullTextSearchFilterKeys, CompareFilterKeys, isObject
7
+ TextFilter_FullTextSearchFilterKeys, CompareFilterKeys, isObject, TextFilterKeys, JsonbFilterKeys, CompareInFilterKeys
8
8
  } from "prostgles-types";
9
9
  import { isPlainObject } from "./DboBuilder";
10
10
 
@@ -19,13 +19,17 @@ export const parseFilterItem = (args: ParseFilterItemArgs): string => {
19
19
  if(!_f || isEmpty(_f)) return "";
20
20
 
21
21
  const mErr = (msg: string) => {
22
- throw `${msg}: ${JSON.stringify(_f, null, 2)}`
23
- },
24
- asValue = (v: any) => pgp.as.format("$1", [v]);
22
+ throw `${msg}: ${JSON.stringify(_f, null, 2)}`
23
+ };
24
+ const asValue = (v: any) => pgp.as.format("$1", [v]);
25
25
 
26
26
  const fKeys = getKeys(_f)
27
27
  if(fKeys.length === 0){
28
- return "";
28
+ return "";
29
+
30
+ /**
31
+ * { field1: cond1, field2: cond2 }
32
+ */
29
33
  } else if(fKeys.length > 1){
30
34
  return fKeys.map(fk => parseFilterItem({
31
35
  filter: { [fk]: _f[fk] },
@@ -58,20 +62,21 @@ export const parseFilterItem = (args: ParseFilterItemArgs): string => {
58
62
  */
59
63
  let leftQ: string | undefined;// = asName(selItem.alias);
60
64
 
61
- /* Check if string notation. Build obj if necessary */
65
+ /*
66
+ Select item not found.
67
+ Check if dot/json notation. Build obj if necessary
68
+ */
62
69
  const dot_notation_delims = ["->", "."];
63
70
  if(!selItem){
64
71
 
65
72
  /* See if dot notation. Pick the best matching starting string */
66
73
  if(select){
67
74
  selItem = select.find(s =>
68
- fKey.startsWith(s.alias) &&
69
- dot_notation_delims.find(dn => fKey.slice(s.alias.length).startsWith(dn))
75
+ dot_notation_delims.find(delimiter => fKey.startsWith(s.alias + delimiter))
70
76
  );
71
77
  }
72
78
  if(!selItem) {
73
- mErr("Bad filter. Could not match to a column or alias: ");
74
- throw " "
79
+ return mErr("Bad filter. Could not match to a column or alias or dot notation: ");
75
80
  }
76
81
 
77
82
  let remainingStr = fKey.slice(selItem.alias.length);
@@ -174,7 +179,7 @@ export const parseFilterItem = (args: ParseFilterItemArgs): string => {
174
179
  if(!leftQ) mErr("Internal error: leftQ missing?!");
175
180
 
176
181
  /* Matching sel item */
177
- if(isPlainObject(rightF) && selItem.column_udt_type !== "jsonb"){
182
+ if(isPlainObject(rightF)){
178
183
  const parseRightVal = (val: any, expect: "csv" | "array" | null = null) => {
179
184
  const checkIfArr = () => {
180
185
  if(!Array.isArray(val)) return mErr("This type of filter/column expects an Array of items");
@@ -192,128 +197,148 @@ export const parseFilterItem = (args: ParseFilterItemArgs): string => {
192
197
  return asValue(val);
193
198
  }
194
199
 
200
+ const OPERANDS = [
201
+ ...TextFilterKeys,
202
+ ...JsonbFilterKeys,
203
+ ...CompareFilterKeys,
204
+ ...CompareInFilterKeys
205
+ ] as const;
206
+
195
207
  const filterKeys = Object.keys(rightF);
196
- if(filterKeys.length !== 1) {
197
- mErr("Bad filter. Expecting one key only");
208
+ const filterOperand: typeof OPERANDS[number] = filterKeys[0] as any;
209
+
210
+ /** JSON cannot be compared so we'll cast it to TEXT */
211
+ if(selItem?.column_udt_type === "json" || TextFilterKeys.includes(filterOperand as any)){
212
+ leftQ += "::TEXT "
198
213
  }
199
214
 
200
- const fOpType = filterKeys[0];
201
- const fVal = rightF[fOpType];
202
- let sOpType: string | undefined;
203
- let sVal: any;
215
+ /** It's an object key which means it's an equality comparison against a json object */
216
+ if(selItem?.column_udt_type?.startsWith("json") && !OPERANDS.includes(filterOperand)){
217
+ return leftQ + " = " + parseRightVal(rightF);
218
+ }
219
+
220
+ if(filterKeys.length !== 1 && selItem.column_udt_type !== "jsonb") {
221
+ return mErr("Bad filter. Expecting one key only");
222
+ }
204
223
 
205
- if(fVal && isPlainObject(fVal)){
206
- const keys = Object.keys(fVal);
207
- if(!keys.length || keys.length !== 1){
224
+ const filterValue = rightF[filterOperand];
225
+ const ALLOWED_FUNCS = [ ...GeomFilter_Funcs, ...TextFilter_FullTextSearchFilterKeys] as const;
226
+ let funcName: undefined | typeof ALLOWED_FUNCS[number];
227
+ let funcArgs: any[] | undefined;
228
+
229
+ /**
230
+ * Filter notation
231
+ * geom && st_makeenvelope(funcArgs)
232
+ */
233
+ if(isObject(filterValue) && selItem.column_udt_type !== "jsonb"){
234
+ const filterValueKeys = Object.keys(filterValue);
235
+ if(!filterValueKeys.length || filterValueKeys.length !== 1){
208
236
  return mErr("Bad filter. Expecting a nested object with one key only ");
209
237
  }
210
- sOpType = keys[0];
211
- sVal = fVal[sOpType];
212
-
238
+ funcName = filterValueKeys[0] as any;
239
+ funcArgs = filterValue[funcName as any];
240
+ if(!ALLOWED_FUNCS.includes(funcName as any)){
241
+ return mErr(`Bad filter. Nested function ${funcName} could not be found. Expecting one of: ${ALLOWED_FUNCS}`);
242
+ }
213
243
  }
214
244
  // console.log({ fOpType, fVal, sOpType })
215
245
 
216
- /** JSON cannot be compared so we'll cast it to TEXT */
217
- if(selItem?.column_udt_type === "json" || ["$ilike", "$like", "$nilike", "$nlike"].includes(fOpType)){
218
- leftQ += "::TEXT "
219
- }
220
-
221
246
  /** st_makeenvelope */
222
- if(GeomFilterKeys.includes(fOpType as any) && sOpType && GeomFilter_Funcs.includes(sOpType)){
247
+ if(GeomFilterKeys.includes(filterOperand as any) && funcName && GeomFilter_Funcs.includes(funcName as any)){
223
248
  /** If leftQ is geography then this err can happen: 'Antipodal (180 degrees long) edge detected!' */
224
- if(sOpType.toLowerCase() === "st_makeenvelope") leftQ += "::geometry"
225
- return leftQ + ` ${fOpType} ` + `${sOpType}${parseRightVal(sVal, "csv")}`;
249
+ if(funcName.toLowerCase() === "st_makeenvelope") {
250
+ leftQ += "::geometry";
251
+ }
252
+ return `${leftQ} ${filterOperand} ${funcName}${parseRightVal(funcArgs, "csv")}`;
226
253
 
227
- } else if(["=", "$eq"].includes(fOpType) && !sOpType){
228
- if(fVal === null) return leftQ + " IS NULL ";
229
- return leftQ + " = " + parseRightVal(fVal);
254
+ } else if(["=", "$eq"].includes(filterOperand) && !funcName){
255
+ if(filterValue === null) return leftQ + " IS NULL ";
256
+ return leftQ + " = " + parseRightVal(filterValue);
230
257
 
231
- } else if(["<>", "$ne"].includes(fOpType)){
232
- if(fVal === null) return leftQ + " IS NOT NULL ";
233
- return leftQ + " <> " + parseRightVal(fVal);
258
+ } else if(["<>", "$ne"].includes(filterOperand)){
259
+ if(filterValue === null) return leftQ + " IS NOT NULL ";
260
+ return leftQ + " <> " + parseRightVal(filterValue);
234
261
 
235
- } else if([">", "$gt"].includes(fOpType)){
236
- return leftQ + " > " + parseRightVal(fVal);
262
+ } else if([">", "$gt"].includes(filterOperand)){
263
+ return leftQ + " > " + parseRightVal(filterValue);
237
264
 
238
- } else if(["<", "$lt"].includes(fOpType)){
239
- return leftQ + " < " + parseRightVal(fVal);
265
+ } else if(["<", "$lt"].includes(filterOperand)){
266
+ return leftQ + " < " + parseRightVal(filterValue);
240
267
 
241
- } else if([">=", "$gte"].includes(fOpType)){
242
- return leftQ + " >= " + parseRightVal(fVal);
268
+ } else if([">=", "$gte"].includes(filterOperand)){
269
+ return leftQ + " >= " + parseRightVal(filterValue);
243
270
 
244
- } else if(["<=", "$lte"].includes(fOpType)){
245
- return leftQ + " <= " + parseRightVal(fVal);
271
+ } else if(["<=", "$lte"].includes(filterOperand)){
272
+ return leftQ + " <= " + parseRightVal(filterValue);
246
273
 
247
- } else if(["$in"].includes(fOpType)){
248
- if(!fVal?.length) {
274
+ } else if(["$in"].includes(filterOperand)){
275
+ if(!filterValue?.length) {
249
276
  return " FALSE ";
250
277
  }
251
278
 
252
- let _fVal: any[] = fVal.filter((v: any) => v !== null);
279
+ let _fVal: any[] = filterValue.filter((v: any) => v !== null);
253
280
  let c1 = "", c2 = "";
254
- if(_fVal.length) c1 = leftQ + " IN " + parseRightVal(_fVal, "csv");
255
- if(fVal.includes(null)) c2 = ` ${leftQ} IS NULL `;
281
+ if(_fVal.length) {
282
+ c1 = leftQ + " IN " + parseRightVal(_fVal, "csv");
283
+ }
284
+ if(filterValue.includes(null)) c2 = ` ${leftQ} IS NULL `;
256
285
  return [c1, c2].filter(c => c).join(" OR ");
257
286
 
258
- } else if(["$nin"].includes(fOpType)){
259
- if(!fVal?.length) {
287
+ } else if(["$nin"].includes(filterOperand)){
288
+ if(!filterValue?.length) {
260
289
  return " TRUE ";
261
290
  }
262
291
 
263
- let _fVal: any[] = fVal.filter((v: any) => v !== null);
292
+ let _fVal: any[] = filterValue.filter((v: any) => v !== null);
264
293
  let c1 = "", c2 = "";
265
294
  if(_fVal.length) c1 = leftQ + " NOT IN " + parseRightVal(_fVal, "csv");
266
- if(fVal.includes(null)) c2 = ` ${leftQ} IS NOT NULL `;
295
+ if(filterValue.includes(null)) c2 = ` ${leftQ} IS NOT NULL `;
267
296
  return [c1, c2].filter(c => c).join(" AND ");
268
297
 
269
- } else if(["$between"].includes(fOpType)){
270
- if(!Array.isArray(fVal) || fVal.length !== 2){
298
+ } else if(["$between"].includes(filterOperand)){
299
+ if(!Array.isArray(filterValue) || filterValue.length !== 2){
271
300
  return mErr("Between filter expects an array of two values");
272
301
  }
273
- return leftQ + " BETWEEN " + asValue(fVal[0]) + " AND " + asValue(fVal[1]);
302
+ return leftQ + " BETWEEN " + asValue(filterValue[0]) + " AND " + asValue(filterValue[1]);
274
303
 
275
- } else if(["$ilike"].includes(fOpType)){
276
- return leftQ + " ILIKE " + asValue(fVal);
304
+ } else if(["$ilike"].includes(filterOperand)){
305
+ return leftQ + " ILIKE " + asValue(filterValue);
277
306
 
278
- } else if(["$like"].includes(fOpType)){
279
- return leftQ + " LIKE " + asValue(fVal);
307
+ } else if(["$like"].includes(filterOperand)){
308
+ return leftQ + " LIKE " + asValue(filterValue);
280
309
 
281
- } else if(["$nilike"].includes(fOpType)){
282
- return leftQ + " NOT ILIKE " + asValue(fVal);
310
+ } else if(["$nilike"].includes(filterOperand)){
311
+ return leftQ + " NOT ILIKE " + asValue(filterValue);
283
312
 
284
- } else if(["$nlike"].includes(fOpType)){
285
- return leftQ + " NOT LIKE " + asValue(fVal);
313
+ } else if(["$nlike"].includes(filterOperand)){
314
+ return leftQ + " NOT LIKE " + asValue(filterValue);
286
315
 
287
316
  /* MAYBE TEXT OR MAYBE ARRAY */
288
- } else if(["@>", "<@", "$contains", "$containedBy", "&&", "@@"].includes(fOpType)){
289
- let operand = fOpType === "@@"? "@@":
290
- ["@>", "$contains"].includes(fOpType)? "@>" :
291
- ["&&"].includes(fOpType)? "&&" :
317
+ } else if(["@>", "<@", "$contains", "$containedBy", "&&", "@@"].includes(filterOperand)){
318
+ let operand = filterOperand === "@@"? "@@":
319
+ ["@>", "$contains"].includes(filterOperand)? "@>" :
320
+ ["&&"].includes(filterOperand)? "&&" :
292
321
  "<@";
293
322
 
294
323
  /* Array for sure */
295
- if(Array.isArray(fVal)){
296
- return leftQ + operand + parseRightVal(fVal, "array");
324
+ if(Array.isArray(filterValue)){
325
+ return leftQ + operand + parseRightVal(filterValue, "array");
297
326
 
298
327
  /* FTSQuery */
299
- } else if(["@@"].includes(fOpType) && TextFilter_FullTextSearchFilterKeys.includes(sOpType! as any)) {
328
+ } else if(["@@"].includes(filterOperand) && TextFilter_FullTextSearchFilterKeys.includes(funcName! as any)) {
300
329
  let lq = `to_tsvector(${leftQ}::text)`;
301
330
  if(selItem && selItem.columnPGDataType === "tsvector") lq = leftQ!;
302
331
 
303
- let res = `${lq} ${operand} ` + `${sOpType}${parseRightVal(sVal, "csv")}`;
332
+ let res = `${lq} ${operand} ` + `${funcName}${parseRightVal(funcArgs, "csv")}`;
304
333
 
305
334
  return res;
306
335
  } else {
307
- return mErr("Unrecognised filter operand: " + fOpType + " ");
336
+ return mErr("Unrecognised filter operand: " + filterOperand + " ");
308
337
  }
309
338
 
310
339
  } else {
311
- /** Maybe it's an object key which means it's an equality comparison against a json object */
312
- if(selItem?.column_udt_type?.startsWith("json")){
313
- return leftQ + " = " + parseRightVal(rightF);
314
- }
315
340
 
316
- return mErr("Unrecognised filter operand: " + fOpType + " ");
341
+ return mErr("Unrecognised filter operand: " + filterOperand + " ");
317
342
  }
318
343
 
319
344
 
@@ -1 +1 @@
1
- {"version":3,"file":"initPubSubManager.d.ts","sourceRoot":"","sources":["initPubSubManager.ts"],"names":[],"mappings":"AACA,OAAO,EAAgB,aAAa,EAAE,MAAM,iBAAiB,CAAC;AAG9D,wBAAsB,iBAAiB,CAAC,IAAI,EAAE,aAAa,GAAG,OAAO,CAAC,aAAa,GAAG,SAAS,CAAC,CAioB/F"}
1
+ {"version":3,"file":"initPubSubManager.d.ts","sourceRoot":"","sources":["initPubSubManager.ts"],"names":[],"mappings":"AACA,OAAO,EAAgB,aAAa,EAAE,MAAM,iBAAiB,CAAC;AAG9D,wBAAsB,iBAAiB,CAAC,IAAI,EAAE,aAAa,GAAG,OAAO,CAAC,aAAa,GAAG,SAAS,CAAC,CA0oB/F"}
@@ -7,6 +7,7 @@ const REALTIME_TRIGGER_CHECK_QUERY = "prostgles-server internal query used to ma
7
7
  async function initPubSubManager() {
8
8
  if (!this.canContinue())
9
9
  return undefined;
10
+ let tries = 5;
10
11
  try {
11
12
  const schema_version = 10;
12
13
  const initQuery = `
@@ -605,13 +606,20 @@ async function initPubSubManager() {
605
606
  END $$;
606
607
  `;
607
608
  await this.db.any(appQ);
609
+ tries = 5;
608
610
  (0, PubSubManager_1.log)("updated last_check");
609
611
  }
610
612
  catch (e) {
613
+ tries--;
611
614
  /** In some cases a query idles and blocks everything else. Terminate all similar queries */
612
615
  this.db.any("SELECT state, pg_terminate_backend(pid) from pg_stat_activity WHERE query ilike ${qid} and pid <> pg_backend_pid();", { qid: "%" + REALTIME_TRIGGER_CHECK_QUERY + "%" });
613
- /** If this database was dropped then stop interval */
614
- if (e?.code === "3D000") { // && e.message.includes(this.db.$cn.database)
616
+ /** If no tries left
617
+ * OR
618
+ * If this database was dropped
619
+ *
620
+ * then stop interval
621
+ * */
622
+ if (tries <= 0 || e?.code === "3D000") { // && e.message.includes(this.db.$cn.database)
615
623
  clearInterval(this.appCheck);
616
624
  }
617
625
  console.error("appCheck FAILED: \n", e, appQ);
@@ -5,6 +5,7 @@ const REALTIME_TRIGGER_CHECK_QUERY = "prostgles-server internal query used to ma
5
5
  export async function initPubSubManager(this: PubSubManager): Promise<PubSubManager | undefined> {
6
6
  if (!this.canContinue()) return undefined;
7
7
 
8
+ let tries = 5;
8
9
  try {
9
10
  const schema_version = 10;
10
11
 
@@ -617,13 +618,21 @@ export async function initPubSubManager(this: PubSubManager): Promise<PubSubMana
617
618
  END $$;
618
619
  `
619
620
  await this.db.any(appQ);
621
+ tries = 5;
620
622
  log("updated last_check");
621
623
  } catch (e: any) {
624
+ tries --;
625
+
622
626
  /** In some cases a query idles and blocks everything else. Terminate all similar queries */
623
627
  this.db.any("SELECT state, pg_terminate_backend(pid) from pg_stat_activity WHERE query ilike ${qid} and pid <> pg_backend_pid();", { qid: "%" + REALTIME_TRIGGER_CHECK_QUERY + "%" });
624
628
 
625
- /** If this database was dropped then stop interval */
626
- if(e?.code === "3D000"){ // && e.message.includes(this.db.$cn.database)
629
+ /** If no tries left
630
+ * OR
631
+ * If this database was dropped
632
+ *
633
+ * then stop interval
634
+ * */
635
+ if(tries <= 0 || e?.code === "3D000"){ // && e.message.includes(this.db.$cn.database)
627
636
  clearInterval(this.appCheck);
628
637
  }
629
638
  console.error("appCheck FAILED: \n", e, appQ);
@@ -1 +1 @@
1
- {"version":3,"file":"PublishParser.d.ts","sourceRoot":"","sources":["PublishParser.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"PublishParser.d.ts","sourceRoot":"","sources":["PublishParser.ts"],"names":[],"mappings":"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"}
@@ -199,9 +199,11 @@ class PublishParser {
199
199
  let parsed_table = {};
200
200
  /* Get view or table specific rules */
201
201
  const tHandler = this.dbo[tableName];
202
- if (!tHandler)
203
- throw { stack: ["getTableRules()"], message: `${tableName} could not be found in dbo` };
204
202
  const is_view = tHandler.is_view;
203
+ const canSubscribe = (!is_view || tHandler.columns.some(c => c.references));
204
+ if (!tHandler) {
205
+ throw { stack: ["getTableRules()"], message: `${tableName} could not be found in dbo` };
206
+ }
205
207
  const MY_RULES = RULE_TO_METHODS.filter(r => {
206
208
  /** Check PG User privileges */
207
209
  const pgUserIsAllowedThis = tHandler.tableOrViewInfo.privileges[r.sqlRule];
@@ -215,6 +217,9 @@ class PublishParser {
215
217
  throw `Cannot publish realtime rule ${tableName}.${r.rule}. Superuser is required for this`;
216
218
  }
217
219
  }
220
+ if (r.rule === "subscribe" && !canSubscribe) {
221
+ result = false;
222
+ }
218
223
  return result;
219
224
  });
220
225
  /* All methods allowed. Add no limits for table rules */
@@ -279,7 +284,7 @@ class PublishParser {
279
284
  const subKey = "subscribe";
280
285
  if (method === "select" && !dissallowedRuleKeys.includes(subKey)) {
281
286
  const sr = MY_RULES.find(r => r.rule === subKey);
282
- if (sr && (!is_view || tHandler.columns.some(c => c.references))) {
287
+ if (sr && canSubscribe) {
283
288
  parsed_table[subKey] = { ...sr.no_limits };
284
289
  parsed_table.subscribeOne = { ...sr.no_limits };
285
290
  }
@@ -507,10 +507,12 @@ export class PublishParser {
507
507
 
508
508
  /* Get view or table specific rules */
509
509
  const tHandler = (this.dbo[tableName] as TableHandler | ViewHandler);
510
-
511
- if (!tHandler) throw { stack: ["getTableRules()"], message: `${tableName} could not be found in dbo` };
512
-
513
510
  const is_view = tHandler.is_view;
511
+ const canSubscribe = (!is_view || tHandler.columns.some(c => c.references));
512
+ if (!tHandler) {
513
+ throw { stack: ["getTableRules()"], message: `${tableName} could not be found in dbo` };
514
+ }
515
+
514
516
  const MY_RULES = RULE_TO_METHODS.filter(r => {
515
517
 
516
518
  /** Check PG User privileges */
@@ -528,6 +530,10 @@ export class PublishParser {
528
530
  }
529
531
  }
530
532
 
533
+ if(r.rule === "subscribe" && !canSubscribe){
534
+ result = false;
535
+ }
536
+
531
537
  return result;
532
538
  });
533
539
 
@@ -605,7 +611,7 @@ export class PublishParser {
605
611
 
606
612
  if (method === "select" && !dissallowedRuleKeys.includes(subKey)) {
607
613
  const sr = MY_RULES.find(r => r.rule === subKey);
608
- if (sr && (!is_view || tHandler.columns.some(c => c.references))) {
614
+ if (sr && canSubscribe) {
609
615
  parsed_table[subKey] = { ...sr.no_limits as SubscribeRule };
610
616
  parsed_table.subscribeOne = { ...sr.no_limits as SubscribeRule };
611
617
  }
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "prostgles-server",
3
- "version": "3.0.77",
3
+ "version": "3.0.79",
4
4
  "description": "",
5
5
  "main": "dist/index.js",
6
6
  "types": "dist/index.d.ts",
@@ -31,15 +31,15 @@
31
31
  ],
32
32
  "homepage": "https://prostgles.com",
33
33
  "dependencies": {
34
- "@aws-sdk/client-s3": "^3.121.0",
34
+ "@aws-sdk/client-s3": "^3.272.0",
35
35
  "@types/express": "^4.17.13",
36
- "aws-sdk": "^2.1256.0",
36
+ "aws-sdk": "^2.1318.0",
37
37
  "bluebird": "^3.7.2",
38
38
  "check-disk-space": "^3.3.1",
39
39
  "file-type": "^17.1.4",
40
40
  "g": "^2.0.1",
41
41
  "pg-promise": "^10.11.1",
42
- "prostgles-types": "^3.0.18",
42
+ "prostgles-types": "^3.0.20",
43
43
  "sharp": "^0.31.0",
44
44
  "typescript": "^4.9.5"
45
45
  },
@@ -1 +1 @@
1
- 93383
1
+ 124772
@@ -21,18 +21,18 @@
21
21
  },
22
22
  "../..": {
23
23
  "name": "prostgles-server",
24
- "version": "3.0.76",
24
+ "version": "3.0.78",
25
25
  "license": "MIT",
26
26
  "dependencies": {
27
- "@aws-sdk/client-s3": "^3.121.0",
27
+ "@aws-sdk/client-s3": "^3.272.0",
28
28
  "@types/express": "^4.17.13",
29
- "aws-sdk": "^2.1256.0",
29
+ "aws-sdk": "^2.1318.0",
30
30
  "bluebird": "^3.7.2",
31
31
  "check-disk-space": "^3.3.1",
32
32
  "file-type": "^17.1.4",
33
33
  "g": "^2.0.1",
34
34
  "pg-promise": "^10.11.1",
35
- "prostgles-types": "^3.0.18",
35
+ "prostgles-types": "^3.0.20",
36
36
  "sharp": "^0.31.0",
37
37
  "typescript": "^4.9.5"
38
38
  },
@@ -1500,19 +1500,19 @@
1500
1500
  "prostgles-server": {
1501
1501
  "version": "file:../..",
1502
1502
  "requires": {
1503
- "@aws-sdk/client-s3": "^3.121.0",
1503
+ "@aws-sdk/client-s3": "^3.272.0",
1504
1504
  "@aws-sdk/types": "^3.110.0",
1505
1505
  "@types/bluebird": "^3.5.36",
1506
1506
  "@types/express": "^4.17.13",
1507
1507
  "@types/node": "^18.0.3",
1508
1508
  "@types/sharp": "^0.30.4",
1509
- "aws-sdk": "^2.1256.0",
1509
+ "aws-sdk": "^2.1318.0",
1510
1510
  "bluebird": "^3.7.2",
1511
1511
  "check-disk-space": "^3.3.1",
1512
1512
  "file-type": "^17.1.4",
1513
1513
  "g": "^2.0.1",
1514
1514
  "pg-promise": "^10.11.1",
1515
- "prostgles-types": "^3.0.18",
1515
+ "prostgles-types": "^3.0.20",
1516
1516
  "sharp": "^0.31.0",
1517
1517
  "typescript": "^4.9.5"
1518
1518
  }