prostgles-server 4.2.142 → 4.2.144

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 (38) hide show
  1. package/dist/Auth/AuthHandler.js +2 -2
  2. package/dist/Auth/AuthHandler.js.map +1 -1
  3. package/dist/Auth/setAuthProviders.d.ts +5 -0
  4. package/dist/Auth/setAuthProviders.d.ts.map +1 -1
  5. package/dist/Auth/setAuthProviders.js +10 -2
  6. package/dist/Auth/setAuthProviders.js.map +1 -1
  7. package/dist/Auth/setupAuthRoutes.d.ts.map +1 -1
  8. package/dist/Auth/setupAuthRoutes.js +3 -2
  9. package/dist/Auth/setupAuthRoutes.js.map +1 -1
  10. package/dist/FileManager/FileManager.d.ts +1 -0
  11. package/dist/FileManager/FileManager.d.ts.map +1 -1
  12. package/dist/FileManager/FileManager.js +12 -1
  13. package/dist/FileManager/FileManager.js.map +1 -1
  14. package/dist/Prostgles.d.ts.map +1 -1
  15. package/dist/Prostgles.js +3 -77
  16. package/dist/Prostgles.js.map +1 -1
  17. package/dist/RestApi.d.ts +7 -0
  18. package/dist/RestApi.d.ts.map +1 -1
  19. package/dist/RestApi.js.map +1 -1
  20. package/dist/initProstgles.d.ts +2 -1
  21. package/dist/initProstgles.d.ts.map +1 -1
  22. package/dist/initProstgles.js +13 -2
  23. package/dist/initProstgles.js.map +1 -1
  24. package/dist/onSocketConnected.d.ts +6 -0
  25. package/dist/onSocketConnected.d.ts.map +1 -0
  26. package/dist/onSocketConnected.js +85 -0
  27. package/dist/onSocketConnected.js.map +1 -0
  28. package/lib/Auth/AuthHandler.ts +2 -2
  29. package/lib/Auth/setAuthProviders.ts +12 -1
  30. package/lib/Auth/setupAuthRoutes.ts +5 -3
  31. package/lib/FileManager/FileManager.ts +11 -0
  32. package/lib/Prostgles.ts +3 -97
  33. package/lib/RestApi.ts +7 -0
  34. package/lib/initProstgles.ts +17 -3
  35. package/lib/onSocketConnected.ts +102 -0
  36. package/package.json +1 -1
  37. package/tests/client/hooks.spec.ts +9 -10
  38. package/tests/server/package-lock.json +1 -1
@@ -9,6 +9,7 @@ const Prostgles_1 = require("./Prostgles");
9
9
  const PublishParser_1 = require("./PublishParser/PublishParser");
10
10
  const SchemaWatch_1 = require("./SchemaWatch/SchemaWatch");
11
11
  const utils_1 = require("./utils");
