ring-client-api 14.0.1 → 14.2.0

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/README.md CHANGED
@@ -47,7 +47,6 @@ const ringApi = new RingApi({
47
47
  | `locationModePollingSeconds` | `undefined` (No Polling) | How frequently to poll for location mode updates (in seconds). This is only useful if you are using location modes to control camera settings and want to keep an up-to-date reference of the current mode for each location. Polling is automatically disabled for locations equipped with a Ring Alarm. |
48
48
  | `locationIds` | All Locations | Allows you to limit the results to a specific set of locations. This is mainly useful for the [homebridge-ring Plugin](./homebridge), but can also be used if you only care about listening for events at a subset of your locations and don't want to create websocket connections to _all_ of your locations. This will also limit the results for `ringApi.getCameras()` to the configured locations. If this option is not included, all locations will be returned. |
49
49
  | `debug` | false | Turns on additional logging. In particular, ffmpeg logging. |
50
- | `ffmpegPath` | undefined | A custom path to the `ffmpeg` executable. By default, `ffmpeg` will be installed using `ffmpeg-for-homebridge`, and then fall back to using the `PATH` environment variable. |
51
50
  | `ffmpegPath` | Uses `ffmpeg-for-homebridge` | A custom path to the `ffmpeg` executable. By default, the static binaries built in [ffmpeg-for-homebridge](https://github.com/oznu/ffmpeg-for-homebridg) will be used. If you prefer to use your own version of ffmpeg, you can pass a complete path, or simply `"ffmpeg"` to use ffmpeg from your `PATH`. |
52
51
  | `controlCenterDisplayName` | 'ring-client-api' | This allows you to change the displayed name for the Authorized Device within Control Center in the Ring app |
53
52
  | `avoidSnapshotBatteryDrain` | false | Causes snapshots for battery cameras to be fetched at a minimum 10 minute interval to avoid draining the battery. |
package/lib/api.d.ts CHANGED
@@ -1,7 +1,7 @@
1
1
  import type { RefreshTokenAuth, SessionOptions } from './rest-client.ts';
2
2
  import { RingRestClient } from './rest-client.ts';
3
3
  import { Location } from './location.ts';
4
- import type { BaseStation, BeamBridge, CameraData, ChimeData, IntercomHandsetAudioData, OnvifCameraData, ProfileResponse, ThirdPartyGarageDoorOpener, UnknownDevice, UserLocation } from './ring-types.ts';
4
+ import type { BaseStation, BeamBridge, CameraData, ChimeData, IntercomHandsetData, OnvifCameraData, ProfileResponse, ThirdPartyGarageDoorOpener, UnknownDevice, UserLocation } from './ring-types.ts';
5
5
  import type { AnyCameraData } from './ring-camera.ts';
6
6
  import { RingCamera } from './ring-camera.ts';
7
7
  import { Subscribed } from './subscribed.ts';
@@ -35,7 +35,7 @@ export declare class RingApi extends Subscribed {
35
35
  beamBridges: BeamBridge[];
36
36
  onvifCameras: OnvifCameraData[];
37
37
  thirdPartyGarageDoorOpeners: ThirdPartyGarageDoorOpener[];
38
- intercoms: IntercomHandsetAudioData[];
38
+ intercoms: IntercomHandsetData[];
39
39
  unknownDevices: UnknownDevice[];
40
40
  }>;
41
41
  private listenForDeviceUpdates;
package/lib/api.js CHANGED
@@ -39,6 +39,7 @@ export class RingApi extends Subscribed {
39
39
  case RingDeviceType.OnvifCamera:
40
40
  onvifCameras.push(device);
41
41
  break;
42
+ case RingDeviceType.IntercomHandsetVideo:
42
43
  case RingDeviceType.IntercomHandsetAudio:
43
44
  intercoms.push(device);
44
45
  break;
@@ -1,20 +1,20 @@
1
- import type { IntercomHandsetAudioData, PushNotification } from './ring-types.ts';
1
+ import type { IntercomHandsetData, PushNotification } from './ring-types.ts';
2
2
  import type { RingRestClient } from './rest-client.ts';
3
3
  import { BehaviorSubject, Subject } from 'rxjs';
4
4
  export declare class RingIntercom {
5
5
  id: number;
6
- deviceType: "intercom_handset_audio";
7
- onData: BehaviorSubject<IntercomHandsetAudioData>;
6
+ deviceType: "intercom_handset_audio" | "intercom_handset_video";
7
+ onData: BehaviorSubject<IntercomHandsetData>;
8
8
  onRequestUpdate: Subject<unknown>;
9
9
  onBatteryLevel: import("rxjs").Observable<number | null>;
10
10
  onDing: Subject<void>;
11
11
  onUnlocked: Subject<void>;
12
12
  private initialData;
13
13
  private restClient;
14
- constructor(initialData: IntercomHandsetAudioData, restClient: RingRestClient);
15
- updateData(update: IntercomHandsetAudioData): void;
14
+ constructor(initialData: IntercomHandsetData, restClient: RingRestClient);
15
+ updateData(update: IntercomHandsetData): void;
16
16
  requestUpdate(): void;
17
- get data(): IntercomHandsetAudioData;
17
+ get data(): IntercomHandsetData;
18
18
  get name(): string;
19
19
  get isOffline(): boolean;
20
20
  get batteryLevel(): number | null;
@@ -43,7 +43,9 @@ export declare const RingDeviceType: {
43
43
  readonly OnvifCamera: "onvif_camera";
44
44
  readonly ThirdPartyGarageDoorOpener: "third_party_gdo";
45
45
  readonly IntercomHandsetAudio: "intercom_handset_audio";
46
+ readonly IntercomHandsetVideo: "intercom_handset_video";
46
47
  readonly WaterValve: "valve.water";
48
+ readonly KiddeSmokeCoAlarm: "comp.bluejay.sensor_bluejay_wsc";
47
49
  };
48
50
  export type RingDeviceType = (typeof RingDeviceType)[keyof typeof RingDeviceType];
49
51
  export declare const RingDeviceCategory: {
@@ -539,11 +541,11 @@ export interface ThirdPartyGarageDoorOpener {
539
541
  ring_net_id: null;
540
542
  is_sidewalk_gateway: boolean;
541
543
  }
542
- export interface IntercomHandsetAudioData {
544
+ export interface IntercomHandsetData {
543
545
  id: number;
544
546
  description: string;
545
547
  device_id: string;
546
- kind: typeof RingDeviceType.IntercomHandsetAudio;
548
+ kind: typeof RingDeviceType.IntercomHandsetAudio | typeof RingDeviceType.IntercomHandsetVideo;
547
549
  function: {
548
550
  name: null;
549
551
  };
@@ -905,7 +907,7 @@ export interface PushNotificationDingV2 {
905
907
  device: {
906
908
  e2ee_enabled: boolean;
907
909
  id: number;
908
- kind: RingCameraKind | typeof RingDeviceType.IntercomHandsetAudio;
910
+ kind: RingCameraKind | typeof RingDeviceType.IntercomHandsetAudio | typeof RingDeviceType.IntercomHandsetVideo;
909
911
  name: string;
910
912
  };
911
913
  event: {
package/lib/ring-types.js CHANGED
@@ -42,7 +42,9 @@ export const RingDeviceType = {
42
42
  OnvifCamera: 'onvif_camera',
43
43
  ThirdPartyGarageDoorOpener: 'third_party_gdo',
44
44
  IntercomHandsetAudio: 'intercom_handset_audio',
45
+ IntercomHandsetVideo: 'intercom_handset_video',
45
46
  WaterValve: 'valve.water',
47
+ KiddeSmokeCoAlarm: 'comp.bluejay.sensor_bluejay_wsc',
46
48
  };
47
49
  export const RingDeviceCategory = {
48
50
  Outlets: 1,
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "ring-client-api",
3
- "version": "14.0.1",
3
+ "version": "14.2.0",
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",
@@ -21,28 +21,28 @@
21
21
  "@eneris/push-receiver": "4.3.0",
22
22
  "@homebridge/camera-utils": "^3.0.0",
23
23
  "colors": "1.4.0",
24
- "debug": "^4.4.0",
24
+ "debug": "^4.4.3",
25
25
  "json-bigint": "^1.0.0",
26
26
  "rxjs": "^7.8.2",
27
- "systeminformation": "^5.25.11",
28
- "undici": "^7.8.0",
29
- "uuid": "^11.1.0",
30
- "werift": "0.22.1"
27
+ "systeminformation": "^5.27.11",
28
+ "undici": "^7.16.0",
29
+ "uuid": "^13.0.0",
30
+ "werift": "0.22.2"
31
31
  },
32
32
  "devDependencies": {
33
33
  "@types/debug": "4.1.12",
34
34
  "@types/json-bigint": "^1.0.4",
35
- "@types/node": "22.15.17",
36
- "@types/uuid": "10.0.0",
35
+ "@types/node": "24.10.0",
36
+ "@types/uuid": "11.0.0",
37
37
  "@types/ws": "^8.18.1",
38
38
  "eslint-config-shared": "*",
39
- "msw": "^2.8.0",
39
+ "msw": "^2.12.1",
40
40
  "tsconfig": "*",
41
- "typescript": "5.8.3",
42
- "vitest": "^3.1.3"
41
+ "typescript": "5.9.3",
42
+ "vitest": "^4.0.8"
43
43
  },
44
44
  "engines": {
45
- "node": "^20 || ^22"
45
+ "node": "^20 || ^22 || ^24"
46
46
  },
47
47
  "repository": {
48
48
  "type": "git",