prostgles-server 4.1.94 → 4.1.95

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.
@@ -1 +1 @@
1
- {"version":3,"file":"updateBatch.d.ts","sourceRoot":"","sources":["../../../lib/DboBuilder/TableHandler/updateBatch.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,YAAY,EAAE,MAAM,iBAAiB,CAAC;AAC1D,OAAO,EAAE,MAAM,EAAE,WAAW,EAAiD,MAAM,kBAAkB,CAAC;AACtG,OAAO,EAAE,SAAS,EAAE,MAAM,qBAAqB,CAAC;AAChD,OAAO,EAAE,YAAY,EAAE,MAAM,gBAAgB,CAAC;AAG9C,wBAAsB,WAAW,CAAC,IAAI,EAAE,YAAY,EAAE,OAAO,EAAE,CAAC,MAAM,EAAE,SAAS,CAAC,EAAE,EAAE,MAAM,CAAC,EAAE,YAAY,EAAE,UAAU,CAAC,EAAE,SAAS,EAAE,WAAW,CAAC,EAAE,WAAW,GAAG,OAAO,CAAC,GAAG,CAAC,CAgC5K"}
1
+ {"version":3,"file":"updateBatch.d.ts","sourceRoot":"","sources":["../../../lib/DboBuilder/TableHandler/updateBatch.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,YAAY,EAAE,MAAM,iBAAiB,CAAC;AAC1D,OAAO,EAAE,MAAM,EAAE,WAAW,EAAiD,MAAM,kBAAkB,CAAC;AACtG,OAAO,EAAE,SAAS,EAAE,MAAM,qBAAqB,CAAC;AAChD,OAAO,EAAE,YAAY,EAAE,MAAM,gBAAgB,CAAC;AAG9C,wBAAsB,WAAW,CAAC,IAAI,EAAE,YAAY,EAAE,OAAO,EAAE,CAAC,MAAM,EAAE,SAAS,CAAC,EAAE,EAAE,MAAM,CAAC,EAAE,YAAY,EAAE,UAAU,CAAC,EAAE,SAAS,EAAE,WAAW,CAAC,EAAE,WAAW,GAAG,OAAO,CAAC,GAAG,CAAC,CAoC5K"}
@@ -5,6 +5,10 @@ const DboBuilder_1 = require("../../DboBuilder");
5
5
  async function updateBatch(updates, params, tableRules, localParams) {
6
6
  try {
7
7
  await this._log({ command: "updateBatch", localParams, data: { data: updates, params } });
8
+ const { checkFilter, postValidate } = tableRules?.update ?? {};
9
+ if (checkFilter || postValidate) {
10
+ throw `updateBatch not allowed for tables with checkFilter or postValidate rules`;
11
+ }
8
12
  const updateQueries = await Promise.all(updates.map(async ([filter, data]) => {
9
13
  const query = (await this.update(filter, data, { ...(params || {}), returning: undefined }, tableRules, { ...(localParams || {}), returnQuery: "noRLS" }));
10
14
  return query;
@@ -1 +1 @@
1
- {"version":3,"file":"updateBatch.js","sourceRoot":"","sources":["../../../lib/DboBuilder/TableHandler/updateBatch.ts"],"names":[],"mappings":";;;AACA,iDAAsG;AAK/F,KAAK,UAAU,WAAW,CAAqB,OAA8B,EAAE,MAAqB,EAAE,UAAsB,EAAE,WAAyB;IAC5J,IAAI;QACF,MAAM,IAAI,CAAC,IAAI,CAAC,EAAE,OAAO,EAAE,aAAa,EAAE,WAAW,EAAE,IAAI,EAAE,EAAE,IAAI,EAAE,OAAO,EAAE,MAAM,EAAE,EAAE,CAAC,CAAC;QAC1F,MAAM,aAAa,GAAa,MAAM,OAAO,CAAC,GAAG,CAC/C,OAAO,CAAC,GAAG,CAAC,KAAK,EAAE,CAAC,MAAM,EAAE,IAAI,CAAC,EAAE,EAAE;YACnC,MAAM,KAAK,GAAG,CAAC,MAAM,IAAI,CAAC,MAAM,CAC9B,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,OAAO,EAAE,CACjD,CAAsB,CAAC;YAExB,OAAO,KAAK,CAAC;QACf,CAAC,CAAC,CACH,CAAC;QACF,MAAM,OAAO,GAAG;YACd,IAAA,wBAAW,EAAC,WAAW,EAAE,EAAE,CAAC;YAC5B,GAAG,aAAa;SACjB,CAAC;QAEF,MAAM,CAAC,GAAG,WAAW,EAAE,EAAE,EAAE,CAAC,IAAI,IAAI,CAAC,EAAE,EAAE,CAAC,CAAC;QAC3C,IAAG,CAAC,EAAC;YACH,OAAO,CAAC,CAAC,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAA;SACnC;QACD,OAAO,IAAI,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE;YACpB,OAAO,CAAC,CAAC,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC;QACrC,CAAC,CAAC,CAAC,KAAK,CAAC,GAAG,CAAC,EAAE,CAAC,IAAA,iCAAoB,EAAC,GAAG,EAAE,WAAW,EAAE,IAAI,EAAE,EAAE,CAAC,CAAC,CAAC;KACnE;IAAC,OAAO,CAAC,EAAE;QACV,IAAI,WAAW,IAAI,WAAW,CAAC,QAAQ;YAAE,MAAM,CAAC,CAAC;QACjD,MAAM,IAAA,uBAAU,EAAC,CAAC,EAAE,OAAO,IAAI,CAAC,IAAI,WAAW,CAAC,CAAC;KAClD;AACH,CAAC;AAhCD,kCAgCC"}
1
+ {"version":3,"file":"updateBatch.js","sourceRoot":"","sources":["../../../lib/DboBuilder/TableHandler/updateBatch.ts"],"names":[],"mappings":";;;AACA,iDAAsG;AAK/F,KAAK,UAAU,WAAW,CAAqB,OAA8B,EAAE,MAAqB,EAAE,UAAsB,EAAE,WAAyB;IAC5J,IAAI;QACF,MAAM,IAAI,CAAC,IAAI,CAAC,EAAE,OAAO,EAAE,aAAa,EAAE,WAAW,EAAE,IAAI,EAAE,EAAE,IAAI,EAAE,OAAO,EAAE,MAAM,EAAE,EAAE,CAAC,CAAC;QAC1F,MAAM,EAAE,WAAW,EAAE,YAAY,EAAE,GAAG,UAAU,EAAE,MAAM,IAAI,EAAE,CAAC;QAC/D,IAAG,WAAW,IAAI,YAAY,EAAC;YAC7B,MAAM,2EAA2E,CAAA;SAClF;QACD,MAAM,aAAa,GAAa,MAAM,OAAO,CAAC,GAAG,CAC/C,OAAO,CAAC,GAAG,CAAC,KAAK,EAAE,CAAC,MAAM,EAAE,IAAI,CAAC,EAAE,EAAE;YACnC,MAAM,KAAK,GAAG,CAAC,MAAM,IAAI,CAAC,MAAM,CAC9B,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,OAAO,EAAE,CACjD,CAAsB,CAAC;YAExB,OAAO,KAAK,CAAC;QACf,CAAC,CAAC,CACH,CAAC;QACF,MAAM,OAAO,GAAG;YACd,IAAA,wBAAW,EAAC,WAAW,EAAE,EAAE,CAAC;YAC5B,GAAG,aAAa;SACjB,CAAC;QAEF,MAAM,CAAC,GAAG,WAAW,EAAE,EAAE,EAAE,CAAC,IAAI,IAAI,CAAC,EAAE,EAAE,CAAC,CAAC;QAC3C,IAAG,CAAC,EAAC;YACH,OAAO,CAAC,CAAC,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAA;SACnC;QACD,OAAO,IAAI,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE;YACpB,OAAO,CAAC,CAAC,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC;QACrC,CAAC,CAAC,CAAC,KAAK,CAAC,GAAG,CAAC,EAAE,CAAC,IAAA,iCAAoB,EAAC,GAAG,EAAE,WAAW,EAAE,IAAI,EAAE,EAAE,CAAC,CAAC,CAAC;KACnE;IAAC,OAAO,CAAC,EAAE;QACV,IAAI,WAAW,IAAI,WAAW,CAAC,QAAQ;YAAE,MAAM,CAAC,CAAC;QACjD,MAAM,IAAA,uBAAU,EAAC,CAAC,EAAE,OAAO,IAAI,CAAC,IAAI,WAAW,CAAC,CAAC;KAClD;AACH,CAAC;AApCD,kCAoCC"}
@@ -21,8 +21,8 @@ export declare class PostgresNotifListenManager {
21
21
  isReady(): any;
22
22
  startListening(): Promise<unknown>;
23
23
  destroyed: boolean;
24
- destroy: () => void;
25
- stopListening: () => void;
24
+ destroy: () => Promise<void>;
25
+ stopListening: () => Promise<void>;
26
26
  reconnect(delay?: number | undefined, maxAttempts?: number | undefined): Promise<unknown>;
27
27
  }
28
28
  //# sourceMappingURL=PostgresNotifListenManager.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"PostgresNotifListenManager.d.ts","sourceRoot":"","sources":["../lib/PostgresNotifListenManager.ts"],"names":[],"mappings":"AAKA,OAAO,EAAE,EAAE,EAAE,MAAM,aAAa,CAAC;AACjC,OAAO,EAAE,MAAM,iCAAiC,CAAC;AACjD,OAAO,SAAS,MAAM,YAAY,CAAC;AAEnC,MAAM,MAAM,iBAAiB,GAAG,CAAC,IAAI,EAAE;IACnC,MAAM,EAAE,MAAM,CAAC;IACf,SAAS,EAAE,MAAM,CAAC;IAClB,OAAO,EAAE,MAAM,CAAC;IAChB,OAAO,EAAE,MAAM,CAAC;IAChB,IAAI,EAAE,MAAM,CAAC;CAChB,KAAK,IAAI,CAAC;AAEX,qBAAa,0BAA0B;IACnC,UAAU,CAAC,EAAE,SAAS,CAAC,UAAU,CAAC,EAAE,EAAE,EAAE,CAAC,OAAO,CAAC,CAAC;IAClD,KAAK,EAAE,EAAE,CAAC;IACV,aAAa,EAAE,iBAAiB,CAAC;IACjC,eAAe,EAAE,MAAM,CAAC;IACxB,WAAW,EAAE,GAAG,CAAC;IACjB,MAAM,CAAC,EAAE,EAAE,CAAC,OAAO,CAAC;IAEpB,MAAM,CAAC,MAAM,6BAA8B,iBAAiB,mBAAmB,MAAM,KAAG,QAAQ,0BAA0B,CAAC,CAG1H;gBAEW,KAAK,EAAE,EAAE,EAAE,aAAa,EAAE,iBAAiB,EAAE,eAAe,EAAE,MAAM,EAAE,MAAM,UAAQ;IAS1F,IAAI,IAAI,OAAO,CAAC,0BAA0B,CAAC;IAQjD,OAAO;IAIP,cAAc;IA+Bd,SAAS,UAAS;IAClB,OAAO,aAMN;IAED,aAAa,aAKZ;IAED,SAAS,CAAC,KAAK,GAAE,MAAM,GAAG,SAAa,EAAE,WAAW,GAAE,MAAM,GAAG,SAAa;CA0D/E"}
1
+ {"version":3,"file":"PostgresNotifListenManager.d.ts","sourceRoot":"","sources":["../lib/PostgresNotifListenManager.ts"],"names":[],"mappings":"AAKA,OAAO,EAAE,EAAE,EAAE,MAAM,aAAa,CAAC;AACjC,OAAO,EAAE,MAAM,iCAAiC,CAAC;AACjD,OAAO,SAAS,MAAM,YAAY,CAAC;AAEnC,MAAM,MAAM,iBAAiB,GAAG,CAAC,IAAI,EAAE;IACrC,MAAM,EAAE,MAAM,CAAC;IACf,SAAS,EAAE,MAAM,CAAC;IAClB,OAAO,EAAE,MAAM,CAAC;IAChB,OAAO,EAAE,MAAM,CAAC;IAChB,IAAI,EAAE,MAAM,CAAC;CACd,KAAK,IAAI,CAAC;AAEX,qBAAa,0BAA0B;IACrC,UAAU,CAAC,EAAE,SAAS,CAAC,UAAU,CAAC,EAAE,EAAE,EAAE,CAAC,OAAO,CAAC,CAAC;IAClD,KAAK,EAAE,EAAE,CAAC;IACV,aAAa,EAAE,iBAAiB,CAAC;IACjC,eAAe,EAAE,MAAM,CAAC;IACxB,WAAW,EAAE,GAAG,CAAC;IACjB,MAAM,CAAC,EAAE,EAAE,CAAC,OAAO,CAAC;IAEpB,MAAM,CAAC,MAAM,6BAA8B,iBAAiB,mBAAmB,MAAM,KAAG,QAAQ,0BAA0B,CAAC,CAG1H;gBAEW,KAAK,EAAE,EAAE,EAAE,aAAa,EAAE,iBAAiB,EAAE,eAAe,EAAE,MAAM,EAAE,MAAM,UAAQ;IAS1F,IAAI,IAAI,OAAO,CAAC,0BAA0B,CAAC;IAQjD,OAAO;IAIP,cAAc;IASd,SAAS,UAAS;IAClB,OAAO,sBAKN;IAED,aAAa,sBASZ;IAED,SAAS,CAAC,KAAK,GAAE,MAAM,GAAG,SAAa,EAAE,WAAW,GAAE,MAAM,GAAG,SAAa;CA6D7E"}
@@ -36,49 +36,34 @@ class PostgresNotifListenManager {
36
36
  startListening() {
37
37
  if (!this.db_pg || !this.notifListener)
38
38
  throw "PostgresNotifListenManager: db_pg OR notifListener missing";
39
- return this.reconnect() // = same as reconnect(0, 1)
40
- .then(obj => {
41
- return obj;
42
- /* TODO: expose this within onReady */
43
- // console.log('psqlWS - Successful Initial Connection');
44
- // obj.done(); - releases the connection
45
- /* HOW TO SEND NOTIF
46
- Used for testing in conjunction with
47
- SELECT pg_terminate_backend(pid) FROM pg_stat_activity WHERE datname='db-name';
48
-
49
- function sendNotifications() {
50
- if (this.connection) {
51
- this.connection.none('NOTIFY $1~, $2', [this.db_channel_name, 'my payload string'])
52
- .catch(error => {
53
- console.log('psqlWS - Failed to Notify:', error); // unlikely to ever happen
54
- })
55
- }
56
- }
57
- */
58
- })
39
+ return this.reconnect()
59
40
  .catch(error => {
60
41
  console.log('PostgresNotifListenManager: Failed Initial Connection:', error);
61
42
  });
62
43
  }
63
44
  destroyed = false;
64
- destroy = () => {
65
- if (this.connection) {
66
- this.destroyed = true;
67
- this.connection.done();
68
- this.connection = undefined;
69
- }
45
+ destroy = async () => {
46
+ this.destroyed = true;
47
+ await this.stopListening();
48
+ this.connection?.done();
49
+ this.connection = undefined;
70
50
  };
71
- stopListening = () => {
51
+ stopListening = async () => {
72
52
  if (this.db_channel_name) {
73
- if (this.connection)
74
- this.connection.none('UNLISTEN $1~', this.db_channel_name);
75
- if (this.client)
76
- this.client.query('UNLISTEN $1~', this.db_channel_name);
53
+ try {
54
+ await this.connection?.none('UNLISTEN $1~', [this.db_channel_name]);
55
+ await this.client?.query('UNLISTEN $1~', [this.db_channel_name]);
56
+ }
57
+ catch (error) {
58
+ }
77
59
  }
78
60
  };
79
61
  reconnect(delay = 0, maxAttempts = 0) {
80
62
  if (!this.db_pg || !this.notifListener)
81
63
  throw "db_pg OR notifListener missing";
64
+ if (this.destroyed) {
65
+ return Promise.reject("Destroyed");
66
+ }
82
67
  delay = delay > 0 ? parseInt(delay + "") : 0;
83
68
  maxAttempts = maxAttempts > 0 ? parseInt(maxAttempts + "") : 1;
84
69
  const setListeners = (client, notifListener, db_channel_name) => {
@@ -96,8 +81,6 @@ class PostgresNotifListenManager {
96
81
  console.log('PostgresNotifListenManager: Connectivity Problem:', err);
97
82
  this.connection = undefined; // prevent use of the broken connection
98
83
  removeListeners(e.client);
99
- if (this.destroyed)
100
- return;
101
84
  this.reconnect(5000, 10) // retry 10 times, with 5-second intervals
102
85
  .then(() => {
103
86
  console.log('PostgresNotifListenManager: Successfully Reconnected');
@@ -1 +1 @@
1
- {"version":3,"file":"PostgresNotifListenManager.js","sourceRoot":"","sources":["../lib/PostgresNotifListenManager.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"PostgresNotifListenManager.js","sourceRoot":"","sources":["../lib/PostgresNotifListenManager.ts"],"names":[],"mappings":"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"}
@@ -322,7 +322,7 @@ class PublishParser {
322
322
  r.methods.forEach(method => {
323
323
  const isAllowed = tableRules[r.rule] && tableRules[method] === undefined;
324
324
  if (isAllowed) {
325
- if (method === "updateBatch" && !tableRules.update) {
325
+ if (method === "updateBatch" && (!tableRules.update || tableRules.update.checkFilter || tableRules.update.postValidate)) {
326
326
  // not allowed
327
327
  }
328
328
  else if (method === "upsert" && (!tableRules.update || !tableRules.insert)) {
@@ -1 +1 @@
1
- {"version":3,"file":"PublishParser.js","sourceRoot":"","sources":["../lib/PublishParser.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"PublishParser.js","sourceRoot":"","sources":["../lib/PublishParser.ts"],"names":[],"mappings":"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"}
@@ -7,6 +7,10 @@ import { TableHandler } from "./TableHandler";
7
7
  export async function updateBatch(this: TableHandler, updates: [Filter, AnyObject][], params?: UpdateParams, tableRules?: TableRule, localParams?: LocalParams): Promise<any> {
8
8
  try {
9
9
  await this._log({ command: "updateBatch", localParams, data: { data: updates, params } });
10
+ const { checkFilter, postValidate } = tableRules?.update ?? {};
11
+ if(checkFilter || postValidate){
12
+ throw `updateBatch not allowed for tables with checkFilter or postValidate rules`
13
+ }
10
14
  const updateQueries: string[] = await Promise.all(
11
15
  updates.map(async ([filter, data]) => {
12
16
  const query = (await this.update(
@@ -7,151 +7,135 @@ import { DB } from "./Prostgles";
7
7
  import pg from "pg-promise/typescript/pg-subset";
8
8
  import pgPromise from "pg-promise";
9
9
 
10
- export type PrglNotifListener = (args: {
11
- length: number;
12
- processId: number;
13
- channel: string;
14
- payload: string;
15
- name: string;
10
+ export type PrglNotifListener = (args: {
11
+ length: number;
12
+ processId: number;
13
+ channel: string;
14
+ payload: string;
15
+ name: string;
16
16
  }) => void;
17
17
 
18
18
  export class PostgresNotifListenManager {
19
- connection?: pgPromise.IConnected<{}, pg.IClient>;
20
- db_pg: DB;
21
- notifListener: PrglNotifListener;
22
- db_channel_name: string;
23
- isListening: any;
24
- client?: pg.IClient;
25
-
26
- static create = (db_pg: DB, notifListener: PrglNotifListener, db_channel_name: string): Promise<PostgresNotifListenManager> => {
27
- const res = new PostgresNotifListenManager(db_pg, notifListener, db_channel_name, true);
28
- return res.init();
19
+ connection?: pgPromise.IConnected<{}, pg.IClient>;
20
+ db_pg: DB;
21
+ notifListener: PrglNotifListener;
22
+ db_channel_name: string;
23
+ isListening: any;
24
+ client?: pg.IClient;
25
+
26
+ static create = (db_pg: DB, notifListener: PrglNotifListener, db_channel_name: string): Promise<PostgresNotifListenManager> => {
27
+ const res = new PostgresNotifListenManager(db_pg, notifListener, db_channel_name, true);
28
+ return res.init();
29
+ }
30
+
31
+ constructor(db_pg: DB, notifListener: PrglNotifListener, db_channel_name: string, noInit = false) {
32
+ if (!db_pg || !notifListener || !db_channel_name) throw "PostgresNotifListenManager: db_pg OR notifListener OR db_channel_name MISSING";
33
+ this.db_pg = db_pg;
34
+ this.notifListener = notifListener;
35
+ this.db_channel_name = db_channel_name;
36
+
37
+ if (!noInit) this.init()
38
+ }
39
+
40
+ async init(): Promise<PostgresNotifListenManager> {
41
+
42
+ this.connection = undefined;
43
+
44
+ this.isListening = await this.startListening();
45
+ return this;
46
+ }
47
+
48
+ isReady() {
49
+ return this.isListening;
50
+ }
51
+
52
+ startListening() {
53
+ if (!this.db_pg || !this.notifListener) throw "PostgresNotifListenManager: db_pg OR notifListener missing";
54
+
55
+ return this.reconnect()
56
+ .catch(error => {
57
+ console.log('PostgresNotifListenManager: Failed Initial Connection:', error);
58
+ });
59
+ }
60
+
61
+ destroyed = false;
62
+ destroy = async () => {
63
+ this.destroyed = true;
64
+ await this.stopListening();
65
+ this.connection?.done();
66
+ this.connection = undefined;
67
+ }
68
+
69
+ stopListening = async () => {
70
+ if (this.db_channel_name) {
71
+ try {
72
+ await this.connection?.none('UNLISTEN $1~', [this.db_channel_name])
73
+ await this.client?.query('UNLISTEN $1~', [this.db_channel_name])
74
+ } catch(error){
75
+
76
+ }
29
77
  }
78
+ }
30
79
 
31
- constructor(db_pg: DB, notifListener: PrglNotifListener, db_channel_name: string, noInit = false){
32
- if(!db_pg || !notifListener || !db_channel_name) throw "PostgresNotifListenManager: db_pg OR notifListener OR db_channel_name MISSING";
33
- this.db_pg = db_pg;
34
- this.notifListener = notifListener;
35
- this.db_channel_name = db_channel_name;
80
+ reconnect(delay: number | undefined = 0, maxAttempts: number | undefined = 0) {
81
+ if (!this.db_pg || !this.notifListener) throw "db_pg OR notifListener missing";
36
82
 
37
- if(!noInit) this.init()
83
+ if (this.destroyed) {
84
+ return Promise.reject("Destroyed")
38
85
  }
39
86
 
40
- async init(): Promise<PostgresNotifListenManager> {
41
-
42
- this.connection = undefined;
43
-
44
- this.isListening = await this.startListening();
45
- return this;
46
- }
47
-
48
- isReady(){
49
- return this.isListening;
50
- }
51
-
52
- startListening(){
53
- if(!this.db_pg || !this.notifListener) throw "PostgresNotifListenManager: db_pg OR notifListener missing";
54
-
55
- return this.reconnect() // = same as reconnect(0, 1)
56
- .then(obj => {
57
- return obj;
58
- /* TODO: expose this within onReady */
59
-
60
- // console.log('psqlWS - Successful Initial Connection');
61
- // obj.done(); - releases the connection
62
-
63
- /* HOW TO SEND NOTIF
64
- Used for testing in conjunction with
65
- SELECT pg_terminate_backend(pid) FROM pg_stat_activity WHERE datname='db-name';
66
-
67
- function sendNotifications() {
68
- if (this.connection) {
69
- this.connection.none('NOTIFY $1~, $2', [this.db_channel_name, 'my payload string'])
70
- .catch(error => {
71
- console.log('psqlWS - Failed to Notify:', error); // unlikely to ever happen
72
- })
73
- }
74
- }
75
- */
76
-
77
- })
78
- .catch(error => {
79
- console.log('PostgresNotifListenManager: Failed Initial Connection:', error);
80
- });
81
- }
82
-
83
- destroyed = false;
84
- destroy = () => {
85
- if(this.connection) {
86
- this.destroyed = true;
87
- this.connection.done();
88
- this.connection = undefined;
89
- }
90
- }
91
-
92
- stopListening = () => {
93
- if(this.db_channel_name) {
94
- if(this.connection) this.connection.none('UNLISTEN $1~', this.db_channel_name)
95
- if(this.client) this.client.query('UNLISTEN $1~', this.db_channel_name as any)
96
- }
87
+ delay = delay > 0 ? parseInt(delay + "") : 0;
88
+ maxAttempts = maxAttempts > 0 ? parseInt(maxAttempts + "") : 1;
89
+
90
+ const setListeners = (client: pg.IClient, notifListener: PrglNotifListener, db_channel_name: string) => {
91
+ client.on('notification', notifListener);
92
+ this.client = client;
93
+ if (!this.connection) throw "Connection missing";
94
+ return this.connection.none(
95
+ `/* prostgles-server internal query used for subscriptions and schema hot reload */ \nLISTEN $1~`, db_channel_name)
96
+ .catch(error => {
97
+ console.log("PostgresNotifListenManager: unexpected error: ", error); // unlikely to ever happen
98
+ });
99
+ },
100
+ removeListeners = (client: pg.IClient) => {
101
+ client.removeListener('notification', this.notifListener);
102
+ },
103
+ onConnectionLost = (err: any, e: pgPromise.ILostContext<pg.IClient>) => {
104
+
105
+ console.log('PostgresNotifListenManager: Connectivity Problem:', err);
106
+ this.connection = undefined; // prevent use of the broken connection
107
+ removeListeners(e.client);
108
+
109
+ this.reconnect(5000, 10) // retry 10 times, with 5-second intervals
110
+ .then(() => {
111
+ console.log('PostgresNotifListenManager: Successfully Reconnected');
112
+ })
113
+ .catch(() => {
114
+ // failed after 10 attempts
115
+ console.log('PostgresNotifListenManager: Connection Lost Permanently. No more retryies');
116
+ // process.exit(); // exiting the process
117
+ });
97
118
  }
98
119
 
99
- reconnect(delay: number | undefined = 0, maxAttempts: number | undefined = 0) {
100
- if(!this.db_pg || !this.notifListener) throw "db_pg OR notifListener missing";
101
-
102
- delay = delay > 0 ? parseInt(delay + "") : 0;
103
- maxAttempts = maxAttempts > 0 ? parseInt(maxAttempts + "") : 1;
104
-
105
- const setListeners = (client: pg.IClient, notifListener: PrglNotifListener, db_channel_name: string) => {
106
- client.on('notification', notifListener);
107
- this.client = client;
108
- if(!this.connection) throw "Connection missing";
109
- return this.connection.none(
110
- `/* prostgles-server internal query used for subscriptions and schema hot reload */ \nLISTEN $1~`, db_channel_name)
111
- .catch(error => {
112
- console.log("PostgresNotifListenManager: unexpected error: ", error); // unlikely to ever happen
113
- });
114
- },
115
- removeListeners = (client: pg.IClient) => {
116
- client.removeListener('notification', this.notifListener);
117
- },
118
- onConnectionLost = (err: any, e: pgPromise.ILostContext<pg.IClient>) => {
119
-
120
- console.log('PostgresNotifListenManager: Connectivity Problem:', err);
121
- this.connection = undefined; // prevent use of the broken connection
122
- removeListeners(e.client);
123
-
124
- if(this.destroyed) return;
125
- this.reconnect(5000, 10) // retry 10 times, with 5-second intervals
126
- .then(() => {
127
- console.log('PostgresNotifListenManager: Successfully Reconnected');
128
- })
129
- .catch(() => {
130
- // failed after 10 attempts
131
- console.log('PostgresNotifListenManager: Connection Lost Permanently. No more retryies');
132
- // process.exit(); // exiting the process
133
- });
120
+ return new Promise((resolve, reject) => {
121
+ setTimeout(() => {
122
+ this.db_pg.connect({ direct: true, onLost: onConnectionLost })
123
+ .then(obj => {
124
+ this.connection = obj; // global connection is now available
125
+ resolve(obj);
126
+ return setListeners(obj.client, this.notifListener, this.db_channel_name);
127
+ })
128
+ .catch(error => {
129
+ console.log('PostgresNotifListenManager: Error Connecting:', error);
130
+ if (--maxAttempts) {
131
+ this.reconnect(delay, maxAttempts)
132
+ .then(resolve)
133
+ .catch(reject);
134
+ } else {
135
+ reject(error);
134
136
  }
135
-
136
- return new Promise((resolve, reject) => {
137
- setTimeout(() => {
138
- this.db_pg.connect({ direct: true, onLost: onConnectionLost })
139
- .then(obj => {
140
- this.connection = obj; // global connection is now available
141
- resolve(obj);
142
- return setListeners(obj.client, this.notifListener, this.db_channel_name);
143
- })
144
- .catch(error => {
145
- console.log('PostgresNotifListenManager: Error Connecting:', error);
146
- if (--maxAttempts) {
147
- this.reconnect(delay, maxAttempts)
148
- .then(resolve)
149
- .catch(reject);
150
- } else {
151
- reject(error);
152
- }
153
- });
154
- }, delay);
155
- });
156
- }
137
+ });
138
+ }, delay);
139
+ });
140
+ }
157
141
  }
@@ -664,7 +664,7 @@ export class PublishParser {
664
664
  const isAllowed = tableRules[r.rule] && (tableRules as any)[method] === undefined;
665
665
  if (isAllowed) {
666
666
 
667
- if (method === "updateBatch" && !tableRules.update) {
667
+ if (method === "updateBatch" && (!tableRules.update || tableRules.update.checkFilter || tableRules.update.postValidate)) {
668
668
  // not allowed
669
669
 
670
670
  } else if (method === "upsert" && (!tableRules.update || !tableRules.insert)) {
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "prostgles-server",
3
- "version": "4.1.94",
3
+ "version": "4.1.95",
4
4
  "description": "",
5
5
  "main": "dist/index.js",
6
6
  "types": "dist/index.d.ts",
@@ -21,7 +21,7 @@
21
21
  },
22
22
  "../..": {
23
23
  "name": "prostgles-server",
24
- "version": "4.1.93",
24
+ "version": "4.1.94",
25
25
  "license": "MIT",
26
26
  "dependencies": {
27
27
  "@types/express": "^4.17.13",
@@ -1 +0,0 @@
1
- 3217