prostgles-server 4.2.45 → 4.2.46

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":"getInitQuery.d.ts","sourceRoot":"","sources":["../../lib/PubSubManager/getInitQuery.ts"],"names":[],"mappings":"AACA,OAAO,EAAsC,aAAa,EAAE,MAAM,iBAAiB,CAAC;AAGpF,eAAO,MAAM,YAAY;;;;;CAKf,CAAC;AAEX,eAAO,MAAM,YAAY,SAAwB,aAAa,KAAG,QAAQ,MAAM,CAwjB9E,CAAA"}
1
+ {"version":3,"file":"getInitQuery.d.ts","sourceRoot":"","sources":["../../lib/PubSubManager/getInitQuery.ts"],"names":[],"mappings":"AACA,OAAO,EAAsC,aAAa,EAAE,MAAM,iBAAiB,CAAC;AAGpF,eAAO,MAAM,YAAY;;;;;CAKf,CAAC;AAEX,eAAO,MAAM,YAAY,SAAwB,aAAa,KAAG,QAAQ,MAAM,CA0jB9E,CAAA"}
@@ -492,7 +492,7 @@ BEGIN
492
492
  json_build_object(
493
493
  'TG_OP', TG_OP,
494
494
  'duration', (EXTRACT(EPOCH FROM now()) * 1000) - start_time,
495
- 'query', LEFT(current_query(), 400)
495
+ 'query', ${this.dboBuilder.prostgles.opts.DEBUG_MODE ? 'LEFT(current_query(), 400)' : "'Only shown in debug mode'"}
496
496
  )
497
497
  )::TEXT, 7999/4)
498
498
  );
@@ -524,8 +524,6 @@ BEGIN
524
524
  DECLARE app RECORD;
525
525
 
526
526
  BEGIN
527
-
528
- --RAISE NOTICE 'SCHEMA_WATCH: %', tg_tag;
529
527
 
