@superblocksteam/shared 0.9147.0 → 0.9148.0

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.
@@ -21,6 +21,7 @@ export interface SocketError {
21
21
  message: string;
22
22
  code: number;
23
23
  }
24
+ export declare const INTENTIONAL_CLOSE_CODE = 4001;
24
25
  /**
25
26
  * ISocket is a class that wraps a WebSocket connection and provides a simple interface for sending and receiving messages.
26
27
  * ISocket is initialized by both server and client and request/response is called symmetrically.
@@ -44,10 +45,28 @@ export declare class ISocket<ImplementedMethods, CallableMethods, RequestContext
44
45
  private connectionTimeout;
45
46
  protected logger: {
46
47
  error: (message?: string) => void;
48
+ info: (message?: string) => void;
49
+ warn: (message?: string) => void;
47
50
  };
48
51
  private timeouts?;
49
- constructor(ws: WebSocket, requestHandlers: MethodHandlers<ImplementedMethods, CallableMethods, RequestContext>, globalMiddlewares: GenericMiddleware<CallableMethods, RequestContext>[], timeouts?: SocketTimeouts, logger?: {
50
- error: (message?: string) => void;
52
+ private isClosed;
53
+ constructor(ws: WebSocket, requestHandlers: MethodHandlers<ImplementedMethods, CallableMethods, RequestContext>, globalMiddlewares: GenericMiddleware<CallableMethods, RequestContext>[], options: {
54
+ /**
55
+ * This callback is called when the WebSocket connection is closed,
56
+ * either with a close handshake or immediately if the connection is dropped
57
+ *
58
+ * If code is INTENTIONAL_CLOSE_CODE, it was closed due to an internal timeout.
59
+ * Otherwise, the other side closed the connection.
60
+ *
61
+ * @param event - The WebSocket.CloseEvent object.
62
+ */
63
+ onClose: (event: WebSocket.CloseEvent) => void;
64
+ timeouts?: SocketTimeouts;
65
+ logger?: {
66
+ error: (message?: string) => void;
67
+ info: (message?: string) => void;
68
+ warn: (message?: string) => void;
69
+ };
51
70
  });
52
71
  protected handleMessage(message: SocketMessage): Promise<void>;
53
72
  protected callHandler<Params, Result, CallableMethods, RequestContext extends RequestContextBase>(handler: MethodHandler<Params, Result, CallableMethods, RequestContext>, params: Params, ctx: RequestContext, client: ISocketClient<CallableMethods>, next: () => Promise<Result>): Promise<Result>;
@@ -59,7 +78,7 @@ export declare class ISocket<ImplementedMethods, CallableMethods, RequestContext
59
78
  private handleConnectionTimeout;
60
79
  private resetNoResponseTimeout;
61
80
  private handleNoResponseTimeout;
62
- close(): void;
81
+ close(reason?: string): void;
63
82
  }
64
83
  export declare function createISocketClient<CallableMethods, ImplementedMethods, RequestContext extends RequestContextBase>(socket: ISocket<ImplementedMethods, CallableMethods, RequestContext>): ISocketClient<CallableMethods>;
65
84
  export {};
