@homebridge-plugins/homebridge-eufy-security 4.6.0-beta.4 → 4.6.0-beta.41
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/.claude/CLAUDE.md +175 -0
- package/.claude/PRD.md +241 -0
- package/.claude/docs/hksv-recording-fix.md +160 -0
- package/.claude/skills/architect/SKILL.md +76 -0
- package/.claude/skills/developer/SKILL.md +59 -0
- package/.claude/skills/new-device-support/SKILL.md +102 -51
- package/.claude/skills/new-device-support/check-device.mjs +363 -0
- package/.claude/skills/new-device-support/map-properties.mjs +144 -10
- package/.claude/skills/new-device-support/verify-device.mjs +272 -0
- package/.claude/skills/planner/SKILL.md +100 -0
- package/.claude/skills/qa/SKILL.md +79 -0
- package/.claude/skills/support/SKILL.md +175 -0
- package/dist/accessories/CameraAccessory.js +20 -20
- package/dist/accessories/CameraAccessory.js.map +1 -1
- package/dist/controller/LocalLivestreamManager.js +197 -10
- package/dist/controller/LocalLivestreamManager.js.map +1 -1
- package/dist/controller/recordingDelegate.js +25 -9
- package/dist/controller/recordingDelegate.js.map +1 -1
- package/dist/controller/snapshotDelegate.js +5 -1
- package/dist/controller/snapshotDelegate.js.map +1 -1
- package/dist/controller/streamingDelegate.js +13 -7
- package/dist/controller/streamingDelegate.js.map +1 -1
- package/dist/platform.js +0 -23
- package/dist/platform.js.map +1 -1
- package/dist/settings.js +7 -0
- package/dist/settings.js.map +1 -1
- package/dist/utils/Talkback.js +127 -55
- package/dist/utils/Talkback.js.map +1 -1
- package/dist/utils/configTypes.js +1 -0
- package/dist/utils/configTypes.js.map +1 -1
- package/dist/utils/ffmpeg.js +137 -23
- package/dist/utils/ffmpeg.js.map +1 -1
- package/dist/utils/utils.js +27 -2
- package/dist/utils/utils.js.map +1 -1
- package/dist/version.js +1 -1
- package/dist/version.js.map +1 -1
- package/homebridge-ui/public/assets/devices/batterydoorbell2k_large.png +0 -0
- package/homebridge-ui/public/assets/devices/eufyCamS4_large.png +0 -0
- package/homebridge-ui/public/assets/devices/homebase3_large.png +0 -0
- package/homebridge-ui/public/assets/devices/nvr_s4_max_T8N00_large.png +0 -0
- package/homebridge-ui/public/assets/devices/poe_bullet_ptz_cam_s4_T8E00_large.png +0 -0
- package/homebridge-ui/public/utils/device-images.js +2 -0
- package/homebridge-ui/public/views/device-detail.js +10 -0
- package/homebridge-ui/server.js +23 -31
- package/package.json +12 -12
- package/scripts/decrypt-diagnostics.mjs +6 -7
package/package.json
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
{
|
|
2
2
|
"displayName": "Homebridge Eufy Security",
|
|
3
3
|
"name": "@homebridge-plugins/homebridge-eufy-security",
|
|
4
|
-
"version": "4.6.0-beta.
|
|
4
|
+
"version": "4.6.0-beta.41",
|
|
5
5
|
"description": "Control Eufy Security from homebridge.",
|
|
6
6
|
"type": "module",
|
|
7
7
|
"license": "Apache-2.0",
|
|
@@ -42,22 +42,22 @@
|
|
|
42
42
|
"camera"
|
|
43
43
|
],
|
|
44
44
|
"dependencies": {
|
|
45
|
+
"@homebridge/plugin-ui-utils": "^2.2.2",
|
|
45
46
|
"eufy-security-client": "dev",
|
|
46
|
-
"
|
|
47
|
-
"ffmpeg-for-homebridge": "2.2.1",
|
|
48
|
-
"tslog": "^4.10.2",
|
|
49
|
-
"rotating-file-stream": "^3.2.9",
|
|
47
|
+
"ffmpeg-for-homebridge": "2.2.2",
|
|
50
48
|
"pick-port": "^2.2.0",
|
|
51
|
-
"
|
|
49
|
+
"rotating-file-stream": "^3.2.9",
|
|
50
|
+
"tar": "^7.5.13",
|
|
51
|
+
"tslog": "^4.10.2"
|
|
52
52
|
},
|
|
53
53
|
"devDependencies": {
|
|
54
|
+
"@eslint/js": "^9.39.4",
|
|
55
|
+
"@types/node": "^25.5.0",
|
|
56
|
+
"eslint": "^9.39.4",
|
|
57
|
+
"homebridge": "^1.11.3",
|
|
58
|
+
"rimraf": "^6.1.3",
|
|
54
59
|
"typescript": "^5.9.3",
|
|
55
|
-
"
|
|
56
|
-
"eslint": "^9.39.3",
|
|
57
|
-
"@eslint/js": "^9.39.3",
|
|
58
|
-
"typescript-eslint": "^8.56.1",
|
|
59
|
-
"@types/node": "^25.3.3",
|
|
60
|
-
"rimraf": "^6.1.3"
|
|
60
|
+
"typescript-eslint": "^8.57.2"
|
|
61
61
|
},
|
|
62
62
|
"homepage": "https://github.com/homebridge-plugins/homebridge-eufy-security/wiki",
|
|
63
63
|
"author": "homebridge-eufy-security"
|
|
@@ -1,18 +1,18 @@
|
|
|
1
1
|
#!/usr/bin/env node
|
|
2
2
|
|
|
3
3
|
/**
|
|
4
|
-
* Decrypt and extract an encrypted diagnostics archive
|
|
4
|
+
* Decrypt and extract an encrypted diagnostics archive produced by the plugin.
|
|
5
5
|
*
|
|
6
6
|
* Usage:
|
|
7
|
-
* node decrypt-diagnostics.mjs <encrypted-file.
|
|
7
|
+
* node decrypt-diagnostics.mjs <encrypted-file.tar.gz> [private-key.pem]
|
|
8
8
|
*
|
|
9
9
|
* If the private key is omitted, the script looks for it in the keys/
|
|
10
10
|
* directory next to itself (keys/diagnostics_private.pem).
|
|
11
11
|
*
|
|
12
|
-
* The archive is decrypted and extracted into a folder next to the
|
|
12
|
+
* The archive is decrypted and extracted into a folder next to the input file,
|
|
13
13
|
* named after the archive (e.g. diagnostics-2026-03-02-11-25-31/).
|
|
14
14
|
*
|
|
15
|
-
* File format
|
|
15
|
+
* File format (the .tar.gz is actually encrypted, not a plain gzip):
|
|
16
16
|
* [4 bytes] – magic: "DIAG"
|
|
17
17
|
* [1 byte] – format version (currently 0x01)
|
|
18
18
|
* [8 bytes] – creation timestamp (BigUInt64BE, ms since Unix epoch)
|
|
@@ -51,7 +51,7 @@ function main() {
|
|
|
51
51
|
const args = process.argv.slice(2);
|
|
52
52
|
|
|
53
53
|
if (args.length < 1) {
|
|
54
|
-
console.error('Usage: node decrypt-diagnostics.mjs <encrypted-file.
|
|
54
|
+
console.error('Usage: node decrypt-diagnostics.mjs <encrypted-file.tar.gz> [private-key.pem]');
|
|
55
55
|
process.exit(1);
|
|
56
56
|
}
|
|
57
57
|
|
|
@@ -176,8 +176,7 @@ function main() {
|
|
|
176
176
|
// Determine output directory next to the .enc file
|
|
177
177
|
const encDir = path.dirname(encFile);
|
|
178
178
|
const baseName = path.basename(encFile)
|
|
179
|
-
.replace(/\.tar\.gz
|
|
180
|
-
.replace(/\.enc$/, '');
|
|
179
|
+
.replace(/\.tar\.gz(?:\.enc)?$/, '');
|
|
181
180
|
const outDir = path.join(encDir, baseName);
|
|
182
181
|
|
|
183
182
|
// --- Safety: inspect tar contents before extracting (piped via stdin, no temp file) ---
|