530
528
  /*
531
529
  This event trigger will outlive a prostgles app instance.
@@ -547,12 +545,16 @@ BEGIN
547
545
  SELECT *
548
546
  FROM prostgles.apps
549
547
  WHERE tg_tag = ANY(watching_schema_tag_names)
548
+ AND curr_query NOT ILIKE '%${PubSubManager_1.PubSubManager.EXCLUDE_QUERY_FROM_SCHEMA_WATCH_ID}%'
550
549
  LOOP
551
550
  PERFORM pg_notify(
552
551
  ${(0, PubSubManager_1.asValue)(PubSubManager_1.NOTIF_CHANNEL.preffix)} || app.id,
553
552
  LEFT(concat_ws(
554
553
  ${(0, PubSubManager_1.asValue)(PubSubManager_1.PubSubManager.DELIMITER)},
555
- ${(0, PubSubManager_1.asValue)(PubSubManager_1.NOTIF_TYPE.schema)}, tg_tag , TG_event, curr_query
554
+ ${(0, PubSubManager_1.asValue)(PubSubManager_1.NOTIF_TYPE.schema)},
555
+ tg_tag ,
556
+ TG_event,
557
+ ${this.dboBuilder.prostgles.opts.DEBUG_MODE ? 'curr_query' : "'Only shown in debug mode'"}
556
558
  ), 7999/4)
557
559
  );
558
560
  END LOOP;
@@ -1 +1 @@
1
- {"version":3,"file":"getInitQuery.js","sourceRoot":"","sources":["../../lib/PubSubManager/getInitQuery.ts"],"names":[],"mappings":";;;AACA,mDAAoF;AACpF,MAAM,EAAE,OAAO,EAAE,GAAG,OAAO,CAAC,oBAAoB,CAAC,CAAC;AAErC,QAAA,YAAY,GAAG;IAC1B,uBAAuB,EAAE,mCAAmC;IAC5D,eAAe,EAAE,sCAAsC;IACvD,iBAAiB,EAAE,6BAA6B;IAChD,oBAAoB,EAAE,oCAAoC;CAClD,CAAC;AAEJ,MAAM,YAAY,GAAG,KAAK;IAE/B,MAAM,QAAQ,GAAG,KAAK,EAAE,WAAW,GAAG,KAAK,EAAmB,EAAE;QAC9D,MAAM,EAAE,UAAU,GAAG,MAAM,EAAE,GAAG,WAAW,CAAA,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,MAAM,IAAI,CAAC,EAAE,CAAC,SAAS,CAAC,8BAA8B,EAAE,CAAC,MAAM,QAAQ,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;QAElI,OAAO;;;;;;;IAOP,6BAAa,CAAC,kCAAkC;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;sEA+BkB,IAAA,uBAAO,EAAC,OAAO,CAAC;yEACb,IAAA,uBAAO,EAAC,OAAO,CAAC;+BAC1D,IAAA,uBAAO,EAAC,UAAU,CAAC;;;;;;;;;;;;;;;;;;;;;;;;;;;;iBA4BjC,IAAA,uBAAO,EAAC,OAAO,CAAC,KAAK,IAAA,uBAAO,EAAC,UAAU,CAAC;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;qCAsGpB,oBAAY,CAAC,eAAe;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;gCAyGjC,IAAA,uBAAO,EAAC,6BAAa,CAAC,OAAO,CAAC;;kCAE5B,IAAA,uBAAO,EAAC,6BAAa,CAAC,SAAS,CAAC;;kCAEhC,IAAA,uBAAO,EAAC,0BAAU,CAAC,IAAI,CAAC;;;;;;;kCAOxB,IAAI,CAAC,UAAU,CAAC,SAAS,CAAC,IAAI,CAAC,UAAU,CAAA,CAAC,CAAC,CAAC,qHAAqH,CAAC,CAAC,CAAC,CAAC,EAAE;;;;;;;;;;;;;;;;;;;;;;;kBAuBvL,uDAAuD;;;;;;;;;;8BAU3C,oBAAY,CAAC,eAAe;;qCAErB,oBAAY,CAAC,uBAAuB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;uEAwFF,oBAAY,CAAC,eAAe;;;;;;;;;;uEAU5B,oBAAY,CAAC,eAAe;;;;;;;;;;uEAU5B,oBAAY,CAAC,eAAe;;;;;;;;;;;;;yCAazD,6BAAa,CAAC,kCAAkC;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;wBA+BlE,IAAA,uBAAO,EAAC,6BAAa,CAAC,OAAO,CAAC;;0BAE5B,IAAA,uBAAO,EAAC,6BAAa,CAAC,SAAS,CAAC;0BAChC,IAAA,uBAAO,EAAC,0BAAU,CAAC,mBAAmB,CAAC;;;;;;;;;;;;;;;8BAenC,oBAAY,CAAC,uBAAuB;;;;;;+CAMnB,oBAAY,CAAC,uBAAuB;;;;;;+CAMpC,oBAAY,CAAC,uBAAuB;;;qCAG9C,oBAAY,CAAC,iBAAiB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;0BA+BzC,IAAA,uBAAO,EAAC,6BAAa,CAAC,OAAO,CAAC;;4BAE5B,IAAA,uBAAO,EAAC,6BAAa,CAAC,SAAS,CAAC;4BAChC,IAAA,uBAAO,EAAC,0BAAU,CAAC,MAAM,CAAC;;;;;;;;;8BASxB,oBAAY,CAAC,iBAAiB;;;;;;;;;CAS3D,CAAA;IAAA,CAAC,CAAC;IAED,MAAM,GAAG,GAAG,QAAQ,EAAE,CAAC;IAEvB,OAAO,GAAG,CAAC;AACb,CAAC,CAAA;AAxjBY,QAAA,YAAY,gBAwjBxB"}
1
+ {"version":3,"file":"getInitQuery.js","sourceRoot":"","sources":["../../lib/PubSubManager/getInitQuery.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"SchemaWatch.d.ts","sourceRoot":"","sources":["../../lib/SchemaWatch/SchemaWatch.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,0BAA0B,CAAC;AAE3D,OAAO,EAAE,sBAAsB,EAAE,MAAM,cAAc,CAAC;AAEtD,OAAO,EAAE,wBAAwB,EAA+B,MAAM,+BAA+B,CAAC;AAOtG,MAAM,MAAM,YAAY,GAAG,MAAM,IAAI,CAAC;AAEtC,qBAAa,WAAW;IAEtB,UAAU,EAAE,UAAU,CAAC;IACvB,IAAI,EAAE,wBAAwB,CAAC;IAC/B,OAAO;IAYP,MAAM,CAAC,MAAM,eAAsB,UAAU,0BAM5C;IAED;;OAEG;IACH,sBAAsB,EAAE,sBAAsB,GAAG,SAAS,CASzD;IAED,cAAc,EAAE,sBAAsB,GAAG,SAAS,CA8BhD;CACH"}
1
+ {"version":3,"file":"SchemaWatch.d.ts","sourceRoot":"","sources":["../../lib/SchemaWatch/SchemaWatch.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,0BAA0B,CAAC;AAE3D,OAAO,EAAE,sBAAsB,EAAE,MAAM,cAAc,CAAC;AAEtD,OAAO,EAAE,wBAAwB,EAA+B,MAAM,+BAA+B,CAAC;AAOtG,MAAM,MAAM,YAAY,GAAG,MAAM,IAAI,CAAC;AAEtC,qBAAa,WAAW;IAEtB,UAAU,EAAE,UAAU,CAAC;IACvB,IAAI,EAAE,wBAAwB,CAAC;IAC/B,OAAO;IAYP,MAAM,CAAC,MAAM,eAAsB,UAAU,0BAO5C;IAED;;OAEG;IACH,sBAAsB,EAAE,sBAAsB,GAAG,SAAS,CAazD;IAED,cAAc,EAAE,sBAAsB,GAAG,SAAS,CA0BhD;CACH"}
@@ -26,6 +26,7 @@ class SchemaWatch {
26
26
  const instance = new SchemaWatch(dboBuilder);
27
27
  if (instance.type.watchType === "DDL_trigger") {
28
28
  await dboBuilder.getPubSubManager();
29
+ // TODO finish createSchemaWatchEventTrigger to ensure the query is not used in NOTIFY and exclude happens inside Postgres
29
30
  }
30
31
  return instance;
31
32
  };
@@ -33,6 +34,10 @@ class SchemaWatch {
33
34
  * Fallback for watchSchema in case of not a superuser (cannot add db event listener)
34
35
  */
