@furystack/rest-service 10.0.28 → 10.1.1

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 (74) hide show
  1. package/README.md +249 -12
  2. package/esm/api-manager.d.ts +1 -3
  3. package/esm/api-manager.d.ts.map +1 -1
  4. package/esm/api-manager.js +4 -6
  5. package/esm/api-manager.js.map +1 -1
  6. package/esm/header-processor.d.ts +39 -0
  7. package/esm/header-processor.d.ts.map +1 -0
  8. package/esm/header-processor.js +113 -0
  9. package/esm/header-processor.js.map +1 -0
  10. package/esm/header-processor.spec.d.ts +2 -0
  11. package/esm/header-processor.spec.d.ts.map +1 -0
  12. package/esm/header-processor.spec.js +420 -0
  13. package/esm/header-processor.spec.js.map +1 -0
  14. package/esm/helpers.d.ts +69 -1
  15. package/esm/helpers.d.ts.map +1 -1
  16. package/esm/helpers.js +70 -1
  17. package/esm/helpers.js.map +1 -1
  18. package/esm/helpers.spec.js +21 -5
  19. package/esm/helpers.spec.js.map +1 -1
  20. package/esm/http-proxy-handler.d.ts +53 -0
  21. package/esm/http-proxy-handler.d.ts.map +1 -0
  22. package/esm/http-proxy-handler.js +179 -0
  23. package/esm/http-proxy-handler.js.map +1 -0
  24. package/esm/http-user-context.d.ts +4 -4
  25. package/esm/http-user-context.d.ts.map +1 -1
  26. package/esm/http-user-context.js +4 -4
  27. package/esm/http-user-context.js.map +1 -1
  28. package/esm/index.d.ts +1 -0
  29. package/esm/index.d.ts.map +1 -1
  30. package/esm/index.js +1 -0
  31. package/esm/index.js.map +1 -1
  32. package/esm/path-processor.d.ts +33 -0
  33. package/esm/path-processor.d.ts.map +1 -0
  34. package/esm/path-processor.js +58 -0
  35. package/esm/path-processor.js.map +1 -0
  36. package/esm/path-processor.spec.d.ts +2 -0
  37. package/esm/path-processor.spec.d.ts.map +1 -0
  38. package/esm/path-processor.spec.js +256 -0
  39. package/esm/path-processor.spec.js.map +1 -0
  40. package/esm/proxy-manager.d.ts +52 -0
  41. package/esm/proxy-manager.d.ts.map +1 -0
  42. package/esm/proxy-manager.js +84 -0
  43. package/esm/proxy-manager.js.map +1 -0
  44. package/esm/proxy-manager.spec.d.ts +2 -0
  45. package/esm/proxy-manager.spec.d.ts.map +1 -0
  46. package/esm/proxy-manager.spec.js +1781 -0
  47. package/esm/proxy-manager.spec.js.map +1 -0
  48. package/esm/server-manager.d.ts +7 -0
  49. package/esm/server-manager.d.ts.map +1 -1
  50. package/esm/server-manager.js +12 -0
  51. package/esm/server-manager.js.map +1 -1
  52. package/esm/static-server-manager.d.ts.map +1 -1
  53. package/esm/static-server-manager.js +5 -7
  54. package/esm/static-server-manager.js.map +1 -1
  55. package/esm/websocket-proxy-handler.d.ts +44 -0
  56. package/esm/websocket-proxy-handler.d.ts.map +1 -0
  57. package/esm/websocket-proxy-handler.js +157 -0
  58. package/esm/websocket-proxy-handler.js.map +1 -0
  59. package/package.json +12 -10
  60. package/src/api-manager.ts +5 -15
  61. package/src/header-processor.spec.ts +514 -0
  62. package/src/header-processor.ts +140 -0
  63. package/src/helpers.spec.ts +23 -5
  64. package/src/helpers.ts +72 -1
  65. package/src/http-proxy-handler.ts +215 -0
  66. package/src/http-user-context.ts +6 -6
  67. package/src/index.ts +1 -0
  68. package/src/path-processor.spec.ts +318 -0
  69. package/src/path-processor.ts +69 -0
  70. package/src/proxy-manager.spec.ts +2094 -0
  71. package/src/proxy-manager.ts +101 -0
  72. package/src/server-manager.ts +19 -0
  73. package/src/static-server-manager.ts +5 -7
  74. package/src/websocket-proxy-handler.ts +204 -0
