ring-client-api 14.0.0-beta.0 → 14.0.0-beta.2
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/lib/api.d.ts +1 -1
- package/lib/api.js +1 -1
- package/lib/location.d.ts +14 -14
- package/lib/location.js +41 -25
- package/lib/refresh-token.js +0 -1
- package/lib/rest-client.d.ts +1 -1
- package/lib/rest-client.js +1 -1
- package/lib/ring-camera.d.ts +5 -5
- package/lib/ring-camera.js +8 -6
- package/lib/ring-chime.d.ts +2 -2
- package/lib/ring-chime.js +4 -4
- package/lib/ring-device.d.ts +3 -3
- package/lib/ring-device.js +5 -5
- package/lib/ring-intercom.d.ts +3 -3
- package/lib/ring-intercom.js +4 -4
- package/lib/ring-types.d.ts +142 -135
- package/lib/ring-types.js +129 -145
- package/lib/streaming/simple-webrtc-session.d.ts +1 -1
- package/lib/streaming/simple-webrtc-session.js +1 -1
- package/lib/streaming/streaming-messages.d.ts +6 -5
- package/lib/streaming/streaming-messages.js +5 -7
- package/lib/streaming/streaming-session.d.ts +2 -2
- package/lib/streaming/streaming-session.js +2 -2
- package/lib/streaming/webrtc-connection.d.ts +2 -2
- package/lib/streaming/webrtc-connection.js +2 -2
- package/package.json +11 -14
package/lib/ring-types.js
CHANGED
|
@@ -1,112 +1,105 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
|
|
48
|
-
|
|
49
|
-
|
|
50
|
-
|
|
51
|
-
|
|
52
|
-
|
|
53
|
-
|
|
54
|
-
|
|
55
|
-
|
|
56
|
-
|
|
57
|
-
|
|
58
|
-
|
|
59
|
-
|
|
60
|
-
|
|
61
|
-
|
|
62
|
-
|
|
63
|
-
|
|
64
|
-
|
|
65
|
-
|
|
66
|
-
|
|
67
|
-
|
|
68
|
-
|
|
69
|
-
|
|
70
|
-
|
|
71
|
-
|
|
72
|
-
|
|
73
|
-
|
|
74
|
-
|
|
75
|
-
|
|
76
|
-
|
|
77
|
-
|
|
78
|
-
|
|
79
|
-
|
|
80
|
-
|
|
81
|
-
|
|
82
|
-
|
|
83
|
-
|
|
84
|
-
|
|
85
|
-
|
|
86
|
-
|
|
87
|
-
|
|
88
|
-
|
|
89
|
-
|
|
90
|
-
|
|
91
|
-
|
|
92
|
-
|
|
93
|
-
|
|
94
|
-
|
|
95
|
-
|
|
96
|
-
|
|
97
|
-
|
|
98
|
-
|
|
99
|
-
|
|
100
|
-
|
|
101
|
-
|
|
102
|
-
|
|
103
|
-
RingCameraKind["cocoa_doorbell_v3"] = "cocoa_doorbell_v3";
|
|
104
|
-
RingCameraKind["cocoa_floodlight"] = "cocoa_floodlight";
|
|
105
|
-
RingCameraKind["cocoa_spotlight"] = "cocoa_spotlight";
|
|
106
|
-
RingCameraKind["stickup_cam_mini"] = "stickup_cam_mini";
|
|
107
|
-
RingCameraKind["onvif_camera"] = "onvif_camera";
|
|
108
|
-
})(RingCameraKind || (RingCameraKind = {}));
|
|
109
|
-
// eslint-disable-next-line @typescript-eslint/no-unused-vars
|
|
1
|
+
export const RingDeviceType = {
|
|
2
|
+
BaseStation: 'hub.redsky',
|
|
3
|
+
BaseStationPro: 'hub.kili',
|
|
4
|
+
Keypad: 'security-keypad',
|
|
5
|
+
SecurityPanel: 'security-panel',
|
|
6
|
+
ContactSensor: 'sensor.contact',
|
|
7
|
+
MotionSensor: 'sensor.motion',
|
|
8
|
+
FloodFreezeSensor: 'sensor.flood-freeze',
|
|
9
|
+
FreezeSensor: 'sensor.freeze',
|
|
10
|
+
TemperatureSensor: 'sensor.temperature',
|
|
11
|
+
WaterSensor: 'sensor.water',
|
|
12
|
+
TiltSensor: 'sensor.tilt',
|
|
13
|
+
GlassbreakSensor: 'sensor.glassbreak',
|
|
14
|
+
RangeExtender: 'range-extender.zwave',
|
|
15
|
+
ZigbeeAdapter: 'adapter.zigbee',
|
|
16
|
+
AccessCodeVault: 'access-code.vault',
|
|
17
|
+
AccessCode: 'access-code',
|
|
18
|
+
SmokeAlarm: 'alarm.smoke',
|
|
19
|
+
CoAlarm: 'alarm.co',
|
|
20
|
+
SmokeCoListener: 'listener.smoke-co',
|
|
21
|
+
MultiLevelSwitch: 'switch.multilevel',
|
|
22
|
+
Fan: 'switch.multilevel',
|
|
23
|
+
MultiLevelBulb: 'switch.multilevel.bulb',
|
|
24
|
+
Switch: 'switch',
|
|
25
|
+
BeamsMotionSensor: 'motion-sensor.beams',
|
|
26
|
+
BeamsSwitch: 'switch.beams',
|
|
27
|
+
BeamsMultiLevelSwitch: 'switch.multilevel.beams',
|
|
28
|
+
BeamsLightGroupSwitch: 'group.light-group.beams',
|
|
29
|
+
BeamsTransformerSwitch: 'switch.transformer.beams',
|
|
30
|
+
BeamsDevice: 'device.beams',
|
|
31
|
+
RetrofitBridge: 'bridge.flatline',
|
|
32
|
+
RetrofitZone: 'sensor.zone',
|
|
33
|
+
Thermostat: 'temperature-control.thermostat',
|
|
34
|
+
Sensor: 'sensor',
|
|
35
|
+
RingNetAdapter: 'adapter.ringnet',
|
|
36
|
+
CodeVault: 'access-code.vault',
|
|
37
|
+
SecurityAccessCode: 'access-code',
|
|
38
|
+
ZWaveAdapter: 'adapter.zwave',
|
|
39
|
+
ZWaveExtender: 'range-extender.zwave',
|
|
40
|
+
PanicButton: 'security-panic',
|
|
41
|
+
UnknownZWave: 'unknown.zwave',
|
|
42
|
+
OnvifCamera: 'onvif_camera',
|
|
43
|
+
ThirdPartyGarageDoorOpener: 'third_party_gdo',
|
|
44
|
+
IntercomHandsetAudio: 'intercom_handset_audio',
|
|
45
|
+
WaterValve: 'valve.water',
|
|
46
|
+
};
|
|
47
|
+
export const RingDeviceCategory = {
|
|
48
|
+
Outlets: 1,
|
|
49
|
+
Lights: 2,
|
|
50
|
+
Sensors: 5,
|
|
51
|
+
Appliances: 7,
|
|
52
|
+
Locks: 10,
|
|
53
|
+
Thermostats: 11,
|
|
54
|
+
Cameras: 12,
|
|
55
|
+
Alarms: 15,
|
|
56
|
+
Fans: 17,
|
|
57
|
+
Security: 22,
|
|
58
|
+
Unknown: 29,
|
|
59
|
+
SensorsMotion: 30,
|
|
60
|
+
Controller: 31,
|
|
61
|
+
RangeExtenders: 32,
|
|
62
|
+
Keypads: 33,
|
|
63
|
+
Sirens: 34,
|
|
64
|
+
PanicButtons: 35,
|
|
65
|
+
WaterValves: 37,
|
|
66
|
+
};
|
|
67
|
+
export const RingCameraKind = {
|
|
68
|
+
doorbot: 'doorbot',
|
|
69
|
+
doorbell: 'doorbell',
|
|
70
|
+
doorbell_v3: 'doorbell_v3',
|
|
71
|
+
doorbell_v4: 'doorbell_v4',
|
|
72
|
+
doorbell_v5: 'doorbell_v5',
|
|
73
|
+
doorbell_oyster: 'doorbell_oyster', // used for the Ring Video Doorbell 4
|
|
74
|
+
doorbell_portal: 'doorbell_portal',
|
|
75
|
+
doorbell_scallop: 'doorbell_scallop',
|
|
76
|
+
doorbell_scallop_lite: 'doorbell_scallop_lite',
|
|
77
|
+
doorbell_graham_cracker: 'doorbell_graham_cracker',
|
|
78
|
+
lpd_v1: 'lpd_v1',
|
|
79
|
+
lpd_v2: 'lpd_v2',
|
|
80
|
+
lpd_v4: 'lpd_v4',
|
|
81
|
+
jbox_v1: 'jbox_v1',
|
|
82
|
+
stickup_cam: 'stickup_cam',
|
|
83
|
+
stickup_cam_v3: 'stickup_cam_v3',
|
|
84
|
+
stickup_cam_elite: 'stickup_cam_elite',
|
|
85
|
+
stickup_cam_longfin: 'stickup_cam_longfin',
|
|
86
|
+
stickup_cam_lunar: 'stickup_cam_lunar',
|
|
87
|
+
spotlightw_v2: 'spotlightw_v2',
|
|
88
|
+
hp_cam_v1: 'hp_cam_v1',
|
|
89
|
+
hp_cam_v2: 'hp_cam_v2',
|
|
90
|
+
stickup_cam_v4: 'stickup_cam_v4',
|
|
91
|
+
floodlight_v1: 'floodlight_v1',
|
|
92
|
+
floodlight_v2: 'floodlight_v2',
|
|
93
|
+
floodlight_pro: 'floodlight_pro',
|
|
94
|
+
cocoa_camera: 'cocoa_camera', // appears to be used for all next gen stickup cams (wired/battery/solar)
|
|
95
|
+
cocoa_doorbell: 'cocoa_doorbell',
|
|
96
|
+
cocoa_doorbell_v2: 'cocoa_doorbell_v2',
|
|
97
|
+
cocoa_doorbell_v3: 'cocoa_doorbell_v3',
|
|
98
|
+
cocoa_floodlight: 'cocoa_floodlight',
|
|
99
|
+
cocoa_spotlight: 'cocoa_spotlight', // used for the Spotlight Cam Plus (potentially other Spotlight models)
|
|
100
|
+
stickup_cam_mini: 'stickup_cam_mini',
|
|
101
|
+
onvif_camera: 'onvif_camera',
|
|
102
|
+
};
|
|
110
103
|
export const RingCameraModel = {
|
|
111
104
|
doorbot: 'Doorbell',
|
|
112
105
|
doorbell: 'Doorbell',
|
|
@@ -158,49 +151,40 @@ export const deviceTypesWithVolume = [
|
|
|
158
151
|
RingDeviceType.BaseStation,
|
|
159
152
|
RingDeviceType.Keypad,
|
|
160
153
|
];
|
|
161
|
-
// eslint-disable-next-line @typescript-eslint/no-unused-vars
|
|
162
154
|
export const ChimeModel = {
|
|
163
155
|
chime: 'Chime',
|
|
164
156
|
chime_pro: 'Chime Pro',
|
|
165
157
|
chime_v2: 'Chime v2',
|
|
166
158
|
chime_pro_v2: 'Chime Pro v2',
|
|
167
159
|
};
|
|
168
|
-
|
|
169
|
-
|
|
170
|
-
|
|
171
|
-
|
|
172
|
-
|
|
173
|
-
|
|
174
|
-
})(DoorbellType || (DoorbellType = {}));
|
|
175
|
-
// eslint-disable-next-line no-shadow
|
|
176
|
-
export var NotificationDetectionType;
|
|
177
|
-
(function (NotificationDetectionType) {
|
|
160
|
+
export const DoorbellType = {
|
|
161
|
+
Mechanical: 0,
|
|
162
|
+
Digital: 1,
|
|
163
|
+
None: 2,
|
|
164
|
+
};
|
|
165
|
+
export const NotificationDetectionType = {
|
|
178
166
|
// Note, this list may not be complete
|
|
179
|
-
|
|
180
|
-
|
|
181
|
-
|
|
182
|
-
|
|
183
|
-
|
|
184
|
-
|
|
185
|
-
}
|
|
186
|
-
|
|
187
|
-
|
|
188
|
-
|
|
189
|
-
|
|
190
|
-
|
|
191
|
-
|
|
192
|
-
|
|
193
|
-
|
|
194
|
-
|
|
195
|
-
|
|
196
|
-
|
|
197
|
-
|
|
198
|
-
|
|
199
|
-
|
|
200
|
-
(function (DispatchSignalType) {
|
|
201
|
-
DispatchSignalType["Burglar"] = "user-verified-burglar-xa";
|
|
202
|
-
DispatchSignalType["Fire"] = "user-verified-fire-xa";
|
|
203
|
-
})(DispatchSignalType || (DispatchSignalType = {}));
|
|
167
|
+
Human: 'human',
|
|
168
|
+
Loitering: 'loitering',
|
|
169
|
+
Motion: 'motion',
|
|
170
|
+
OtherMotion: 'other_motion',
|
|
171
|
+
NotAvailable: 'null',
|
|
172
|
+
StreamBroken: 'stream_broken',
|
|
173
|
+
};
|
|
174
|
+
export const PushNotificationAction = {
|
|
175
|
+
Ding: 'com.ring.pn.live-event.ding',
|
|
176
|
+
Motion: 'com.ring.pn.live-event.motion',
|
|
177
|
+
IntercomDing: 'com.ring.pn.live-event.intercom',
|
|
178
|
+
IntercomUnlock: 'com.ring.push.INTERCOM_UNLOCK_FROM_APP',
|
|
179
|
+
AlarmModeNone: 'com.ring.push.HANDLE_NEW_SECURITY_PANEL_MODE_NONE_NOTICE',
|
|
180
|
+
AlarmModeSome: 'com.ring.push.HANDLE_NEW_SECURITY_PANEL_MODE_SOME_NOTICE',
|
|
181
|
+
AlarmSoundSiren: 'com.ring.push.HANDLE_NEW_USER_SOUND_SIREN',
|
|
182
|
+
AlarmSilenceSiren: 'com.ring.push.HANDLE_NEW_NON_ALARM_SIREN_SILENCED',
|
|
183
|
+
};
|
|
184
|
+
export const DispatchSignalType = {
|
|
185
|
+
Burglar: 'user-verified-burglar-xa',
|
|
186
|
+
Fire: 'user-verified-fire-xa',
|
|
187
|
+
};
|
|
204
188
|
export const disabledLocationModes = ['disabled', 'unset'];
|
|
205
189
|
export function isWebSocketSupportedAsset({ kind }) {
|
|
206
190
|
return kind.startsWith('base_station') || kind.startsWith('beams_bridge');
|
|
@@ -1,9 +1,9 @@
|
|
|
1
1
|
import type { RingCamera } from '../ring-camera.ts';
|
|
2
2
|
import type { RingRestClient } from '../rest-client.ts';
|
|
3
3
|
export declare class SimpleWebRtcSession {
|
|
4
|
+
readonly sessionId: string;
|
|
4
5
|
private readonly camera;
|
|
5
6
|
private restClient;
|
|
6
|
-
readonly sessionId: string;
|
|
7
7
|
constructor(camera: RingCamera, restClient: RingRestClient);
|
|
8
8
|
start(sdp: string): Promise<string>;
|
|
9
9
|
end(): Promise<any>;
|
|
@@ -3,9 +3,9 @@ function liveViewUrl(path) {
|
|
|
3
3
|
return `https://api.ring.com/integrations/v1/liveview/${path}`;
|
|
4
4
|
}
|
|
5
5
|
export class SimpleWebRtcSession {
|
|
6
|
+
sessionId = generateUuid();
|
|
6
7
|
camera;
|
|
7
8
|
restClient;
|
|
8
|
-
sessionId = generateUuid();
|
|
9
9
|
constructor(camera, restClient) {
|
|
10
10
|
this.camera = camera;
|
|
11
11
|
this.restClient = restClient;
|
|
@@ -46,11 +46,12 @@ interface StreamInfoMessage {
|
|
|
46
46
|
transcoding_reason: 'codec_mismatch' | string;
|
|
47
47
|
};
|
|
48
48
|
}
|
|
49
|
-
declare
|
|
50
|
-
NormalClose
|
|
51
|
-
AuthenticationFailed
|
|
52
|
-
Timeout
|
|
53
|
-
}
|
|
49
|
+
declare const CloseReasonCode: {
|
|
50
|
+
readonly NormalClose: 0;
|
|
51
|
+
readonly AuthenticationFailed: 5;
|
|
52
|
+
readonly Timeout: 6;
|
|
53
|
+
};
|
|
54
|
+
type CloseReasonCode = (typeof CloseReasonCode)[keyof typeof CloseReasonCode];
|
|
54
55
|
interface CloseMessage {
|
|
55
56
|
method: 'close';
|
|
56
57
|
body: {
|
|
@@ -1,12 +1,10 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
3
|
-
(function (CloseReasonCode) {
|
|
4
|
-
CloseReasonCode[CloseReasonCode["NormalClose"] = 0] = "NormalClose";
|
|
1
|
+
const CloseReasonCode = {
|
|
2
|
+
NormalClose: 0,
|
|
5
3
|
// reason: { code: 5, text: '[rsl-apps/webrtc-liveview-server/Session.cpp:429] [Auth] [0xd540]: [rsl-apps/session-manager/Manager.cpp:227] [AppAuth] Unauthorized: invalid or expired token' }
|
|
6
4
|
// reason: { code: 5, text: 'Authentication failed: -1' }
|
|
7
5
|
// reason: { code: 5, text: 'Sessions with the provided ID not found' }
|
|
8
|
-
|
|
6
|
+
AuthenticationFailed: 5,
|
|
9
7
|
// reason: { code: 6, text: 'Timeout waiting for ping' }
|
|
10
|
-
|
|
11
|
-
}
|
|
8
|
+
Timeout: 6,
|
|
9
|
+
};
|
|
12
10
|
export {};
|
|
@@ -12,8 +12,6 @@ export interface FfmpegOptions {
|
|
|
12
12
|
output: SpawnInput[];
|
|
13
13
|
}
|
|
14
14
|
export declare class StreamingSession extends Subscribed {
|
|
15
|
-
private readonly camera;
|
|
16
|
-
private connection;
|
|
17
15
|
readonly onCallEnded: ReplaySubject<void>;
|
|
18
16
|
private readonly onUsingOpus;
|
|
19
17
|
readonly onVideoRtp: Subject<RtpPacket>;
|
|
@@ -21,6 +19,8 @@ export declare class StreamingSession extends Subscribed {
|
|
|
21
19
|
private readonly audioSplitter;
|
|
22
20
|
private readonly videoSplitter;
|
|
23
21
|
private readonly returnAudioSplitter;
|
|
22
|
+
private readonly camera;
|
|
23
|
+
private connection;
|
|
24
24
|
constructor(camera: RingCamera, connection: WebrtcConnection);
|
|
25
25
|
private bindToConnection;
|
|
26
26
|
/**
|
|
@@ -14,8 +14,6 @@ function getCleanSdp(sdp, includeVideo) {
|
|
|
14
14
|
.join('\n');
|
|
15
15
|
}
|
|
16
16
|
export class StreamingSession extends Subscribed {
|
|
17
|
-
camera;
|
|
18
|
-
connection;
|
|
19
17
|
onCallEnded = new ReplaySubject(1);
|
|
20
18
|
onUsingOpus = new ReplaySubject(1);
|
|
21
19
|
onVideoRtp = new Subject();
|
|
@@ -23,6 +21,8 @@ export class StreamingSession extends Subscribed {
|
|
|
23
21
|
audioSplitter = new RtpSplitter();
|
|
24
22
|
videoSplitter = new RtpSplitter();
|
|
25
23
|
returnAudioSplitter = new RtpSplitter();
|
|
24
|
+
camera;
|
|
25
|
+
connection;
|
|
26
26
|
constructor(camera, connection) {
|
|
27
27
|
super();
|
|
28
28
|
this.camera = camera;
|
|
@@ -7,7 +7,6 @@ export interface StreamingConnectionOptions {
|
|
|
7
7
|
createPeerConnection?: () => BasicPeerConnection;
|
|
8
8
|
}
|
|
9
9
|
export declare class WebrtcConnection extends Subscribed {
|
|
10
|
-
private camera;
|
|
11
10
|
private readonly onSessionId;
|
|
12
11
|
private readonly onOfferSent;
|
|
13
12
|
private readonly dialogId;
|
|
@@ -18,11 +17,12 @@ export declare class WebrtcConnection extends Subscribed {
|
|
|
18
17
|
readonly onMessage: ReplaySubject<{
|
|
19
18
|
method: string;
|
|
20
19
|
}>;
|
|
21
|
-
readonly onWsOpen: import("rxjs").Observable<
|
|
20
|
+
readonly onWsOpen: import("rxjs").Observable<Event>;
|
|
22
21
|
readonly onAudioRtp: Subject<RtpPacket>;
|
|
23
22
|
readonly onVideoRtp: Subject<RtpPacket>;
|
|
24
23
|
private readonly pc;
|
|
25
24
|
private readonly ws;
|
|
25
|
+
private camera;
|
|
26
26
|
constructor(ticket: string, camera: RingCamera, options: StreamingConnectionOptions);
|
|
27
27
|
private initiateCall;
|
|
28
28
|
private sessionId;
|
|
@@ -1,11 +1,10 @@
|
|
|
1
|
-
import { WebSocket } from '
|
|
1
|
+
import { WebSocket } from 'undici';
|
|
2
2
|
import { firstValueFrom, fromEvent, interval, ReplaySubject, Subject, } from 'rxjs';
|
|
3
3
|
import { concatMap, take } from 'rxjs/operators';
|
|
4
4
|
import { generateUuid, logDebug, logError, logInfo } from "../util.js";
|
|
5
5
|
import { WeriftPeerConnection, } from "./peer-connection.js";
|
|
6
6
|
import { Subscribed } from "../subscribed.js";
|
|
7
7
|
export class WebrtcConnection extends Subscribed {
|
|
8
|
-
camera;
|
|
9
8
|
onSessionId = new ReplaySubject(1);
|
|
10
9
|
onOfferSent = new ReplaySubject(1);
|
|
11
10
|
dialogId = generateUuid();
|
|
@@ -19,6 +18,7 @@ export class WebrtcConnection extends Subscribed {
|
|
|
19
18
|
onVideoRtp;
|
|
20
19
|
pc;
|
|
21
20
|
ws;
|
|
21
|
+
camera;
|
|
22
22
|
constructor(ticket, camera, options) {
|
|
23
23
|
super();
|
|
24
24
|
this.camera = camera;
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "ring-client-api",
|
|
3
|
-
"version": "14.0.0-beta.
|
|
3
|
+
"version": "14.0.0-beta.2",
|
|
4
4
|
"description": "Unofficial API for Ring doorbells, cameras, security alarm system and smart lighting",
|
|
5
5
|
"main": "lib/index.js",
|
|
6
6
|
"type": "module",
|
|
@@ -23,29 +23,26 @@
|
|
|
23
23
|
"colors": "1.4.0",
|
|
24
24
|
"debug": "^4.4.0",
|
|
25
25
|
"json-bigint": "^1.0.0",
|
|
26
|
-
"rxjs": "^7.8.
|
|
27
|
-
"socket.io-client": "^2.5.0",
|
|
26
|
+
"rxjs": "^7.8.2",
|
|
28
27
|
"systeminformation": "^5.25.11",
|
|
29
|
-
"undici": "^7.
|
|
30
|
-
"uuid": "^11.0
|
|
31
|
-
"werift": "0.
|
|
32
|
-
"ws": "^8.18.0"
|
|
28
|
+
"undici": "^7.8.0",
|
|
29
|
+
"uuid": "^11.1.0",
|
|
30
|
+
"werift": "0.22.1"
|
|
33
31
|
},
|
|
34
32
|
"devDependencies": {
|
|
35
33
|
"@types/debug": "4.1.12",
|
|
36
34
|
"@types/json-bigint": "^1.0.4",
|
|
37
|
-
"@types/node": "22.
|
|
38
|
-
"@types/socket.io-client": "1.4.36",
|
|
35
|
+
"@types/node": "22.15.17",
|
|
39
36
|
"@types/uuid": "10.0.0",
|
|
40
|
-
"@types/ws": "^8.
|
|
37
|
+
"@types/ws": "^8.18.1",
|
|
41
38
|
"eslint-config-shared": "*",
|
|
42
|
-
"msw": "^2.
|
|
39
|
+
"msw": "^2.8.0",
|
|
43
40
|
"tsconfig": "*",
|
|
44
|
-
"typescript": "5.
|
|
45
|
-
"vitest": "^
|
|
41
|
+
"typescript": "5.8.3",
|
|
42
|
+
"vitest": "^3.1.3"
|
|
46
43
|
},
|
|
47
44
|
"engines": {
|
|
48
|
-
"node": "^
|
|
45
|
+
"node": "^20 || ^22"
|
|
49
46
|
},
|
|
50
47
|
"repository": {
|
|
51
48
|
"type": "git",
|