crossws 0.2.4 → 0.3.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 (66) hide show
  1. package/README.md +8 -9
  2. package/adapters/cloudflare-durable.d.ts +2 -0
  3. package/adapters/sse.d.ts +2 -0
  4. package/dist/adapters/bun.d.mts +25 -6
  5. package/dist/adapters/bun.d.ts +25 -6
  6. package/dist/adapters/bun.mjs +54 -62
  7. package/dist/adapters/cloudflare-durable.d.mts +20 -0
  8. package/dist/adapters/cloudflare-durable.d.ts +20 -0
  9. package/dist/adapters/cloudflare-durable.mjs +132 -0
  10. package/dist/adapters/cloudflare.d.mts +5 -5
  11. package/dist/adapters/cloudflare.d.ts +5 -5
  12. package/dist/adapters/cloudflare.mjs +56 -49
  13. package/dist/adapters/deno.d.mts +10 -3
  14. package/dist/adapters/deno.d.ts +10 -3
  15. package/dist/adapters/deno.mjs +54 -45
  16. package/dist/adapters/node.d.mts +4 -2
  17. package/dist/adapters/node.d.ts +4 -2
  18. package/dist/adapters/node.mjs +106 -82
  19. package/dist/adapters/sse.d.mts +12 -0
  20. package/dist/adapters/sse.d.ts +12 -0
  21. package/dist/adapters/sse.mjs +120 -0
  22. package/dist/adapters/uws.d.mts +45 -9
  23. package/dist/adapters/uws.d.ts +45 -9
  24. package/dist/adapters/uws.mjs +148 -124
  25. package/dist/index.d.mts +136 -4
  26. package/dist/index.d.ts +136 -4
  27. package/dist/index.mjs +1 -10
  28. package/dist/shared/crossws.B4sHId41.mjs +42 -0
  29. package/dist/shared/crossws.By9qWDAI.mjs +8 -0
  30. package/dist/shared/crossws.ChIJSJVK.d.mts +297 -0
  31. package/dist/shared/crossws.ChIJSJVK.d.ts +297 -0
  32. package/dist/shared/crossws.DTY7a69w.mjs +315 -0
  33. package/dist/shared/{crossws.a5db571c.mjs → crossws.YgHWLi0G.mjs} +284 -115
  34. package/dist/websocket/{index.d.mts → native.d.mts} +1 -1
  35. package/dist/websocket/{node.d.cts → native.d.ts} +1 -1
  36. package/dist/websocket/native.mjs +3 -0
  37. package/dist/websocket/node.d.mts +1 -1
  38. package/dist/websocket/node.d.ts +1 -1
  39. package/dist/websocket/node.mjs +1 -1
  40. package/dist/websocket/sse.d.mts +41 -0
  41. package/dist/websocket/sse.d.ts +41 -0
  42. package/dist/websocket/sse.mjs +127 -0
  43. package/package.json +78 -75
  44. package/dist/adapters/bun.cjs +0 -95
  45. package/dist/adapters/bun.d.cts +0 -17
  46. package/dist/adapters/cloudflare.cjs +0 -65
  47. package/dist/adapters/cloudflare.d.cts +0 -12
  48. package/dist/adapters/deno.cjs +0 -63
  49. package/dist/adapters/deno.d.cts +0 -15
  50. package/dist/adapters/node.cjs +0 -739
  51. package/dist/adapters/node.d.cts +0 -298
  52. package/dist/adapters/uws.cjs +0 -153
  53. package/dist/adapters/uws.d.cts +0 -19
  54. package/dist/index.cjs +0 -17
  55. package/dist/index.d.cts +0 -6
  56. package/dist/shared/crossws.2ed26345.cjs +0 -3931
  57. package/dist/shared/crossws.36b9e66f.cjs +0 -156
  58. package/dist/shared/crossws.381454fe.d.cts +0 -115
  59. package/dist/shared/crossws.381454fe.d.mts +0 -115
  60. package/dist/shared/crossws.381454fe.d.ts +0 -115
  61. package/dist/shared/crossws.77e89680.mjs +0 -149
  62. package/dist/websocket/index.cjs +0 -5
  63. package/dist/websocket/index.d.cts +0 -10
  64. package/dist/websocket/index.d.ts +0 -10
  65. package/dist/websocket/index.mjs +0 -3
  66. package/dist/websocket/node.cjs +0 -17