35
36
  onSchemaChangeFallback = async ({ command, query }) => {
37
+ if (typeof query === "string" && query.includes(PubSubManager_1.PubSubManager.EXCLUDE_QUERY_FROM_SCHEMA_WATCH_ID)) {
38
+ (0, PubSubManager_1.log)("Schema change event excluded from triggers due to EXCLUDE_QUERY_FROM_SCHEMA_WATCH_ID");
39
+ return;
40
+ }
36
41
  if (this.type.watchType !== "prostgles_queries" ||
37
42
  !this.onSchemaChange ||
38
43
  !DB_FALLBACK_COMMANDS.includes(command))
@@ -44,10 +49,6 @@ class SchemaWatch {
44
49
  if (watchSchema && this.dboBuilder.prostgles.loaded) {
45
50
  (0, PubSubManager_1.log)("Schema changed");
46
51
  const { query, command } = event;
47
- if (typeof query === "string" && query.includes(PubSubManager_1.PubSubManager.EXCLUDE_QUERY_FROM_SCHEMA_WATCH_ID)) {
48
- (0, PubSubManager_1.log)("Schema change event excluded from triggers due to EXCLUDE_QUERY_FROM_SCHEMA_WATCH_ID");
49
- return;
50
- }
51
52
  if (typeof watchSchema === "function") {
52
53
  /* Only call the provided func */
53
54
  watchSchema(event);
@@ -1 +1 @@
1
- {"version":3,"file":"SchemaWatch.js","sourceRoot":"","sources":["../../lib/SchemaWatch/SchemaWatch.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"SchemaWatch.js","sourceRoot":"","sources":["../../lib/SchemaWatch/SchemaWatch.ts"],"names":[],"mappings":"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"}
@@ -494,7 +494,7 @@ BEGIN
494
494
  json_build_object(
495
495
  'TG_OP', TG_OP,
496
496
  'duration', (EXTRACT(EPOCH FROM now()) * 1000) - start_time,
497
- 'query', LEFT(current_query(), 400)
497
+ 'query', ${this.dboBuilder.prostgles.opts.DEBUG_MODE? 'LEFT(current_query(), 400)' : "'Only shown in debug mode'"}
498
498
  )
499
499
  )::TEXT, 7999/4)
500
500
  );
@@ -526,8 +526,6 @@ BEGIN
526
526
  DECLARE app RECORD;
527
527
 
528
528
  BEGIN
529
-
530
- --RAISE NOTICE 'SCHEMA_WATCH: %', tg_tag;
531
529
 
532
530
  /*
533
531
  This event trigger will outlive a prostgles app instance.
@@ -549,12 +547,16 @@ BEGIN
549
547
  SELECT *
550
548
  FROM prostgles.apps
551
549
  WHERE tg_tag = ANY(watching_schema_tag_names)
550
+ AND curr_query NOT ILIKE '%${PubSubManager.EXCLUDE_QUERY_FROM_SCHEMA_WATCH_ID}%'
552
551
  LOOP
553
552
  PERFORM pg_notify(
554
553
  ${asValue(NOTIF_CHANNEL.preffix)} || app.id,
555
554
  LEFT(concat_ws(
556
555
  ${asValue(PubSubManager.DELIMITER)},
557
- ${asValue(NOTIF_TYPE.schema)}, tg_tag , TG_event, curr_query
556
+ ${asValue(NOTIF_TYPE.schema)},
557
+ tg_tag ,
558
+ TG_event,
559
+ ${this.dboBuilder.prostgles.opts.DEBUG_MODE? 'curr_query' : "'Only shown in debug mode'"}
558
560
  ), 7999/4)
559
561
  );
560
562
  END LOOP;
@@ -30,7 +30,8 @@ export class SchemaWatch {
30
30
  static create = async (dboBuilder: DboBuilder) => {
31
31
  const instance = new SchemaWatch(dboBuilder);
32
32
  if(instance.type.watchType === "DDL_trigger") {
33
- await dboBuilder.getPubSubManager()
33
+ await dboBuilder.getPubSubManager();
34
+ // TODO finish createSchemaWatchEventTrigger to ensure the query is not used in NOTIFY and exclude happens inside Postgres
34
35
  }
35
36
  return instance;
36
37
  }
@@ -40,6 +41,10 @@ export class SchemaWatch {
40
41
  */
41
42
  onSchemaChangeFallback: OnSchemaChangeCallback | undefined = async ({ command, query }) => {
42
43
 
44
+ if (typeof query === "string" && query.includes(PubSubManager.EXCLUDE_QUERY_FROM_SCHEMA_WATCH_ID)) {
45
+ log("Schema change event excluded from triggers due to EXCLUDE_QUERY_FROM_SCHEMA_WATCH_ID");
46
+ return;
47
+ }
43
48
  if(
44
49
  this.type.watchType !== "prostgles_queries" ||
45
50
  !this.onSchemaChange ||
@@ -55,10 +60,6 @@ export class SchemaWatch {
55
60
  if (watchSchema && this.dboBuilder.prostgles.loaded) {
56
61
  log("Schema changed");
57
62
  const { query, command } = event;
58
- if (typeof query === "string" && query.includes(PubSubManager.EXCLUDE_QUERY_FROM_SCHEMA_WATCH_ID)) {
59
- log("Schema change event excluded from triggers due to EXCLUDE_QUERY_FROM_SCHEMA_WATCH_ID");
60
- return;
61
- }
62
63
 
63
64
  if (typeof watchSchema === "function") {
64
65
  /* Only call the provided func */
@@ -0,0 +1,3 @@
1
+ // export const createSchemaWatchEventTrigger = () => {
2
+
3
+ // }
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "prostgles-server",
3
- "version": "4.2.45",
3
+ "version": "4.2.46",
4
4
  "description": "",
5
5
  "main": "dist/index.js",
6
6
  "types": "dist/index.d.ts",
@@ -75,20 +75,22 @@ export const renderReactHookManual = async <H extends Hook>(rootArgs: {
75
75
  */
76
76
  renderDuration?: number;
77
77
  onEnd?: OnEnd<H>;
78
+ onRender?: OnEnd<H>;
78
79
  }): Promise<{
79
80
  setProps: (props: Parameters<H>, opts: { waitFor?: number; onEnd?: OnEnd<H>; }) => void;
80
81
  getResults: () => ReturnType<H>[];
81
82
  }> => {
82
- const { hook, onUnmount, renderDuration = 250, onEnd } = rootArgs;
83
+ const { hook, onUnmount, renderDuration = 250, onEnd, onRender } = rootArgs;
83
84
  let lastRenderWaitTimeout: NodeJS.Timeout | null = null;
84
85
  let didResolve = false;
85
86
  let setProps: (props: any[]) => void;
86
87
  resetBasicComponent();
87
88
  return new Promise((resolve, reject) => {
88
89
  const results = [];
89
- const onRender = (result) => {
90
+ const onCompRender = (result) => {
90
91
  results.push(result);
91
92
  if(didResolve) return;
93
+ onRender?.(results);
92
94
  clearTimeout(lastRenderWaitTimeout);
93
95
  lastRenderWaitTimeout = setTimeout(async () => {
94
96
 
@@ -117,7 +119,7 @@ export const renderReactHookManual = async <H extends Hook>(rootArgs: {
117
119
  onUnmount?.();
118
120
  };
119
121
  }, []);
120
- onRender(result);
122
+ onCompRender(result);
121
123
  return React.createElement('h1', null, `Hello`);
122
124
  }
123
125
  root.render(
@@ -32,37 +32,41 @@ export const useProstglesTest = async (db: DBHandlerClient, getSocketOptions: (w
32
32
 
33
33
  await test("useProstglesClient with schema reload", async (t) => {
34
34
  await db.sql(`select pg_sleep(1)`);
35
- let rerenders = 0
36
- const { results: [res1, res2, res3], rerender } = await renderReactHook({
35
+ await renderReactHookManual({
37
36
  hook: useProstglesClient,
38
- props: [{ socketOptions: getSocketOptions(true) }],
39
- expectedRerenders: 3,
40
- onResult: () => {
41
- rerenders++;
42
- if(rerenders < 2) return;
43
- rerenders = -2;
37
+ initialProps: [{ socketOptions: getSocketOptions(true) }],
38
+ renderDuration: 1000,
39
+ onRender: async (results) => {
40
+ if(results.length !== 1) return;
44
41
  db.sql(`CREATE TABLE ${newly_created_table}(id integer);`);
42
+ },
43
+ onEnd: async (results) => {
44
+ const [res1, res2, res3] = results;
45
+ assert.equal(
46
+ results.length, 3
47
+ );
48
+ assert.deepStrictEqual(
49
+ res1,
50
+ { isLoading: true }
51
+ );
52
+ assert.equal(
53
+ res2.isLoading,
54
+ false
55
+ );
56
+ assert.equal(
57
+ typeof (res2 as any)?.dbo[newly_created_table]?.useFind,
58
+ "undefined"
59
+ );
60
+ assert.equal(
61
+ typeof (res3 as any)?.dbo[newly_created_table].useFind,
62
+ "function"
63
+ );
64
+
65
+ const count = await (res3 as any)?.dbo[newly_created_table].count();
66
+ assert.equal(count, 0);
67
+
45
68
  }
46
69
  });
47
- assert.deepStrictEqual(
48
- res1,
49
- { isLoading: true }
50
- );
51
- assert.equal(
52
- res2.isLoading,
53
- false
54
- );
55
- assert.equal(
56
- typeof (res2 as any)?.dbo[newly_created_table]?.useFind,
57
- "undefined"
58
- );
59
- assert.equal(
60
- typeof (res3 as any)?.dbo[newly_created_table].useFind,
61
- "function"
62
- );
63
-
64
- const count = await (res3 as any)?.dbo[newly_created_table].count();
65
- assert.equal(count, 0);
66
70
  });
67
71
 
68
72
  await test("useProstglesClient with initial skip", async (t) => {
@@ -257,6 +257,16 @@ export type DBSchemaGenerated = {
257
257
  id: string;
258
258
  };
259
259
  };
260
+ newly_created_table: {
261
+ is_view: false;
262
+ select: true;
263
+ insert: true;
264
+ update: true;
265
+ delete: true;
266
+ columns: {
267
+ id?: null | number;
268
+ };
269
+ };
260
270
  obj_table: {
261
271
  is_view: false;
262
272
  select: true;
@@ -21,7 +21,7 @@
21
21
  },
22
22
  "../..": {
23
23
  "name": "prostgles-server",
24
- "version": "4.2.44",
24
+ "version": "4.2.45",
25
25
  "license": "MIT",
26
26
  "dependencies": {
27
27
  "@types/express": "^4.17.13",