@camera.ui/camera-ui-ring 0.0.11 → 0.0.20

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/contract.js CHANGED
@@ -4,5 +4,6 @@ exports.pluginContract = void 0;
4
4
  exports.pluginContract = {
5
5
  pluginName: '@camera.ui/camera-ui-ring',
6
6
  builtIns: ['motionDetection'],
7
+ dependencies: [],
7
8
  };
8
9
  //# sourceMappingURL=contract.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"contract.js","sourceRoot":"","sources":["../src/contract.ts"],"names":[],"mappings":";;;AAEa,QAAA,cAAc,GAAmB;IAC5C,UAAU,EAAE,2BAA2B;IACvC,QAAQ,EAAE,CAAC,iBAAiB,CAAC;CAC9B,CAAC"}
1
+ {"version":3,"file":"contract.js","sourceRoot":"","sources":["../src/contract.ts"],"names":[],"mappings":";;;AAEa,QAAA,cAAc,GAAmB;IAC5C,UAAU,EAAE,2BAA2B;IACvC,QAAQ,EAAE,CAAC,iBAAiB,CAAC;IAC7B,YAAY,EAAE,EAAE;CACjB,CAAC"}
package/dist/index.js CHANGED
@@ -22,16 +22,31 @@ class RingPlugin extends types_1.BasePlugin {
22
22
  this.api.on('finishLaunching', this.start.bind(this));
23
23
  this.api.on('shutdown', this.stop.bind(this));
24
24
  }
25
- start() {
26
- this.proxyServer = new server_1.ProxyServer(this.config, this.ringCameraConnections, this.logger);
27
- this.proxyServer.createServer();
28
- this.connect();
25
+ async start() {
26
+ this.proxyServer = new server_1.ProxyServer(this.config, this.cameras, this.ringCameraConnections, this.logger);
27
+ for (const home of this.config.homes) {
28
+ await this.connectHome(home);
29
+ }
30
+ // Remove orphaned cameras
31
+ for (const [cameraId, cameraDevice] of this.cameras) {
32
+ const ringCameraId = cameraDevice.nativeId;
33
+ if (!this.ringCameraConnections.get(ringCameraId)) {
34
+ this.logger.warn('Removing camera', cameraDevice.name);
35
+ this.cameras.delete(cameraId);
36
+ await this.api.deviceManager.removeCameraById(cameraDevice.id);
37
+ }
38
+ }
29
39
  }
30
40
  stop() {
31
41
  this.proxyServer?.close();
32
42
  this.ringCameraConnections.forEach((connection) => connection.close());
33
43
  this.ringConnections.forEach((ringApi) => ringApi.disconnect());
34
44
  }
45
+ configureCameras(cameras) {
46
+ for (const camera of cameras) {
47
+ this.cameras.set(camera.id, camera);
48
+ }
49
+ }
35
50
  async onFormSubmit(actionId, home) {
36
51
  switch (actionId) {
37
52
  case 'onLogin':
@@ -44,7 +59,8 @@ class RingPlugin extends types_1.BasePlugin {
44
59
  });
45
60
  if (response?.refreshToken) {
46
61
  this.restClient = undefined;
47
- home = this.setRefreshToken(home, response.refreshToken);
62
+ home.token = response.refreshToken;
63
+ this.setRefreshToken(home);
48
64
  this.connectHome(home);
49
65
  return { toast: 'Logged in' };
50
66
  }
@@ -52,9 +68,9 @@ class RingPlugin extends types_1.BasePlugin {
52
68
  throw new Error('Failed to Login');
53
69
  }
54
70
  }
55
- catch (e) {
56
- this.logger.error(e.message, 'Failed to Link Account');
57
- return { toast: 'Failed to Link Account' };
71
+ catch (error) {
72
+ const message = `Failed to Link Account. Reason: ${error.message}. Trying to login again...`;
73
+ this.logger.error(home.name, message);
58
74
  }
59
75
  }
60
76
  // token was not valid, login again
@@ -66,7 +82,8 @@ class RingPlugin extends types_1.BasePlugin {
66
82
  if ('refreshToken' in response) {
67
83
  // didn't need 2fa, return token without asking for code
68
84
  this.restClient = undefined;
69
- home = this.setRefreshToken(home, response.refreshToken);
85
+ home.token = response.refreshToken;
86
+ this.setRefreshToken(home);
70
87
  this.connectHome(home);
71
88
  return { toast: 'Logged in' };
72
89
  }
@@ -75,31 +92,15 @@ class RingPlugin extends types_1.BasePlugin {
75
92
  }
76
93
  }
77
94
  catch (error) {
78
- this.logger.error(error.message, 'Ring Login Failed');
95
+ const message = `Failed to Link Account. Reason: ${error.message}`;
96
+ this.logger.error(home.name, message);
97
+ return { toast: message };
79
98
  }
80
99
  break;
81
100
  default:
82
- this.logger.warn('Unknown actionId', actionId);
83
- }
84
- return {};
85
- }
86
- configureCameras(cameras) {
87
- // this.logger.log('configureDevices', cameras);
88
- for (const camera of cameras) {
89
- this.cameras.set(camera.id, camera);
90
- }
91
- }
92
- async connect() {
93
- for (const home of this.config.homes) {
94
- await this.connectHome(home);
95
- }
96
- for (const [cameraId, cameraDevice] of this.cameras) {
97
- const cameras = Array.from(this.ringCameraConnections.keys()).map((c) => c.cameraName);
98
- if (!cameras.includes(cameraDevice.name)) {
99
- this.logger.warn('Removing camera', cameraDevice.name);
100
- this.cameras.delete(cameraId);
101
- await this.api.deviceManager.removeCameraById(cameraDevice.id);
102
- }
101
+ const message = `Unknown actionId: ${actionId}`;
102
+ this.logger.warn(message);
103
+ return { toast: message };
103
104
  }
104
105
  }
105
106
  async connectHome(home) {
@@ -108,58 +109,54 @@ class RingPlugin extends types_1.BasePlugin {
108
109
  const api = new ring_client_api_1.RingApi({ refreshToken: home.token });
109
110
  this.ringConnections.set(home.name, api);
110
111
  api.onRefreshTokenUpdated.subscribe(async (refreshToken) => {
111
- home = this.setRefreshToken(home, refreshToken.newRefreshToken);
112
+ home.token = refreshToken.newRefreshToken;
113
+ this.setRefreshToken(home);
112
114
  });
113
115
  const ringCameras = await api.getCameras();
114
116
  for (const camera of ringCameras) {
115
- const ringInfo = {
116
- cameraName: camera.name,
117
- pathName: `/${camera.name}`,
118
- streamSource: `webrtc:ws://localhost:${this.config.server.listen}/${camera.name}`,
119
- snapshotSource: `http://localhost:${this.config.server.listen}/${camera.name}`,
117
+ const ringCameraId = camera.id.toString();
118
+ const proxyInfo = {
119
+ ringCameraId: ringCameraId,
120
+ pathName: `/${ringCameraId}`,
121
+ streamSource: `webrtc:ws://localhost:${this.config.server.listen}/${ringCameraId}`,
122
+ snapshotSource: `http://localhost:${this.config.server.listen}/${ringCameraId}`,
120
123
  };
121
124
  if (this.config.server.username && this.config.server.password) {
122
- ringInfo.streamSource += `?username=${this.config.server.username}&password=${this.config.server.password}`;
123
- ringInfo.snapshotSource += `?username=${this.config.server.username}&password=${this.config.server.password}`;
125
+ proxyInfo.streamSource += `?username=${this.config.server.username}&password=${this.config.server.password}`;
126
+ proxyInfo.snapshotSource += `?username=${this.config.server.username}&password=${this.config.server.password}`;
124
127
  }
125
- // add nativeId?
126
- let cameraDevice = Array.from(this.cameras).find(([, cameraDevice]) => cameraDevice.name === camera.name)?.[1];
128
+ let cameraDevice = Array.from(this.cameras.values()).find((camera) => camera.nativeId === ringCameraId);
127
129
  if (!cameraDevice) {
128
130
  this.logger.log('Adding camera', camera.name);
129
131
  cameraDevice = await this.api.deviceManager.createCamera({
130
132
  name: camera.name,
133
+ nativeId: ringCameraId,
131
134
  model: 'Ring Camera',
132
135
  sources: [
133
136
  {
134
137
  name: 'main',
135
138
  roles: ['stream'],
136
- urls: [ringInfo.streamSource],
139
+ urls: [proxyInfo.streamSource],
137
140
  },
138
141
  {
139
142
  name: 'snapshot',
140
143
  roles: ['snapshot'],
141
- urls: [ringInfo.snapshotSource],
144
+ urls: [proxyInfo.snapshotSource],
142
145
  },
143
146
  ],
144
147
  });
145
148
  this.cameras.set(cameraDevice.id, cameraDevice);
146
149
  }
147
- const webRtcProxy = new ws_1.WebsocketProxy(camera, cameraDevice, this.config, this.logger);
148
- webRtcProxy.createServer();
149
- this.ringCameraConnections.set(ringInfo, webRtcProxy);
150
+ const webRtcProxy = new ws_1.WebsocketProxy(camera, cameraDevice, proxyInfo, this.logger);
151
+ this.ringCameraConnections.set(ringCameraId, webRtcProxy);
150
152
  }
151
153
  }
152
154
  else {
153
- this.logger.warn(home.name, 'No refresh token, please login again!');
155
+ throw new Error('No refresh token, please login again!');
154
156
  }
155
157
  }
156
158
  catch (error) {
157
- if (error.message?.includes('Refresh token is not valid')) {
158
- this.logger.warn(home.name, 'Invalid refresh token, please login again!');
159
- }
160
- else {
161
- this.logger.error(home.name, error.message ?? error);
162
- }
159
+ this.logger.error(home.name, error.message ?? error);
163
160
  }
164
161
  }
