ring-client-api 13.0.0-beta.2 → 13.0.0-beta.3

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.js CHANGED
@@ -213,7 +213,8 @@ class RingApi extends subscribed_1.Subscribed {
213
213
  }
214
214
  const eventCategory = notification.android_config.category;
215
215
  if (eventCategory !== ring_types_1.PushNotificationAction.Ding &&
216
- eventCategory !== ring_types_1.PushNotificationAction.Motion) {
216
+ eventCategory !== ring_types_1.PushNotificationAction.Motion &&
217
+ eventCategory !== ring_types_1.PushNotificationAction.IntercomDing) {
217
218
  (0, util_1.logInfo)('Received push notification with unknown category: ' +
218
219
  eventCategory);
219
220
  (0, util_1.logInfo)(JSON.stringify(message));
@@ -38,7 +38,10 @@ function getBatteryLevel(data) {
38
38
  parseBatteryLife(data.battery_life_2),
39
39
  ].filter((level) => level !== null), { health } = data;
40
40
  if (!levels.length ||
41
- (health && !health.battery_percentage && !health.battery_present)) {
41
+ (health &&
42
+ !health.battery_percentage &&
43
+ !health.battery_present &&
44
+ !health.second_battery_percentage)) {
42
45
  return null;
43
46
  }
44
47
  return Math.min(...levels);
@@ -1,4 +1,4 @@
1
- import { IntercomHandsetAudioData, PushNotificationDingV2 } from './ring-types';
1
+ import { IntercomHandsetAudioData, PushNotificationDingV2, PushNotificationIntercomUnlockV2 } from './ring-types';
2
2
  import { RingRestClient } from './rest-client';
3
3
  import { BehaviorSubject, Subject } from 'rxjs';
4
4
  export declare class RingIntercom {
@@ -22,5 +22,5 @@ export declare class RingIntercom {
22
22
  private doorbotUrl;
23
23
  subscribeToDingEvents(): Promise<void & import("./rest-client").ExtendedResponse>;
24
24
  unsubscribeFromDingEvents(): Promise<void & import("./rest-client").ExtendedResponse>;
25
- processPushNotification(notification: PushNotificationDingV2): void;
25
+ processPushNotification(notification: PushNotificationDingV2 | PushNotificationIntercomUnlockV2): void;
26
26
  }
@@ -76,11 +76,13 @@ class RingIntercom {
76
76
  });
77
77
  }
