@camera.ui/camera-ui-ring 0.0.21 → 0.0.23

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/index.js CHANGED
@@ -1,47 +1,30 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- const ring_client_api_1 = require("ring-client-api");
4
- const rest_client_1 = require("ring-client-api/rest-client");
5
- const types_1 = require("@camera.ui/types");
6
- const contract_1 = require("./contract");
7
- const ws_1 = require("./ws");
8
- const server_1 = require("./server");
9
- exports.default = (api) => api.registerPlugin(RingPlugin, contract_1.pluginContract);
10
- class RingPlugin extends types_1.BasePlugin {
1
+ import { RingApi } from 'ring-client-api';
2
+ import { RingRestClient } from 'ring-client-api/rest-client';
3
+ import { Camera } from './camera.js';
4
+ export default class RingPlugin {
11
5
  config;
12
- proxyServer;
13
- restClient;
6
+ logger;
7
+ api;
8
+ cameras = new Map();
9
+ restClient = new Map();
14
10
  ringConnections = new Map();
15
- ringCameraConnections = new Map();
16
- constructor(pluginId, log, configService, storage, api) {
17
- super(pluginId, log, configService, storage, api);
18
- this.config = this.configService.all();
19
- this.config.server = this.configService.get('server', {}, (value) => Object.prototype.toString.call(value) === '[object Object]');
20
- this.config.server.listen = this.configService.get('server.listen', 9999, (value) => typeof value === 'number', false, true);
21
- this.config.homes = this.configService.get('homes', [], (value) => Array.isArray(value), false, true);
11
+ ringCamerasMap = new Map();
12
+ constructor(logger, api) {
13
+ this.logger = logger;
14
+ this.api = api;
15
+ this.config = api.configService.all();
16
+ this.config.homes = api.configService.get('homes', [], (value) => Array.isArray(value), false, true);
17
+ this.api.deviceManager.on('cameraDeselected', (cameraId) => {
18
+ const cameraDevice = this.cameras.get(cameraId);
19
+ const nativeId = cameraDevice?.nativeId;
20
+ const ringCamera = nativeId ? this.ringCamerasMap.get(nativeId) : undefined;
21
+ ringCamera?.disconnect();
22
+ this.ringCamerasMap.delete(nativeId);
23
+ this.cameras.delete(cameraId);
24
+ });
22
25
  this.api.on('finishLaunching', this.start.bind(this));
23
26
  this.api.on('shutdown', this.stop.bind(this));
24
27
  }
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
- }
39
- }
40
- stop() {
41
- this.proxyServer?.close();
42
- this.ringCameraConnections.forEach((connection) => connection.close());
43
- this.ringConnections.forEach((ringApi) => ringApi.disconnect());
44
- }
45
28
  configureCameras(cameras) {
46
29
  for (const camera of cameras) {
47
30
  this.cameras.set(camera.id, camera);
@@ -50,19 +33,22 @@ class RingPlugin extends types_1.BasePlugin {
50
33
  async onFormSubmit(actionId, home) {
51
34
  switch (actionId) {
52
35
  case 'onLogin':
53
- if (home.pin) {
36
+ case 'on2FA':
37
+ if (home.twoFactorCode) {
54
38
  try {
55
- const response = await this.generateToken({
56
- email: home.email,
57
- password: home.password,
58
- code: home.pin,
59
- });
39
+ const response = await this.generateToken(home.name, home.email, home.password, home.twoFactorCode);
60
40
  if (response?.refreshToken) {
61
- this.restClient = undefined;
41
+ this.restClient.delete(home.name);
62
42
  home.token = response.refreshToken;
63
- this.setRefreshToken(home);
43
+ this.refreshConfig(home);
64
44
  this.connectHome(home);
65
- return { toast: 'Logged in' };
45
+ const formResponse = {
46
+ toast: {
47
+ message: 'Logged in',
48
+ type: 'success',
49
+ },
50
+ };
51
+ return formResponse;
66
52
  }
67
53
  else {
68
54
  throw new Error('Failed to Login');
@@ -75,80 +61,117 @@ class RingPlugin extends types_1.BasePlugin {
75
61
  }
76
62
  // token was not valid, login again
77
63
  try {
78
- const response = (await this.generateCode({
79
- email: home.email,
80
- password: home.password,
81
- }));
64
+ const response = await this.generateCode(home.name, home.email, home.password);
65
+ if (!response) {
66
+ throw new Error('Failed to get code');
67
+ }
82
68
  if ('refreshToken' in response) {
83
- // didn't need 2fa, return token without asking for code
84
- this.restClient = undefined;
69
+ this.restClient.delete(home.name);
85
70
  home.token = response.refreshToken;
86
- this.setRefreshToken(home);
71
+ this.refreshConfig(home);
87
72
  this.connectHome(home);
88
- return { toast: 'Logged in' };
73
+ const formResponse = {
74
+ toast: {
75
+ message: 'Logged in!',
76
+ type: 'success',
77
+ },
78
+ };
79
+ return formResponse;
89
80
  }
90
81
  else {
91
- return { toast: response.codePrompt };
82
+ const formResponse = {
83
+ schema: {
84
+ config: {
85
+ type: 'object',
86
+ title: 'Two-Factor Authentication (2FA)',
87
+ description: 'Enter the 2FA code',
88
+ required: true,
89
+ opened: true,
90
+ properties: {
91
+ twoFactorCode: {
92
+ type: 'string',
93
+ key: 'twoFactorCode',
94
+ title: 'Two-Factor Code',
95
+ description: 'Enter the two-factor code',
96
+ required: true,
97
+ },
98
+ },
99
+ buttons: [
100
+ {
101
+ label: 'Authenticate',
102
+ onSubmit: 'on2FA',
103
+ },
104
+ ],
105
+ },
106
+ },
107
+ toast: {
108
+ message: 'Two-Factor Authentication (2FA) Required!',
109
+ type: 'warning',
110
+ },
111
+ };
112
+ return formResponse;
92
113
  }
93
114
  }
94
115
  catch (error) {
95
116
  const message = `Failed to Link Account. Reason: ${error.message}`;
96
117
  this.logger.error(home.name, message);
97
- return { toast: message };
118
+ const formResponse = {
119
+ toast: {
120
+ message,
121
+ type: 'error',
122
+ },
123
+ };
124
+ return formResponse;
98
125
  }
99
- break;
100
126
  default:
101
127
  const message = `Unknown actionId: ${actionId}`;
102
- this.logger.warn(message);
103
- return { toast: message };
128
+ this.logger.warn(home.name, message);
129
+ const formResponse = {
130
+ toast: {
131
+ message,
132
+ type: 'error',
133
+ },
134
+ };
135
+ return formResponse;
136
+ }
137
+ }
138
+ async start() {
139
+ for (const home of this.config.homes) {
140
+ await this.connectHome(home);
141
+ }
142
+ // Remove orphaned cameras
143
+ for (const [cameraId, cameraDevice] of this.cameras) {
144
+ const ringCameraId = cameraDevice.nativeId;
145
+ if (!this.ringCamerasMap.get(ringCameraId)) {
146
+ this.logger.warn('Removing camera', cameraDevice.name);
147
+ this.cameras.delete(cameraId);
148
+ await this.api.deviceManager.removeCameraById(cameraDevice.id);
149
+ }
104
150
  }
105
151
  }
152
+ stop() {
153
+ this.ringCamerasMap.forEach((ringCamera) => ringCamera.disconnect());
154
+ this.ringConnections.forEach((ringApi) => ringApi.disconnect());
155
+ this.restClient.clear();
156
+ this.ringConnections.clear();
157
+ this.ringCamerasMap.clear();
158
+ }
106
159
  async connectHome(home) {
107
160
  try {
108
161
  if (home.token) {
109
- const api = new ring_client_api_1.RingApi({ refreshToken: home.token });
162
+ const api = new RingApi({ refreshToken: home.token });
110
163
  this.ringConnections.set(home.name, api);
111
164
  api.onRefreshTokenUpdated.subscribe(async (refreshToken) => {
112
165
  home.token = refreshToken.newRefreshToken;
113
- this.setRefreshToken(home);
166
+ this.refreshConfig(home);
114
167
  });
115
168
  const ringCameras = await api.getCameras();
116
- for (const camera of ringCameras) {
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}`,
123
- };
124
- if (this.config.server.username && 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}`;
127
- }
128
- let cameraDevice = Array.from(this.cameras.values()).find((camera) => camera.nativeId === ringCameraId);
129
- if (!cameraDevice) {
130
- this.logger.log('Adding camera', camera.name);
131
- cameraDevice = await this.api.deviceManager.createCamera({
132
- name: camera.name,
133
- nativeId: ringCameraId,
134
- model: 'Ring Camera',
135
- sources: [
136
- {
137
- name: 'main',
138
- roles: ['stream'],
139
- urls: [proxyInfo.streamSource],
140
- },
141
- {
142
- name: 'snapshot',
143
- roles: ['snapshot'],
144
- urls: [proxyInfo.snapshotSource],
145
- },
146
- ],
147
- });
148
- this.cameras.set(cameraDevice.id, cameraDevice);
149
- }
150
- const webRtcProxy = new ws_1.WebsocketProxy(camera, cameraDevice, proxyInfo, this.logger);
151
- this.ringCameraConnections.set(ringCameraId, webRtcProxy);
169
+ for (const ringCamera of ringCameras) {
170
+ const ringCameraId = ringCamera.id.toString();
171
+ this.ringCamerasMap.set(ringCameraId, ringCamera);
172
+ const camera = new Camera(this, home, ringCamera, this.logger);
173
+ await camera.createCameraDevice();
174
+ this.cameras.set(camera.cameraDevice.id, camera.cameraDevice);
152
175
  }
153
176
  }
154
177
  else {
@@ -156,44 +179,48 @@ class RingPlugin extends types_1.BasePlugin {
156
179
  }
157
180
  }
158
181
  catch (error) {
159
- this.logger.error(home.name, error.message ?? error);
160
- console.log(error);
182
+ this.logger.error(home.name, error);
161
183
  }
162
184
  }
163
- async generateCode({ email, password }) {
164
- this.logger.log(`Logging in with email '${email}'`);
165
- this.restClient = new rest_client_1.RingRestClient({
185
+ async generateCode(homeName, email, password) {
186
+ this.logger.log(homeName, `Logging in with email '${email}'`);
187
+ const ringClient = new RingRestClient({
166
188
  email,
167
189
  password,
168
190
  });
191
+ this.restClient.set(homeName, ringClient);
169
192
  try {
170
- const { refresh_token } = await this.restClient.getCurrentAuth();
171
- // If we get here, 2fa was not required.
172
- // I'm not sure this is possible anymore, but it's here just in case
193
+ const { refresh_token } = await ringClient.getCurrentAuth();
173
194
  return { refreshToken: refresh_token };
174
195
  }
175
196
  catch (error) {
176
- if (this.restClient.promptFor2fa) {
177
- this.logger.log(this.restClient.promptFor2fa);
178
- return { codePrompt: this.restClient.promptFor2fa };
197
+ if (ringClient.promptFor2fa) {
198
+ this.logger.log(homeName, ringClient.promptFor2fa);
199
+ return { codePrompt: ringClient.promptFor2fa };
179
200
  }
180
- this.logger.error(error.message);
201
+ this.logger.error(homeName, error);
181
202
  }
182
203
  }
183
- async generateToken({ email, password, code }) {
184
- // use the existing restClient to avoid sending a token again
185
- this.restClient = this.restClient || new rest_client_1.RingRestClient({ email, password });
186
- this.logger.log(`Getting token for ${email} with code ${code}`);
204
+ async generateToken(homeName, email, password, code) {
205
+ let restClient = this.restClient.get(homeName);
206
+ if (!restClient) {
207
+ restClient = new RingRestClient({ email, password });
208
+ this.restClient.set(homeName, restClient);
209
+ }
210
+ this.logger.log(homeName, `Getting token for ${email} with code ${code}`);
187
211
  try {
188
- const authResponse = await this.restClient.getAuth(code);
212
+ const authResponse = await restClient.getAuth(code);
189
213
  return { refreshToken: authResponse.refresh_token };
190
214
  }
191
215
  catch (error) {
192
- this.logger.error('Incorrect 2fa Code. Please check the code and try again', error.message);
216
+ this.logger.error(homeName, 'Incorrect 2fa Code. Please check the code and try again', error);
193
217
  }
194
218
  }
195
- setRefreshToken(home) {
196
- this.configService.replaceOrAddItem('homes', 'name', home.name, home, true);
219
+ refreshConfig(home) {
220
+ if ('twoFactorCode' in home) {
221
+ delete home.twoFactorCode;
222
+ }
223
+ this.api.configService.replaceOrAddItem('homes', 'name', home.name, home, true);
197
224
  }
198
225
  }
199
226
  //# 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":"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"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
package/dist/peer.d.ts CHANGED
@@ -1,11 +1,9 @@
1
- import { MediaStreamTrack, RTCIceCandidate, RtcpPacket, RtpPacket } from 'werift';
2
1
  import { ReplaySubject, Subject } from 'rxjs';
3
- import { BasicPeerConnection, PluginLogger } from '@camera.ui/types';
2
+ import { MediaStreamTrack } from 'werift';
3
+ import type { BasicPeerConnection } from '@camera.ui/types';
4
+ import type { RTCIceCandidate, RTCSessionDescription, RtcpPacket, RtpPacket } from 'werift';
4
5
  export declare class CustomPeerConnection implements BasicPeerConnection {
5
6
  private pc;
6
- private onRequestKeyFrame;
7
- private cameraName;
8
- private logger;
9
7
  onAudioRtp: Subject<RtpPacket>;
10
8
  onAudioRtcp: Subject<RtcpPacket>;
11
9
  onVideoRtp: Subject<RtpPacket>;
@@ -13,13 +11,12 @@ export declare class CustomPeerConnection implements BasicPeerConnection {
13
11
  onIceCandidate: Subject<RTCIceCandidate>;
14
12
  onConnectionState: ReplaySubject<"closed" | "failed" | "disconnected" | "new" | "connecting" | "connected">;
15
13
  returnAudioTrack: MediaStreamTrack;
16
- constructor(cameraName: string, logger: PluginLogger);
17
- createOffer(): Promise<import("werift").RTCSessionDescription>;
14
+ constructor();
15
+ createOffer(): Promise<RTCSessionDescription>;
18
16
  acceptAnswer(answer: {
19
17
  type: 'answer';
20
18
  sdp: string;
21
19
  }): Promise<void>;
22
20
  addIceCandidate(candidate: RTCIceCandidate): Promise<void>;
23
- requestKeyFrame(): void;
24
21
  close(): void;
25
22
  }
package/dist/peer.js CHANGED
@@ -1,8 +1,5 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.CustomPeerConnection = void 0;
4
- const werift_1 = require("werift");
5
- const rxjs_1 = require("rxjs");
1
+ import { ReplaySubject, Subject } from 'rxjs';
2
+ import { MediaStreamTrack, RTCPeerConnection, RTCRtpCodecParameters } from 'werift';
6
3
  const ringIceServers = [
7
4
  'stun:stun.kinesisvideo.us-east-1.amazonaws.com:443',
8
5
  'stun:stun.kinesisvideo.us-east-2.amazonaws.com:443',
@@ -13,30 +10,25 @@ const ringIceServers = [
13
10
  'stun:stun3.l.google.com:19302',
14
11
  'stun:stun4.l.google.com:19302',
15
12
  ];
16
- class CustomPeerConnection {
13
+ export class CustomPeerConnection {
17
14
  pc;
18
- onRequestKeyFrame = new rxjs_1.Subject();
19
- cameraName;
20
- logger;
21
- onAudioRtp = new rxjs_1.Subject();
22
- onAudioRtcp = new rxjs_1.Subject();
23
- onVideoRtp = new rxjs_1.Subject();
24
- onVideoRtcp = new rxjs_1.Subject();
25
- onIceCandidate = new rxjs_1.Subject();
26
- onConnectionState = new rxjs_1.ReplaySubject(1);
27
- returnAudioTrack = new werift_1.MediaStreamTrack({ kind: 'audio' });
28
- constructor(cameraName, logger) {
29
- this.logger = logger;
30
- this.cameraName = cameraName;
31
- const pc = (this.pc = new werift_1.RTCPeerConnection({
15
+ onAudioRtp = new Subject();
16
+ onAudioRtcp = new Subject();
17
+ onVideoRtp = new Subject();
18
+ onVideoRtcp = new Subject();
19
+ onIceCandidate = new Subject();
20
+ onConnectionState = new ReplaySubject(1);
21
+ returnAudioTrack = new MediaStreamTrack({ kind: 'audio' });
22
+ constructor() {
23
+ const pc = (this.pc = new RTCPeerConnection({
32
24
  codecs: {
33
25
  audio: [
34
- new werift_1.RTCRtpCodecParameters({
26
+ new RTCRtpCodecParameters({
35
27
  mimeType: 'audio/opus',
36
28
  clockRate: 48000,
37
29
  channels: 2,
38
30
  }),
39
- new werift_1.RTCRtpCodecParameters({
31
+ new RTCRtpCodecParameters({
40
32
  mimeType: 'audio/PCMU',
41
33
  clockRate: 8000,
42
34
  channels: 1,
@@ -44,16 +36,12 @@ class CustomPeerConnection {
44
36
  }),
45
37
  ],
46
38
  video: [
47
- new werift_1.RTCRtpCodecParameters({
39
+ new RTCRtpCodecParameters({
48
40
  mimeType: 'video/H264',
49
41
  clockRate: 90000,
50
42
  rtcpFeedback: [{ type: 'transport-cc' }, { type: 'ccm', parameter: 'fir' }, { type: 'nack' }, { type: 'nack', parameter: 'pli' }, { type: 'goog-remb' }],
51
43
  parameters: 'packetization-mode=1;profile-level-id=640029;level-asymmetry-allowed=1',
52
44
  }),
53
- new werift_1.RTCRtpCodecParameters({
54
- mimeType: 'video/rtx',
55
- clockRate: 90000,
56
- }),
57
45
  ],
58
46
  },
59
47
  iceServers: ringIceServers.map((server) => ({ urls: server })),
@@ -105,15 +93,11 @@ class CustomPeerConnection {
105
93
  async acceptAnswer(answer) {
106
94
  await this.pc.setRemoteDescription(answer);
107
95
  }
108
- addIceCandidate(candidate) {
109
- return this.pc.addIceCandidate(candidate);
110
- }
111
- requestKeyFrame() {
112
- this.onRequestKeyFrame.next();
96
+ async addIceCandidate(candidate) {
97
+ await this.pc.addIceCandidate(candidate);
113
98
  }
114
99
  close() {
115
- this.pc.close().catch((error) => this.logger.error(this.cameraName, error));
100
+ this.pc.close().catch(() => { });
116
101
  }
117
102
  }
118
- exports.CustomPeerConnection = CustomPeerConnection;
119
103
  //# sourceMappingURL=peer.js.map
package/dist/peer.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"peer.js","sourceRoot":"","sources":["../src/peer.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"peer.js","sourceRoot":"","sources":["../src/peer.ts"],"names":[],"mappings":"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"}
package/dist/types.d.ts CHANGED
@@ -1,31 +1,10 @@
1
- export interface ProxyInfo {
2
- ringCameraId: string;
3
- streamSource: string;
4
- snapshotSource: string;
5
- pathName: string;
6
- }
7
1
  export interface RingHome {
8
2
  name: string;
9
3
  email: string;
10
4
  password: string;
11
- pin?: string;
12
5
  token?: string;
13
6
  }
14
7
  export interface Config {
15
- server: {
16
- listen: number;
17
- username?: string;
18
- password?: string;
19
- };
20
8
  homes: RingHome[];
21
9
  }
22
- export interface LoginRequest {
23
- email: string;
24
- password: string;
25
- }
26
- export interface TokenRequest {
27
- email: string;
28
- password: string;
29
- code: string;
30
- }
31
- export type FormAction = 'onLogin';
10
+ export type FormAction = 'onLogin' | 'on2FA';
package/dist/types.js CHANGED
@@ -1,3 +1,2 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
1
+ export {};
3
2
  //# sourceMappingURL=types.js.map