165
162
  async generateCode({ email, password }) {
@@ -170,7 +167,8 @@ class RingPlugin extends types_1.BasePlugin {
170
167
  });
171
168
  try {
172
169
  const { refresh_token } = await this.restClient.getCurrentAuth();
173
- // If we get here, 2fa was not required. I'm not sure this is possible anymore, but it's here just in case
170
+ // If we get here, 2fa was not required.
171
+ // I'm not sure this is possible anymore, but it's here just in case
174
172
  return { refreshToken: refresh_token };
175
173
  }
176
174
  catch (error) {
@@ -193,16 +191,8 @@ class RingPlugin extends types_1.BasePlugin {
193
191
  this.logger.error('Incorrect 2fa Code. Please check the code and try again', error.message);
194
192
  }
195
193
  }
196
- setRefreshToken(home, refreshToken) {
197
- const newHome = {
198
- ...home,
199
- token: refreshToken,
200
- };
201
- this.configService.replaceOrAddItem('homes', 'name', home.name, {
202
- name: home.name,
203
- token: refreshToken,
204
- }, true);
205
- return newHome;
194
+ setRefreshToken(home) {
195
+ this.configService.replaceOrAddItem('homes', 'name', home.name, home, true);
206
196
  }
207
197
  }
208
198
  //# sourceMappingURL=index.js.map
