crossws 0.3.3 → 0.3.4

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.
@@ -1,5 +1,5 @@
1
- import { AdapterInstance, AdapterOptions, Peer, Adapter } from '../index.mjs';
2
1
  import { WebSocketHandler, Server, ServerWebSocket } from 'bun';
2
+ import { AdapterInstance, AdapterOptions, Peer, Adapter } from '../index.mjs';
3
3
  import '../shared/crossws.ChIJSJVK.mjs';
4
4
 
5
5
  interface BunAdapter extends AdapterInstance {
@@ -14,7 +14,7 @@ type ContextData = {
14
14
  server?: Server;
15
15
  context: Peer["context"];
16
16
  };
17
- declare const _default: Adapter<BunAdapter, BunOptions>;
17
+ declare const bunAdapter: Adapter<BunAdapter, BunOptions>;
18
18
 
19
19
  declare class BunPeer extends Peer<{
20
20
  ws: ServerWebSocket<ContextData>;
@@ -22,7 +22,7 @@ declare class BunPeer extends Peer<{
22
22
  peers: Set<BunPeer>;
23
23
  }> {
24
24
  get remoteAddress(): string;
25
- get context(): Record<string, unknown>;
25
+ get context(): Peer["context"];
26
26
  send(data: unknown, options?: {
27
27
  compress?: boolean;
28
28
  }): number;
@@ -35,4 +35,4 @@ declare class BunPeer extends Peer<{
35
35
  terminate(): void;
36
36
  }
37
37
 
38
- export { type BunAdapter, type BunOptions, _default as default };
38
+ export { type BunAdapter, type BunOptions, bunAdapter as default };
@@ -1,5 +1,5 @@
1
- import { AdapterInstance, AdapterOptions, Peer, Adapter } from '../index.js';
2
1
  import { WebSocketHandler, Server, ServerWebSocket } from 'bun';
2
+ import { AdapterInstance, AdapterOptions, Peer, Adapter } from '../index.js';
3
3
  import '../shared/crossws.ChIJSJVK.js';
4
4
 
5
5
  interface BunAdapter extends AdapterInstance {
@@ -14,7 +14,7 @@ type ContextData = {
14
14
  server?: Server;
15
15
  context: Peer["context"];
16
16
  };
17
- declare const _default: Adapter<BunAdapter, BunOptions>;
17
+ declare const bunAdapter: Adapter<BunAdapter, BunOptions>;
18
18
 
19
19
  declare class BunPeer extends Peer<{
20
20
  ws: ServerWebSocket<ContextData>;
@@ -22,7 +22,7 @@ declare class BunPeer extends Peer<{
22
22
  peers: Set<BunPeer>;
23
23
  }> {
24
24
  get remoteAddress(): string;
25
- get context(): Record<string, unknown>;
25
+ get context(): Peer["context"];
26
26
  send(data: unknown, options?: {
27
27
  compress?: boolean;
28
28
  }): number;
@@ -35,4 +35,4 @@ declare class BunPeer extends Peer<{
35
35
  terminate(): void;
36
36
  }
37
37
 
38
- export { type BunAdapter, type BunOptions, _default as default };
38
+ export { type BunAdapter, type BunOptions, bunAdapter as default };
@@ -1,49 +1,47 @@
1
- import { M as Message, P as Peer, t as toBufferLike } from '../shared/crossws.DLRVRjZs.mjs';
2
- import { d as defineWebSocketAdapter, a as adapterUtils, A as AdapterHookable } from '../shared/crossws.CB4awDDj.mjs';
1
+ import { M as Message, P as Peer, t as toBufferLike } from '../shared/crossws.BS81iGZK.mjs';
2
+ import { a as adapterUtils, A as AdapterHookable } from '../shared/crossws.D9ehKjSh.mjs';
3
3
  import 'uncrypto';
4
4
 
5
- const bun = defineWebSocketAdapter(
6
- (options = {}) => {
7
- const hooks = new AdapterHookable(options);
8
- const peers = /* @__PURE__ */ new Set();
9
- return {
10
- ...adapterUtils(peers),
11
- async handleUpgrade(request, server) {
12
- const { upgradeHeaders, endResponse, context } = await hooks.upgrade(request);
13
- if (endResponse) {
14
- return endResponse;
15
- }
16
- const upgradeOK = server.upgrade(request, {
17
- data: {
18
- server,
19
- request,
20
- context
21
- },
22
- headers: upgradeHeaders
23
- });
24
- if (!upgradeOK) {
25
- return new Response("Upgrade failed", { status: 500 });
26
- }
27
- },
28
- websocket: {
29
- message: (ws, message) => {
30
- const peer = getPeer(ws, peers);
31
- hooks.callHook("message", peer, new Message(message, peer));
32
- },
33
- open: (ws) => {
34
- const peer = getPeer(ws, peers);
35
- peers.add(peer);
36
- hooks.callHook("open", peer);
5
+ const bunAdapter = (options = {}) => {
6
+ const hooks = new AdapterHookable(options);
7
+ const peers = /* @__PURE__ */ new Set();
8
+ return {
9
+ ...adapterUtils(peers),
10
+ async handleUpgrade(request, server) {
11
+ const { upgradeHeaders, endResponse, context } = await hooks.upgrade(request);
12
+ if (endResponse) {
13
+ return endResponse;
14
+ }
15
+ const upgradeOK = server.upgrade(request, {
16
+ data: {
17
+ server,
18
+ request,
19
+ context
37
20
  },
38
- close: (ws) => {
39
- const peer = getPeer(ws, peers);
40
- peers.delete(peer);
41
- hooks.callHook("close", peer, {});
42
- }
21
+ headers: upgradeHeaders
22
+ });
23
+ if (!upgradeOK) {
24
+ return new Response("Upgrade failed", { status: 500 });
43
25
  }
44
- };
45
- }
46
- );
26
+ },
27
+ websocket: {
28
+ message: (ws, message) => {
29
+ const peer = getPeer(ws, peers);
30
+ hooks.callHook("message", peer, new Message(message, peer));
31
+ },
32
+ open: (ws) => {
33
+ const peer = getPeer(ws, peers);
34
+ peers.add(peer);
35
+ hooks.callHook("open", peer);
36
+ },
37
+ close: (ws, code, reason) => {
38
+ const peer = getPeer(ws, peers);
39
+ peers.delete(peer);
40
+ hooks.callHook("close", peer, { code, reason });
41
+ }
42
+ }
43
+ };
44
+ };
47
45
  function getPeer(ws, peers) {
48
46
  if (ws.data?.peer) {
49
47
  return ws.data.peer;
@@ -73,9 +71,11 @@ class BunPeer extends Peer {
73
71
  );
74
72
  }
75
73
  subscribe(topic) {
74
+ this._topics.add(topic);
76
75
  this._internal.ws.subscribe(topic);
77
76
  }
78
77
  unsubscribe(topic) {
78
+ this._topics.delete(topic);
79
79
  this._internal.ws.unsubscribe(topic);
80
80
  }
81
81
  close(code, reason) {
@@ -86,4 +86,4 @@ class BunPeer extends Peer {
86
86
  }
87
87
  }
88
88
 
89
- export { bun as default };
89
+ export { bunAdapter as default };
@@ -1,9 +1,34 @@
1
- import { Adapter, AdapterInstance, AdapterOptions } from '../index.mjs';
2
- import { W as WebSocket$1 } from '../shared/crossws.ChIJSJVK.mjs';
3
1
  import * as CF from '@cloudflare/workers-types';
4
2
  import { DurableObject } from 'cloudflare:workers';
3
+ import { AdapterOptions, Adapter, AdapterInstance } from '../index.mjs';
4
+ import { W as WebSocket$1 } from '../shared/crossws.ChIJSJVK.mjs';
5
5
 
6
- declare const _default: Adapter<CloudflareDurableAdapter, CloudflareOptions>;
6
+ type ResolveDurableStub = (req: CF.Request, env: unknown, context: CF.ExecutionContext) => CF.DurableObjectStub | Promise<CF.DurableObjectStub>;
7
+ interface CloudflareOptions extends AdapterOptions {
8
+ /**
9
+ * Durable Object binding name from environment.
10
+ *
11
+ * **Note:** This option will be ignored if `resolveDurableStub` is provided.
12
+ *
13
+ * @default "$DurableObject"
14
+ */
15
+ bindingName?: string;
16
+ /**
17
+ * Durable Object instance name.
18
+ *
19
+ * **Note:** This option will be ignored if `resolveDurableStub` is provided.
20
+ *
21
+ * @default "crossws"
22
+ */
23
+ instanceName?: string;
24
+ /**
25
+ * Custom function that resolves Durable Object binding to handle the WebSocket upgrade.
26
+ *
27
+ * **Note:** This option will override `bindingName` and `instanceName`.
28
+ */
29
+ resolveDurableStub?: ResolveDurableStub;
30
+ }
31
+ declare const cloudflareDurableAdapter: Adapter<CloudflareDurableAdapter, CloudflareOptions>;
7
32
 
8
33
  interface CloudflareDurableAdapter extends AdapterInstance {
9
34
  handleUpgrade(req: Request | CF.Request, env: unknown, context: CF.ExecutionContext): Promise<Response>;
@@ -12,9 +37,5 @@ interface CloudflareDurableAdapter extends AdapterInstance {
12
37
  handleDurableMessage(obj: DurableObject, ws: WebSocket | CF.WebSocket | WebSocket$1, message: ArrayBuffer | string): Promise<void>;
13
38
  handleDurableClose(obj: DurableObject, ws: WebSocket | CF.WebSocket | WebSocket$1, code: number, reason: string, wasClean: boolean): Promise<void>;
14
39
  }
15
- interface CloudflareOptions extends AdapterOptions {
16
- bindingName?: string;
17
- instanceName?: string;
18
- }
19
40
 
20
- export { type CloudflareDurableAdapter, type CloudflareOptions, _default as default };
41
+ export { type CloudflareDurableAdapter, type CloudflareOptions, cloudflareDurableAdapter as default };
@@ -1,9 +1,34 @@
1
- import { Adapter, AdapterInstance, AdapterOptions } from '../index.js';
2
- import { W as WebSocket$1 } from '../shared/crossws.ChIJSJVK.js';
3
1
  import * as CF from '@cloudflare/workers-types';
4
2
  import { DurableObject } from 'cloudflare:workers';
3
+ import { AdapterOptions, Adapter, AdapterInstance } from '../index.js';
4
+ import { W as WebSocket$1 } from '../shared/crossws.ChIJSJVK.js';
5
5
 
6
- declare const _default: Adapter<CloudflareDurableAdapter, CloudflareOptions>;
6
+ type ResolveDurableStub = (req: CF.Request, env: unknown, context: CF.ExecutionContext) => CF.DurableObjectStub | Promise<CF.DurableObjectStub>;
7
+ interface CloudflareOptions extends AdapterOptions {
8
+ /**
9
+ * Durable Object binding name from environment.
10
+ *
11
+ * **Note:** This option will be ignored if `resolveDurableStub` is provided.
12
+ *
13
+ * @default "$DurableObject"
14
+ */
15
+ bindingName?: string;
16
+ /**
17
+ * Durable Object instance name.
18
+ *
19
+ * **Note:** This option will be ignored if `resolveDurableStub` is provided.
20
+ *
21
+ * @default "crossws"
22
+ */
23
+ instanceName?: string;
24
+ /**
25
+ * Custom function that resolves Durable Object binding to handle the WebSocket upgrade.
26
+ *
27
+ * **Note:** This option will override `bindingName` and `instanceName`.
28
+ */
29
+ resolveDurableStub?: ResolveDurableStub;
30
+ }
31
+ declare const cloudflareDurableAdapter: Adapter<CloudflareDurableAdapter, CloudflareOptions>;
7
32
 
8
33
  interface CloudflareDurableAdapter extends AdapterInstance {
9
34
  handleUpgrade(req: Request | CF.Request, env: unknown, context: CF.ExecutionContext): Promise<Response>;
@@ -12,9 +37,5 @@ interface CloudflareDurableAdapter extends AdapterInstance {
12
37
  handleDurableMessage(obj: DurableObject, ws: WebSocket | CF.WebSocket | WebSocket$1, message: ArrayBuffer | string): Promise<void>;
13
38
  handleDurableClose(obj: DurableObject, ws: WebSocket | CF.WebSocket | WebSocket$1, code: number, reason: string, wasClean: boolean): Promise<void>;
14
39
  }
15
- interface CloudflareOptions extends AdapterOptions {
16
- bindingName?: string;
17
- instanceName?: string;
18
- }
19
40
 
20
- export { type CloudflareDurableAdapter, type CloudflareOptions, _default as default };
41
+ export { type CloudflareDurableAdapter, type CloudflareOptions, cloudflareDurableAdapter as default };
@@ -1,18 +1,25 @@
1
- import { M as Message, P as Peer, t as toBufferLike } from '../shared/crossws.DLRVRjZs.mjs';
2
- import { d as defineWebSocketAdapter, a as adapterUtils, A as AdapterHookable } from '../shared/crossws.CB4awDDj.mjs';
1
+ import { M as Message, P as Peer, t as toBufferLike } from '../shared/crossws.BS81iGZK.mjs';
2
+ import { a as adapterUtils, A as AdapterHookable } from '../shared/crossws.D9ehKjSh.mjs';
3
3
  import 'uncrypto';
4
4
 
5
- const cloudflareDurable = defineWebSocketAdapter((opts) => {
5
+ const cloudflareDurableAdapter = (opts = {}) => {
6
6
  const hooks = new AdapterHookable(opts);
7
7
  const peers = /* @__PURE__ */ new Set();
8
+ const resolveDurableStub = opts.resolveDurableStub || ((_req, env, _context) => {
9
+ const bindingName = opts.bindingName || "$DurableObject";
10
+ const binding = env[bindingName];
11
+ if (!binding) {
12
+ throw new Error(
13
+ `Durable Object binding "${bindingName}" not available`
14
+ );
15
+ }
16
+ const instanceId = binding.idFromName(opts.instanceName || "crossws");
17
+ return binding.get(instanceId);
18
+ });
8
19
  return {
9
20
  ...adapterUtils(peers),
10
- handleUpgrade: async (req, env, _context) => {
11
- const bindingName = opts?.bindingName ?? "$DurableObject";
12
- const instanceName = opts?.instanceName ?? "crossws";
13
- const binding = env[bindingName];
14
- const id = binding.idFromName(instanceName);
15
- const stub = binding.get(id);
21
+ handleUpgrade: async (req, env, context) => {
22
+ const stub = await resolveDurableStub(req, env, context);
16
23
  return stub.fetch(req);
17
24
  },
18
25
  handleDurableInit: async (obj, state, env) => {
@@ -52,7 +59,7 @@ const cloudflareDurable = defineWebSocketAdapter((opts) => {
52
59
  await hooks.callHook("close", peer, details);
53
60
  }
54
61
  };
55
- });
62
+ };
56
63
  class CloudflareDurablePeer extends Peer {
57
64
  get peers() {
58
65
  return new Set(
@@ -131,4 +138,4 @@ function setAttachedState(ws, state) {
131
138
  ws.serializeAttachment(state);
132
139
  }
133
140
 
134
- export { cloudflareDurable as default };
141
+ export { cloudflareDurableAdapter as default };
@@ -7,6 +7,6 @@ interface CloudflareAdapter extends AdapterInstance {
7
7
  }
8
8
  interface CloudflareOptions extends AdapterOptions {
9
9
  }
10
- declare const _default: Adapter<CloudflareAdapter, CloudflareOptions>;
10
+ declare const cloudflareAdapter: Adapter<CloudflareAdapter, CloudflareOptions>;
11
11
 
12
- export { type CloudflareAdapter, type CloudflareOptions, _default as default };
12
+ export { type CloudflareAdapter, type CloudflareOptions, cloudflareAdapter as default };
@@ -7,6 +7,6 @@ interface CloudflareAdapter extends AdapterInstance {
7
7
  }
8
8
  interface CloudflareOptions extends AdapterOptions {
9
9
  }
10
- declare const _default: Adapter<CloudflareAdapter, CloudflareOptions>;
10
+ declare const cloudflareAdapter: Adapter<CloudflareAdapter, CloudflareOptions>;
11
11
 
12
- export { type CloudflareAdapter, type CloudflareOptions, _default as default };
12
+ export { type CloudflareAdapter, type CloudflareOptions, cloudflareAdapter as default };
@@ -1,60 +1,58 @@
1
- import { M as Message, P as Peer, t as toBufferLike } from '../shared/crossws.DLRVRjZs.mjs';
2
- import { d as defineWebSocketAdapter, a as adapterUtils, A as AdapterHookable } from '../shared/crossws.CB4awDDj.mjs';
1
+ import { M as Message, P as Peer, t as toBufferLike } from '../shared/crossws.BS81iGZK.mjs';
2
+ import { a as adapterUtils, A as AdapterHookable } from '../shared/crossws.D9ehKjSh.mjs';
3
3
  import { W as WSError } from '../shared/crossws.By9qWDAI.mjs';
4
4
  import 'uncrypto';
5
5
 
6
- const cloudflare = defineWebSocketAdapter(
7
- (options = {}) => {
8
- const hooks = new AdapterHookable(options);
9
- const peers = /* @__PURE__ */ new Set();
10
- return {
11
- ...adapterUtils(peers),
12
- handleUpgrade: async (request, env, cfCtx) => {
13
- const { upgradeHeaders, endResponse, context } = await hooks.upgrade(
14
- request
15
- );
16
- if (endResponse) {
17
- return endResponse;
18
- }
19
- const pair = new WebSocketPair();
20
- const client = pair[0];
21
- const server = pair[1];
22
- const peer = new CloudflarePeer({
23
- ws: client,
24
- peers,
25
- wsServer: server,
26
- request,
27
- cfEnv: env,
28
- cfCtx,
29
- context
30
- });
31
- peers.add(peer);
32
- server.accept();
33
- hooks.callHook("open", peer);
34
- server.addEventListener("message", (event) => {
35
- hooks.callHook(
36
- "message",
37
- peer,
38
- new Message(event.data, peer, event)
39
- );
40
- });
41
- server.addEventListener("error", (event) => {
42
- peers.delete(peer);
43
- hooks.callHook("error", peer, new WSError(event.error));
44
- });
45
- server.addEventListener("close", (event) => {
46
- peers.delete(peer);
47
- hooks.callHook("close", peer, event);
48
- });
49
- return new Response(null, {
50
- status: 101,
51
- webSocket: client,
52
- headers: upgradeHeaders
53
- });
6
+ const cloudflareAdapter = (options = {}) => {
7
+ const hooks = new AdapterHookable(options);
8
+ const peers = /* @__PURE__ */ new Set();
9
+ return {
10
+ ...adapterUtils(peers),
11
+ handleUpgrade: async (request, env, cfCtx) => {
12
+ const { upgradeHeaders, endResponse, context } = await hooks.upgrade(
13
+ request
14
+ );
15
+ if (endResponse) {
16
+ return endResponse;
54
17
  }
55
- };
56
- }
57
- );
18
+ const pair = new WebSocketPair();
19
+ const client = pair[0];
20
+ const server = pair[1];
21
+ const peer = new CloudflarePeer({
22
+ ws: client,
23
+ peers,
24
+ wsServer: server,
25
+ request,
26
+ cfEnv: env,
27
+ cfCtx,
28
+ context
29
+ });
30
+ peers.add(peer);
31
+ server.accept();
32
+ hooks.callHook("open", peer);
33
+ server.addEventListener("message", (event) => {
34
+ hooks.callHook(
35
+ "message",
36
+ peer,
37
+ new Message(event.data, peer, event)
38
+ );
39
+ });
40
+ server.addEventListener("error", (event) => {
41
+ peers.delete(peer);
42
+ hooks.callHook("error", peer, new WSError(event.error));
43
+ });
44
+ server.addEventListener("close", (event) => {
45
+ peers.delete(peer);
46
+ hooks.callHook("close", peer, event);
47
+ });
48
+ return new Response(null, {
49
+ status: 101,
50
+ webSocket: client,
51
+ headers: upgradeHeaders
52
+ });
53
+ }
54
+ };
55
+ };
58
56
  class CloudflarePeer extends Peer {
59
57
  send(data) {
60
58
  this._internal.wsServer.send(toBufferLike(data));
@@ -67,4 +65,4 @@ class CloudflarePeer extends Peer {
67
65
  }
68
66
  }
69
67
 
70
- export { cloudflare as default };
68
+ export { cloudflareAdapter as default };
@@ -13,6 +13,6 @@ type ServeHandlerInfo = {
13
13
  port: number;
14
14
  };
15
15
  };
16
- declare const _default: Adapter<DenoAdapter, DenoOptions>;
16
+ declare const denoAdapter: Adapter<DenoAdapter, DenoOptions>;
17
17
 
18
- export { type DenoAdapter, type DenoOptions, _default as default };
18
+ export { type DenoAdapter, type DenoOptions, denoAdapter as default };
@@ -13,6 +13,6 @@ type ServeHandlerInfo = {
13
13
  port: number;
14
14
  };
15
15
  };
16
- declare const _default: Adapter<DenoAdapter, DenoOptions>;
16
+ declare const denoAdapter: Adapter<DenoAdapter, DenoOptions>;
17
17
 
18
- export { type DenoAdapter, type DenoOptions, _default as default };
18
+ export { type DenoAdapter, type DenoOptions, denoAdapter as default };
@@ -1,50 +1,48 @@
1
- import { M as Message, P as Peer, t as toBufferLike } from '../shared/crossws.DLRVRjZs.mjs';
2
- import { d as defineWebSocketAdapter, a as adapterUtils, A as AdapterHookable } from '../shared/crossws.CB4awDDj.mjs';
1
+ import { M as Message, P as Peer, t as toBufferLike } from '../shared/crossws.BS81iGZK.mjs';
2
+ import { a as adapterUtils, A as AdapterHookable } from '../shared/crossws.D9ehKjSh.mjs';
3
3
  import { W as WSError } from '../shared/crossws.By9qWDAI.mjs';
4
4
  import 'uncrypto';
5
5
 
6
- const deno = defineWebSocketAdapter(
7
- (options = {}) => {
8
- const hooks = new AdapterHookable(options);
9
- const peers = /* @__PURE__ */ new Set();
10
- return {
11
- ...adapterUtils(peers),
12
- handleUpgrade: async (request, info) => {
13
- const { upgradeHeaders, endResponse, context } = await hooks.upgrade(request);
14
- if (endResponse) {
15
- return endResponse;
16
- }
17
- const upgrade = Deno.upgradeWebSocket(request, {
18
- // @ts-expect-error https://github.com/denoland/deno/pull/22242
19
- headers: upgradeHeaders
20
- });
21
- const peer = new DenoPeer({
22
- ws: upgrade.socket,
23
- request,
24
- peers,
25
- denoInfo: info,
26
- context
27
- });
28
- peers.add(peer);
29
- upgrade.socket.addEventListener("open", () => {
30
- hooks.callHook("open", peer);
31
- });
32
- upgrade.socket.addEventListener("message", (event) => {
33
- hooks.callHook("message", peer, new Message(event.data, peer, event));
34
- });
35
- upgrade.socket.addEventListener("close", () => {
36
- peers.delete(peer);
37
- hooks.callHook("close", peer, {});
38
- });
39
- upgrade.socket.addEventListener("error", (error) => {
40
- peers.delete(peer);
41
- hooks.callHook("error", peer, new WSError(error));
42
- });
43
- return upgrade.response;
6
+ const denoAdapter = (options = {}) => {
7
+ const hooks = new AdapterHookable(options);
8
+ const peers = /* @__PURE__ */ new Set();
9
+ return {
10
+ ...adapterUtils(peers),
11
+ handleUpgrade: async (request, info) => {
12
+ const { upgradeHeaders, endResponse, context } = await hooks.upgrade(request);
13
+ if (endResponse) {
14
+ return endResponse;
44
15
  }
45
- };
46
- }
47
- );
16
+ const upgrade = Deno.upgradeWebSocket(request, {
17
+ // @ts-expect-error https://github.com/denoland/deno/pull/22242
18
+ headers: upgradeHeaders
19
+ });
20
+ const peer = new DenoPeer({
21
+ ws: upgrade.socket,
22
+ request,
23
+ peers,
24
+ denoInfo: info,
25
+ context
26
+ });
27
+ peers.add(peer);
28
+ upgrade.socket.addEventListener("open", () => {
29
+ hooks.callHook("open", peer);
30
+ });
31
+ upgrade.socket.addEventListener("message", (event) => {
32
+ hooks.callHook("message", peer, new Message(event.data, peer, event));
33
+ });
34
+ upgrade.socket.addEventListener("close", () => {
35
+ peers.delete(peer);
36
+ hooks.callHook("close", peer, {});
37
+ });
38
+ upgrade.socket.addEventListener("error", (error) => {
39
+ peers.delete(peer);
40
+ hooks.callHook("error", peer, new WSError(error));
41
+ });
42
+ return upgrade.response;
43
+ }
44
+ };
45
+ };
48
46
  class DenoPeer extends Peer {
49
47
  get remoteAddress() {
50
48
  return this._internal.denoInfo.remoteAddr?.hostname;
@@ -68,4 +66,4 @@ class DenoPeer extends Peer {
68
66
  }
69
67
  }
70
68
 
71
- export { deno as default };
69
+ export { denoAdapter as default };
@@ -1,13 +1,11 @@
1
1
  import { AdapterInstance, AdapterOptions, Adapter } from '../index.mjs';
2
- import { IncomingMessage as IncomingMessage$1 } from 'node:http';
3
- import { Duplex as Duplex$1 } from 'node:stream';
2
+ import { IncomingMessage, Server as Server$1, ClientRequestArgs, ClientRequest, OutgoingHttpHeaders, Agent } from 'node:http';
3
+ import { Duplex, DuplexOptions } from 'node:stream';
4
4
  import { EventEmitter } from 'events';
5
- import { IncomingMessage, Server as Server$1, ClientRequestArgs, ClientRequest, OutgoingHttpHeaders, Agent } from 'http';
6
- import { Server as Server$2 } from 'https';
7
- import { Duplex, DuplexOptions } from 'stream';
8
- import { SecureContextOptions } from 'tls';
9
- import { URL } from 'url';
10
- import { ZlibOptions } from 'zlib';
5
+ import { Server as Server$2 } from 'node:https';
6
+ import { SecureContextOptions } from 'node:tls';
7
+ import { URL } from 'node:url';
8
+ import { ZlibOptions } from 'node:zlib';
11
9
  import '../shared/crossws.ChIJSJVK.mjs';
12
10
 
13
11
  type BufferLike = string | Buffer | DataView | number | ArrayBufferView | Uint8Array | ArrayBuffer | SharedArrayBuffer | readonly any[] | readonly number[] | {
@@ -288,13 +286,13 @@ type WebSocketServer = Server;
288
286
  declare function createWebSocketStream(websocket: WebSocket, options?: DuplexOptions): Duplex;
289
287
 
290
288
  interface NodeAdapter extends AdapterInstance {
291
- handleUpgrade(req: IncomingMessage$1, socket: Duplex$1, head: Buffer): void;
289
+ handleUpgrade(req: IncomingMessage, socket: Duplex, head: Buffer): void;
292
290
  closeAll: (code?: number, data?: string | Buffer) => void;
293
291
  }
294
292
  interface NodeOptions extends AdapterOptions {
295
293
  wss?: WebSocketServer;
296
294
  serverOptions?: ServerOptions;
297
295
  }
298
- declare const _default: Adapter<NodeAdapter, NodeOptions>;
296
+ declare const nodeAdapter: Adapter<NodeAdapter, NodeOptions>;
299
297
 
300
- export { type NodeAdapter, type NodeOptions, _default as default };
298
+ export { type NodeAdapter, type NodeOptions, nodeAdapter as default };
@@ -1,13 +1,11 @@
1
1
  import { AdapterInstance, AdapterOptions, Adapter } from '../index.js';
2
- import { IncomingMessage as IncomingMessage$1 } from 'node:http';
3
- import { Duplex as Duplex$1 } from 'node:stream';
2
+ import { IncomingMessage, Server as Server$1, ClientRequestArgs, ClientRequest, OutgoingHttpHeaders, Agent } from 'node:http';
3
+ import { Duplex, DuplexOptions } from 'node:stream';
4
4
  import { EventEmitter } from 'events';
5
- import { IncomingMessage, Server as Server$1, ClientRequestArgs, ClientRequest, OutgoingHttpHeaders, Agent } from 'http';
6
- import { Server as Server$2 } from 'https';
7
- import { Duplex, DuplexOptions } from 'stream';
8
- import { SecureContextOptions } from 'tls';
9
- import { URL } from 'url';
10
- import { ZlibOptions } from 'zlib';
5
+ import { Server as Server$2 } from 'node:https';
6
+ import { SecureContextOptions } from 'node:tls';
7
+ import { URL } from 'node:url';
8
+ import { ZlibOptions } from 'node:zlib';
11
9
  import '../shared/crossws.ChIJSJVK.js';
12
10
 
13
11
  type BufferLike = string | Buffer | DataView | number | ArrayBufferView | Uint8Array | ArrayBuffer | SharedArrayBuffer | readonly any[] | readonly number[] | {
@@ -288,13 +286,13 @@ type WebSocketServer = Server;
288
286
  declare function createWebSocketStream(websocket: WebSocket, options?: DuplexOptions): Duplex;
289
287
 
290
288
  interface NodeAdapter extends AdapterInstance {
291
- handleUpgrade(req: IncomingMessage$1, socket: Duplex$1, head: Buffer): void;
289
+ handleUpgrade(req: IncomingMessage, socket: Duplex, head: Buffer): void;
292
290
  closeAll: (code?: number, data?: string | Buffer) => void;
293
291
  }
294
292
  interface NodeOptions extends AdapterOptions {
295
293
  wss?: WebSocketServer;
296
294
  serverOptions?: ServerOptions;
297
295
  }
298
- declare const _default: Adapter<NodeAdapter, NodeOptions>;
296
+ declare const nodeAdapter: Adapter<NodeAdapter, NodeOptions>;
299
297
 
300
- export { type NodeAdapter, type NodeOptions, _default as default };
298
+ export { type NodeAdapter, type NodeOptions, nodeAdapter as default };