@@ -1,298 +0,0 @@
1
- import { A as AdapterOptions, b as Adapter } from '../shared/crossws.381454fe.cjs';
2
- import { IncomingMessage as IncomingMessage$1 } from 'node:http';
3
- import { Duplex as Duplex$1 } from 'node:stream';
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';
11
-
12
- type BufferLike = string | Buffer | DataView | number | ArrayBufferView | Uint8Array | ArrayBuffer | SharedArrayBuffer | readonly any[] | readonly number[] | {
13
- valueOf(): ArrayBuffer;
14
- } | {
15
- valueOf(): SharedArrayBuffer;
16
- } | {
17
- valueOf(): Uint8Array;
18
- } | {
19
- valueOf(): readonly number[];
20
- } | {
21
- valueOf(): string;
22
- } | {
23
- [Symbol.toPrimitive](hint: string): string;
24
- };
25
- declare class WebSocket extends EventEmitter {
26
- static readonly createWebSocketStream: typeof createWebSocketStream;
27
- static readonly WebSocketServer: WebSocketServer;
28
- static readonly Server: typeof Server;
29
- static readonly WebSocket: typeof WebSocket;
30
- /** The connection is not yet open. */
31
- static readonly CONNECTING: 0;
32
- /** The connection is open and ready to communicate. */
33
- static readonly OPEN: 1;
34
- /** The connection is in the process of closing. */
35
- static readonly CLOSING: 2;
36
- /** The connection is closed. */
37
- static readonly CLOSED: 3;
38
- binaryType: "nodebuffer" | "arraybuffer" | "fragments";
39
- readonly bufferedAmount: number;
40
- readonly extensions: string;
41
- /** Indicates whether the websocket is paused */
42
- readonly isPaused: boolean;
43
- readonly protocol: string;
44
- /** The current state of the connection */
45
- readonly readyState: typeof WebSocket.CONNECTING | typeof WebSocket.OPEN | typeof WebSocket.CLOSING | typeof WebSocket.CLOSED;
46
- readonly url: string;
47
- /** The connection is not yet open. */
48
- readonly CONNECTING: 0;
49
- /** The connection is open and ready to communicate. */
50
- readonly OPEN: 1;
51
- /** The connection is in the process of closing. */
52
- readonly CLOSING: 2;
53
- /** The connection is closed. */
54
- readonly CLOSED: 3;
55
- onopen: ((event: Event) => void) | null;
56
- onerror: ((event: ErrorEvent) => void) | null;
57
- onclose: ((event: CloseEvent) => void) | null;
58
- onmessage: ((event: MessageEvent) => void) | null;
59
- constructor(address: null);
60
- constructor(address: string | URL, options?: ClientOptions | ClientRequestArgs);
61
- constructor(address: string | URL, protocols?: string | string[], options?: ClientOptions | ClientRequestArgs);
62
- close(code?: number, data?: string | Buffer): void;
63
- ping(data?: any, mask?: boolean, cb?: (err: Error) => void): void;
64
- pong(data?: any, mask?: boolean, cb?: (err: Error) => void): void;
65
- send(data: BufferLike, cb?: (err?: Error) => void): void;
66
- send(data: BufferLike, options: {
67
- mask?: boolean | undefined;
68
- binary?: boolean | undefined;
69
- compress?: boolean | undefined;
70
- fin?: boolean | undefined;
71
- }, cb?: (err?: Error) => void): void;
72
- terminate(): void;
73
- /**
74
- * Pause the websocket causing it to stop emitting events. Some events can still be
75
- * emitted after this is called, until all buffered data is consumed. This method
76
- * is a noop if the ready state is `CONNECTING` or `CLOSED`.
77
- */
78
- pause(): void;
79
- /**
80
- * Make a paused socket resume emitting events. This method is a noop if the ready
81
- * state is `CONNECTING` or `CLOSED`.
82
- */
83
- resume(): void;
84
- addEventListener(method: "message", cb: (event: MessageEvent) => void, options?: EventListenerOptions): void;
85
- addEventListener(method: "close", cb: (event: CloseEvent) => void, options?: EventListenerOptions): void;
86
- addEventListener(method: "error", cb: (event: ErrorEvent) => void, options?: EventListenerOptions): void;
87
- addEventListener(method: "open", cb: (event: Event) => void, options?: EventListenerOptions): void;
88
- removeEventListener(method: "message", cb: (event: MessageEvent) => void): void;
89
- removeEventListener(method: "close", cb: (event: CloseEvent) => void): void;
90
- removeEventListener(method: "error", cb: (event: ErrorEvent) => void): void;
91
- removeEventListener(method: "open", cb: (event: Event) => void): void;
92
- on(event: "close", listener: (this: WebSocket, code: number, reason: Buffer) => void): this;
93
- on(event: "error", listener: (this: WebSocket, err: Error) => void): this;
94
- on(event: "upgrade", listener: (this: WebSocket, request: IncomingMessage) => void): this;
95
- on(event: "message", listener: (this: WebSocket, data: RawData, isBinary: boolean) => void): this;
96
- on(event: "open", listener: (this: WebSocket) => void): this;
97
- on(event: "ping" | "pong", listener: (this: WebSocket, data: Buffer) => void): this;
98
- on(event: "unexpected-response", listener: (this: WebSocket, request: ClientRequest, response: IncomingMessage) => void): this;
99
- on(event: string | symbol, listener: (this: WebSocket, ...args: any[]) => void): this;
100
- once(event: "close", listener: (this: WebSocket, code: number, reason: Buffer) => void): this;
101
- once(event: "error", listener: (this: WebSocket, err: Error) => void): this;
102
- once(event: "upgrade", listener: (this: WebSocket, request: IncomingMessage) => void): this;
103
- once(event: "message", listener: (this: WebSocket, data: RawData, isBinary: boolean) => void): this;
104
- once(event: "open", listener: (this: WebSocket) => void): this;
105
- once(event: "ping" | "pong", listener: (this: WebSocket, data: Buffer) => void): this;
106
- once(event: "unexpected-response", listener: (this: WebSocket, request: ClientRequest, response: IncomingMessage) => void): this;
107
- once(event: string | symbol, listener: (this: WebSocket, ...args: any[]) => void): this;
108
- off(event: "close", listener: (this: WebSocket, code: number, reason: Buffer) => void): this;
109
- off(event: "error", listener: (this: WebSocket, err: Error) => void): this;
110
- off(event: "upgrade", listener: (this: WebSocket, request: IncomingMessage) => void): this;
111
- off(event: "message", listener: (this: WebSocket, data: RawData, isBinary: boolean) => void): this;
112
- off(event: "open", listener: (this: WebSocket) => void): this;
113
- off(event: "ping" | "pong", listener: (this: WebSocket, data: Buffer) => void): this;
114
- off(event: "unexpected-response", listener: (this: WebSocket, request: ClientRequest, response: IncomingMessage) => void): this;
115
- off(event: string | symbol, listener: (this: WebSocket, ...args: any[]) => void): this;
116
- addListener(event: "close", listener: (code: number, reason: Buffer) => void): this;
117
- addListener(event: "error", listener: (err: Error) => void): this;
118
- addListener(event: "upgrade", listener: (request: IncomingMessage) => void): this;
119
- addListener(event: "message", listener: (data: RawData, isBinary: boolean) => void): this;
120
- addListener(event: "open", listener: () => void): this;
121
- addListener(event: "ping" | "pong", listener: (data: Buffer) => void): this;
122
- addListener(event: "unexpected-response", listener: (request: ClientRequest, response: IncomingMessage) => void): this;
123
- addListener(event: string | symbol, listener: (...args: any[]) => void): this;
124
- removeListener(event: "close", listener: (code: number, reason: Buffer) => void): this;
125
- removeListener(event: "error", listener: (err: Error) => void): this;
126
- removeListener(event: "upgrade", listener: (request: IncomingMessage) => void): this;
127
- removeListener(event: "message", listener: (data: RawData, isBinary: boolean) => void): this;
128
- removeListener(event: "open", listener: () => void): this;
129
- removeListener(event: "ping" | "pong", listener: (data: Buffer) => void): this;
130
- removeListener(event: "unexpected-response", listener: (request: ClientRequest, response: IncomingMessage) => void): this;
131
- removeListener(event: string | symbol, listener: (...args: any[]) => void): this;
132
- }
133
- /**
134
- * Data represents the raw message payload received over the
135
- */
136
- type RawData = Buffer | ArrayBuffer | Buffer[];
137
- /**
138
- * Data represents the message payload received over the
139
- */
140
- type Data = string | Buffer | ArrayBuffer | Buffer[];
141
- /**
142
- * CertMeta represents the accepted types for certificate & key data.
143
- */
144
- type CertMeta = string | string[] | Buffer | Buffer[];
145
- /**
146
- * VerifyClientCallbackSync is a synchronous callback used to inspect the
147
- * incoming message. The return value (boolean) of the function determines
148
- * whether or not to accept the handshake.
149
- */
150
- type VerifyClientCallbackSync<Request extends IncomingMessage = IncomingMessage> = (info: {
151
- origin: string;
152
- secure: boolean;
153
- req: Request;
154
- }) => boolean;
155
- /**
156
- * VerifyClientCallbackAsync is an asynchronous callback used to inspect the
157
- * incoming message. The return value (boolean) of the function determines
158
- * whether or not to accept the handshake.
159
- */
160
- type VerifyClientCallbackAsync<Request extends IncomingMessage = IncomingMessage> = (info: {
161
- origin: string;
162
- secure: boolean;
163
- req: Request;
164
- }, callback: (res: boolean, code?: number, message?: string, headers?: OutgoingHttpHeaders) => void) => void;
165
- interface ClientOptions extends SecureContextOptions {
166
- protocol?: string | undefined;
167
- followRedirects?: boolean | undefined;
168
- generateMask?(mask: Buffer): void;
169
- handshakeTimeout?: number | undefined;
170
- maxRedirects?: number | undefined;
171
- perMessageDeflate?: boolean | PerMessageDeflateOptions | undefined;
172
- localAddress?: string | undefined;
173
- protocolVersion?: number | undefined;
174
- headers?: {
175
- [key: string]: string;
176
- } | undefined;
177
- origin?: string | undefined;
178
- agent?: Agent | undefined;
179
- host?: string | undefined;
180
- family?: number | undefined;
181
- checkServerIdentity?(servername: string, cert: CertMeta): boolean;
182
- rejectUnauthorized?: boolean | undefined;
183
- maxPayload?: number | undefined;
184
- skipUTF8Validation?: boolean | undefined;
185
- }
186
- interface PerMessageDeflateOptions {
187
- serverNoContextTakeover?: boolean | undefined;
188
- clientNoContextTakeover?: boolean | undefined;
189
- serverMaxWindowBits?: number | undefined;
190
- clientMaxWindowBits?: number | undefined;
191
- zlibDeflateOptions?: {
192
- flush?: number | undefined;
193
- finishFlush?: number | undefined;
194
- chunkSize?: number | undefined;
195
- windowBits?: number | undefined;
196
- level?: number | undefined;
197
- memLevel?: number | undefined;
198
- strategy?: number | undefined;
199
- dictionary?: Buffer | Buffer[] | DataView | undefined;
200
- info?: boolean | undefined;
201
- } | undefined;
202
- zlibInflateOptions?: ZlibOptions | undefined;
203
- threshold?: number | undefined;
204
- concurrencyLimit?: number | undefined;
205
- }
206
- interface Event {
207
- type: string;
208
- target: WebSocket;
209
- }
210
- interface ErrorEvent {
211
- error: any;
212
- message: string;
213
- type: string;
214
- target: WebSocket;
215
- }
216
- interface CloseEvent {
217
- wasClean: boolean;
218
- code: number;
219
- reason: string;
220
- type: string;
221
- target: WebSocket;
222
- }
223
- interface MessageEvent {
224
- data: Data;
225
- type: string;
226
- target: WebSocket;
227
- }
228
- interface EventListenerOptions {
229
- once?: boolean | undefined;
230
- }
231
- interface ServerOptions<U extends typeof WebSocket = typeof WebSocket, V extends typeof IncomingMessage = typeof IncomingMessage> {
232
- host?: string | undefined;
233
- port?: number | undefined;
234
- backlog?: number | undefined;
235
- server?: Server$1<V> | Server$2<V> | undefined;
236
- verifyClient?: VerifyClientCallbackAsync<InstanceType<V>> | VerifyClientCallbackSync<InstanceType<V>> | undefined;
237
- handleProtocols?: (protocols: Set<string>, request: InstanceType<V>) => string | false;
238
- path?: string | undefined;
239
- noServer?: boolean | undefined;
240
- clientTracking?: boolean | undefined;
241
- perMessageDeflate?: boolean | PerMessageDeflateOptions | undefined;
242
- maxPayload?: number | undefined;
243
- skipUTF8Validation?: boolean | undefined;
244
- WebSocket?: U | undefined;
245
- }
246
- interface AddressInfo {
247
- address: string;
248
- family: string;
249
- port: number;
250
- }
251
- declare class Server<T extends typeof WebSocket = typeof WebSocket, U extends typeof IncomingMessage = typeof IncomingMessage> extends EventEmitter {
252
- options: ServerOptions<T, U>;
253
- path: string;
254
- clients: Set<InstanceType<T>>;
255
- constructor(options?: ServerOptions<T, U>, callback?: () => void);
256
- address(): AddressInfo | string;
257
- close(cb?: (err?: Error) => void): void;
258
- handleUpgrade(request: InstanceType<U>, socket: Duplex, upgradeHead: Buffer, callback: (client: InstanceType<T>, request: InstanceType<U>) => void): void;
259
- shouldHandle(request: InstanceType<U>): boolean | Promise<boolean>;
260
- on(event: "connection", cb: (this: Server<T>, socket: InstanceType<T>, request: InstanceType<U>) => void): this;
261
- on(event: "error", cb: (this: Server<T>, error: Error) => void): this;
262
- on(event: "headers", cb: (this: Server<T>, headers: string[], request: InstanceType<U>) => void): this;
263
- on(event: "close" | "listening", cb: (this: Server<T>) => void): this;
264
- on(event: string | symbol, listener: (this: Server<T>, ...args: any[]) => void): this;
265
- once(event: "connection", cb: (this: Server<T>, socket: InstanceType<T>, request: InstanceType<U>) => void): this;
266
- once(event: "error", cb: (this: Server<T>, error: Error) => void): this;
267
- once(event: "headers", cb: (this: Server<T>, headers: string[], request: InstanceType<U>) => void): this;
268
- once(event: "close" | "listening", cb: (this: Server<T>) => void): this;
269
- once(event: string | symbol, listener: (this: Server<T>, ...args: any[]) => void): this;
270
- off(event: "connection", cb: (this: Server<T>, socket: InstanceType<T>, request: InstanceType<U>) => void): this;
271
- off(event: "error", cb: (this: Server<T>, error: Error) => void): this;
272
- off(event: "headers", cb: (this: Server<T>, headers: string[], request: InstanceType<U>) => void): this;
273
- off(event: "close" | "listening", cb: (this: Server<T>) => void): this;
274
- off(event: string | symbol, listener: (this: Server<T>, ...args: any[]) => void): this;
275
- addListener(event: "connection", cb: (client: InstanceType<T>, request: InstanceType<U>) => void): this;
276
- addListener(event: "error", cb: (err: Error) => void): this;
277
- addListener(event: "headers", cb: (headers: string[], request: InstanceType<U>) => void): this;
278
- addListener(event: "close" | "listening", cb: () => void): this;
279
- addListener(event: string | symbol, listener: (...args: any[]) => void): this;
280
- removeListener(event: "connection", cb: (client: InstanceType<T>, request: InstanceType<U>) => void): this;
281
- removeListener(event: "error", cb: (err: Error) => void): this;
282
- removeListener(event: "headers", cb: (headers: string[], request: InstanceType<U>) => void): this;
283
- removeListener(event: "close" | "listening", cb: () => void): this;
284
- removeListener(event: string | symbol, listener: (...args: any[]) => void): this;
285
- }
286
- type WebSocketServer = Server;
287
- declare function createWebSocketStream(websocket: WebSocket, options?: DuplexOptions): Duplex;
288
-
289
- interface NodeAdapter {
290
- handleUpgrade(req: IncomingMessage$1, socket: Duplex$1, head: Buffer): void;
291
- }
292
- interface NodeOptions extends AdapterOptions {
293
- wss?: WebSocketServer;
294
- serverOptions?: ServerOptions;
295
- }
296
- declare const _default: Adapter<NodeAdapter, NodeOptions>;
297
-
298
- export { type NodeAdapter, type NodeOptions, _default as default };
@@ -1,153 +0,0 @@
1
- 'use strict';
2
-
3
- const types = require('../shared/crossws.36b9e66f.cjs');
4
-
5
- var __defProp = Object.defineProperty;
6
- var __defNormalProp = (obj, key, value) => key in obj ? __defProp(obj, key, { enumerable: true, configurable: true, writable: true, value }) : obj[key] = value;
7
- var __publicField = (obj, key, value) => {
8
- __defNormalProp(obj, typeof key !== "symbol" ? key + "" : key, value);
9
- return value;
10
- };
11
- const uws = types.defineWebSocketAdapter(
12
- (options = {}) => {
13
- const crossws = types.createCrossWS(options);
14
- const getPeer = (ws) => {
15
- const userData = ws.getUserData();
16
- if (userData._peer) {
17
- return userData._peer;
18
- }
19
- const peer = new UWSPeer({ uws: { ws, userData } });
20
- userData._peer = peer;
21
- return peer;
22
- };
23
- const websocket = {
24
- ...options.uws,
25
- close(ws, code, message) {
26
- const peer = getPeer(ws);
27
- crossws.$callHook("uws:close", peer, ws, code, message);
28
- crossws.callHook("close", peer, { code, reason: message?.toString() });
29
- },
30
- drain(ws) {
31
- const peer = getPeer(ws);
32
- crossws.$callHook("uws:drain", peer, ws);
33
- },
34
- message(ws, message, isBinary) {
35
- const peer = getPeer(ws);
36
- crossws.$callHook("uws:message", peer, ws, message, isBinary);
37
- const msg = new types.Message(message, isBinary);
38
- crossws.callHook("message", peer, msg);
39
- },
40
- open(ws) {
41
- const peer = getPeer(ws);
42
- crossws.$callHook("uws:open", peer, ws);
43
- crossws.callHook("open", peer);
44
- },
45
- ping(ws, message) {
46
- const peer = getPeer(ws);
47
- crossws.$callHook("uws:ping", peer, ws, message);
48
- },
49
- pong(ws, message) {
50
- const peer = getPeer(ws);
51
- crossws.$callHook("uws:pong", peer, ws, message);
52
- },
53
- subscription(ws, topic, newCount, oldCount) {
54
- const peer = getPeer(ws);
55
- crossws.$callHook(
56
- "uws:subscription",
57
- peer,
58
- ws,
59
- topic,
60
- newCount,
61
- oldCount
62
- );
63
- },
64
- async upgrade(res, req, context) {
65
- let aborted = false;
66
- res.onAborted(() => {
67
- aborted = true;
68
- });
69
- const { headers } = await crossws.upgrade({
70
- get url() {
71
- return req.getUrl();
72
- },
73
- get headers() {
74
- return _getHeaders(req);
75
- }
76
- });
77
- res.writeStatus("101 Switching Protocols");
78
- for (const [key, value] of new Headers(headers)) {
79
- res.writeHeader(key, value);
80
- }
81
- if (aborted) {
82
- return;
83
- }
84
- res.cork(() => {
85
- res.upgrade(
86
- {
87
- req,
88
- res,
89
- context
90
- },
91
- req.getHeader("sec-websocket-key"),
92
- req.getHeader("sec-websocket-protocol"),
93
- req.getHeader("sec-websocket-extensions"),
94
- context
95
- );
96
- });
97
- }
98
- };
99
- return {
100
- websocket
101
- };
102
- }
103
- );
104
- class UWSPeer extends types.Peer {
105
- constructor() {
106
- super(...arguments);
107
- __publicField(this, "_headers");
108
- __publicField(this, "_decoder", new TextDecoder());
109
- }
110
- get addr() {
111
- try {
112
- const addr = this._decoder.decode(
113
- this.ctx.uws.ws?.getRemoteAddressAsText()
114
- );
115
- return addr.replace(/(0000:)+/, "");
116
- } catch {
117
- }
118
- }
119
- // TODO
120
- // get readyState() {}
121
- get url() {
122
- return this.ctx.uws.userData.req.getUrl();
123
- }
124
- get headers() {
125
- if (!this._headers) {
126
- this._headers = _getHeaders(this.ctx.uws.userData.req);
127
- }
128
- return this._headers;
129
- }
130
- send(message, options) {
131
- return this.ctx.uws.ws.send(
132
- types.toBufferLike(message),
133
- options?.binary,
134
- options?.compress
135
- );
136
- }
137
- subscribe(topic) {
138
- this.ctx.uws.ws.subscribe(topic);
139
- }
140
- publish(topic, message, options) {
141
- this.ctx.uws.ws.publish(topic, message, options?.binary, options?.compress);
142
- return 0;
143
- }
144
- }
145
- function _getHeaders(req) {
146
- const headers = [];
147
- req.forEach((key, value) => {
148
- headers.push([key, value]);
149
- });
150
- return headers;
151
- }
152
-
153
- module.exports = uws;
@@ -1,19 +0,0 @@
1
- import { A as AdapterOptions, b as Adapter } from '../shared/crossws.381454fe.cjs';
2
- import { WebSocketBehavior, HttpRequest, HttpResponse } from 'uWebSockets.js';
3
-
4
- type UserData = {
5
- _peer?: any;
6
- req: HttpRequest;
7
- res: HttpResponse;
8
- context: any;
9
- };
10
- type WebSocketHandler = WebSocketBehavior<UserData>;
11
- interface UWSAdapter {
12
- websocket: WebSocketHandler;
13
- }
14
- interface UWSOptions extends AdapterOptions {
15
- uws?: Exclude<WebSocketBehavior<any>, "close" | "drain" | "message" | "open" | "ping" | "pong" | "subscription" | "upgrade">;
16
- }
17
- declare const _default: Adapter<UWSAdapter, UWSOptions>;
18
-
19
- export { type UWSAdapter, type UWSOptions, _default as default };
package/dist/index.cjs DELETED
@@ -1,17 +0,0 @@
1
- 'use strict';
2
-
3
- const types = require('./shared/crossws.36b9e66f.cjs');
4
-
5
- class WSError extends Error {
6
- constructor(...args) {
7
- super(...args);
8
- this.name = "WSError";
9
- }
10
- }
11
-
12
- exports.Message = types.Message;
13
- exports.Peer = types.Peer;
14
- exports.createCrossWS = types.createCrossWS;
15
- exports.defineHooks = types.defineHooks;
16
- exports.defineWebSocketAdapter = types.defineWebSocketAdapter;
17
- exports.WSError = WSError;
package/dist/index.d.cts DELETED
@@ -1,6 +0,0 @@
1
- import { A as AdapterOptions, C as CrossWS } from './shared/crossws.381454fe.cjs';
2
- export { b as Adapter, f as AdapterHooks, a as Caller, H as Hooks, M as Message, P as Peer, R as ResolveHooks, W as WSError, c as WSRequest, e as defineHooks, d as defineWebSocketAdapter } from './shared/crossws.381454fe.cjs';
3
-
4
- declare function createCrossWS(opts?: AdapterOptions): CrossWS;
5
-
6
- export { AdapterOptions, CrossWS, createCrossWS };