@@ -0,0 +1 @@
1
+ {"version":3,"file":"proxy-manager.spec.js","sourceRoot":"","sources":["../src/proxy-manager.spec.ts"],"names":[],"mappings":"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"}
@@ -1,5 +1,6 @@
1
1
  import { EventHub } from '@furystack/utils';
2
2
  import type { IncomingMessage, Server, ServerResponse } from 'http';
3
+ import type { Duplex } from 'stream';
3
4
  export interface ServerOptions {
4
5
  hostName?: string;
5
6
  port: number;
@@ -8,9 +9,15 @@ export interface OnRequest {
8
9
  req: IncomingMessage;
9
10
  res: ServerResponse;
10
11
  }
12
+ export interface OnUpgrade {
13
+ req: IncomingMessage;
14
+ socket: Duplex;
15
+ head: Buffer;
16
+ }
11
17
  export interface ServerApi {
12
18
  shouldExec: (options: OnRequest) => boolean;
13
19
  onRequest: (options: OnRequest) => Promise<void>;
20
+ onUpgrade?: (options: OnUpgrade) => Promise<void>;
14
21
  }
15
22
  export interface ServerRecord {
16
23
  server: Server;
@@ -1 +1 @@
1
- {"version":3,"file":"server-manager.d.ts","sourceRoot":"","sources":["../src/server-manager.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,QAAQ,EAAE,MAAM,kBAAkB,CAAA;AAC3C,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,EAAE,cAAc,EAAE,MAAM,MAAM,CAAA;AAKnE,MAAM,WAAW,aAAa;IAC5B,QAAQ,CAAC,EAAE,MAAM,CAAA;IACjB,IAAI,EAAE,MAAM,CAAA;CACb;AAED,MAAM,WAAW,SAAS;IACxB,GAAG,EAAE,eAAe,CAAA;IACpB,GAAG,EAAE,cAAc,CAAA;CACpB;AAED,MAAM,WAAW,SAAS;IACxB,UAAU,EAAE,CAAC,OAAO,EAAE,SAAS,KAAK,OAAO,CAAA;IAC3C,SAAS,EAAE,CAAC,OAAO,EAAE,SAAS,KAAK,OAAO,CAAC,IAAI,CAAC,CAAA;CACjD;AAED,MAAM,WAAW,YAAY;IAC3B,MAAM,EAAE,MAAM,CAAA;IACd,IAAI,EAAE,SAAS,EAAE,CAAA;CAClB;AAED,qBACa,aACX,SAAQ,QAAQ,CAAC;IAAE,eAAe,EAAE,CAAC,OAAO,EAAE,eAAe,EAAE,cAAc,CAAC,eAAe,CAAC,CAAC,CAAA;CAAE,CACjG,YAAW,eAAe;IAE1B,OAAc,YAAY,SAAc;IACjC,OAAO,4BAAkC;IAChD,OAAO,CAAC,aAAa,CAAoB;IACzC,OAAO,CAAC,QAAQ,CAAC,UAAU,CAAa;IACxC,OAAO,CAAC,UAAU,CAC0D;IAE5E,OAAO,CAAC,YAAY,CAGnB;IACY,CAAC,MAAM,CAAC,YAAY,CAAC;IAoBrB,WAAW,CAAC,OAAO,EAAE,aAAa,GAAG,OAAO,CAAC,YAAY,CAAC;CA+BxE"}
1
+ {"version":3,"file":"server-manager.d.ts","sourceRoot":"","sources":["../src/server-manager.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,QAAQ,EAAE,MAAM,kBAAkB,CAAA;AAC3C,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,EAAE,cAAc,EAAE,MAAM,MAAM,CAAA;AAInE,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,QAAQ,CAAA;AAEpC,MAAM,WAAW,aAAa;IAC5B,QAAQ,CAAC,EAAE,MAAM,CAAA;IACjB,IAAI,EAAE,MAAM,CAAA;CACb;AAED,MAAM,WAAW,SAAS;IACxB,GAAG,EAAE,eAAe,CAAA;IACpB,GAAG,EAAE,cAAc,CAAA;CACpB;AAED,MAAM,WAAW,SAAS;IACxB,GAAG,EAAE,eAAe,CAAA;IACpB,MAAM,EAAE,MAAM,CAAA;IACd,IAAI,EAAE,MAAM,CAAA;CACb;AAED,MAAM,WAAW,SAAS;IACxB,UAAU,EAAE,CAAC,OAAO,EAAE,SAAS,KAAK,OAAO,CAAA;IAC3C,SAAS,EAAE,CAAC,OAAO,EAAE,SAAS,KAAK,OAAO,CAAC,IAAI,CAAC,CAAA;IAChD,SAAS,CAAC,EAAE,CAAC,OAAO,EAAE,SAAS,KAAK,OAAO,CAAC,IAAI,CAAC,CAAA;CAClD;AAED,MAAM,WAAW,YAAY;IAC3B,MAAM,EAAE,MAAM,CAAA;IACd,IAAI,EAAE,SAAS,EAAE,CAAA;CAClB;AAED,qBACa,aACX,SAAQ,QAAQ,CAAC;IAAE,eAAe,EAAE,CAAC,OAAO,EAAE,eAAe,EAAE,cAAc,CAAC,eAAe,CAAC,CAAC,CAAA;CAAE,CACjG,YAAW,eAAe;IAE1B,OAAc,YAAY,SAAc;IACjC,OAAO,4BAAkC;IAChD,OAAO,CAAC,aAAa,CAAoB;IACzC,OAAO,CAAC,QAAQ,CAAC,UAAU,CAAa;IACxC,OAAO,CAAC,UAAU,CAC0D;IAE5E,OAAO,CAAC,YAAY,CAGnB;IACY,CAAC,MAAM,CAAC,YAAY,CAAC;IAoBrB,WAAW,CAAC,OAAO,EAAE,aAAa,GAAG,OAAO,CAAC,YAAY,CAAC;CA0CxE"}
@@ -54,6 +54,18 @@ let ServerManager = class ServerManager extends EventHub {
54
54
  res.destroy();
55
55
  }
56
56
  });
57
+ server.on('upgrade', (req, socket, head) => {
58
+ const apiMatch = apis.find((api) => api.shouldExec({ req, res: {} }));
59
+ if (apiMatch?.onUpgrade) {
60
+ apiMatch.onUpgrade({ req, socket, head }).catch((error) => {
61
+ this.emit('onRequestFailed', [error, req, {}]);
62
+ socket.destroy();
63
+ });
64
+ }
65
+ else {
66
+ socket.destroy();
67
+ }
68
+ });
57
69
  server.on('connection', this.onConnection);
58
70
  server.on('listening', () => resolve());
59
71
  server.on('error', (err) => reject(err));
@@ -1 +1 @@
1
- {"version":3,"file":"server-manager.js","sourceRoot":"","sources":["../src/server-manager.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"server-manager.js","sourceRoot":"","sources":["../src/server-manager.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"static-server-manager.d.ts","sourceRoot":"","sources":["../src/static-server-manager.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,EAAE,eAAe,EAAE,mBAAmB,EAAkB,MAAM,MAAM,CAAA;AAKhF,MAAM,WAAW,mBAAmB;IAClC,OAAO,EAAE,MAAM,CAAA;IACf,IAAI,EAAE,MAAM,CAAA;IACZ,QAAQ,CAAC,EAAE,MAAM,CAAA;IACjB,IAAI,EAAE,MAAM,CAAA;IACZ,QAAQ,CAAC,EAAE,MAAM,CAAA;IACjB,OAAO,CAAC,EAAE,mBAAmB,CAAA;CAC9B;AAED,qBACa,mBAAmB;IAC9B,iBACyB,aAAa,CAAe;YAEvC,QAAQ;IAwBf,UAAU,GACd,SAAS,MAAM,MACf,SAAS;QAAE,GAAG,EAAE,IAAI,CAAC,eAAe,EAAE,KAAK,GAAG,QAAQ,CAAC,CAAA;KAAE,aAK/C;IAEb,OAAO,CAAC,SAAS,CA0BhB;IAEY,aAAa,CAAC,OAAO,EAAE,mBAAmB;CAQxD"}
1
+ {"version":3,"file":"static-server-manager.d.ts","sourceRoot":"","sources":["../src/static-server-manager.ts"],"names":[],"mappings":"AAIA,OAAO,KAAK,EAAE,eAAe,EAAE,mBAAmB,EAAkB,MAAM,MAAM,CAAA;AAKhF,MAAM,WAAW,mBAAmB;IAClC,OAAO,EAAE,MAAM,CAAA;IACf,IAAI,EAAE,MAAM,CAAA;IACZ,QAAQ,CAAC,EAAE,MAAM,CAAA;IACjB,IAAI,EAAE,MAAM,CAAA;IACZ,QAAQ,CAAC,EAAE,MAAM,CAAA;IACjB,OAAO,CAAC,EAAE,mBAAmB,CAAA;CAC9B;AAED,qBACa,mBAAmB;IAC9B,iBACyB,aAAa,CAAe;YAEvC,QAAQ;IAwBf,UAAU,GACd,SAAS,MAAM,MACf,SAAS;QAAE,GAAG,EAAE,IAAI,CAAC,eAAe,EAAE,KAAK,GAAG,QAAQ,CAAC,CAAA;KAAE,aACoD;IAEhH,OAAO,CAAC,SAAS,CA2BhB;IAEY,aAAa,CAAC,OAAO,EAAE,mBAAmB;CAQxD"}
@@ -8,10 +8,11 @@ var __metadata = (this && this.__metadata) || function (k, v) {
8
8
  if (typeof Reflect === "object" && typeof Reflect.metadata === "function") return Reflect.metadata(k, v);
9
9
  };
10
10
  import { Injectable, Injected } from '@furystack/inject';
11
+ import { PathHelper } from '@furystack/utils';
11
12
  import { createReadStream } from 'fs';
12
13
  import { access, stat } from 'fs/promises';
13
- import { getMimeForFile } from './mime-types.js';
14
14
  import { join, normalize, sep } from 'path';
15
+ import { getMimeForFile } from './mime-types.js';
15
16
  import { ServerManager } from './server-manager.js';
16
17
  let StaticServerManager = class StaticServerManager {
17
18
  async sendFile({ fullPath, headers, res, }) {
@@ -25,14 +26,11 @@ let StaticServerManager = class StaticServerManager {
25
26
  Object.entries(head).map(([key, value]) => res.setHeader(key, value));
26
27
  await new Promise((resolve, reject) => createReadStream(fullPath, { autoClose: true }).once('finish', resolve).once('error', reject).pipe(res));
27
28
  }
28
- shouldExec = (baseUrl) => ({ req }) => req.url &&
29
- req.method?.toUpperCase() === 'GET' &&
30
- (req.url === baseUrl || req.url.startsWith(baseUrl[baseUrl.length - 1] === '/' ? baseUrl : `${baseUrl}/`))
31
- ? true
32
- : false;
29
+ shouldExec = (baseUrl) => ({ req }) => req.url && req.method?.toUpperCase() === 'GET' && PathHelper.matchesBaseUrl(req.url, baseUrl) ? true : false;
33
30
  onRequest = ({ path, baseUrl, fallback, headers, }) => {
34
31
  return async ({ req, res }) => {
35
- const filePath = req.url.substring(baseUrl.length - 1).replaceAll('/', sep);
32
+ const extractedPath = PathHelper.extractPath(req.url, baseUrl);
33
+ const filePath = (extractedPath || '/').replaceAll('/', sep);
36
34
  const fullPath = normalize(join(path, filePath));
37
35
  try {
38
36
  await this.sendFile({ fullPath, res, headers });
@@ -1 +1 @@
1
- {"version":3,"file":"static-server-manager.js","sourceRoot":"","sources":["../src/static-server-manager.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"static-server-manager.js","sourceRoot":"","sources":["../src/static-server-manager.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,44 @@
1
+ import type { IncomingMessage, OutgoingHttpHeaders } from 'http';
2
+ import type { Duplex } from 'stream';
3
+ export interface WebSocketProxyOptions {
4
+ sourceBaseUrl: string;
5
+ targetBaseUrl: string;
6
+ pathRewrite?: (sourcePath: string) => string;
7
+ headers?: (originalHeaders: OutgoingHttpHeaders) => OutgoingHttpHeaders;
8
+ timeout?: number;
9
+ onError?: (error: {
10
+ from: string;
11
+ to: string;
12
+ error: unknown;
13
+ }) => void;
14
+ }
15
+ /**
16
+ * Handles WebSocket upgrade proxying with bidirectional streaming
17
+ */
18
+ export declare class WebSocketProxyHandler {
19
+ private readonly options;
20
+ private readonly headerProcessor;
21
+ private readonly pathProcessor;
22
+ constructor(options: WebSocketProxyOptions);
23
+ /**
24
+ * Builds WebSocket-specific upgrade headers
25
+ */
26
+ private buildUpgradeHeaders;
27
+ /**
28
+ * Writes the upgrade response headers to the client socket
29
+ */
30
+ private writeUpgradeResponse;
31
+ /**
32
+ * Sets up bidirectional piping between client and target sockets with error handling
33
+ */
34
+ private setupBidirectionalPipe;
35
+ /**
36
+ * Handles WebSocket upgrade errors
37
+ */
38
+ private handleUpgradeError;
39
+ /**
40
+ * Main handler for WebSocket upgrade requests
41
+ */
42
+ handle(req: IncomingMessage, socket: Duplex, head: Buffer): Promise<void>;
43
+ }
44
+ //# sourceMappingURL=websocket-proxy-handler.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"websocket-proxy-handler.d.ts","sourceRoot":"","sources":["../src/websocket-proxy-handler.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,eAAe,EAAE,mBAAmB,EAAE,MAAM,MAAM,CAAA;AAGhE,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,QAAQ,CAAA;AAIpC,MAAM,WAAW,qBAAqB;IACpC,aAAa,EAAE,MAAM,CAAA;IACrB,aAAa,EAAE,MAAM,CAAA;IACrB,WAAW,CAAC,EAAE,CAAC,UAAU,EAAE,MAAM,KAAK,MAAM,CAAA;IAC5C,OAAO,CAAC,EAAE,CAAC,eAAe,EAAE,mBAAmB,KAAK,mBAAmB,CAAA;IACvE,OAAO,CAAC,EAAE,MAAM,CAAA;IAChB,OAAO,CAAC,EAAE,CAAC,KAAK,EAAE;QAAE,IAAI,EAAE,MAAM,CAAC;QAAC,EAAE,EAAE,MAAM,CAAC;QAAC,KAAK,EAAE,OAAO,CAAA;KAAE,KAAK,IAAI,CAAA;CACxE;AAED;;GAEG;AACH,qBAAa,qBAAqB;IAIpB,OAAO,CAAC,QAAQ,CAAC,OAAO;IAHpC,OAAO,CAAC,QAAQ,CAAC,eAAe,CAAwB;IACxD,OAAO,CAAC,QAAQ,CAAC,aAAa,CAAsB;gBAEvB,OAAO,EAAE,qBAAqB;IAE3D;;OAEG;IACH,OAAO,CAAC,mBAAmB;IAyB3B;;OAEG;IACH,OAAO,CAAC,oBAAoB;IAa5B;;OAEG;IACH,OAAO,CAAC,sBAAsB;IA+C9B;;OAEG;IACH,OAAO,CAAC,kBAAkB;IAW1B;;OAEG;IACU,MAAM,CAAC,GAAG,EAAE,eAAe,EAAE,MAAM,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;CAmEvF"}
@@ -0,0 +1,157 @@
1
+ import { request as httpRequest } from 'http';
2
+ import { request as httpsRequest } from 'https';
3
+ import { HeaderProcessor } from './header-processor.js';
4
+ import { PathProcessor } from './path-processor.js';
5
+ /**
6
+ * Handles WebSocket upgrade proxying with bidirectional streaming
7
+ */
8
+ export class WebSocketProxyHandler {
9
+ options;
10
+ headerProcessor = new HeaderProcessor();
11
+ pathProcessor = new PathProcessor();
12
+ constructor(options) {
13
+ this.options = options;
14
+ }
15
+ /**
16
+ * Builds WebSocket-specific upgrade headers
17
+ */
18
+ buildUpgradeHeaders(req, targetHost, finalHeaders) {
19
+ const upgradeHeaders = this.headerProcessor.convertHeadersToRecord(finalHeaders);
20
+ // Add required WebSocket upgrade headers
21
+ upgradeHeaders.Host = targetHost;
22
+ upgradeHeaders.Connection = 'Upgrade';
23
+ upgradeHeaders.Upgrade = 'websocket';
24
+ upgradeHeaders['Sec-WebSocket-Version'] = req.headers['sec-websocket-version'];
25
+ upgradeHeaders['Sec-WebSocket-Key'] = req.headers['sec-websocket-key'];
26
+ // Add optional WebSocket headers
27
+ if (req.headers['sec-websocket-protocol']) {
28
+ upgradeHeaders['Sec-WebSocket-Protocol'] = req.headers['sec-websocket-protocol'];
29
+ }
30
+ if (req.headers['sec-websocket-extensions']) {
31
+ upgradeHeaders['Sec-WebSocket-Extensions'] = req.headers['sec-websocket-extensions'];
32
+ }
33
+ return upgradeHeaders;
34
+ }
35
+ /**
36
+ * Writes the upgrade response headers to the client socket
37
+ */
38
+ writeUpgradeResponse(socket, proxyRes) {
39
+ const responseHeaders = [`HTTP/1.1 ${proxyRes.statusCode} ${proxyRes.statusMessage}`];
40
+ for (const [key, value] of Object.entries(proxyRes.headers)) {
41
+ if (Array.isArray(value)) {
42
+ value.forEach((v) => responseHeaders.push(`${key}: ${v}`));
43
+ }
44
+ else {
45
+ responseHeaders.push(`${key}: ${value}`);
46
+ }
47
+ }
48
+ responseHeaders.push('', '');
49
+ socket.write(responseHeaders.join('\r\n'));
50
+ }
51
+ /**
52
+ * Sets up bidirectional piping between client and target sockets with error handling
53
+ */
54
+ setupBidirectionalPipe(clientSocket, proxySocket, clientHead, proxyHead) {
55
+ // Write initial data
56
+ if (proxyHead.length > 0) {
57
+ clientSocket.write(proxyHead);
58
+ }
59
+ if (clientHead.length > 0) {
60
+ proxySocket.write(clientHead);
61
+ }
62
+ // Bidirectional pipe
63
+ proxySocket.pipe(clientSocket);
64
+ clientSocket.pipe(proxySocket);
65
+ // Handle errors and cleanup
66
+ const cleanup = () => {
67
+ proxySocket.destroy();
68
+ clientSocket.destroy();
69
+ };
70
+ const handleError = (error) => {
71
+ if (this.options.onError) {
72
+ this.options.onError({
73
+ from: this.options.sourceBaseUrl,
74
+ to: this.options.targetBaseUrl,
75
+ error,
76
+ });
77
+ }
78
+ cleanup();
79
+ };
80
+ proxySocket.on('error', handleError);
81
+ clientSocket.on('error', handleError);
82
+ proxySocket.on('close', () => {
83
+ clientSocket.destroy();
84
+ });
85
+ clientSocket.on('close', () => {
86
+ proxySocket.destroy();
87
+ });
88
+ }
89
+ /**
90
+ * Handles WebSocket upgrade errors
91
+ */
92
+ handleUpgradeError(error, socket) {
93
+ if (this.options.onError) {
94
+ this.options.onError({
95
+ from: this.options.sourceBaseUrl,
96
+ to: this.options.targetBaseUrl,
97
+ error,
98
+ });
99
+ }
100
+ socket.destroy();
101
+ }
102
+ /**
103
+ * Main handler for WebSocket upgrade requests
104
+ */
105
+ async handle(req, socket, head) {
106
+ try {
107
+ // Build target URL
108
+ const targetUrl = this.pathProcessor.processUrl(req.url, this.options.sourceBaseUrl, this.options.targetBaseUrl, this.options.pathRewrite);
109
+ const parsedTargetUrl = new URL(targetUrl);
110
+ // Process headers
111
+ const originalHeaders = {};
112
+ for (const [key, value] of Object.entries(req.headers)) {
113
+ originalHeaders[key] = Array.isArray(value) ? value.join(', ') : value;
114
+ }
115
+ const filteredHeaders = this.headerProcessor.filterHeaders(originalHeaders);
116
+ const finalHeaders = this.options.headers ? this.options.headers(filteredHeaders) : filteredHeaders;
117
+ // Build WebSocket upgrade headers
118
+ const upgradeHeaders = this.buildUpgradeHeaders(req, parsedTargetUrl.host, finalHeaders);
119
+ // Set up timeout
120
+ const timeoutMs = this.options.timeout ?? 30000;
121
+ const timeoutId = setTimeout(() => {
122
+ socket.destroy();
123
+ }, timeoutMs);
124
+ // Create upgrade request to target server
125
+ const requestFn = parsedTargetUrl.protocol === 'https:' ? httpsRequest : httpRequest;
126
+ const proxyReq = requestFn({
127
+ host: parsedTargetUrl.hostname,
128
+ port: parsedTargetUrl.port || (parsedTargetUrl.protocol === 'https:' ? 443 : 80),
129
+ path: parsedTargetUrl.pathname + parsedTargetUrl.search,
130
+ method: 'GET',
131
+ headers: upgradeHeaders,
132
+ });
133
+ proxyReq.on('upgrade', (proxyRes, proxySocket, proxyHead) => {
134
+ clearTimeout(timeoutId);
135
+ // Write the upgrade response to the client socket
136
+ this.writeUpgradeResponse(socket, proxyRes);
137
+ // Set up bidirectional piping
138
+ this.setupBidirectionalPipe(socket, proxySocket, head, proxyHead);
139
+ });
140
+ proxyReq.on('error', (error) => {
141
+ clearTimeout(timeoutId);
142
+ this.handleUpgradeError(error, socket);
143
+ });
144
+ proxyReq.on('timeout', () => {
145
+ clearTimeout(timeoutId);
146
+ const timeoutError = new Error('WebSocket upgrade timeout');
147
+ this.handleUpgradeError(timeoutError, socket);
148
+ proxyReq.destroy();
149
+ });
150
+ proxyReq.end();
151
+ }
152
+ catch (error) {
153
+ this.handleUpgradeError(error, socket);
154
+ }
155
+ }
156
+ }
157
+ //# sourceMappingURL=websocket-proxy-handler.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"websocket-proxy-handler.js","sourceRoot":"","sources":["../src/websocket-proxy-handler.ts"],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@furystack/rest-service",
3
- "version": "10.0.28",
3
+ "version": "10.1.1",
4
4
  "description": "Repository implementation for FuryStack",
5
5
  "type": "module",
6
6
  "scripts": {
@@ -37,22 +37,24 @@
37
37
  },
38
38
  "homepage": "https://github.com/furystack/furystack",
39
39
  "dependencies": {
40
- "@furystack/core": "^15.0.27",
41
- "@furystack/inject": "^12.0.21",
42
- "@furystack/repository": "^10.0.27",
43
- "@furystack/rest": "^8.0.27",
44
- "@furystack/security": "^6.0.27",
45
- "@furystack/utils": "^8.1.3",
40
+ "@furystack/core": "^15.0.29",
41
+ "@furystack/inject": "^12.0.23",
42
+ "@furystack/repository": "^10.0.29",
43
+ "@furystack/rest": "^8.0.29",
44
+ "@furystack/security": "^6.0.29",
45
+ "@furystack/utils": "^8.1.5",
46
46
  "ajv": "^8.17.1",
47
47
  "ajv-formats": "^3.0.1",
48
48
  "path-to-regexp": "^8.3.0",
49
49
  "semaphore-async-await": "^1.5.1"
50
50
  },
51
51
  "devDependencies": {
52
- "@furystack/rest-client-fetch": "^8.0.27",
53
- "@types/node": "^24.7.2",
52
+ "@furystack/rest-client-fetch": "^8.0.29",
53
+ "@types/node": "^24.10.1",
54
+ "@types/ws": "^8.18.1",
54
55
  "typescript": "^5.9.3",
55
- "vitest": "^3.2.4"
56
+ "vitest": "^4.0.10",
57
+ "ws": "^8.18.3"
56
58
  },
57
59
  "gitHead": "1045d854bfd8c475b7035471d130d401417a2321"
58
60
  }
@@ -103,13 +103,7 @@ export type OnRequestOptions = OnRequest & {
103
103
  }
104
104
 
105
105
  @Injectable({ lifetime: 'singleton' })
106
- export class ApiManager implements Disposable {
107
- private readonly apis = new Map<string, NewCompiledApi>()
108
-
109
- public [Symbol.dispose]() {
110
- this.apis.clear()
111
- }
112
-
106
+ export class ApiManager {
113
107
  private getSuportedMethods(api: RestApiImplementation<RestApi>): Method[] {
114
108
  return Object.keys(api) as Method[]
115
109
  }
@@ -193,7 +187,7 @@ export class ApiManager implements Disposable {
193
187
  return options.method &&
194
188
  options.url &&
195
189
  (options.supportedMethods.includes(options.method) || options.method === 'OPTIONS') &&
196
- PathHelper.normalize(options.url).startsWith(options.rootApiPath)
190
+ PathHelper.matchesBaseUrl(options.url, options.rootApiPath)
197
191
  ? true
198
192
  : false
199
193
  }
@@ -266,13 +260,9 @@ export class ApiManager implements Disposable {
266
260
  }
267
261
 
268
262
  private async onMessage(options: OnRequestOptions) {
269
- const fullUrl = new URL(
270
- PathHelper.joinPaths(
271
- 'http://',
272
- `${options.hostName || ServerManager.DEFAULT_HOST}:${options.port}`,
273
- options.req.url as string,
274
- ),
275
- )
263
+ const protocol = 'http://'
264
+ const host = `${options.hostName || ServerManager.DEFAULT_HOST}:${options.port}`
265
+ const fullUrl = new URL(PathHelper.joinUrl(`${protocol}${host}`, options.req.url as string))
276
266
 
277
267
  if (options.cors) {
278
268
  addCorsHeaders(options.cors, options.req, options.res)