@mega-yfue/eufy-sdk 0.6.0-beta.32 → 0.6.0-beta.33

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.
@@ -263,6 +263,8 @@ export type CameraActions = Surface<typeof CAMERA_MEMBERS> & {
263
263
  };
264
264
  /** T8442 has a binary night-vision wire, unlike cameras with the three-mode 1277 control. */
265
265
  declare function isT8442(ctx: AvailabilityContext): boolean;
266
+ /** A C30/C31 has reported no 1716 and no doorbell LED write was tried on it, so it keeps 1045. */
267
+ declare const doorbellLed: (ctx: AvailabilityContext) => boolean;
266
268
  /**
267
269
  * Every `camera` feature, declared once. The property schema, the typed getters, the derived setters,
268
270
  * the intent routes, the media methods and the descriptions all come out of this table.
@@ -566,7 +568,7 @@ export declare const CAMERA_MEMBERS: {
566
568
  readonly readAvailable: (ctx: AvailabilityContext) => boolean;
567
569
  readonly readAliases: readonly [{
568
570
  readonly paramType: 1716;
569
- readonly available: (ctx: AvailabilityContext) => boolean;
571
+ readonly available: typeof doorbellLed;
570
572
  }];
571
573
  readonly requiresRead: true;
572
574
  readonly description: "Camera status LED. Video doorbells report the same state under their button-ring LED parameter.";
@@ -1,5 +1,7 @@
1
1
  import { type Surface } from "./members.js";
2
- import type { CapabilityModule } from "./types.js";
2
+ import type { AvailabilityContext, CapabilityModule } from "./types.js";
3
+ /** No doorbell write has been tried on a C30/C31, so only their ring event binds. */
4
+ declare const writable: (ctx: AvailabilityContext) => boolean;
3
5
  /**
4
6
  * The P2P **feature-command ids** this doorbell capability drives. Capability-owned wire vocabulary
5
7
  * (transport forwards `cmd.param` opaquely; full id→name catalog in the generated
@@ -191,6 +193,7 @@ export declare const DOORBELL_MEMBERS: {
191
193
  */
192
194
  readonly chimeSwitch: {
193
195
  readonly param: 1702;
196
+ readonly available: typeof writable;
194
197
  readonly type: "bool";
195
198
  readonly kind: "boolean";
196
199
  readonly provenance: "verified";
@@ -203,6 +206,7 @@ export declare const DOORBELL_MEMBERS: {
203
206
  */
204
207
  readonly mechanicalChimeSwitch: {
205
208
  readonly param: 1703;
209
+ readonly available: typeof writable;
206
210
  readonly type: "bool";
207
211
  readonly kind: "boolean";
208
212
  readonly provenance: "verified";
@@ -212,6 +216,7 @@ export declare const DOORBELL_MEMBERS: {
212
216
  /** Same reasoning and the same capture session as {@link DOORBELL_MEMBERS.mechanicalChimeSwitch}. */
213
217
  readonly wdrSwitch: {
214
218
  readonly param: 1704;
219
+ readonly available: typeof writable;
215
220
  readonly type: "bool";
216
221
  readonly kind: "boolean";
217
222
  readonly provenance: "verified";
@@ -242,6 +247,7 @@ export declare const DOORBELL_MEMBERS: {
242
247
  */
243
248
  readonly dingdongVolume: {
244
249
  readonly param: 1717;
250
+ readonly available: typeof writable;
245
251
  readonly type: "number";
246
252
  readonly unit: "%";
247
253
  readonly kind: "percent";
@@ -259,6 +265,7 @@ export declare const DOORBELL_MEMBERS: {
259
265
  */
260
266
  readonly dingdongRingtone: {
261
267
  readonly param: 1718;
268
+ readonly available: typeof writable;
262
269
  readonly type: "number";
263
270
  readonly kind: "enum";
264
271
  readonly enumValues: Record<number, string>;
@@ -313,7 +320,9 @@ export declare const DOORBELL_MEMBERS: {
313
320
  * reads {@link DOORBELL_MEMBERS.videoQuality} and {@link DOORBELL_MEMBERS.highCompressionEncoding}
314
321
  * and passes what it wants, instead of the SDK guessing from a stale copy.
315
322
  */
316
- readonly setVideoQuality: import("./members.js").MethodMember<(quality: DoorbellVideoQualityValue, highCompression: boolean) => Promise<void>>;
323
+ readonly setVideoQuality: import("./members.js").MethodMember<(quality: DoorbellVideoQualityValue, highCompression: boolean) => Promise<void>> & {
324
+ available: (ctx: import("./types.js").CommandContext) => boolean;
325
+ };
317
326
  /**
318
327
  * A config blob the device reports WHOLE, so it is typed `string` and handed back unparsed — three
319
328
  * settings live inside it (motion notifications, ring notifications, notification style) and the SDK
@@ -339,7 +348,9 @@ export declare const DOORBELL_MEMBERS: {
339
348
  */
340
349
  readonly playQuickResponse: import("./members.js").MethodMember<(voiceId: number, opts?: {
341
350
  engage?: boolean;
342
- }) => Promise<void>>;
351
+ }) => Promise<void>> & {
352
+ available: (ctx: import("./types.js").CommandContext) => boolean;
353
+ };
343
354
  /**
344
355
  * Fetch the doorbell's quick-response list — a P2P request/reply query that returns data, so it
345
356
  * exists only on a device bound to a media provider that offers one.
@@ -352,3 +363,4 @@ export declare const DOORBELL_MEMBERS: {
352
363
  }) => Promise<QuickResponse[]>) | undefined>;
353
364
  };
354
365
  export declare const DOORBELL: CapabilityModule;
366
+ export {};
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@mega-yfue/eufy-sdk",
3
- "version": "0.6.0-beta.32",
3
+ "version": "0.6.0-beta.33",
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",