prostgles-server 4.2.38 → 4.2.40

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/README.md CHANGED
@@ -77,6 +77,19 @@ prostgles({
77
77
  });
78
78
  ```
79
79
 
80
+ react.tsx
81
+ ```js
82
+
83
+ const App = () => {
84
+ const { isLoading, dbo } = useProstglesClient();
85
+ if(isLoading) return null;
86
+ return <>
87
+ Database tables: {Object.keys(dbo)}
88
+ </>
89
+ }
90
+
91
+ ```
92
+
80
93
  ./public/index.html
81
94
  ```html
82
95
 
@@ -95,7 +108,7 @@ prostgles({
95
108
 
96
109
  prostgles({
97
110
  socket: io(),
98
- onReady: async (dbo, dbsMethods, schemaTables, auth) => {
111
+ onReady: async ({ dbo, dbsMethods, schemaTables, auth }) => {
99
112
 
100
113
  }
101
114
  });
@@ -1 +1 @@
1
- {"version":3,"file":"runSQL.d.ts","sourceRoot":"","sources":["../../lib/DboBuilder/runSQL.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,MAAM,iCAAiC,CAAC;AACjD,OAAO,EAAE,SAAS,EAAE,UAAU,EAA4B,MAAM,iBAAiB,CAAC;AAElF,OAAO,EAAE,EAAE,EAAE,SAAS,EAAE,MAAM,cAAc,CAAC;AAC7C,OAAO,EAAE,UAAU,EAAE,WAAW,EAAyB,MAAM,cAAc,CAAC;AAG9E,wBAAsB,MAAM,CAAC,IAAI,EAAE,UAAU,EAAE,eAAe,EAAE,MAAM,EAAE,IAAI,EAAE,SAAS,GAAG,SAAS,GAAG,GAAG,EAAE,EAAE,OAAO,EAAE,UAAU,GAAG,SAAS,EAAE,WAAW,CAAC,EAAE,WAAW,gBAkFtK;AAcD;;GAEG;AACH,eAAO,MAAM,mBAAmB,SAAwB,UAAU;qBAAmD,MAAM;aAAW,MAAM;mBAiB3I,CAAA;AAED,wBAAsB,YAAY,CAAC,IAAI,EAAE,UAAU,iBAyBlD;AAED,wBAAgB,oBAAoB,CAAC,IAAI,EAAE,UAAU,EAAE,MAAM,EAAE,EAAE,CAAC,OAAO,EAAE;;;;;;;;;;;;;;;IAiB1E;AAED,eAAO,MAAM,SAAS,cAAqB,SAAS,gBAAgB,WAAW,KAAG,QAAQ,OAAO,CAQhG,CAAA;AAED,eAAO,MAAM,eAAe,cAAmB,QAAQ,OAAO,CAE7D,CAAA"}
1
+ {"version":3,"file":"runSQL.d.ts","sourceRoot":"","sources":["../../lib/DboBuilder/runSQL.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,MAAM,iCAAiC,CAAC;AACjD,OAAO,EAAE,SAAS,EAAE,UAAU,EAA4B,MAAM,iBAAiB,CAAC;AAElF,OAAO,EAAE,EAAE,EAAE,SAAS,EAAE,MAAM,cAAc,CAAC;AAC7C,OAAO,EAAE,UAAU,EAAE,WAAW,EAAyB,MAAM,cAAc,CAAC;AAG9E,wBAAsB,MAAM,CAAC,IAAI,EAAE,UAAU,EAAE,eAAe,EAAE,MAAM,EAAE,IAAI,EAAE,SAAS,GAAG,SAAS,GAAG,GAAG,EAAE,EAAE,OAAO,EAAE,UAAU,GAAG,SAAS,EAAE,WAAW,CAAC,EAAE,WAAW,gBAkFtK;AAcD;;GAEG;AACH,eAAO,MAAM,mBAAmB,SAAwB,UAAU;qBAAmD,MAAM;aAAW,MAAM;mBAY3I,CAAA;AAED,wBAAsB,YAAY,CAAC,IAAI,EAAE,UAAU,iBAyBlD;AAED,wBAAgB,oBAAoB,CAAC,IAAI,EAAE,UAAU,EAAE,MAAM,EAAE,EAAE,CAAC,OAAO,EAAE;;;;;;;;;;;;;;;IAiB1E;AAED,eAAO,MAAM,SAAS,cAAqB,SAAS,gBAAgB,WAAW,KAAG,QAAQ,OAAO,CAQhG,CAAA;AAED,eAAO,MAAM,eAAe,cAAmB,QAAQ,OAAO,CAE7D,CAAA"}
@@ -95,7 +95,7 @@ const onSQLResult = async function (queryWithoutRLS, { command }, allowListen, l
95
95
  * Fallback for watchSchema in case of not a superuser (cannot add db event listener)
96
96
  */
97
97
  const watchSchemaFallback = async function ({ queryWithoutRLS, command }) {
98
- const SCHEMA_ALTERING_COMMANDS = ["CREATE", "ALTER", "DROP", "REVOKE", "GRANT"];
98
+ const SCHEMA_ALTERING_COMMANDS = Event_Trigger_Tags_1.EVENT_TRIGGER_TAGS; // ["CREATE", "ALTER", "DROP", "REVOKE", "GRANT"];
99
99
  const isNotPickedUpByDDLTrigger = ["REVOKE", "GRANT"].includes(command);
100
100
  const { watchSchema, watchSchemaType } = this.prostgles?.opts || {};
101
101
  if (watchSchema &&
@@ -103,12 +103,6 @@ const watchSchemaFallback = async function ({ queryWithoutRLS, command }) {
103
103
  if (SCHEMA_ALTERING_COMMANDS.includes(command)) {
104
104
  this.prostgles.onSchemaChange({ command, query: queryWithoutRLS });
105
105
  }
106
- else if (queryWithoutRLS) {
107
- const cleanedQuery = queryWithoutRLS.toLowerCase().replace(/\s\s+/g, ' ');
108
- if (Event_Trigger_Tags_1.EVENT_TRIGGER_TAGS.some(q => cleanedQuery.includes(q.toLowerCase() + " "))) {
109
- this.prostgles.onSchemaChange({ command, query: queryWithoutRLS });
110
- }
111
- }
112
106
  }
113
107
  };
114
108
  exports.watchSchemaFallback = watchSchemaFallback;
@@ -1 +1 @@
1
- {"version":3,"file":"runSQL.js","sourceRoot":"","sources":["../../lib/DboBuilder/runSQL.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"runSQL.js","sourceRoot":"","sources":["../../lib/DboBuilder/runSQL.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"getInitQuery.d.ts","sourceRoot":"","sources":["../../lib/PubSubManager/getInitQuery.ts"],"names":[],"mappings":"AACA,OAAO,EAAW,aAAa,EAAE,MAAM,iBAAiB,CAAC;AAGzD,eAAO,MAAM,YAAY;;;;;CAKf,CAAC;AAEX,eAAO,MAAM,YAAY,SAAwB,aAAa,KAAG,QAAQ,MAAM,CAujB9E,CAAA"}
1
+ {"version":3,"file":"getInitQuery.d.ts","sourceRoot":"","sources":["../../lib/PubSubManager/getInitQuery.ts"],"names":[],"mappings":"AACA,OAAO,EAAW,aAAa,EAAE,MAAM,iBAAiB,CAAC;AAGzD,eAAO,MAAM,YAAY;;;;;CAKf,CAAC;AAEX,eAAO,MAAM,YAAY,SAAwB,aAAa,KAAG,QAAQ,MAAM,CAwjB9E,CAAA"}
@@ -544,7 +544,8 @@ BEGIN
544
544
  INTO curr_query;
545
545
 
546
546
  FOR app IN
547
- SELECT * FROM prostgles.apps
547
+ SELECT *
548
+ FROM prostgles.apps
548
549
  WHERE tg_tag = ANY(watching_schema_tag_names)
549
550
  LOOP
550
551
  PERFORM pg_notify(
@@ -1 +1 @@
1
- {"version":3,"file":"getInitQuery.js","sourceRoot":"","sources":["../../lib/PubSubManager/getInitQuery.ts"],"names":[],"mappings":";;;AACA,mDAAyD;AACzD,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,IAAI,CAAC,aAAa,CAAC,OAAO,CAAC;;kCAEjC,IAAA,uBAAO,EAAC,6BAAa,CAAC,SAAS,CAAC;;kCAEhC,IAAA,uBAAO,EAAC,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC;;;;;;;kCAO7B,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,IAAI,CAAC,aAAa,CAAC,OAAO,CAAC;;0BAEjC,IAAA,uBAAO,EAAC,6BAAa,CAAC,SAAS,CAAC;0BAChC,IAAA,uBAAO,EAAC,IAAI,CAAC,UAAU,CAAC,mBAAmB,CAAC;;;;;;;;;;;;;;;8BAexC,oBAAY,CAAC,uBAAuB;;;;;;+CAMnB,oBAAY,CAAC,uBAAuB;;;;;;+CAMpC,oBAAY,CAAC,uBAAuB;;;qCAG9C,oBAAY,CAAC,iBAAiB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;0BA8BzC,IAAA,uBAAO,EAAC,IAAI,CAAC,aAAa,CAAC,OAAO,CAAC;;4BAEjC,IAAA,uBAAO,EAAC,6BAAa,CAAC,SAAS,CAAC;4BAChC,IAAA,uBAAO,EAAC,IAAI,CAAC,UAAU,CAAC,MAAM,CAAC;;;;;;;;;8BAS7B,oBAAY,CAAC,iBAAiB;;;;;;;;;CAS3D,CAAA;IAAA,CAAC,CAAC;IAED,MAAM,GAAG,GAAG,QAAQ,EAAE,CAAC;IAEvB,OAAO,GAAG,CAAC;AACb,CAAC,CAAA;AAvjBY,QAAA,YAAY,gBAujBxB"}
1
+ {"version":3,"file":"getInitQuery.js","sourceRoot":"","sources":["../../lib/PubSubManager/getInitQuery.ts"],"names":[],"mappings":"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"}
@@ -106,20 +106,15 @@ const onSQLResult = async function(this: DboBuilder, queryWithoutRLS: string, {
106
106
  * Fallback for watchSchema in case of not a superuser (cannot add db event listener)
107
107
  */
108
108
  export const watchSchemaFallback = async function(this: DboBuilder, { queryWithoutRLS, command }: { queryWithoutRLS: string; command: string; }){
109
- const SCHEMA_ALTERING_COMMANDS = ["CREATE", "ALTER", "DROP", "REVOKE", "GRANT"];
109
+ const SCHEMA_ALTERING_COMMANDS = EVENT_TRIGGER_TAGS;// ["CREATE", "ALTER", "DROP", "REVOKE", "GRANT"];
110
110
  const isNotPickedUpByDDLTrigger = ["REVOKE", "GRANT"].includes(command);
111
111
  const { watchSchema, watchSchemaType } = this.prostgles?.opts || {};
112
112
  if (
113
113
  watchSchema &&
114
114
  (!this.prostgles.isSuperUser || watchSchemaType === "prostgles_queries" || isNotPickedUpByDDLTrigger)
115
115
  ) {
116
- if (SCHEMA_ALTERING_COMMANDS.includes(command)) {
116
+ if (SCHEMA_ALTERING_COMMANDS.includes(command as any)) {
117
117
  this.prostgles.onSchemaChange({ command, query: queryWithoutRLS })
118
- } else if (queryWithoutRLS) {
119
- const cleanedQuery = queryWithoutRLS.toLowerCase().replace(/\s\s+/g, ' ');
120
- if (EVENT_TRIGGER_TAGS.some(q => cleanedQuery.includes(q.toLowerCase() + " "))) {
121
- this.prostgles.onSchemaChange({ command, query: queryWithoutRLS })
122
- }
123
118
  }
124
119
  }
125
120
  }
@@ -546,7 +546,8 @@ BEGIN
546
546
  INTO curr_query;
547
547
 
548
548
  FOR app IN
549
- SELECT * FROM prostgles.apps
549
+ SELECT *
550
+ FROM prostgles.apps
550
551
  WHERE tg_tag = ANY(watching_schema_tag_names)
551
552
  LOOP
552
553
  PERFORM pg_notify(
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "prostgles-server",
3
- "version": "4.2.38",
3
+ "version": "4.2.40",
4
4
  "description": "",
5
5
  "main": "dist/index.js",
6
6
  "types": "dist/index.d.ts",
@@ -46,7 +46,7 @@
46
46
  "pg-cursor": "^2.10.3",
47
47
  "pg-promise": "^11.5.4",
48
48
  "prostgles-client": "^4.0.53",
49
- "prostgles-types": "^4.0.73"
49
+ "prostgles-types": "^4.0.74"
50
50
  },
51
51
  "devDependencies": {
52
52
  "@types/bluebird": "^3.5.36",
@@ -2,11 +2,55 @@ import { strict as assert } from "assert";
2
2
  import { describe, test } from "node:test";
3
3
  import type { DBHandlerClient } from "./index";
4
4
  import { renderReactHook } from "./renderReactHook";
5
- import { pickKeys } from "prostgles-types";
5
+ import { AnyObject, pickKeys } from "prostgles-types";
6
+ import { useProstglesClient } from "prostgles-client/dist/prostgles";
7
+
8
+ export const clientHooks = async (db: DBHandlerClient, getSocketOptions: (watchSchema?: boolean) => AnyObject) => {
6
9
 
7
- export const clientHooks = async (db: DBHandlerClient) => {
8
10
  const resultLoading = { data: undefined, isLoading: true, error: undefined };
9
11
  await describe("React hooks", async (t) => {
12
+ const socketOptions = getSocketOptions();
13
+ await test("useProstglesClient", async (t) => {
14
+ const { results: [res1, res2] } = await renderReactHook({
15
+ hook: useProstglesClient,
16
+ props: [{ socketOptions }],
17
+ expectedRerenders: 2
18
+ });
19
+ assert.deepStrictEqual(
20
+ res1,
21
+ { isLoading: true }
22
+ );
23
+ assert.equal(
24
+ typeof (res2 as any)?.dbo.items4.useFind,
25
+ "function"
26
+ );
27
+ });
28
+
29
+ await test("useProstglesClient with initial skip", async (t) => {
30
+ const { results: [res1], rerender } = await renderReactHook({
31
+ hook: useProstglesClient,
32
+ props: [{ socketOptions, skip: true }],
33
+ expectedRerenders: 1
34
+ });
35
+ assert.deepStrictEqual(
36
+ res1,
37
+ { isLoading: true }
38
+ );
39
+
40
+ const { results: [res2, res3] } = await rerender({
41
+ props: [{ socketOptions }],
42
+ expectedRerenders: 2,
43
+ });
44
+ assert.deepStrictEqual(
45
+ res2,
46
+ { isLoading: true }
47
+ );
48
+ assert.equal(
49
+ typeof (res3 as any)?.dbo.items4.useFind,
50
+ "function"
51
+ );
52
+ });
53
+
10
54
  const defaultFilter = { name: "abc" };
11
55
  await Promise.all([
12
56
  "useFind",
@@ -5,9 +5,11 @@ import { isomorphicQueries } from "../isomorphicQueries.spec";
5
5
  import { clientOnlyQueries } from "../clientOnlyQueries.spec";
6
6
  import { clientRestApi } from "../clientRestApi.spec";
7
7
  import { clientFileTests } from "../clientFileTests.spec";
8
- import { InitOptions } from "prostgles-client/dist/prostgles";
8
+ import type { Auth, DBHandlerClient, MethodHandler } from "prostgles-client/dist/prostgles";
9
9
  export { DBHandlerClient, Auth } from "prostgles-client/dist/prostgles";
10
10
  import { clientHooks } from "./hooks.spec";
11
+ import { useProstglesTest } from "./useProstgles.spec";
12
+ import { DBSchemaTable } from "prostgles-types";
11
13
 
12
14
  const start = Date.now();
13
15
  const log = (msgOrObj: any, extra?: any) => {
@@ -17,33 +19,39 @@ const log = (msgOrObj: any, extra?: any) => {
17
19
  log("Started client...");
18
20
 
19
21
  const { TEST_NAME } = process.env;
22
+ const url = "http://127.0.0.1:3001";
23
+ const path = "/teztz/s";
24
+ const pathWatchSchema = "/teztz/sWatchSchema";
25
+ const getSocketOptions = (watchSchema = false) => ({
26
+ uri: url,
27
+ path: watchSchema? pathWatchSchema : path,
28
+ query: { token: TEST_NAME },
29
+ });
30
+ const { uri, ...socketOpts } = getSocketOptions();
31
+ const socket = io(uri, socketOpts);
20
32
 
21
- type ClientTestSpec = {
22
- onRun: InitOptions["onReady"]
23
- };
33
+ type ClientTestSpecV2 = (args: {
34
+ db: DBHandlerClient<void>;
35
+ methods: MethodHandler;
36
+ tableSchema: DBSchemaTable[];
37
+ isReconnect?: boolean;
38
+ auth: Auth;
39
+ }) => Promise<void>;
24
40
 
25
- const tests: Record<string, ClientTestSpec> = {
26
- main: {
27
- onRun: async (db, methods, tableSchema, auth) => {
28
- await isomorphicQueries(db, log);
29
- await clientOnlyQueries(db, auth, log, methods, tableSchema, TEST_NAME);
30
- await clientHooks(db);
31
- },
41
+ const tests: Record<string, ClientTestSpecV2> = {
42
+ main: async ({ db, methods, tableSchema, auth }) => {
43
+ await isomorphicQueries(db, log);
44
+ await clientOnlyQueries(db, auth, log, methods, tableSchema, TEST_NAME);
45
+ await clientHooks(db, getSocketOptions);
32
46
  },
33
- // hooks: {
34
- // onRun: async (db) => {
35
- // await clientHooks(db);
36
- // },
37
- // },
38
- files: {
39
- onRun: async (db, methods, tableSchema, auth) => {
40
- await clientFileTests(db, auth, log, methods, tableSchema)
41
- },
47
+ useProstgles: async ({ db }) => {
48
+ await useProstglesTest(db, getSocketOptions);
42
49
  },
43
- rest_api: {
44
- onRun: async (db, methods, tableSchema, auth) => {
45
- await clientRestApi(db, auth, log, methods, tableSchema, TEST_NAME);
46
- }
50
+ files: async ({ db, methods, tableSchema, auth }) => {
51
+ await clientFileTests(db, auth, log, methods, tableSchema)
52
+ },
53
+ rest_api: async ({ db, methods, tableSchema, auth }) => {
54
+ await clientRestApi(db, auth, log, methods, tableSchema, TEST_NAME);
47
55
  }
48
56
  };
49
57
 
@@ -52,9 +60,6 @@ if(!test){
52
60
  throw `Invalid TEST_NAME env var provided (${TEST_NAME}). Expecting one of: ${Object.keys(tests)}`;
53
61
  }
54
62
 
55
- const url = process.env.PRGL_CLIENT_URL || "http://127.0.0.1:3001";
56
- const path = process.env.PRGL_CLIENT_PATH || "/teztz/s";
57
- const socket = io(url, { path, query: { token: TEST_NAME } });
58
63
  const stopTest = (args?: { err: any; }) => {
59
64
  const { err } = args ?? {};
60
65
  if(args) {
@@ -109,7 +114,7 @@ try {
109
114
  }
110
115
  console.log = onLog;
111
116
  }
112
- await test.onRun(db, methods, tableSchema, auth, isReconnect);
117
+ await test({ db, methods, tableSchema, auth, isReconnect });
113
118
 
114
119
  stopTest();
115
120
 
@@ -10,9 +10,9 @@
10
10
  "license": "ISC",
11
11
  "dependencies": {
12
12
  "@types/node": "^20.9.2",
13
- "prostgles-client": "^4.0.95",
13
+ "prostgles-client": "^4.0.109",
14
14
  "prostgles-types": "^4.0.51",
15
- "socket.io-client": "^4.7.1"
15
+ "socket.io-client": "^4.7.5"
16
16
  },
17
17
  "devDependencies": {
18
18
  "jsdom": "^24.0.0",
@@ -351,25 +351,29 @@
351
351
  }
352
352
  },
353
353
  "node_modules/prostgles-client": {
354
- "version": "4.0.95",
355
- "resolved": "https://registry.npmjs.org/prostgles-client/-/prostgles-client-4.0.95.tgz",
356
- "integrity": "sha512-flYinJ21wkJm+u8zY3CuxUdTT3vwgJ/hTg3cZHdy71/TaYFRseDUSDuK8Lkw6rsRmhtKbdeFO5D9JbEqiuYinA==",
354
+ "version": "4.0.109",
355
+ "resolved": "https://registry.npmjs.org/prostgles-client/-/prostgles-client-4.0.109.tgz",
356
+ "integrity": "sha512-PUziWyoM3Khyv4f/MthguaVdM/zTXFjlRRetD6oaVd1S8wipJ9BWEWAoR/LsOdbZdMZGDwmY8+fcJp+IRdojnQ==",
357
357
  "dependencies": {
358
- "prostgles-types": "^4.0.73"
358
+ "prostgles-types": "^4.0.74"
359
359
  },
360
360
  "peerDependencies": {
361
- "react": "^16.8.0 || ^17.0.0 || ^18.0.0"
361
+ "react": "^16.8.0 || ^17.0.0 || ^18.0.0",
362
+ "socket.io-client": "^4.7.0 || ^4.7.5"
362
363
  },
363
364
  "peerDependenciesMeta": {
364
365
  "react": {
365
366
  "optional": true
367
+ },
368
+ "socket.io-client": {
369
+ "optional": true
366
370
  }
367
371
  }
368
372
  },
369
373
  "node_modules/prostgles-types": {
370
- "version": "4.0.73",
371
- "resolved": "https://registry.npmjs.org/prostgles-types/-/prostgles-types-4.0.73.tgz",
372
- "integrity": "sha512-WL3pxQW90ReaSjjls4wCTN3bn4mJc7ivJLQgWYqfFehz9VVWj6YqxrqXquBDD5Fa2xbfbab4cR16R6MckcP3CA==",
374
+ "version": "4.0.74",
375
+ "resolved": "https://registry.npmjs.org/prostgles-types/-/prostgles-types-4.0.74.tgz",
376
+ "integrity": "sha512-6+MW7q1INIpO3JOkSCDD8oUG3U22VYbSWt2s0j3/0Uog4Dr90EzxX2TE7jV0NXmK+AAs+HHZ9u5olipMv0sHmQ==",
373
377
  "dependencies": {
374
378
  "json-schema": "^0.4.0"
375
379
  }
@@ -13,9 +13,9 @@
13
13
  "license": "ISC",
14
14
  "dependencies": {
15
15
  "@types/node": "^20.9.2",
16
- "prostgles-client": "^4.0.95",
16
+ "prostgles-client": "^4.0.109",
17
17
  "prostgles-types": "^4.0.51",
18
- "socket.io-client": "^4.7.1"
18
+ "socket.io-client": "^4.7.5"
19
19
  },
20
20
  "devDependencies": {
21
21
  "jsdom": "^24.0.0",
@@ -19,12 +19,15 @@ global.document = window.document;
19
19
  import React from "react";
20
20
  import { createRoot } from "react-dom/client";
21
21
 
22
-
22
+ // TODO: add hook result types
23
23
  type RenderHookArgs = {
24
24
  hook: (...args: any[]) => any;
25
25
  props: any[];
26
26
  onResult?: (result: any) => void;
27
27
  expectedRerenders: number;
28
+ /**
29
+ * Time to wait for the expected rerenders
30
+ */
28
31
  timeout?: number;
29
32
  /**
30
33
  * Time to wait after the last render to resolve the promise
@@ -99,7 +102,7 @@ export const renderReactHook = (rootArgs: RenderHookArgs): Promise<RenderResult>
99
102
  if(isRerender){
100
103
  reject(new Error("Unmounted before expected rerenders"));
101
104
  }
102
- }
105
+ }
103
106
  });
104
107
  setTimeout(() => {
105
108
  if(!resolved){
@@ -0,0 +1,47 @@
1
+ import { strict as assert } from "assert";
2
+ import { describe, test } from "node:test";
3
+ import { useProstglesClient } from "prostgles-client/dist/prostgles";
4
+ import { AnyObject } from "prostgles-types";
5
+ import type { DBHandlerClient } from "./index";
6
+ import { renderReactHook } from "./renderReactHook";
7
+
8
+ export const useProstglesTest = async (db: DBHandlerClient, getSocketOptions: (watchSchema?: boolean) => AnyObject) => {
9
+ await describe("useProstgles hook", async (t) => {
10
+
11
+ await test("useProstglesClient with schema reload", async (t) => {
12
+ const newTableName = "newly_created_table";
13
+ await db.sql(`DROP TABLE IF EXISTS ${newTableName};`);
14
+ await db.sql(`select pg_sleep(1)`);
15
+ let rerenders = 0
16
+ const { results: [res1, res2, res3] } = await renderReactHook({
17
+ hook: useProstglesClient,
18
+ props: [{ socketOptions: getSocketOptions(true) }],
19
+ expectedRerenders: 3,
20
+ onResult: () => {
21
+ rerenders++;
22
+ if(rerenders < 2) return;
23
+ rerenders = -2;
24
+ db.sql(`CREATE TABLE ${newTableName}();`);
25
+ }
26
+ });
27
+ assert.deepStrictEqual(
28
+ res1,
29
+ { isLoading: true }
30
+ );
31
+ assert.equal(
32
+ res2.isLoading,
33
+ false
34
+ );
35
+ assert.equal(
36
+ typeof (res2 as any)?.dbo[newTableName]?.useFind,
37
+ "undefined"
38
+ );
39
+ assert.equal(
40
+ typeof (res3 as any)?.dbo[newTableName].useFind,
41
+ "function"
42
+ );
43
+ });
44
+
45
+ });
46
+
47
+ }
@@ -257,6 +257,15 @@ 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
+ };
268
+ };
260
269
  obj_table: {
261
270
  is_view: false;
262
271
  select: true;
@@ -523,5 +532,4 @@ export type DBSchemaGenerated = {
523
532
  tsv?: null | string;
524
533
  };
525
534
  };
526
-
527
535
  }
@@ -15,6 +15,7 @@ testPublishTypes();
15
15
 
16
16
  const isClientTest = (process.env.TEST_TYPE === "client");
17
17
  const io = !isClientTest? undefined : require("socket.io")(http, { path: "/teztz/s" });
18
+ const ioWatchSchema = !isClientTest? undefined : require("socket.io")(http, { path: "/teztz/sWatchSchema" });
18
19
 
19
20
  http.listen(3001);
20
21
 
@@ -77,181 +78,201 @@ function dd(){
77
78
  dbo.tbl.find;
78
79
  }
79
80
 
80
- prostgles<DBSchemaGenerated>({
81
- dbConnection,
82
- sqlFilePath: path.join(__dirname+'/../../init.sql'),
83
- io,
84
- tsGeneratedTypesDir: path.join(__dirname + '/../../'),
85
- transactions: true,
86
- schema: { public: 1, prostgles_test: 1 },
87
- onLog: async ev => {
88
- if(ev.type === "debug" || ev.type === "connect" || ev.type === "disconnect"){
89
- // log("onLog", ev);
90
- }
91
- },
92
- tableConfig: testTableConfig,
93
- fileTable: {
94
- referencedTables: {
95
- users_public_info: {
96
- type: "column",
97
- referenceColumns: {
98
- avatar: {
99
- acceptedContent: "*"
81
+ (async () => {
82
+
83
+
84
+ if(isClientTest && process.env.TEST_NAME === "useProstgles"){
85
+ await prostgles<DBSchemaGenerated>({
86
+ dbConnection,
87
+ io: ioWatchSchema,
88
+ transactions: true,
89
+ schema: { public: 1, prostgles_test: 1 },
90
+ onReady: async ({ dbo, db }) => {},
91
+ publish: "*",
92
+ watchSchema: true,
93
+ });
94
+ }
95
+
96
+ prostgles<DBSchemaGenerated>({
97
+ dbConnection,
98
+ sqlFilePath: path.join(__dirname+'/../../init.sql'),
99
+ io,
100
+ tsGeneratedTypesDir: path.join(__dirname + '/../../'),
101
+ transactions: true,
102
+ schema: { public: 1, prostgles_test: 1 },
103
+ onLog: async ev => {
104
+ if(ev.type === "debug" || ev.type === "connect" || ev.type === "disconnect"){
105
+ // log("onLog", ev);
106
+ }
107
+ },
108
+ tableConfig: testTableConfig,
109
+ fileTable: {
110
+ referencedTables: {
111
+ users_public_info: {
112
+ type: "column",
113
+ referenceColumns: {
114
+ avatar: {
115
+ acceptedContent: "*"
116
+ }
100
117
  }
101
118
  }
102
- }
119
+ },
120
+ localConfig: {
121
+ localFolderPath: path.join(__dirname+'/media'),
122
+ },
123
+ expressApp: app,
124
+ tableName: "files",
103
125
  },
104
- localConfig: {
105
- localFolderPath: path.join(__dirname+'/media'),
126
+ restApi: {
127
+ expressApp: app,
128
+ routePrefix: "/api"
106
129
  },
107
- expressApp: app,
108
- tableName: "files",
109
- },
110
- restApi: {
111
- expressApp: app,
112
- routePrefix: "/api"
113
- },
114
-
115
- onSocketConnect: ({ socket, db }) => {
116
- console.log("onSocketConnect", socket.id)
117
- if(isClientTest){
118
- log("Client connected -> console does not work. use log function. socket.id:", socket.id);
119
- socket.emit("start-test", { server_id: Math.random() });
120
- socket.on("log", async (data, cb) => {
121
- console.log("Client log ", data);
122
- });
123
- socket.on("stop-test", async (err, cb) => {
124
- cb();
125
- console.log("Client test " + (!err? "successful" : "failed"));
126
- stopTest(err);
127
- });
128
- }
129
130
 
130
- },
131
+ onSocketConnect: ({ socket, db }) => {
132
+ console.log("onSocketConnect", socket.id)
133
+ if(isClientTest){
134
+ log("Client connected -> console does not work. use log function. socket.id:", socket.id);
135
+ socket.emit("start-test", { server_id: Math.random() });
136
+ socket.on("log", async (data, cb) => {
137
+ console.log("Client log ", data);
138
+ });
139
+ socket.on("stop-test", async (err, cb) => {
140
+ cb();
141
+ console.log("Client test " + (!err? "successful" : "failed"));
142
+ stopTest(err);
143
+ });
144
+ }
145
+
146
+ },
131
147
 
132
- onSocketDisconnect: ({ socket, db }) => {
133
- if(isClientTest){
134
- log("Client disconnected. socket.id:", socket.id);
135
- }
148
+ onSocketDisconnect: ({ socket, db }) => {
149
+ if(isClientTest){
150
+ log("Client disconnected. socket.id:", socket.id);
151
+ }
152
+
153
+ },
136
154
 
137
- },
138
-
139
- publishRawSQL: async (params) => {
140
- return true;// Boolean(user && user.type === "admin")
141
- },
142
- auth: {
143
- sidKeyName: "token",
144
- getUser: async (sid) => {
145
- if(sid){
146
- const s = sessions.find(s => s.id === sid);
147
- if(s) {
148
- const user = users.find(u => s && s.user_id === u.id);
149
- if(user) {
150
- return { sid: s.id, user, clientUser: { sid: s.id, uid: user.id } }
155
+ publishRawSQL: async (params) => {
156
+ return true;// Boolean(user && user.type === "admin")
157
+ },
158
+ auth: {
159
+ sidKeyName: "token",
160
+ getUser: async (sid) => {
161
+ if(sid){
162
+ const s = sessions.find(s => s.id === sid);
163
+ if(s) {
164
+ const user = users.find(u => s && s.user_id === u.id);
165
+ if(user) {
166
+ return { sid: s.id, user, clientUser: { sid: s.id, uid: user.id } }
167
+ }
151
168
  }
152
169
  }
170
+ return undefined;
171
+ },
172
+ login: async ({ username, password } = {}) => {
173
+ const u = users.find(u => u.username === username && u.password === password);
174
+ if(!u) throw "something went wrong: " + JSON.stringify({ username, password });
175
+ let s = sessions.find(s => s.user_id === u.id)
176
+ if(!s){
177
+ s = { id: "SID" + Date.now(), user_id: u.id }
178
+ sessions.push(s)
179
+ }
180
+ log("Logged in!")
181
+ return { sid: s.id, expires: Infinity, onExpiration: "redirect" }
182
+ },
183
+ cacheSession: {
184
+ getSession: async (sid) => {
185
+ const s = sessions.find(s => s.id === sid);
186
+ return s? { sid: s.id, expires: Infinity, onExpiration: "redirect" } : undefined
187
+ }
188
+ },
189
+ expressConfig: {
190
+ app,
191
+ onGetRequestOK(req, res, params) {
192
+ log(req.originalUrl)
193
+ res.sendFile(path.join(__dirname, '../../index.html'));
194
+ },
153
195
  }
154
- return undefined;
155
- },
156
- login: async ({ username, password } = {}) => {
157
- const u = users.find(u => u.username === username && u.password === password);
158
- if(!u) throw "something went wrong: " + JSON.stringify({ username, password });
159
- let s = sessions.find(s => s.user_id === u.id)
160
- if(!s){
161
- s = { id: "SID" + Date.now(), user_id: u.id }
162
- sessions.push(s)
163
- }
164
- log("Logged in!")
165
- return { sid: s.id, expires: Infinity, onExpiration: "redirect" }
166
196
  },
167
- cacheSession: {
168
- getSession: async (sid) => {
169
- const s = sessions.find(s => s.id === sid);
170
- return s? { sid: s.id, expires: Infinity, onExpiration: "redirect" } : undefined
197
+ publishMethods: async (params) => {
198
+ return {
199
+ get: () => 222
171
200
  }
172
201
  },
173
- expressConfig: {
174
- app,
175
- onGetRequestOK(req, res, params) {
176
- log(req.originalUrl)
177
- res.sendFile(path.join(__dirname, '../../index.html'));
202
+ publish: testPublish,
203
+ joins: [
204
+ {
205
+ tables: ["items", "items2"],
206
+ on: [{ name: "name" }],
207
+ type: "many-many"
178
208
  },
179
- }
180
- },
181
- publishMethods: async (params) => {
182
- return {
183
- get: () => 222
184
- }
185
- },
186
- publish: testPublish,
187
- joins: [
188
- {
189
- tables: ["items", "items2"],
190
- on: [{ name: "name" }],
191
- type: "many-many"
192
- },
193
- {
194
- tables: ["items2", "items3"],
195
- on: [{ name: "name" }],
196
- type: "many-many"
197
- },
198
- {
199
- tables: ["items4a", "items"],
200
- on: [{ items_id: "id" }],
201
- type: "many-many"
202
- },
203
- {
204
- tables: ["items4a", "items2"],
205
- on: [{ items2_id: "id" }],
206
- type: "many-many"
207
- },
208
- {
209
- tables: ["items_multi", "items"],
210
- on: [
211
- { items0_id: "id" },
212
- { items1_id: "id" },
213
- { items2_id: "id" },
214
- { items3_id: "id" },
215
- ],
216
- type: "many-many"
217
- }
218
- ],
219
- onReady: async ({ dbo, db }) => {
220
- log("prostgles onReady");
209
+ {
210
+ tables: ["items2", "items3"],
211
+ on: [{ name: "name" }],
212
+ type: "many-many"
213
+ },
214
+ {
215
+ tables: ["items4a", "items"],
216
+ on: [{ items_id: "id" }],
217
+ type: "many-many"
218
+ },
219
+ {
220
+ tables: ["items4a", "items2"],
221
+ on: [{ items2_id: "id" }],
222
+ type: "many-many"
223
+ },
224
+ {
225
+ tables: ["items_multi", "items"],
226
+ on: [
227
+ { items0_id: "id" },
228
+ { items1_id: "id" },
229
+ { items2_id: "id" },
230
+ { items3_id: "id" },
231
+ ],
232
+ type: "many-many"
233
+ }
234
+ ],
235
+ onReady: async ({ dbo, db }) => {
236
+ log("prostgles onReady");
221
237
 
222
- try {
223
-
224
- if(isClientTest){
225
- const execPath = path.resolve(`${__dirname}/../../../client`);
226
- /** For some reason the below doesn't work anymore */
227
- // const proc = spawn("npm", ["run", "test"], { cwd: execPath, stdio: "inherit" });
228
-
229
- spawn("node", ["dist/client/index.js"], { cwd: execPath, stdio: "inherit" });
230
- // const clientPath = `cd ${__dirname}/../../../clientz && npm test`;
231
- // const proc = exec(clientPath, console.log);
232
- // proc.stdout?.on('data', function(data) {
233
- // console.log(data);
234
- // });
235
- // proc.stderr?.on('data', function(data) {
236
- // console.error(data);
237
- // });
238
- log("Waiting for client...");
238
+ try {
239
239
 
240
- } else if(process.env.TEST_TYPE === "server"){
240
+ if(isClientTest){
241
+ const execPath = path.resolve(`${__dirname}/../../../client`);
242
+ /** For some reason the below doesn't work anymore */
243
+ // const proc = spawn("npm", ["run", "test"], { cwd: execPath, stdio: "inherit" });
244
+
245
+ spawn("node", [
246
+ // "--inspect-brk",
247
+ "dist/client/index.js"
248
+ ], { cwd: execPath, stdio: "inherit" });
241
249
 
242
- await serverOnlyQueries(dbo as any);
243
- log("Server-only query tests successful");
244
- await isomorphicQueries(dbo as any, log);
245
- log("Server isomorphic tests successful");
250
+ // const clientPath = `cd ${__dirname}/../../../clientz && npm test`;
251
+ // const proc = exec(clientPath, console.log);
252
+ // proc.stdout?.on('data', function(data) {
253
+ // console.log(data);
254
+ // });
255
+ // proc.stderr?.on('data', function(data) {
256
+ // console.error(data);
257
+ // });
258
+ log("Waiting for client...");
259
+
260
+ } else if(process.env.TEST_TYPE === "server"){
246
261
 
247
- stopTest()
248
- }
249
- } catch(err) {
250
- console.trace(err)
251
- if(process.env.TEST_TYPE){
252
- stopTest(err ?? "Error")
262
+ await serverOnlyQueries(dbo as any);
263
+ log("Server-only query tests successful");
264
+ await isomorphicQueries(dbo as any, log);
265
+ log("Server isomorphic tests successful");
266
+
267
+ stopTest()
268
+ }
269
+ } catch(err) {
270
+ console.trace(err)
271
+ if(process.env.TEST_TYPE){
272
+ stopTest(err ?? "Error")
273
+ }
253
274
  }
254
- }
255
-
256
- },
257
- });
275
+
276
+ },
277
+ });
278
+ })();
@@ -21,7 +21,7 @@
21
21
  },
22
22
  "../..": {
23
23
  "name": "prostgles-server",
24
- "version": "4.2.37",
24
+ "version": "4.2.39",
25
25
  "license": "MIT",
26
26
  "dependencies": {
27
27
  "@types/express": "^4.17.13",
@@ -35,7 +35,7 @@
35
35
  "pg-cursor": "^2.10.3",
36
36
  "pg-promise": "^11.5.4",
37
37
  "prostgles-client": "^4.0.53",
38
- "prostgles-types": "^4.0.73"
38
+ "prostgles-types": "^4.0.74"
39
39
  },
40
40
  "devDependencies": {
41
41
  "@types/bluebird": "^3.5.36",
@@ -1548,7 +1548,7 @@
1548
1548
  "pg-cursor": "^2.10.3",
1549
1549
  "pg-promise": "^11.5.4",
1550
1550
  "prostgles-client": "^4.0.53",
1551
- "prostgles-types": "^4.0.73",
1551
+ "prostgles-types": "^4.0.74",
1552
1552
  "typescript": "^5.3.3"
1553
1553
  }
1554
1554
  },
package/tests/test.sh CHANGED
@@ -13,8 +13,8 @@ npm run build
13
13
 
14
14
  #npm run test-server 2>&1 ./server.log
15
15
  npm run test-server && \
16
- TEST_NAME="main" npm run test-client && \
17
- # TEST_NAME="hooks" npm run test-client && \
18
- TEST_NAME="files" npm run test-client && \
19
- TEST_NAME="rest_api" npm run test-client
16
+ TEST_NAME="main" npm run test-client && \
17
+ TEST_NAME="useProstgles" npm run test-client && \
18
+ TEST_NAME="files" npm run test-client && \
19
+ TEST_NAME="rest_api" npm run test-client
20
20