openai 6.33.0 → 6.35.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.
- package/CHANGELOG.md +70 -0
- package/README.md +96 -0
- package/auth/index.d.mts +4 -0
- package/auth/index.d.mts.map +1 -0
- package/auth/index.d.ts +4 -0
- package/auth/index.d.ts.map +1 -0
- package/auth/index.js +11 -0
- package/auth/index.js.map +1 -0
- package/auth/index.mjs +3 -0
- package/auth/index.mjs.map +1 -0
- package/auth/subject-token-providers.d.mts +20 -0
- package/auth/subject-token-providers.d.mts.map +1 -0
- package/auth/subject-token-providers.d.ts +20 -0
- package/auth/subject-token-providers.d.ts.map +1 -0
- package/auth/subject-token-providers.js +127 -0
- package/auth/subject-token-providers.js.map +1 -0
- package/auth/subject-token-providers.mjs +121 -0
- package/auth/subject-token-providers.mjs.map +1 -0
- package/auth/types.d.mts +23 -0
- package/auth/types.d.mts.map +1 -0
- package/auth/types.d.ts +23 -0
- package/auth/types.d.ts.map +1 -0
- package/auth/types.js +3 -0
- package/auth/types.js.map +1 -0
- package/auth/types.mjs +2 -0
- package/auth/types.mjs.map +1 -0
- package/auth/workload-identity-auth.d.mts +16 -0
- package/auth/workload-identity-auth.d.mts.map +1 -0
- package/auth/workload-identity-auth.d.ts +16 -0
- package/auth/workload-identity-auth.d.ts.map +1 -0
- package/auth/workload-identity-auth.js +92 -0
- package/auth/workload-identity-auth.js.map +1 -0
- package/auth/workload-identity-auth.mjs +87 -0
- package/auth/workload-identity-auth.mjs.map +1 -0
- package/azure.d.mts +2 -1
- package/azure.d.mts.map +1 -1
- package/azure.d.ts +2 -1
- package/azure.d.ts.map +1 -1
- package/azure.js.map +1 -1
- package/azure.mjs.map +1 -1
- package/client.d.mts +11 -1
- package/client.d.mts.map +1 -1
- package/client.d.ts +11 -1
- package/client.d.ts.map +1 -1
- package/client.js +73 -10
- package/client.js.map +1 -1
- package/client.mjs +73 -10
- package/client.mjs.map +1 -1
- package/core/EventEmitter.d.mts +11 -0
- package/core/EventEmitter.d.mts.map +1 -1
- package/core/EventEmitter.d.ts +11 -0
- package/core/EventEmitter.d.ts.map +1 -1
- package/core/EventEmitter.js +15 -1
- package/core/EventEmitter.js.map +1 -1
- package/core/EventEmitter.mjs +13 -0
- package/core/EventEmitter.mjs.map +1 -1
- package/core/error.d.mts +15 -0
- package/core/error.d.mts.map +1 -1
- package/core/error.d.ts +15 -0
- package/core/error.d.ts.map +1 -1
- package/core/error.js +34 -1
- package/core/error.js.map +1 -1
- package/core/error.mjs +31 -0
- package/core/error.mjs.map +1 -1
- package/index.d.mts +1 -1
- package/index.d.mts.map +1 -1
- package/index.d.ts +1 -1
- package/index.d.ts.map +1 -1
- package/index.js +3 -1
- package/index.js.map +1 -1
- package/index.mjs +1 -1
- package/index.mjs.map +1 -1
- package/internal/types.d.mts +6 -6
- package/internal/types.d.mts.map +1 -1
- package/internal/types.d.ts +6 -6
- package/internal/types.d.ts.map +1 -1
- package/internal/utils/env.js +2 -2
- package/internal/utils/env.js.map +1 -1
- package/internal/utils/env.mjs +2 -2
- package/internal/utils/env.mjs.map +1 -1
- package/internal/ws-adapter-browser.d.mts +34 -0
- package/internal/ws-adapter-browser.d.mts.map +1 -0
- package/internal/ws-adapter-browser.d.ts +34 -0
- package/internal/ws-adapter-browser.d.ts.map +1 -0
- package/internal/ws-adapter-browser.js +88 -0
- package/internal/ws-adapter-browser.js.map +1 -0
- package/internal/ws-adapter-browser.mjs +84 -0
- package/internal/ws-adapter-browser.mjs.map +1 -0
- package/internal/ws-adapter-node.d.mts +27 -0
- package/internal/ws-adapter-node.d.mts.map +1 -0
- package/internal/ws-adapter-node.d.ts +27 -0
- package/internal/ws-adapter-node.d.ts.map +1 -0
- package/internal/ws-adapter-node.js +90 -0
- package/internal/ws-adapter-node.js.map +1 -0
- package/internal/ws-adapter-node.mjs +86 -0
- package/internal/ws-adapter-node.mjs.map +1 -0
- package/internal/ws-adapter.d.mts +24 -0
- package/internal/ws-adapter.d.mts.map +1 -0
- package/internal/ws-adapter.d.ts +24 -0
- package/internal/ws-adapter.d.ts.map +1 -0
- package/internal/ws-adapter.js +11 -0
- package/internal/ws-adapter.js.map +1 -0
- package/internal/ws-adapter.mjs +8 -0
- package/internal/ws-adapter.mjs.map +1 -0
- package/internal/ws.d.mts +80 -0
- package/internal/ws.d.mts.map +1 -0
- package/internal/ws.d.ts +80 -0
- package/internal/ws.d.ts.map +1 -0
- package/internal/ws.js +153 -0
- package/internal/ws.js.map +1 -0
- package/internal/ws.mjs +147 -0
- package/internal/ws.mjs.map +1 -0
- package/package.json +23 -13
- package/resources/audio/speech.d.mts +2 -2
- package/resources/audio/speech.d.ts +2 -2
- package/resources/audio/speech.js +2 -2
- package/resources/audio/speech.mjs +2 -2
- package/resources/chat/completions/completions.d.mts +1 -1
- package/resources/chat/completions/completions.d.ts +1 -1
- package/resources/completions.d.mts +1 -1
- package/resources/completions.d.ts +1 -1
- package/resources/conversations/conversations.d.mts +7 -0
- package/resources/conversations/conversations.d.mts.map +1 -1
- package/resources/conversations/conversations.d.ts +7 -0
- package/resources/conversations/conversations.d.ts.map +1 -1
- package/resources/conversations/conversations.js.map +1 -1
- package/resources/conversations/conversations.mjs.map +1 -1
- package/resources/realtime/calls.d.mts +3 -2
- package/resources/realtime/calls.d.mts.map +1 -1
- package/resources/realtime/calls.d.ts +3 -2
- package/resources/realtime/calls.d.ts.map +1 -1
- package/resources/realtime/client-secrets.d.mts +3 -2
- package/resources/realtime/client-secrets.d.mts.map +1 -1
- package/resources/realtime/client-secrets.d.ts +3 -2
- package/resources/realtime/client-secrets.d.ts.map +1 -1
- package/resources/realtime/realtime.d.mts +6 -4
- package/resources/realtime/realtime.d.mts.map +1 -1
- package/resources/realtime/realtime.d.ts +6 -4
- package/resources/realtime/realtime.d.ts.map +1 -1
- package/resources/realtime/realtime.js.map +1 -1
- package/resources/realtime/realtime.mjs.map +1 -1
- package/resources/responses/index.d.mts +2 -0
- package/resources/responses/index.d.mts.map +1 -1
- package/resources/responses/index.d.ts +2 -0
- package/resources/responses/index.d.ts.map +1 -1
- package/resources/responses/internal-base.d.mts +24 -2
- package/resources/responses/internal-base.d.mts.map +1 -1
- package/resources/responses/internal-base.d.ts +24 -2
- package/resources/responses/internal-base.d.ts.map +1 -1
- package/resources/responses/internal-base.js +5 -9
- package/resources/responses/internal-base.js.map +1 -1
- package/resources/responses/internal-base.mjs +5 -9
- package/resources/responses/internal-base.mjs.map +1 -1
- package/resources/responses/responses.d.mts +19 -3
- package/resources/responses/responses.d.mts.map +1 -1
- package/resources/responses/responses.d.ts +19 -3
- package/resources/responses/responses.d.ts.map +1 -1
- package/resources/responses/responses.js.map +1 -1
- package/resources/responses/responses.mjs.map +1 -1
- package/resources/responses/ws-base.d.mts +106 -0
- package/resources/responses/ws-base.d.mts.map +1 -0
- package/resources/responses/ws-base.d.ts +106 -0
- package/resources/responses/ws-base.d.ts.map +1 -0
- package/resources/responses/ws-base.js +474 -0
- package/resources/responses/ws-base.js.map +1 -0
- package/resources/responses/ws-base.mjs +470 -0
- package/resources/responses/ws-base.mjs.map +1 -0
- package/resources/responses/ws.d.mts +9 -38
- package/resources/responses/ws.d.mts.map +1 -1
- package/resources/responses/ws.d.ts +9 -38
- package/resources/responses/ws.d.ts.map +1 -1
- package/resources/responses/ws.js +17 -171
- package/resources/responses/ws.js.map +1 -1
- package/resources/responses/ws.mjs +17 -171
- package/resources/responses/ws.mjs.map +1 -1
- package/resources/shared.d.mts +1 -0
- package/resources/shared.d.mts.map +1 -1
- package/resources/shared.d.ts +1 -0
- package/resources/shared.d.ts.map +1 -1
- package/resources/vector-stores/file-batches.d.mts +9 -5
- package/resources/vector-stores/file-batches.d.mts.map +1 -1
- package/resources/vector-stores/file-batches.d.ts +9 -5
- package/resources/vector-stores/file-batches.d.ts.map +1 -1
- package/resources/vector-stores/files.d.mts +3 -1
- package/resources/vector-stores/files.d.mts.map +1 -1
- package/resources/vector-stores/files.d.ts +3 -1
- package/resources/vector-stores/files.d.ts.map +1 -1
- package/src/auth/index.ts +9 -0
- package/src/auth/subject-token-providers.ts +185 -0
- package/src/auth/types.ts +28 -0
- package/src/auth/workload-identity-auth.ts +118 -0
- package/src/azure.ts +2 -1
- package/src/client.ts +112 -9
- package/src/core/EventEmitter.ts +16 -0
- package/src/core/error.ts +40 -0
- package/src/index.ts +2 -0
- package/src/internal/types.ts +6 -8
- package/src/internal/utils/env.ts +2 -2
- package/src/internal/ws-adapter-browser.ts +123 -0
- package/src/internal/ws-adapter-node.ts +105 -0
- package/src/internal/ws-adapter.ts +30 -0
- package/src/internal/ws.ts +193 -0
- package/src/resources/audio/speech.ts +2 -2
- package/src/resources/chat/completions/completions.ts +1 -1
- package/src/resources/completions.ts +1 -1
- package/src/resources/conversations/conversations.ts +8 -0
- package/src/resources/realtime/calls.ts +3 -2
- package/src/resources/realtime/client-secrets.ts +3 -2
- package/src/resources/realtime/realtime.ts +6 -4
- package/src/resources/responses/index.ts +2 -0
- package/src/resources/responses/internal-base.ts +26 -10
- package/src/resources/responses/responses.ts +22 -3
- package/src/resources/responses/ws-base.ts +609 -0
- package/src/resources/responses/ws.ts +23 -186
- package/src/resources/shared.ts +2 -0
- package/src/resources/vector-stores/file-batches.ts +9 -5
- package/src/resources/vector-stores/files.ts +3 -1
- package/src/version.ts +1 -1
- package/version.d.mts +1 -1
- package/version.d.ts +1 -1
- package/version.js +1 -1
- package/version.mjs +1 -1
|
@@ -0,0 +1,34 @@
|
|
|
1
|
+
import type { WebSocketLike } from "./ws-adapter.js";
|
|
2
|
+
/** A generic event listener callback. */
|
|
3
|
+
type Listener = (...args: any[]) => void;
|
|
4
|
+
/** A DOM-style event handler passed to addEventListener/removeEventListener. */
|
|
5
|
+
type DOMEventHandler = (ev: any) => void;
|
|
6
|
+
declare class WebSocket {
|
|
7
|
+
readonly readyState: number;
|
|
8
|
+
binaryType: string;
|
|
9
|
+
send(data: string | ArrayBufferLike | ArrayBufferView): void;
|
|
10
|
+
close(code?: number, reason?: string): void;
|
|
11
|
+
addEventListener(type: string, listener: DOMEventHandler): void;
|
|
12
|
+
removeEventListener(type: string, listener: DOMEventHandler): void;
|
|
13
|
+
}
|
|
14
|
+
export declare class BrowserWebSocket implements WebSocketLike {
|
|
15
|
+
private _ws;
|
|
16
|
+
private _listenerMap;
|
|
17
|
+
constructor(ws: WebSocket);
|
|
18
|
+
/** The underlying platform-specific socket. Code that accesses this will not be isomorphic across server and browser environments. */
|
|
19
|
+
get platformSocket(): WebSocket;
|
|
20
|
+
get readyState(): number;
|
|
21
|
+
send(data: string | ArrayBufferLike | ArrayBufferView): void;
|
|
22
|
+
close(code?: number, reason?: string): void;
|
|
23
|
+
on(event: string, listener: Listener): void;
|
|
24
|
+
off(event: string, listener: Listener): void;
|
|
25
|
+
once(event: string, listener: Listener): void;
|
|
26
|
+
private _listenersFor;
|
|
27
|
+
/**
|
|
28
|
+
* Converts browser event objects to positional arguments matching the
|
|
29
|
+
* {@link WebSocketLike} interface.
|
|
30
|
+
*/
|
|
31
|
+
private _wrapListener;
|
|
32
|
+
}
|
|
33
|
+
export {};
|
|
34
|
+
//# sourceMappingURL=ws-adapter-browser.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"ws-adapter-browser.d.ts","sourceRoot":"","sources":["../src/internal/ws-adapter-browser.ts"],"names":[],"mappings":"OAAO,KAAK,EAAE,aAAa,EAAE;AAE7B,yCAAyC;AACzC,KAAK,QAAQ,GAAG,CAAC,GAAG,IAAI,EAAE,GAAG,EAAE,KAAK,IAAI,CAAC;AAEzC,gFAAgF;AAChF,KAAK,eAAe,GAAG,CAAC,EAAE,EAAE,GAAG,KAAK,IAAI,CAAC;AAGzC,OAAO,OAAO,SAAS;IACrB,QAAQ,CAAC,UAAU,EAAE,MAAM,CAAC;IAC5B,UAAU,EAAE,MAAM,CAAC;IACnB,IAAI,CAAC,IAAI,EAAE,MAAM,GAAG,eAAe,GAAG,eAAe,GAAG,IAAI;IAC5D,KAAK,CAAC,IAAI,CAAC,EAAE,MAAM,EAAE,MAAM,CAAC,EAAE,MAAM,GAAG,IAAI;IAC3C,gBAAgB,CAAC,IAAI,EAAE,MAAM,EAAE,QAAQ,EAAE,eAAe,GAAG,IAAI;IAC/D,mBAAmB,CAAC,IAAI,EAAE,MAAM,EAAE,QAAQ,EAAE,eAAe,GAAG,IAAI;CACnE;AAWD,qBAAa,gBAAiB,YAAW,aAAa;IACpD,OAAO,CAAC,GAAG,CAAY;IACvB,OAAO,CAAC,YAAY,CAAqD;gBAE7D,EAAE,EAAE,SAAS;IAKzB,sIAAsI;IACtI,IAAI,cAAc,IAAI,SAAS,CAE9B;IAED,IAAI,UAAU,IAAI,MAAM,CAEvB;IAED,IAAI,CAAC,IAAI,EAAE,MAAM,GAAG,eAAe,GAAG,eAAe,GAAG,IAAI;IAI5D,KAAK,CAAC,IAAI,CAAC,EAAE,MAAM,EAAE,MAAM,CAAC,EAAE,MAAM,GAAG,IAAI;IAI3C,EAAE,CAAC,KAAK,EAAE,MAAM,EAAE,QAAQ,EAAE,QAAQ,GAAG,IAAI;IAM3C,GAAG,CAAC,KAAK,EAAE,MAAM,EAAE,QAAQ,EAAE,QAAQ,GAAG,IAAI;IAU5C,IAAI,CAAC,KAAK,EAAE,MAAM,EAAE,QAAQ,EAAE,QAAQ,GAAG,IAAI;IAU7C,OAAO,CAAC,aAAa;IASrB;;;OAGG;IACH,OAAO,CAAC,aAAa;CA8BtB"}
|
|
@@ -0,0 +1,88 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.BrowserWebSocket = void 0;
|
|
4
|
+
class BrowserWebSocket {
|
|
5
|
+
constructor(ws) {
|
|
6
|
+
this._listenerMap = new Map();
|
|
7
|
+
this._ws = ws;
|
|
8
|
+
this._ws.binaryType = 'arraybuffer';
|
|
9
|
+
}
|
|
10
|
+
/** The underlying platform-specific socket. Code that accesses this will not be isomorphic across server and browser environments. */
|
|
11
|
+
get platformSocket() {
|
|
12
|
+
return this._ws;
|
|
13
|
+
}
|
|
14
|
+
get readyState() {
|
|
15
|
+
return this._ws.readyState;
|
|
16
|
+
}
|
|
17
|
+
send(data) {
|
|
18
|
+
this._ws.send(data);
|
|
19
|
+
}
|
|
20
|
+
close(code, reason) {
|
|
21
|
+
this._ws.close(code, reason);
|
|
22
|
+
}
|
|
23
|
+
on(event, listener) {
|
|
24
|
+
const wrapped = this._wrapListener(event, listener);
|
|
25
|
+
this._listenersFor(event).set(listener, wrapped);
|
|
26
|
+
this._ws.addEventListener(event, wrapped);
|
|
27
|
+
}
|
|
28
|
+
off(event, listener) {
|
|
29
|
+
const byListener = this._listenerMap.get(event);
|
|
30
|
+
if (!byListener)
|
|
31
|
+
return;
|
|
32
|
+
const wrapped = byListener.get(listener);
|
|
33
|
+
if (wrapped) {
|
|
34
|
+
byListener.delete(listener);
|
|
35
|
+
this._ws.removeEventListener(event, wrapped);
|
|
36
|
+
}
|
|
37
|
+
}
|
|
38
|
+
once(event, listener) {
|
|
39
|
+
const onceListener = (...args) => {
|
|
40
|
+
this.off(event, listener);
|
|
41
|
+
listener(...args);
|
|
42
|
+
};
|
|
43
|
+
const wrapped = this._wrapListener(event, onceListener);
|
|
44
|
+
this._listenersFor(event).set(listener, wrapped);
|
|
45
|
+
this._ws.addEventListener(event, wrapped);
|
|
46
|
+
}
|
|
47
|
+
_listenersFor(event) {
|
|
48
|
+
let map = this._listenerMap.get(event);
|
|
49
|
+
if (!map) {
|
|
50
|
+
map = new Map();
|
|
51
|
+
this._listenerMap.set(event, map);
|
|
52
|
+
}
|
|
53
|
+
return map;
|
|
54
|
+
}
|
|
55
|
+
/**
|
|
56
|
+
* Converts browser event objects to positional arguments matching the
|
|
57
|
+
* {@link WebSocketLike} interface.
|
|
58
|
+
*/
|
|
59
|
+
_wrapListener(event, listener) {
|
|
60
|
+
switch (event) {
|
|
61
|
+
case 'message':
|
|
62
|
+
return (ev) => {
|
|
63
|
+
const isBinary = typeof ev.data !== 'string';
|
|
64
|
+
listener(ev.data, isBinary);
|
|
65
|
+
};
|
|
66
|
+
case 'close':
|
|
67
|
+
return (ev) => {
|
|
68
|
+
listener(ev.code, ev.reason);
|
|
69
|
+
};
|
|
70
|
+
case 'error':
|
|
71
|
+
return (ev) => {
|
|
72
|
+
// Some environments provide an ErrorEvent with a `.message`;
|
|
73
|
+
// fall back to a generic message when the event carries nothing.
|
|
74
|
+
const message = ev?.message || ev?.error?.message || 'WebSocket error';
|
|
75
|
+
const err = new Error(message);
|
|
76
|
+
if (ev?.error) {
|
|
77
|
+
err.cause = ev.error;
|
|
78
|
+
}
|
|
79
|
+
listener(err);
|
|
80
|
+
};
|
|
81
|
+
case 'open':
|
|
82
|
+
default:
|
|
83
|
+
return listener;
|
|
84
|
+
}
|
|
85
|
+
}
|
|
86
|
+
}
|
|
87
|
+
exports.BrowserWebSocket = BrowserWebSocket;
|
|
88
|
+
//# sourceMappingURL=ws-adapter-browser.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"ws-adapter-browser.js","sourceRoot":"","sources":["../src/internal/ws-adapter-browser.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,84 @@
|
|
|
1
|
+
export class BrowserWebSocket {
|
|
2
|
+
constructor(ws) {
|
|
3
|
+
this._listenerMap = new Map();
|
|
4
|
+
this._ws = ws;
|
|
5
|
+
this._ws.binaryType = 'arraybuffer';
|
|
6
|
+
}
|
|
7
|
+
/** The underlying platform-specific socket. Code that accesses this will not be isomorphic across server and browser environments. */
|
|
8
|
+
get platformSocket() {
|
|
9
|
+
return this._ws;
|
|
10
|
+
}
|
|
11
|
+
get readyState() {
|
|
12
|
+
return this._ws.readyState;
|
|
13
|
+
}
|
|
14
|
+
send(data) {
|
|
15
|
+
this._ws.send(data);
|
|
16
|
+
}
|
|
17
|
+
close(code, reason) {
|
|
18
|
+
this._ws.close(code, reason);
|
|
19
|
+
}
|
|
20
|
+
on(event, listener) {
|
|
21
|
+
const wrapped = this._wrapListener(event, listener);
|
|
22
|
+
this._listenersFor(event).set(listener, wrapped);
|
|
23
|
+
this._ws.addEventListener(event, wrapped);
|
|
24
|
+
}
|
|
25
|
+
off(event, listener) {
|
|
26
|
+
const byListener = this._listenerMap.get(event);
|
|
27
|
+
if (!byListener)
|
|
28
|
+
return;
|
|
29
|
+
const wrapped = byListener.get(listener);
|
|
30
|
+
if (wrapped) {
|
|
31
|
+
byListener.delete(listener);
|
|
32
|
+
this._ws.removeEventListener(event, wrapped);
|
|
33
|
+
}
|
|
34
|
+
}
|
|
35
|
+
once(event, listener) {
|
|
36
|
+
const onceListener = (...args) => {
|
|
37
|
+
this.off(event, listener);
|
|
38
|
+
listener(...args);
|
|
39
|
+
};
|
|
40
|
+
const wrapped = this._wrapListener(event, onceListener);
|
|
41
|
+
this._listenersFor(event).set(listener, wrapped);
|
|
42
|
+
this._ws.addEventListener(event, wrapped);
|
|
43
|
+
}
|
|
44
|
+
_listenersFor(event) {
|
|
45
|
+
let map = this._listenerMap.get(event);
|
|
46
|
+
if (!map) {
|
|
47
|
+
map = new Map();
|
|
48
|
+
this._listenerMap.set(event, map);
|
|
49
|
+
}
|
|
50
|
+
return map;
|
|
51
|
+
}
|
|
52
|
+
/**
|
|
53
|
+
* Converts browser event objects to positional arguments matching the
|
|
54
|
+
* {@link WebSocketLike} interface.
|
|
55
|
+
*/
|
|
56
|
+
_wrapListener(event, listener) {
|
|
57
|
+
switch (event) {
|
|
58
|
+
case 'message':
|
|
59
|
+
return (ev) => {
|
|
60
|
+
const isBinary = typeof ev.data !== 'string';
|
|
61
|
+
listener(ev.data, isBinary);
|
|
62
|
+
};
|
|
63
|
+
case 'close':
|
|
64
|
+
return (ev) => {
|
|
65
|
+
listener(ev.code, ev.reason);
|
|
66
|
+
};
|
|
67
|
+
case 'error':
|
|
68
|
+
return (ev) => {
|
|
69
|
+
// Some environments provide an ErrorEvent with a `.message`;
|
|
70
|
+
// fall back to a generic message when the event carries nothing.
|
|
71
|
+
const message = ev?.message || ev?.error?.message || 'WebSocket error';
|
|
72
|
+
const err = new Error(message);
|
|
73
|
+
if (ev?.error) {
|
|
74
|
+
err.cause = ev.error;
|
|
75
|
+
}
|
|
76
|
+
listener(err);
|
|
77
|
+
};
|
|
78
|
+
case 'open':
|
|
79
|
+
default:
|
|
80
|
+
return listener;
|
|
81
|
+
}
|
|
82
|
+
}
|
|
83
|
+
}
|
|
84
|
+
//# sourceMappingURL=ws-adapter-browser.mjs.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"ws-adapter-browser.mjs","sourceRoot":"","sources":["../src/internal/ws-adapter-browser.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,27 @@
|
|
|
1
|
+
import type * as WS from 'ws';
|
|
2
|
+
import type { WebSocketLike } from "./ws-adapter.mjs";
|
|
3
|
+
/** A generic event listener callback. */
|
|
4
|
+
type Listener = (...args: any[]) => void;
|
|
5
|
+
export declare class NodeWebSocket implements WebSocketLike {
|
|
6
|
+
private _ws;
|
|
7
|
+
/** Maps `(event, originalListener)` -> wrapped listener for correct `off()` removal. */
|
|
8
|
+
private _listenerMap;
|
|
9
|
+
constructor(ws: WS.WebSocket);
|
|
10
|
+
/** The underlying platform-specific socket. Code that accesses this will not be isomorphic across server and browser environments. */
|
|
11
|
+
get platformSocket(): WS.WebSocket;
|
|
12
|
+
get readyState(): number;
|
|
13
|
+
send(data: string | ArrayBufferLike | ArrayBufferView): void;
|
|
14
|
+
close(code?: number, reason?: string): void;
|
|
15
|
+
on(event: string, listener: Listener): void;
|
|
16
|
+
off(event: string, listener: Listener): void;
|
|
17
|
+
once(event: string, listener: Listener): void;
|
|
18
|
+
private _listenersFor;
|
|
19
|
+
/**
|
|
20
|
+
* Normalizes `ws` message payloads: text frames become strings,
|
|
21
|
+
* binary frames stay as `Buffer`, and fragmented frames are merged.
|
|
22
|
+
*/
|
|
23
|
+
private static _normalizeMessageData;
|
|
24
|
+
private _wrapListener;
|
|
25
|
+
}
|
|
26
|
+
export {};
|
|
27
|
+
//# sourceMappingURL=ws-adapter-node.d.mts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"ws-adapter-node.d.mts","sourceRoot":"","sources":["../src/internal/ws-adapter-node.ts"],"names":[],"mappings":"OAAO,KAAK,KAAK,EAAE,MAAM,IAAI;OACtB,KAAK,EAAE,aAAa,EAAE;AAE7B,yCAAyC;AACzC,KAAK,QAAQ,GAAG,CAAC,GAAG,IAAI,EAAE,GAAG,EAAE,KAAK,IAAI,CAAC;AAEzC,qBAAa,aAAc,YAAW,aAAa;IACjD,OAAO,CAAC,GAAG,CAAe;IAE1B,wFAAwF;IACxF,OAAO,CAAC,YAAY,CAA8C;gBAEtD,EAAE,EAAE,EAAE,CAAC,SAAS;IAI5B,sIAAsI;IACtI,IAAI,cAAc,IAAI,EAAE,CAAC,SAAS,CAEjC;IAED,IAAI,UAAU,IAAI,MAAM,CAEvB;IAED,IAAI,CAAC,IAAI,EAAE,MAAM,GAAG,eAAe,GAAG,eAAe,GAAG,IAAI;IAI5D,KAAK,CAAC,IAAI,CAAC,EAAE,MAAM,EAAE,MAAM,CAAC,EAAE,MAAM,GAAG,IAAI;IAI3C,EAAE,CAAC,KAAK,EAAE,MAAM,EAAE,QAAQ,EAAE,QAAQ,GAAG,IAAI;IAM3C,GAAG,CAAC,KAAK,EAAE,MAAM,EAAE,QAAQ,EAAE,QAAQ,GAAG,IAAI;IAU5C,IAAI,CAAC,KAAK,EAAE,MAAM,EAAE,QAAQ,EAAE,QAAQ,GAAG,IAAI;IAU7C,OAAO,CAAC,aAAa;IASrB;;;OAGG;IACH,OAAO,CAAC,MAAM,CAAC,qBAAqB;IAepC,OAAO,CAAC,aAAa;CAiBtB"}
|
|
@@ -0,0 +1,27 @@
|
|
|
1
|
+
import type * as WS from 'ws';
|
|
2
|
+
import type { WebSocketLike } from "./ws-adapter.js";
|
|
3
|
+
/** A generic event listener callback. */
|
|
4
|
+
type Listener = (...args: any[]) => void;
|
|
5
|
+
export declare class NodeWebSocket implements WebSocketLike {
|
|
6
|
+
private _ws;
|
|
7
|
+
/** Maps `(event, originalListener)` -> wrapped listener for correct `off()` removal. */
|
|
8
|
+
private _listenerMap;
|
|
9
|
+
constructor(ws: WS.WebSocket);
|
|
10
|
+
/** The underlying platform-specific socket. Code that accesses this will not be isomorphic across server and browser environments. */
|
|
11
|
+
get platformSocket(): WS.WebSocket;
|
|
12
|
+
get readyState(): number;
|
|
13
|
+
send(data: string | ArrayBufferLike | ArrayBufferView): void;
|
|
14
|
+
close(code?: number, reason?: string): void;
|
|
15
|
+
on(event: string, listener: Listener): void;
|
|
16
|
+
off(event: string, listener: Listener): void;
|
|
17
|
+
once(event: string, listener: Listener): void;
|
|
18
|
+
private _listenersFor;
|
|
19
|
+
/**
|
|
20
|
+
* Normalizes `ws` message payloads: text frames become strings,
|
|
21
|
+
* binary frames stay as `Buffer`, and fragmented frames are merged.
|
|
22
|
+
*/
|
|
23
|
+
private static _normalizeMessageData;
|
|
24
|
+
private _wrapListener;
|
|
25
|
+
}
|
|
26
|
+
export {};
|
|
27
|
+
//# sourceMappingURL=ws-adapter-node.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"ws-adapter-node.d.ts","sourceRoot":"","sources":["../src/internal/ws-adapter-node.ts"],"names":[],"mappings":"OAAO,KAAK,KAAK,EAAE,MAAM,IAAI;OACtB,KAAK,EAAE,aAAa,EAAE;AAE7B,yCAAyC;AACzC,KAAK,QAAQ,GAAG,CAAC,GAAG,IAAI,EAAE,GAAG,EAAE,KAAK,IAAI,CAAC;AAEzC,qBAAa,aAAc,YAAW,aAAa;IACjD,OAAO,CAAC,GAAG,CAAe;IAE1B,wFAAwF;IACxF,OAAO,CAAC,YAAY,CAA8C;gBAEtD,EAAE,EAAE,EAAE,CAAC,SAAS;IAI5B,sIAAsI;IACtI,IAAI,cAAc,IAAI,EAAE,CAAC,SAAS,CAEjC;IAED,IAAI,UAAU,IAAI,MAAM,CAEvB;IAED,IAAI,CAAC,IAAI,EAAE,MAAM,GAAG,eAAe,GAAG,eAAe,GAAG,IAAI;IAI5D,KAAK,CAAC,IAAI,CAAC,EAAE,MAAM,EAAE,MAAM,CAAC,EAAE,MAAM,GAAG,IAAI;IAI3C,EAAE,CAAC,KAAK,EAAE,MAAM,EAAE,QAAQ,EAAE,QAAQ,GAAG,IAAI;IAM3C,GAAG,CAAC,KAAK,EAAE,MAAM,EAAE,QAAQ,EAAE,QAAQ,GAAG,IAAI;IAU5C,IAAI,CAAC,KAAK,EAAE,MAAM,EAAE,QAAQ,EAAE,QAAQ,GAAG,IAAI;IAU7C,OAAO,CAAC,aAAa;IASrB;;;OAGG;IACH,OAAO,CAAC,MAAM,CAAC,qBAAqB;IAepC,OAAO,CAAC,aAAa;CAiBtB"}
|
|
@@ -0,0 +1,90 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.NodeWebSocket = void 0;
|
|
4
|
+
class NodeWebSocket {
|
|
5
|
+
constructor(ws) {
|
|
6
|
+
/** Maps `(event, originalListener)` -> wrapped listener for correct `off()` removal. */
|
|
7
|
+
this._listenerMap = new Map();
|
|
8
|
+
this._ws = ws;
|
|
9
|
+
}
|
|
10
|
+
/** The underlying platform-specific socket. Code that accesses this will not be isomorphic across server and browser environments. */
|
|
11
|
+
get platformSocket() {
|
|
12
|
+
return this._ws;
|
|
13
|
+
}
|
|
14
|
+
get readyState() {
|
|
15
|
+
return this._ws.readyState;
|
|
16
|
+
}
|
|
17
|
+
send(data) {
|
|
18
|
+
this._ws.send(data);
|
|
19
|
+
}
|
|
20
|
+
close(code, reason) {
|
|
21
|
+
this._ws.close(code, reason);
|
|
22
|
+
}
|
|
23
|
+
on(event, listener) {
|
|
24
|
+
const wrapped = this._wrapListener(event, listener);
|
|
25
|
+
this._listenersFor(event).set(listener, wrapped);
|
|
26
|
+
this._ws.on(event, wrapped);
|
|
27
|
+
}
|
|
28
|
+
off(event, listener) {
|
|
29
|
+
const byListener = this._listenerMap.get(event);
|
|
30
|
+
if (!byListener)
|
|
31
|
+
return;
|
|
32
|
+
const wrapped = byListener.get(listener);
|
|
33
|
+
if (wrapped) {
|
|
34
|
+
byListener.delete(listener);
|
|
35
|
+
this._ws.removeListener(event, wrapped);
|
|
36
|
+
}
|
|
37
|
+
}
|
|
38
|
+
once(event, listener) {
|
|
39
|
+
const onceListener = (...args) => {
|
|
40
|
+
this.off(event, listener);
|
|
41
|
+
listener(...args);
|
|
42
|
+
};
|
|
43
|
+
const wrapped = this._wrapListener(event, onceListener);
|
|
44
|
+
this._listenersFor(event).set(listener, wrapped);
|
|
45
|
+
this._ws.on(event, wrapped);
|
|
46
|
+
}
|
|
47
|
+
_listenersFor(event) {
|
|
48
|
+
let map = this._listenerMap.get(event);
|
|
49
|
+
if (!map) {
|
|
50
|
+
map = new Map();
|
|
51
|
+
this._listenerMap.set(event, map);
|
|
52
|
+
}
|
|
53
|
+
return map;
|
|
54
|
+
}
|
|
55
|
+
/**
|
|
56
|
+
* Normalizes `ws` message payloads: text frames become strings,
|
|
57
|
+
* binary frames stay as `Buffer`, and fragmented frames are merged.
|
|
58
|
+
*/
|
|
59
|
+
static _normalizeMessageData(data, isBinary) {
|
|
60
|
+
if (!isBinary) {
|
|
61
|
+
if (Array.isArray(data))
|
|
62
|
+
return Buffer.concat(data).toString();
|
|
63
|
+
if (data instanceof ArrayBuffer)
|
|
64
|
+
return Buffer.from(data).toString();
|
|
65
|
+
return data.toString();
|
|
66
|
+
}
|
|
67
|
+
if (Array.isArray(data))
|
|
68
|
+
return Buffer.concat(data);
|
|
69
|
+
if (data instanceof ArrayBuffer)
|
|
70
|
+
return Buffer.from(data);
|
|
71
|
+
return data;
|
|
72
|
+
}
|
|
73
|
+
_wrapListener(event, listener) {
|
|
74
|
+
switch (event) {
|
|
75
|
+
case 'message':
|
|
76
|
+
return (data, isBinary) => {
|
|
77
|
+
listener(NodeWebSocket._normalizeMessageData(data, isBinary), isBinary);
|
|
78
|
+
};
|
|
79
|
+
case 'close':
|
|
80
|
+
return (code, reason) => {
|
|
81
|
+
listener(code, reason.toString());
|
|
82
|
+
};
|
|
83
|
+
// 'open' and 'error' pass through unchanged
|
|
84
|
+
default:
|
|
85
|
+
return listener;
|
|
86
|
+
}
|
|
87
|
+
}
|
|
88
|
+
}
|
|
89
|
+
exports.NodeWebSocket = NodeWebSocket;
|
|
90
|
+
//# sourceMappingURL=ws-adapter-node.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"ws-adapter-node.js","sourceRoot":"","sources":["../src/internal/ws-adapter-node.ts"],"names":[],"mappings":";;;AAMA,MAAa,aAAa;IAMxB,YAAY,EAAgB;QAH5B,wFAAwF;QAChF,iBAAY,GAAG,IAAI,GAAG,EAAmC,CAAC;QAGhE,IAAI,CAAC,GAAG,GAAG,EAAE,CAAC;IAChB,CAAC;IAED,sIAAsI;IACtI,IAAI,cAAc;QAChB,OAAO,IAAI,CAAC,GAAG,CAAC;IAClB,CAAC;IAED,IAAI,UAAU;QACZ,OAAO,IAAI,CAAC,GAAG,CAAC,UAAU,CAAC;IAC7B,CAAC;IAED,IAAI,CAAC,IAAgD;QACnD,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;IACtB,CAAC;IAED,KAAK,CAAC,IAAa,EAAE,MAAe;QAClC,IAAI,CAAC,GAAG,CAAC,KAAK,CAAC,IAAI,EAAE,MAAM,CAAC,CAAC;IAC/B,CAAC;IAED,EAAE,CAAC,KAAa,EAAE,QAAkB;QAClC,MAAM,OAAO,GAAG,IAAI,CAAC,aAAa,CAAC,KAAK,EAAE,QAAQ,CAAC,CAAC;QACpD,IAAI,CAAC,aAAa,CAAC,KAAK,CAAC,CAAC,GAAG,CAAC,QAAQ,EAAE,OAAO,CAAC,CAAC;QACjD,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,KAAK,EAAE,OAAO,CAAC,CAAC;IAC9B,CAAC;IAED,GAAG,CAAC,KAAa,EAAE,QAAkB;QACnC,MAAM,UAAU,GAAG,IAAI,CAAC,YAAY,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC;QAChD,IAAI,CAAC,UAAU;YAAE,OAAO;QACxB,MAAM,OAAO,GAAG,UAAU,CAAC,GAAG,CAAC,QAAQ,CAAC,CAAC;QACzC,IAAI,OAAO,EAAE,CAAC;YACZ,UAAU,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC;YAC5B,IAAI,CAAC,GAAG,CAAC,cAAc,CAAC,KAAK,EAAE,OAAO,CAAC,CAAC;QAC1C,CAAC;IACH,CAAC;IAED,IAAI,CAAC,KAAa,EAAE,QAAkB;QACpC,MAAM,YAAY,GAAa,CAAC,GAAG,IAAI,EAAE,EAAE;YACzC,IAAI,CAAC,GAAG,CAAC,KAAK,EAAE,QAAQ,CAAC,CAAC;YAC1B,QAAQ,CAAC,GAAG,IAAI,CAAC,CAAC;QACpB,CAAC,CAAC;QACF,MAAM,OAAO,GAAG,IAAI,CAAC,aAAa,CAAC,KAAK,EAAE,YAAY,CAAC,CAAC;QACxD,IAAI,CAAC,aAAa,CAAC,KAAK,CAAC,CAAC,GAAG,CAAC,QAAQ,EAAE,OAAO,CAAC,CAAC;QACjD,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,KAAK,EAAE,OAAO,CAAC,CAAC;IAC9B,CAAC;IAEO,aAAa,CAAC,KAAa;QACjC,IAAI,GAAG,GAAG,IAAI,CAAC,YAAY,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC;QACvC,IAAI,CAAC,GAAG,EAAE,CAAC;YACT,GAAG,GAAG,IAAI,GAAG,EAAE,CAAC;YAChB,IAAI,CAAC,YAAY,CAAC,GAAG,CAAC,KAAK,EAAE,GAAG,CAAC,CAAC;QACpC,CAAC;QACD,OAAO,GAAG,CAAC;IACb,CAAC;IAED;;;OAGG;IACK,MAAM,CAAC,qBAAqB,CAClC,IAAqC,EACrC,QAAiB;QAEjB,IAAI,CAAC,QAAQ,EAAE,CAAC;YACd,IAAI,KAAK,CAAC,OAAO,CAAC,IAAI,CAAC;gBAAE,OAAO,MAAM,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC,QAAQ,EAAE,CAAC;YAC/D,IAAI,IAAI,YAAY,WAAW;gBAAE,OAAO,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,QAAQ,EAAE,CAAC;YACrE,OAAO,IAAI,CAAC,QAAQ,EAAE,CAAC;QACzB,CAAC;QAED,IAAI,KAAK,CAAC,OAAO,CAAC,IAAI,CAAC;YAAE,OAAO,MAAM,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC;QACpD,IAAI,IAAI,YAAY,WAAW;YAAE,OAAO,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;QAC1D,OAAO,IAAI,CAAC;IACd,CAAC;IAEO,aAAa,CAAC,KAAa,EAAE,QAAkB;QACrD,QAAQ,KAAK,EAAE,CAAC;YACd,KAAK,SAAS;gBACZ,OAAO,CAAC,IAAqC,EAAE,QAAiB,EAAE,EAAE;oBAClE,QAAQ,CAAC,aAAa,CAAC,qBAAqB,CAAC,IAAI,EAAE,QAAQ,CAAC,EAAE,QAAQ,CAAC,CAAC;gBAC1E,CAAC,CAAC;YAEJ,KAAK,OAAO;gBACV,OAAO,CAAC,IAAY,EAAE,MAAc,EAAE,EAAE;oBACtC,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC,QAAQ,EAAE,CAAC,CAAC;gBACpC,CAAC,CAAC;YAEJ,4CAA4C;YAC5C;gBACE,OAAO,QAAQ,CAAC;QACpB,CAAC;IACH,CAAC;CACF;AAlGD,sCAkGC"}
|
|
@@ -0,0 +1,86 @@
|
|
|
1
|
+
export class NodeWebSocket {
|
|
2
|
+
constructor(ws) {
|
|
3
|
+
/** Maps `(event, originalListener)` -> wrapped listener for correct `off()` removal. */
|
|
4
|
+
this._listenerMap = new Map();
|
|
5
|
+
this._ws = ws;
|
|
6
|
+
}
|
|
7
|
+
/** The underlying platform-specific socket. Code that accesses this will not be isomorphic across server and browser environments. */
|
|
8
|
+
get platformSocket() {
|
|
9
|
+
return this._ws;
|
|
10
|
+
}
|
|
11
|
+
get readyState() {
|
|
12
|
+
return this._ws.readyState;
|
|
13
|
+
}
|
|
14
|
+
send(data) {
|
|
15
|
+
this._ws.send(data);
|
|
16
|
+
}
|
|
17
|
+
close(code, reason) {
|
|
18
|
+
this._ws.close(code, reason);
|
|
19
|
+
}
|
|
20
|
+
on(event, listener) {
|
|
21
|
+
const wrapped = this._wrapListener(event, listener);
|
|
22
|
+
this._listenersFor(event).set(listener, wrapped);
|
|
23
|
+
this._ws.on(event, wrapped);
|
|
24
|
+
}
|
|
25
|
+
off(event, listener) {
|
|
26
|
+
const byListener = this._listenerMap.get(event);
|
|
27
|
+
if (!byListener)
|
|
28
|
+
return;
|
|
29
|
+
const wrapped = byListener.get(listener);
|
|
30
|
+
if (wrapped) {
|
|
31
|
+
byListener.delete(listener);
|
|
32
|
+
this._ws.removeListener(event, wrapped);
|
|
33
|
+
}
|
|
34
|
+
}
|
|
35
|
+
once(event, listener) {
|
|
36
|
+
const onceListener = (...args) => {
|
|
37
|
+
this.off(event, listener);
|
|
38
|
+
listener(...args);
|
|
39
|
+
};
|
|
40
|
+
const wrapped = this._wrapListener(event, onceListener);
|
|
41
|
+
this._listenersFor(event).set(listener, wrapped);
|
|
42
|
+
this._ws.on(event, wrapped);
|
|
43
|
+
}
|
|
44
|
+
_listenersFor(event) {
|
|
45
|
+
let map = this._listenerMap.get(event);
|
|
46
|
+
if (!map) {
|
|
47
|
+
map = new Map();
|
|
48
|
+
this._listenerMap.set(event, map);
|
|
49
|
+
}
|
|
50
|
+
return map;
|
|
51
|
+
}
|
|
52
|
+
/**
|
|
53
|
+
* Normalizes `ws` message payloads: text frames become strings,
|
|
54
|
+
* binary frames stay as `Buffer`, and fragmented frames are merged.
|
|
55
|
+
*/
|
|
56
|
+
static _normalizeMessageData(data, isBinary) {
|
|
57
|
+
if (!isBinary) {
|
|
58
|
+
if (Array.isArray(data))
|
|
59
|
+
return Buffer.concat(data).toString();
|
|
60
|
+
if (data instanceof ArrayBuffer)
|
|
61
|
+
return Buffer.from(data).toString();
|
|
62
|
+
return data.toString();
|
|
63
|
+
}
|
|
64
|
+
if (Array.isArray(data))
|
|
65
|
+
return Buffer.concat(data);
|
|
66
|
+
if (data instanceof ArrayBuffer)
|
|
67
|
+
return Buffer.from(data);
|
|
68
|
+
return data;
|
|
69
|
+
}
|
|
70
|
+
_wrapListener(event, listener) {
|
|
71
|
+
switch (event) {
|
|
72
|
+
case 'message':
|
|
73
|
+
return (data, isBinary) => {
|
|
74
|
+
listener(NodeWebSocket._normalizeMessageData(data, isBinary), isBinary);
|
|
75
|
+
};
|
|
76
|
+
case 'close':
|
|
77
|
+
return (code, reason) => {
|
|
78
|
+
listener(code, reason.toString());
|
|
79
|
+
};
|
|
80
|
+
// 'open' and 'error' pass through unchanged
|
|
81
|
+
default:
|
|
82
|
+
return listener;
|
|
83
|
+
}
|
|
84
|
+
}
|
|
85
|
+
}
|
|
86
|
+
//# sourceMappingURL=ws-adapter-node.mjs.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"ws-adapter-node.mjs","sourceRoot":"","sources":["../src/internal/ws-adapter-node.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,24 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Normalized WebSocket interface that abstracts over the `ws` package (Node.js)
|
|
3
|
+
* and the native WebSocket API (browser).
|
|
4
|
+
*/
|
|
5
|
+
export interface WebSocketLike {
|
|
6
|
+
readonly readyState: number;
|
|
7
|
+
send(data: string | ArrayBufferLike | ArrayBufferView): void;
|
|
8
|
+
close(code?: number, reason?: string): void;
|
|
9
|
+
on(event: 'open', listener: () => void): void;
|
|
10
|
+
on(event: 'message', listener: (data: string | ArrayBuffer | ArrayBufferView, isBinary: boolean) => void): void;
|
|
11
|
+
on(event: 'close', listener: (code: number, reason: string) => void): void;
|
|
12
|
+
on(event: 'error', listener: (err: Error) => void): void;
|
|
13
|
+
on(event: string, listener: (...args: any[]) => void): void;
|
|
14
|
+
off(event: string, listener: (...args: any[]) => void): void;
|
|
15
|
+
once(event: string, listener: (...args: any[]) => void): void;
|
|
16
|
+
}
|
|
17
|
+
/** Standard WebSocket readyState values (RFC 6455). */
|
|
18
|
+
export declare const ReadyState: {
|
|
19
|
+
readonly CONNECTING: 0;
|
|
20
|
+
readonly OPEN: 1;
|
|
21
|
+
readonly CLOSING: 2;
|
|
22
|
+
readonly CLOSED: 3;
|
|
23
|
+
};
|
|
24
|
+
//# sourceMappingURL=ws-adapter.d.mts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"ws-adapter.d.mts","sourceRoot":"","sources":["../src/internal/ws-adapter.ts"],"names":[],"mappings":"AAAA;;;GAGG;AACH,MAAM,WAAW,aAAa;IAC5B,QAAQ,CAAC,UAAU,EAAE,MAAM,CAAC;IAE5B,IAAI,CAAC,IAAI,EAAE,MAAM,GAAG,eAAe,GAAG,eAAe,GAAG,IAAI,CAAC;IAC7D,KAAK,CAAC,IAAI,CAAC,EAAE,MAAM,EAAE,MAAM,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IAE5C,EAAE,CAAC,KAAK,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,IAAI,GAAG,IAAI,CAAC;IAC9C,EAAE,CACA,KAAK,EAAE,SAAS,EAChB,QAAQ,EAAE,CAAC,IAAI,EAAE,MAAM,GAAG,WAAW,GAAG,eAAe,EAAE,QAAQ,EAAE,OAAO,KAAK,IAAI,GAClF,IAAI,CAAC;IACR,EAAE,CAAC,KAAK,EAAE,OAAO,EAAE,QAAQ,EAAE,CAAC,IAAI,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,KAAK,IAAI,GAAG,IAAI,CAAC;IAC3E,EAAE,CAAC,KAAK,EAAE,OAAO,EAAE,QAAQ,EAAE,CAAC,GAAG,EAAE,KAAK,KAAK,IAAI,GAAG,IAAI,CAAC;IACzD,EAAE,CAAC,KAAK,EAAE,MAAM,EAAE,QAAQ,EAAE,CAAC,GAAG,IAAI,EAAE,GAAG,EAAE,KAAK,IAAI,GAAG,IAAI,CAAC;IAE5D,GAAG,CAAC,KAAK,EAAE,MAAM,EAAE,QAAQ,EAAE,CAAC,GAAG,IAAI,EAAE,GAAG,EAAE,KAAK,IAAI,GAAG,IAAI,CAAC;IAC7D,IAAI,CAAC,KAAK,EAAE,MAAM,EAAE,QAAQ,EAAE,CAAC,GAAG,IAAI,EAAE,GAAG,EAAE,KAAK,IAAI,GAAG,IAAI,CAAC;CAC/D;AAED,uDAAuD;AACvD,eAAO,MAAM,UAAU;;;;;CAKb,CAAC"}
|
|
@@ -0,0 +1,24 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Normalized WebSocket interface that abstracts over the `ws` package (Node.js)
|
|
3
|
+
* and the native WebSocket API (browser).
|
|
4
|
+
*/
|
|
5
|
+
export interface WebSocketLike {
|
|
6
|
+
readonly readyState: number;
|
|
7
|
+
send(data: string | ArrayBufferLike | ArrayBufferView): void;
|
|
8
|
+
close(code?: number, reason?: string): void;
|
|
9
|
+
on(event: 'open', listener: () => void): void;
|
|
10
|
+
on(event: 'message', listener: (data: string | ArrayBuffer | ArrayBufferView, isBinary: boolean) => void): void;
|
|
11
|
+
on(event: 'close', listener: (code: number, reason: string) => void): void;
|
|
12
|
+
on(event: 'error', listener: (err: Error) => void): void;
|
|
13
|
+
on(event: string, listener: (...args: any[]) => void): void;
|
|
14
|
+
off(event: string, listener: (...args: any[]) => void): void;
|
|
15
|
+
once(event: string, listener: (...args: any[]) => void): void;
|
|
16
|
+
}
|
|
17
|
+
/** Standard WebSocket readyState values (RFC 6455). */
|
|
18
|
+
export declare const ReadyState: {
|
|
19
|
+
readonly CONNECTING: 0;
|
|
20
|
+
readonly OPEN: 1;
|
|
21
|
+
readonly CLOSING: 2;
|
|
22
|
+
readonly CLOSED: 3;
|
|
23
|
+
};
|
|
24
|
+
//# sourceMappingURL=ws-adapter.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"ws-adapter.d.ts","sourceRoot":"","sources":["../src/internal/ws-adapter.ts"],"names":[],"mappings":"AAAA;;;GAGG;AACH,MAAM,WAAW,aAAa;IAC5B,QAAQ,CAAC,UAAU,EAAE,MAAM,CAAC;IAE5B,IAAI,CAAC,IAAI,EAAE,MAAM,GAAG,eAAe,GAAG,eAAe,GAAG,IAAI,CAAC;IAC7D,KAAK,CAAC,IAAI,CAAC,EAAE,MAAM,EAAE,MAAM,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IAE5C,EAAE,CAAC,KAAK,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,IAAI,GAAG,IAAI,CAAC;IAC9C,EAAE,CACA,KAAK,EAAE,SAAS,EAChB,QAAQ,EAAE,CAAC,IAAI,EAAE,MAAM,GAAG,WAAW,GAAG,eAAe,EAAE,QAAQ,EAAE,OAAO,KAAK,IAAI,GAClF,IAAI,CAAC;IACR,EAAE,CAAC,KAAK,EAAE,OAAO,EAAE,QAAQ,EAAE,CAAC,IAAI,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,KAAK,IAAI,GAAG,IAAI,CAAC;IAC3E,EAAE,CAAC,KAAK,EAAE,OAAO,EAAE,QAAQ,EAAE,CAAC,GAAG,EAAE,KAAK,KAAK,IAAI,GAAG,IAAI,CAAC;IACzD,EAAE,CAAC,KAAK,EAAE,MAAM,EAAE,QAAQ,EAAE,CAAC,GAAG,IAAI,EAAE,GAAG,EAAE,KAAK,IAAI,GAAG,IAAI,CAAC;IAE5D,GAAG,CAAC,KAAK,EAAE,MAAM,EAAE,QAAQ,EAAE,CAAC,GAAG,IAAI,EAAE,GAAG,EAAE,KAAK,IAAI,GAAG,IAAI,CAAC;IAC7D,IAAI,CAAC,KAAK,EAAE,MAAM,EAAE,QAAQ,EAAE,CAAC,GAAG,IAAI,EAAE,GAAG,EAAE,KAAK,IAAI,GAAG,IAAI,CAAC;CAC/D;AAED,uDAAuD;AACvD,eAAO,MAAM,UAAU;;;;;CAKb,CAAC"}
|
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.ReadyState = void 0;
|
|
4
|
+
/** Standard WebSocket readyState values (RFC 6455). */
|
|
5
|
+
exports.ReadyState = {
|
|
6
|
+
CONNECTING: 0,
|
|
7
|
+
OPEN: 1,
|
|
8
|
+
CLOSING: 2,
|
|
9
|
+
CLOSED: 3,
|
|
10
|
+
};
|
|
11
|
+
//# sourceMappingURL=ws-adapter.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"ws-adapter.js","sourceRoot":"","sources":["../src/internal/ws-adapter.ts"],"names":[],"mappings":";;;AAuBA,uDAAuD;AAC1C,QAAA,UAAU,GAAG;IACxB,UAAU,EAAE,CAAC;IACb,IAAI,EAAE,CAAC;IACP,OAAO,EAAE,CAAC;IACV,MAAM,EAAE,CAAC;CACD,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"ws-adapter.mjs","sourceRoot":"","sources":["../src/internal/ws-adapter.ts"],"names":[],"mappings":"AAuBA,uDAAuD;AACvD,MAAM,CAAC,MAAM,UAAU,GAAG;IACxB,UAAU,EAAE,CAAC;IACb,IAAI,EAAE,CAAC;IACP,OAAO,EAAE,CAAC;IACV,MAAM,EAAE,CAAC;CACD,CAAC"}
|
|
@@ -0,0 +1,80 @@
|
|
|
1
|
+
/** Reconnection event passed to the `onReconnecting` handler and event listeners. */
|
|
2
|
+
export interface ReconnectingEvent<Parameters = Record<string, unknown>> {
|
|
3
|
+
/** Which retry attempt this is (1-based). */
|
|
4
|
+
readonly attempt: number;
|
|
5
|
+
/** Total attempts that will be made. */
|
|
6
|
+
readonly maxAttempts: number;
|
|
7
|
+
/** Delay in ms before this attempt connects. */
|
|
8
|
+
readonly delay: number;
|
|
9
|
+
/** The WebSocket close code that triggered reconnection. */
|
|
10
|
+
readonly closeCode: number;
|
|
11
|
+
/** The current query parameters. */
|
|
12
|
+
readonly parameters: (Parameters & Record<string, unknown>) | undefined;
|
|
13
|
+
}
|
|
14
|
+
/**
|
|
15
|
+
* Optional overrides returned from the `onReconnecting` handler
|
|
16
|
+
* to customize the next reconnection attempt.
|
|
17
|
+
*/
|
|
18
|
+
export type ReconnectingOverrides<Parameters = Record<string, unknown>> = {
|
|
19
|
+
/**
|
|
20
|
+
* If provided, assigns the query parameters for the next connection.
|
|
21
|
+
* Set to `undefined` to clear all query parameters.
|
|
22
|
+
*/
|
|
23
|
+
parameters?: (Parameters & Record<string, unknown>) | undefined;
|
|
24
|
+
} | {
|
|
25
|
+
/**
|
|
26
|
+
* If set, will stop attempting to reconnect.
|
|
27
|
+
*/
|
|
28
|
+
abort: true;
|
|
29
|
+
};
|
|
30
|
+
/**
|
|
31
|
+
* Raw data types that can be sent over a WebSocket without serialization.
|
|
32
|
+
*/
|
|
33
|
+
export type RawWebSocketData = string | ArrayBufferLike | ArrayBufferView | ArrayBufferView[];
|
|
34
|
+
export type UnsentMessage<T> = {
|
|
35
|
+
type: 'message';
|
|
36
|
+
message: T;
|
|
37
|
+
} | {
|
|
38
|
+
type: 'raw';
|
|
39
|
+
data: RawWebSocketData;
|
|
40
|
+
};
|
|
41
|
+
/**
|
|
42
|
+
* Flatten `ArrayBufferView[]` fragments into a single `Uint8Array` so that
|
|
43
|
+
* `ws.send()` transmits the correct bytes.
|
|
44
|
+
*/
|
|
45
|
+
export declare function flattenRawData(data: RawWebSocketData): Exclude<RawWebSocketData, ArrayBufferView[]>;
|
|
46
|
+
/**
|
|
47
|
+
* A bounded queue for outgoing WebSocket messages. JSON messages are
|
|
48
|
+
* serialized on enqueue; raw messages are stored as-is. The queue enforces
|
|
49
|
+
* a configurable byte-size limit and can return the original messages via
|
|
50
|
+
* {@link drain} when the connection permanently closes.
|
|
51
|
+
*/
|
|
52
|
+
export declare class SendQueue<T = unknown> {
|
|
53
|
+
private _queue;
|
|
54
|
+
private _bytes;
|
|
55
|
+
private _maxBytes;
|
|
56
|
+
constructor(maxBytes?: number);
|
|
57
|
+
/**
|
|
58
|
+
* Serialize and enqueue a JSON message. Returns `true` if the message was
|
|
59
|
+
* accepted, `false` if it would exceed the byte-size limit.
|
|
60
|
+
*/
|
|
61
|
+
enqueue(event: T): boolean;
|
|
62
|
+
/**
|
|
63
|
+
* Enqueue raw data without serialization. Returns `true` if the data was
|
|
64
|
+
* accepted, `false` if it would exceed the byte-size limit.
|
|
65
|
+
*/
|
|
66
|
+
enqueueRaw(data: RawWebSocketData): boolean;
|
|
67
|
+
/**
|
|
68
|
+
* Send every queued message via `send`. If `send` throws, the failing
|
|
69
|
+
* message and all subsequent messages are re-queued and the error is
|
|
70
|
+
* re-thrown so the caller can report it.
|
|
71
|
+
*/
|
|
72
|
+
flush(send: (data: RawWebSocketData) => void): void;
|
|
73
|
+
/**
|
|
74
|
+
* Drain the queue and return the unsent messages. JSON messages are
|
|
75
|
+
* deserialized back to their original form. Resets byte tracking to zero.
|
|
76
|
+
*/
|
|
77
|
+
drain(): UnsentMessage<T>[];
|
|
78
|
+
}
|
|
79
|
+
export declare function isRecoverableClose(code: number): boolean;
|
|
80
|
+
//# sourceMappingURL=ws.d.mts.map
|