@mega-yfue/eufy-sdk 0.6.0-beta.16 → 0.6.0-beta.18

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.
@@ -280,6 +280,16 @@ export declare function encodeSelectZonesClean(mapId: number, zones: readonly Va
280
280
  * @internal
281
281
  */
282
282
  export declare function encodeSceneClean(sceneId: number): string;
283
+ /**
284
+ * Build one of the two DP 153 writes the vendor app sends when its map view opens: the time in
285
+ * microseconds, and on the second write field 2 set to `1`.
286
+ *
287
+ * Captured from the vendor app on the device's `cmd/…/req` leg, three times with the same layout. The
288
+ * product catalogue lists DP 153 as uplink-only (`WorkStatus`); the vendor app writes this message to it
289
+ * all the same. {@link VACUUM_CLEAN_MEMBERS.requestMap} dispatches both.
290
+ * @internal
291
+ */
292
+ export declare function encodeMapWatch(nowMs: number, watching: boolean): string;
283
293
  /**
284
294
  * Build a whole-floor auto clean carrying an `AutoClean` payload of one pass.
285
295
  * @internal
@@ -1986,6 +1996,19 @@ export declare const VACUUM_CLEAN_MEMBERS: {
1986
1996
  readonly startScene: import("./members.js").MethodMember<(sceneId: number) => Promise<void>> & {
1987
1997
  available: (ctx: import("./types.js").CommandContext) => boolean;
1988
1998
  };
1999
+ /**
2000
+ * Ask the robot to push its whole map — plane, room outline, room list and restricted zones — on the
2001
+ * map stream, as the vendor app does when its map view opens: two DP 153 writes, the time and then the
2002
+ * time with field 2 set (see {@link encodeMapWatch}).
2003
+ *
2004
+ * A docked robot sends no map of its own accord, so this is how its room ids and names become
2005
+ * readable without a clean. The map arrives on the stream like any other, not as this call's result.
2006
+ *
2007
+ * WATCHED: sent to a docked robot, it pushed its whole map within a second.
2008
+ */
2009
+ readonly requestMap: import("./members.js").MethodMember<() => Promise<void>> & {
2010
+ available: (ctx: import("./types.js").CommandContext) => boolean;
2011
+ };
1989
2012
  /**
1990
2013
  * State the cleaning settings a run uses — `CleanParamRequest.clean_param` over DP 154.
1991
2014
  *
@@ -180,6 +180,7 @@ export declare class LiveStream extends EventEmitter {
180
180
  stop(): void;
181
181
  /** Extract the Annex-B payload from a plaintext 1300 frame (fixed 22-byte header), or undefined. */
182
182
  private plaintextAnnexB;
183
+ /** Emit one accepted media frame; an audio frame with no bytes past its header emits nothing. */
183
184
  private onFrame;
184
185
  /**
185
186
  * Whether this stream may take `frame` — the demultiplexer for a station that serves several cameras.
@@ -226,7 +227,7 @@ export declare class LiveStream extends EventEmitter {
226
227
  * The payload of an audio frame. On a stream with an ECIES decoder, a sealed frame ({@link isSealedAudio}) is
227
228
  * opened under the media key of the latest keyframe, and answers `undefined` when it does not open or arrives
228
229
  * before any keyframe gave a media key, since its bytes are ciphertext. Every other frame is the bytes after
229
- * its header.
230
+ * its header, empty for a frame that carries only its header.
230
231
  */
231
232
  private audioPayload;
232
233
  /**
@@ -102,8 +102,8 @@ export declare const STATION_CHUNK_BYTES = 64000;
102
102
  * total length is nowhere on the wire and cannot be waited for. What the wire does carry, verified on two
103
103
  * models:
104
104
  *
105
- * - the frames of one unit **repeat its header** — same timestamp, same {@link VideoFrameHeader.sequence} —
106
- * while consecutive units differ in both;
105
+ * - the frames of one unit **repeat its {@link VideoFrameHeader.sequence}**, and carry the unit's timestamp
106
+ * or one stamped up to `SPLIT_UNIT_STAMP_SPREAD_MS` later;
107
107
  * - every frame of a split unit is filled to {@link STATION_CHUNK_BYTES} except the last;
108
108
  * - a frame that STARTS a unit begins with an Annex-B start code once decoded, and a continuation begins
109
109
  * mid-NAL, so it does not.
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@mega-yfue/eufy-sdk",
3
- "version": "0.6.0-beta.16",
3
+ "version": "0.6.0-beta.18",
4
4
  "description": "One typed TypeScript client for the Anker eufy v6 cloud — capability-driven devices, realtime events over P2P/MQTT/push, and live media",
5
5
  "license": "Apache-2.0",
6
6
  "author": "mega-yfue",