@mega-yfue/eufy-sdk 0.5.0-beta.90 → 0.5.0-beta.92
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/index.js +11 -12
- package/dist/index.js.map +2 -2
- package/dist/transport/p2p/p2p-session.d.ts +2 -2
- package/package.json +1 -1
package/dist/index.js
CHANGED
|
@@ -6294,7 +6294,6 @@ var LIGHT_SWITCH_INT_STRING_TYPES = /* @__PURE__ */ new Set([
|
|
|
6294
6294
|
DeviceType.INDOOR_OUTDOOR_CAMERA_2K,
|
|
6295
6295
|
DeviceType.INDOOR_OUTDOOR_CAMERA_1080P,
|
|
6296
6296
|
DeviceType.OUTDOOR_PT_CAMERA,
|
|
6297
|
-
DeviceType.SOLO_CAMERA_E30,
|
|
6298
6297
|
DeviceType.CAMERA2C,
|
|
6299
6298
|
DeviceType.CAMERA2,
|
|
6300
6299
|
DeviceType.CAMERA2_PRO,
|
|
@@ -6415,12 +6414,12 @@ var LIGHT = {
|
|
|
6415
6414
|
description: "Floodlight / spotlight manual switch and brightness.",
|
|
6416
6415
|
members: LIGHT_MEMBERS,
|
|
6417
6416
|
properties: propertiesOf(LIGHT_MEMBERS),
|
|
6418
|
-
//
|
|
6419
|
-
//
|
|
6420
|
-
//
|
|
6417
|
+
// Three T8171 units on firmware 1.2.1.6 report 1400/1401/1403 without a spotlight, so those
|
|
6418
|
+
// param ids are not sufficient evidence for that model. The camera status LED (1045) is not light.
|
|
6419
|
+
// Other models keep the existing param and name evidence.
|
|
6421
6420
|
detection: {
|
|
6422
|
-
|
|
6423
|
-
|
|
6421
|
+
modelHints: [/floodlight|wall.?light|spot.?light|search.?light/i],
|
|
6422
|
+
detect: (record) => record.model !== "T8171" && [1400, 1401, 1403, 6080, 6082, 1413].some((param) => Object.hasOwn(record.params ?? {}, param))
|
|
6424
6423
|
},
|
|
6425
6424
|
/**
|
|
6426
6425
|
* Only what the member table cannot express: `on`/`off` as no-argument verbs over the same wire as the
|
|
@@ -11691,9 +11690,8 @@ var MODEL_REGISTRY = {
|
|
|
11691
11690
|
// whole fleet (verified live): SoloCam (T8170/T8171) via their reported PTZ preset params
|
|
11692
11691
|
// (6090/6091/6092, 6210); Indoor-PT (T8410) via its vendor deviceType 31 = INDOOR_PT_CAMERA.
|
|
11693
11692
|
// The rotate command (6030) is write-only and leaves no param trace, so it is never the signal.
|
|
11694
|
-
//
|
|
11695
|
-
//
|
|
11696
|
-
// and LED-only cams (T8171/T8400/T8410) correctly do NOT. The status LED (1045) is `camera`.
|
|
11693
|
+
// T8171 reports 1400/1401/1403 on firmware 1.2.1.6 but has no physical spotlight.
|
|
11694
|
+
// Those params are not light evidence for this exact model; light.ts excludes it.
|
|
11697
11695
|
// `arming` here is the STANDALONE case only — `ownedByStation` withholds it again once the record
|
|
11698
11696
|
// shows a parent, so an attached cam never advertises the hub's guard mode.
|
|
11699
11697
|
T8170: { codec: "camera", caps: ["battery", "arming"], name: "SoloCam" },
|
|
@@ -16534,8 +16532,8 @@ var P2PSession = class _P2PSession extends EventEmitter2 {
|
|
|
16534
16532
|
* `resolveCipherKey`), run the ECIES unwrap with the ECC key, and `setLevel2Key()`. A cipher with no
|
|
16535
16533
|
* ECC key uses its RSA key instead and holds the RSA-decrypted 16-byte key as the AES-128-ECB level-2
|
|
16536
16534
|
* key. One-shot; emits `level2Ready` only when the AES-256-GCM key is negotiated, traces
|
|
16537
|
-
* `level2-set-payload-only` instead for the AES-128-ECB key, and emits `error`
|
|
16538
|
-
* (non-fatal — level-1 traffic keeps working
|
|
16535
|
+
* `level2-set-payload-only` instead for the AES-128-ECB key, and emits `error` when the ECC unwrap
|
|
16536
|
+
* fails; an RSA unwrap failure is only traced (non-fatal either way — level-1 traffic keeps working).
|
|
16539
16537
|
*
|
|
16540
16538
|
* Every outcome settles the wait in {@link awaitLevel2Key}, because being one-shot is what makes a
|
|
16541
16539
|
* failure final for this connection generation: nothing will retry it there, so a later command must be
|
|
@@ -16565,7 +16563,8 @@ var P2PSession = class _P2PSession extends EventEmitter2 {
|
|
|
16565
16563
|
if (!key) {
|
|
16566
16564
|
this.trace({ phase: "level2-unavailable", reason: "derivation-failed", cipherId });
|
|
16567
16565
|
this.settleLevel2();
|
|
16568
|
-
|
|
16566
|
+
if (eccPrivHex)
|
|
16567
|
+
this.emit("error", new Error(`level-2 key derivation failed (cipher_id ${cipherId})`));
|
|
16569
16568
|
return;
|
|
16570
16569
|
}
|
|
16571
16570
|
if (eccPrivHex) {
|