@@ -1 +1 @@
1
- {"version":3,"file":"socket.d.ts","sourceRoot":"","sources":["../../src/socket/socket.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"socket.d.ts","sourceRoot":"","sources":["../../src/socket/socket.ts"],"names":[],"mappings":"AAAA,OAAO,SAAS,MAAM,eAAe,CAAC;AACtC,OAAO,EACL,aAAa,EACb,aAAa,EACb,cAAc,EACd,kBAAkB,EAClB,cAAc,EAEd,iBAAiB,EAClB,MAAM,SAAS,CAAC;AAEjB,UAAU,aAAa,CAAC,OAAO,GAAG,OAAO;IACvC,MAAM,EAAE,MAAM,CAAC;IACf,OAAO,EAAE,OAAO,CAAC;IACjB,EAAE,EAAE,MAAM,CAAC;IACX,gBAAgB,CAAC,EAAE,MAAM,CAAC;IAC1B,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,UAAU,CAAC,EAAE,MAAM,CAAC;CACrB;AAED,UAAU,cAAc,CAAC,OAAO,GAAG,OAAO;IACxC,EAAE,EAAE,MAAM,CAAC;IACX,OAAO,EAAE,OAAO,CAAC;IACjB,KAAK,EAAE,WAAW,GAAG,IAAI,CAAC;CAC3B;AAED,MAAM,WAAW,aAAa,CAAC,cAAc,GAAG,OAAO,EAAE,eAAe,GAAG,OAAO;IAChF,OAAO,CAAC,EAAE,aAAa,CAAC,cAAc,CAAC,CAAC;IACxC,QAAQ,CAAC,EAAE,cAAc,CAAC,eAAe,CAAC,CAAC;CAC5C;AAED,MAAM,WAAW,WAAW;IAC1B,OAAO,EAAE,MAAM,CAAC;IAChB,IAAI,EAAE,MAAM,CAAC;CACd;AAID,eAAO,MAAM,sBAAsB,OAAO,CAAC;AAE3C;;;;;;;;;;;;GAYG;AACH,qBAAa,OAAO,CAAC,kBAAkB,EAAE,eAAe,EAAE,cAAc,SAAS,kBAAkB;IACjG,OAAO,CAAC,QAAQ,CAAC,EAAE,CAAY;IAC/B,OAAO,CAAC,QAAQ,CAAC,eAAe,CAAsE;IACtG,OAAO,CAAC,QAAQ,CAAC,iBAAiB,CAAuD;IACzF,OAAO,CAAC,QAAQ,CAAC,eAAe,CAG5B;IACJ,OAAO,CAAC,iBAAiB,CAAC,CAAS;IACnC,SAAS,CAAC,YAAY,EAAE,MAAM,CAAC;IAC/B,OAAO,CAAC,iBAAiB,CAAiB;IAE1C,SAAS,CAAC,MAAM,EAAE;QAAE,KAAK,EAAE,CAAC,OAAO,CAAC,EAAE,MAAM,KAAK,IAAI,CAAC;QAAC,IAAI,EAAE,CAAC,OAAO,CAAC,EAAE,MAAM,KAAK,IAAI,CAAC;QAAC,IAAI,EAAE,CAAC,OAAO,CAAC,EAAE,MAAM,KAAK,IAAI,CAAA;KAAE,CAAC;IAC5H,OAAO,CAAC,QAAQ,CAAC,CAAiB;IAClC,OAAO,CAAC,QAAQ,CAAS;gBAGvB,EAAE,EAAE,SAAS,EACb,eAAe,EAAE,cAAc,CAAC,kBAAkB,EAAE,eAAe,EAAE,cAAc,CAAC,EACpF,iBAAiB,EAAE,iBAAiB,CAAC,eAAe,EAAE,cAAc,CAAC,EAAE,EACvE,OAAO,EAAE;QACP;;;;;;;;WAQG;QACH,OAAO,EAAE,CAAC,KAAK,EAAE,SAAS,CAAC,UAAU,KAAK,IAAI,CAAC;QAC/C,QAAQ,CAAC,EAAE,cAAc,CAAC;QAC1B,MAAM,CAAC,EAAE;YAAE,KAAK,EAAE,CAAC,OAAO,CAAC,EAAE,MAAM,KAAK,IAAI,CAAC;YAAC,IAAI,EAAE,CAAC,OAAO,CAAC,EAAE,MAAM,KAAK,IAAI,CAAC;YAAC,IAAI,EAAE,CAAC,OAAO,CAAC,EAAE,MAAM,KAAK,IAAI,CAAA;SAAE,CAAC;KACpH;cAwCa,aAAa,CAAC,OAAO,EAAE,aAAa,GAAG,OAAO,CAAC,IAAI,CAAC;cAsFpD,WAAW,CAAC,MAAM,EAAE,MAAM,EAAE,eAAe,EAAE,cAAc,SAAS,kBAAkB,EACpG,OAAO,EAAE,aAAa,CAAC,MAAM,EAAE,MAAM,EAAE,eAAe,EAAE,cAAc,CAAC,EACvE,MAAM,EAAE,MAAM,EACd,GAAG,EAAE,cAAc,EACnB,MAAM,EAAE,aAAa,CAAC,eAAe,CAAC,EACtC,IAAI,EAAE,MAAM,OAAO,CAAC,MAAM,CAAC,GAC1B,OAAO,CAAC,MAAM,CAAC;IAIX,OAAO,CAAC,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,aAAa,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC;IAoBvG,SAAS,CAAC,cAAc,CAAC,OAAO,EAAE,aAAa,GAAG,aAAa;IAI/D,SAAS,CAAC,OAAO,CAAC,MAAM,EAAE,SAAS,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,GAAG,IAAI;IAWlE,SAAS,CAAC,YAAY,CAAC,SAAS,EAAE,MAAM,EAAE,KAAK,EAAE,WAAW,EAAE,SAAS,CAAC,EAAE,KAAK,GAAG,IAAI;IAWtF,OAAO,CAAC,sBAAsB;IAW9B,OAAO,CAAC,uBAAuB;IAM/B,OAAO,CAAC,sBAAsB;IAiB9B,OAAO,CAAC,uBAAuB;IAQxB,KAAK,CAAC,MAAM,CAAC,EAAE,MAAM,GAAG,IAAI;CAKpC;AAoCD,wBAAgB,mBAAmB,CAAC,eAAe,EAAE,kBAAkB,EAAE,cAAc,SAAS,kBAAkB,EAChH,MAAM,EAAE,OAAO,CAAC,kBAAkB,EAAE,eAAe,EAAE,cAAc,CAAC,GACnE,aAAa,CAAC,eAAe,CAAC,CAMhC"}
@@ -1,7 +1,10 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.createISocketClient = exports.ISocket = void 0;
3
+ exports.createISocketClient = exports.ISocket = exports.INTENTIONAL_CLOSE_CODE = void 0;
4
4
  const types_1 = require("./types");
5
+ // Codes in the 4000s are left available by IETF
6
+ // https://datatracker.ietf.org/doc/html/rfc6455#section-7.4.2
7
+ exports.INTENTIONAL_CLOSE_CODE = 4001;
5
8
  /**
6
9
  * ISocket is a class that wraps a WebSocket connection and provides a simple interface for sending and receiving messages.
7
10
  * ISocket is initialized by both server and client and request/response is called symmetrically.
@@ -16,23 +19,50 @@ const types_1 = require("./types");
16
19
  * It is expected that timeouts should be relatively sorted in the order of connection timeout > request timeout > no response timeout.
17
20
  */
18
21
  class ISocket {
19
- constructor(ws, requestHandlers, globalMiddlewares, timeouts, logger) {
22
+ constructor(ws, requestHandlers, globalMiddlewares, options) {
20
23
  this.responseHandler = new Map();
24
+ this.isClosed = false;
21
25
  this.ws = ws;
22
26
  this.requestHandlers = requestHandlers;
23
27
  this.globalMiddlewares = globalMiddlewares;
24
28
  this.nxtRequestId = 0;
25
- this.logger = logger ?? { error: console.error };
26
- this.timeouts = timeouts;
29
+ this.logger = this.logger ?? {
30
+ error: console.error,
31
+ warn: console.warn,
32
+ info: console.info
33
+ };
34
+ this.timeouts = options.timeouts;
27
35
  // reset connection timeout in each message received. It means connection still active
28
36
  this.resetConnectionTimeout();
29
- // eslint-disable-next-line @typescript-eslint/no-misused-promises
30
- this.ws.addEventListener('message', async (event) => {
31
- const eventData = JSON.parse(event.data.toString());
32
- return this.handleMessage(eventData);
37
+ this.ws.addEventListener('message', (event) => {
38
+ try {
39
+ const eventData = JSON.parse(event.data.toString());
40
+ void this.handleMessage(eventData);
41
+ }
42
+ catch (error) {
43
+ this.logger.error(`Error parsing message: ${error}`);
44
+ }
45
+ });
46
+ this.ws.addEventListener('close', (event) => {
47
+ this.isClosed = true;
48
+ if (event.code !== exports.INTENTIONAL_CLOSE_CODE) {
49
+ // Reject any pending responses that happen after the close handshake,
50
+ // which shouldn't be possible
51
+ this.responseHandler.forEach((handler, key) => {
52
+ clearTimeout(handler.timeout);
53
+ this.logger.error(`Rejecting pending requestId ${key} due to connection close`);
54
+ handler.reject({ code: 8, message: 'Connection closed' });
55
+ });
56
+ this.responseHandler.clear();
57
+ }
58
+ options.onClose(event);
33
59
  });
34
60
  }
35
61
  async handleMessage(message) {
62
+ if (this.isClosed) {
63
+ this.logger.error('Connection closed, ignoring message');
64
+ return;
65
+ }
36
66
  this.resetConnectionTimeout();
37
67
  if (message.request) {
38
68
  // Split the method string into parts
@@ -118,6 +148,11 @@ class ISocket {
118
148
  return handler(params, ctx, client, next);
119
149
  }
120
150
  request(method, params, authorization) {
151
+ if (this.isClosed) {
152
+ // Sockets normally will silently accept requests after the close handshake,
153
+ // but we want to reject them to avoid confusion
154
+ return Promise.reject(new types_1.SocketErrorException(10, 'Connection closed'));
155
+ }
121
156
  return new Promise((resolve, reject) => {
122
157
  const requestId = ++this.nxtRequestId;
123
158
  this.responseHandler.set(requestId, {
@@ -166,8 +201,7 @@ class ISocket {
166
201
  }
167
202
  handleConnectionTimeout() {
168
203
  return () => {
169
- this.logger.error(`Connection timed out after ${this.timeouts?.connectionTimeoutInSeconds} seconds`);
170
- this.close();
204
+ this.close('Connection timeout');
171
205
  };
172
206
  }
173
207
  resetNoResponseTimeout(requestId) {
@@ -193,14 +227,10 @@ class ISocket {
193
227
  reject({ code: 7, message });
194
228
  };
195
229
  }
196
- close() {
197
- clearTimeout(this.connectionTimeout);
198
- this.responseHandler.forEach((handler, key) => {
199
- clearTimeout(handler.timeout);
200
- this.logger.error(`Rejecting pending requestId ${key} due to connection close`);
201
- handler.reject({ code: 8, message: 'Connection closed' });
202
- });
203
- this.ws.close();
230
+ close(reason) {
231
+ // Starts close handshake without clearing in-progress requests
232
+ // see https://developer.mozilla.org/en-US/docs/Web/API/WebSocket/close
233
+ this.ws.close(exports.INTENTIONAL_CLOSE_CODE, reason);
204
234
  }
205
235
  }
206
236
  exports.ISocket = ISocket;
@@ -235,7 +265,7 @@ path) {
235
265
  }
236
266
  function createISocketClient(socket) {
237
267
  return {
238
- close: () => socket.close(),
268
+ close: (reason) => socket.close(reason),
239
269
  // eslint-disable-next-line @typescript-eslint/no-explicit-any
240
270
  call: createIsocketProxy(socket, undefined)
241
271
  };
@@ -1 +1 @@
1
- {"version":3,"file":"socket.js","sourceRoot":"","sources":["../../src/socket/socket.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"socket.js","sourceRoot":"","sources":["../../src/socket/socket.ts"],"names":[],"mappings":"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"}
@@ -5,8 +5,28 @@ import { GenericMiddleware, ISocketClient, MethodHandlers, RequestContextBase, S
5
5
  export declare class ISocketWithClientAuth<ImplementedMethods, CallableMethods, RequestContext extends RequestContextBase> extends TracedSocket<ImplementedMethods, CallableMethods, RequestContext> {
6
6
  private readonly authorization?;
7
7
  private hasSentAuth;
8
- constructor(ws: WebSocket, authorization: string | undefined, requestHandlers: MethodHandlers<ImplementedMethods, CallableMethods, RequestContext>, globalMiddlewares: GenericMiddleware<CallableMethods, RequestContext>[], tracer: Tracer, timeouts?: SocketTimeouts);
8
+ constructor(ws: WebSocket, authorization: string | undefined, requestHandlers: MethodHandlers<ImplementedMethods, CallableMethods, RequestContext>, globalMiddlewares: GenericMiddleware<CallableMethods, RequestContext>[], tracer: Tracer, options: {
9
+ onClose: (event: WebSocket.CloseEvent) => void;
10
+ timeouts?: SocketTimeouts;
11
+ logger?: {
12
+ error: (message?: string) => void;
13
+ info: (message?: string) => void;
14
+ warn: (message?: string) => void;
15
+ };
16
+ });
9
17
  request<Params, Result>(method: string, params: Params): Promise<Result>;
10
18
  }
11
- export declare function connectISocket<CallableMethods, ImplementedMethods, RequestContext extends RequestContextBase = RequestContextBase>(wsUrl: string, authorization: string | undefined, requestHandlers: MethodHandlers<ImplementedMethods, CallableMethods, RequestContext>, globalMiddlewares: GenericMiddleware<CallableMethods, RequestContext>[], tracer: Tracer, timeouts?: SocketTimeouts): Promise<ISocketClient<CallableMethods>>;
19
+ /**
20
+ * Creates a new socket for a set of operations, without any retry behavior
21
+ * If the requests fail, the promise will reject.
22
+ */
23
+ export declare function connectSingleUseISocket<CallableMethods, ImplementedMethods, RequestContext extends RequestContextBase = RequestContextBase>(wsUrl: string, authorization: string | undefined, requestHandlers: MethodHandlers<ImplementedMethods, CallableMethods, RequestContext>, globalMiddlewares: GenericMiddleware<CallableMethods, RequestContext>[], tracer: Tracer, options: {
24
+ onClose: (event: WebSocket.CloseEvent) => void;
25
+ timeouts?: SocketTimeouts;
26
+ logger?: {
27
+ error: (message?: string) => void;
28
+ info: (message?: string) => void;
29
+ warn: (message?: string) => void;
30
+ };
31
+ }): Promise<ISocketClient<CallableMethods>>;
12
32
  //# sourceMappingURL=socketWithClientAuth.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"socketWithClientAuth.d.ts","sourceRoot":"","sources":["../../src/socket/socketWithClientAuth.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,EAAE,MAAM,oBAAoB,CAAC;AAC5C,OAAO,SAAS,MAAM,eAAe,CAAC;AAEtC,OAAO,EAAE,YAAY,EAAE,MAAM,gBAAgB,CAAC;AAC9C,OAAO,EAAE,iBAAiB,EAAE,aAAa,EAAE,cAAc,EAAE,kBAAkB,EAAE,cAAc,EAAE,MAAM,SAAS,CAAC;AAM/G,qBAAa,qBAAqB,CAAC,kBAAkB,EAAE,eAAe,EAAE,cAAc,SAAS,kBAAkB,CAAE,SAAQ,YAAY,CACrI,kBAAkB,EAClB,eAAe,EACf,cAAc,CACf;IACC,OAAO,CAAC,QAAQ,CAAC,aAAa,CAAC,CAAS;IACxC,OAAO,CAAC,WAAW,CAAS;gBAG1B,EAAE,EAAE,SAAS,EACb,aAAa,EAAE,MAAM,GAAG,SAAS,EACjC,eAAe,EAAE,cAAc,CAAC,kBAAkB,EAAE,eAAe,EAAE,cAAc,CAAC,EACpF,iBAAiB,EAAE,iBAAiB,CAAC,eAAe,EAAE,cAAc,CAAC,EAAE,EACvE,MAAM,EAAE,MAAM,EACd,QAAQ,CAAC,EAAE,cAAc;IAOrB,OAAO,CAAC,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC;CAO/E;AAED,wBAAsB,cAAc,CAAC,eAAe,EAAE,kBAAkB,EAAE,cAAc,SAAS,kBAAkB,GAAG,kBAAkB,EACtI,KAAK,EAAE,MAAM,EACb,aAAa,EAAE,MAAM,GAAG,SAAS,EACjC,eAAe,EAAE,cAAc,CAAC,kBAAkB,EAAE,eAAe,EAAE,cAAc,CAAC,EACpF,iBAAiB,EAAE,iBAAiB,CAAC,eAAe,EAAE,cAAc,CAAC,EAAE,EACvE,MAAM,EAAE,MAAM,EACd,QAAQ,CAAC,EAAE,cAAc,GACxB,OAAO,CAAC,aAAa,CAAC,eAAe,CAAC,CAAC,CAIzC"}
1
+ {"version":3,"file":"socketWithClientAuth.d.ts","sourceRoot":"","sources":["../../src/socket/socketWithClientAuth.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,EAAE,MAAM,oBAAoB,CAAC;AAC5C,OAAO,SAAS,MAAM,eAAe,CAAC;AAEtC,OAAO,EAAE,YAAY,EAAE,MAAM,gBAAgB,CAAC;AAC9C,OAAO,EAAE,iBAAiB,EAAE,aAAa,EAAE,cAAc,EAAE,kBAAkB,EAAE,cAAc,EAAE,MAAM,SAAS,CAAC;AAM/G,qBAAa,qBAAqB,CAAC,kBAAkB,EAAE,eAAe,EAAE,cAAc,SAAS,kBAAkB,CAAE,SAAQ,YAAY,CACrI,kBAAkB,EAClB,eAAe,EACf,cAAc,CACf;IACC,OAAO,CAAC,QAAQ,CAAC,aAAa,CAAC,CAAS;IACxC,OAAO,CAAC,WAAW,CAAS;gBAG1B,EAAE,EAAE,SAAS,EACb,aAAa,EAAE,MAAM,GAAG,SAAS,EACjC,eAAe,EAAE,cAAc,CAAC,kBAAkB,EAAE,eAAe,EAAE,cAAc,CAAC,EACpF,iBAAiB,EAAE,iBAAiB,CAAC,eAAe,EAAE,cAAc,CAAC,EAAE,EACvE,MAAM,EAAE,MAAM,EACd,OAAO,EAAE;QACP,OAAO,EAAE,CAAC,KAAK,EAAE,SAAS,CAAC,UAAU,KAAK,IAAI,CAAC;QAC/C,QAAQ,CAAC,EAAE,cAAc,CAAC;QAC1B,MAAM,CAAC,EAAE;YAAE,KAAK,EAAE,CAAC,OAAO,CAAC,EAAE,MAAM,KAAK,IAAI,CAAC;YAAC,IAAI,EAAE,CAAC,OAAO,CAAC,EAAE,MAAM,KAAK,IAAI,CAAC;YAAC,IAAI,EAAE,CAAC,OAAO,CAAC,EAAE,MAAM,KAAK,IAAI,CAAA;SAAE,CAAC;KACpH;IAOG,OAAO,CAAC,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC;CAO/E;AAED;;;GAGG;AACH,wBAAsB,uBAAuB,CAC3C,eAAe,EACf,kBAAkB,EAClB,cAAc,SAAS,kBAAkB,GAAG,kBAAkB,EAE9D,KAAK,EAAE,MAAM,EACb,aAAa,EAAE,MAAM,GAAG,SAAS,EACjC,eAAe,EAAE,cAAc,CAAC,kBAAkB,EAAE,eAAe,EAAE,cAAc,CAAC,EACpF,iBAAiB,EAAE,iBAAiB,CAAC,eAAe,EAAE,cAAc,CAAC,EAAE,EACvE,MAAM,EAAE,MAAM,EACd,OAAO,EAAE;IACP,OAAO,EAAE,CAAC,KAAK,EAAE,SAAS,CAAC,UAAU,KAAK,IAAI,CAAC;IAC/C,QAAQ,CAAC,EAAE,cAAc,CAAC;IAC1B,MAAM,CAAC,EAAE;QAAE,KAAK,EAAE,CAAC,OAAO,CAAC,EAAE,MAAM,KAAK,IAAI,CAAC;QAAC,IAAI,EAAE,CAAC,OAAO,CAAC,EAAE,MAAM,KAAK,IAAI,CAAC;QAAC,IAAI,EAAE,CAAC,OAAO,CAAC,EAAE,MAAM,KAAK,IAAI,CAAA;KAAE,CAAC;CACpH,GACA,OAAO,CAAC,aAAa,CAAC,eAAe,CAAC,CAAC,CAIzC"}
@@ -1,6 +1,6 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.connectISocket = exports.ISocketWithClientAuth = void 0;
3
+ exports.connectSingleUseISocket = exports.ISocketWithClientAuth = void 0;
4
4
  const socket_1 = require("./socket");
5
5
  const tracedSocket_1 = require("./tracedSocket");
6
6
  const util_1 = require("./util");
@@ -8,8 +8,8 @@ const util_1 = require("./util");
8
8
  // this is useful for client-side sockets that need to authenticate
9
9
  // TODO(george): if we start using this for long-lived connections, we should add a way to refresh the token
10
10
  class ISocketWithClientAuth extends tracedSocket_1.TracedSocket {
11
- constructor(ws, authorization, requestHandlers, globalMiddlewares, tracer, timeouts) {
12
- super(ws, requestHandlers, globalMiddlewares, tracer, timeouts);
11
+ constructor(ws, authorization, requestHandlers, globalMiddlewares, tracer, options) {
12
+ super(ws, requestHandlers, globalMiddlewares, tracer, options);
13
13
  this.hasSentAuth = false;
14
14
  this.authorization = authorization;
15
15
  }
@@ -23,10 +23,14 @@ class ISocketWithClientAuth extends tracedSocket_1.TracedSocket {
23
23
  }
24
24
  }
25
25
  exports.ISocketWithClientAuth = ISocketWithClientAuth;
26
- async function connectISocket(wsUrl, authorization, requestHandlers, globalMiddlewares, tracer, timeouts) {
26
+ /**
27
+ * Creates a new socket for a set of operations, without any retry behavior
28
+ * If the requests fail, the promise will reject.
29
+ */
30
+ async function connectSingleUseISocket(wsUrl, authorization, requestHandlers, globalMiddlewares, tracer, options) {
27
31
  const ws = await (0, util_1.connectWebSocket)(wsUrl);
28
- const isocket = new ISocketWithClientAuth(ws, authorization, requestHandlers, globalMiddlewares, tracer, timeouts);
32
+ const isocket = new ISocketWithClientAuth(ws, authorization, requestHandlers, globalMiddlewares, tracer, options);
29
33
  return (0, socket_1.createISocketClient)(isocket);
30
34
  }
31
- exports.connectISocket = connectISocket;
35
+ exports.connectSingleUseISocket = connectSingleUseISocket;
32
36
  //# sourceMappingURL=socketWithClientAuth.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"socketWithClientAuth.js","sourceRoot":"","sources":["../../src/socket/socketWithClientAuth.ts"],"names":[],"mappings":";;;AAEA,qCAA+C;AAC/C,iDAA8C;AAE9C,iCAA0C;AAE1C,sEAAsE;AACtE,mEAAmE;AACnE,4GAA4G;AAC5G,MAAa,qBAAsG,SAAQ,2BAI1H;IAIC,YACE,EAAa,EACb,aAAiC,EACjC,eAAoF,EACpF,iBAAuE,EACvE,MAAc,EACd,QAAyB;QAEzB,KAAK,CAAC,EAAE,EAAE,eAAe,EAAE,iBAAiB,EAAE,MAAM,EAAE,QAAQ,CAAC,CAAC;QAV1D,gBAAW,GAAG,KAAK,CAAC;QAW1B,IAAI,CAAC,aAAa,GAAG,aAAa,CAAC;IACrC,CAAC;IAED,kFAAkF;IAClF,KAAK,CAAC,OAAO,CAAiB,MAAc,EAAE,MAAc;QAC1D,iDAAiD;QACjD,MAAM,aAAa,GAAG,IAAI,CAAC,WAAW,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,IAAI,CAAC,aAAa,CAAC;QACxE,MAAM,MAAM,GAAG,MAAM,KAAK,CAAC,OAAO,CAAiB,MAAM,EAAE,MAAM,EAAE,aAAa,CAAC,CAAC;QAClF,IAAI,CAAC,WAAW,GAAG,IAAI,CAAC;QACxB,OAAO,MAAM,CAAC;IAChB,CAAC;CACF;AA5BD,sDA4BC;AAEM,KAAK,UAAU,cAAc,CAClC,KAAa,EACb,aAAiC,EACjC,eAAoF,EACpF,iBAAuE,EACvE,MAAc,EACd,QAAyB;IAEzB,MAAM,EAAE,GAAG,MAAM,IAAA,uBAAgB,EAAC,KAAK,CAAC,CAAC;IACzC,MAAM,OAAO,GAAG,IAAI,qBAAqB,CAAC,EAAE,EAAE,aAAa,EAAE,eAAe,EAAE,iBAAiB,EAAE,MAAM,EAAE,QAAQ,CAAC,CAAC;IACnH,OAAO,IAAA,4BAAmB,EAAC,OAAO,CAAC,CAAC;AACtC,CAAC;AAXD,wCAWC"}
1
+ {"version":3,"file":"socketWithClientAuth.js","sourceRoot":"","sources":["../../src/socket/socketWithClientAuth.ts"],"names":[],"mappings":";;;AAEA,qCAA+C;AAC/C,iDAA8C;AAE9C,iCAA0C;AAE1C,sEAAsE;AACtE,mEAAmE;AACnE,4GAA4G;AAC5G,MAAa,qBAAsG,SAAQ,2BAI1H;IAIC,YACE,EAAa,EACb,aAAiC,EACjC,eAAoF,EACpF,iBAAuE,EACvE,MAAc,EACd,OAIC;QAED,KAAK,CAAC,EAAE,EAAE,eAAe,EAAE,iBAAiB,EAAE,MAAM,EAAE,OAAO,CAAC,CAAC;QAdzD,gBAAW,GAAG,KAAK,CAAC;QAe1B,IAAI,CAAC,aAAa,GAAG,aAAa,CAAC;IACrC,CAAC;IAED,kFAAkF;IAClF,KAAK,CAAC,OAAO,CAAiB,MAAc,EAAE,MAAc;QAC1D,iDAAiD;QACjD,MAAM,aAAa,GAAG,IAAI,CAAC,WAAW,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,IAAI,CAAC,aAAa,CAAC;QACxE,MAAM,MAAM,GAAG,MAAM,KAAK,CAAC,OAAO,CAAiB,MAAM,EAAE,MAAM,EAAE,aAAa,CAAC,CAAC;QAClF,IAAI,CAAC,WAAW,GAAG,IAAI,CAAC;QACxB,OAAO,MAAM,CAAC;IAChB,CAAC;CACF;AAhCD,sDAgCC;AAED;;;GAGG;AACI,KAAK,UAAU,uBAAuB,CAK3C,KAAa,EACb,aAAiC,EACjC,eAAoF,EACpF,iBAAuE,EACvE,MAAc,EACd,OAIC;IAED,MAAM,EAAE,GAAG,MAAM,IAAA,uBAAgB,EAAC,KAAK,CAAC,CAAC;IACzC,MAAM,OAAO,GAAG,IAAI,qBAAqB,CAAC,EAAE,EAAE,aAAa,EAAE,eAAe,EAAE,iBAAiB,EAAE,MAAM,EAAE,OAAO,CAAC,CAAC;IAClH,OAAO,IAAA,4BAAmB,EAAC,OAAO,CAAC,CAAC;AACtC,CAAC;AAnBD,0DAmBC"}
@@ -28,8 +28,14 @@ export declare class TracedSocket<ImplementedMethods, CallableMethods, RequestCo
28
28
  private middlewareSpanByReqId;
29
29
  private lastActiveSpan;
30
30
  private tracer;
31
- constructor(ws: WebSocket, requestHandlers: MethodHandlers<ImplementedMethods, CallableMethods, RequestContext>, globalMiddlewares: GenericMiddleware<CallableMethods, RequestContext>[], tracer: Tracer, timeouts?: SocketTimeouts, logger?: {
32
- error: (message?: string) => void;
31
+ constructor(ws: WebSocket, requestHandlers: MethodHandlers<ImplementedMethods, CallableMethods, RequestContext>, globalMiddlewares: GenericMiddleware<CallableMethods, RequestContext>[], tracer: Tracer, options: {
32
+ onClose: (event: WebSocket.CloseEvent) => void;
33
+ timeouts?: SocketTimeouts;
34
+ logger?: {
35
+ error: (message?: string) => void;
36
+ info: (message?: string) => void;
37
+ warn: (message?: string) => void;
38
+ };
33
39
  });
34
40
  protected callHandler<Params, Result, CallableMethods, RequestContext extends RequestContextBase>(handler: MethodHandler<Params, Result, CallableMethods, RequestContext>, params: Params, ctx: RequestContext, client: ISocketClient<CallableMethods>, next: () => Promise<Result>): Promise<Result>;
35
41
  protected handleMessage(message: SocketMessage): Promise<void>;
@@ -38,6 +44,6 @@ export declare class TracedSocket<ImplementedMethods, CallableMethods, RequestCo
38
44
  protected respond<Result>(requestId: number, result: Result): void;
39
45
  protected respondError(requestId: number, error: SocketError, exception?: Error): void;
40
46
  private addEvent;
41
- close(): void;
47
+ close(reason?: string): void;
42
48
  }
43
49
  //# sourceMappingURL=tracedSocket.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"tracedSocket.d.ts","sourceRoot":"","sources":["../../src/socket/tracedSocket.ts"],"names":[],"mappings":"AAAA,OAAO,EASL,MAAM,EAEP,MAAM,oBAAoB,CAAC;AAE5B,OAAO,SAAS,MAAM,eAAe,CAAC;AAUtC,OAAO,EAAE,OAAO,EAAE,WAAW,EAAE,aAAa,EAAE,MAAM,UAAU,CAAC;AAC/D,OAAO,EAAE,iBAAiB,EAAE,aAAa,EAAE,aAAa,EAAE,cAAc,EAAE,kBAAkB,EAAE,cAAc,EAAE,MAAM,SAAS,CAAC;AAmC9H,qBAAa,YAAY,CAAC,kBAAkB,EAAE,eAAe,EAAE,cAAc,SAAS,kBAAkB,CAAE,SAAQ,OAAO,CACvH,kBAAkB,EAClB,eAAe,EACf,cAAc,CACf;IACC;;;;;;;;;;;;;;;;;;;;OAoBG;IACH,OAAO,CAAC,qBAAqB,CAA2B;IACxD,OAAO,CAAC,qBAAqB,CAA2B;IACxD,OAAO,CAAC,cAAc,CAAmB;IACzC,OAAO,CAAC,MAAM,CAAS;gBAGrB,EAAE,EAAE,SAAS,EACb,eAAe,EAAE,cAAc,CAAC,kBAAkB,EAAE,eAAe,EAAE,cAAc,CAAC,EACpF,iBAAiB,EAAE,iBAAiB,CAAC,eAAe,EAAE,cAAc,CAAC,EAAE,EACvE,MAAM,EAAE,MAAM,EACd,QAAQ,CAAC,EAAE,cAAc,EACzB,MAAM,CAAC,EAAE;QAAE,KAAK,EAAE,CAAC,OAAO,CAAC,EAAE,MAAM,KAAK,IAAI,CAAA;KAAE;cAMhC,WAAW,CAAC,MAAM,EAAE,MAAM,EAAE,eAAe,EAAE,cAAc,SAAS,kBAAkB,EACpG,OAAO,EAAE,aAAa,CAAC,MAAM,EAAE,MAAM,EAAE,eAAe,EAAE,cAAc,CAAC,EACvE,MAAM,EAAE,MAAM,EACd,GAAG,EAAE,cAAc,EACnB,MAAM,EAAE,aAAa,CAAC,eAAe,CAAC,EACtC,IAAI,EAAE,MAAM,OAAO,CAAC,MAAM,CAAC,GAC1B,OAAO,CAAC,MAAM,CAAC;cAkCF,aAAa,CAAC,OAAO,EAAE,aAAa,GAAG,OAAO,CAAC,IAAI,CAAC;IAqC7D,OAAO,CAAC,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,aAAa,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC;IASvG,SAAS,CAAC,cAAc,CAAC,OAAO,EAAE,aAAa,GAAG,aAAa;IAK/D,SAAS,CAAC,OAAO,CAAC,MAAM,EAAE,SAAS,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,GAAG,IAAI;IAKlE,SAAS,CAAC,YAAY,CAAC,SAAS,EAAE,MAAM,EAAE,KAAK,EAAE,WAAW,EAAE,SAAS,CAAC,EAAE,KAAK,GAAG,IAAI;IAStF,OAAO,CAAC,QAAQ;IAQT,KAAK,IAAI,IAAI;CAQrB"}
1
+ {"version":3,"file":"tracedSocket.d.ts","sourceRoot":"","sources":["../../src/socket/tracedSocket.ts"],"names":[],"mappings":"AAAA,OAAO,EASL,MAAM,EAEP,MAAM,oBAAoB,CAAC;AAE5B,OAAO,SAAS,MAAM,eAAe,CAAC;AAUtC,OAAO,EAAE,OAAO,EAAE,WAAW,EAAE,aAAa,EAAE,MAAM,UAAU,CAAC;AAC/D,OAAO,EAAE,iBAAiB,EAAE,aAAa,EAAE,aAAa,EAAE,cAAc,EAAE,kBAAkB,EAAE,cAAc,EAAE,MAAM,SAAS,CAAC;AAmC9H,qBAAa,YAAY,CAAC,kBAAkB,EAAE,eAAe,EAAE,cAAc,SAAS,kBAAkB,CAAE,SAAQ,OAAO,CACvH,kBAAkB,EAClB,eAAe,EACf,cAAc,CACf;IACC;;;;;;;;;;;;;;;;;;;;OAoBG;IACH,OAAO,CAAC,qBAAqB,CAA2B;IACxD,OAAO,CAAC,qBAAqB,CAA2B;IACxD,OAAO,CAAC,cAAc,CAAmB;IACzC,OAAO,CAAC,MAAM,CAAS;gBAGrB,EAAE,EAAE,SAAS,EACb,eAAe,EAAE,cAAc,CAAC,kBAAkB,EAAE,eAAe,EAAE,cAAc,CAAC,EACpF,iBAAiB,EAAE,iBAAiB,CAAC,eAAe,EAAE,cAAc,CAAC,EAAE,EACvE,MAAM,EAAE,MAAM,EACd,OAAO,EAAE;QACP,OAAO,EAAE,CAAC,KAAK,EAAE,SAAS,CAAC,UAAU,KAAK,IAAI,CAAC;QAC/C,QAAQ,CAAC,EAAE,cAAc,CAAC;QAC1B,MAAM,CAAC,EAAE;YAAE,KAAK,EAAE,CAAC,OAAO,CAAC,EAAE,MAAM,KAAK,IAAI,CAAC;YAAC,IAAI,EAAE,CAAC,OAAO,CAAC,EAAE,MAAM,KAAK,IAAI,CAAC;YAAC,IAAI,EAAE,CAAC,OAAO,CAAC,EAAE,MAAM,KAAK,IAAI,CAAA;SAAE,CAAC;KACpH;cAMa,WAAW,CAAC,MAAM,EAAE,MAAM,EAAE,eAAe,EAAE,cAAc,SAAS,kBAAkB,EACpG,OAAO,EAAE,aAAa,CAAC,MAAM,EAAE,MAAM,EAAE,eAAe,EAAE,cAAc,CAAC,EACvE,MAAM,EAAE,MAAM,EACd,GAAG,EAAE,cAAc,EACnB,MAAM,EAAE,aAAa,CAAC,eAAe,CAAC,EACtC,IAAI,EAAE,MAAM,OAAO,CAAC,MAAM,CAAC,GAC1B,OAAO,CAAC,MAAM,CAAC;cAkCF,aAAa,CAAC,OAAO,EAAE,aAAa,GAAG,OAAO,CAAC,IAAI,CAAC;IAqC7D,OAAO,CAAC,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,aAAa,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC;IASvG,SAAS,CAAC,cAAc,CAAC,OAAO,EAAE,aAAa,GAAG,aAAa;IAK/D,SAAS,CAAC,OAAO,CAAC,MAAM,EAAE,SAAS,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,GAAG,IAAI;IAKlE,SAAS,CAAC,YAAY,CAAC,SAAS,EAAE,MAAM,EAAE,KAAK,EAAE,WAAW,EAAE,SAAS,CAAC,EAAE,KAAK,GAAG,IAAI;IAStF,OAAO,CAAC,QAAQ;IAQT,KAAK,CAAC,MAAM,CAAC,EAAE,MAAM,GAAG,IAAI;CAQpC"}
@@ -38,8 +38,8 @@ function setHttpStatusFromError(span, error) {
38
38
  span.setStatus({ code: api_1.SpanStatusCode.ERROR, message: error.message });
39
39
  }
40
40
  class TracedSocket extends socket_1.ISocket {
41
- constructor(ws, requestHandlers, globalMiddlewares, tracer, timeouts, logger) {
42
- super(ws, requestHandlers, globalMiddlewares, timeouts, logger);
41
+ constructor(ws, requestHandlers, globalMiddlewares, tracer, options) {
42
+ super(ws, requestHandlers, globalMiddlewares, options);
43
43
  /**
44
44
  * The TracedSocket class extends the ISocket class to add tracing capabilities for each connection. It manages
45
45
  * spans for handler calls to provide detailed tracing information.
@@ -154,13 +154,13 @@ class TracedSocket extends socket_1.ISocket {
154
154
  this.lastActiveSpan.addEvent(eventName, attributes, new Date());
155
155
  }
156
156
  }
157
- close() {
157
+ close(reason) {
158
158
  for (const span of this.activeSpanByRequestId.values()) {
159
159
  span.end();
160
160
  }
161
161
  this.activeSpanByRequestId = new Map();
162
162
  this.lastActiveSpan = undefined;
163
- super.close();
163
+ super.close(reason);
164
164
  }
165
165
  }
166
166
  exports.TracedSocket = TracedSocket;
@@ -1 +1 @@
1
- {"version":3,"file":"tracedSocket.js","sourceRoot":"","sources":["../../src/socket/tracedSocket.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"tracedSocket.js","sourceRoot":"","sources":["../../src/socket/tracedSocket.ts"],"names":[],"mappings":"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"}
@@ -21,6 +21,7 @@ export interface SocketError {
21
21
  message: string;
22
22
  code: number;
23
23
  }
24
+ export declare const INTENTIONAL_CLOSE_CODE = 4001;
24
25
  /**
25
26
  * ISocket is a class that wraps a WebSocket connection and provides a simple interface for sending and receiving messages.
26
27
  * ISocket is initialized by both server and client and request/response is called symmetrically.
@@ -44,10 +45,28 @@ export declare class ISocket<ImplementedMethods, CallableMethods, RequestContext
44
45
  private connectionTimeout;
45
46
  protected logger: {
46
47
  error: (message?: string) => void;
48
+ info: (message?: string) => void;
49
+ warn: (message?: string) => void;
47
50
  };
48
51
  private timeouts?;
49
- constructor(ws: WebSocket, requestHandlers: MethodHandlers<ImplementedMethods, CallableMethods, RequestContext>, globalMiddlewares: GenericMiddleware<CallableMethods, RequestContext>[], timeouts?: SocketTimeouts, logger?: {
50
- error: (message?: string) => void;
52
+ private isClosed;
53
+ constructor(ws: WebSocket, requestHandlers: MethodHandlers<ImplementedMethods, CallableMethods, RequestContext>, globalMiddlewares: GenericMiddleware<CallableMethods, RequestContext>[], options: {
54
+ /**
55
+ * This callback is called when the WebSocket connection is closed,
56
+ * either with a close handshake or immediately if the connection is dropped
57
+ *
58
+ * If code is INTENTIONAL_CLOSE_CODE, it was closed due to an internal timeout.
59
+ * Otherwise, the other side closed the connection.
60
+ *
61
+ * @param event - The WebSocket.CloseEvent object.
62
+ */
63
+ onClose: (event: WebSocket.CloseEvent) => void;
64
+ timeouts?: SocketTimeouts;
65
+ logger?: {
66
+ error: (message?: string) => void;
67
+ info: (message?: string) => void;
68
+ warn: (message?: string) => void;
69
+ };
51
70
  });
52
71
  protected handleMessage(message: SocketMessage): Promise<void>;
53
72
  protected callHandler<Params, Result, CallableMethods, RequestContext extends RequestContextBase>(handler: MethodHandler<Params, Result, CallableMethods, RequestContext>, params: Params, ctx: RequestContext, client: ISocketClient<CallableMethods>, next: () => Promise<Result>): Promise<Result>;
@@ -59,7 +78,7 @@ export declare class ISocket<ImplementedMethods, CallableMethods, RequestContext
59
78
  private handleConnectionTimeout;
60
79
  private resetNoResponseTimeout;
61
80
  private handleNoResponseTimeout;
62
- close(): void;
81
+ close(reason?: string): void;
63
82
  }
64
83
  export declare function createISocketClient<CallableMethods, ImplementedMethods, RequestContext extends RequestContextBase>(socket: ISocket<ImplementedMethods, CallableMethods, RequestContext>): ISocketClient<CallableMethods>;
65
84
  export {};
@@ -1 +1 @@
1
- {"version":3,"file":"socket.d.ts","sourceRoot":"","sources":["../../src/socket/socket.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"socket.d.ts","sourceRoot":"","sources":["../../src/socket/socket.ts"],"names":[],"mappings":"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"}
@@ -1,4 +1,7 @@
1
1
  import { SocketErrorException } from './types';
2
+ // Codes in the 4000s are left available by IETF
3
+ // https://datatracker.ietf.org/doc/html/rfc6455#section-7.4.2
4
+ export const INTENTIONAL_CLOSE_CODE = 4001;
2
5
  /**
3
6
  * ISocket is a class that wraps a WebSocket connection and provides a simple interface for sending and receiving messages.
4
7
  * ISocket is initialized by both server and client and request/response is called symmetrically.
@@ -13,23 +16,50 @@ import { SocketErrorException } from './types';
13
16
  * It is expected that timeouts should be relatively sorted in the order of connection timeout > request timeout > no response timeout.
14
17
  */
15
18
  export class ISocket {
16
- constructor(ws, requestHandlers, globalMiddlewares, timeouts, logger) {
19
+ constructor(ws, requestHandlers, globalMiddlewares, options) {
17
20
  this.responseHandler = new Map();
21
+ this.isClosed = false;
18
22
  this.ws = ws;
19
23
  this.requestHandlers = requestHandlers;
20
24
  this.globalMiddlewares = globalMiddlewares;
21
25
  this.nxtRequestId = 0;
22
- this.logger = logger ?? { error: console.error };
23
- this.timeouts = timeouts;
26
+ this.logger = this.logger ?? {
27
+ error: console.error,
28
+ warn: console.warn,
29
+ info: console.info
30
+ };
31
+ this.timeouts = options.timeouts;
24
32
  // reset connection timeout in each message received. It means connection still active
25
33
  this.resetConnectionTimeout();
26
- // eslint-disable-next-line @typescript-eslint/no-misused-promises
27
- this.ws.addEventListener('message', async (event) => {
28
- const eventData = JSON.parse(event.data.toString());
29
- return this.handleMessage(eventData);
34
+ this.ws.addEventListener('message', (event) => {
35
+ try {
36
+ const eventData = JSON.parse(event.data.toString());
37
+ void this.handleMessage(eventData);
38
+ }
39
+ catch (error) {
40
+ this.logger.error(`Error parsing message: ${error}`);
41
+ }
42
+ });
43
+ this.ws.addEventListener('close', (event) => {
44
+ this.isClosed = true;
45
+ if (event.code !== INTENTIONAL_CLOSE_CODE) {
46
+ // Reject any pending responses that happen after the close handshake,
47
+ // which shouldn't be possible
48
+ this.responseHandler.forEach((handler, key) => {
49
+ clearTimeout(handler.timeout);
50
+ this.logger.error(`Rejecting pending requestId ${key} due to connection close`);
51
+ handler.reject({ code: 8, message: 'Connection closed' });
52
+ });
53
+ this.responseHandler.clear();
54
+ }
55
+ options.onClose(event);
30
56
  });
31
57
  }
32
58
  async handleMessage(message) {
59
+ if (this.isClosed) {
60
+ this.logger.error('Connection closed, ignoring message');
61
+ return;
62
+ }
33
63
  this.resetConnectionTimeout();
34
64
  if (message.request) {
35
65
  // Split the method string into parts
@@ -115,6 +145,11 @@ export class ISocket {
115
145
  return handler(params, ctx, client, next);
116
146
  }
117
147
  request(method, params, authorization) {
148
+ if (this.isClosed) {
149
+ // Sockets normally will silently accept requests after the close handshake,
150
+ // but we want to reject them to avoid confusion
151
+ return Promise.reject(new SocketErrorException(10, 'Connection closed'));
152
+ }
118
153
  return new Promise((resolve, reject) => {
119
154
  const requestId = ++this.nxtRequestId;
120
155
  this.responseHandler.set(requestId, {
@@ -163,8 +198,7 @@ export class ISocket {
163
198
  }
164
199
  handleConnectionTimeout() {
165
200
  return () => {
166
- this.logger.error(`Connection timed out after ${this.timeouts?.connectionTimeoutInSeconds} seconds`);
167
- this.close();
201
+ this.close('Connection timeout');
168
202
  };
169
203
  }
170
204
  resetNoResponseTimeout(requestId) {
@@ -190,14 +224,10 @@ export class ISocket {
190
224
  reject({ code: 7, message });
191
225
  };
192
226
  }
193
- close() {
194
- clearTimeout(this.connectionTimeout);
195
- this.responseHandler.forEach((handler, key) => {
196
- clearTimeout(handler.timeout);
197
- this.logger.error(`Rejecting pending requestId ${key} due to connection close`);
198
- handler.reject({ code: 8, message: 'Connection closed' });
199
- });
200
- this.ws.close();
227
+ close(reason) {
228
+ // Starts close handshake without clearing in-progress requests
229
+ // see https://developer.mozilla.org/en-US/docs/Web/API/WebSocket/close
230
+ this.ws.close(INTENTIONAL_CLOSE_CODE, reason);
201
231
  }
202
232
  }
203
233
  const proxyTarget = Object.freeze(() => {
@@ -231,7 +261,7 @@ path) {
231
261
  }
232
262
  export function createISocketClient(socket) {
233
263
  return {
234
- close: () => socket.close(),
264
+ close: (reason) => socket.close(reason),
235
265
  // eslint-disable-next-line @typescript-eslint/no-explicit-any
236
266
  call: createIsocketProxy(socket, undefined)
237
267
  };
@@ -1 +1 @@
1
- {"version":3,"file":"socket.js","sourceRoot":"","sources":["../../src/socket/socket.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"socket.js","sourceRoot":"","sources":["../../src/socket/socket.ts"],"names":[],"mappings":"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"}
@@ -5,8 +5,28 @@ import { GenericMiddleware, ISocketClient, MethodHandlers, RequestContextBase, S
5
5
  export declare class ISocketWithClientAuth<ImplementedMethods, CallableMethods, RequestContext extends RequestContextBase> extends TracedSocket<ImplementedMethods, CallableMethods, RequestContext> {
6
6
  private readonly authorization?;
7
7
  private hasSentAuth;
8
- constructor(ws: WebSocket, authorization: string | undefined, requestHandlers: MethodHandlers<ImplementedMethods, CallableMethods, RequestContext>, globalMiddlewares: GenericMiddleware<CallableMethods, RequestContext>[], tracer: Tracer, timeouts?: SocketTimeouts);
8
+ constructor(ws: WebSocket, authorization: string | undefined, requestHandlers: MethodHandlers<ImplementedMethods, CallableMethods, RequestContext>, globalMiddlewares: GenericMiddleware<CallableMethods, RequestContext>[], tracer: Tracer, options: {
9
+ onClose: (event: WebSocket.CloseEvent) => void;
10
+ timeouts?: SocketTimeouts;
11
+ logger?: {
12
+ error: (message?: string) => void;
13
+ info: (message?: string) => void;
14
+ warn: (message?: string) => void;
15
+ };
16
+ });
9
17
  request<Params, Result>(method: string, params: Params): Promise<Result>;
10
18
  }
11
- export declare function connectISocket<CallableMethods, ImplementedMethods, RequestContext extends RequestContextBase = RequestContextBase>(wsUrl: string, authorization: string | undefined, requestHandlers: MethodHandlers<ImplementedMethods, CallableMethods, RequestContext>, globalMiddlewares: GenericMiddleware<CallableMethods, RequestContext>[], tracer: Tracer, timeouts?: SocketTimeouts): Promise<ISocketClient<CallableMethods>>;
19
+ /**
20
+ * Creates a new socket for a set of operations, without any retry behavior
21
+ * If the requests fail, the promise will reject.
22
+ */
23
+ export declare function connectSingleUseISocket<CallableMethods, ImplementedMethods, RequestContext extends RequestContextBase = RequestContextBase>(wsUrl: string, authorization: string | undefined, requestHandlers: MethodHandlers<ImplementedMethods, CallableMethods, RequestContext>, globalMiddlewares: GenericMiddleware<CallableMethods, RequestContext>[], tracer: Tracer, options: {
24
+ onClose: (event: WebSocket.CloseEvent) => void;
25
+ timeouts?: SocketTimeouts;
26
+ logger?: {
27
+ error: (message?: string) => void;
28
+ info: (message?: string) => void;
29
+ warn: (message?: string) => void;
30
+ };
31
+ }): Promise<ISocketClient<CallableMethods>>;
12
32
  //# sourceMappingURL=socketWithClientAuth.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"socketWithClientAuth.d.ts","sourceRoot":"","sources":["../../src/socket/socketWithClientAuth.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,EAAE,MAAM,oBAAoB,CAAC;AAC5C,OAAO,SAAS,MAAM,eAAe,CAAC;AAEtC,OAAO,EAAE,YAAY,EAAE,MAAM,gBAAgB,CAAC;AAC9C,OAAO,EAAE,iBAAiB,EAAE,aAAa,EAAE,cAAc,EAAE,kBAAkB,EAAE,cAAc,EAAE,MAAM,SAAS,CAAC;AAM/G,qBAAa,qBAAqB,CAAC,kBAAkB,EAAE,eAAe,EAAE,cAAc,SAAS,kBAAkB,CAAE,SAAQ,YAAY,CACrI,kBAAkB,EAClB,eAAe,EACf,cAAc,CACf;IACC,OAAO,CAAC,QAAQ,CAAC,aAAa,CAAC,CAAS;IACxC,OAAO,CAAC,WAAW,CAAS;gBAG1B,EAAE,EAAE,SAAS,EACb,aAAa,EAAE,MAAM,GAAG,SAAS,EACjC,eAAe,EAAE,cAAc,CAAC,kBAAkB,EAAE,eAAe,EAAE,cAAc,CAAC,EACpF,iBAAiB,EAAE,iBAAiB,CAAC,eAAe,EAAE,cAAc,CAAC,EAAE,EACvE,MAAM,EAAE,MAAM,EACd,QAAQ,CAAC,EAAE,cAAc;IAOrB,OAAO,CAAC,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC;CAO/E;AAED,wBAAsB,cAAc,CAAC,eAAe,EAAE,kBAAkB,EAAE,cAAc,SAAS,kBAAkB,GAAG,kBAAkB,EACtI,KAAK,EAAE,MAAM,EACb,aAAa,EAAE,MAAM,GAAG,SAAS,EACjC,eAAe,EAAE,cAAc,CAAC,kBAAkB,EAAE,eAAe,EAAE,cAAc,CAAC,EACpF,iBAAiB,EAAE,iBAAiB,CAAC,eAAe,EAAE,cAAc,CAAC,EAAE,EACvE,MAAM,EAAE,MAAM,EACd,QAAQ,CAAC,EAAE,cAAc,GACxB,OAAO,CAAC,aAAa,CAAC,eAAe,CAAC,CAAC,CAIzC"}
1
+ {"version":3,"file":"socketWithClientAuth.d.ts","sourceRoot":"","sources":["../../src/socket/socketWithClientAuth.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,EAAE,MAAM,oBAAoB,CAAC;AAC5C,OAAO,SAAS,MAAM,eAAe,CAAC;AAEtC,OAAO,EAAE,YAAY,EAAE,MAAM,gBAAgB,CAAC;AAC9C,OAAO,EAAE,iBAAiB,EAAE,aAAa,EAAE,cAAc,EAAE,kBAAkB,EAAE,cAAc,EAAE,MAAM,SAAS,CAAC;AAM/G,qBAAa,qBAAqB,CAAC,kBAAkB,EAAE,eAAe,EAAE,cAAc,SAAS,kBAAkB,CAAE,SAAQ,YAAY,CACrI,kBAAkB,EAClB,eAAe,EACf,cAAc,CACf;IACC,OAAO,CAAC,QAAQ,CAAC,aAAa,CAAC,CAAS;IACxC,OAAO,CAAC,WAAW,CAAS;gBAG1B,EAAE,EAAE,SAAS,EACb,aAAa,EAAE,MAAM,GAAG,SAAS,EACjC,eAAe,EAAE,cAAc,CAAC,kBAAkB,EAAE,eAAe,EAAE,cAAc,CAAC,EACpF,iBAAiB,EAAE,iBAAiB,CAAC,eAAe,EAAE,cAAc,CAAC,EAAE,EACvE,MAAM,EAAE,MAAM,EACd,OAAO,EAAE;QACP,OAAO,EAAE,CAAC,KAAK,EAAE,SAAS,CAAC,UAAU,KAAK,IAAI,CAAC;QAC/C,QAAQ,CAAC,EAAE,cAAc,CAAC;QAC1B,MAAM,CAAC,EAAE;YAAE,KAAK,EAAE,CAAC,OAAO,CAAC,EAAE,MAAM,KAAK,IAAI,CAAC;YAAC,IAAI,EAAE,CAAC,OAAO,CAAC,EAAE,MAAM,KAAK,IAAI,CAAC;YAAC,IAAI,EAAE,CAAC,OAAO,CAAC,EAAE,MAAM,KAAK,IAAI,CAAA;SAAE,CAAC;KACpH;IAOG,OAAO,CAAC,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC;CAO/E;AAED;;;GAGG;AACH,wBAAsB,uBAAuB,CAC3C,eAAe,EACf,kBAAkB,EAClB,cAAc,SAAS,kBAAkB,GAAG,kBAAkB,EAE9D,KAAK,EAAE,MAAM,EACb,aAAa,EAAE,MAAM,GAAG,SAAS,EACjC,eAAe,EAAE,cAAc,CAAC,kBAAkB,EAAE,eAAe,EAAE,cAAc,CAAC,EACpF,iBAAiB,EAAE,iBAAiB,CAAC,eAAe,EAAE,cAAc,CAAC,EAAE,EACvE,MAAM,EAAE,MAAM,EACd,OAAO,EAAE;IACP,OAAO,EAAE,CAAC,KAAK,EAAE,SAAS,CAAC,UAAU,KAAK,IAAI,CAAC;IAC/C,QAAQ,CAAC,EAAE,cAAc,CAAC;IAC1B,MAAM,CAAC,EAAE;QAAE,KAAK,EAAE,CAAC,OAAO,CAAC,EAAE,MAAM,KAAK,IAAI,CAAC;QAAC,IAAI,EAAE,CAAC,OAAO,CAAC,EAAE,MAAM,KAAK,IAAI,CAAC;QAAC,IAAI,EAAE,CAAC,OAAO,CAAC,EAAE,MAAM,KAAK,IAAI,CAAA;KAAE,CAAC;CACpH,GACA,OAAO,CAAC,aAAa,CAAC,eAAe,CAAC,CAAC,CAIzC"}
@@ -5,8 +5,8 @@ import { connectWebSocket } from './util';
5
5
  // this is useful for client-side sockets that need to authenticate
6
6
  // TODO(george): if we start using this for long-lived connections, we should add a way to refresh the token
7
7
  export class ISocketWithClientAuth extends TracedSocket {
8
- constructor(ws, authorization, requestHandlers, globalMiddlewares, tracer, timeouts) {
9
- super(ws, requestHandlers, globalMiddlewares, tracer, timeouts);
8
+ constructor(ws, authorization, requestHandlers, globalMiddlewares, tracer, options) {
9
+ super(ws, requestHandlers, globalMiddlewares, tracer, options);
10
10
  this.hasSentAuth = false;
11
11
  this.authorization = authorization;
12
12
  }
@@ -19,9 +19,13 @@ export class ISocketWithClientAuth extends TracedSocket {
19
19
  return result;
20
20
  }
21
21
  }
22
- export async function connectISocket(wsUrl, authorization, requestHandlers, globalMiddlewares, tracer, timeouts) {
22
+ /**
23
+ * Creates a new socket for a set of operations, without any retry behavior
24
+ * If the requests fail, the promise will reject.
25
+ */
26
+ export async function connectSingleUseISocket(wsUrl, authorization, requestHandlers, globalMiddlewares, tracer, options) {
23
27
  const ws = await connectWebSocket(wsUrl);
24
- const isocket = new ISocketWithClientAuth(ws, authorization, requestHandlers, globalMiddlewares, tracer, timeouts);
28
+ const isocket = new ISocketWithClientAuth(ws, authorization, requestHandlers, globalMiddlewares, tracer, options);
25
29
  return createISocketClient(isocket);
26
30
  }
27
31
  //# sourceMappingURL=socketWithClientAuth.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"socketWithClientAuth.js","sourceRoot":"","sources":["../../src/socket/socketWithClientAuth.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,mBAAmB,EAAE,MAAM,UAAU,CAAC;AAC/C,OAAO,EAAE,YAAY,EAAE,MAAM,gBAAgB,CAAC;AAE9C,OAAO,EAAE,gBAAgB,EAAE,MAAM,QAAQ,CAAC;AAE1C,sEAAsE;AACtE,mEAAmE;AACnE,4GAA4G;AAC5G,MAAM,OAAO,qBAAsG,SAAQ,YAI1H;IAIC,YACE,EAAa,EACb,aAAiC,EACjC,eAAoF,EACpF,iBAAuE,EACvE,MAAc,EACd,QAAyB;QAEzB,KAAK,CAAC,EAAE,EAAE,eAAe,EAAE,iBAAiB,EAAE,MAAM,EAAE,QAAQ,CAAC,CAAC;QAV1D,gBAAW,GAAG,KAAK,CAAC;QAW1B,IAAI,CAAC,aAAa,GAAG,aAAa,CAAC;IACrC,CAAC;IAED,kFAAkF;IAClF,KAAK,CAAC,OAAO,CAAiB,MAAc,EAAE,MAAc;QAC1D,iDAAiD;QACjD,MAAM,aAAa,GAAG,IAAI,CAAC,WAAW,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,IAAI,CAAC,aAAa,CAAC;QACxE,MAAM,MAAM,GAAG,MAAM,KAAK,CAAC,OAAO,CAAiB,MAAM,EAAE,MAAM,EAAE,aAAa,CAAC,CAAC;QAClF,IAAI,CAAC,WAAW,GAAG,IAAI,CAAC;QACxB,OAAO,MAAM,CAAC;IAChB,CAAC;CACF;AAED,MAAM,CAAC,KAAK,UAAU,cAAc,CAClC,KAAa,EACb,aAAiC,EACjC,eAAoF,EACpF,iBAAuE,EACvE,MAAc,EACd,QAAyB;IAEzB,MAAM,EAAE,GAAG,MAAM,gBAAgB,CAAC,KAAK,CAAC,CAAC;IACzC,MAAM,OAAO,GAAG,IAAI,qBAAqB,CAAC,EAAE,EAAE,aAAa,EAAE,eAAe,EAAE,iBAAiB,EAAE,MAAM,EAAE,QAAQ,CAAC,CAAC;IACnH,OAAO,mBAAmB,CAAC,OAAO,CAAC,CAAC;AACtC,CAAC"}
1
+ {"version":3,"file":"socketWithClientAuth.js","sourceRoot":"","sources":["../../src/socket/socketWithClientAuth.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,mBAAmB,EAAE,MAAM,UAAU,CAAC;AAC/C,OAAO,EAAE,YAAY,EAAE,MAAM,gBAAgB,CAAC;AAE9C,OAAO,EAAE,gBAAgB,EAAE,MAAM,QAAQ,CAAC;AAE1C,sEAAsE;AACtE,mEAAmE;AACnE,4GAA4G;AAC5G,MAAM,OAAO,qBAAsG,SAAQ,YAI1H;IAIC,YACE,EAAa,EACb,aAAiC,EACjC,eAAoF,EACpF,iBAAuE,EACvE,MAAc,EACd,OAIC;QAED,KAAK,CAAC,EAAE,EAAE,eAAe,EAAE,iBAAiB,EAAE,MAAM,EAAE,OAAO,CAAC,CAAC;QAdzD,gBAAW,GAAG,KAAK,CAAC;QAe1B,IAAI,CAAC,aAAa,GAAG,aAAa,CAAC;IACrC,CAAC;IAED,kFAAkF;IAClF,KAAK,CAAC,OAAO,CAAiB,MAAc,EAAE,MAAc;QAC1D,iDAAiD;QACjD,MAAM,aAAa,GAAG,IAAI,CAAC,WAAW,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,IAAI,CAAC,aAAa,CAAC;QACxE,MAAM,MAAM,GAAG,MAAM,KAAK,CAAC,OAAO,CAAiB,MAAM,EAAE,MAAM,EAAE,aAAa,CAAC,CAAC;QAClF,IAAI,CAAC,WAAW,GAAG,IAAI,CAAC;QACxB,OAAO,MAAM,CAAC;IAChB,CAAC;CACF;AAED;;;GAGG;AACH,MAAM,CAAC,KAAK,UAAU,uBAAuB,CAK3C,KAAa,EACb,aAAiC,EACjC,eAAoF,EACpF,iBAAuE,EACvE,MAAc,EACd,OAIC;IAED,MAAM,EAAE,GAAG,MAAM,gBAAgB,CAAC,KAAK,CAAC,CAAC;IACzC,MAAM,OAAO,GAAG,IAAI,qBAAqB,CAAC,EAAE,EAAE,aAAa,EAAE,eAAe,EAAE,iBAAiB,EAAE,MAAM,EAAE,OAAO,CAAC,CAAC;IAClH,OAAO,mBAAmB,CAAC,OAAO,CAAC,CAAC;AACtC,CAAC"}
@@ -28,8 +28,14 @@ export declare class TracedSocket<ImplementedMethods, CallableMethods, RequestCo
28
28
  private middlewareSpanByReqId;
29
29
  private lastActiveSpan;
30
30
  private tracer;
31
- constructor(ws: WebSocket, requestHandlers: MethodHandlers<ImplementedMethods, CallableMethods, RequestContext>, globalMiddlewares: GenericMiddleware<CallableMethods, RequestContext>[], tracer: Tracer, timeouts?: SocketTimeouts, logger?: {
32
- error: (message?: string) => void;
31
+ constructor(ws: WebSocket, requestHandlers: MethodHandlers<ImplementedMethods, CallableMethods, RequestContext>, globalMiddlewares: GenericMiddleware<CallableMethods, RequestContext>[], tracer: Tracer, options: {
32
+ onClose: (event: WebSocket.CloseEvent) => void;
33
+ timeouts?: SocketTimeouts;
34
+ logger?: {
35
+ error: (message?: string) => void;
36
+ info: (message?: string) => void;
37
+ warn: (message?: string) => void;
38
+ };
33
39
  });
34
40
  protected callHandler<Params, Result, CallableMethods, RequestContext extends RequestContextBase>(handler: MethodHandler<Params, Result, CallableMethods, RequestContext>, params: Params, ctx: RequestContext, client: ISocketClient<CallableMethods>, next: () => Promise<Result>): Promise<Result>;
35
41
  protected handleMessage(message: SocketMessage): Promise<void>;
@@ -38,6 +44,6 @@ export declare class TracedSocket<ImplementedMethods, CallableMethods, RequestCo
38
44
  protected respond<Result>(requestId: number, result: Result): void;
39
45
  protected respondError(requestId: number, error: SocketError, exception?: Error): void;
40
46
  private addEvent;
41
- close(): void;
47
+ close(reason?: string): void;
42
48
  }
43
49
  //# sourceMappingURL=tracedSocket.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"tracedSocket.d.ts","sourceRoot":"","sources":["../../src/socket/tracedSocket.ts"],"names":[],"mappings":"AAAA,OAAO,EASL,MAAM,EAEP,MAAM,oBAAoB,CAAC;AAE5B,OAAO,SAAS,MAAM,eAAe,CAAC;AAUtC,OAAO,EAAE,OAAO,EAAE,WAAW,EAAE,aAAa,EAAE,MAAM,UAAU,CAAC;AAC/D,OAAO,EAAE,iBAAiB,EAAE,aAAa,EAAE,aAAa,EAAE,cAAc,EAAE,kBAAkB,EAAE,cAAc,EAAE,MAAM,SAAS,CAAC;AAmC9H,qBAAa,YAAY,CAAC,kBAAkB,EAAE,eAAe,EAAE,cAAc,SAAS,kBAAkB,CAAE,SAAQ,OAAO,CACvH,kBAAkB,EAClB,eAAe,EACf,cAAc,CACf;IACC;;;;;;;;;;;;;;;;;;;;OAoBG;IACH,OAAO,CAAC,qBAAqB,CAA2B;IACxD,OAAO,CAAC,qBAAqB,CAA2B;IACxD,OAAO,CAAC,cAAc,CAAmB;IACzC,OAAO,CAAC,MAAM,CAAS;gBAGrB,EAAE,EAAE,SAAS,EACb,eAAe,EAAE,cAAc,CAAC,kBAAkB,EAAE,eAAe,EAAE,cAAc,CAAC,EACpF,iBAAiB,EAAE,iBAAiB,CAAC,eAAe,EAAE,cAAc,CAAC,EAAE,EACvE,MAAM,EAAE,MAAM,EACd,QAAQ,CAAC,EAAE,cAAc,EACzB,MAAM,CAAC,EAAE;QAAE,KAAK,EAAE,CAAC,OAAO,CAAC,EAAE,MAAM,KAAK,IAAI,CAAA;KAAE;cAMhC,WAAW,CAAC,MAAM,EAAE,MAAM,EAAE,eAAe,EAAE,cAAc,SAAS,kBAAkB,EACpG,OAAO,EAAE,aAAa,CAAC,MAAM,EAAE,MAAM,EAAE,eAAe,EAAE,cAAc,CAAC,EACvE,MAAM,EAAE,MAAM,EACd,GAAG,EAAE,cAAc,EACnB,MAAM,EAAE,aAAa,CAAC,eAAe,CAAC,EACtC,IAAI,EAAE,MAAM,OAAO,CAAC,MAAM,CAAC,GAC1B,OAAO,CAAC,MAAM,CAAC;cAkCF,aAAa,CAAC,OAAO,EAAE,aAAa,GAAG,OAAO,CAAC,IAAI,CAAC;IAqC7D,OAAO,CAAC,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,aAAa,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC;IASvG,SAAS,CAAC,cAAc,CAAC,OAAO,EAAE,aAAa,GAAG,aAAa;IAK/D,SAAS,CAAC,OAAO,CAAC,MAAM,EAAE,SAAS,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,GAAG,IAAI;IAKlE,SAAS,CAAC,YAAY,CAAC,SAAS,EAAE,MAAM,EAAE,KAAK,EAAE,WAAW,EAAE,SAAS,CAAC,EAAE,KAAK,GAAG,IAAI;IAStF,OAAO,CAAC,QAAQ;IAQT,KAAK,IAAI,IAAI;CAQrB"}
1
+ {"version":3,"file":"tracedSocket.d.ts","sourceRoot":"","sources":["../../src/socket/tracedSocket.ts"],"names":[],"mappings":"AAAA,OAAO,EASL,MAAM,EAEP,MAAM,oBAAoB,CAAC;AAE5B,OAAO,SAAS,MAAM,eAAe,CAAC;AAUtC,OAAO,EAAE,OAAO,EAAE,WAAW,EAAE,aAAa,EAAE,MAAM,UAAU,CAAC;AAC/D,OAAO,EAAE,iBAAiB,EAAE,aAAa,EAAE,aAAa,EAAE,cAAc,EAAE,kBAAkB,EAAE,cAAc,EAAE,MAAM,SAAS,CAAC;AAmC9H,qBAAa,YAAY,CAAC,kBAAkB,EAAE,eAAe,EAAE,cAAc,SAAS,kBAAkB,CAAE,SAAQ,OAAO,CACvH,kBAAkB,EAClB,eAAe,EACf,cAAc,CACf;IACC;;;;;;;;;;;;;;;;;;;;OAoBG;IACH,OAAO,CAAC,qBAAqB,CAA2B;IACxD,OAAO,CAAC,qBAAqB,CAA2B;IACxD,OAAO,CAAC,cAAc,CAAmB;IACzC,OAAO,CAAC,MAAM,CAAS;gBAGrB,EAAE,EAAE,SAAS,EACb,eAAe,EAAE,cAAc,CAAC,kBAAkB,EAAE,eAAe,EAAE,cAAc,CAAC,EACpF,iBAAiB,EAAE,iBAAiB,CAAC,eAAe,EAAE,cAAc,CAAC,EAAE,EACvE,MAAM,EAAE,MAAM,EACd,OAAO,EAAE;QACP,OAAO,EAAE,CAAC,KAAK,EAAE,SAAS,CAAC,UAAU,KAAK,IAAI,CAAC;QAC/C,QAAQ,CAAC,EAAE,cAAc,CAAC;QAC1B,MAAM,CAAC,EAAE;YAAE,KAAK,EAAE,CAAC,OAAO,CAAC,EAAE,MAAM,KAAK,IAAI,CAAC;YAAC,IAAI,EAAE,CAAC,OAAO,CAAC,EAAE,MAAM,KAAK,IAAI,CAAC;YAAC,IAAI,EAAE,CAAC,OAAO,CAAC,EAAE,MAAM,KAAK,IAAI,CAAA;SAAE,CAAC;KACpH;cAMa,WAAW,CAAC,MAAM,EAAE,MAAM,EAAE,eAAe,EAAE,cAAc,SAAS,kBAAkB,EACpG,OAAO,EAAE,aAAa,CAAC,MAAM,EAAE,MAAM,EAAE,eAAe,EAAE,cAAc,CAAC,EACvE,MAAM,EAAE,MAAM,EACd,GAAG,EAAE,cAAc,EACnB,MAAM,EAAE,aAAa,CAAC,eAAe,CAAC,EACtC,IAAI,EAAE,MAAM,OAAO,CAAC,MAAM,CAAC,GAC1B,OAAO,CAAC,MAAM,CAAC;cAkCF,aAAa,CAAC,OAAO,EAAE,aAAa,GAAG,OAAO,CAAC,IAAI,CAAC;IAqC7D,OAAO,CAAC,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,aAAa,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC;IASvG,SAAS,CAAC,cAAc,CAAC,OAAO,EAAE,aAAa,GAAG,aAAa;IAK/D,SAAS,CAAC,OAAO,CAAC,MAAM,EAAE,SAAS,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,GAAG,IAAI;IAKlE,SAAS,CAAC,YAAY,CAAC,SAAS,EAAE,MAAM,EAAE,KAAK,EAAE,WAAW,EAAE,SAAS,CAAC,EAAE,KAAK,GAAG,IAAI;IAStF,OAAO,CAAC,QAAQ;IAQT,KAAK,CAAC,MAAM,CAAC,EAAE,MAAM,GAAG,IAAI;CAQpC"}
@@ -35,8 +35,8 @@ function setHttpStatusFromError(span, error) {
35
35
  span.setStatus({ code: SpanStatusCode.ERROR, message: error.message });
36
36
  }
37
37
  export class TracedSocket extends ISocket {
38
- constructor(ws, requestHandlers, globalMiddlewares, tracer, timeouts, logger) {
39
- super(ws, requestHandlers, globalMiddlewares, timeouts, logger);
38
+ constructor(ws, requestHandlers, globalMiddlewares, tracer, options) {
39
+ super(ws, requestHandlers, globalMiddlewares, options);
40
40
  /**
41
41
  * The TracedSocket class extends the ISocket class to add tracing capabilities for each connection. It manages
42
42
  * spans for handler calls to provide detailed tracing information.
@@ -151,13 +151,13 @@ export class TracedSocket extends ISocket {
151
151
  this.lastActiveSpan.addEvent(eventName, attributes, new Date());
152
152
  }
153
153
  }
154
- close() {
154
+ close(reason) {
155
155
  for (const span of this.activeSpanByRequestId.values()) {
156
156
  span.end();
157
157
  }
158
158
  this.activeSpanByRequestId = new Map();
159
159
  this.lastActiveSpan = undefined;
160
- super.close();
160
+ super.close(reason);
161
161
  }
162
162
  }
163
163
  //# sourceMappingURL=tracedSocket.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"tracedSocket.js","sourceRoot":"","sources":["../../src/socket/tracedSocket.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"tracedSocket.js","sourceRoot":"","sources":["../../src/socket/tracedSocket.ts"],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@superblocksteam/shared",
3
- "version": "0.9147.0",
3
+ "version": "0.9148.0",
4
4
  "description": "Superblocks Shared Resources",
5
5
  "repository": "https://github.com/superblocksteam/shared.git",
6
6
  "license": "Superblocks Community Software License",
@@ -34,6 +34,10 @@ export interface SocketError {
34
34
  code: number;
35
35
  }
36
36
 
37
+ // Codes in the 4000s are left available by IETF
38
+ // https://datatracker.ietf.org/doc/html/rfc6455#section-7.4.2
39
+ export const INTENTIONAL_CLOSE_CODE = 4001;
40
+
37
41
  /**
38
42
  * ISocket is a class that wraps a WebSocket connection and provides a simple interface for sending and receiving messages.
39
43
  * ISocket is initialized by both server and client and request/response is called symmetrically.
@@ -59,33 +63,72 @@ export class ISocket<ImplementedMethods, CallableMethods, RequestContext extends
59
63
  protected nxtRequestId: number;
60
64
  private connectionTimeout: NodeJS.Timeout;
61
65
  // pino library not available in shared
62
- protected logger: { error: (message?: string) => void };
66
+ protected logger: { error: (message?: string) => void; info: (message?: string) => void; warn: (message?: string) => void };
63
67
  private timeouts?: SocketTimeouts;
68
+ private isClosed = false;
64
69
 
65
70
  constructor(
66
71
  ws: WebSocket,
67
72
  requestHandlers: MethodHandlers<ImplementedMethods, CallableMethods, RequestContext>,
68
73
  globalMiddlewares: GenericMiddleware<CallableMethods, RequestContext>[],
69
- timeouts?: SocketTimeouts,
70
- logger?: { error: (message?: string) => void }
74
+ options: {
75
+ /**
76
+ * This callback is called when the WebSocket connection is closed,
77
+ * either with a close handshake or immediately if the connection is dropped
78
+ *
79
+ * If code is INTENTIONAL_CLOSE_CODE, it was closed due to an internal timeout.
80
+ * Otherwise, the other side closed the connection.
81
+ *
82
+ * @param event - The WebSocket.CloseEvent object.
83
+ */
84
+ onClose: (event: WebSocket.CloseEvent) => void;
85
+ timeouts?: SocketTimeouts;
86
+ logger?: { error: (message?: string) => void; info: (message?: string) => void; warn: (message?: string) => void };
87
+ }
71
88
  ) {
72
89
  this.ws = ws;
73
90
  this.requestHandlers = requestHandlers;
74
91
  this.globalMiddlewares = globalMiddlewares;
75
92
  this.nxtRequestId = 0;
76
- this.logger = logger ?? { error: console.error };
77
- this.timeouts = timeouts;
93
+ this.logger = this.logger ?? {
94
+ error: console.error,
95
+ warn: console.warn,
96
+ info: console.info
97
+ };
98
+ this.timeouts = options.timeouts;
78
99
  // reset connection timeout in each message received. It means connection still active
79
100
  this.resetConnectionTimeout();
101
+ this.ws.addEventListener('message', (event: WebSocket.MessageEvent) => {
102
+ try {
103
+ const eventData: SocketMessage = JSON.parse(event.data.toString());
104
+ void this.handleMessage(eventData);
105
+ } catch (error) {
106
+ this.logger.error(`Error parsing message: ${error}`);
107
+ }
108
+ });
80
109
 
81
- // eslint-disable-next-line @typescript-eslint/no-misused-promises
82
- this.ws.addEventListener('message', async (event: WebSocket.MessageEvent) => {
83
- const eventData: SocketMessage = JSON.parse(event.data.toString());
84
- return this.handleMessage(eventData);
110
+ this.ws.addEventListener('close', (event: WebSocket.CloseEvent) => {
111
+ this.isClosed = true;
112
+
113
+ if (event.code !== INTENTIONAL_CLOSE_CODE) {
114
+ // Reject any pending responses that happen after the close handshake,
115
+ // which shouldn't be possible
116
+ this.responseHandler.forEach((handler, key) => {
117
+ clearTimeout(handler.timeout);
118
+ this.logger.error(`Rejecting pending requestId ${key} due to connection close`);
119
+ handler.reject({ code: 8, message: 'Connection closed' });
120
+ });
121
+ this.responseHandler.clear();
122
+ }
123
+ options.onClose(event);
85
124
  });
86
125
  }
87
126
 
88
127
  protected async handleMessage(message: SocketMessage): Promise<void> {
128
+ if (this.isClosed) {
129
+ this.logger.error('Connection closed, ignoring message');
130
+ return;
131
+ }
89
132
  this.resetConnectionTimeout();
90
133
  if (message.request) {
91
134
  // Split the method string into parts
@@ -178,6 +221,11 @@ export class ISocket<ImplementedMethods, CallableMethods, RequestContext extends
178
221
  }
179
222
 
180
223
  public request<Params, Result>(method: string, params: Params, authorization?: string): Promise<Result> {
224
+ if (this.isClosed) {
225
+ // Sockets normally will silently accept requests after the close handshake,
226
+ // but we want to reject them to avoid confusion
227
+ return Promise.reject(new SocketErrorException(10, 'Connection closed'));
228
+ }
181
229
  return new Promise<Result>((resolve, reject) => {
182
230
  const requestId = ++this.nxtRequestId;
183
231
  this.responseHandler.set(requestId, {
@@ -231,8 +279,7 @@ export class ISocket<ImplementedMethods, CallableMethods, RequestContext extends
231
279
 
232
280
  private handleConnectionTimeout() {
233
281
  return () => {
234
- this.logger.error(`Connection timed out after ${this.timeouts?.connectionTimeoutInSeconds} seconds`);
235
- this.close();
282
+ this.close('Connection timeout');
236
283
  };
237
284
  }
238
285
 
@@ -261,14 +308,10 @@ export class ISocket<ImplementedMethods, CallableMethods, RequestContext extends
261
308
  };
262
309
  }
263
310
 
264
- public close(): void {
265
- clearTimeout(this.connectionTimeout);
266
- this.responseHandler.forEach((handler, key) => {
267
- clearTimeout(handler.timeout);
268
- this.logger.error(`Rejecting pending requestId ${key} due to connection close`);
269
- handler.reject({ code: 8, message: 'Connection closed' });
270
- });
271
- this.ws.close();
311
+ public close(reason?: string): void {
312
+ // Starts close handshake without clearing in-progress requests
313
+ // see https://developer.mozilla.org/en-US/docs/Web/API/WebSocket/close
314
+ this.ws.close(INTENTIONAL_CLOSE_CODE, reason);
272
315
  }
273
316
  }
274
317
 
@@ -310,7 +353,7 @@ export function createISocketClient<CallableMethods, ImplementedMethods, Request
310
353
  socket: ISocket<ImplementedMethods, CallableMethods, RequestContext>
311
354
  ): ISocketClient<CallableMethods> {
312
355
  return {
313
- close: () => socket.close(),
356
+ close: (reason?: string) => socket.close(reason),
314
357
  // eslint-disable-next-line @typescript-eslint/no-explicit-any
315
358
  call: createIsocketProxy(socket, undefined) as any
316
359
  };
@@ -22,9 +22,13 @@ export class ISocketWithClientAuth<ImplementedMethods, CallableMethods, RequestC
22
22
  requestHandlers: MethodHandlers<ImplementedMethods, CallableMethods, RequestContext>,
23
23
  globalMiddlewares: GenericMiddleware<CallableMethods, RequestContext>[],
24
24
  tracer: Tracer,
25
- timeouts?: SocketTimeouts
25
+ options: {
26
+ onClose: (event: WebSocket.CloseEvent) => void;
27
+ timeouts?: SocketTimeouts;
28
+ logger?: { error: (message?: string) => void; info: (message?: string) => void; warn: (message?: string) => void };
29
+ }
26
30
  ) {
27
- super(ws, requestHandlers, globalMiddlewares, tracer, timeouts);
31
+ super(ws, requestHandlers, globalMiddlewares, tracer, options);
28
32
  this.authorization = authorization;
29
33
  }
30
34
 
@@ -38,15 +42,27 @@ export class ISocketWithClientAuth<ImplementedMethods, CallableMethods, RequestC
38
42
  }
39
43
  }
40
44
 
41
- export async function connectISocket<CallableMethods, ImplementedMethods, RequestContext extends RequestContextBase = RequestContextBase>(
45
+ /**
46
+ * Creates a new socket for a set of operations, without any retry behavior
47
+ * If the requests fail, the promise will reject.
48
+ */
49
+ export async function connectSingleUseISocket<
50
+ CallableMethods,
51
+ ImplementedMethods,
52
+ RequestContext extends RequestContextBase = RequestContextBase
53
+ >(
42
54
  wsUrl: string,
43
55
  authorization: string | undefined,
44
56
  requestHandlers: MethodHandlers<ImplementedMethods, CallableMethods, RequestContext>,
45
57
  globalMiddlewares: GenericMiddleware<CallableMethods, RequestContext>[],
46
58
  tracer: Tracer,
47
- timeouts?: SocketTimeouts
59
+ options: {
60
+ onClose: (event: WebSocket.CloseEvent) => void;
61
+ timeouts?: SocketTimeouts;
62
+ logger?: { error: (message?: string) => void; info: (message?: string) => void; warn: (message?: string) => void };
63
+ }
48
64
  ): Promise<ISocketClient<CallableMethods>> {
49
65
  const ws = await connectWebSocket(wsUrl);
50
- const isocket = new ISocketWithClientAuth(ws, authorization, requestHandlers, globalMiddlewares, tracer, timeouts);
66
+ const isocket = new ISocketWithClientAuth(ws, authorization, requestHandlers, globalMiddlewares, tracer, options);
51
67
  return createISocketClient(isocket);
52
68
  }
@@ -93,10 +93,13 @@ export class TracedSocket<ImplementedMethods, CallableMethods, RequestContext ex
93
93
  requestHandlers: MethodHandlers<ImplementedMethods, CallableMethods, RequestContext>,
94
94
  globalMiddlewares: GenericMiddleware<CallableMethods, RequestContext>[],
95
95
  tracer: Tracer,
96
- timeouts?: SocketTimeouts,
97
- logger?: { error: (message?: string) => void }
96
+ options: {
97
+ onClose: (event: WebSocket.CloseEvent) => void;
98
+ timeouts?: SocketTimeouts;
99
+ logger?: { error: (message?: string) => void; info: (message?: string) => void; warn: (message?: string) => void };
100
+ }
98
101
  ) {
99
- super(ws, requestHandlers, globalMiddlewares, timeouts, logger);
102
+ super(ws, requestHandlers, globalMiddlewares, options);
100
103
  this.tracer = tracer;
101
104
  }
102
105
 
@@ -213,12 +216,12 @@ export class TracedSocket<ImplementedMethods, CallableMethods, RequestContext ex
213
216
  }
214
217
  }
215
218
 
216
- public close(): void {
219
+ public close(reason?: string): void {
217
220
  for (const span of this.activeSpanByRequestId.values()) {
218
221
  span.end();
219
222
  }
220
223
  this.activeSpanByRequestId = new Map();
221
224
  this.lastActiveSpan = undefined;
222
- super.close();
225
+ super.close(reason);
223
226
  }
224
227
  }