crossws 0.2.1 → 0.2.3

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.
@@ -6,7 +6,7 @@ const index = require('../index.cjs');
6
6
  const deno = types.defineWebSocketAdapter(
7
7
  (options = {}) => {
8
8
  const crossws = types.createCrossWS(options);
9
- const handleUpgrade = async (req) => {
9
+ const handleUpgrade = async (req, info) => {
10
10
  const { headers } = await crossws.upgrade({
11
11
  url: req.url,
12
12
  headers: req.headers
@@ -16,7 +16,7 @@ const deno = types.defineWebSocketAdapter(
16
16
  headers
17
17
  });
18
18
  const peer = new DenoPeer({
19
- deno: { ws: upgrade.socket, req }
19
+ deno: { ws: upgrade.socket, req, info }
20
20
  });
21
21
  upgrade.socket.addEventListener("open", () => {
22
22
  crossws.$callHook("deno:open", peer);
@@ -2,13 +2,14 @@ import { A as AdapterOptions, b as Adapter } from '../shared/crossws.a2e5c71e.cj
2
2
  import * as _deno_types from '@deno/types';
3
3
 
4
4
  interface DenoAdapter {
5
- handleUpgrade(req: Request): Promise<Response>;
5
+ handleUpgrade(req: Request, info: ServeHandlerInfo): Promise<Response>;
6
6
  }
7
7
  interface DenoOptions extends AdapterOptions {
8
8
  }
9
9
  declare global {
10
10
  const Deno: typeof _deno_types.Deno;
11
11
  }
12
+ type ServeHandlerInfo = any;
12
13
  declare const _default: Adapter<DenoAdapter, DenoOptions>;
13
14
 
14
15
  export { type DenoAdapter, type DenoOptions, _default as default };
@@ -2,13 +2,14 @@ import { A as AdapterOptions, b as Adapter } from '../shared/crossws.a2e5c71e.mj
2
2
  import * as _deno_types from '@deno/types';
3
3
 
4
4
  interface DenoAdapter {
5
- handleUpgrade(req: Request): Promise<Response>;
5
+ handleUpgrade(req: Request, info: ServeHandlerInfo): Promise<Response>;
6
6
  }
7
7
  interface DenoOptions extends AdapterOptions {
8
8
  }
9
9
  declare global {
10
10
  const Deno: typeof _deno_types.Deno;
11
11
  }
12
+ type ServeHandlerInfo = any;
12
13
  declare const _default: Adapter<DenoAdapter, DenoOptions>;
13
14
 
14
15
  export { type DenoAdapter, type DenoOptions, _default as default };
@@ -2,13 +2,14 @@ import { A as AdapterOptions, b as Adapter } from '../shared/crossws.a2e5c71e.js
2
2
  import * as _deno_types from '@deno/types';
3
3
 
4
4
  interface DenoAdapter {
5
- handleUpgrade(req: Request): Promise<Response>;
5
+ handleUpgrade(req: Request, info: ServeHandlerInfo): Promise<Response>;
6
6
  }
7
7
  interface DenoOptions extends AdapterOptions {
8
8
  }
9
9
  declare global {
10
10
  const Deno: typeof _deno_types.Deno;
11
11
  }
12
+ type ServeHandlerInfo = any;
12
13
  declare const _default: Adapter<DenoAdapter, DenoOptions>;
13
14
 
14
15
  export { type DenoAdapter, type DenoOptions, _default as default };
@@ -4,7 +4,7 @@ import { WSError } from '../index.mjs';
4
4
  const deno = defineWebSocketAdapter(
5
5
  (options = {}) => {
6
6
  const crossws = createCrossWS(options);
7
- const handleUpgrade = async (req) => {
7
+ const handleUpgrade = async (req, info) => {
8
8
  const { headers } = await crossws.upgrade({
9
9
  url: req.url,
10
10
  headers: req.headers
@@ -14,7 +14,7 @@ const deno = defineWebSocketAdapter(
14
14
  headers
15
15
  });
16
16
  const peer = new DenoPeer({
17
- deno: { ws: upgrade.socket, req }
17
+ deno: { ws: upgrade.socket, req, info }
18
18
  });
19
19
  upgrade.socket.addEventListener("open", () => {
20
20
  crossws.$callHook("deno:open", peer);
@@ -696,8 +696,13 @@ class NodePeer extends types.Peer {
696
696
  if (!socket) {
697
697
  return void 0;
698
698
  }
699
- const addr = socket.remoteFamily === "IPv6" ? `[${socket.remoteAddress}]` : socket.remoteAddress;
700
- return `${addr}:${socket.remotePort}`;
699
+ const headers = this.ctx.node.req.headers;
700
+ let addr = headers["x-forwarded-for"] || socket.remoteAddress || "??";
701
+ if (addr.includes(":")) {
702
+ addr = `[${addr}]`;
703
+ }
704
+ const port = headers["x-forwarded-port"] || socket.remotePort || "??";
705
+ return `${addr}:${port}`;
701
706
  }
702
707
  get url() {
703
708
  return this.ctx.node.req.url || "/";
@@ -688,8 +688,13 @@ class NodePeer extends Peer {
688
688
  if (!socket) {
689
689
  return void 0;
690
690
  }
691
- const addr = socket.remoteFamily === "IPv6" ? `[${socket.remoteAddress}]` : socket.remoteAddress;
692
- return `${addr}:${socket.remotePort}`;
691
+ const headers = this.ctx.node.req.headers;
692
+ let addr = headers["x-forwarded-for"] || socket.remoteAddress || "??";
693
+ if (addr.includes(":")) {
694
+ addr = `[${addr}]`;
695
+ }
696
+ const port = headers["x-forwarded-port"] || socket.remotePort || "??";
697
+ return `${addr}:${port}`;
693
698
  }
694
699
  get url() {
695
700
  return this.ctx.node.req.url || "/";
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "crossws",
3
- "version": "0.2.1",
3
+ "version": "0.2.3",
4
4
  "description": "Cross-platform WebSocket Servers for Node.js, Deno, Bun and Cloudflare Workers",
5
5
  "repository": "unjs/crossws",
6
6
  "license": "MIT",