@rivetkit/virtual-websocket 2.0.33 → 2.2.1-pr.4600.b74ff3b
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/dist/mod.cjs +2 -1
- package/dist/mod.d.cts +24 -19
- package/dist/mod.d.ts +24 -19
- package/dist/mod.js +2 -1
- package/package.json +1 -1
- package/src/interface.ts +19 -8
- package/src/virtual-websocket.ts +36 -16
package/dist/mod.cjs
CHANGED
|
@@ -162,10 +162,11 @@ var VirtualWebSocket = class {
|
|
|
162
162
|
};
|
|
163
163
|
this.#dispatch("open", event);
|
|
164
164
|
}
|
|
165
|
-
triggerMessage(data) {
|
|
165
|
+
triggerMessage(data, rivetMessageIndex) {
|
|
166
166
|
const event = {
|
|
167
167
|
type: "message",
|
|
168
168
|
data,
|
|
169
|
+
rivetMessageIndex,
|
|
169
170
|
target: this,
|
|
170
171
|
currentTarget: this
|
|
171
172
|
};
|
package/dist/mod.d.cts
CHANGED
|
@@ -4,7 +4,12 @@ interface RivetEvent {
|
|
|
4
4
|
currentTarget?: any;
|
|
5
5
|
/**
|
|
6
6
|
* @experimental
|
|
7
|
-
*
|
|
7
|
+
* Gateway ID for hibernatable websockets (provided by engine envoy)
|
|
8
|
+
**/
|
|
9
|
+
rivetGatewayId?: ArrayBuffer;
|
|
10
|
+
/**
|
|
11
|
+
* @experimental
|
|
12
|
+
* Request ID for hibernatable websockets (provided by engine envoy)
|
|
8
13
|
**/
|
|
9
14
|
rivetRequestId?: ArrayBuffer;
|
|
10
15
|
}
|
|
@@ -12,7 +17,7 @@ interface RivetMessageEvent extends RivetEvent {
|
|
|
12
17
|
data: any;
|
|
13
18
|
/**
|
|
14
19
|
* @experimental
|
|
15
|
-
* Message index for hibernatable websockets (provided by engine
|
|
20
|
+
* Message index for hibernatable websockets (provided by engine envoy)
|
|
16
21
|
**/
|
|
17
22
|
rivetMessageIndex?: number;
|
|
18
23
|
}
|
|
@@ -38,13 +43,13 @@ interface UniversalWebSocket {
|
|
|
38
43
|
readonly url: string;
|
|
39
44
|
send(data: string | ArrayBufferLike | Blob | ArrayBufferView): void;
|
|
40
45
|
close(code?: number, reason?: string): void;
|
|
41
|
-
addEventListener(type: string, listener: (event: any) => void): void;
|
|
42
|
-
removeEventListener(type: string, listener: (event: any) => void): void;
|
|
46
|
+
addEventListener(type: string, listener: (event: any) => void | Promise<void>): void;
|
|
47
|
+
removeEventListener(type: string, listener: (event: any) => void | Promise<void>): void;
|
|
43
48
|
dispatchEvent(event: RivetEvent): boolean;
|
|
44
|
-
onopen?: ((event: RivetEvent) => void) | null;
|
|
45
|
-
onclose?: ((event: RivetCloseEvent) => void) | null;
|
|
46
|
-
onerror?: ((event: RivetEvent) => void) | null;
|
|
47
|
-
onmessage?: ((event: RivetMessageEvent) => void) | null;
|
|
49
|
+
onopen?: ((event: RivetEvent) => void | Promise<void>) | null;
|
|
50
|
+
onclose?: ((event: RivetCloseEvent) => void | Promise<void>) | null;
|
|
51
|
+
onerror?: ((event: RivetEvent) => void | Promise<void>) | null;
|
|
52
|
+
onmessage?: ((event: RivetMessageEvent) => void | Promise<void>) | null;
|
|
48
53
|
}
|
|
49
54
|
|
|
50
55
|
interface VirtualWebSocketOptions {
|
|
@@ -87,19 +92,19 @@ declare class VirtualWebSocket implements UniversalWebSocket {
|
|
|
87
92
|
close(code?: number, reason?: string): void;
|
|
88
93
|
/** @experimental Immediate close without close frame */
|
|
89
94
|
terminate(): void;
|
|
90
|
-
addEventListener(type: string, listener: (ev: any) => void): void;
|
|
91
|
-
removeEventListener(type: string, listener: (ev: any) => void): void;
|
|
95
|
+
addEventListener(type: string, listener: (ev: any) => void | Promise<void>): void;
|
|
96
|
+
removeEventListener(type: string, listener: (ev: any) => void | Promise<void>): void;
|
|
92
97
|
dispatchEvent(event: RivetEvent): boolean;
|
|
93
|
-
get onopen(): ((event: RivetEvent) => void) | null;
|
|
94
|
-
set onopen(fn: ((event: RivetEvent) => void) | null);
|
|
95
|
-
get onclose(): ((event: RivetCloseEvent) => void) | null;
|
|
96
|
-
set onclose(fn: ((event: RivetCloseEvent) => void) | null);
|
|
97
|
-
get onerror(): ((event: RivetEvent) => void) | null;
|
|
98
|
-
set onerror(fn: ((event: RivetEvent) => void) | null);
|
|
99
|
-
get onmessage(): ((event: RivetMessageEvent) => void) | null;
|
|
100
|
-
set onmessage(fn: ((event: RivetMessageEvent) => void) | null);
|
|
98
|
+
get onopen(): ((event: RivetEvent) => void | Promise<void>) | null;
|
|
99
|
+
set onopen(fn: ((event: RivetEvent) => void | Promise<void>) | null);
|
|
100
|
+
get onclose(): ((event: RivetCloseEvent) => void | Promise<void>) | null;
|
|
101
|
+
set onclose(fn: ((event: RivetCloseEvent) => void | Promise<void>) | null);
|
|
102
|
+
get onerror(): ((event: RivetEvent) => void | Promise<void>) | null;
|
|
103
|
+
set onerror(fn: ((event: RivetEvent) => void | Promise<void>) | null);
|
|
104
|
+
get onmessage(): ((event: RivetMessageEvent) => void | Promise<void>) | null;
|
|
105
|
+
set onmessage(fn: ((event: RivetMessageEvent) => void | Promise<void>) | null);
|
|
101
106
|
triggerOpen(): void;
|
|
102
|
-
triggerMessage(data: any): void;
|
|
107
|
+
triggerMessage(data: any, rivetMessageIndex?: number): void;
|
|
103
108
|
triggerClose(code: number, reason: string, wasClean?: boolean): void;
|
|
104
109
|
triggerError(error: unknown): void;
|
|
105
110
|
}
|
package/dist/mod.d.ts
CHANGED
|
@@ -4,7 +4,12 @@ interface RivetEvent {
|
|
|
4
4
|
currentTarget?: any;
|
|
5
5
|
/**
|
|
6
6
|
* @experimental
|
|
7
|
-
*
|
|
7
|
+
* Gateway ID for hibernatable websockets (provided by engine envoy)
|
|
8
|
+
**/
|
|
9
|
+
rivetGatewayId?: ArrayBuffer;
|
|
10
|
+
/**
|
|
11
|
+
* @experimental
|
|
12
|
+
* Request ID for hibernatable websockets (provided by engine envoy)
|
|
8
13
|
**/
|
|
9
14
|
rivetRequestId?: ArrayBuffer;
|
|
10
15
|
}
|
|
@@ -12,7 +17,7 @@ interface RivetMessageEvent extends RivetEvent {
|
|
|
12
17
|
data: any;
|
|
13
18
|
/**
|
|
14
19
|
* @experimental
|
|
15
|
-
* Message index for hibernatable websockets (provided by engine
|
|
20
|
+
* Message index for hibernatable websockets (provided by engine envoy)
|
|
16
21
|
**/
|
|
17
22
|
rivetMessageIndex?: number;
|
|
18
23
|
}
|
|
@@ -38,13 +43,13 @@ interface UniversalWebSocket {
|
|
|
38
43
|
readonly url: string;
|
|
39
44
|
send(data: string | ArrayBufferLike | Blob | ArrayBufferView): void;
|
|
40
45
|
close(code?: number, reason?: string): void;
|
|
41
|
-
addEventListener(type: string, listener: (event: any) => void): void;
|
|
42
|
-
removeEventListener(type: string, listener: (event: any) => void): void;
|
|
46
|
+
addEventListener(type: string, listener: (event: any) => void | Promise<void>): void;
|
|
47
|
+
removeEventListener(type: string, listener: (event: any) => void | Promise<void>): void;
|
|
43
48
|
dispatchEvent(event: RivetEvent): boolean;
|
|
44
|
-
onopen?: ((event: RivetEvent) => void) | null;
|
|
45
|
-
onclose?: ((event: RivetCloseEvent) => void) | null;
|
|
46
|
-
onerror?: ((event: RivetEvent) => void) | null;
|
|
47
|
-
onmessage?: ((event: RivetMessageEvent) => void) | null;
|
|
49
|
+
onopen?: ((event: RivetEvent) => void | Promise<void>) | null;
|
|
50
|
+
onclose?: ((event: RivetCloseEvent) => void | Promise<void>) | null;
|
|
51
|
+
onerror?: ((event: RivetEvent) => void | Promise<void>) | null;
|
|
52
|
+
onmessage?: ((event: RivetMessageEvent) => void | Promise<void>) | null;
|
|
48
53
|
}
|
|
49
54
|
|
|
50
55
|
interface VirtualWebSocketOptions {
|
|
@@ -87,19 +92,19 @@ declare class VirtualWebSocket implements UniversalWebSocket {
|
|
|
87
92
|
close(code?: number, reason?: string): void;
|
|
88
93
|
/** @experimental Immediate close without close frame */
|
|
89
94
|
terminate(): void;
|
|
90
|
-
addEventListener(type: string, listener: (ev: any) => void): void;
|
|
91
|
-
removeEventListener(type: string, listener: (ev: any) => void): void;
|
|
95
|
+
addEventListener(type: string, listener: (ev: any) => void | Promise<void>): void;
|
|
96
|
+
removeEventListener(type: string, listener: (ev: any) => void | Promise<void>): void;
|
|
92
97
|
dispatchEvent(event: RivetEvent): boolean;
|
|
93
|
-
get onopen(): ((event: RivetEvent) => void) | null;
|
|
94
|
-
set onopen(fn: ((event: RivetEvent) => void) | null);
|
|
95
|
-
get onclose(): ((event: RivetCloseEvent) => void) | null;
|
|
96
|
-
set onclose(fn: ((event: RivetCloseEvent) => void) | null);
|
|
97
|
-
get onerror(): ((event: RivetEvent) => void) | null;
|
|
98
|
-
set onerror(fn: ((event: RivetEvent) => void) | null);
|
|
99
|
-
get onmessage(): ((event: RivetMessageEvent) => void) | null;
|
|
100
|
-
set onmessage(fn: ((event: RivetMessageEvent) => void) | null);
|
|
98
|
+
get onopen(): ((event: RivetEvent) => void | Promise<void>) | null;
|
|
99
|
+
set onopen(fn: ((event: RivetEvent) => void | Promise<void>) | null);
|
|
100
|
+
get onclose(): ((event: RivetCloseEvent) => void | Promise<void>) | null;
|
|
101
|
+
set onclose(fn: ((event: RivetCloseEvent) => void | Promise<void>) | null);
|
|
102
|
+
get onerror(): ((event: RivetEvent) => void | Promise<void>) | null;
|
|
103
|
+
set onerror(fn: ((event: RivetEvent) => void | Promise<void>) | null);
|
|
104
|
+
get onmessage(): ((event: RivetMessageEvent) => void | Promise<void>) | null;
|
|
105
|
+
set onmessage(fn: ((event: RivetMessageEvent) => void | Promise<void>) | null);
|
|
101
106
|
triggerOpen(): void;
|
|
102
|
-
triggerMessage(data: any): void;
|
|
107
|
+
triggerMessage(data: any, rivetMessageIndex?: number): void;
|
|
103
108
|
triggerClose(code: number, reason: string, wasClean?: boolean): void;
|
|
104
109
|
triggerError(error: unknown): void;
|
|
105
110
|
}
|
package/dist/mod.js
CHANGED
|
@@ -136,10 +136,11 @@ var VirtualWebSocket = class {
|
|
|
136
136
|
};
|
|
137
137
|
this.#dispatch("open", event);
|
|
138
138
|
}
|
|
139
|
-
triggerMessage(data) {
|
|
139
|
+
triggerMessage(data, rivetMessageIndex) {
|
|
140
140
|
const event = {
|
|
141
141
|
type: "message",
|
|
142
142
|
data,
|
|
143
|
+
rivetMessageIndex,
|
|
143
144
|
target: this,
|
|
144
145
|
currentTarget: this
|
|
145
146
|
};
|
package/package.json
CHANGED
package/src/interface.ts
CHANGED
|
@@ -5,7 +5,12 @@ export interface RivetEvent {
|
|
|
5
5
|
currentTarget?: any;
|
|
6
6
|
/**
|
|
7
7
|
* @experimental
|
|
8
|
-
*
|
|
8
|
+
* Gateway ID for hibernatable websockets (provided by engine envoy)
|
|
9
|
+
**/
|
|
10
|
+
rivetGatewayId?: ArrayBuffer;
|
|
11
|
+
/**
|
|
12
|
+
* @experimental
|
|
13
|
+
* Request ID for hibernatable websockets (provided by engine envoy)
|
|
9
14
|
**/
|
|
10
15
|
rivetRequestId?: ArrayBuffer;
|
|
11
16
|
}
|
|
@@ -14,7 +19,7 @@ export interface RivetMessageEvent extends RivetEvent {
|
|
|
14
19
|
data: any;
|
|
15
20
|
/**
|
|
16
21
|
* @experimental
|
|
17
|
-
* Message index for hibernatable websockets (provided by engine
|
|
22
|
+
* Message index for hibernatable websockets (provided by engine envoy)
|
|
18
23
|
**/
|
|
19
24
|
rivetMessageIndex?: number;
|
|
20
25
|
}
|
|
@@ -47,13 +52,19 @@ export interface UniversalWebSocket {
|
|
|
47
52
|
// Methods
|
|
48
53
|
send(data: string | ArrayBufferLike | Blob | ArrayBufferView): void;
|
|
49
54
|
close(code?: number, reason?: string): void;
|
|
50
|
-
addEventListener(
|
|
51
|
-
|
|
55
|
+
addEventListener(
|
|
56
|
+
type: string,
|
|
57
|
+
listener: (event: any) => void | Promise<void>,
|
|
58
|
+
): void;
|
|
59
|
+
removeEventListener(
|
|
60
|
+
type: string,
|
|
61
|
+
listener: (event: any) => void | Promise<void>,
|
|
62
|
+
): void;
|
|
52
63
|
dispatchEvent(event: RivetEvent): boolean;
|
|
53
64
|
|
|
54
65
|
// Event handlers (optional)
|
|
55
|
-
onopen?: ((event: RivetEvent) => void) | null;
|
|
56
|
-
onclose?: ((event: RivetCloseEvent) => void) | null;
|
|
57
|
-
onerror?: ((event: RivetEvent) => void) | null;
|
|
58
|
-
onmessage?: ((event: RivetMessageEvent) => void) | null;
|
|
66
|
+
onopen?: ((event: RivetEvent) => void | Promise<void>) | null;
|
|
67
|
+
onclose?: ((event: RivetCloseEvent) => void | Promise<void>) | null;
|
|
68
|
+
onerror?: ((event: RivetEvent) => void | Promise<void>) | null;
|
|
69
|
+
onmessage?: ((event: RivetMessageEvent) => void | Promise<void>) | null;
|
|
59
70
|
}
|
package/src/virtual-websocket.ts
CHANGED
|
@@ -32,11 +32,16 @@ export class VirtualWebSocket implements UniversalWebSocket {
|
|
|
32
32
|
readonly CLOSED = 3 as const;
|
|
33
33
|
|
|
34
34
|
#options: VirtualWebSocketOptions;
|
|
35
|
-
#listeners: Map<string, ((ev: any) => void)[]> =
|
|
36
|
-
|
|
37
|
-
#
|
|
38
|
-
#
|
|
39
|
-
|
|
35
|
+
#listeners: Map<string, ((ev: any) => void | Promise<void>)[]> =
|
|
36
|
+
new Map();
|
|
37
|
+
#onopen: ((event: RivetEvent) => void | Promise<void>) | null = null;
|
|
38
|
+
#onclose:
|
|
39
|
+
| ((event: RivetCloseEvent) => void | Promise<void>)
|
|
40
|
+
| null = null;
|
|
41
|
+
#onerror: ((event: RivetEvent) => void | Promise<void>) | null = null;
|
|
42
|
+
#onmessage:
|
|
43
|
+
| ((event: RivetMessageEvent) => void | Promise<void>)
|
|
44
|
+
| null = null;
|
|
40
45
|
|
|
41
46
|
constructor(options: VirtualWebSocketOptions) {
|
|
42
47
|
this.#options = options;
|
|
@@ -133,14 +138,20 @@ export class VirtualWebSocket implements UniversalWebSocket {
|
|
|
133
138
|
}
|
|
134
139
|
}
|
|
135
140
|
|
|
136
|
-
addEventListener(
|
|
141
|
+
addEventListener(
|
|
142
|
+
type: string,
|
|
143
|
+
listener: (ev: any) => void | Promise<void>,
|
|
144
|
+
): void {
|
|
137
145
|
if (!this.#listeners.has(type)) {
|
|
138
146
|
this.#listeners.set(type, []);
|
|
139
147
|
}
|
|
140
148
|
this.#listeners.get(type)!.push(listener);
|
|
141
149
|
}
|
|
142
150
|
|
|
143
|
-
removeEventListener(
|
|
151
|
+
removeEventListener(
|
|
152
|
+
type: string,
|
|
153
|
+
listener: (ev: any) => void | Promise<void>,
|
|
154
|
+
): void {
|
|
144
155
|
const listeners = this.#listeners.get(type);
|
|
145
156
|
if (listeners) {
|
|
146
157
|
const index = listeners.indexOf(listener);
|
|
@@ -156,31 +167,39 @@ export class VirtualWebSocket implements UniversalWebSocket {
|
|
|
156
167
|
}
|
|
157
168
|
|
|
158
169
|
// on* property getters/setters
|
|
159
|
-
get onopen(): ((event: RivetEvent) => void) | null {
|
|
170
|
+
get onopen(): ((event: RivetEvent) => void | Promise<void>) | null {
|
|
160
171
|
return this.#onopen;
|
|
161
172
|
}
|
|
162
|
-
set onopen(fn: ((event: RivetEvent) => void) | null) {
|
|
173
|
+
set onopen(fn: ((event: RivetEvent) => void | Promise<void>) | null) {
|
|
163
174
|
this.#onopen = fn;
|
|
164
175
|
}
|
|
165
176
|
|
|
166
|
-
get onclose():
|
|
177
|
+
get onclose():
|
|
178
|
+
| ((event: RivetCloseEvent) => void | Promise<void>)
|
|
179
|
+
| null {
|
|
167
180
|
return this.#onclose;
|
|
168
181
|
}
|
|
169
|
-
set onclose(
|
|
182
|
+
set onclose(
|
|
183
|
+
fn: ((event: RivetCloseEvent) => void | Promise<void>) | null,
|
|
184
|
+
) {
|
|
170
185
|
this.#onclose = fn;
|
|
171
186
|
}
|
|
172
187
|
|
|
173
|
-
get onerror(): ((event: RivetEvent) => void) | null {
|
|
188
|
+
get onerror(): ((event: RivetEvent) => void | Promise<void>) | null {
|
|
174
189
|
return this.#onerror;
|
|
175
190
|
}
|
|
176
|
-
set onerror(fn: ((event: RivetEvent) => void) | null) {
|
|
191
|
+
set onerror(fn: ((event: RivetEvent) => void | Promise<void>) | null) {
|
|
177
192
|
this.#onerror = fn;
|
|
178
193
|
}
|
|
179
194
|
|
|
180
|
-
get onmessage():
|
|
195
|
+
get onmessage():
|
|
196
|
+
| ((event: RivetMessageEvent) => void | Promise<void>)
|
|
197
|
+
| null {
|
|
181
198
|
return this.#onmessage;
|
|
182
199
|
}
|
|
183
|
-
set onmessage(
|
|
200
|
+
set onmessage(
|
|
201
|
+
fn: ((event: RivetMessageEvent) => void | Promise<void>) | null,
|
|
202
|
+
) {
|
|
184
203
|
this.#onmessage = fn;
|
|
185
204
|
}
|
|
186
205
|
|
|
@@ -194,10 +213,11 @@ export class VirtualWebSocket implements UniversalWebSocket {
|
|
|
194
213
|
this.#dispatch("open", event);
|
|
195
214
|
}
|
|
196
215
|
|
|
197
|
-
triggerMessage(data: any): void {
|
|
216
|
+
triggerMessage(data: any, rivetMessageIndex?: number): void {
|
|
198
217
|
const event = {
|
|
199
218
|
type: "message",
|
|
200
219
|
data,
|
|
220
|
+
rivetMessageIndex,
|
|
201
221
|
target: this,
|
|
202
222
|
currentTarget: this,
|
|
203
223
|
} as unknown as RivetMessageEvent;
|