package/dist/index.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":";;AAAA,qDAA0C;AAC1C,6DAA6D;AAC7D,4CAA8C;AAE9C,yCAA4C;AAC5C,6BAAsC;AACtC,qCAAuC;AAKvC,kBAAe,CAAC,GAAQ,EAAE,EAAE,CAAC,GAAG,CAAC,cAAc,CAAC,UAAU,EAAE,yBAAc,CAAC,CAAC;AAE5E,MAAM,UAAW,SAAQ,kBAAU;IAC1B,MAAM,CAAS;IAEd,WAAW,CAAe;IAC1B,UAAU,CAAkB;IAC5B,eAAe,GAAG,IAAI,GAAG,EAAmB,CAAC;IAC7C,qBAAqB,GAAG,IAAI,GAAG,EAA4B,CAAC;IAEpE,YAAY,QAAgB,EAAE,GAAiB,EAAE,aAAkC,EAAE,OAAgB,EAAE,GAAQ;QAC7G,KAAK,CAAC,QAAQ,EAAE,GAAG,EAAE,aAAa,EAAE,OAAO,EAAE,GAAG,CAAC,CAAC;QAElD,IAAI,CAAC,MAAM,GAAG,IAAI,CAAC,aAAa,CAAC,GAAG,EAAY,CAAC;QACjD,IAAI,CAAC,MAAM,CAAC,MAAM,GAAG,IAAI,CAAC,aAAa,CAAC,GAAG,CAAC,QAAQ,EAAE,EAAE,EAAE,CAAC,KAAU,EAAE,EAAE,CAAC,MAAM,CAAC,SAAS,CAAC,QAAQ,CAAC,IAAI,CAAC,KAAK,CAAC,KAAK,iBAAiB,CAAC,CAAC;QACvI,IAAI,CAAC,MAAM,CAAC,MAAM,CAAC,MAAM,GAAG,IAAI,CAAC,aAAa,CAAC,GAAG,CAAC,eAAe,EAAE,IAAI,EAAE,CAAC,KAAU,EAAE,EAAE,CAAC,OAAO,KAAK,KAAK,QAAQ,EAAE,KAAK,EAAE,IAAI,CAAC,CAAC;QAClI,IAAI,CAAC,MAAM,CAAC,KAAK,GAAG,IAAI,CAAC,aAAa,CAAC,GAAG,CAAC,OAAO,EAAE,EAAE,EAAE,CAAC,KAAU,EAAE,EAAE,CAAC,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC,EAAE,KAAK,EAAE,IAAI,CAAC,CAAC;QAE3G,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,iBAAiB,EAAE,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC;QACtD,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,UAAU,EAAE,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC;IAChD,CAAC;IAEM,KAAK;QACV,IAAI,CAAC,WAAW,GAAG,IAAI,oBAAW,CAAC,IAAI,CAAC,MAAM,EAAE,IAAI,CAAC,qBAAqB,EAAE,IAAI,CAAC,MAAM,CAAC,CAAC;QAEzF,IAAI,CAAC,WAAW,CAAC,YAAY,EAAE,CAAC;QAChC,IAAI,CAAC,OAAO,EAAE,CAAC;IACjB,CAAC;IAEM,IAAI;QACT,IAAI,CAAC,WAAW,EAAE,KAAK,EAAE,CAAC;QAC1B,IAAI,CAAC,qBAAqB,CAAC,OAAO,CAAC,CAAC,UAAU,EAAE,EAAE,CAAC,UAAU,CAAC,KAAK,EAAE,CAAC,CAAC;QACvE,IAAI,CAAC,eAAe,CAAC,OAAO,CAAC,CAAC,OAAO,EAAE,EAAE,CAAC,OAAO,CAAC,UAAU,EAAE,CAAC,CAAC;IAClE,CAAC;IAEM,KAAK,CAAC,YAAY,CAAC,QAAgB,EAAE,IAAc;QACxD,QAAQ,QAAQ,EAAE,CAAC;YACjB,KAAK,SAAS;gBACZ,IAAI,IAAI,CAAC,GAAG,EAAE,CAAC;oBACb,IAAI,CAAC;wBACH,MAAM,QAAQ,GAAG,MAAM,IAAI,CAAC,aAAa,CAAC;4BACxC,KAAK,EAAE,IAAI,CAAC,KAAK;4BACjB,QAAQ,EAAE,IAAI,CAAC,QAAQ;4BACvB,IAAI,EAAE,IAAI,CAAC,GAAG;yBACf,CAAC,CAAC;wBAEH,IAAI,QAAQ,EAAE,YAAY,EAAE,CAAC;4BAC3B,IAAI,CAAC,UAAU,GAAG,SAAS,CAAC;4BAC5B,IAAI,GAAG,IAAI,CAAC,eAAe,CAAC,IAAI,EAAE,QAAQ,CAAC,YAAY,CAAC,CAAC;4BACzD,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC,CAAC;4BACvB,OAAO,EAAE,KAAK,EAAE,WAAW,EAAE,CAAC;wBAChC,CAAC;6BAAM,CAAC;4BACN,MAAM,IAAI,KAAK,CAAC,iBAAiB,CAAC,CAAC;wBACrC,CAAC;oBACH,CAAC;oBAAC,OAAO,CAAM,EAAE,CAAC;wBAChB,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC,CAAC,OAAO,EAAE,wBAAwB,CAAC,CAAC;wBACvD,OAAO,EAAE,KAAK,EAAE,wBAAwB,EAAE,CAAC;oBAC7C,CAAC;gBACH,CAAC;gBAED,mCAAmC;gBACnC,IAAI,CAAC;oBACH,MAAM,QAAQ,GAAG,CAAC,MAAM,IAAI,CAAC,YAAY,CAAC;wBACxC,KAAK,EAAE,IAAI,CAAC,KAAK;wBACjB,QAAQ,EAAE,IAAI,CAAC,QAAQ;qBACxB,CAAC,CAAsD,CAAC;oBAEzD,IAAI,cAAc,IAAI,QAAQ,EAAE,CAAC;wBAC/B,wDAAwD;wBACxD,IAAI,CAAC,UAAU,GAAG,SAAS,CAAC;wBAC5B,IAAI,GAAG,IAAI,CAAC,eAAe,CAAC,IAAI,EAAE,QAAQ,CAAC,YAAY,CAAC,CAAC;wBACzD,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC,CAAC;wBACvB,OAAO,EAAE,KAAK,EAAE,WAAW,EAAE,CAAC;oBAChC,CAAC;yBAAM,CAAC;wBACN,OAAO,EAAE,KAAK,EAAE,QAAQ,CAAC,UAAU,EAAE,CAAC;oBACxC,CAAC;gBACH,CAAC;gBAAC,OAAO,KAAK,EAAE,CAAC;oBACf,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,KAAK,CAAC,OAAO,EAAE,mBAAmB,CAAC,CAAC;gBACxD,CAAC;gBAED,MAAM;YACR;gBACE,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,kBAAkB,EAAE,QAAQ,CAAC,CAAC;QACnD,CAAC;QAED,OAAO,EAAE,CAAC;IACZ,CAAC;IAEM,gBAAgB,CAAC,OAAuB;QAC7C,gDAAgD;QAEhD,KAAK,MAAM,MAAM,IAAI,OAAO,EAAE,CAAC;YAC7B,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,MAAM,CAAC,EAAE,EAAE,MAAM,CAAC,CAAC;QACtC,CAAC;IACH,CAAC;IAEO,KAAK,CAAC,OAAO;QACnB,KAAK,MAAM,IAAI,IAAI,IAAI,CAAC,MAAM,CAAC,KAAK,EAAE,CAAC;YACrC,MAAM,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC,CAAC;QAC/B,CAAC;QAED,KAAK,MAAM,CAAC,QAAQ,EAAE,YAAY,CAAC,IAAI,IAAI,CAAC,OAAO,EAAE,CAAC;YACpD,MAAM,OAAO,GAAG,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,qBAAqB,CAAC,IAAI,EAAE,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,UAAU,CAAC,CAAC;YAEvF,IAAI,CAAC,OAAO,CAAC,QAAQ,CAAC,YAAY,CAAC,IAAI,CAAC,EAAE,CAAC;gBACzC,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,iBAAiB,EAAE,YAAY,CAAC,IAAI,CAAC,CAAC;gBACvD,IAAI,CAAC,OAAO,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC;gBAC9B,MAAM,IAAI,CAAC,GAAG,CAAC,aAAa,CAAC,gBAAgB,CAAC,YAAY,CAAC,EAAE,CAAC,CAAC;YACjE,CAAC;QACH,CAAC;IACH,CAAC;IAEO,KAAK,CAAC,WAAW,CAAC,IAAc;QACtC,IAAI,CAAC;YACH,IAAI,IAAI,CAAC,KAAK,EAAE,CAAC;gBACf,MAAM,GAAG,GAAG,IAAI,yBAAO,CAAC,EAAE,YAAY,EAAE,IAAI,CAAC,KAAK,EAAE,CAAC,CAAC;gBACtD,IAAI,CAAC,eAAe,CAAC,GAAG,CAAC,IAAI,CAAC,IAAI,EAAE,GAAG,CAAC,CAAC;gBAEzC,GAAG,CAAC,qBAAqB,CAAC,SAAS,CAAC,KAAK,EAAE,YAAY,EAAE,EAAE;oBACzD,IAAI,GAAG,IAAI,CAAC,eAAe,CAAC,IAAI,EAAE,YAAY,CAAC,eAAe,CAAC,CAAC;gBAClE,CAAC,CAAC,CAAC;gBAEH,MAAM,WAAW,GAAG,MAAM,GAAG,CAAC,UAAU,EAAE,CAAC;gBAE3C,KAAK,MAAM,MAAM,IAAI,WAAW,EAAE,CAAC;oBACjC,MAAM,QAAQ,GAAa;wBACzB,UAAU,EAAE,MAAM,CAAC,IAAI;wBACvB,QAAQ,EAAE,IAAI,MAAM,CAAC,IAAI,EAAE;wBAC3B,YAAY,EAAE,yBAAyB,IAAI,CAAC,MAAM,CAAC,MAAM,CAAC,MAAM,IAAI,MAAM,CAAC,IAAI,EAAE;wBACjF,cAAc,EAAE,oBAAoB,IAAI,CAAC,MAAM,CAAC,MAAM,CAAC,MAAM,IAAI,MAAM,CAAC,IAAI,EAAE;qBAC/E,CAAC;oBAEF,IAAI,IAAI,CAAC,MAAM,CAAC,MAAM,CAAC,QAAQ,IAAI,IAAI,CAAC,MAAM,CAAC,MAAM,CAAC,QAAQ,EAAE,CAAC;wBAC/D,QAAQ,CAAC,YAAY,IAAI,aAAa,IAAI,CAAC,MAAM,CAAC,MAAM,CAAC,QAAQ,aAAa,IAAI,CAAC,MAAM,CAAC,MAAM,CAAC,QAAQ,EAAE,CAAC;wBAC5G,QAAQ,CAAC,cAAc,IAAI,aAAa,IAAI,CAAC,MAAM,CAAC,MAAM,CAAC,QAAQ,aAAa,IAAI,CAAC,MAAM,CAAC,MAAM,CAAC,QAAQ,EAAE,CAAC;oBAChH,CAAC;oBAED,gBAAgB;oBAChB,IAAI,YAAY,GAAG,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,YAAY,CAAC,EAAE,EAAE,CAAC,YAAY,CAAC,IAAI,KAAK,MAAM,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC;oBAE/G,IAAI,CAAC,YAAY,EAAE,CAAC;wBAClB,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,eAAe,EAAE,MAAM,CAAC,IAAI,CAAC,CAAC;wBAE9C,YAAY,GAAG,MAAM,IAAI,CAAC,GAAG,CAAC,aAAa,CAAC,YAAY,CAAC;4BACvD,IAAI,EAAE,MAAM,CAAC,IAAI;4BACjB,KAAK,EAAE,aAAa;4BACpB,OAAO,EAAE;gCACP;oCACE,IAAI,EAAE,MAAM;oCACZ,KAAK,EAAE,CAAC,QAAQ,CAAC;oCACjB,IAAI,EAAE,CAAC,QAAQ,CAAC,YAAY,CAAC;iCAC9B;gCACD;oCACE,IAAI,EAAE,UAAU;oCAChB,KAAK,EAAE,CAAC,UAAU,CAAC;oCACnB,IAAI,EAAE,CAAC,QAAQ,CAAC,cAAc,CAAC;iCAChC;6BACF;yBACF,CAAC,CAAC;wBAEH,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,YAAY,CAAC,EAAE,EAAE,YAAY,CAAC,CAAC;oBAClD,CAAC;oBAED,MAAM,WAAW,GAAG,IAAI,mBAAc,CAAC,MAAM,EAAE,YAAY,EAAE,IAAI,CAAC,MAAM,EAAE,IAAI,CAAC,MAAM,CAAC,CAAC;oBAEvF,WAAW,CAAC,YAAY,EAAE,CAAC;oBAE3B,IAAI,CAAC,qBAAqB,CAAC,GAAG,CAAC,QAAQ,EAAE,WAAW,CAAC,CAAC;gBACxD,CAAC;YACH,CAAC;iBAAM,CAAC;gBACN,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,EAAE,uCAAuC,CAAC,CAAC;YACvE,CAAC;QACH,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACf,IAAI,KAAK,CAAC,OAAO,EAAE,QAAQ,CAAC,4BAA4B,CAAC,EAAE,CAAC;gBAC1D,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,EAAE,4CAA4C,CAAC,CAAC;YAC5E,CAAC;iBAAM,CAAC;gBACN,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,IAAI,CAAC,IAAI,EAAE,KAAK,CAAC,OAAO,IAAI,KAAK,CAAC,CAAC;YACvD,CAAC;QACH,CAAC;IACH,CAAC;IAEO,KAAK,CAAC,YAAY,CAAC,EAAE,KAAK,EAAE,QAAQ,EAAgB;QAC1D,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,0BAA0B,KAAK,GAAG,CAAC,CAAC;QAEpD,IAAI,CAAC,UAAU,GAAG,IAAI,4BAAc,CAAC;YACnC,KAAK;YACL,QAAQ;SACT,CAAC,CAAC;QAEH,IAAI,CAAC;YACH,MAAM,EAAE,aAAa,EAAE,GAAG,MAAM,IAAI,CAAC,UAAU,CAAC,cAAc,EAAE,CAAC;YAEjE,2GAA2G;YAC3G,OAAO,EAAE,YAAY,EAAE,aAAa,EAAE,CAAC;QACzC,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACf,IAAI,IAAI,CAAC,UAAU,CAAC,YAAY,EAAE,CAAC;gBACjC,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,IAAI,CAAC,UAAU,CAAC,YAAY,CAAC,CAAC;gBAC9C,OAAO,EAAE,UAAU,EAAE,IAAI,CAAC,UAAU,CAAC,YAAY,EAAE,CAAC;YACtD,CAAC;YAED,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC;QACnC,CAAC;IACH,CAAC;IAEO,KAAK,CAAC,aAAa,CAAC,EAAE,KAAK,EAAE,QAAQ,EAAE,IAAI,EAAgB;QACjE,6DAA6D;QAC7D,IAAI,CAAC,UAAU,GAAG,IAAI,CAAC,UAAU,IAAI,IAAI,4BAAc,CAAC,EAAE,KAAK,EAAE,QAAQ,EAAE,CAAC,CAAC;QAC7E,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,qBAAqB,KAAK,cAAc,IAAI,EAAE,CAAC,CAAC;QAEhE,IAAI,CAAC;YACH,MAAM,YAAY,GAAG,MAAM,IAAI,CAAC,UAAU,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC;YAEzD,OAAO,EAAE,YAAY,EAAE,YAAY,CAAC,aAAa,EAAE,CAAC;QACtD,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACf,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,yDAAyD,EAAE,KAAK,CAAC,OAAO,CAAC,CAAC;QAC9F,CAAC;IACH,CAAC;IAEO,eAAe,CAAC,IAAc,EAAE,YAAoB;QAC1D,MAAM,OAAO,GAAa;YACxB,GAAG,IAAI;YACP,KAAK,EAAE,YAAY;SACpB,CAAC;QAEF,IAAI,CAAC,aAAa,CAAC,gBAAgB,CACjC,OAAO,EACP,MAAM,EACN,IAAI,CAAC,IAAI,EACT;YACE,IAAI,EAAE,IAAI,CAAC,IAAI;YACf,KAAK,EAAE,YAAY;SACpB,EACD,IAAI,CACL,CAAC;QAEF,OAAO,OAAO,CAAC;IACjB,CAAC;CACF"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
package/dist/peer.d.ts CHANGED
@@ -1,22 +1,11 @@
1
- import { ConnectionState, MediaStreamTrack, RTCIceCandidate, RtcpPacket, RtpPacket } from 'werift';
2
- import { ReplaySubject, Subject, Observable } from 'rxjs';
3
- interface BasicPeerConnection {
4
- createOffer(): Promise<{
5
- sdp: string;
6
- }>;
7
- acceptAnswer(answer: {
8
- type: 'answer';
9
- sdp: string;
10
- }): Promise<void>;
11
- addIceCandidate(candidate: Partial<RTCIceCandidate>): Promise<void>;
12
- onIceCandidate: Observable<RTCIceCandidate>;
13
- onConnectionState: Observable<ConnectionState>;
14
- close(): void;
15
- requestKeyFrame?: () => void;
16
- }
1
+ import { MediaStreamTrack, RTCIceCandidate, RtcpPacket, RtpPacket } from 'werift';
2
+ import { ReplaySubject, Subject } from 'rxjs';
3
+ import { BasicPeerConnection, PluginLogger } from '@camera.ui/types';
17
4
  export declare class CustomPeerConnection implements BasicPeerConnection {
18
5
  private pc;
19
6
  private onRequestKeyFrame;
7
+ private cameraName;
8
+ private logger;
20
9
  onAudioRtp: Subject<RtpPacket>;
21
10
  onAudioRtcp: Subject<RtcpPacket>;
22
11
  onVideoRtp: Subject<RtpPacket>;
@@ -24,7 +13,7 @@ export declare class CustomPeerConnection implements BasicPeerConnection {
24
13
  onIceCandidate: Subject<RTCIceCandidate>;
25
14
  onConnectionState: ReplaySubject<"closed" | "failed" | "disconnected" | "new" | "connecting" | "connected">;
26
15
  returnAudioTrack: MediaStreamTrack;
27
- constructor();
16
+ constructor(cameraName: string, logger: PluginLogger);
28
17
  createOffer(): Promise<import("werift").RTCSessionDescription>;
29
18
  acceptAnswer(answer: {
30
19
  type: 'answer';
@@ -34,4 +23,3 @@ export declare class CustomPeerConnection implements BasicPeerConnection {
34
23
  requestKeyFrame(): void;
35
24
  close(): void;
36
25
  }
37
- export {};
package/dist/peer.js CHANGED
@@ -16,6 +16,8 @@ const ringIceServers = [
16
16
  class CustomPeerConnection {
17
17
  pc;
18
18
  onRequestKeyFrame = new rxjs_1.Subject();
19
+ cameraName;
20
+ logger;
19
21
  onAudioRtp = new rxjs_1.Subject();
20
22
  onAudioRtcp = new rxjs_1.Subject();
21
23
  onVideoRtp = new rxjs_1.Subject();
@@ -23,7 +25,9 @@ class CustomPeerConnection {
23
25
  onIceCandidate = new rxjs_1.Subject();
24
26
  onConnectionState = new rxjs_1.ReplaySubject(1);
25
27
  returnAudioTrack = new werift_1.MediaStreamTrack({ kind: 'audio' });
26
- constructor() {
28
+ constructor(cameraName, logger) {
29
+ this.logger = logger;
30
+ this.cameraName = cameraName;
27
31
  const pc = (this.pc = new werift_1.RTCPeerConnection({
28
32
  codecs: {
29
33
  audio: [
@@ -108,7 +112,7 @@ class CustomPeerConnection {
108
112
  this.onRequestKeyFrame.next();
109
113
  }
110
114
  close() {
111
- this.pc.close().catch((e) => console.log(e));
115
+ this.pc.close().catch((error) => this.logger.error(this.cameraName, error));
112
116
  }
113
117
  }
114
118
  exports.CustomPeerConnection = CustomPeerConnection;
package/dist/peer.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"peer.js","sourceRoot":"","sources":["../src/peer.ts"],"names":[],"mappings":";;;AAAA,mCAA6I;AAC7I,+BAA0D;AAc1D,MAAM,cAAc,GAAG;IACrB,oDAAoD;IACpD,oDAAoD;IACpD,oDAAoD;IACpD,8BAA8B;IAC9B,+BAA+B;IAC/B,+BAA+B;IAC/B,+BAA+B;IAC/B,+BAA+B;CAChC,CAAC;AAEF,MAAa,oBAAoB;IACvB,EAAE,CAAC;IACH,iBAAiB,GAAG,IAAI,cAAO,EAAQ,CAAC;IAEhD,UAAU,GAAG,IAAI,cAAO,EAAa,CAAC;IACtC,WAAW,GAAG,IAAI,cAAO,EAAc,CAAC;IACxC,UAAU,GAAG,IAAI,cAAO,EAAa,CAAC;IACtC,WAAW,GAAG,IAAI,cAAO,EAAc,CAAC;IACxC,cAAc,GAAG,IAAI,cAAO,EAAmB,CAAC;IAChD,iBAAiB,GAAG,IAAI,oBAAa,CAAkB,CAAC,CAAC,CAAC;IAC1D,gBAAgB,GAAG,IAAI,yBAAgB,CAAC,EAAE,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC;IAE3D;QACE,MAAM,EAAE,GAAG,CAAC,IAAI,CAAC,EAAE,GAAG,IAAI,0BAAiB,CAAC;YAC1C,MAAM,EAAE;gBACN,KAAK,EAAE;oBACL,IAAI,8BAAqB,CAAC;wBACxB,QAAQ,EAAE,YAAY;wBACtB,SAAS,EAAE,KAAK;wBAChB,QAAQ,EAAE,CAAC;qBACZ,CAAC;oBACF,IAAI,8BAAqB,CAAC;wBACxB,QAAQ,EAAE,YAAY;wBACtB,SAAS,EAAE,IAAI;wBACf,QAAQ,EAAE,CAAC;wBACX,WAAW,EAAE,CAAC;qBACf,CAAC;iBACH;gBACD,KAAK,EAAE;oBACL,IAAI,8BAAqB,CAAC;wBACxB,QAAQ,EAAE,YAAY;wBACtB,SAAS,EAAE,KAAK;wBAChB,YAAY,EAAE,CAAC,EAAE,IAAI,EAAE,cAAc,EAAE,EAAE,EAAE,IAAI,EAAE,KAAK,EAAE,SAAS,EAAE,KAAK,EAAE,EAAE,EAAE,IAAI,EAAE,MAAM,EAAE,EAAE,EAAE,IAAI,EAAE,MAAM,EAAE,SAAS,EAAE,KAAK,EAAE,EAAE,EAAE,IAAI,EAAE,WAAW,EAAE,CAAC;wBACxJ,UAAU,EAAE,wEAAwE;qBACrF,CAAC;oBACF,IAAI,8BAAqB,CAAC;wBACxB,QAAQ,EAAE,WAAW;wBACrB,SAAS,EAAE,KAAK;qBACjB,CAAC;iBACH;aACF;YACD,UAAU,EAAE,cAAc,CAAC,GAAG,CAAC,CAAC,MAAM,EAAE,EAAE,CAAC,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,CAAC,CAAC;YAC9D,kBAAkB,EAAE,KAAK;YACzB,YAAY,EAAE,SAAS;SACxB,CAAC,CAAC,CAAC;QAEJ,MAAM,gBAAgB,GAAG,EAAE,CAAC,cAAc,CAAC,IAAI,CAAC,gBAAgB,EAAE;YAChE,SAAS,EAAE,UAAU;SACtB,CAAC,CAAC;QAEH,MAAM,gBAAgB,GAAG,EAAE,CAAC,cAAc,CAAC,OAAO,EAAE;YAClD,SAAS,EAAE,UAAU;SACtB,CAAC,CAAC;QAEH,gBAAgB,CAAC,OAAO,CAAC,SAAS,CAAC,CAAC,KAAK,EAAE,EAAE;YAC3C,KAAK,CAAC,YAAY,CAAC,SAAS,CAAC,CAAC,GAAG,EAAE,EAAE;gBACnC,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;YAC5B,CAAC,CAAC,CAAC;YAEH,KAAK,CAAC,aAAa,CAAC,SAAS,CAAC,CAAC,IAAI,EAAE,EAAE;gBACrC,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;YAC9B,CAAC,CAAC,CAAC;QACL,CAAC,CAAC,CAAC;QAEH,gBAAgB,CAAC,OAAO,CAAC,SAAS,CAAC,CAAC,KAAK,EAAE,EAAE;YAC3C,KAAK,CAAC,YAAY,CAAC,SAAS,CAAC,CAAC,GAAG,EAAE,EAAE;gBACnC,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;YAC5B,CAAC,CAAC,CAAC;YAEH,KAAK,CAAC,aAAa,CAAC,SAAS,CAAC,CAAC,IAAI,EAAE,EAAE;gBACrC,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;YAC9B,CAAC,CAAC,CAAC;YAEH,KAAK,CAAC,YAAY,CAAC,IAAI,CAAC,GAAG,EAAE;gBAC3B,WAAW,CAAC,GAAG,EAAE,CAAC,gBAAgB,CAAC,QAAQ,CAAC,WAAW,CAAC,KAAK,CAAC,IAAK,CAAC,EAAE,IAAI,CAAC,CAAC;YAC9E,CAAC,CAAC,CAAC;QACL,CAAC,CAAC,CAAC;QAEH,IAAI,CAAC,EAAE,CAAC,cAAc,CAAC,SAAS,CAAC,CAAC,YAAY,EAAE,EAAE;YAChD,IAAI,CAAC,cAAc,CAAC,IAAI,CAAC,YAAY,CAAC,CAAC;QACzC,CAAC,CAAC,CAAC;QAEH,EAAE,CAAC,wBAAwB,CAAC,SAAS,CAAC,GAAG,EAAE;YACzC,IAAI,EAAE,CAAC,kBAAkB,KAAK,QAAQ,EAAE,CAAC;gBACvC,IAAI,CAAC,iBAAiB,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;YACxC,CAAC;QACH,CAAC,CAAC,CAAC;QAEH,EAAE,CAAC,qBAAqB,CAAC,SAAS,CAAC,GAAG,EAAE;YACtC,IAAI,CAAC,iBAAiB,CAAC,IAAI,CAAC,EAAE,CAAC,eAAe,CAAC,CAAC;QAClD,CAAC,CAAC,CAAC;IACL,CAAC;IAED,KAAK,CAAC,WAAW;QACf,MAAM,KAAK,GAAG,MAAM,IAAI,CAAC,EAAE,CAAC,WAAW,EAAE,CAAC;QAC1C,MAAM,IAAI,CAAC,EAAE,CAAC,mBAAmB,CAAC,KAAK,CAAC,CAAC;QACzC,OAAO,KAAK,CAAC;IACf,CAAC;IAED,KAAK,CAAC,YAAY,CAAC,MAAuC;QACxD,MAAM,IAAI,CAAC,EAAE,CAAC,oBAAoB,CAAC,MAAM,CAAC,CAAC;IAC7C,CAAC;IAED,eAAe,CAAC,SAA0B;QACxC,OAAO,IAAI,CAAC,EAAE,CAAC,eAAe,CAAC,SAAS,CAAC,CAAC;IAC5C,CAAC;IAED,eAAe;QACb,IAAI,CAAC,iBAAiB,CAAC,IAAI,EAAE,CAAC;IAChC,CAAC;IAED,KAAK;QACH,IAAI,CAAC,EAAE,CAAC,KAAK,EAAE,CAAC,KAAK,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC;IAC/C,CAAC;CACF;AAlHD,oDAkHC"}
1
+ {"version":3,"file":"peer.js","sourceRoot":"","sources":["../src/peer.ts"],"names":[],"mappings":"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"}
package/dist/server.d.ts CHANGED
@@ -1,14 +1,14 @@
1
- import type { PluginConfig, PluginLogger } from '@camera.ui/types';
1
+ import type { PluginConfig, PluginLogger, CameraDevice } from '@camera.ui/types';
2
2
  import type { WebsocketProxy } from './ws';
3
- import type { RingInfo } from './types';
4
3
  export declare class ProxyServer {
5
- private server?;
4
+ private server;
6
5
  private sendingSnapshot;
7
6
  private ringCameraConnections;
8
7
  private config;
9
8
  private logger;
10
- constructor(config: PluginConfig, ringCameraConnections: Map<RingInfo, WebsocketProxy>, logger: PluginLogger);
11
- createServer(): void;
9
+ private cameras;
10
+ constructor(config: PluginConfig, cameras: Map<string, CameraDevice>, ringCameraConnections: Map<string, WebsocketProxy>, logger: PluginLogger);
12
11
  close(): void;
12
+ private listenServer;
13
13
  private queryToData;
14
14
  }
package/dist/server.js CHANGED
@@ -12,41 +12,40 @@ class ProxyServer {
12
12
  ringCameraConnections;
13
13
  config;
14
14
  logger;
15
- constructor(config, ringCameraConnections, logger) {
15
+ cameras;
16
+ constructor(config, cameras, ringCameraConnections, logger) {
16
17
  this.config = config;
17
18
  this.logger = logger;
19
+ this.cameras = cameras;
18
20
  this.ringCameraConnections = ringCameraConnections;
19
- }
20
- createServer() {
21
- if (!this.config.server?.username || !this.config.server?.password) {
22
- this.logger.warn('Stream endpoints are not protected, please set username and password in config.json');
23
- }
24
21
  this.server = http_1.default.createServer().listen(this.config.server.listen, 'localhost');
22
+ if (!this.config.server.username || !this.config.server.password) {
23
+ this.logger.warn('Stream endpoints are not protected');
24
+ }
25
+ this.listenServer();
26
+ }
27
+ close() {
28
+ this.ringCameraConnections.forEach((connection) => connection.close());
29
+ this.server.close();
30
+ }
31
+ listenServer() {
25
32
  this.server.on('upgrade', async (request, socket, head) => {
26
33
  if (request.url) {
27
34
  const parsedUrl = url_1.default.parse(request.url);
28
- const pathname = parsedUrl.pathname;
29
- if (parsedUrl.query) {
30
- const data = this.queryToData(parsedUrl.query);
31
- if (this.config.server.username &&
32
- this.config.server.password &&
33
- (this.config.server.username !== data.username || this.config.server.password !== data.password)) {
34
- socket.destroy();
35
- return;
35
+ let pathname = parsedUrl.pathname;
36
+ if (parsedUrl.query && this.config.server.username && this.config.server.password) {
37
+ const query = this.queryToData(parsedUrl.query);
38
+ if (this.config.server.username !== query.username || this.config.server.password !== query.password) {
39
+ this.logger.warn('Invalid username or password');
40
+ pathname = null;
36
41
  }
37
42
  }
38
43
  if (pathname) {
39
44
  const decodedPathname = decodeURIComponent(pathname);
40
- const cameraName = decodedPathname.split('/')[1];
41
- let cameraConnection;
42
- for (const [info, connection] of this.ringCameraConnections.entries()) {
43
- if (info.cameraName === cameraName) {
44
- cameraConnection = connection;
45
- }
46
- }
47
- if (cameraConnection && cameraConnection.ws) {
48
- cameraConnection.ws.handleUpgrade(request, socket, head, (ws) => cameraConnection?.ws?.emit('connection', ws));
49
- return;
45
+ const ringCameraId = decodedPathname.split('/')[1];
46
+ const ws = Array.from(this.ringCameraConnections.values()).find((connection) => connection.proxyInfo.ringCameraId === ringCameraId)?.ws;
47
+ if (ws) {
48
+ return ws.handleUpgrade(request, socket, head, (socket) => ws.emit('connection', socket));
50
49
  }
51
50
  }
52
51
  }
@@ -58,26 +57,20 @@ class ProxyServer {
58
57
  const pathname = parsedUrl.pathname;
59
58
  if (pathname) {
60
59
  const decodedPathname = decodeURIComponent(pathname);
61
- const cameraName = decodedPathname.split('/')[1];
62
- let cameraConnection;
63
- for (const [info, connection] of this.ringCameraConnections.entries()) {
64
- if (info.cameraName === cameraName) {
65
- cameraConnection = connection;
66
- }
67
- }
68
- if (cameraConnection) {
69
- if (!this.sendingSnapshot) {
70
- this.sendingSnapshot = true;
71
- this.logger.debug(`${cameraName}: Sending snapshot...`);
72
- const buffer = await cameraConnection.snapshot();
73
- this.logger.debug(`${cameraName} DONE`);
74
- setTimeout(() => {
75
- this.sendingSnapshot = false;
76
- }, 100);
77
- response.writeHead(200, { 'Content-Type': 'image/jpeg' });
78
- response.end(buffer);
79
- return;
80
- }
60
+ const ringCameraId = decodedPathname.split('/')[1];
61
+ const cameraConnection = Array.from(this.ringCameraConnections.values()).find((connection) => connection.proxyInfo.ringCameraId === ringCameraId);
62
+ const camera = Array.from(this.cameras.values()).find((camera) => camera.nativeId === ringCameraId);
63
+ if (cameraConnection && !this.sendingSnapshot) {
64
+ this.logger.debug(camera?.name, 'Sending snapshot...');
65
+ this.sendingSnapshot = true;
66
+ const buffer = await cameraConnection.snapshot();
67
+ setTimeout(() => {
68
+ this.sendingSnapshot = false;
69
+ }, 100);
70
+ this.logger.debug(camera?.name, 'Snapshot sent');
71
+ response.writeHead(200, { 'Content-Type': 'image/jpeg' });
72
+ response.end(buffer);
73
+ return;
81
74
  }
82
75
  }
83
76
  }
@@ -85,9 +78,6 @@ class ProxyServer {
85
78
  response.end('404 Not Found');
86
79
  });
87
80
  }
88
- close() {
89
- this.server?.close();
90
- }
91
81
  queryToData(query) {
92
82
  const params = new URLSearchParams(query);
93
83
  const result = {};
@@ -1 +1 @@
1
- {"version":3,"file":"server.js","sourceRoot":"","sources":["../src/server.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"server.js","sourceRoot":"","sources":["../src/server.ts"],"names":[],"mappings":"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"}
package/dist/types.d.ts CHANGED
@@ -1,5 +1,5 @@
1
- export interface RingInfo {
2
- cameraName: string;
1
+ export interface ProxyInfo {
2
+ ringCameraId: string;
3
3
  streamSource: string;
4
4
  snapshotSource: string;
5
5
  pathName: string;
@@ -28,7 +28,4 @@ export interface TokenRequest {
28
28
  password: string;
29
29
  code: string;
30
30
  }
31
- export interface Go2RtcMsg {
32
- type: 'webrtc/offer' | 'webrtc/candidate';
33
- value: string;
34
- }
31
+ export type FormAction = 'onLogin';
package/dist/ws.d.ts CHANGED
@@ -3,21 +3,19 @@
3
3
  import { WebSocketServer } from 'ws';
4
4
  import type { RingCamera } from 'ring-client-api';
5
5
  import type { CameraDevice, PluginLogger } from '@camera.ui/types';
6
- import type { Config } from './types';
6
+ import type { ProxyInfo } from './types';
7
7
  export declare class WebsocketProxy {
8
- ws?: WebSocketServer;
9
- private camera;
8
+ ws: WebSocketServer;
9
+ proxyInfo: ProxyInfo;
10
+ private ringCamera;
10
11
  private cameraDevice;
11
- private call?;
12
- private receiver?;
13
- private pc?;
14
- private config;
15
12
  private logger;
16
- constructor(camera: RingCamera, cameraDevice: CameraDevice, config: Config, logger: PluginLogger);
17
- createServer(): void;
13
+ private pc?;
14
+ private call?;
15
+ constructor(ringCamera: RingCamera, cameraDevice: CameraDevice, proxyInfo: ProxyInfo, logger: PluginLogger);
18
16
  close(): void;
19
17
  snapshot(): Promise<Buffer | undefined>;
20
- private checkState;
18
+ private listenServer;
19
+ private checkStates;
21
20
  private createPeerCoonection;
22
- private cleanUp;
23
21
  }
package/dist/ws.js CHANGED
@@ -6,50 +6,63 @@ const peer_1 = require("./peer");
6
6
  const werift_1 = require("werift");
7
7
  class WebsocketProxy {
8
8
  ws;
9
- camera;
9
+ proxyInfo;
10
+ ringCamera;
10
11
  cameraDevice;
11
- call;
12
- receiver;
13
- pc;
14
- config;
15
12
  logger;
16
- constructor(camera, cameraDevice, config, logger) {
17
- this.config = config;
13
+ pc;
14
+ call;
15
+ constructor(ringCamera, cameraDevice, proxyInfo, logger) {
16
+ this.ws = new ws_1.WebSocketServer({ noServer: true });
17
+ this.proxyInfo = proxyInfo;
18
18
  this.logger = logger;
19
- this.camera = camera;
19
+ this.ringCamera = ringCamera;
20
20
  this.cameraDevice = cameraDevice;
21
- this.checkState();
21
+ this.listenServer();
22
+ this.checkStates();
22
23
  }
23
- createServer() {
24
- this.ws = new ws_1.WebSocketServer({ noServer: true });
25
- let info = '';
26
- if (this.config.server.username && this.config.server.password) {
27
- info = '?username=<redacted>&password=<redacted>';
24
+ close() {
25
+ this.call?.stop();
26
+ this.pc?.close();
27
+ this.ws?.removeAllListeners();
28
+ this.ws?.close();
29
+ }
30
+ async snapshot() {
31
+ try {
32
+ return await this.ringCamera.getSnapshot();
28
33
  }
29
- this.logger.log(`${this.camera.name} is listening on ws://localhost:${this.config.server.listen}/${this.camera.name}${info} (webrtc)`);
30
- this.logger.log(`${this.camera.name} is listening on http://localhost:${this.config.server.listen}/${this.camera.name}${info} (snapshot)`);
31
- this.ws.on('connection', (socket) => {
32
- this.cleanUp();
33
- this.receiver = new peer_1.CustomPeerConnection();
34
+ catch (error) {
35
+ this.logger.error(this.cameraDevice.name, error.message);
36
+ }
37
+ }
38
+ listenServer() {
39
+ this.logger.log(`${this.cameraDevice.name} is listening on ${this.proxyInfo.streamSource} (webrtc)`);
40
+ this.logger.log(`${this.cameraDevice.name} is listening on ${this.proxyInfo.snapshotSource} (snapshot)`);
41
+ this.ws.on('connection', async (socket) => {
42
+ this.pc = this.createPeerCoonection();
43
+ const receiver = new peer_1.CustomPeerConnection(this.cameraDevice.name, this.logger);
34
44
  const audioTrack = new werift_1.MediaStreamTrack({ kind: 'audio' });
35
- this.receiver.onAudioRtp.subscribe((rtp) => {
45
+ const videoTrack = new werift_1.MediaStreamTrack({ kind: 'video' });
46
+ receiver.onAudioRtp.subscribe((rtp) => {
36
47
  audioTrack.writeRtp(rtp);
37
48
  });
38
- const videoTrack = new werift_1.MediaStreamTrack({ kind: 'video' });
39
- this.receiver.onVideoRtp.subscribe((rtp) => {
49
+ receiver.onVideoRtp.subscribe((rtp) => {
40
50
  videoTrack.writeRtp(rtp);
41
51
  });
42
- this.pc = this.createPeerCoonection();
43
- this.pc.iceConnectionStateChange.subscribe(async (ev) => {
44
- this.logger.debug(`${this.camera.name}: iceConnectionStateChange: ${ev}`);
52
+ this.pc.iceConnectionStateChange.subscribe((ev) => {
53
+ this.logger.debug(`${this.cameraDevice.name}: iceConnectionStateChange: ${ev}`);
45
54
  if (ev === 'disconnected' || ev === 'failed' || ev === 'closed') {
46
- this.cleanUp();
55
+ this.call?.stop();
56
+ this.pc?.close();
47
57
  }
48
58
  });
59
+ this.pc.connectionStateChange.subscribe((ev) => {
60
+ this.logger.debug(`${this.cameraDevice.name}: connectionStateChange: ${ev}`);
61
+ });
49
62
  this.pc.onTrack.subscribe((track) => {
50
63
  if (track.kind === 'audio') {
51
64
  track.onReceiveRtp.subscribe((rtp) => {
52
- this.receiver.returnAudioTrack.writeRtp(rtp);
65
+ receiver.returnAudioTrack.writeRtp(rtp);
53
66
  });
54
67
  }
55
68
  });
@@ -57,56 +70,42 @@ class WebsocketProxy {
57
70
  this.pc.addTransceiver(audioTrack, { direction: 'sendonly' });
58
71
  socket.on('message', async (data) => {
59
72
  try {
60
- const go2rtcMsg = JSON.parse(data);
61
- switch (go2rtcMsg.type) {
73
+ const message = JSON.parse(data.toString());
74
+ switch (message.type) {
62
75
  case 'webrtc/offer':
63
- // console.log('OFFER', go2rtcMsg.value);
64
- this.call = await this.camera.startLiveCall({
65
- createPeerConnection: () => this.receiver,
76
+ this.call = await this.ringCamera.startLiveCall({
77
+ createPeerConnection: () => receiver,
66
78
  });
79
+ this.logger.debug(`${this.cameraDevice.name}: Stream started`);
67
80
  this.call.onCallEnded.subscribe(() => {
68
- this.logger.debug(`${this.camera.name}: Live Call ended`);
81
+ this.logger.debug(`${this.cameraDevice.name}: Stream ended`);
69
82
  });
70
83
  if (!this.call.cameraSpeakerActivated) {
71
84
  this.call.activateCameraSpeaker();
72
85
  }
73
- this.logger.debug(`${this.camera.name}: Live Call started`);
74
- await this.pc.setRemoteDescription(new werift_1.RTCSessionDescription(go2rtcMsg.value, 'offer'));
75
- const answer = await this.pc.createAnswer();
76
- await this.pc.setLocalDescription(answer);
77
- // console.log('ANSWER', answer.sdp);
78
- const answerMsg = { type: 'webrtc/answer', value: answer.sdp };
79
- socket.send(JSON.stringify(answerMsg));
86
+ await this.pc?.setRemoteDescription(new werift_1.RTCSessionDescription(message.value, 'offer'));
87
+ const answer = await this.pc?.createAnswer();
88
+ if (answer) {
89
+ await this.pc?.setLocalDescription(answer);
90
+ const response = { type: 'webrtc/answer', value: answer.sdp };
91
+ socket.send(JSON.stringify(response));
92
+ }
80
93
  break;
81
94
  case 'webrtc/candidate':
82
- await this.pc?.addIceCandidate({
83
- candidate: go2rtcMsg.value,
84
- });
95
+ const candidate = new werift_1.RTCIceCandidate({ candidate: message.value });
96
+ await this.pc?.addIceCandidate(candidate);
85
97
  break;
98
+ default:
99
+ throw new Error(`Unknown message! ${message}`);
86
100
  }
87
101
  }
88
102
  catch (error) {
89
- this.logger.error(this.camera.name, error.message);
90
- this.logger.log(error.stack);
103
+ this.logger.error(this.cameraDevice.name, error);
91
104
  }
92
105
  });
93
106
  });
94
107
  }
95
- close() {
96
- this.cleanUp();
97
- this.ws?.removeAllListeners();
98
- this.ws?.close();
99
- this.ws = undefined;
100
- }
101
- async snapshot() {
102
- try {
103
- return await this.camera.getSnapshot();
104
- }
105
- catch (error) {
106
- this.logger.error(this.camera.name, error.message);
107
- }
108
- }
109
- checkState() {
108
+ checkStates() {
110
109
  let motionTimeout;
111
110
  const resetTimeout = () => {
112
111
  clearTimeout(motionTimeout);
@@ -121,14 +120,14 @@ class WebsocketProxy {
121
120
  this.cameraDevice.updateState('doorbell', { state: false });
122
121
  }, 10000);
123
122
  };
124
- this.camera.onDoorbellPressed.subscribe(async (e) => {
125
- this.logger.log(this.camera.name, 'onDoorbellPressed', e);
123
+ this.ringCamera.onDoorbellPressed.subscribe(async (ding) => {
124
+ this.logger.log(this.cameraDevice.name, 'onDoorbellPressed', ding);
126
125
  this.cameraDevice.updateState('doorbell', { state: true });
127
126
  resetDoorbellTimeout();
128
127
  });
129
- this.camera.onMotionDetected.subscribe(async (motionDetected) => {
128
+ this.ringCamera.onMotionDetected.subscribe(async (motionDetected) => {
130
129
  if (motionDetected) {
131
- this.logger.log(this.camera.name, 'onMotionDetected');
130
+ this.logger.log(this.cameraDevice.name, 'onMotionDetected');
132
131
  resetTimeout();
133
132
  }
134
133
  else {
@@ -136,11 +135,13 @@ class WebsocketProxy {
136
135
  }
137
136
  this.cameraDevice.updateState('motion', { state: motionDetected });
138
137
  });
139
- this.camera.onData.subscribe(async (data) => {
140
- if (this.camera.hasLight && data.led_status) {
138
+ this.ringCamera.onData.subscribe(async (data) => {
139
+ if (this.ringCamera.hasLight && data.led_status) {
140
+ this.logger.log(this.cameraDevice.name, 'light', data.led_status === 'on');
141
141
  this.cameraDevice.updateState('light', { state: data.led_status === 'on' });
142
142
  }
143
- if (this.camera.hasSiren && data.siren_status) {
143
+ if (this.ringCamera.hasSiren && data.siren_status) {
144
+ this.logger.log(this.cameraDevice.name, 'siren', data.siren_status.seconds_remaining > 0 ? true : false);
144
145
  this.cameraDevice.updateState('siren', { state: data.siren_status.seconds_remaining > 0 ? true : false });
145
146
  }
146
147
  });
@@ -195,18 +196,6 @@ class WebsocketProxy {
195
196
  },
196
197
  });
197
198
  }
198
- cleanUp() {
199
- this.receiver?.close();
200
- this.receiver = undefined;
201
- this.call?.stop();
202
- this.call?.onCallEnded.unsubscribe();
203
- this.call = undefined;
204
- this.pc?.iceConnectionStateChange.allUnsubscribe();
205
- this.pc?.onTrack.allUnsubscribe();
206
- this.pc?.removeAllListeners();
207
- this.pc?.close();
208
- this.pc = undefined;
209
- }
210
199
  }
211
200
  exports.WebsocketProxy = WebsocketProxy;
212
201
  //# sourceMappingURL=ws.js.map
package/dist/ws.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"ws.js","sourceRoot":"","sources":["../src/ws.ts"],"names":[],"mappings":";;;AAAA,2BAAgD;AAChD,iCAA8C;AAC9C,mCAAuI;AAMvI,MAAa,cAAc;IACzB,EAAE,CAAmB;IAEb,MAAM,CAAa;IACnB,YAAY,CAAe;IAC3B,IAAI,CAAoD;IACxD,QAAQ,CAAwB;IAChC,EAAE,CAAqB;IAEvB,MAAM,CAAS;IACf,MAAM,CAAe;IAE7B,YAAY,MAAkB,EAAE,YAA0B,EAAE,MAAc,EAAE,MAAoB;QAC9F,IAAI,CAAC,MAAM,GAAG,MAAM,CAAC;QACrB,IAAI,CAAC,MAAM,GAAG,MAAM,CAAC;QACrB,IAAI,CAAC,MAAM,GAAG,MAAM,CAAC;QACrB,IAAI,CAAC,YAAY,GAAG,YAAY,CAAC;QAEjC,IAAI,CAAC,UAAU,EAAE,CAAC;IACpB,CAAC;IAEM,YAAY;QACjB,IAAI,CAAC,EAAE,GAAG,IAAI,oBAAe,CAAC,EAAE,QAAQ,EAAE,IAAI,EAAE,CAAC,CAAC;QAClD,IAAI,IAAI,GAAG,EAAE,CAAC;QAEd,IAAI,IAAI,CAAC,MAAM,CAAC,MAAM,CAAC,QAAQ,IAAI,IAAI,CAAC,MAAM,CAAC,MAAM,CAAC,QAAQ,EAAE,CAAC;YAC/D,IAAI,GAAG,0CAA0C,CAAC;QACpD,CAAC;QAED,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,GAAG,IAAI,CAAC,MAAM,CAAC,IAAI,mCAAmC,IAAI,CAAC,MAAM,CAAC,MAAM,CAAC,MAAM,IAAI,IAAI,CAAC,MAAM,CAAC,IAAI,GAAG,IAAI,WAAW,CAAC,CAAC;QACvI,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,GAAG,IAAI,CAAC,MAAM,CAAC,IAAI,qCAAqC,IAAI,CAAC,MAAM,CAAC,MAAM,CAAC,MAAM,IAAI,IAAI,CAAC,MAAM,CAAC,IAAI,GAAG,IAAI,aAAa,CAAC,CAAC;QAE3I,IAAI,CAAC,EAAE,CAAC,EAAE,CAAC,YAAY,EAAE,CAAC,MAAiB,EAAE,EAAE;YAC7C,IAAI,CAAC,OAAO,EAAE,CAAC;YAEf,IAAI,CAAC,QAAQ,GAAG,IAAI,2BAAoB,EAAE,CAAC;YAE3C,MAAM,UAAU,GAAG,IAAI,yBAAgB,CAAC,EAAE,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC;YAC3D,IAAI,CAAC,QAAQ,CAAC,UAAU,CAAC,SAAS,CAAC,CAAC,GAAc,EAAE,EAAE;gBACpD,UAAU,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAC;YAC3B,CAAC,CAAC,CAAC;YAEH,MAAM,UAAU,GAAG,IAAI,yBAAgB,CAAC,EAAE,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC;YAC3D,IAAI,CAAC,QAAQ,CAAC,UAAU,CAAC,SAAS,CAAC,CAAC,GAAc,EAAE,EAAE;gBACpD,UAAU,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAC;YAC3B,CAAC,CAAC,CAAC;YAEH,IAAI,CAAC,EAAE,GAAG,IAAI,CAAC,oBAAoB,EAAE,CAAC;YAEtC,IAAI,CAAC,EAAE,CAAC,wBAAwB,CAAC,SAAS,CAAC,KAAK,EAAE,EAAE,EAAE,EAAE;gBACtD,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,GAAG,IAAI,CAAC,MAAM,CAAC,IAAI,+BAA+B,EAAE,EAAE,CAAC,CAAC;gBAE1E,IAAI,EAAE,KAAK,cAAc,IAAI,EAAE,KAAK,QAAQ,IAAI,EAAE,KAAK,QAAQ,EAAE,CAAC;oBAChE,IAAI,CAAC,OAAO,EAAE,CAAC;gBACjB,CAAC;YACH,CAAC,CAAC,CAAC;YAEH,IAAI,CAAC,EAAE,CAAC,OAAO,CAAC,SAAS,CAAC,CAAC,KAAK,EAAE,EAAE;gBAClC,IAAI,KAAK,CAAC,IAAI,KAAK,OAAO,EAAE,CAAC;oBAC3B,KAAK,CAAC,YAAY,CAAC,SAAS,CAAC,CAAC,GAAc,EAAE,EAAE;wBAC9C,IAAI,CAAC,QAAS,CAAC,gBAAgB,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAC;oBAChD,CAAC,CAAC,CAAC;gBACL,CAAC;YACH,CAAC,CAAC,CAAC;YAEH,IAAI,CAAC,EAAE,CAAC,cAAc,CAAC,UAAU,EAAE,EAAE,SAAS,EAAE,UAAU,EAAE,CAAC,CAAC;YAC9D,IAAI,CAAC,EAAE,CAAC,cAAc,CAAC,UAAU,EAAE,EAAE,SAAS,EAAE,UAAU,EAAE,CAAC,CAAC;YAE9D,MAAM,CAAC,EAAE,CAAC,SAAS,EAAE,KAAK,EAAE,IAAS,EAAE,EAAE;gBACvC,IAAI,CAAC;oBACH,MAAM,SAAS,GAAc,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;oBAE9C,QAAQ,SAAS,CAAC,IAAI,EAAE,CAAC;wBACvB,KAAK,cAAc;4BACjB,yCAAyC;4BAEzC,IAAI,CAAC,IAAI,GAAG,MAAM,IAAI,CAAC,MAAM,CAAC,aAAa,CAAC;gCAC1C,oBAAoB,EAAE,GAAG,EAAE,CAAC,IAAI,CAAC,QAAS;6BAC3C,CAAC,CAAC;4BAEH,IAAI,CAAC,IAAI,CAAC,WAAW,CAAC,SAAS,CAAC,GAAG,EAAE;gCACnC,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,GAAG,IAAI,CAAC,MAAM,CAAC,IAAI,mBAAmB,CAAC,CAAC;4BAC5D,CAAC,CAAC,CAAC;4BAEH,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,sBAAsB,EAAE,CAAC;gCACtC,IAAI,CAAC,IAAI,CAAC,qBAAqB,EAAE,CAAC;4BACpC,CAAC;4BAED,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,GAAG,IAAI,CAAC,MAAM,CAAC,IAAI,qBAAqB,CAAC,CAAC;4BAE5D,MAAM,IAAI,CAAC,EAAG,CAAC,oBAAoB,CAAC,IAAI,8BAAqB,CAAC,SAAS,CAAC,KAAK,EAAE,OAAO,CAAC,CAAC,CAAC;4BACzF,MAAM,MAAM,GAAG,MAAM,IAAI,CAAC,EAAG,CAAC,YAAY,EAAE,CAAC;4BAC7C,MAAM,IAAI,CAAC,EAAG,CAAC,mBAAmB,CAAC,MAAM,CAAC,CAAC;4BAE3C,qCAAqC;4BAErC,MAAM,SAAS,GAAG,EAAE,IAAI,EAAE,eAAe,EAAE,KAAK,EAAE,MAAM,CAAC,GAAG,EAAE,CAAC;4BAC/D,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,SAAS,CAAC,SAAS,CAAC,CAAC,CAAC;4BAEvC,MAAM;wBACR,KAAK,kBAAkB;4BACrB,MAAM,IAAI,CAAC,EAAE,EAAE,eAAe,CAAC;gCAC7B,SAAS,EAAE,SAAS,CAAC,KAAK;6BACR,CAAC,CAAC;4BACtB,MAAM;oBACV,CAAC;gBACH,CAAC;gBAAC,OAAO,KAAK,EAAE,CAAC;oBACf,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,IAAI,CAAC,MAAM,CAAC,IAAI,EAAE,KAAK,CAAC,OAAO,CAAC,CAAC;oBACnD,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC;gBAC/B,CAAC;YACH,CAAC,CAAC,CAAC;QACL,CAAC,CAAC,CAAC;IACL,CAAC;IAEM,KAAK;QACV,IAAI,CAAC,OAAO,EAAE,CAAC;QAEf,IAAI,CAAC,EAAE,EAAE,kBAAkB,EAAE,CAAC;QAC9B,IAAI,CAAC,EAAE,EAAE,KAAK,EAAE,CAAC;QACjB,IAAI,CAAC,EAAE,GAAG,SAAS,CAAC;IACtB,CAAC;IAEM,KAAK,CAAC,QAAQ;QACnB,IAAI,CAAC;YACH,OAAO,MAAM,IAAI,CAAC,MAAM,CAAC,WAAW,EAAE,CAAC;QACzC,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACf,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,IAAI,CAAC,MAAM,CAAC,IAAI,EAAE,KAAK,CAAC,OAAO,CAAC,CAAC;QACrD,CAAC;IACH,CAAC;IAEO,UAAU;QAChB,IAAI,aAA6B,CAAC;QAClC,MAAM,YAAY,GAAG,GAAG,EAAE;YACxB,YAAY,CAAC,aAAa,CAAC,CAAC;YAC5B,aAAa,GAAG,UAAU,CAAC,GAAG,EAAE;gBAC9B,IAAI,CAAC,YAAY,CAAC,WAAW,CAAC,QAAQ,EAAE,EAAE,KAAK,EAAE,KAAK,EAAE,CAAC,CAAC;YAC5D,CAAC,EAAE,KAAK,CAAC,CAAC;QACZ,CAAC,CAAC;QAEF,IAAI,eAA+B,CAAC;QACpC,MAAM,oBAAoB,GAAG,GAAG,EAAE;YAChC,YAAY,CAAC,eAAe,CAAC,CAAC;YAC9B,eAAe,GAAG,UAAU,CAAC,GAAG,EAAE;gBAChC,IAAI,CAAC,YAAY,CAAC,WAAW,CAAC,UAAU,EAAE,EAAE,KAAK,EAAE,KAAK,EAAE,CAAC,CAAC;YAC9D,CAAC,EAAE,KAAK,CAAC,CAAC;QACZ,CAAC,CAAC;QAEF,IAAI,CAAC,MAAM,CAAC,iBAAiB,CAAC,SAAS,CAAC,KAAK,EAAE,CAAC,EAAE,EAAE;YAClD,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,IAAI,CAAC,MAAM,CAAC,IAAI,EAAE,mBAAmB,EAAE,CAAC,CAAC,CAAC;YAC1D,IAAI,CAAC,YAAY,CAAC,WAAW,CAAC,UAAU,EAAE,EAAE,KAAK,EAAE,IAAI,EAAE,CAAC,CAAC;YAC3D,oBAAoB,EAAE,CAAC;QACzB,CAAC,CAAC,CAAC;QAEH,IAAI,CAAC,MAAM,CAAC,gBAAgB,CAAC,SAAS,CAAC,KAAK,EAAE,cAAc,EAAE,EAAE;YAC9D,IAAI,cAAc,EAAE,CAAC;gBACnB,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,IAAI,CAAC,MAAM,CAAC,IAAI,EAAE,kBAAkB,CAAC,CAAC;gBACtD,YAAY,EAAE,CAAC;YACjB,CAAC;iBAAM,CAAC;gBACN,YAAY,CAAC,aAAa,CAAC,CAAC;YAC9B,CAAC;YAED,IAAI,CAAC,YAAY,CAAC,WAAW,CAAC,QAAQ,EAAE,EAAE,KAAK,EAAE,cAAc,EAAE,CAAC,CAAC;QACrE,CAAC,CAAC,CAAC;QAEH,IAAI,CAAC,MAAM,CAAC,MAAM,CAAC,SAAS,CAAC,KAAK,EAAE,IAAI,EAAE,EAAE;YAC1C,IAAI,IAAI,CAAC,MAAM,CAAC,QAAQ,IAAI,IAAI,CAAC,UAAU,EAAE,CAAC;gBAC5C,IAAI,CAAC,YAAY,CAAC,WAAW,CAAC,OAAO,EAAE,EAAE,KAAK,EAAE,IAAI,CAAC,UAAU,KAAK,IAAI,EAAE,CAAC,CAAC;YAC9E,CAAC;YAED,IAAI,IAAI,CAAC,MAAM,CAAC,QAAQ,IAAI,IAAI,CAAC,YAAY,EAAE,CAAC;gBAC9C,IAAI,CAAC,YAAY,CAAC,WAAW,CAAC,OAAO,EAAE,EAAE,KAAK,EAAE,IAAI,CAAC,YAAY,CAAC,iBAAiB,GAAG,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,KAAK,EAAE,CAAC,CAAC;YAC5G,CAAC;QACH,CAAC,CAAC,CAAC;IACL,CAAC;IAEO,oBAAoB;QAC1B,OAAO,IAAI,0BAAiB,CAAC;YAC3B,MAAM,EAAE;gBACN,KAAK,EAAE;oBACL,IAAI,8BAAqB,CAAC;wBACxB,QAAQ,EAAE,YAAY;wBACtB,SAAS,EAAE,KAAK;wBAChB,WAAW,EAAE,EAAE;wBACf,YAAY,EAAE,CAAC,EAAE,IAAI,EAAE,cAAc,EAAE,EAAE,EAAE,IAAI,EAAE,KAAK,EAAE,SAAS,EAAE,KAAK,EAAE,EAAE,EAAE,IAAI,EAAE,MAAM,EAAE,EAAE,EAAE,IAAI,EAAE,MAAM,EAAE,SAAS,EAAE,KAAK,EAAE,EAAE,EAAE,IAAI,EAAE,WAAW,EAAE,CAAC;wBACxJ,UAAU,EAAE,wEAAwE;qBACrF,CAAC;oBACF,IAAI,8BAAqB,CAAC;wBACxB,QAAQ,EAAE,YAAY;wBACtB,SAAS,EAAE,KAAK;wBAChB,WAAW,EAAE,EAAE;wBACf,YAAY,EAAE,CAAC,EAAE,IAAI,EAAE,cAAc,EAAE,EAAE,EAAE,IAAI,EAAE,KAAK,EAAE,SAAS,EAAE,KAAK,EAAE,EAAE,EAAE,IAAI,EAAE,MAAM,EAAE,EAAE,EAAE,IAAI,EAAE,MAAM,EAAE,SAAS,EAAE,KAAK,EAAE,EAAE,EAAE,IAAI,EAAE,WAAW,EAAE,CAAC;wBACxJ,UAAU,EAAE,wEAAwE;qBACrF,CAAC;oBACF,IAAI,8BAAqB,CAAC;wBACxB,QAAQ,EAAE,YAAY;wBACtB,SAAS,EAAE,KAAK;wBAChB,WAAW,EAAE,EAAE;wBACf,YAAY,EAAE,CAAC,EAAE,IAAI,EAAE,cAAc,EAAE,EAAE,EAAE,IAAI,EAAE,KAAK,EAAE,SAAS,EAAE,KAAK,EAAE,EAAE,EAAE,IAAI,EAAE,MAAM,EAAE,EAAE,EAAE,IAAI,EAAE,MAAM,EAAE,SAAS,EAAE,KAAK,EAAE,EAAE,EAAE,IAAI,EAAE,WAAW,EAAE,CAAC;wBACxJ,UAAU,EAAE,wEAAwE;qBACrF,CAAC;iBACH;gBACD,KAAK,EAAE;oBACL,IAAI,8BAAqB,CAAC;wBACxB,QAAQ,EAAE,YAAY;wBACtB,SAAS,EAAE,KAAK;wBAChB,WAAW,EAAE,GAAG;wBAChB,QAAQ,EAAE,CAAC;wBACX,UAAU,EAAE,4BAA4B;qBACzC,CAAC;oBACF,IAAI,8BAAqB,CAAC;wBACxB,QAAQ,EAAE,YAAY;wBACtB,SAAS,EAAE,IAAI;wBACf,QAAQ,EAAE,CAAC;wBACX,WAAW,EAAE,CAAC;qBACf,CAAC;oBACF,IAAI,8BAAqB,CAAC;wBACxB,QAAQ,EAAE,YAAY;wBACtB,SAAS,EAAE,IAAI;wBACf,QAAQ,EAAE,CAAC;wBACX,WAAW,EAAE,CAAC;qBACf,CAAC;iBACH;aACF;SACF,CAAC,CAAC;IACL,CAAC;IAEO,OAAO;QACb,IAAI,CAAC,QAAQ,EAAE,KAAK,EAAE,CAAC;QACvB,IAAI,CAAC,QAAQ,GAAG,SAAS,CAAC;QAE1B,IAAI,CAAC,IAAI,EAAE,IAAI,EAAE,CAAC;QAClB,IAAI,CAAC,IAAI,EAAE,WAAW,CAAC,WAAW,EAAE,CAAC;QACrC,IAAI,CAAC,IAAI,GAAG,SAAS,CAAC;QAEtB,IAAI,CAAC,EAAE,EAAE,wBAAwB,CAAC,cAAc,EAAE,CAAC;QACnD,IAAI,CAAC,EAAE,EAAE,OAAO,CAAC,cAAc,EAAE,CAAC;QAClC,IAAI,CAAC,EAAE,EAAE,kBAAkB,EAAE,CAAC;QAC9B,IAAI,CAAC,EAAE,EAAE,KAAK,EAAE,CAAC;QACjB,IAAI,CAAC,EAAE,GAAG,SAAS,CAAC;IACtB,CAAC;CACF;AAhPD,wCAgPC"}
1
+ {"version":3,"file":"ws.js","sourceRoot":"","sources":["../src/ws.ts"],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "displayName": "Ring",
3
3
  "name": "@camera.ui/camera-ui-ring",
4
- "version": "0.0.11",
4
+ "version": "0.0.20",
5
5
  "description": "camera.ui ring plugin",
6
6
  "author": "seydx (https://github.com/seydx/camera.ui)",
7
7
  "main": "./dist/index.js",
@@ -14,22 +14,22 @@
14
14
  "prepublishOnly": "npm run lint && npm run format && npm run build"
15
15
  },
16
16
  "dependencies": {
17
- "@camera.ui/types": "^0.0.17",
17
+ "@camera.ui/types": "^0.0.20",
18
18
  "ring-client-api": "^12.1.0",
19
19
  "werift": "^0.19.0",
20
20
  "ws": "^8.16.0"
21
21
  },
22
22
  "devDependencies": {
23
23
  "@rushstack/eslint-patch": "^1.6.1",
24
- "@types/node": "^20.10.6",
24
+ "@types/node": "^20.11.0",
25
25
  "@types/ws": "^8.5.10",
26
- "@typescript-eslint/eslint-plugin": "^6.18.0",
27
- "@typescript-eslint/parser": "^6.18.0",
26
+ "@typescript-eslint/eslint-plugin": "^6.18.1",
27
+ "@typescript-eslint/parser": "^6.18.1",
28
28
  "concurrently": "^8.2.2",
29
29
  "eslint": "^8.56.0",
30
30
  "eslint-config-prettier": "^9.1.0",
31
- "eslint-plugin-prettier": "^5.1.2",
32
- "prettier": "^3.1.1",
31
+ "eslint-plugin-prettier": "^5.1.3",
32
+ "prettier": "^3.2.2",
33
33
  "rimraf": "^5.0.5",
34
34
  "typescript": "^5.3.3",
35
35
  "updates": "^15.1.1"