12
+ const clientOnlyUpdateKeys = ["auth"];
12
13
  const initProstgles = async function (onReady, reason) {
13
14
  this.loaded = false;
14
15
  if (!this.db) {
@@ -63,8 +64,9 @@ const initProstgles = async function (onReady, reason) {
63
64
  await this.initRestApi();
64
65
  this.schemaWatch = await SchemaWatch_1.SchemaWatch.create(this.dboBuilder);
65
66
  if (this.opts.publish) {
66
- if (!this.opts.io)
67
+ if (!this.opts.io) {
67
68
  console.warn("IO missing. Publish has no effect without io");
69
+ }
68
70
  /* 3.9 Check auth config */
69
71
  this.authHandler = new AuthHandler_1.AuthHandler(this);
70
72
  await this.authHandler.init();
@@ -125,7 +127,16 @@ const initProstgles = async function (onReady, reason) {
125
127
  this.authHandler = new AuthHandler_1.AuthHandler(this);
126
128
  await this.authHandler.init();
127
129
  }
128
- if (!(0, prostgles_types_1.isEmpty)(newOpts)) {
130
+ if ((0, prostgles_types_1.isEmpty)(newOpts))
131
+ return;
132
+ /**
133
+ * Some of these changes require clients to reconnect
134
+ * While others also affect the server and onReady should be called
135
+ */
136
+ if ((0, prostgles_types_1.getKeys)(newOpts).every(updatedKey => clientOnlyUpdateKeys.includes(updatedKey))) {
137
+ await this.setSocketEvents();
138
+ }
139
+ else {
129
140
  await this.init(onReady, { type: "prgl.update", newOpts });
130
141
  }
131
142
  },
@@ -1 +1 @@
1
- {"version":3,"file":"initProstgles.js","sourceRoot":"","sources":["../lib/initProstgles.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"initProstgles.js","sourceRoot":"","sources":["../lib/initProstgles.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,6 @@
1
+ import { AnyObject } from "prostgles-types";
2
+ import type { Prostgles } from "./Prostgles";
3
+ import { PRGLIOSocket } from "./DboBuilder/DboBuilderTypes";
4
+ export declare function onSocketConnected(this: Prostgles, socket: PRGLIOSocket): Promise<void>;
5
+ export declare function makeSocketError(cb: (err: AnyObject) => void, err: any): void;
6
+ //# sourceMappingURL=onSocketConnected.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"onSocketConnected.d.ts","sourceRoot":"","sources":["../lib/onSocketConnected.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAY,MAAM,iBAAiB,CAAC;AACtD,OAAO,KAAK,EAAE,SAAS,EAAiB,MAAM,aAAa,CAAC;AAC5D,OAAO,EAAE,YAAY,EAAE,MAAM,8BAA8B,CAAC;AAI5D,wBAAsB,iBAAiB,CAAC,IAAI,EAAE,SAAS,EAAE,MAAM,EAAE,YAAY,iBA8E5E;AAGD,wBAAgB,eAAe,CAAC,EAAE,EAAE,CAAC,GAAG,EAAE,SAAS,KAAK,IAAI,EAAE,GAAG,EAAE,GAAG,QAErE"}
@@ -0,0 +1,85 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.makeSocketError = exports.onSocketConnected = void 0;
4
+ const prostgles_types_1 = require("prostgles-types");
5
+ const runClientRequest_1 = require("./runClientRequest");
6
+ const dboBuilderUtils_1 = require("./DboBuilder/dboBuilderUtils");
7
+ async function onSocketConnected(socket) {
8
+ if (this.destroyed) {
9
+ console.log("Socket connected to destroyed instance");
10
+ socket.disconnect();
11
+ return;
12
+ }
13
+ this.connectedSockets.push(socket);
14
+ try {
15
+ await this.opts.onLog?.({
16
+ type: "connect",
17
+ sid: this.authHandler?.getSID({ socket }),
18
+ socketId: socket.id,
19
+ connectedSocketIds: this.connectedSockets.map(s => s.id)
20
+ });
21
+ if (!this.db || !this.dbo)
22
+ throw new Error("db/dbo missing");
23
+ const { dbo, db } = this;
24
+ if (this.opts.onSocketConnect) {
25
+ try {
26
+ const getUser = async () => { return await this.authHandler?.getClientInfo({ socket }); };
27
+ await this.opts.onSocketConnect({ socket, dbo: dbo, db, getUser });
28
+ }
29
+ catch (error) {
30
+ const connectionError = error instanceof Error ? error.message : typeof error === "string" ? error : JSON.stringify(error);
31
+ socket.emit(prostgles_types_1.CHANNELS.CONNECTION, { connectionError });
32
+ socket.disconnect();
33
+ return;
34
+ }
35
+ }
36
+ socket.removeAllListeners(prostgles_types_1.CHANNELS.DEFAULT);
37
+ socket.on(prostgles_types_1.CHANNELS.DEFAULT, async (args, cb = (..._callback) => { }) => {
38
+ runClientRequest_1.runClientRequest.bind(this)({ ...args, type: "socket", socket })
39
+ .then(res => {
40
+ cb(null, res);
41
+ }).catch(err => {
42
+ cb(err);
43
+ });
44
+ });
45
+ socket.on("disconnect", () => {
46
+ this.dbEventsManager?.removeNotice(socket);
47
+ this.dbEventsManager?.removeNotify(undefined, socket);
48
+ this.connectedSockets = this.connectedSockets.filter(s => s.id !== socket.id);
49
+ this.dboBuilder.queryStreamer.onDisconnect(socket.id);
50
+ this.opts.onLog?.({
51
+ type: "disconnect",
52
+ sid: this.authHandler?.getSID({ socket }),
53
+ socketId: socket.id,
54
+ connectedSocketIds: this.connectedSockets.map(s => s.id)
55
+ });
56
+ if (this.opts.onSocketDisconnect) {
57
+ const getUser = async () => { return await this.authHandler?.getClientInfo({ socket }); };
58
+ this.opts.onSocketDisconnect({ socket, dbo: dbo, db, getUser });
59
+ }
60
+ });
61
+ socket.removeAllListeners(prostgles_types_1.CHANNELS.METHOD);
62
+ socket.on(prostgles_types_1.CHANNELS.METHOD, async ({ method, params }, cb = (..._callback) => { }) => {
63
+ runClientRequest_1.runClientMethod.bind(this)({
64
+ type: "socket",
65
+ socket,
66
+ method,
67
+ params
68
+ }).then(res => {
69
+ cb(null, res);
70
+ }).catch(err => {
71
+ makeSocketError(cb, err);
72
+ });
73
+ });
74
+ this.pushSocketSchema(socket);
75
+ }
76
+ catch (e) {
77
+ console.trace("setSocketEvents: ", e);
78
+ }
79
+ }
80
+ exports.onSocketConnected = onSocketConnected;
81
+ function makeSocketError(cb, err) {
82
+ cb((0, dboBuilderUtils_1.getErrorAsObject)(err));
83
+ }
84
+ exports.makeSocketError = makeSocketError;
85
+ //# sourceMappingURL=onSocketConnected.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"onSocketConnected.js","sourceRoot":"","sources":["../lib/onSocketConnected.ts"],"names":[],"mappings":"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"}
@@ -160,8 +160,8 @@ export class AuthHandler {
160
160
 
161
161
  destroy = () => {
162
162
  const app = this.opts?.expressConfig?.app;
163
- const { login, logoutGetPath, magicLinksExpressRoute, catchAll, loginWithProvider } = AUTH_ROUTES_AND_PARAMS;
164
- removeExpressRoute(app, [login, logoutGetPath, magicLinksExpressRoute, catchAll, loginWithProvider]);
163
+ const { login, logoutGetPath, magicLinksExpressRoute, catchAll, loginWithProvider, emailSignup, magicLinksRoute } = AUTH_ROUTES_AND_PARAMS;
164
+ removeExpressRoute(app, [login, logoutGetPath, magicLinksExpressRoute, catchAll, loginWithProvider, emailSignup, magicLinksRoute]);
165
165
  }
166
166
 
167
167
  throttledFunc = <T>(func: () => Promise<T>, throttle = 500): Promise<T> => {
@@ -7,6 +7,17 @@ import { Strategy as MicrosoftStrategy } from "passport-microsoft";
7
7
  import { Strategy as FacebookStrategy } from "passport-facebook";
8
8
  import { AuthSocketSchema, getKeys, isDefined, isEmpty } from "prostgles-types";
9
9
  import { AUTH_ROUTES_AND_PARAMS, AuthHandler } from "./AuthHandler";
10
+ import type e from "express";
11
+ import { RequestHandler } from "express";
12
+ import { removeExpressRouteByName } from "../FileManager/FileManager";
13
+
14
+
15
+ export const upsertNamedExpressMiddleware = (app: e.Express, handler: RequestHandler, name: string) => {
16
+ const funcName = name;
17
+ Object.defineProperty(handler, "name", { value: funcName });
18
+ removeExpressRouteByName(app, name);
19
+ app.use(handler);
20
+ }
10
21
 
11
22
  export function setAuthProviders (this: AuthHandler, { registrations, app }: Required<Auth>["expressConfig"]) {
12
23
  if(!registrations) return;
@@ -23,7 +34,7 @@ export function setAuthProviders (this: AuthHandler, { registrations, app }: Req
23
34
  }
24
35
 
25
36
  if(!isEmpty(providers)){
26
- app.use(passport.initialize());
37
+ upsertNamedExpressMiddleware(app, passport.initialize(), "prostglesPassportMiddleware");
27
38
  }
28
39
 
29
40
  ([
@@ -1,7 +1,8 @@
1
+ import { RequestHandler } from "express";
1
2
  import { DBOFullyTyped } from "../DBSchemaBuilder";
2
3
  import { AUTH_ROUTES_AND_PARAMS, AuthHandler, getLoginClientInfo, HTTPCODES } from "./AuthHandler";
3
4
  import { AuthClientRequest, ExpressReq, ExpressRes } from "./AuthTypes";
4
- import { setAuthProviders } from "./setAuthProviders";
5
+ import { setAuthProviders, upsertNamedExpressMiddleware } from "./setAuthProviders";
5
6
 
6
7
  export async function setupAuthRoutes(this: AuthHandler) {
7
8
  if (!this.opts) return;
@@ -29,7 +30,7 @@ export async function setupAuthRoutes(this: AuthHandler) {
29
30
  setAuthProviders.bind(this)(expressConfig);
30
31
 
31
32
  if(use){
32
- app.use((req, res, next) => {
33
+ const prostglesUseMiddleware: RequestHandler = (req, res, next) => {
33
34
  use({
34
35
  req,
35
36
  res,
@@ -38,7 +39,8 @@ export async function setupAuthRoutes(this: AuthHandler) {
38
39
  dbo: this.dbo as DBOFullyTyped,
39
40
  db: this.db,
40
41
  })
41
- })
42
+ };
43
+ upsertNamedExpressMiddleware(app, prostglesUseMiddleware, "prostglesUseMiddleware");
42
44
  }
43
45
 
44
46
  if (magicLinks) {
@@ -293,6 +293,17 @@ export const removeExpressRoute = (app: ExpressApp | undefined, routePaths: (str
293
293
  }
294
294
  }
295
295
 
296
+ export const removeExpressRouteByName = (app: ExpressApp | undefined, name: string) => {
297
+ const routes = app?._router?.stack;
298
+ if(routes){
299
+ routes.forEach((route, i) => {
300
+ if(route.name === name){
301
+ routes.splice(i, 1);
302
+ }
303
+ })
304
+ }
305
+ }
306
+
296
307
  export const getFileTypeFromFilename = (fileName: string): { mime: ALLOWED_CONTENT_TYPE; ext: ALLOWED_EXTENSION | string } | undefined => {
297
308
 
298
309
  const nameParts = fileName.split(".");
package/lib/Prostgles.ts CHANGED
@@ -8,7 +8,8 @@ import { AuthHandler } from "./Auth/AuthHandler";
8
8
  import { FileManager } from "./FileManager/FileManager";
9
9
  import { SchemaWatch } from "./SchemaWatch/SchemaWatch";
10
10
  import { OnInitReason, initProstgles } from "./initProstgles";
11
- import { clientCanRunSqlRequest, runClientMethod, runClientRequest, runClientSqlRequest } from "./runClientRequest";
11
+ import { makeSocketError, onSocketConnected } from "./onSocketConnected";
12
+ import { clientCanRunSqlRequest, runClientSqlRequest } from "./runClientRequest";
12
13
  import pg = require('pg-promise/typescript/pg-subset');
13
14
  const { version } = require('../package.json');
14
15
 
@@ -21,7 +22,6 @@ export { DBHandlerServer };
21
22
  export type PGP = pgPromise.IMain<{}, pg.IClient>;
22
23
 
23
24
  import {
24
- AnyObject,
25
25
  CHANNELS,
26
26
  ClientSchema,
27
27
  DBSchemaTable,
@@ -357,85 +357,7 @@ export class Prostgles {
357
357
  this.opts.io?.sockets.sockets.forEach(socket => this.onSocketConnected(socket))
358
358
  }
359
359
 
360
- onSocketConnected = async (socket: PRGLIOSocket) => {
361
- if (this.destroyed) {
362
- console.log("Socket connected to destroyed instance");
363
- socket.disconnect();
364
- return
365
- }
366
- this.connectedSockets.push(socket);
367
-
368
- try {
369
- await this.opts.onLog?.({
370
- type: "connect",
371
- sid: this.authHandler?.getSID({ socket }),
372
- socketId: socket.id,
373
- connectedSocketIds: this.connectedSockets.map(s => s.id)
374
- });
375
-
376
- if (!this.db || !this.dbo) throw new Error("db/dbo missing");
377
- const { dbo, db } = this;
378
-
379
- if (this.opts.onSocketConnect) {
380
- try {
381
- const getUser = async () => { return await this.authHandler?.getClientInfo({ socket }); }
382
- await this.opts.onSocketConnect({ socket, dbo: dbo as any, db, getUser });
383
- } catch(error) {
384
- const connectionError = error instanceof Error? error.message : typeof error === "string"? error : JSON.stringify(error);
385
- socket.emit(CHANNELS.CONNECTION, { connectionError });
386
- socket.disconnect();
387
- return;
388
- }
389
- }
390
-
391
- socket.removeAllListeners(CHANNELS.DEFAULT)
392
- socket.on(CHANNELS.DEFAULT, async (args: SocketRequestParams, cb = (..._callback: any[]) => { /* Empty */}) => {
393
- runClientRequest.bind(this)({ ...args, type: "socket", socket })
394
- .then(res => {
395
- cb(null, res)
396
- }).catch(err => {
397
- cb(err);
398
- });
399
- });
400
-
401
- socket.on("disconnect", () => {
402
-
403
- this.dbEventsManager?.removeNotice(socket);
404
- this.dbEventsManager?.removeNotify(undefined, socket);
405
- this.connectedSockets = this.connectedSockets.filter(s => s.id !== socket.id);
406
- this.dboBuilder.queryStreamer.onDisconnect(socket.id);
407
- this.opts.onLog?.({
408
- type: "disconnect",
409
- sid: this.authHandler?.getSID({ socket }),
410
- socketId: socket.id,
411
- connectedSocketIds: this.connectedSockets.map(s => s.id)
412
- });
413
-
414
- if (this.opts.onSocketDisconnect) {
415
- const getUser = async () => { return await this.authHandler?.getClientInfo({ socket }); }
416
- this.opts.onSocketDisconnect({ socket, dbo: dbo as any, db, getUser });
417
- }
418
- });
419
-
420
- socket.removeAllListeners(CHANNELS.METHOD)
421
- socket.on(CHANNELS.METHOD, async ({ method, params }: SocketMethodRequest, cb = (..._callback: any) => { /* Empty */ }) => {
422
- runClientMethod.bind(this)({
423
- type: "socket",
424
- socket,
425
- method,
426
- params
427
- }).then(res => {
428
- cb(null, res)
429
- }).catch(err => {
430
- makeSocketError(cb, err)
431
- });
432
- });
433
-
434
- this.pushSocketSchema(socket);
435
- } catch (e) {
436
- console.trace("setSocketEvents: ", e)
437
- }
438
- }
360
+ onSocketConnected = onSocketConnected.bind(this);
439
361
 
440
362
  getClientSchema = async (clientReq: Pick<LocalParams, "socket" | "httpReq">) => {
441
363
 
@@ -551,22 +473,6 @@ export class Prostgles {
551
473
  }
552
474
  }
553
475
 
554
- function makeSocketError(cb: (err: AnyObject) => void, err: any) {
555
- cb(getErrorAsObject(err));
556
- }
557
-
558
- type SocketRequestParams = {
559
- tableName: string;
560
- command: typeof TABLE_METHODS[number];
561
- param1: any;
562
- param2: any;
563
- param3: any;
564
- }
565
- type SocketMethodRequest = {
566
- method: string;
567
- params: any;
568
- }
569
-
570
476
 
571
477
  export async function getIsSuperUser(db: DB): Promise<boolean> {
572
478
  return db.oneOrNone("select usesuper from pg_user where usename = CURRENT_USER;").then(r => r.usesuper);
package/lib/RestApi.ts CHANGED
@@ -11,11 +11,18 @@ const jsonParser = bodyParser.json();
11
11
  export type ExpressApp = {
12
12
  _router?: {
13
13
  stack?: {
14
+ name: string;
14
15
  handle: VoidFunction;
15
16
  path: undefined,
16
17
  keys?: any[];
17
18
  route?: {
18
19
  path?: string;
20
+ methods?: {
21
+ get?: boolean;
22
+ post?: boolean;
23
+ put?: boolean;
24
+ delete?: boolean;
25
+ };
19
26
  }
20
27
  }[]
21
28
  }
@@ -25,7 +25,7 @@ export type OnInitReason =
25
25
  }
26
26
  | {
27
27
  type: "prgl.update";
28
- newOpts: UpdateableOptions;
28
+ newOpts: Omit<UpdateableOptions, typeof clientOnlyUpdateKeys[number]>;
29
29
  }
30
30
  | {
31
31
  type: "init" | "prgl.restart" | "TableConfig"
@@ -61,6 +61,8 @@ export type InitResult = {
61
61
  options: ProstglesInitOptions;
62
62
  }
63
63
 
64
+ const clientOnlyUpdateKeys = ["auth"] as const satisfies (keyof UpdateableOptions)[];
65
+
64
66
  export const initProstgles = async function(this: Prostgles, onReady: OnReadyCallbackBasic, reason: OnInitReason): Promise<InitResult> {
65
67
  this.loaded = false;
66
68
 
@@ -123,7 +125,9 @@ export const initProstgles = async function(this: Prostgles, onReady: OnReadyCal
123
125
 
124
126
  if (this.opts.publish) {
125
127
 
126
- if (!this.opts.io) console.warn("IO missing. Publish has no effect without io");
128
+ if (!this.opts.io) {
129
+ console.warn("IO missing. Publish has no effect without io");
130
+ }
127
131
 
128
132
  /* 3.9 Check auth config */
129
133
  this.authHandler = new AuthHandler(this as any);
@@ -174,6 +178,7 @@ export const initProstgles = async function(this: Prostgles, onReady: OnReadyCal
174
178
  this.opts[k] = newOpts[k];
175
179
  });
176
180
 
181
+
177
182
  if("fileTable" in newOpts){
178
183
  await this.initFileTable();
179
184
  }
@@ -193,7 +198,16 @@ export const initProstgles = async function(this: Prostgles, onReady: OnReadyCal
193
198
  this.authHandler = new AuthHandler(this as any);
194
199
  await this.authHandler.init();
195
200
  }
196
- if(!isEmpty(newOpts)){
201
+
202
+ if(isEmpty(newOpts)) return;
203
+
204
+ /**
205
+ * Some of these changes require clients to reconnect
206
+ * While others also affect the server and onReady should be called
207
+ */
208
+ if(getKeys(newOpts).every(updatedKey => clientOnlyUpdateKeys.includes(updatedKey as any))){
209
+ await this.setSocketEvents();
210
+ } else {
197
211
  await this.init(onReady, { type: "prgl.update", newOpts });
198
212
  }
199
213
  },
@@ -0,0 +1,102 @@
1
+ import { AnyObject, CHANNELS } from "prostgles-types";
2
+ import type { Prostgles, TABLE_METHODS } from "./Prostgles";
3
+ import { PRGLIOSocket } from "./DboBuilder/DboBuilderTypes";
4
+ import { runClientMethod, runClientRequest } from "./runClientRequest";
5
+ import { getErrorAsObject } from "./DboBuilder/dboBuilderUtils";
6
+
7
+ export async function onSocketConnected(this: Prostgles, socket: PRGLIOSocket) {
8
+ if (this.destroyed) {
9
+ console.log("Socket connected to destroyed instance");
10
+ socket.disconnect();
11
+ return
12
+ }
13
+ this.connectedSockets.push(socket);
14
+
15
+ try {
16
+ await this.opts.onLog?.({
17
+ type: "connect",
18
+ sid: this.authHandler?.getSID({ socket }),
19
+ socketId: socket.id,
20
+ connectedSocketIds: this.connectedSockets.map(s => s.id)
21
+ });
22
+
23
+ if (!this.db || !this.dbo) throw new Error("db/dbo missing");
24
+ const { dbo, db } = this;
25
+
26
+ if (this.opts.onSocketConnect) {
27
+ try {
28
+ const getUser = async () => { return await this.authHandler?.getClientInfo({ socket }); }
29
+ await this.opts.onSocketConnect({ socket, dbo: dbo as any, db, getUser });
30
+ } catch(error) {
31
+ const connectionError = error instanceof Error? error.message : typeof error === "string"? error : JSON.stringify(error);
32
+ socket.emit(CHANNELS.CONNECTION, { connectionError });
33
+ socket.disconnect();
34
+ return;
35
+ }
36
+ }
37
+
38
+ socket.removeAllListeners(CHANNELS.DEFAULT)
39
+ socket.on(CHANNELS.DEFAULT, async (args: SocketRequestParams, cb = (..._callback: any[]) => { /* Empty */}) => {
40
+ runClientRequest.bind(this)({ ...args, type: "socket", socket })
41
+ .then(res => {
42
+ cb(null, res)
43
+ }).catch(err => {
44
+ cb(err);
45
+ });
46
+ });
47
+
48
+ socket.on("disconnect", () => {
49
+
50
+ this.dbEventsManager?.removeNotice(socket);
51
+ this.dbEventsManager?.removeNotify(undefined, socket);
52
+ this.connectedSockets = this.connectedSockets.filter(s => s.id !== socket.id);
53
+ this.dboBuilder.queryStreamer.onDisconnect(socket.id);
54
+ this.opts.onLog?.({
55
+ type: "disconnect",
56
+ sid: this.authHandler?.getSID({ socket }),
57
+ socketId: socket.id,
58
+ connectedSocketIds: this.connectedSockets.map(s => s.id)
59
+ });
60
+
61
+ if (this.opts.onSocketDisconnect) {
62
+ const getUser = async () => { return await this.authHandler?.getClientInfo({ socket }); }
63
+ this.opts.onSocketDisconnect({ socket, dbo: dbo as any, db, getUser });
64
+ }
65
+ });
66
+
67
+ socket.removeAllListeners(CHANNELS.METHOD)
68
+ socket.on(CHANNELS.METHOD, async ({ method, params }: SocketMethodRequest, cb = (..._callback: any) => { /* Empty */ }) => {
69
+ runClientMethod.bind(this)({
70
+ type: "socket",
71
+ socket,
72
+ method,
73
+ params
74
+ }).then(res => {
75
+ cb(null, res)
76
+ }).catch(err => {
77
+ makeSocketError(cb, err)
78
+ });
79
+ });
80
+
81
+ this.pushSocketSchema(socket);
82
+ } catch (e) {
83
+ console.trace("setSocketEvents: ", e)
84
+ }
85
+ }
86
+
87
+
88
+ export function makeSocketError(cb: (err: AnyObject) => void, err: any) {
89
+ cb(getErrorAsObject(err));
90
+ }
91
+
92
+ type SocketRequestParams = {
93
+ tableName: string;
94
+ command: typeof TABLE_METHODS[number];
95
+ param1: any;
96
+ param2: any;
97
+ param3: any;
98
+ }
99
+ type SocketMethodRequest = {
100
+ method: string;
101
+ params: any;
102
+ }
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "prostgles-server",
3
- "version": "4.2.142",
3
+ "version": "4.2.144",
4
4
  "description": "",
5
5
  "main": "dist/index.js",
6
6
  "types": "dist/index.d.ts",
@@ -122,9 +122,7 @@ export const clientHooks = async (db: DBHandlerClient, getSocketOptions: (watchS
122
122
  '$update': 1,
123
123
  };
124
124
  const plane0 = {
125
- flight_number: '{"from":0,"to":0,"text":"","md5":"fb91aad2efe3387d09399beb97262d8d"}',
126
125
  id: 0,
127
- last_updated: '1711882317229',
128
126
  x: 20,
129
127
  y: 0
130
128
  }
@@ -152,17 +150,18 @@ export const clientHooks = async (db: DBHandlerClient, getSocketOptions: (watchS
152
150
  { data: undefined, isLoading: true, error: undefined }
153
151
  );
154
152
  /** This fails from time to time */
155
- assert.deepStrictEqual(
156
- results[1],
157
- { data: [], error: undefined, isLoading: false },
158
- );
159
- const lastData = results.at(-1)?.data;
153
+ // assert.deepStrictEqual(
154
+ // results[1],
155
+ // { data: [], error: undefined, isLoading: false },
156
+ // );
157
+ const lastResult = results.at(-1);
158
+ assert.equal(lastResult?.isLoading, false);
159
+ const lastData = lastResult?.data;
160
160
  assert.equal(lastData.length, 1);
161
161
  const lastDataItem = lastData[0];
162
- const staticPropNames = ["id", "x", "y"];
163
162
  assert.deepStrictEqual(
164
- pickKeys(lastDataItem, staticPropNames),
165
- pickKeys(plane0, staticPropNames as any)
163
+ pickKeys(lastDataItem, Object.keys(plane0)),
164
+ plane0
166
165
  );
167
166
 
168
167
  // Update item
@@ -21,7 +21,7 @@
21
21
  },
22
22
  "../..": {
23
23
  "name": "prostgles-server",
24
- "version": "4.2.141",
24
+ "version": "4.2.143",
25
25
  "license": "MIT",
26
26
  "dependencies": {
27
27
  "body-parser": "^1.20.3",