homebridge-eufy-nvr-gateway 0.2.0 → 0.3.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/CHANGELOG.md CHANGED
@@ -4,6 +4,26 @@ All notable changes to this project. Versions follow [Semantic Versioning](https
4
4
  This plugin is based on [Homebridge Camera FFmpeg](https://github.com/homebridge-plugins/homebridge-camera-ffmpeg)
5
5
  4.1.0; its own history is in [its changelog](https://github.com/homebridge-plugins/homebridge-camera-ffmpeg/blob/latest/CHANGELOG.md).
6
6
 
7
+ ## [0.3.0] - 2026-11-08
8
+
9
+ ### Changed
10
+
11
+ - **Only the stream login.** The web page login is gone from the settings page and the settings:
12
+ Homebridge logs in to the gateway with its stream login alone, which needs eufy NVR Gateway 0.6.0
13
+ or later. Saving the settings once removes a web login that 0.2.0 stored.
14
+ - **Sleep as soon as live view closes is on by default** for cameras added from now on: the
15
+ camera goes back to sleep the moment you close its live view, if the live view woke it. Cameras
16
+ already set up keep their setting (earlier versions saved it as off): turn it on in the settings.
17
+
18
+ ### Fixed
19
+
20
+ - **The Devices tab lists the cameras.** It said "No Devices", because Homebridge keeps no cache
21
+ of HomeKit cameras (they are separate accessories). It now shows each camera added to HomeKit with
22
+ what the gateway says about it right now: asleep, waking or live, battery, model, serial number,
23
+ firmware and video; with the saved details only when the gateway can't be reached.
24
+ - The switches on the settings page have space between the switch and its text, and the camera
25
+ cards don't touch: the page now uses the Homebridge UI's own styles (Bootstrap 5).
26
+
7
27
  ## [0.2.0] - 2026-11-08
8
28
 
9
29
  ### Changed
package/README.md CHANGED
@@ -26,9 +26,9 @@ wakes it; closing it lets the camera sleep again.
26
26
  - **Live view wakes the camera.** When the Home app opens a camera, the plugin asks the gateway to
27
27
  wake it. The picture appears at once (the gateway's *Waking up* picture) and switches to live video
28
28
  when the camera is awake, usually within a few seconds.
29
- - **It stays awake while you watch**, however long, and **sleeps when you're done**: when the
30
- gateway's hold time ends (30 seconds by default), or at once with *Sleep as soon as live view
31
- closes*.
29
+ - **It stays awake while you watch**, however long, and **sleeps as soon as you're done**, if the
30
+ live view was what woke it. A camera that was already awake (motion, a doorbell press) is left to
31
+ the gateway.
32
32
  - **Tiles never wake a camera.** The pictures on the Home app's tiles come from the gateway: the last
33
33
  picture while a camera sleeps, the live one while it is awake.
34
34
  - **Nothing to type but the gateway's address.** The settings page finds the gateway's cameras and
@@ -37,8 +37,8 @@ wakes it; closing it lets the camera sleep again.
37
37
 
38
38
  ## Installation
39
39
 
40
- The gateway must be running and reachable from the Homebridge host: its web page on port `8099`,
41
- its streams on `8554`.
40
+ The gateway (version 0.6.0 or later) must be running and reachable from the Homebridge host: its web
41
+ page on port `8099`, its streams on `8554`.
42
42
 
43
43
  In the Homebridge UI, open *Plugins*, search for `homebridge-eufy-nvr-gateway` and install it. Or,
44
44
  in the Homebridge terminal:
@@ -56,23 +56,21 @@ Each release is also attached as a `.tgz` file on the
56
56
  Open the plugin's settings in the Homebridge UI and enter the gateway's IP address (its port too, if
57
57
  it isn't `8099`). The page finds the gateway's cameras at once.
58
58
 
59
- **Logins.** Only if the gateway has them:
60
-
61
- - **Stream login**: the gateway's `"rtsp"` login, the one your NVR uses. The page asks for it when
62
- the gateway needs a login. Homebridge plays the streams with it, and finds and wakes the cameras
63
- with it.
64
- - **Web page login**: only for gateways before 0.6.0, which don't accept the stream login for
65
- finding and waking cameras. The page asks for it only then. Updating the gateway makes it unnecessary, and the
66
- page doesn't store it when the stream login is enough.
59
+ **Login.** Only if the gateway has one: its **stream login** (`"rtsp"` in its config.json), the one
60
+ your NVR uses. The page asks for it when the gateway needs it. Homebridge plays the streams with it,
61
+ and finds and wakes the cameras with it; it never needs the gateway's web page login. This needs
62
+ eufy NVR Gateway 0.6.0 or later.
67
63
 
68
64
  **For each camera** the page shows its name and stream (both follow from the gateway) and fills in
69
65
  the model and serial number. You choose:
70
66
 
71
67
  - **Add to HomeKit**: every camera at the first setup; cameras the gateway gets later start off.
72
68
  - **Sound**: on when the gateway's stream for that camera has sound (`"audio": true` on the gateway).
73
- - **Sleep as soon as live view closes**: off, the camera sleeps when the gateway's hold time ends.
74
- That leaves a session the camera started for motion alone, so an NVR recording the same camera
75
- keeps its recording.
69
+ - **Sleep as soon as live view closes** (on by default): the camera goes back to sleep the moment
70
+ the last Home app viewer leaves, if the live view was what woke it; a camera that was already awake
71
+ is left alone. If motion starts *while* you watch, closing the live view still ends the session,
72
+ which also stops an NVR's recording of it; turn this off if an NVR records the camera and that
73
+ matters to you. Off, the camera sleeps when the gateway's hold time ends (30 seconds by default).
76
74
  - **Experimental – WIP → Video codec**: *Automatic* passes the gateway's H.264 to HomeKit as it is
77
75
  (`copy`, almost no CPU), and converts with `libx264` when the stream is H.265, which HomeKit can't
78
76
  play, or when the gateway doesn't know the camera's format yet. It is decided again at every
@@ -114,7 +112,7 @@ What the settings page writes, for reference:
114
112
  {
115
113
  "name": "front-door",
116
114
  "gatewayCamera": "front-door",
117
- "sleepWhenStreamEnds": false,
115
+ "sleepWhenStreamEnds": true,
118
116
  "videoConfig": { "audio": true }
119
117
  }
120
118
  ]
@@ -126,11 +124,10 @@ What the settings page writes, for reference:
126
124
  | `gateway.url` | The gateway's web page |
127
125
  | `gateway.rtspUsername`, `gateway.rtspPassword` | The gateway's stream login (`"rtsp"` in its config.json), if it has one |
128
126
  | `gateway.rtspPort` | The gateway's RTSP port, if not `8554` |
129
- | `gateway.username`, `gateway.password` | The gateway's web page login: only for gateways before 0.6.0, which refuse the stream login for finding and waking cameras |
130
127
  | `cameras[].gatewayCamera` | The camera's `name` in the gateway's config.json |
131
128
  | `cameras[].name` | The name in the Home app (the settings page uses the gateway's name) |
132
129
  | `cameras[].wakeOnStream` | `false`: live view doesn't wake the camera (default `true`) |
133
- | `cameras[].sleepWhenStreamEnds` | `true`: the camera sleeps as soon as the last viewer leaves, if live view woke it (default `false`) |
130
+ | `cameras[].sleepWhenStreamEnds` | The camera sleeps as soon as the last viewer leaves, if live view woke it (default `true`); `false`: when the gateway's hold time ends |
134
131
  | `cameras[].videoConfig.audio` | Sound in the Home app |
135
132
  | `cameras[].videoConfig.vcodec` | `copy` or `libx264`; left out, it is chosen at every start |
136
133
 
@@ -26,7 +26,7 @@
26
26
  "rtspUsername": {
27
27
  "title": "Stream Login: Username",
28
28
  "type": "string",
29
- "description": "The gateway's stream login (\"rtsp\" in its config.json), the one your NVR uses. Plays the streams, and finds and wakes the cameras."
29
+ "description": "The gateway's stream login (\"rtsp\" in its config.json), the one your NVR uses. Plays the streams, and finds and wakes the cameras (eufy NVR Gateway 0.6.0 or later)."
30
30
  },
31
31
  "rtspPassword": {
32
32
  "title": "Stream Login: Password",
@@ -40,18 +40,6 @@
40
40
  "type": "integer",
41
41
  "placeholder": 8554,
42
42
  "description": "The gateway's RTSP port (\"ports.rtsp\" in its config.json)."
43
- },
44
- "username": {
45
- "title": "Web Page Login: Username (gateways before 0.6.0)",
46
- "type": "string",
47
- "description": "Only for gateways before 0.6.0, which don't accept the stream login for finding and waking cameras: the login of the gateway's web page (\"web\" in its config.json)."
48
- },
49
- "password": {
50
- "title": "Web Page Login: Password (gateways before 0.6.0)",
51
- "type": "string",
52
- "x-schema-form": {
53
- "type": "password"
54
- }
55
43
  }
56
44
  }
57
45
  },
@@ -126,8 +114,8 @@
126
114
  "sleepWhenStreamEnds": {
127
115
  "title": "Sleep as Soon as Live View Closes",
128
116
  "type": "boolean",
129
- "default": false,
130
- "description": "Let the camera sleep the moment the last Home app viewer leaves, if HomeKit was what woke it. Off: it sleeps when the gateway's hold time ends (30 s by default), which keeps a recording NVR's motion session intact."
117
+ "default": true,
118
+ "description": "Let the camera sleep the moment the last Home app viewer leaves, if HomeKit was what woke it (on by default). Off: it sleeps when the gateway's hold time ends (30 s by default), which keeps an NVR's recording going if motion starts while you watch."
131
119
  },
132
120
  "manufacturer": {
133
121
  "name": "Manufacturer",
@@ -373,9 +361,7 @@
373
361
  "gateway.url",
374
362
  "gateway.rtspUsername",
375
363
  "gateway.rtspPassword",
376
- "gateway.rtspPort",
377
- "gateway.username",
378
- "gateway.password"
364
+ "gateway.rtspPort"
379
365
  ]
380
366
  },
381
367
  {
@@ -63,13 +63,12 @@ export interface Discovery {
63
63
  version: string;
64
64
  rtspPort: number;
65
65
  rtspLogin: boolean;
66
- apiLogin: 'stream' | 'web' | 'none';
67
66
  cameras: DiscoveredCamera[];
68
67
  }
69
68
  export declare function normalizeGatewayAddress(input: string): string;
70
69
  export declare function firmwareFrom(version?: string): string;
71
70
  export declare function brandingFor(camera: Pick<GatewayCameraStatus, 'serial' | 'model'>, devices: GatewayDevice[], version?: string): Branding;
72
71
  export declare function codecFor(camera: Pick<GatewayCameraStatus, 'video'>): CodecChoice;
73
- export declare function discover(gateway: GatewayConfig, client?: Pick<GatewayClient, 'status' | 'devices' | 'usedLogin'>): Promise<Discovery>;
72
+ export declare function discover(gateway: GatewayConfig, client?: Pick<GatewayClient, 'status' | 'devices'>): Promise<Discovery>;
74
73
  export declare function cameraConfigFor(camera: DiscoveredCamera, previous?: CameraConfig): CameraConfig;
75
74
  //# sourceMappingURL=discovery.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"discovery.d.ts","sourceRoot":"","sources":["../src/discovery.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"discovery.d.ts","sourceRoot":"","sources":["../src/discovery.ts"],"names":[],"mappings":"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"}
package/dist/discovery.js CHANGED
@@ -64,8 +64,7 @@ export async function discover(gateway, client) {
64
64
  const url = normalizeGatewayAddress(gateway.url ?? '');
65
65
  const api = client ?? new GatewayClient({ ...gateway, url });
66
66
  const status = await api.status();
67
- const apiLogin = api.usedLogin;
68
- // Older gateways have the models only in the device list (which needs the web login).
67
+ // Gateways before 0.6.0 have the models only in the device list (open only without a web login).
69
68
  const needDevices = (status.cameras ?? []).some(camera => !camera.model);
70
69
  const devices = needDevices ? await api.devices().catch(() => []) : [];
71
70
  const rtspPort = status.rtspPort || DEFAULT_RTSP_PORT;
@@ -76,7 +75,6 @@ export async function discover(gateway, client) {
76
75
  version: status.gateway?.version ?? '',
77
76
  rtspPort,
78
77
  rtspLogin,
79
- apiLogin,
80
78
  cameras: (status.cameras ?? []).map(camera => ({
81
79
  name: camera.name,
82
80
  serial: camera.serial,
@@ -103,7 +101,7 @@ export function cameraConfigFor(camera, previous) {
103
101
  name: camera.name,
104
102
  gatewayCamera: camera.name,
105
103
  ...camera.branding,
106
- sleepWhenStreamEnds: previous?.sleepWhenStreamEnds ?? false,
104
+ sleepWhenStreamEnds: previous?.sleepWhenStreamEnds ?? true,
107
105
  videoConfig: {
108
106
  ...previousVideo,
109
107
  audio: camera.audio ? (previous?.videoConfig?.audio ?? true) : false, // only if the gateway's stream has sound
@@ -1 +1 @@
1
- {"version":3,"file":"discovery.js","sourceRoot":"","sources":["../src/discovery.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"discovery.js","sourceRoot":"","sources":["../src/discovery.ts"],"names":[],"mappings":"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"}
package/dist/gateway.d.ts CHANGED
@@ -1,8 +1,6 @@
1
1
  import { Buffer } from 'node:buffer';
2
2
  export interface GatewayConfig {
3
3
  url?: string;
4
- username?: string;
5
- password?: string;
6
4
  rtspPort?: number;
7
5
  rtspUsername?: string;
8
6
  rtspPassword?: string;
@@ -37,15 +35,8 @@ export declare class GatewayClient {
37
35
  state(camera: string): Promise<GatewayState>;
38
36
  snapshot(camera: string): Promise<Buffer>;
39
37
  private json;
40
- private loginsInOrder;
41
- private worked;
42
- get usedLogin(): ApiLogin['kind'] | 'none';
43
38
  private request;
44
39
  }
45
- interface ApiLogin {
46
- kind: 'stream' | 'web';
47
- header: string;
48
- }
49
40
  interface Timers {
50
41
  setInterval: (fn: () => void, ms: number) => unknown;
51
42
  clearInterval: (handle: unknown) => void;
@@ -1 +1 @@
1
- {"version":3,"file":"gateway.d.ts","sourceRoot":"","sources":["../src/gateway.ts"],"names":[],"mappings":"AAeA,OAAO,EAAE,MAAM,EAAE,MAAM,aAAa,CAAA;AAEpC,MAAM,WAAW,aAAa;IAC5B,GAAG,CAAC,EAAE,MAAM,CAAA;IACZ,QAAQ,CAAC,EAAE,MAAM,CAAA;IACjB,QAAQ,CAAC,EAAE,MAAM,CAAA;IACjB,QAAQ,CAAC,EAAE,MAAM,CAAA;IACjB,YAAY,CAAC,EAAE,MAAM,CAAA;IACrB,YAAY,CAAC,EAAE,MAAM,CAAA;CACtB;AAED,MAAM,WAAW,oBAAoB;IACnC,MAAM,EAAE,MAAM,CAAA;IACd,YAAY,EAAE,OAAO,CAAA;IACrB,mBAAmB,EAAE,OAAO,CAAA;IAC5B,WAAW,EAAE,MAAM,CAAA;CACpB;AAED,MAAM,MAAM,YAAY,GAAG,MAAM,GAAG,QAAQ,GAAG,MAAM,CAAA;AAErD,UAAU,GAAG;IACX,KAAK,EAAE,CAAC,OAAO,EAAE,MAAM,EAAE,IAAI,CAAC,EAAE,MAAM,EAAE,MAAM,CAAC,EAAE,OAAO,KAAK,IAAI,CAAA;IACjE,IAAI,EAAE,CAAC,OAAO,EAAE,MAAM,EAAE,IAAI,CAAC,EAAE,MAAM,KAAK,IAAI,CAAA;IAC9C,IAAI,EAAE,CAAC,OAAO,EAAE,MAAM,EAAE,IAAI,CAAC,EAAE,MAAM,KAAK,IAAI,CAAA;CAC/C;AAED,KAAK,KAAK,GAAG,OAAO,KAAK,CAAA;AAEzB,eAAO,MAAM,iBAAiB,OAAO,CAAA;AAErC,eAAO,MAAM,qBAAqB,QAAS,CAAA;AAK3C,wBAAgB,cAAc,CAAC,MAAM,CAAC,EAAE,aAAa,GAAG,MAAM,GAAG,IAAI,CAapE;AAID,qBAAa,aAAa;IAGZ,OAAO,CAAC,QAAQ,CAAC,MAAM;IAAiB,OAAO,CAAC,QAAQ,CAAC,SAAS;IAF9E,OAAO,CAAC,QAAQ,CAAC,IAAI,CAAK;gBAEG,MAAM,EAAE,aAAa,EAAmB,SAAS,GAAE,KAAa;IAS7F,OAAO,CAAC,MAAM,EAAE,MAAM,GAAG,MAAM;IAU/B,YAAY,CAAC,MAAM,EAAE,MAAM,GAAG,MAAM;IAI9B,IAAI,CAAC,MAAM,EAAE,MAAM,GAAG,OAAO,CAAC,YAAY,CAAC;IAK3C,KAAK,CAAC,MAAM,EAAE,MAAM,GAAG,OAAO,CAAC,YAAY,CAAC;IAMlD,MAAM,IAAI,OAAO,CAAC,GAAG,CAAC;IAKtB,OAAO,IAAI,OAAO,CAAC,GAAG,EAAE,CAAC;IAInB,KAAK,CAAC,MAAM,EAAE,MAAM,GAAG,OAAO,CAAC,YAAY,CAAC;IAS5C,QAAQ,CAAC,MAAM,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC;YASjC,IAAI;IASlB,OAAO,CAAC,aAAa;IAcrB,OAAO,CAAC,MAAM,CAAgC;IAG9C,IAAI,SAAS,IAAI,QAAQ,CAAC,MAAM,CAAC,GAAG,MAAM,CAEzC;YAEa,OAAO;CAkCtB;AAED,UAAU,QAAQ;IAChB,IAAI,EAAE,QAAQ,GAAG,KAAK,CAAA;IACtB,MAAM,EAAE,MAAM,CAAA;CACf;AAMD,UAAU,MAAM;IACd,WAAW,EAAE,CAAC,EAAE,EAAE,MAAM,IAAI,EAAE,EAAE,EAAE,MAAM,KAAK,OAAO,CAAA;IACpD,aAAa,EAAE,CAAC,MAAM,EAAE,OAAO,KAAK,IAAI,CAAA;CACzC;AAQD,qBAAa,UAAU;IASnB,OAAO,CAAC,QAAQ,CAAC,MAAM;IACvB,OAAO,CAAC,QAAQ,CAAC,OAAO;IACxB,OAAO,CAAC,QAAQ,CAAC,GAAG;IACpB,OAAO,CAAC,QAAQ,CAAC,UAAU;IAC3B,OAAO,CAAC,QAAQ,CAAC,MAAM;IAZzB,OAAO,CAAC,QAAQ,CAAC,QAAQ,CAAoB;IAC7C,OAAO,CAAC,KAAK,CAAgB;IAC7B,OAAO,CAAC,MAAM,CAAQ;IACtB,OAAO,CAAC,OAAO,CAAQ;IACvB,OAAO,CAAC,KAAK,CAAQ;IACrB,OAAO,CAAC,UAAU,CAAI;gBAGH,MAAM,EAAE,IAAI,CAAC,aAAa,EAAE,MAAM,GAAG,OAAO,GAAG,OAAO,CAAC,EACvD,OAAO,EAAE,oBAAoB,EAC7B,GAAG,EAAE,GAAG,EACR,UAAU,EAAE,MAAM,EAClB,MAAM,GAAE,MAAmB;IAG9C,IAAI,QAAQ,IAAI,MAAM,CAErB;IAIK,aAAa,CAAC,SAAS,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IA0B/C,WAAW,CAAC,SAAS,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IAoBnD,QAAQ,IAAI,IAAI;IAMhB,OAAO,CAAC,SAAS;YAOH,IAAI;YAkBJ,SAAS;IAwBvB,OAAO,CAAC,MAAM;CAMf"}
1
+ {"version":3,"file":"gateway.d.ts","sourceRoot":"","sources":["../src/gateway.ts"],"names":[],"mappings":"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"}
package/dist/gateway.js CHANGED
@@ -97,67 +97,36 @@ export class GatewayClient {
97
97
  const res = await this.request(method, path, REQUEST_TIMEOUT_MS);
98
98
  return res.json();
99
99
  }
100
- // The logins for the gateway's API, in order. The stream login comes first: the gateway accepts it
101
- // for everything this plugin does (the camera list, snapshots, wake and sleep), so Homebridge never
102
- // needs the web page's admin login. The web login is the fallback for gateways that only accept
103
- // that one. After a success, the login that worked is tried first.
104
- loginsInOrder() {
105
- const logins = [];
106
- if (this.config.rtspUsername) {
107
- logins.push({ kind: 'stream', header: basicHeader(this.config.rtspUsername, this.config.rtspPassword) });
108
- }
109
- if (this.config.username) {
110
- logins.push({ kind: 'web', header: basicHeader(this.config.username, this.config.password) });
111
- }
112
- if (logins.length === 0) {
113
- return [null];
114
- }
115
- return this.worked ? [...logins].sort(a => (a.kind === this.worked ? -1 : 1)) : logins;
116
- }
117
- worked = null;
118
- // Which login the gateway took last: 'stream', 'web', or 'none' (it needs none).
119
- get usedLogin() {
120
- return this.worked ?? 'none';
121
- }
100
+ // The gateway's API takes the stream login (eufy NVR Gateway 0.6.0 or later): the camera list,
101
+ // snapshots, wake and sleep are all this plugin does, so it never needs the web page's admin login.
122
102
  async request(method, path, timeoutMs) {
123
103
  const url = new URL(path, this.base);
124
- const logins = this.loginsInOrder();
104
+ const headers = {};
105
+ if (this.config.rtspUsername) {
106
+ const login = `${this.config.rtspUsername}:${this.config.rtspPassword ?? ''}`;
107
+ headers.authorization = `Basic ${Buffer.from(login, 'utf8').toString('base64')}`;
108
+ }
125
109
  let res;
126
- for (const [index, login] of logins.entries()) {
127
- const headers = login ? { authorization: login.header } : {};
128
- try {
129
- res = await this.fetchImpl(url, { method, headers, signal: AbortSignal.timeout(timeoutMs) });
130
- }
131
- catch (error) {
132
- const why = error.name === 'TimeoutError' ? `no answer within ${timeoutMs / 1000} s` : error.message;
133
- throw new Error(`${method} ${url.pathname}: ${why}`);
134
- }
135
- const refused = res.status === 401 || res.status === 403;
136
- if (refused && index < logins.length - 1) {
137
- continue; // try the next login
138
- }
139
- if (res.ok && login) {
140
- this.worked = login.kind;
141
- }
142
- break;
110
+ try {
111
+ res = await this.fetchImpl(url, { method, headers, signal: AbortSignal.timeout(timeoutMs) });
112
+ }
113
+ catch (error) {
114
+ const why = error.name === 'TimeoutError' ? `no answer within ${timeoutMs / 1000} s` : error.message;
115
+ throw new Error(`${method} ${url.pathname}: ${why}`);
143
116
  }
144
117
  if (!res.ok) {
145
- const status = res.status;
146
- const hint = status === 401
147
- ? ' (check the stream login, "gateway.rtspUsername" and "gateway.rtspPassword"; gateways before 0.6.0 need the web login, "gateway.username" and "gateway.password")'
148
- : status === 404
118
+ const hint = res.status === 401
119
+ ? ' (check the stream login, "gateway.rtspUsername" and "gateway.rtspPassword"; the gateway must be 0.6.0 or later to accept it)'
120
+ : res.status === 404
149
121
  ? ' (check the camera name: it must match "name" in the gateway\'s config.json)'
150
- : status === 429
122
+ : res.status === 429
151
123
  ? ' (too many wrong logins from this machine: the gateway refuses its logins for a few minutes; check the password)'
152
124
  : '';
153
- throw new Error(`${method} ${url.pathname}: HTTP ${status}${hint}`);
125
+ throw new Error(`${method} ${url.pathname}: HTTP ${res.status}${hint}`);
154
126
  }
155
127
  return res;
156
128
  }
157
129
  }
158
- function basicHeader(username, password) {
159
- return `Basic ${Buffer.from(`${username}:${password ?? ''}`, 'utf8').toString('base64')}`;
160
- }
161
130
  const realTimers = {
162
131
  setInterval: (fn, ms) => setInterval(fn, ms),
163
132
  clearInterval: handle => clearInterval(handle),
@@ -1 +1 @@
1
- {"version":3,"file":"gateway.js","sourceRoot":"","sources":["../src/gateway.ts"],"names":[],"mappings":"AAAA,yCAAyC;AACzC,EAAE;AACF,qGAAqG;AACrG,qGAAqG;AACrG,kGAAkG;AAClG,yCAAyC;AACzC,EAAE;AACF,oGAAoG;AACpG,wDAAwD;AACxD,+FAA+F;AAC/F,8FAA8F;AAC9F,4EAA4E;AAC5E,kGAAkG;AAClG,2EAA2E;AAE3E,OAAO,EAAE,MAAM,EAAE,MAAM,aAAa,CAAA;AA4BpC,MAAM,CAAC,MAAM,iBAAiB,GAAG,IAAI,CAAA;AACrC,uGAAuG;AACvG,MAAM,CAAC,MAAM,qBAAqB,GAAG,MAAM,CAAA;AAC3C,MAAM,kBAAkB,GAAG,KAAK,CAAA;AAChC,MAAM,mBAAmB,GAAG,MAAM,CAAA;AAElC,0DAA0D;AAC1D,MAAM,UAAU,cAAc,CAAC,MAAsB;IACnD,IAAI,CAAC,MAAM,EAAE,GAAG,EAAE,CAAC;QACjB,OAAO,uFAAuF,CAAA;IAChG,CAAC;IACD,IAAI,CAAC,eAAe,CAAC,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,EAAE,CAAC;QACtC,OAAO,oBAAoB,MAAM,CAAC,GAAG,uEAAuE,CAAA;IAC9G,CAAC;IACD,IAAI,CAAC;QACH,IAAI,GAAG,CAAC,MAAM,CAAC,GAAG,CAAC,CAAA;IACrB,CAAC;IAAC,MAAM,CAAC;QACP,OAAO,oBAAoB,MAAM,CAAC,GAAG,gBAAgB,CAAA;IACvD,CAAC;IACD,OAAO,IAAI,CAAA;AACb,CAAC;AAED,MAAM,UAAU,GAAG,CAAC,MAAc,EAAE,MAAc,EAAU,EAAE,CAAC,gBAAgB,kBAAkB,CAAC,MAAM,CAAC,IAAI,MAAM,EAAE,CAAA;AAErH,MAAM,OAAO,aAAa;IAGK;IAAwC;IAFpD,IAAI,CAAK;IAE1B,YAA6B,MAAqB,EAAmB,YAAmB,KAAK;QAAhE,WAAM,GAAN,MAAM,CAAe;QAAmB,cAAS,GAAT,SAAS,CAAe;QAC3F,MAAM,OAAO,GAAG,cAAc,CAAC,MAAM,CAAC,CAAA;QACtC,IAAI,OAAO,EAAE,CAAC;YACZ,MAAM,IAAI,KAAK,CAAC,OAAO,CAAC,CAAA;QAC1B,CAAC;QACD,IAAI,CAAC,IAAI,GAAG,IAAI,GAAG,CAAC,MAAM,CAAC,GAAI,CAAC,CAAA;IAClC,CAAC;IAED,gFAAgF;IAChF,OAAO,CAAC,MAAc;QACpB,MAAM,EAAE,YAAY,EAAE,YAAY,EAAE,GAAG,IAAI,CAAC,MAAM,CAAA;QAClD,MAAM,KAAK,GAAG,YAAY;YACxB,CAAC,CAAC,GAAG,kBAAkB,CAAC,YAAY,CAAC,IAAI,kBAAkB,CAAC,YAAY,IAAI,EAAE,CAAC,GAAG;YAClF,CAAC,CAAC,EAAE,CAAA;QACN,MAAM,IAAI,GAAG,IAAI,CAAC,MAAM,CAAC,QAAQ,IAAI,iBAAiB,CAAA;QACtD,OAAO,UAAU,KAAK,GAAG,IAAI,CAAC,IAAI,CAAC,QAAQ,IAAI,IAAI,IAAI,kBAAkB,CAAC,MAAM,CAAC,EAAE,CAAA;IACrF,CAAC;IAED,yFAAyF;IACzF,YAAY,CAAC,MAAc;QACzB,OAAO,0BAA0B,IAAI,CAAC,OAAO,CAAC,MAAM,CAAC,EAAE,CAAA;IACzD,CAAC;IAED,KAAK,CAAC,IAAI,CAAC,MAAc;QACvB,MAAM,MAAM,GAAG,MAAM,IAAI,CAAC,IAAI,CAAC,MAAM,EAAE,UAAU,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC,CAAA;QAClE,OAAO,MAAM,CAAC,KAAK,CAAA;IACrB,CAAC;IAED,KAAK,CAAC,KAAK,CAAC,MAAc;QACxB,MAAM,MAAM,GAAG,MAAM,IAAI,CAAC,IAAI,CAAC,MAAM,EAAE,UAAU,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC,CAAA;QAClE,OAAO,MAAM,CAAC,KAAK,CAAA;IACrB,CAAC;IAED,wFAAwF;IACxF,MAAM;QACJ,OAAO,IAAI,CAAC,IAAI,CAAC,KAAK,EAAE,aAAa,CAAC,CAAA;IACxC,CAAC;IAED,4EAA4E;IAC5E,OAAO;QACL,OAAO,IAAI,CAAC,IAAI,CAAC,KAAK,EAAE,cAAc,CAAC,CAAA;IACzC,CAAC;IAED,KAAK,CAAC,KAAK,CAAC,MAAc;QACxB,MAAM,MAAM,GAAG,MAAM,IAAI,CAAC,MAAM,EAAE,CAAA;QAClC,MAAM,KAAK,GAAG,CAAC,MAAM,CAAC,OAAO,IAAI,EAAE,CAAC,CAAC,IAAI,CAAC,CAAC,CAAmB,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,KAAK,MAAM,CAAC,CAAA;QACrF,IAAI,CAAC,KAAK,EAAE,CAAC;YACX,MAAM,IAAI,KAAK,CAAC,oCAAoC,MAAM,GAAG,CAAC,CAAA;QAChE,CAAC;QACD,OAAO,KAAK,CAAC,KAAK,CAAA;IACpB,CAAC;IAED,KAAK,CAAC,QAAQ,CAAC,MAAc;QAC3B,MAAM,GAAG,GAAG,MAAM,IAAI,CAAC,OAAO,CAAC,KAAK,EAAE,UAAU,CAAC,MAAM,EAAE,cAAc,CAAC,EAAE,mBAAmB,CAAC,CAAA;QAC9F,MAAM,KAAK,GAAG,MAAM,CAAC,IAAI,CAAC,MAAM,GAAG,CAAC,WAAW,EAAE,CAAC,CAAA;QAClD,IAAI,KAAK,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;YACvB,MAAM,IAAI,KAAK,CAAC,oCAAoC,CAAC,CAAA;QACvD,CAAC;QACD,OAAO,KAAK,CAAA;IACd,CAAC;IAEO,KAAK,CAAC,IAAI,CAAC,MAAc,EAAE,IAAY;QAC7C,MAAM,GAAG,GAAG,MAAM,IAAI,CAAC,OAAO,CAAC,MAAM,EAAE,IAAI,EAAE,kBAAkB,CAAC,CAAA;QAChE,OAAO,GAAG,CAAC,IAAI,EAAE,CAAA;IACnB,CAAC;IAED,mGAAmG;IACnG,oGAAoG;IACpG,gGAAgG;IAChG,mEAAmE;IAC3D,aAAa;QACnB,MAAM,MAAM,GAAe,EAAE,CAAA;QAC7B,IAAI,IAAI,CAAC,MAAM,CAAC,YAAY,EAAE,CAAC;YAC7B,MAAM,CAAC,IAAI,CAAC,EAAE,IAAI,EAAE,QAAQ,EAAE,MAAM,EAAE,WAAW,CAAC,IAAI,CAAC,MAAM,CAAC,YAAY,EAAE,IAAI,CAAC,MAAM,CAAC,YAAY,CAAC,EAAE,CAAC,CAAA;QAC1G,CAAC;QACD,IAAI,IAAI,CAAC,MAAM,CAAC,QAAQ,EAAE,CAAC;YACzB,MAAM,CAAC,IAAI,CAAC,EAAE,IAAI,EAAE,KAAK,EAAE,MAAM,EAAE,WAAW,CAAC,IAAI,CAAC,MAAM,CAAC,QAAQ,EAAE,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC,EAAE,CAAC,CAAA;QAC/F,CAAC;QACD,IAAI,MAAM,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;YACxB,OAAO,CAAC,IAAI,CAAC,CAAA;QACf,CAAC;QACD,OAAO,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,GAAG,MAAM,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,IAAI,KAAK,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,MAAM,CAAA;IACxF,CAAC;IAEO,MAAM,GAA4B,IAAI,CAAA;IAE9C,iFAAiF;IACjF,IAAI,SAAS;QACX,OAAO,IAAI,CAAC,MAAM,IAAI,MAAM,CAAA;IAC9B,CAAC;IAEO,KAAK,CAAC,OAAO,CAAC,MAAc,EAAE,IAAY,EAAE,SAAiB;QACnE,MAAM,GAAG,GAAG,IAAI,GAAG,CAAC,IAAI,EAAE,IAAI,CAAC,IAAI,CAAC,CAAA;QACpC,MAAM,MAAM,GAAG,IAAI,CAAC,aAAa,EAAE,CAAA;QACnC,IAAI,GAAyB,CAAA;QAC7B,KAAK,MAAM,CAAC,KAAK,EAAE,KAAK,CAAC,IAAI,MAAM,CAAC,OAAO,EAAE,EAAE,CAAC;YAC9C,MAAM,OAAO,GAA2B,KAAK,CAAC,CAAC,CAAC,EAAE,aAAa,EAAE,KAAK,CAAC,MAAM,EAAE,CAAC,CAAC,CAAC,EAAE,CAAA;YACpF,IAAI,CAAC;gBACH,GAAG,GAAG,MAAM,IAAI,CAAC,SAAS,CAAC,GAAG,EAAE,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,EAAE,WAAW,CAAC,OAAO,CAAC,SAAS,CAAC,EAAE,CAAC,CAAA;YAC9F,CAAC;YAAC,OAAO,KAAK,EAAE,CAAC;gBACf,MAAM,GAAG,GAAI,KAAe,CAAC,IAAI,KAAK,cAAc,CAAC,CAAC,CAAC,oBAAoB,SAAS,GAAG,IAAI,IAAI,CAAC,CAAC,CAAE,KAAe,CAAC,OAAO,CAAA;gBAC1H,MAAM,IAAI,KAAK,CAAC,GAAG,MAAM,IAAI,GAAG,CAAC,QAAQ,KAAK,GAAG,EAAE,CAAC,CAAA;YACtD,CAAC;YACD,MAAM,OAAO,GAAG,GAAG,CAAC,MAAM,KAAK,GAAG,IAAI,GAAG,CAAC,MAAM,KAAK,GAAG,CAAA;YACxD,IAAI,OAAO,IAAI,KAAK,GAAG,MAAM,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;gBACzC,SAAQ,CAAC,qBAAqB;YAChC,CAAC;YACD,IAAI,GAAG,CAAC,EAAE,IAAI,KAAK,EAAE,CAAC;gBACpB,IAAI,CAAC,MAAM,GAAG,KAAK,CAAC,IAAI,CAAA;YAC1B,CAAC;YACD,MAAK;QACP,CAAC;QACD,IAAI,CAAC,GAAI,CAAC,EAAE,EAAE,CAAC;YACb,MAAM,MAAM,GAAG,GAAI,CAAC,MAAM,CAAA;YAC1B,MAAM,IAAI,GAAG,MAAM,KAAK,GAAG;gBACzB,CAAC,CAAC,mKAAmK;gBACrK,CAAC,CAAC,MAAM,KAAK,GAAG;oBACd,CAAC,CAAC,8EAA8E;oBAChF,CAAC,CAAC,MAAM,KAAK,GAAG;wBACd,CAAC,CAAC,kHAAkH;wBACpH,CAAC,CAAC,EAAE,CAAA;YACV,MAAM,IAAI,KAAK,CAAC,GAAG,MAAM,IAAI,GAAG,CAAC,QAAQ,UAAU,MAAM,GAAG,IAAI,EAAE,CAAC,CAAA;QACrE,CAAC;QACD,OAAO,GAAI,CAAA;IACb,CAAC;CACF;AAOD,SAAS,WAAW,CAAC,QAAgB,EAAE,QAAiB;IACtD,OAAO,SAAS,MAAM,CAAC,IAAI,CAAC,GAAG,QAAQ,IAAI,QAAQ,IAAI,EAAE,EAAE,EAAE,MAAM,CAAC,CAAC,QAAQ,CAAC,QAAQ,CAAC,EAAE,CAAA;AAC3F,CAAC;AAOD,MAAM,UAAU,GAAW;IACzB,WAAW,EAAE,CAAC,EAAE,EAAE,EAAE,EAAE,EAAE,CAAC,WAAW,CAAC,EAAE,EAAE,EAAE,CAAC;IAC5C,aAAa,EAAE,MAAM,CAAC,EAAE,CAAC,aAAa,CAAC,MAAwB,CAAC;CACjE,CAAA;AAED,4EAA4E;AAC5E,MAAM,OAAO,UAAU;IASF;IACA;IACA;IACA;IACA;IAZF,QAAQ,GAAG,IAAI,GAAG,EAAU,CAAA;IACrC,KAAK,GAAY,IAAI,CAAA;IACrB,MAAM,GAAG,KAAK,CAAA,CAAC,sDAAsD;IACrE,OAAO,GAAG,KAAK,CAAA;IACf,KAAK,GAAG,KAAK,CAAA,CAAC,4CAA4C;IAC1D,UAAU,GAAG,CAAC,CAAA,CAAC,wEAAwE;IAE/F,YACmB,MAAuD,EACvD,OAA6B,EAC7B,GAAQ,EACR,UAAkB,EAClB,SAAiB,UAAU;QAJ3B,WAAM,GAAN,MAAM,CAAiD;QACvD,YAAO,GAAP,OAAO,CAAsB;QAC7B,QAAG,GAAH,GAAG,CAAK;QACR,eAAU,GAAV,UAAU,CAAQ;QAClB,WAAM,GAAN,MAAM,CAAqB;IAC3C,CAAC;IAEJ,IAAI,QAAQ;QACV,OAAO,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAA;IAC3B,CAAC;IAED,+FAA+F;IAC/F,8DAA8D;IAC9D,KAAK,CAAC,aAAa,CAAC,SAAiB;QACnC,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC,YAAY,EAAE,CAAC;YAC/B,OAAM;QACR,CAAC;QACD,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,SAAS,CAAC,CAAA;QAC5B,IAAI,IAAI,CAAC,QAAQ,CAAC,IAAI,GAAG,CAAC,EAAE,CAAC;YAC3B,OAAM;QACR,CAAC;QACD,MAAM,UAAU,GAAG,EAAE,IAAI,CAAC,UAAU,CAAA;QACpC,IAAI,CAAC,MAAM,GAAG,KAAK,CAAA;QACnB,IAAI,CAAC,KAAK,GAAG,KAAK,CAAA;QAClB,IAAI,IAAI,CAAC,OAAO,CAAC,mBAAmB,EAAE,CAAC;YACrC,IAAI,CAAC;gBACH,IAAI,CAAC,MAAM,GAAG,CAAC,MAAM,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,IAAI,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC,KAAK,MAAM,CAAA;YACzE,CAAC;YAAC,OAAO,KAAK,EAAE,CAAC;gBACf,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,uDAAwD,KAAe,CAAC,OAAO,EAAE,EAAE,IAAI,CAAC,UAAU,CAAC,CAAA;YACnH,CAAC;YACD,IAAI,UAAU,KAAK,IAAI,CAAC,UAAU,EAAE,CAAC;gBACnC,OAAM,CAAC,2BAA2B;YACpC,CAAC;QACH,CAAC;QACD,IAAI,CAAC,KAAK,GAAG,IAAI,CAAC,MAAM,CAAC,WAAW,CAAC,GAAG,EAAE,CAAC,KAAK,IAAI,CAAC,SAAS,CAAC,UAAU,CAAC,EAAE,IAAI,CAAC,OAAO,CAAC,WAAW,CAAC,CAAA;QACrG,MAAM,IAAI,CAAC,IAAI,CAAC,UAAU,CAAC,CAAA;IAC7B,CAAC;IAED,yDAAyD;IACzD,KAAK,CAAC,WAAW,CAAC,SAAiB;QACjC,IAAI,CAAC,IAAI,CAAC,QAAQ,CAAC,MAAM,CAAC,SAAS,CAAC,IAAI,IAAI,CAAC,QAAQ,CAAC,IAAI,GAAG,CAAC,EAAE,CAAC;YAC/D,OAAM;QACR,CAAC;QACD,IAAI,CAAC,UAAU,EAAE,CAAA;QACjB,IAAI,CAAC,SAAS,EAAE,CAAA;QAChB,IAAI,IAAI,CAAC,OAAO,CAAC,mBAAmB,IAAI,IAAI,CAAC,MAAM,EAAE,CAAC;YACpD,IAAI,CAAC,MAAM,GAAG,KAAK,CAAA;YACnB,IAAI,CAAC;gBACH,MAAM,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,IAAI,CAAC,OAAO,CAAC,MAAM,CAAC,CAAA;gBAC5C,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,wDAAwD,EAAE,IAAI,CAAC,UAAU,CAAC,CAAA;YAC1F,CAAC;YAAC,OAAO,KAAK,EAAE,CAAC;gBACf,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,mCAAoC,KAAe,CAAC,OAAO,EAAE,EAAE,IAAI,CAAC,UAAU,CAAC,CAAA;YAC/F,CAAC;QACH,CAAC;aAAM,CAAC;YACN,IAAI,CAAC,GAAG,CAAC,KAAK,CAAC,2EAA2E,EAAE,IAAI,CAAC,UAAU,CAAC,CAAA;QAC9G,CAAC;IACH,CAAC;IAED,yFAAyF;IACzF,QAAQ;QACN,IAAI,CAAC,QAAQ,CAAC,KAAK,EAAE,CAAA;QACrB,IAAI,CAAC,UAAU,EAAE,CAAA;QACjB,IAAI,CAAC,SAAS,EAAE,CAAA;IAClB,CAAC;IAEO,SAAS;QACf,IAAI,IAAI,CAAC,KAAK,KAAK,IAAI,EAAE,CAAC;YACxB,IAAI,CAAC,MAAM,CAAC,aAAa,CAAC,IAAI,CAAC,KAAK,CAAC,CAAA;YACrC,IAAI,CAAC,KAAK,GAAG,IAAI,CAAA;QACnB,CAAC;IACH,CAAC;IAEO,KAAK,CAAC,IAAI,CAAC,UAAkB;QACnC,IAAI,CAAC;YACH,MAAM,KAAK,GAAG,MAAM,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC,MAAM,CAAC,CAAA;YACzD,IAAI,UAAU,KAAK,IAAI,CAAC,UAAU,EAAE,CAAC;gBACnC,OAAM;YACR,CAAC;YACD,IAAI,CAAC,KAAK,GAAG,IAAI,CAAA;YACjB,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,2CAA2C,KAAK,CAAC,WAAW,EAAE,IAAI,EAAE,IAAI,CAAC,UAAU,CAAC,CAAA;YAClG,IAAI,CAAC,OAAO,GAAG,KAAK,CAAA;QACtB,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACf,IAAI,CAAC,MAAM,CAAC,MAAM,EAAE,KAAc,CAAC,CAAA;QACrC,CAAC;IACH,CAAC;IAED,qGAAqG;IACrG,6FAA6F;IAC7F,8FAA8F;IAC9F,6CAA6C;IACrC,KAAK,CAAC,SAAS,CAAC,UAAkB;QACxC,IAAI,CAAC,IAAI,CAAC,KAAK,EAAE,CAAC;YAChB,OAAO,IAAI,CAAC,IAAI,CAAC,UAAU,CAAC,CAAA,CAAC,wDAAwD;QACvF,CAAC;QACD,IAAI,CAAC;YACH,MAAM,KAAK,GAAG,MAAM,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,IAAI,CAAC,OAAO,CAAC,MAAM,CAAC,CAAA;YAC1D,IAAI,UAAU,KAAK,IAAI,CAAC,UAAU,EAAE,CAAC;gBACnC,OAAM;YACR,CAAC;YACD,IAAI,KAAK,KAAK,MAAM,EAAE,CAAC;gBACrB,IAAI,CAAC,SAAS,EAAE,CAAA;gBAChB,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,yFAAyF,EAAE,IAAI,CAAC,UAAU,CAAC,CAAA;gBACzH,OAAM;YACR,CAAC;YACD,MAAM,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC,MAAM,CAAC,CAAA;YAC3C,IAAI,IAAI,CAAC,OAAO,EAAE,CAAC;gBACjB,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,sDAAsD,EAAE,IAAI,CAAC,UAAU,CAAC,CAAA;YACxF,CAAC;YACD,IAAI,CAAC,OAAO,GAAG,KAAK,CAAA;QACtB,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACf,IAAI,CAAC,MAAM,CAAC,YAAY,EAAE,KAAc,CAAC,CAAA;QAC3C,CAAC;IACH,CAAC;IAEO,MAAM,CAAC,IAA2B,EAAE,KAAY;QACtD,IAAI,CAAC,IAAI,CAAC,OAAO,EAAE,CAAC;YAClB,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,aAAa,IAAI,KAAK,MAAM,CAAC,CAAC,CAAC,iBAAiB,CAAC,CAAC,CAAC,uBAAuB,KAAK,KAAK,CAAC,OAAO,EAAE,EAAE,IAAI,CAAC,UAAU,CAAC,CAAA;QAChI,CAAC;QACD,IAAI,CAAC,OAAO,GAAG,IAAI,CAAA;IACrB,CAAC;CACF"}
1
+ {"version":3,"file":"gateway.js","sourceRoot":"","sources":["../src/gateway.ts"],"names":[],"mappings":"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"}
@@ -21,42 +21,30 @@
21
21
  <div id="menuWrapper" class="btn-group w-100 mb-0" role="group" aria-label="UI Menu" style="display: none">
22
22
  <button type="button" class="btn btn-primary" id="menuSettings">Settings</button>
23
23
  <button type="button" class="btn btn-primary" id="menuDevices">Devices</button>
24
- <button type="button" class="btn btn-primary mr-0" id="menuHome">Support</button>
24
+ <button type="button" class="btn btn-primary me-0" id="menuHome">Support</button>
25
25
  </div>
26
26
  <div id="disabledBanner" class="alert alert-secondary mb-0 mt-3" role="alert" style="display: none">
27
27
  Plugin is currently disabled
28
- <button id="disabledEnable" type="button" class="btn btn-link p-0 m-0 float-right">Enable</button>
28
+ <button id="disabledEnable" type="button" class="btn btn-link p-0 m-0 float-end">Enable</button>
29
29
  </div>
30
30
  <div id="pageDevices" class="mt-4" style="display: none">
31
- <div id="deviceInfo">
32
- <form>
33
- <div class="form-group">
34
- <select class="form-control" id="deviceSelect"></select>
35
- </div>
36
- </form>
37
- <table class="table w-100" id="deviceTable" style="display: none">
31
+ <div id="devicesStatus" class="alert mb-2" role="status" style="display: none"></div>
32
+ <div class="table-responsive">
33
+ <table class="table w-100" id="devicesTable" style="display: none">
38
34
  <thead>
39
35
  <tr class="table-active">
40
- <th scope="col" style="width: 40%">Device Name</th>
41
- <th scope="col" style="width: 60%" id="displayName"></th>
36
+ <th scope="col">Camera</th>
37
+ <th scope="col">Now</th>
38
+ <th scope="col">Model</th>
39
+ <th scope="col">Serial number</th>
40
+ <th scope="col">Firmware</th>
41
+ <th scope="col">Video</th>
42
42
  </tr>
43
43
  </thead>
44
- <tbody>
45
- <tr>
46
- <th scope="row">Serial Number</th>
47
- <td id="serialNumber"></td>
48
- </tr>
49
- <tr>
50
- <th scope="row">Model</th>
51
- <td id="model"></td>
52
- </tr>
53
- <tr>
54
- <th scope="row">Firmware Version</th>
55
- <td id="firmwareRevision"></td>
56
- </tr>
57
- </tbody>
44
+ <tbody id="devicesRows"></tbody>
58
45
  </table>
59
46
  </div>
47
+ <p class="muted" style="opacity: 0.7; font-size: 0.85rem">The cameras added to HomeKit on the Settings page, with what the gateway says about them right now.</p>
60
48
  </div>
61
49
  <div id="pageSettings" class="mt-4" style="display: none">
62
50
  <style>
@@ -68,13 +56,11 @@
68
56
  <div class="card">
69
57
  <div class="card-body">
70
58
  <h5 class="card-title">eufy NVR Gateway</h5>
71
- <div class="form-group mb-2">
59
+ <div class="mb-2">
72
60
  <label for="gwAddress">Gateway IP address</label>
73
61
  <div class="input-group">
74
62
  <input type="text" class="form-control" id="gwAddress" placeholder="192.168.1.10" autocomplete="off" />
75
- <div class="input-group-append">
76
- <button type="button" class="btn btn-primary m-0" id="gwDiscover">Find cameras</button>
77
- </div>
63
+ <button type="button" class="btn btn-primary m-0" id="gwDiscover">Find cameras</button>
78
64
  </div>
79
65
  <small class="form-text muted">The gateway's address, with its port if it isn't 8099 (e.g. 192.168.1.10:8099).</small>
80
66
  </div>
@@ -82,18 +68,11 @@
82
68
  <div id="gwRtspLogin" style="display: none" class="mt-2">
83
69
  <label>Stream login</label>
84
70
  <p class="muted mb-1">The gateway's stream login ("rtsp" in its config.json), the one your NVR uses. Homebridge plays the streams with it, and finds and wakes the cameras with it.</p>
85
- <div class="form-row">
86
- <div class="form-group col-sm-6 mb-1"><input type="text" class="form-control" id="gwRtspUsername" placeholder="Username" autocomplete="off" /></div>
87
- <div class="form-group col-sm-6 mb-1"><input type="password" class="form-control" id="gwRtspPassword" placeholder="Password" autocomplete="new-password" /></div>
71
+ <div class="row g-2">
72
+ <div class="col-sm-6 mb-1"><input type="text" class="form-control" id="gwRtspUsername" placeholder="Username" autocomplete="off" /></div>
73
+ <div class="col-sm-6 mb-1"><input type="password" class="form-control" id="gwRtspPassword" placeholder="Password" autocomplete="new-password" /></div>
88
74
  </div>
89
75
  </div>
90
- <div id="gwWebLogin" style="display: none" class="mt-2">
91
- <label>Web page login (gateways before 0.6.0)</label>
92
- <p class="muted mb-1">Only for gateways before 0.6.0, which don't accept the stream login for finding and waking cameras: the login of the gateway's web page ("web" in its config.json). Updating the gateway makes this unnecessary.</p>
93
- <div class="form-row">
94
- <div class="form-group col-sm-6 mb-1"><input type="text" class="form-control" id="gwUsername" placeholder="Username" autocomplete="off" /></div>
95
- <div class="form-group col-sm-6 mb-1"><input type="password" class="form-control" id="gwPassword" placeholder="Password" autocomplete="new-password" /></div>
96
- </div>
97
76
  </div>
98
77
  </div>
99
78
  </div>
@@ -147,8 +126,6 @@
147
126
  const gatewayForm = () => {
148
127
  const gateway = {
149
128
  url: $('gwAddress').value.trim(),
150
- username: $('gwUsername').value.trim(),
151
- password: $('gwPassword').value,
152
129
  rtspUsername: $('gwRtspUsername').value.trim(),
153
130
  rtspPassword: $('gwRtspPassword').value,
154
131
  };
@@ -158,13 +135,11 @@
158
135
 
159
136
  // Write the page's state into the plugin config (Homebridge's Save button stores it).
160
137
  const store = async () => {
161
- const gateway = gatewayForm();
138
+ const gateway = gatewayForm(); // never the web page's login: earlier versions could store it
162
139
  if (found) {
163
140
  gateway.url = found.url;
164
141
  if (found.rtspPort !== 8554) gateway.rtspPort = found.rtspPort;
165
142
  if (!found.rtspLogin) { delete gateway.rtspUsername; delete gateway.rtspPassword; }
166
- // The gateway's admin login is only kept when the gateway needs it (it refused the stream login).
167
- if (found.apiLogin !== 'web') { delete gateway.username; delete gateway.password; }
168
143
  }
169
144
  const others = (config.cameras || []).filter((camera) => !camera.gatewayCamera);
170
145
  const gatewayCameras = found
@@ -175,18 +150,19 @@
175
150
  };
176
151
 
177
152
  const toggle = (id, label, checked, disabled, onChange) => {
178
- const input = el('input', { type: 'checkbox', class: 'custom-control-input', id, checked, disabled });
153
+ // Bootstrap 5 (the Homebridge UI's): form-check form-switch keeps the switch and its text apart.
154
+ const input = el('input', { type: 'checkbox', class: 'form-check-input', role: 'switch', id, checked, disabled });
179
155
  input.addEventListener('change', () => onChange(input.checked));
180
- return el('div', { class: 'custom-control custom-switch' }, input, el('label', { class: 'custom-control-label', for: id, text: label }));
156
+ return el('div', { class: 'form-check form-switch mb-2' }, input, el('label', { class: 'form-check-label ps-1', for: id, text: label }));
181
157
  };
182
158
 
183
- const row = (label, value, mono) => el('div', { class: 'form-group mb-2' },
159
+ const row = (label, value, mono) => el('div', { class: 'mb-2' },
184
160
  el('label', { class: 'mb-0 muted', text: label }),
185
161
  el('div', { class: mono ? 'readonly' : '', text: value }));
186
162
 
187
163
  const cameraCard = (camera, index) => {
188
164
  const { discovered: d, config: c } = camera;
189
- const card = el('div', { class: `card ${camera.included ? '' : 'camera-off'}` });
165
+ const card = el('div', { class: `card mb-3${camera.included ? '' : ' camera-off'}` });
190
166
  const body = el('div', { class: 'card-body' });
191
167
  const details = el('div', { class: 'camera-details mt-3' });
192
168
 
@@ -214,7 +190,7 @@
214
190
  await store();
215
191
  }));
216
192
 
217
- const codec = el('select', { class: 'form-control', id: `cam${index}Codec` },
193
+ const codec = el('select', { class: 'form-select', id: `cam${index}Codec` },
218
194
  el('option', { value: '', text: `Automatic (now: ${d.codec.vcodec})` }),
219
195
  el('option', { value: 'copy', text: 'copy (no conversion)' }),
220
196
  el('option', { value: 'libx264', text: 'libx264 (convert to H.264)' }));
@@ -226,7 +202,7 @@
226
202
  });
227
203
  details.append(el('details', { class: 'mt-2' },
228
204
  el('summary', { text: 'Experimental – WIP' }),
229
- el('div', { class: 'form-group mt-2 mb-0' },
205
+ el('div', { class: 'mt-2 mb-0' },
230
206
  el('label', { for: `cam${index}Codec`, text: 'Video codec' }), codec,
231
207
  el('small', { class: 'form-text muted', text: `Automatic picks ${d.codec.vcodec}: ${d.codec.note} Picked again at every Homebridge start.` }))));
232
208
 
@@ -239,8 +215,7 @@
239
215
  const list = $('cameraList');
240
216
  list.innerHTML = '';
241
217
  if (found) {
242
- $('gwRtspLogin').style.display = found.rtspLogin || found.apiLogin === 'stream' ? 'block' : 'none';
243
- $('gwWebLogin').style.display = found.apiLogin === 'web' ? 'block' : 'none';
218
+ if (found.rtspLogin) $('gwRtspLogin').style.display = 'block';
244
219
  }
245
220
  if (!found) return;
246
221
  found.cameras.forEach((camera, index) => list.append(cameraCard(camera, index)));
@@ -258,26 +233,21 @@
258
233
  found = answer;
259
234
  $('gwAddress').value = answer.url.replace(/^http:\/\//, '');
260
235
  const count = answer.cameras.length;
261
- const via = answer.apiLogin === 'web' ? ' · signed in with the web page login (update the gateway to 0.6.0 or later so the stream login is enough)' : '';
262
236
  const missing = answer.rtspLogin && !$('gwRtspUsername').value.trim() ? ' · enter the stream login below: the streams need it' : '';
263
237
  status(count ? (missing ? 'warning' : 'success') : 'warning', count
264
- ? `Connected to eufy NVR Gateway ${answer.version} · ${count} camera${count === 1 ? '' : 's'}${via}${missing}`
238
+ ? `Connected to eufy NVR Gateway ${answer.version} · ${count} camera${count === 1 ? '' : 's'}${missing}`
265
239
  : `Connected to eufy NVR Gateway ${answer.version}, but it has no cameras yet: add them to its config.json first.`);
266
240
  render();
267
241
  await store();
268
242
  } catch (error) {
269
243
  const message = (error && error.message) || String(error);
270
244
  if (!/HTTP 401/.test(message)) return status('danger', `Can't reach the gateway: ${message}`);
271
- // The gateway wants a login: first the stream login; the web login only if that is refused.
245
+ // The gateway wants a login: its stream login.
272
246
  const stream = !!$('gwRtspUsername').value.trim();
273
- const web = !!$('gwUsername').value.trim();
274
247
  $('gwRtspLogin').style.display = 'block';
275
- if (stream) $('gwWebLogin').style.display = 'block';
276
248
  status('danger', !stream
277
249
  ? 'The gateway asks for a login: enter its stream login below ("rtsp" in its config.json).'
278
- : !web
279
- ? 'The gateway didn\'t accept the stream login. Check it; gateways before 0.6.0 accept only their web page login for this, which you can enter below.'
280
- : 'The gateway accepted neither login: check both.');
250
+ : 'The gateway didn\'t accept the stream login: check it. The gateway must be version 0.6.0 or later.');
281
251
  }
282
252
  };
283
253
 
@@ -294,16 +264,12 @@
294
264
  started = true;
295
265
  const gateway = config.gateway || {};
296
266
  $('gwAddress').value = (gateway.url || '').replace(/^http:\/\//, '');
297
- $('gwUsername').value = gateway.username || '';
298
- $('gwPassword').value = gateway.password || '';
299
267
  $('gwRtspUsername').value = gateway.rtspUsername || '';
300
268
  $('gwRtspPassword').value = gateway.rtspPassword || '';
301
269
  if (gateway.rtspUsername) $('gwRtspLogin').style.display = 'block';
302
- if (gateway.username) $('gwWebLogin').style.display = 'block';
303
270
  $('gwDiscover').addEventListener('click', discover);
304
271
  $('gwAddress').addEventListener('input', later);
305
272
  $('gwAddress').addEventListener('keydown', (event) => { if (event.key === 'Enter') { event.preventDefault(); discover(); } });
306
- for (const id of ['gwUsername', 'gwPassword']) $(id).addEventListener('input', later);
307
273
  for (const id of ['gwRtspUsername', 'gwRtspPassword']) $(id).addEventListener('input', later);
308
274
  }
309
275
  if ($('gwAddress').value.trim()) await discover();
@@ -340,42 +306,50 @@
340
306
  document.getElementById('pageSupport').style.display = 'none';
341
307
  document.getElementById('pageSettings').style.display = 'none';
342
308
  document.getElementById('pageDevices').style.display = 'block';
343
- const cachedAccessories =
344
- typeof homebridge.getCachedAccessories === 'function'
345
- ? await homebridge.getCachedAccessories()
346
- : await homebridge.request('/getCachedAccessories');
347
- if (cachedAccessories.length > 0) {
348
- cachedAccessories.sort((a, b) => {
349
- return a.displayName.toLowerCase() > b.displayName.toLowerCase() ? 1 : b.displayName.toLowerCase() > a.displayName.toLowerCase() ? -1 : 0;
350
- });
351
- }
352
- const deviceSelect = document.getElementById('deviceSelect');
353
- deviceSelect.innerHTML = '';
354
- cachedAccessories.forEach((a) => {
355
- const option = document.createElement('option');
356
- option.text = a.displayName;
357
- option.value = a.UUID;
358
- deviceSelect.add(option);
359
- });
360
- showDeviceInfo = async (UUID) => {
361
- homebridge.showSpinner();
362
- const thisAcc = cachedAccessories.find((x) => x.UUID === UUID);
363
- const context = thisAcc.context;
364
- document.getElementById('displayName').innerHTML = thisAcc.displayName;
365
- document.getElementById('serialNumber').innerHTML = context.serialNumber;
366
- document.getElementById('model').innerHTML = context.model;
367
- document.getElementById('firmwareRevision').innerHTML = context.firmwareRevision || 'N/A';
368
- document.getElementById('deviceTable').style.display = 'inline-table';
369
- homebridge.hideSpinner();
309
+ // HomeKit cameras are separate ("external") accessories, which Homebridge doesn't keep in its
310
+ // accessory cache: the list comes from the config and, live, from the gateway.
311
+ const note = (kind, text) => {
312
+ const box = document.getElementById('devicesStatus');
313
+ box.className = `alert alert-${kind} mb-2`;
314
+ box.textContent = text;
315
+ box.style.display = text ? 'block' : 'none';
370
316
  };
371
- deviceSelect.addEventListener('change', (event) => showDeviceInfo(event.target.value));
372
- if (cachedAccessories.length > 0) {
373
- showDeviceInfo(cachedAccessories[0].UUID);
374
- } else {
375
- const option = document.createElement('option');
376
- option.text = 'No Devices';
377
- deviceSelect.add(option);
378
- deviceSelect.disabled = true;
317
+ const config = (await homebridge.getPluginConfig())[0] || {};
318
+ const cameras = (config.cameras || []).filter((camera) => camera.gatewayCamera);
319
+ const rows = document.getElementById('devicesRows');
320
+ rows.innerHTML = '';
321
+ document.getElementById('devicesTable').style.display = cameras.length ? 'table' : 'none';
322
+ if (!cameras.length) {
323
+ note('secondary', 'No cameras yet: add them on the Settings page.');
324
+ return homebridge.hideSpinner();
325
+ }
326
+ let live = new Map();
327
+ try {
328
+ const answer = await homebridge.request('/discover', { gateway: config.gateway || {}, cameras: config.cameras });
329
+ live = new Map(answer.cameras.map((camera) => [camera.discovered.name, camera.discovered]));
330
+ note('', '');
331
+ } catch (error) {
332
+ note('warning', `Can't reach the gateway right now (${(error && error.message) || error}): showing the saved settings only.`);
333
+ }
334
+ const STATES = { IDLE: 'Asleep', WAKING: 'Waking up', LIVE: 'Live' };
335
+ for (const camera of cameras) {
336
+ const d = live.get(camera.gatewayCamera);
337
+ const now = !live.size ? '—' : !d ? 'Not on the gateway' : `${STATES[d.state] || d.state}${d.battery === null ? '' : ` · battery ${d.battery}%`}`;
338
+ const cells = [
339
+ camera.name === camera.gatewayCamera ? camera.name : `${camera.name} (${camera.gatewayCamera})`,
340
+ now,
341
+ camera.model || (d && d.branding.model) || '—',
342
+ camera.serialNumber || (d && d.serial) || '—',
343
+ camera.firmwareRevision || (d && d.branding.firmwareRevision) || '—',
344
+ d ? [d.resolution, d.video].filter(Boolean).join(' · ') : '—',
345
+ ];
346
+ const row = document.createElement('tr');
347
+ for (const text of cells) {
348
+ const cell = document.createElement('td');
349
+ cell.textContent = text;
350
+ row.append(cell);
351
+ }
352
+ rows.append(row);
379
353
  }
380
354
  homebridge.hideSpinner();
381
355
  };
@@ -1,44 +1,11 @@
1
- import fs from 'node:fs';
2
1
  import { HomebridgePluginUiServer, RequestError } from '@homebridge/plugin-ui-utils';
3
2
  import { cameraConfigFor, discover } from '../discovery.js';
4
- import { PLUGIN_NAME } from '../settings.js';
5
3
  class PluginUiServer extends HomebridgePluginUiServer {
6
4
  constructor() {
7
5
  super();
8
- /*
9
- A native method getCachedAccessories() was introduced in config-ui-x v4.37.0
10
- The following is for users who have a lower version of config-ui-x
11
- */
12
- this.onRequest('getCachedAccessories', () => {
13
- try {
14
- const plugin = PLUGIN_NAME;
15
- const devicesToReturn = [];
16
- // The path and file of the cached accessories
17
- const accFile = `${this.homebridgeStoragePath}/accessories/cachedAccessories`;
18
- // Check the file exists
19
- if (fs.existsSync(accFile)) {
20
- // read the cached accessories file
21
- const cachedAccessories = JSON.parse(fs.readFileSync(accFile, 'utf8'));
22
- cachedAccessories.forEach((accessory) => {
23
- // Check the accessory is from this plugin
24
- if (accessory.plugin === plugin) {
25
- // Add the cached accessory to the array
26
- devicesToReturn.push(accessory.accessory);
27
- }
28
- });
29
- }
30
- // Return the array
31
- return devicesToReturn;
32
- }
33
- catch {
34
- // Just return an empty accessory list in case of any errors
35
- return [];
36
- }
37
- });
38
6
  /*
39
7
  The settings page asks for a gateway's cameras here: the page runs in the browser, which can't
40
- call the gateway itself. Payload: { gateway: { url, username, password, rtspUsername,
41
- rtspPassword }, cameras: [the cameras in the current config] }. Answer: the gateway, and for
8
+ call the gateway itself. Payload: { gateway: { url, rtspUsername, rtspPassword },, cameras: [the cameras in the current config] }. Answer: the gateway, and for
42
9
  each of its cameras what was discovered and the camera config to save.
43
10
  */
44
11
  this.onRequest('/discover', async (payload) => {
@@ -1 +1 @@
1
- {"version":3,"file":"server.js","sourceRoot":"","sources":["../../src/homebridge-ui/server.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,MAAM,SAAS,CAAA;AAExB,OAAO,EAAE,wBAAwB,EAAE,YAAY,EAAE,MAAM,6BAA6B,CAAA;AAEpF,OAAO,EAAE,eAAe,EAAE,QAAQ,EAAE,MAAM,iBAAiB,CAAA;AAC3D,OAAO,EAAE,WAAW,EAAE,MAAM,gBAAgB,CAAA;AAE5C,MAAM,cAAe,SAAQ,wBAAwB;IACnD;QACE,KAAK,EAAE,CAAA;QACP;;;UAGE;QACF,IAAI,CAAC,SAAS,CAAC,sBAAsB,EAAE,GAAG,EAAE;YAC1C,IAAI,CAAC;gBACH,MAAM,MAAM,GAAG,WAAW,CAAA;gBAC1B,MAAM,eAAe,GAAG,EAAE,CAAA;gBAE1B,8CAA8C;gBAC9C,MAAM,OAAO,GAAG,GAAG,IAAI,CAAC,qBAAqB,gCAAgC,CAAA;gBAE7E,wBAAwB;gBACxB,IAAI,EAAE,CAAC,UAAU,CAAC,OAAO,CAAC,EAAE,CAAC;oBAC3B,mCAAmC;oBACnC,MAAM,iBAAiB,GAAU,IAAI,CAAC,KAAK,CAAC,EAAE,CAAC,YAAY,CAAC,OAAO,EAAE,MAAM,CAAC,CAAC,CAAA;oBAE7E,iBAAiB,CAAC,OAAO,CAAC,CAAC,SAAc,EAAE,EAAE;wBAC3C,0CAA0C;wBAC1C,IAAI,SAAS,CAAC,MAAM,KAAK,MAAM,EAAE,CAAC;4BAChC,wCAAwC;4BACxC,eAAe,CAAC,IAAI,CAAC,SAAS,CAAC,SAAkB,CAAC,CAAA;wBACpD,CAAC;oBACH,CAAC,CAAC,CAAA;gBACJ,CAAC;gBACD,mBAAmB;gBACnB,OAAO,eAAe,CAAA;YACxB,CAAC;YAAC,MAAM,CAAC;gBACP,4DAA4D;gBAC5D,OAAO,EAAE,CAAA;YACX,CAAC;QACH,CAAC,CAAC,CAAA;QACF;;;;;UAKE;QACF,IAAI,CAAC,SAAS,CAAC,WAAW,EAAE,KAAK,EAAE,OAAuE,EAAE,EAAE;YAC5G,IAAI,CAAC;gBACH,MAAM,SAAS,GAAG,MAAM,QAAQ,CAAC,OAAO,CAAC,OAAO,IAAI,EAAE,CAAC,CAAA;gBACvD,MAAM,UAAU,GAAG,CAAC,OAAO,CAAC,OAAO,IAAI,EAAE,CAAC,CAAC,MAAM,CAAC,MAAM,CAAC,EAAE,CAAC,MAAM,CAAC,aAAa,CAAC,CAAA;gBACjF,OAAO;oBACL,GAAG,SAAS;oBACZ,OAAO,EAAE,SAAS,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC,MAAM,EAAE,EAAE;wBACxC,MAAM,QAAQ,GAAG,UAAU,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,aAAa,KAAK,MAAM,CAAC,IAAI,CAAC,CAAA;wBACtE,OAAO;4BACL,UAAU,EAAE,MAAM;4BAClB,MAAM,EAAE,eAAe,CAAC,MAAM,EAAE,QAAQ,CAAC;4BACzC,0EAA0E;4BAC1E,QAAQ,EAAE,UAAU,CAAC,MAAM,KAAK,CAAC,IAAI,CAAC,CAAC,QAAQ;yBAChD,CAAA;oBACH,CAAC,CAAC;iBACH,CAAA;YACH,CAAC;YAAC,OAAO,KAAK,EAAE,CAAC;gBACf,MAAM,IAAI,YAAY,CAAE,KAAe,CAAC,OAAO,EAAE,EAAE,MAAM,EAAE,GAAG,EAAE,CAAC,CAAA;YACnE,CAAC;QACH,CAAC,CAAC,CAAA;QACF,IAAI,CAAC,KAAK,EAAE,CAAA;IACd,CAAC;CACF;AAED,SAAS,mBAAmB;IAC1B,OAAO,IAAI,cAAc,EAAE,CAAA;AAC7B,CAAC;AAED,mBAAmB,EAAE,CAAA"}
1
+ {"version":3,"file":"server.js","sourceRoot":"","sources":["../../src/homebridge-ui/server.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,wBAAwB,EAAE,YAAY,EAAE,MAAM,6BAA6B,CAAA;AAEpF,OAAO,EAAE,eAAe,EAAE,QAAQ,EAAE,MAAM,iBAAiB,CAAA;AAE3D,MAAM,cAAe,SAAQ,wBAAwB;IACnD;QACE,KAAK,EAAE,CAAA;QACP;;;;UAIE;QACF,IAAI,CAAC,SAAS,CAAC,WAAW,EAAE,KAAK,EAAE,OAAuE,EAAE,EAAE;YAC5G,IAAI,CAAC;gBACH,MAAM,SAAS,GAAG,MAAM,QAAQ,CAAC,OAAO,CAAC,OAAO,IAAI,EAAE,CAAC,CAAA;gBACvD,MAAM,UAAU,GAAG,CAAC,OAAO,CAAC,OAAO,IAAI,EAAE,CAAC,CAAC,MAAM,CAAC,MAAM,CAAC,EAAE,CAAC,MAAM,CAAC,aAAa,CAAC,CAAA;gBACjF,OAAO;oBACL,GAAG,SAAS;oBACZ,OAAO,EAAE,SAAS,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC,MAAM,EAAE,EAAE;wBACxC,MAAM,QAAQ,GAAG,UAAU,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,aAAa,KAAK,MAAM,CAAC,IAAI,CAAC,CAAA;wBACtE,OAAO;4BACL,UAAU,EAAE,MAAM;4BAClB,MAAM,EAAE,eAAe,CAAC,MAAM,EAAE,QAAQ,CAAC;4BACzC,0EAA0E;4BAC1E,QAAQ,EAAE,UAAU,CAAC,MAAM,KAAK,CAAC,IAAI,CAAC,CAAC,QAAQ;yBAChD,CAAA;oBACH,CAAC,CAAC;iBACH,CAAA;YACH,CAAC;YAAC,OAAO,KAAK,EAAE,CAAC;gBACf,MAAM,IAAI,YAAY,CAAE,KAAe,CAAC,OAAO,EAAE,EAAE,MAAM,EAAE,GAAG,EAAE,CAAC,CAAA;YACnE,CAAC;QACH,CAAC,CAAC,CAAA;QACF,IAAI,CAAC,KAAK,EAAE,CAAA;IACd,CAAC;CACF;AAED,SAAS,mBAAmB;IAC1B,OAAO,IAAI,cAAc,EAAE,CAAA;AAC7B,CAAC;AAED,mBAAmB,EAAE,CAAA"}
package/dist/platform.js CHANGED
@@ -97,7 +97,7 @@ export class FfmpegPlatform {
97
97
  options: {
98
98
  camera: cameraConfig.gatewayCamera,
99
99
  wakeOnStream: cameraConfig.wakeOnStream ?? true,
100
- sleepWhenStreamEnds: cameraConfig.sleepWhenStreamEnds ?? false,
100
+ sleepWhenStreamEnds: cameraConfig.sleepWhenStreamEnds ?? true,
101
101
  keepAliveMs: DEFAULT_KEEP_ALIVE_MS,
102
102
  },
103
103
  };
@@ -1 +1 @@
1
- {"version":3,"file":"platform.js","sourceRoot":"","sources":["../src/platform.ts"],"names":[],"mappings":"AAQA,OAAO,IAAI,MAAM,WAAW,CAAA;AAG5B,OAAO,IAAI,MAAM,MAAM,CAAA;AAEvB,OAAO,EAAE,WAAW,EAAE,QAAQ,EAAE,MAAM,gBAAgB,CAAA;AACtD,OAAO,EAAE,qBAAqB,EAAE,aAAa,EAAE,cAAc,EAAE,MAAM,cAAc,CAAA;AACnF,OAAO,EAAE,MAAM,EAAE,MAAM,aAAa,CAAA;AACpC,OAAO,EAAE,UAAU,EAAE,aAAa,EAAE,WAAW,EAAE,MAAM,eAAe,CAAA;AACtE,OAAO,EAAE,iBAAiB,EAAE,MAAM,wBAAwB,CAAA;AAE1D,MAAM,OAAO,GAAG,UAAU,EAAE,CAAA;AAE5B,MAAM,OAAO,cAAc;IACR,GAAG,CAAQ;IACX,GAAG,CAAK;IACR,MAAM,CAAsB;IAC5B,aAAa,GAA8B,IAAI,GAAG,EAAE,CAAA;IACpD,iBAAiB,GAA6B,EAAE,CAAA;IAChD,WAAW,GAA6B,EAAE,CAAA;IAC1C,YAAY,GAAgC,IAAI,GAAG,EAAE,CAAA;IACrD,cAAc,GAAgC,IAAI,GAAG,EAAE,CAAA;IACvD,WAAW,GAAgD,IAAI,GAAG,EAAE,CAAA;IAC7E,OAAO,GAAyB,IAAI,CAAA;IAE5C,YAAY,GAAY,EAAE,MAAsB,EAAE,GAAQ;QACxD,IAAI,CAAC,GAAG,GAAG,IAAI,MAAM,CAAC,GAAG,CAAC,CAAA;QAC1B,IAAI,CAAC,GAAG,GAAG,GAAG,CAAA;QACd,IAAI,CAAC,MAAM,GAAG,MAA8B,CAAA;QAE5C,IAAI,CAAC,MAAM,CAAC,OAAO,EAAE,OAAO,CAAC,CAAC,YAA0B,EAAE,EAAE;YAC1D,IAAI,KAAK,GAAG,KAAK,CAAA;YAEjB,IAAI,CAAC,YAAY,CAAC,IAAI,EAAE,CAAC;gBACvB,IAAI,CAAC,GAAG,CAAC,KAAK,CAAC,0EAA0E,CAAC,CAAA;gBAC1F,YAAY,CAAC,IAAI,GAAG,UAAU,IAAI,CAAC,aAAa,CAAC,IAAI,GAAG,CAAC,EAAE,CAAA;gBAC3D,KAAK,GAAG,KAAK,CAAA;YACf,CAAC;YACD,IAAI,YAAY,CAAC,aAAa,IAAI,CAAC,IAAI,CAAC,UAAU,CAAC,YAAY,CAAC,EAAE,CAAC;gBACjE,KAAK,GAAG,IAAI,CAAA;YACd,CAAC;YACD,IAAI,CAAC,YAAY,CAAC,WAAW,EAAE,CAAC;gBAC9B,IAAI,CAAC,GAAG,CAAC,KAAK,CAAC,kFAAkF,EAAE,YAAY,CAAC,IAAI,CAAC,CAAA;gBACrH,KAAK,GAAG,IAAI,CAAA;YACd,CAAC;iBAAM,CAAC;gBACN,IAAI,CAAC,YAAY,CAAC,WAAW,CAAC,MAAM,EAAE,CAAC;oBACrC,IAAI,CAAC,GAAG,CAAC,KAAK,CAAC,6EAA6E,EAAE,YAAY,CAAC,IAAI,CAAC,CAAA;oBAChH,KAAK,GAAG,IAAI,CAAA;gBACd,CAAC;qBAAM,CAAC;oBACN,MAAM,UAAU,GAAG,YAAY,CAAC,WAAW,CAAC,MAAM,CAAC,KAAK,CAAC,KAAK,CAAC,CAAA;oBAC/D,IAAI,CAAC,UAAU,CAAC,QAAQ,CAAC,IAAI,CAAC,EAAE,CAAC;wBAC/B,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,yEAAyE,EAAE,YAAY,CAAC,IAAI,CAAC,CAAA;oBAC7G,CAAC;gBACH,CAAC;gBACD,IAAI,YAAY,CAAC,WAAW,CAAC,gBAAgB,EAAE,CAAC;oBAC9C,MAAM,SAAS,GAAG,YAAY,CAAC,WAAW,CAAC,gBAAgB,CAAC,KAAK,CAAC,KAAK,CAAC,CAAA;oBACxE,IAAI,CAAC,SAAS,CAAC,QAAQ,CAAC,IAAI,CAAC,EAAE,CAAC;wBAC9B,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,mFAAmF,EAAE,YAAY,CAAC,IAAI,CAAC,CAAA;oBACvH,CAAC;gBACH,CAAC;gBACD,IAAI,YAAY,CAAC,WAAW,CAAC,MAAM,KAAK,MAAM,IAAI,YAAY,CAAC,WAAW,CAAC,WAAW,EAAE,CAAC;oBACvF,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,oFAAoF,EAAE,YAAY,CAAC,IAAI,CAAC,CAAA;gBACxH,CAAC;YACH,CAAC;YAED,IAAI,CAAC,KAAK,EAAE,CAAC;gBACX,MAAM,IAAI,GAAG,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,IAAI,CAAC,QAAQ,CAAC,YAAY,CAAC,IAAI,IAAI,UAAU,IAAI,CAAC,aAAa,CAAC,IAAI,GAAG,CAAC,EAAE,CAAC,CAAA;gBACrG,IAAI,IAAI,CAAC,aAAa,CAAC,GAAG,CAAC,IAAI,CAAC,EAAE,CAAC;oBACjC,8BAA8B;oBAC9B,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,oFAAoF,EAAE,YAAY,CAAC,IAAI,CAAC,CAAA;gBACxH,CAAC;qBAAM,CAAC;oBACN,IAAI,CAAC,aAAa,CAAC,GAAG,CAAC,IAAI,EAAE,YAAY,CAAC,CAAA;gBAC5C,CAAC;YACH,CAAC;QACH,CAAC,CAAC,CAAA;QAEF,GAAG,CAAC,EAAE,2DAAgC,IAAI,CAAC,kBAAkB,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAA;IAC3E,CAAC;IAED,6FAA6F;IAC7F,6EAA6E;IACrE,UAAU,CAAC,YAA0B;QAC3C,IAAI,CAAC,IAAI,CAAC,OAAO,EAAE,CAAC;YAClB,MAAM,OAAO,GAAG,cAAc,CAAC,IAAI,CAAC,MAAM,CAAC,OAAO,CAAC,CAAA;YACnD,IAAI,OAAO,EAAE,CAAC;gBACZ,IAAI,CAAC,GAAG,CAAC,KAAK,CAAC,+BAA+B,OAAO,gCAAgC,EAAE,YAAY,CAAC,IAAI,CAAC,CAAA;gBACzG,OAAO,KAAK,CAAA;YACd,CAAC;YACD,IAAI,CAAC,OAAO,GAAG,IAAI,aAAa,CAAC,IAAI,CAAC,MAAM,CAAC,OAAQ,CAAC,CAAA;QACxD,CAAC;QACD,MAAM,MAAM,GAAG,YAAY,CAAC,aAAc,CAAA;QAC1C,YAAY,CAAC,WAAW,KAAK,EAAE,CAAA;QAC/B,IAAI,CAAC,YAAY,CAAC,WAAW,CAAC,MAAM,EAAE,CAAC;YACrC,YAAY,CAAC,WAAW,CAAC,MAAM,GAAG,IAAI,CAAC,OAAO,CAAC,YAAY,CAAC,MAAM,CAAC,CAAA;YACnE,IAAI,CAAC,GAAG,CAAC,KAAK,CAAC,4BAA4B,IAAI,CAAC,OAAO,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC,OAAO,CAAC,aAAa,EAAE,QAAQ,CAAC,EAAE,EAAE,YAAY,CAAC,IAAI,CAAC,CAAA;QAChI,CAAC;QACD,OAAO,IAAI,CAAA;IACb,CAAC;IAEO,aAAa,CAAC,YAA0B;QAC9C,IAAI,CAAC,YAAY,CAAC,aAAa,IAAI,CAAC,IAAI,CAAC,OAAO,EAAE,CAAC;YACjD,OAAO,SAAS,CAAA;QAClB,CAAC;QACD,OAAO;YACL,MAAM,EAAE,IAAI,CAAC,OAAO;YACpB,OAAO,EAAE;gBACP,MAAM,EAAE,YAAY,CAAC,aAAa;gBAClC,YAAY,EAAE,YAAY,CAAC,YAAY,IAAI,IAAI;gBAC/C,mBAAmB,EAAE,YAAY,CAAC,mBAAmB,IAAI,KAAK;gBAC9D,WAAW,EAAE,qBAAqB;aACnC;SACF,CAAA;IACH,CAAC;IAED,aAAa,CAAC,KAAa,EAAE,OAAe,EAAE,OAAmB;QAC/D,MAAM,UAAU,GAAG,IAAI,CAAC,WAAW,CAAC,GAAG,CAAC,KAAK,CAAC,IAAI,IAAI,GAAG,EAAE,CAAA;QAC3D,MAAM,WAAW,GAAG,UAAU,CAAC,GAAG,CAAC,OAAO,CAAC,IAAI,EAAE,CAAA;QACjD,WAAW,CAAC,IAAI,CAAC,OAAO,CAAC,CAAA;QACzB,UAAU,CAAC,GAAG,CAAC,OAAO,EAAE,WAAW,CAAC,CAAA;QACpC,IAAI,CAAC,WAAW,CAAC,GAAG,CAAC,KAAK,EAAE,UAAU,CAAC,CAAA;IACzC,CAAC;IAED,cAAc,CAAC,SAA4B,EAAE,YAA0B;QACrE,SAAS,CAAC,EAAE,mDAAkC,GAAG,EAAE;YACjD,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,qBAAqB,EAAE,SAAS,CAAC,WAAW,CAAC,CAAA;QAC7D,CAAC,CAAC,CAAA;QAEF,MAAM,OAAO,GAAG,SAAS,CAAC,UAAU,CAAC,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,OAAO,CAAC,oBAAoB,CAAC,CAAA;QAC/E,IAAI,OAAO,EAAE,CAAC;YACZ,OAAO,CAAC,iBAAiB,CAAC,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,cAAc,CAAC,YAAY,EAAE,YAAY,CAAC,YAAY,IAAI,YAAY,CAAC,CAAA;YAC9G,OAAO,CAAC,iBAAiB,CAAC,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,cAAc,CAAC,KAAK,EAAE,YAAY,CAAC,KAAK,IAAI,eAAe,CAAC,CAAA;YACnG,OAAO,CAAC,iBAAiB,CAAC,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,cAAc,CAAC,YAAY,EAAE,YAAY,CAAC,YAAY,IAAI,cAAc,CAAC,CAAA;YAChH,OAAO,CAAC,iBAAiB,CAAC,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,cAAc,CAAC,gBAAgB,EAAE,YAAY,CAAC,gBAAgB,IAAI,OAAO,CAAC,CAAA;QACnH,CAAC;QAED,MAAM,YAAY,GAAG,SAAS,CAAC,UAAU,CAAC,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,OAAO,CAAC,YAAY,CAAC,CAAA;QAC5E,MAAM,QAAQ,GAAG,SAAS,CAAC,UAAU,CAAC,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,OAAO,CAAC,QAAQ,CAAC,CAAA;QACpE,MAAM,eAAe,GAAG,SAAS,CAAC,cAAc,CAAC,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,OAAO,CAAC,MAAM,EAAE,iBAAiB,CAAC,CAAA;QAChG,MAAM,aAAa,GAAG,SAAS,CAAC,cAAc,CAAC,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,OAAO,CAAC,MAAM,EAAE,eAAe,CAAC,CAAA;QAC5F,MAAM,cAAc,GAAG,SAAS,CAAC,cAAc,CAAC,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,OAAO,CAAC,2BAA2B,EAAE,gBAAgB,CAAC,CAAA;QAEnH,IAAI,YAAY,EAAE,CAAC;YACjB,SAAS,CAAC,aAAa,CAAC,YAAY,CAAC,CAAA;QACvC,CAAC;QACD,IAAI,QAAQ,EAAE,CAAC;YACb,SAAS,CAAC,aAAa,CAAC,QAAQ,CAAC,CAAA;QACnC,CAAC;QACD,IAAI,eAAe,EAAE,CAAC;YACpB,SAAS,CAAC,aAAa,CAAC,eAAe,CAAC,CAAA;QAC1C,CAAC;QACD,IAAI,aAAa,EAAE,CAAC;YAClB,SAAS,CAAC,aAAa,CAAC,aAAa,CAAC,CAAA;QACxC,CAAC;QACD,IAAI,cAAc,EAAE,CAAC;YACnB,SAAS,CAAC,aAAa,CAAC,cAAc,CAAC,CAAA;QACzC,CAAC;QAED,MAAM,QAAQ,GAAG,IAAI,iBAAiB,CAAC,IAAI,CAAC,GAAG,EAAE,YAAY,EAAE,IAAI,CAAC,GAAG,EAAE,IAAI,CAAC,GAAG,CAAC,GAAG,EAAE,SAAS,EAAE,IAAI,CAAC,MAAM,CAAC,cAAc,EAAE,IAAI,CAAC,aAAa,CAAC,YAAY,CAAC,CAAC,CAAA;QAE/J,SAAS,CAAC,mBAAmB,CAAC,QAAQ,CAAC,UAAU,CAAC,CAAA;QAElD,IAAI,YAAY,CAAC,WAAW,EAAE,SAAS,EAAE,CAAC;YACxC,IAAI,CAAC,GAAG,CAAC,KAAK,CAAC,uBAAuB,EAAE,YAAY,CAAC,IAAI,CAAC,CAAA;YAC1D,IAAI,QAAQ,CAAC,iBAAiB,EAAE,CAAC;gBAC/B,QAAQ,CAAC,iBAAiB,CAAC,cAAc,EAAE,CAAA;YAC7C,CAAC;QACH,CAAC;QAED,2GAA2G;QAC3G,IAAI,YAAY,CAAC,MAAM,EAAE,CAAC;YACxB,IAAI,CAAC,GAAG,CAAC,KAAK,CAAC,kBAAkB,EAAE,YAAY,CAAC,IAAI,CAAC,CAAA;YACrD,MAAM,YAAY,GAAG,IAAI,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,OAAO,CAAC,YAAY,CAAC,YAAY,CAAC,IAAI,CAAC,CAAA;YAE7E,IAAI,CAAC,SAAS,CAAC,UAAU,CAAC,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,OAAO,CAAC,YAAY,CAAC,EAAE,CAAC;gBAC7D,SAAS,CAAC,UAAU,CAAC,YAAY,CAAC,CAAA;YACpC,CAAC;iBAAM,CAAC;gBACN,IAAI,CAAC,GAAG,CAAC,KAAK,CAAC,6BAA6B,EAAE,YAAY,CAAC,IAAI,CAAC,CAAA;YAClE,CAAC;YACD,IAAI,YAAY,CAAC,QAAQ,EAAE,CAAC;gBAC1B,MAAM,aAAa,GAAG,IAAI,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,OAAO,CAAC,MAAM,CAAC,GAAG,YAAY,CAAC,IAAI,iBAAiB,EAAE,eAAe,CAAC,CAAA;gBAC7G,aAAa;qBACV,iBAAiB,CAAC,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,cAAc,CAAC,EAAE,CAAC;qBACjD,EAAE,2CAA+B,CAAC,KAA0B,EAAE,QAAmC,EAAE,EAAE;oBACpG,IAAI,CAAC,aAAa,CAAC,SAAS,EAAE,KAAgB,EAAE,CAAC,CAAC,CAAA;oBAClD,QAAQ,EAAE,CAAA;gBACZ,CAAC,CAAC,CAAA;gBACJ,SAAS,CAAC,UAAU,CAAC,aAAa,CAAC,CAAA;YACrC,CAAC;QACH,CAAC;QAED,yGAAyG;QACzG,IAAI,YAAY,CAAC,QAAQ,EAAE,CAAC;YAC1B,MAAM,QAAQ,GAAG,IAAI,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,OAAO,CAAC,QAAQ,CAAC,GAAG,YAAY,CAAC,IAAI,WAAW,CAAC,CAAA;YACnF,IAAI,CAAC,SAAS,CAAC,UAAU,CAAC,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,OAAO,CAAC,QAAQ,CAAC,EAAE,CAAC;gBACzD,SAAS,CAAC,UAAU,CAAC,QAAQ,CAAC,CAAA;YAChC,CAAC;iBAAM,CAAC;gBACN,IAAI,CAAC,GAAG,CAAC,KAAK,CAAC,+BAA+B,EAAE,YAAY,CAAC,IAAI,CAAC,CAAA;YACpE,CAAC;YACD,IAAI,YAAY,CAAC,QAAQ,EAAE,CAAC;gBAC1B,MAAM,eAAe,GAAG,IAAI,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,OAAO,CAAC,MAAM,CAAC,GAAG,YAAY,CAAC,IAAI,mBAAmB,EAAE,iBAAiB,CAAC,CAAA;gBACnH,eAAe;qBACZ,iBAAiB,CAAC,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,cAAc,CAAC,EAAE,CAAC;qBACjD,EAAE,2CAA+B,CAAC,KAA0B,EAAE,QAAmC,EAAE,EAAE;oBACpG,IAAI,CAAC,eAAe,CAAC,SAAS,EAAE,KAAgB,CAAC,CAAA;oBACjD,QAAQ,EAAE,CAAA;gBACZ,CAAC,CAAC,CAAA;gBACJ,SAAS,CAAC,UAAU,CAAC,eAAe,CAAC,CAAA;YACvC,CAAC;QACH,CAAC;QACD;;;;;MAKF;QACE,IAAI,IAAI,CAAC,MAAM,CAAC,IAAI,EAAE,CAAC;YACrB,IAAI,YAAY,CAAC,IAAI,EAAE,CAAC;gBACtB,IAAI,YAAY,CAAC,IAAI,CAAC,WAAW,EAAE,CAAC;oBAClC,IAAI,CAAC,aAAa,CAAC,YAAY,CAAC,IAAI,CAAC,WAAW,EAAE,YAAY,CAAC,IAAI,CAAC,aAAa,IAAI,YAAY,CAAC,IAAK,EAAE,EAAE,SAAS,EAAE,MAAM,EAAE,IAAI,EAAE,QAAQ,EAAE,KAAK,EAAE,CAAC,CAAA;gBACxJ,CAAC;gBACD,IAAI,YAAY,CAAC,IAAI,CAAC,gBAAgB,EAAE,CAAC;oBACvC,IAAI,CAAC,aAAa,CAAC,YAAY,CAAC,IAAI,CAAC,gBAAgB,EAAE,YAAY,CAAC,IAAI,CAAC,kBAAkB,IAAI,YAAY,CAAC,IAAK,EAAE,EAAE,SAAS,EAAE,MAAM,EAAE,KAAK,EAAE,QAAQ,EAAE,KAAK,EAAE,CAAC,CAAA;gBACnK,CAAC;gBACD,IAAI,YAAY,CAAC,IAAI,CAAC,aAAa,EAAE,CAAC;oBACpC,IAAI,CAAC,aAAa,CAAC,YAAY,CAAC,IAAI,CAAC,aAAa,EAAE,YAAY,CAAC,IAAI,CAAC,eAAe,IAAI,YAAY,CAAC,IAAK,EAAE,EAAE,SAAS,EAAE,MAAM,EAAE,IAAI,EAAE,QAAQ,EAAE,IAAI,EAAE,CAAC,CAAA;gBAC3J,CAAC;YACH,CAAC;QACH,CAAC;IACH,CAAC;IAED,kBAAkB,CAAC,SAA4B;QAC7C,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,yCAAyC,EAAE,SAAS,CAAC,WAAW,CAAC,CAAA;QAE/E,MAAM,YAAY,GAAG,IAAI,CAAC,aAAa,CAAC,GAAG,CAAC,SAAS,CAAC,IAAI,CAAC,CAAA;QAE3D,IAAI,YAAY,EAAE,CAAC;YACjB,IAAI,CAAC,cAAc,CAAC,SAAS,EAAE,YAAY,CAAC,CAAA;QAC9C,CAAC;QAED,IAAI,CAAC,iBAAiB,CAAC,IAAI,CAAC,SAAS,CAAC,CAAA;IACxC,CAAC;IAEO,eAAe,CAAC,SAA4B,EAAE,MAAM,GAAG,IAAI;QACjE,MAAM,QAAQ,GAAG,SAAS,CAAC,UAAU,CAAC,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,OAAO,CAAC,QAAQ,CAAC,CAAA;QACpE,IAAI,QAAQ,EAAE,CAAC;YACb,IAAI,CAAC,GAAG,CAAC,KAAK,CAAC,mBAAmB,MAAM,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,MAAM,EAAE,EAAE,SAAS,CAAC,WAAW,CAAC,CAAA;YACnF,MAAM,OAAO,GAAG,IAAI,CAAC,cAAc,CAAC,GAAG,CAAC,SAAS,CAAC,IAAI,CAAC,CAAA;YACvD,IAAI,OAAO,EAAE,CAAC;gBACZ,YAAY,CAAC,OAAO,CAAC,CAAA;gBACrB,IAAI,CAAC,cAAc,CAAC,MAAM,CAAC,SAAS,CAAC,IAAI,CAAC,CAAA;YAC5C,CAAC;YACD,MAAM,eAAe,GAAG,SAAS,CAAC,cAAc,CAAC,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,OAAO,CAAC,MAAM,EAAE,iBAAiB,CAAC,CAAA;YAChG,IAAI,MAAM,EAAE,CAAC;gBACX,QAAQ,CAAC,oBAAoB,CAAC,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,cAAc,CAAC,uBAAuB,EAAE,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,cAAc,CAAC,uBAAuB,CAAC,YAAY,CAAC,CAAA;gBACpJ,IAAI,eAAe,EAAE,CAAC;oBACpB,eAAe,CAAC,oBAAoB,CAAC,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,cAAc,CAAC,EAAE,EAAE,IAAI,CAAC,CAAA;oBAC1E,IAAI,aAAa,GAAG,IAAI,CAAC,aAAa,CAAC,GAAG,CAAC,SAAS,CAAC,IAAI,CAAC,EAAE,aAAa,CAAA;oBACzE,aAAa,GAAG,aAAa,IAAI,aAAa,GAAG,CAAC,CAAC,CAAC,CAAC,aAAa,CAAC,CAAC,CAAC,CAAC,CAAA;oBACtE,MAAM,KAAK,GAAG,UAAU,CAAC,GAAG,EAAE;wBAC5B,IAAI,CAAC,GAAG,CAAC,KAAK,CAAC,2BAA2B,EAAE,SAAS,CAAC,WAAW,CAAC,CAAA;wBAClE,IAAI,CAAC,cAAc,CAAC,MAAM,CAAC,SAAS,CAAC,IAAI,CAAC,CAAA;wBAC1C,eAAe,CAAC,oBAAoB,CAAC,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,cAAc,CAAC,EAAE,EAAE,KAAK,CAAC,CAAA;oBAC7E,CAAC,EAAE,aAAa,GAAG,IAAI,CAAC,CAAA;oBACxB,IAAI,CAAC,cAAc,CAAC,GAAG,CAAC,SAAS,CAAC,IAAI,EAAE,KAAK,CAAC,CAAA;gBAChD,CAAC;gBACD,OAAO;oBACL,KAAK,EAAE,KAAK;oBACZ,OAAO,EAAE,uBAAuB;iBACjC,CAAA;YACH,CAAC;iBAAM,CAAC;gBACN,IAAI,eAAe,EAAE,CAAC;oBACpB,eAAe,CAAC,oBAAoB,CAAC,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,cAAc,CAAC,EAAE,EAAE,KAAK,CAAC,CAAA;gBAC7E,CAAC;gBACD,OAAO;oBACL,KAAK,EAAE,KAAK;oBACZ,OAAO,EAAE,wBAAwB;iBAClC,CAAA;YACH,CAAC;QACH,CAAC;aAAM,CAAC;YACN,OAAO;gBACL,KAAK,EAAE,IAAI;gBACX,OAAO,EAAE,0CAA0C;aACpD,CAAA;QACH,CAAC;IACH,CAAC;IAEO,aAAa,CAAC,SAA4B,EAAE,MAAM,GAAG,IAAI,EAAE,cAAc,GAAG,CAAC;QACnF,MAAM,YAAY,GAAG,SAAS,CAAC,UAAU,CAAC,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,OAAO,CAAC,YAAY,CAAC,CAAA;QAC5E,IAAI,YAAY,EAAE,CAAC;YACjB,IAAI,CAAC,GAAG,CAAC,KAAK,CAAC,wBAAwB,MAAM,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,MAAM,EAAE,EAAE,SAAS,CAAC,WAAW,CAAC,CAAA;YACxF,MAAM,OAAO,GAAG,IAAI,CAAC,YAAY,CAAC,GAAG,CAAC,SAAS,CAAC,IAAI,CAAC,CAAA;YACrD,IAAI,OAAO,EAAE,CAAC;gBACZ,YAAY,CAAC,OAAO,CAAC,CAAA;gBACrB,IAAI,CAAC,YAAY,CAAC,MAAM,CAAC,SAAS,CAAC,IAAI,CAAC,CAAA;YAC1C,CAAC;YACD,MAAM,aAAa,GAAG,SAAS,CAAC,cAAc,CAAC,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,OAAO,CAAC,MAAM,EAAE,eAAe,CAAC,CAAA;YAC5F,MAAM,MAAM,GAAG,IAAI,CAAC,aAAa,CAAC,GAAG,CAAC,SAAS,CAAC,IAAI,CAAC,CAAA;YACrD,IAAI,MAAM,EAAE,CAAC;gBACX,YAAY,CAAC,oBAAoB,CAAC,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,cAAc,CAAC,cAAc,EAAE,IAAI,CAAC,CAAA;gBACnF,IAAI,aAAa,EAAE,CAAC;oBAClB,aAAa,CAAC,oBAAoB,CAAC,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,cAAc,CAAC,EAAE,EAAE,IAAI,CAAC,CAAA;gBAC1E,CAAC;gBACD,IAAI,CAAC,OAAO,IAAI,MAAM,EAAE,cAAc,EAAE,CAAC;oBACvC,IAAI,CAAC,eAAe,CAAC,SAAS,EAAE,IAAI,CAAC,CAAA;gBACvC,CAAC;gBACD,IAAI,aAAa,GAAG,MAAM,EAAE,aAAa,IAAI,CAAC,CAAA;gBAC9C,IAAI,aAAa,GAAG,cAAc,EAAE,CAAC;oBACnC,aAAa,GAAG,cAAc,CAAA;gBAChC,CAAC;gBACD,IAAI,aAAa,GAAG,CAAC,EAAE,CAAC;oBACtB,MAAM,KAAK,GAAG,UAAU,CAAC,GAAG,EAAE;wBAC5B,IAAI,CAAC,GAAG,CAAC,KAAK,CAAC,yBAAyB,EAAE,SAAS,CAAC,WAAW,CAAC,CAAA;wBAChE,IAAI,CAAC,YAAY,CAAC,MAAM,CAAC,SAAS,CAAC,IAAI,CAAC,CAAA;wBACxC,YAAY,CAAC,oBAAoB,CAAC,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,cAAc,CAAC,cAAc,EAAE,KAAK,CAAC,CAAA;wBACpF,IAAI,aAAa,EAAE,CAAC;4BAClB,aAAa,CAAC,oBAAoB,CAAC,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,cAAc,CAAC,EAAE,EAAE,KAAK,CAAC,CAAA;wBAC3E,CAAC;oBACH,CAAC,EAAE,aAAa,GAAG,IAAI,CAAC,CAAA;oBACxB,IAAI,CAAC,YAAY,CAAC,GAAG,CAAC,SAAS,CAAC,IAAI,EAAE,KAAK,CAAC,CAAA;gBAC9C,CAAC;gBACD,OAAO;oBACL,KAAK,EAAE,KAAK;oBACZ,OAAO,EAAE,qBAAqB;oBAC9B,cAAc,EAAE,CAAC,CAAC,OAAO;iBAC1B,CAAA;YACH,CAAC;iBAAM,CAAC;gBACN,YAAY,CAAC,oBAAoB,CAAC,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,cAAc,CAAC,cAAc,EAAE,KAAK,CAAC,CAAA;gBACpF,IAAI,aAAa,EAAE,CAAC;oBAClB,aAAa,CAAC,oBAAoB,CAAC,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,cAAc,CAAC,EAAE,EAAE,KAAK,CAAC,CAAA;gBAC3E,CAAC;gBACD,IAAI,MAAM,EAAE,cAAc,EAAE,CAAC;oBAC3B,IAAI,CAAC,eAAe,CAAC,SAAS,EAAE,KAAK,CAAC,CAAA;gBACxC,CAAC;gBACD,OAAO;oBACL,KAAK,EAAE,KAAK;oBACZ,OAAO,EAAE,sBAAsB;iBAChC,CAAA;YACH,CAAC;QACH,CAAC;aAAM,CAAC;YACN,OAAO;gBACL,KAAK,EAAE,IAAI;gBACX,OAAO,EAAE,wCAAwC;aAClD,CAAA;QACH,CAAC;IACH,CAAC;IAEO,WAAW,CAAC,QAAgB,EAAE,IAAY;QAChD,MAAM,SAAS,GAAG,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC,CAAC,MAAyB,EAAE,EAAE;YACpE,OAAO,MAAM,CAAC,WAAW,KAAK,IAAI,CAAA;QACpC,CAAC,CAAC,CAAA;QACF,IAAI,SAAS,EAAE,CAAC;YACd,MAAM,IAAI,GAAG,QAAQ,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,EAAE,CAAC,KAAK,CAAC,MAAM,GAAG,CAAC,CAAC,CAAA;YAClE,QAAQ,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC;gBAChB,KAAK,QAAQ;oBACX,OAAO,IAAI,CAAC,aAAa,CAAC,SAAS,EAAE,IAAI,CAAC,CAAC,CAAC,KAAK,OAAO,CAAC,CAAA;oBACzD,MAAK;gBACP,KAAK,UAAU;oBACb,OAAO,IAAI,CAAC,eAAe,CAAC,SAAS,CAAC,CAAA;oBACtC,MAAK;gBACP;oBACE,OAAO;wBACL,KAAK,EAAE,IAAI;wBACX,OAAO,EAAE,8DAA8D,IAAI,CAAC,CAAC,CAAC,IAAI;qBACnF,CAAA;YACL,CAAC;QACH,CAAC;aAAM,CAAC;YACN,OAAO;gBACL,KAAK,EAAE,IAAI;gBACX,OAAO,EAAE,WAAW,IAAI,cAAc;aACvC,CAAA;QACH,CAAC;IACH,CAAC;IAED,2FAA2F;IAC3F,KAAK,CAAC,YAAY;QAChB,IAAI,CAAC,IAAI,CAAC,OAAO,EAAE,CAAC;YAClB,OAAM;QACR,CAAC;QACD,IAAI,OAAoC,CAAA;QACxC,KAAK,MAAM,YAAY,IAAI,IAAI,CAAC,aAAa,CAAC,MAAM,EAAE,EAAE,CAAC;YACvD,IAAI,CAAC,YAAY,CAAC,aAAa,EAAE,CAAC;gBAChC,SAAQ;YACV,CAAC;YACD,IAAI,CAAC;gBACH,MAAM,MAAM,GAAG,MAAM,IAAI,CAAC,OAAO,CAAC,MAAM,EAAmB,CAAA;gBAC3D,MAAM,MAAM,GAAG,CAAC,MAAM,CAAC,OAAO,IAAI,EAAE,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,KAAK,YAAY,CAAC,aAAa,CAAC,CAAA;gBACtF,IAAI,CAAC,MAAM,EAAE,CAAC;oBACZ,MAAM,IAAI,KAAK,CAAC,oCAAoC,YAAY,CAAC,aAAa,GAAG,CAAC,CAAA;gBACpF,CAAC;gBACD,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,4BAA4B,MAAM,CAAC,IAAI,MAAM,MAAM,CAAC,KAAK,CAAC,WAAW,EAAE,IAAI,EAAE,YAAY,CAAC,IAAI,CAAC,CAAA;gBAC7G,MAAM,KAAK,GAAG,QAAQ,CAAC,MAAM,CAAC,CAAA;gBAC9B,IAAI,CAAC,YAAY,CAAC,WAAY,CAAC,MAAM,EAAE,CAAC;oBACtC,YAAY,CAAC,WAAY,CAAC,MAAM,GAAG,KAAK,CAAC,MAAM,CAAA,CAAC,2BAA2B;oBAC3E,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,eAAe,KAAK,CAAC,MAAM,iBAAiB,KAAK,CAAC,IAAI,EAAE,EAAE,YAAY,CAAC,IAAI,CAAC,CAAA;gBAC5F,CAAC;qBAAM,IAAI,YAAY,CAAC,WAAY,CAAC,MAAM,KAAK,MAAM,IAAI,KAAK,CAAC,MAAM,KAAK,MAAM,EAAE,CAAC;oBAClF,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,kBAAkB,QAAQ,CAAC,MAAM,CAAC,CAAC,IAAI,CAAC,OAAO,CAAC,0BAA0B,EAAE,GAAG,CAAC,gDAAgD,EAAE,YAAY,CAAC,IAAI,CAAC,CAAA;gBACpK,CAAC;gBACD,IAAI,CAAC,CAAC,YAAY,CAAC,YAAY,IAAI,YAAY,CAAC,KAAK,IAAI,YAAY,CAAC,YAAY,IAAI,YAAY,CAAC,gBAAgB,CAAC,EAAE,CAAC;oBACrH,OAAO,KAAK,MAAM,CAAC,KAAK,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,MAAM,IAAI,CAAC,OAAO,CAAC,OAAO,EAAE,CAAC,KAAK,CAAC,GAAG,EAAE,CAAC,EAAE,CAAC,CAAA;oBAC5E,IAAI,CAAC,YAAY,CAAC,YAAY,EAAE,WAAW,CAAC,MAAM,EAAE,OAAO,EAAE,MAAM,CAAC,OAAO,EAAE,OAAO,CAAC,CAAC,CAAA;gBACxF,CAAC;YACH,CAAC;YAAC,OAAO,KAAK,EAAE,CAAC;gBACf,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,6BAA8B,KAAe,CAAC,OAAO,yDAAyD,EAAE,YAAY,CAAC,IAAI,CAAC,CAAA;YAClJ,CAAC;QACH,CAAC;IACH,CAAC;IAED,6FAA6F;IACrF,YAAY,CAAC,YAA0B,EAAE,QAAkB;QACjE,MAAM,SAAS,GAAG,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,WAAW,KAAK,YAAY,CAAC,IAAI,CAAC,CAAA;QACjF,MAAM,IAAI,GAAG,SAAS,EAAE,UAAU,CAAC,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,OAAO,CAAC,oBAAoB,CAAC,CAAA;QAC7E,IAAI,CAAC,IAAI,EAAE,CAAC;YACV,OAAM;QACR,CAAC;QACD,MAAM,EAAE,cAAc,EAAE,GAAG,IAAI,CAAC,GAAG,CAAC,GAAG,CAAA;QACvC,MAAM,GAAG,GAAG;YACV,CAAC,cAAc,CAAC,YAAY,EAAE,YAAY,CAAC,YAAY,EAAE,QAAQ,CAAC,YAAY,CAAC;YAC/E,CAAC,cAAc,CAAC,KAAK,EAAE,YAAY,CAAC,KAAK,EAAE,QAAQ,CAAC,KAAK,CAAC;YAC1D,CAAC,cAAc,CAAC,YAAY,EAAE,YAAY,CAAC,YAAY,EAAE,QAAQ,CAAC,YAAY,CAAC;YAC/E,CAAC,cAAc,CAAC,gBAAgB,EAAE,YAAY,CAAC,gBAAgB,EAAE,QAAQ,CAAC,gBAAgB,CAAC;SACnF,CAAA;QACV,KAAK,MAAM,CAAC,cAAc,EAAE,UAAU,EAAE,UAAU,CAAC,IAAI,GAAG,EAAE,CAAC;YAC3D,IAAI,CAAC,UAAU,EAAE,CAAC;gBAChB,IAAI,CAAC,iBAAiB,CAAC,cAAc,EAAE,UAAU,CAAC,CAAA;YACpD,CAAC;QACH,CAAC;IACH,CAAC;IAED,kBAAkB;QAChB,KAAK,IAAI,CAAC,YAAY,EAAE,CAAA;QACxB,KAAK,MAAM,CAAC,IAAI,EAAE,YAAY,CAAC,IAAI,IAAI,CAAC,aAAa,EAAE,CAAC;YACtD,MAAM,IAAI,GAAG,YAAY,CAAC,IAAI,IAAI,UAAU,IAAI,CAAC,aAAa,CAAC,IAAI,GAAG,CAAC,EAAE,CAAA;YACzE,MAAM,eAAe,GAAG,IAAI,CAAC,iBAAiB,CAAC,IAAI,CAAC,CAAC,MAAyB,EAAE,EAAE,CAAC,MAAM,CAAC,IAAI,KAAK,IAAI,CAAC,CAAA;YACxG,IAAI,CAAC,eAAe,EAAE,CAAC;gBACrB,MAAM,SAAS,GAAG,IAAI,IAAI,CAAC,GAAG,CAAC,iBAAiB,CAAC,IAAI,EAAE,IAAI,CAAC,CAAA;gBAC5D,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,kCAAkC,EAAE,SAAS,CAAC,WAAW,CAAC,CAAA;gBACxE,IAAI,CAAC,cAAc,CAAC,SAAS,EAAE,YAAY,CAAC,CAAA;gBAC5C,IAAI,CAAC,GAAG,CAAC,0BAA0B,CAAC,WAAW,EAAE,CAAC,SAAS,CAAC,CAAC,CAAA;gBAC7D,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC,SAAS,CAAC,CAAA;YAClC,CAAC;iBAAM,CAAC;gBACN,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC,eAAe,CAAC,CAAA;YACxC,CAAC;QACH,CAAC;QAED,IAAI,IAAI,CAAC,MAAM,CAAC,IAAI,EAAE,CAAC;YACrB,MAAM,QAAQ,GAAG,IAAI,CAAC,MAAM,CAAC,QAAQ,IAAI,MAAM,CAAA;YAC/C,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,+BAA+B,CAAC,CAAA;YAC9C,MAAM,MAAM,GAAG,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,IAAI,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC,CAAC,UAAU,CAAC,CAAC,CAAC,SAAS,CAAC,GAAG,IAAI,CAAC,MAAM,CAAC,IAAI,IAAI,QAAQ,EAAE,EAAE;gBAC9G,QAAQ,EAAE,IAAI,CAAC,MAAM,CAAC,QAAQ;gBAC9B,QAAQ,EAAE,IAAI,CAAC,MAAM,CAAC,QAAQ;aAC/B,CAAC,CAAA;YACF,MAAM,CAAC,EAAE,CAAC,SAAS,EAAE,GAAG,EAAE;gBACxB,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,iBAAiB,CAAC,CAAA;gBAChC,KAAK,MAAM,CAAC,KAAK,CAAC,IAAI,IAAI,CAAC,WAAW,EAAE,CAAC;oBACvC,IAAI,CAAC,GAAG,CAAC,KAAK,CAAC,8BAA8B,KAAK,EAAE,CAAC,CAAA;oBACrD,MAAM,CAAC,SAAS,CAAC,KAAK,CAAC,CAAA;gBACzB,CAAC;YACH,CAAC,CAAC,CAAA;YACF,MAAM,CAAC,EAAE,CAAC,SAAS,EAAE,CAAC,KAAa,EAAE,OAAe,EAAE,EAAE;gBACtD,MAAM,UAAU,GAAG,IAAI,CAAC,WAAW,CAAC,GAAG,CAAC,KAAK,CAAC,CAAA;gBAC9C,IAAI,UAAU,EAAE,CAAC;oBACf,MAAM,WAAW,GAAG,UAAU,CAAC,GAAG,CAAC,OAAO,CAAC,QAAQ,EAAE,CAAC,CAAA;oBACtD,IAAI,WAAW,EAAE,CAAC;wBAChB,KAAK,MAAM,MAAM,IAAI,WAAW,EAAE,CAAC;4BACjC,IAAI,MAAM,CAAC,QAAQ,EAAE,CAAC;gCACpB,IAAI,CAAC,eAAe,CAAC,MAAM,CAAC,SAAS,EAAE,MAAM,CAAC,MAAM,CAAC,CAAA;4BACvD,CAAC;iCAAM,CAAC;gCACN,IAAI,CAAC,aAAa,CAAC,MAAM,CAAC,SAAS,EAAE,MAAM,CAAC,MAAM,CAAC,CAAA;4BACrD,CAAC;wBACH,CAAC;oBACH,CAAC;gBACH,CAAC;YACH,CAAC,CAAC,CAAA;QACJ,CAAC;QACD,IAAI,IAAI,CAAC,MAAM,CAAC,QAAQ,EAAE,CAAC;YACzB,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,cAAc,IAAI,CAAC,MAAM,CAAC,SAAS,CAAC,CAAC,CAAC,iBAAiB,CAAC,CAAC,CAAC,EACxE,uBAAuB,IAAI,CAAC,MAAM,CAAC,QAAQ,KAAK,CAAC,CAAA;YACjD,MAAM,MAAM,GAAG,IAAI,CAAC,YAAY,EAAE,CAAA;YAClC,MAAM,QAAQ,GAAG,IAAI,CAAC,MAAM,CAAC,SAAS,CAAC,CAAC,CAAC,WAAW,CAAC,CAAC,CAAC,SAAS,CAAA;YAChE,MAAM,CAAC,MAAM,CAAC,IAAI,CAAC,MAAM,CAAC,QAAQ,EAAE,QAAQ,CAAC,CAAA;YAC7C,MAAM,CAAC,EAAE,CAAC,SAAS,EAAE,CAAC,OAA6B,EAAE,QAA6B,EAAE,EAAE;gBACpF,IAAI,OAAO,GAAqB;oBAC9B,KAAK,EAAE,IAAI;oBACX,OAAO,EAAE,gBAAgB;iBAC1B,CAAA;gBACD,IAAI,OAAO,CAAC,GAAG,EAAE,CAAC;oBAChB,MAAM,QAAQ,GAAG,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,GAAG,CAAC,CAAA;oBACvC,IAAI,QAAQ,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;wBAC1B,MAAM,IAAI,GAAG,kBAAkB,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAA;wBAC1D,OAAO,GAAG,IAAI,CAAC,WAAW,CAAC,QAAQ,CAAC,CAAC,CAAC,EAAE,IAAI,CAAC,CAAA;oBAC/C,CAAC;gBACH,CAAC;gBACD,QAAQ,CAAC,SAAS,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG,CAAC,CAAA;gBAC7C,QAAQ,CAAC,KAAK,CAAC,IAAI,CAAC,SAAS,CAAC,OAAO,CAAC,CAAC,CAAA;gBACvC,QAAQ,CAAC,GAAG,EAAE,CAAA;YAChB,CAAC,CAAC,CAAA;QACJ,CAAC;QAED,IAAI,CAAC,iBAAiB,CAAC,OAAO,CAAC,CAAC,SAA4B,EAAE,EAAE;YAC9D,MAAM,YAAY,GAAG,IAAI,CAAC,aAAa,CAAC,GAAG,CAAC,SAAS,CAAC,IAAI,CAAC,CAAA;YAC3D,IAAI,CAAC,YAAY,EAAE,CAAC;gBAClB,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,+BAA+B,EAAE,SAAS,CAAC,WAAW,CAAC,CAAA;gBACrE,IAAI,CAAC,GAAG,CAAC,6BAA6B,CAAC,WAAW,EAAE,aAAa,EAAE,CAAC,SAAS,CAAC,CAAC,CAAA;YACjF,CAAC;QACH,CAAC,CAAC,CAAA;IACJ,CAAC;CACF"}
1
+ {"version":3,"file":"platform.js","sourceRoot":"","sources":["../src/platform.ts"],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -2,7 +2,7 @@
2
2
  "name": "homebridge-eufy-nvr-gateway",
3
3
  "displayName": "Homebridge eufy NVR Gateway",
4
4
  "type": "module",
5
- "version": "0.2.0",
5
+ "version": "0.3.0",
6
6
  "description": "Homebridge Camera FFmpeg, extended to wake battery eufy cameras behind the eufy-nvr-gateway while HomeKit watches them.",
7
7
  "author": {
8
8
  "name": "Khaos Tian"