78
78
  processPushNotification(notification) {
79
- if (notification.android_config.category === ring_types_1.PushNotificationAction.Ding) {
79
+ if ('android_config' in notification &&
80
+ notification.android_config.category ===
81
+ ring_types_1.PushNotificationAction.IntercomDing) {
80
82
  this.onDing.next();
81
83
  }
82
- else if (notification.android_config.category ===
83
- ring_types_1.PushNotificationAction.IntercomUnlock) {
84
+ else if ('gcmData' in notification.data &&
85
+ notification.data.gcmData.action === ring_types_1.PushNotificationAction.IntercomUnlock) {
84
86
  this.onUnlocked.next();
85
87
  }
86
88
  }
@@ -469,6 +469,7 @@ export interface BaseCameraData {
469
469
  rssi_category: 'good' | string;
470
470
  battery_voltage_category: 'very_good' | string;
471
471
  second_battery_voltage_category: 'unknown' | string;
472
+ second_battery_percentage?: number;
472
473
  second_battery_percentage_category: 'unknown' | string;
473
474
  battery_save: boolean;
474
475
  firmware_version_status: 'Up to Date';
@@ -867,7 +868,8 @@ export declare enum NotificationDetectionType {
867
868
  export declare enum PushNotificationAction {
868
869
  Ding = "com.ring.pn.live-event.ding",
869
870
  Motion = "com.ring.pn.live-event.motion",
870
- IntercomUnlock = "com.ring.pn.intercom.virtual.unlock",
871
+ IntercomDing = "com.ring.pn.live-event.intercom",
872
+ IntercomUnlock = "com.ring.push.INTERCOM_UNLOCK_FROM_APP",
871
873
  AlarmModeNone = "com.ring.push.HANDLE_NEW_SECURITY_PANEL_MODE_NONE_NOTICE",
872
874
  AlarmModeSome = "com.ring.push.HANDLE_NEW_SECURITY_PANEL_MODE_SOME_NOTICE",
873
875
  AlarmSoundSiren = "com.ring.push.HANDLE_NEW_USER_SOUND_SIREN",
@@ -892,7 +894,7 @@ export interface PushNotificationDingV2 {
892
894
  device: {
893
895
  e2ee_enabled: boolean;
894
896
  id: number;
895
- kind: RingCameraKind;
897
+ kind: RingCameraKind | RingDeviceType.IntercomHandsetAudio;
896
898
  name: string;
897
899
  };
898
900
  event: {
@@ -900,7 +902,7 @@ export interface PushNotificationDingV2 {
900
902
  id: string;
901
903
  created_at: string;
902
904
  subtype: 'other_motion' | 'motion' | 'ding' | 'human' | string;
903
- detection_type: NotificationDetectionType;
905
+ detection_type?: NotificationDetectionType;
904
906
  };
905
907
  eventito: {
906
908
  type: NotificationDetectionType;
@@ -923,7 +925,7 @@ export interface PushNotificationDingV2 {
923
925
  snapshot_uuid: string;
924
926
  };
925
927
  }
926
- export interface PushNotificationAlarm {
928
+ interface PushNotificationAlarm {
927
929
  aps: {
928
930
  alert: string;
929
931
  };
@@ -938,7 +940,22 @@ export interface PushNotificationAlarmV2 {
938
940
  gcmData: PushNotificationAlarm;
939
941
  };
940
942
  }
941
- export type PushNotification = PushNotificationDingV2 | PushNotificationAlarmV2;
943
+ interface PushNotificationIntercomUnlock {
944
+ aps: {
945
+ alert: string;
946
+ };
947
+ action: PushNotificationAction.IntercomUnlock;
948
+ alarm_meta: {
949
+ device_zid: number;
950
+ location_id: string;
951
+ };
952
+ }
953
+ export interface PushNotificationIntercomUnlockV2 {
954
+ data: {
955
+ gcmData: PushNotificationIntercomUnlock;
956
+ };
957
+ }
958
+ export type PushNotification = PushNotificationDingV2 | PushNotificationAlarmV2 | PushNotificationIntercomUnlockV2;
942
959
  export interface SocketTicketResponse {
943
960
  ticket: string;
944
961
  responseTimestampe: number;
package/lib/ring-types.js CHANGED
@@ -188,7 +188,8 @@ var PushNotificationAction;
188
188
  (function (PushNotificationAction) {
189
189
  PushNotificationAction["Ding"] = "com.ring.pn.live-event.ding";
190
190
  PushNotificationAction["Motion"] = "com.ring.pn.live-event.motion";
191
- PushNotificationAction["IntercomUnlock"] = "com.ring.pn.intercom.virtual.unlock";
191
+ PushNotificationAction["IntercomDing"] = "com.ring.pn.live-event.intercom";
192
+ PushNotificationAction["IntercomUnlock"] = "com.ring.push.INTERCOM_UNLOCK_FROM_APP";
192
193
  PushNotificationAction["AlarmModeNone"] = "com.ring.push.HANDLE_NEW_SECURITY_PANEL_MODE_NONE_NOTICE";
193
194
  PushNotificationAction["AlarmModeSome"] = "com.ring.push.HANDLE_NEW_SECURITY_PANEL_MODE_SOME_NOTICE";
194
195
  PushNotificationAction["AlarmSoundSiren"] = "com.ring.push.HANDLE_NEW_USER_SOUND_SIREN";
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "ring-client-api",
3
- "version": "13.0.0-beta.2",
3
+ "version": "13.0.0-beta.3",
4
4
  "description": "Unofficial API for Ring doorbells, cameras, security alarm system and smart lighting",
5
5
  "main": "lib/index.js",
6
6
  "exports": {
@@ -17,7 +17,7 @@
17
17
  "test:watch": "jest --watch"
18
18
  },
19
19
  "dependencies": {
20
- "@eneris/push-receiver": "^4.1.2",
20
+ "@eneris/push-receiver": "^4.1.4",
21
21
  "@homebridge/camera-utils": "^2.2.6",
22
22
  "@types/socket.io-client": "1.4.36",
23
23
  "colors": "1.4.0",
@@ -27,22 +27,22 @@
27
27
  "socket.io-client": "^2.5.0",
28
28
  "systeminformation": "^5.22.11",
29
29
  "uuid": "^10.0.0",
30
- "werift": "0.19.3",
31
- "ws": "^8.17.1"
30
+ "werift": "0.19.4",
31
+ "ws": "^8.18.0"
32
32
  },
33
33
  "devDependencies": {
34
34
  "@types/debug": "4.1.12",
35
35
  "@types/jest": "29.5.12",
36
36
  "@types/json-bigint": "^1.0.4",
37
- "@types/node": "20.14.7",
37
+ "@types/node": "20.14.11",
38
38
  "@types/uuid": "10.0.0",
39
- "@types/ws": "^8.5.10",
39
+ "@types/ws": "^8.5.11",
40
40
  "eslint-config-shared": "*",
41
41
  "jest": "29.7.0",
42
42
  "msw": "^1.3.3",
43
- "ts-jest": "29.1.5",
43
+ "ts-jest": "29.2.3",
44
44
  "tsconfig": "*",
45
- "typescript": "5.5.2"
45
+ "typescript": "5.5.3"
46
46
  },
47
47
  "engines": {
48
48
  "node": "^18 || ^20"