@felixgeelhaar/govee-api-client 3.1.14 → 3.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.
Files changed (47) hide show
  1. package/dist/GoveeClient.d.ts +5 -1
  2. package/dist/GoveeClient.d.ts.map +1 -1
  3. package/dist/GoveeClient.js +12 -0
  4. package/dist/GoveeClient.js.map +1 -1
  5. package/dist/domain/entities/Command.d.ts +41 -1
  6. package/dist/domain/entities/Command.d.ts.map +1 -1
  7. package/dist/domain/entities/Command.js +64 -1
  8. package/dist/domain/entities/Command.js.map +1 -1
  9. package/dist/domain/entities/index.d.ts +1 -1
  10. package/dist/domain/entities/index.d.ts.map +1 -1
  11. package/dist/domain/entities/index.js +1 -1
  12. package/dist/domain/entities/index.js.map +1 -1
  13. package/dist/domain/repositories/IGoveeDeviceRepository.d.ts +4 -12
  14. package/dist/domain/repositories/IGoveeDeviceRepository.d.ts.map +1 -1
  15. package/dist/domain/value-objects/DiyScene.d.ts +53 -0
  16. package/dist/domain/value-objects/DiyScene.d.ts.map +1 -0
  17. package/dist/domain/value-objects/DiyScene.js +82 -0
  18. package/dist/domain/value-objects/DiyScene.js.map +1 -0
  19. package/dist/domain/value-objects/Snapshot.d.ts +54 -0
  20. package/dist/domain/value-objects/Snapshot.d.ts.map +1 -0
  21. package/dist/domain/value-objects/Snapshot.js +83 -0
  22. package/dist/domain/value-objects/Snapshot.js.map +1 -0
  23. package/dist/domain/value-objects/index.d.ts +2 -0
  24. package/dist/domain/value-objects/index.d.ts.map +1 -1
  25. package/dist/domain/value-objects/index.js +2 -0
  26. package/dist/domain/value-objects/index.js.map +1 -1
  27. package/dist/index.d.ts +2 -2
  28. package/dist/index.d.ts.map +1 -1
  29. package/dist/index.js +2 -2
  30. package/dist/index.js.map +1 -1
  31. package/dist/infrastructure/GoveeDeviceRepository.d.ts +17 -1
  32. package/dist/infrastructure/GoveeDeviceRepository.d.ts.map +1 -1
  33. package/dist/infrastructure/GoveeDeviceRepository.js +217 -5
  34. package/dist/infrastructure/GoveeDeviceRepository.js.map +1 -1
  35. package/dist/infrastructure/response-schemas.d.ts +106 -7
  36. package/dist/infrastructure/response-schemas.d.ts.map +1 -1
  37. package/dist/infrastructure/response-schemas.js +59 -5
  38. package/dist/infrastructure/response-schemas.js.map +1 -1
  39. package/dist/infrastructure/retry/RetryableRepository.d.ts +3 -1
  40. package/dist/infrastructure/retry/RetryableRepository.d.ts.map +1 -1
  41. package/dist/infrastructure/retry/RetryableRepository.js +28 -0
  42. package/dist/infrastructure/retry/RetryableRepository.js.map +1 -1
  43. package/dist/services/GoveeControlService.d.ts +17 -1
  44. package/dist/services/GoveeControlService.d.ts.map +1 -1
  45. package/dist/services/GoveeControlService.js +38 -0
  46. package/dist/services/GoveeControlService.js.map +1 -1
  47. package/package.json +1 -1
@@ -0,0 +1,83 @@
1
+ /**
2
+ * Snapshot value object represents a user-created saved light state
3
+ * on a Govee lighting device.
4
+ *
5
+ * Snapshots are static "preset slots" — a point-in-time configuration
6
+ * (specific color, brightness, or mid-scene state) the user has saved
7
+ * in the Govee mobile app and named (e.g. "Reading", "Movie night").
8
+ * Unlike {@link LightScene} (Govee's curated dynamic animations) or
9
+ * {@link DiyScene} (user-designed animations), snapshots capture a
10
+ * frozen moment and are recalled exactly as saved.
11
+ *
12
+ * On the API surface they share the shape `{ id, paramId, name }` with
13
+ * other `devices.capabilities.dynamic_scene` entries, but their
14
+ * `instance` is `"snapshot"`.
15
+ *
16
+ * @example
17
+ * const readingPreset = new Snapshot(1001, 2001, 'Reading');
18
+ * await client.setSnapshot(deviceId, model, readingPreset);
19
+ */
20
+ export class Snapshot {
21
+ constructor(id, paramId, name) {
22
+ this.validateId(id);
23
+ this.validateParamId(paramId);
24
+ this.validateName(name);
25
+ this._id = id;
26
+ this._paramId = paramId;
27
+ this._name = name.trim();
28
+ Object.freeze(this);
29
+ }
30
+ validateId(id) {
31
+ if (!Number.isInteger(id) || id <= 0) {
32
+ throw new Error('ID must be a positive integer');
33
+ }
34
+ }
35
+ validateParamId(paramId) {
36
+ if (!Number.isInteger(paramId) || paramId <= 0) {
37
+ throw new Error('ParamId must be a positive integer');
38
+ }
39
+ }
40
+ validateName(name) {
41
+ if (!name || typeof name !== 'string' || name.trim().length === 0) {
42
+ throw new Error('Name must be a non-empty string');
43
+ }
44
+ }
45
+ get id() {
46
+ return this._id;
47
+ }
48
+ get paramId() {
49
+ return this._paramId;
50
+ }
51
+ get name() {
52
+ return this._name;
53
+ }
54
+ /**
55
+ * Two snapshots are equal if they have the same id and paramId.
56
+ */
57
+ equals(other) {
58
+ return this._id === other._id && this._paramId === other._paramId;
59
+ }
60
+ toObject() {
61
+ return {
62
+ id: this._id,
63
+ paramId: this._paramId,
64
+ name: this._name,
65
+ };
66
+ }
67
+ static fromObject(obj) {
68
+ return new Snapshot(obj.id, obj.paramId, obj.name);
69
+ }
70
+ toString() {
71
+ return `Snapshot(${this._name}, id=${this._id}, paramId=${this._paramId})`;
72
+ }
73
+ /**
74
+ * Converts to API-compatible value format for command payloads.
75
+ */
76
+ toApiValue() {
77
+ return {
78
+ paramId: this._paramId,
79
+ id: this._id,
80
+ };
81
+ }
82
+ }
83
+ //# sourceMappingURL=Snapshot.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"Snapshot.js","sourceRoot":"","sources":["../../../src/domain/value-objects/Snapshot.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;GAkBG;AACH,MAAM,OAAO,QAAQ;IAKnB,YAAY,EAAU,EAAE,OAAe,EAAE,IAAY;QACnD,IAAI,CAAC,UAAU,CAAC,EAAE,CAAC,CAAC;QACpB,IAAI,CAAC,eAAe,CAAC,OAAO,CAAC,CAAC;QAC9B,IAAI,CAAC,YAAY,CAAC,IAAI,CAAC,CAAC;QAExB,IAAI,CAAC,GAAG,GAAG,EAAE,CAAC;QACd,IAAI,CAAC,QAAQ,GAAG,OAAO,CAAC;QACxB,IAAI,CAAC,KAAK,GAAG,IAAI,CAAC,IAAI,EAAE,CAAC;QAEzB,MAAM,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC;IACtB,CAAC;IAEO,UAAU,CAAC,EAAU;QAC3B,IAAI,CAAC,MAAM,CAAC,SAAS,CAAC,EAAE,CAAC,IAAI,EAAE,IAAI,CAAC,EAAE,CAAC;YACrC,MAAM,IAAI,KAAK,CAAC,+BAA+B,CAAC,CAAC;QACnD,CAAC;IACH,CAAC;IAEO,eAAe,CAAC,OAAe;QACrC,IAAI,CAAC,MAAM,CAAC,SAAS,CAAC,OAAO,CAAC,IAAI,OAAO,IAAI,CAAC,EAAE,CAAC;YAC/C,MAAM,IAAI,KAAK,CAAC,oCAAoC,CAAC,CAAC;QACxD,CAAC;IACH,CAAC;IAEO,YAAY,CAAC,IAAY;QAC/B,IAAI,CAAC,IAAI,IAAI,OAAO,IAAI,KAAK,QAAQ,IAAI,IAAI,CAAC,IAAI,EAAE,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;YAClE,MAAM,IAAI,KAAK,CAAC,iCAAiC,CAAC,CAAC;QACrD,CAAC;IACH,CAAC;IAED,IAAI,EAAE;QACJ,OAAO,IAAI,CAAC,GAAG,CAAC;IAClB,CAAC;IAED,IAAI,OAAO;QACT,OAAO,IAAI,CAAC,QAAQ,CAAC;IACvB,CAAC;IAED,IAAI,IAAI;QACN,OAAO,IAAI,CAAC,KAAK,CAAC;IACpB,CAAC;IAED;;OAEG;IACH,MAAM,CAAC,KAAe;QACpB,OAAO,IAAI,CAAC,GAAG,KAAK,KAAK,CAAC,GAAG,IAAI,IAAI,CAAC,QAAQ,KAAK,KAAK,CAAC,QAAQ,CAAC;IACpE,CAAC;IAED,QAAQ;QACN,OAAO;YACL,EAAE,EAAE,IAAI,CAAC,GAAG;YACZ,OAAO,EAAE,IAAI,CAAC,QAAQ;YACtB,IAAI,EAAE,IAAI,CAAC,KAAK;SACjB,CAAC;IACJ,CAAC;IAED,MAAM,CAAC,UAAU,CAAC,GAAkD;QAClE,OAAO,IAAI,QAAQ,CAAC,GAAG,CAAC,EAAE,EAAE,GAAG,CAAC,OAAO,EAAE,GAAG,CAAC,IAAI,CAAC,CAAC;IACrD,CAAC;IAED,QAAQ;QACN,OAAO,YAAY,IAAI,CAAC,KAAK,QAAQ,IAAI,CAAC,GAAG,aAAa,IAAI,CAAC,QAAQ,GAAG,CAAC;IAC7E,CAAC;IAED;;OAEG;IACH,UAAU;QACR,OAAO;YACL,OAAO,EAAE,IAAI,CAAC,QAAQ;YACtB,EAAE,EAAE,IAAI,CAAC,GAAG;SACb,CAAC;IACJ,CAAC;CACF"}
@@ -2,6 +2,8 @@ export { ColorRgb } from './ColorRgb';
2
2
  export { ColorTemperature } from './ColorTemperature';
3
3
  export { Brightness } from './Brightness';
4
4
  export { LightScene } from './LightScene';
5
+ export { Snapshot } from './Snapshot';
6
+ export { DiyScene } from './DiyScene';
5
7
  export { SegmentColor } from './SegmentColor';
6
8
  export { MusicMode } from './MusicMode';
7
9
  //# sourceMappingURL=index.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/domain/value-objects/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAE,MAAM,YAAY,CAAC;AACtC,OAAO,EAAE,gBAAgB,EAAE,MAAM,oBAAoB,CAAC;AACtD,OAAO,EAAE,UAAU,EAAE,MAAM,cAAc,CAAC;AAC1C,OAAO,EAAE,UAAU,EAAE,MAAM,cAAc,CAAC;AAC1C,OAAO,EAAE,YAAY,EAAE,MAAM,gBAAgB,CAAC;AAC9C,OAAO,EAAE,SAAS,EAAE,MAAM,aAAa,CAAC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/domain/value-objects/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAE,MAAM,YAAY,CAAC;AACtC,OAAO,EAAE,gBAAgB,EAAE,MAAM,oBAAoB,CAAC;AACtD,OAAO,EAAE,UAAU,EAAE,MAAM,cAAc,CAAC;AAC1C,OAAO,EAAE,UAAU,EAAE,MAAM,cAAc,CAAC;AAC1C,OAAO,EAAE,QAAQ,EAAE,MAAM,YAAY,CAAC;AACtC,OAAO,EAAE,QAAQ,EAAE,MAAM,YAAY,CAAC;AACtC,OAAO,EAAE,YAAY,EAAE,MAAM,gBAAgB,CAAC;AAC9C,OAAO,EAAE,SAAS,EAAE,MAAM,aAAa,CAAC"}
@@ -2,6 +2,8 @@ export { ColorRgb } from './ColorRgb';
2
2
  export { ColorTemperature } from './ColorTemperature';
3
3
  export { Brightness } from './Brightness';
4
4
  export { LightScene } from './LightScene';
5
+ export { Snapshot } from './Snapshot';
6
+ export { DiyScene } from './DiyScene';
5
7
  export { SegmentColor } from './SegmentColor';
6
8
  export { MusicMode } from './MusicMode';
7
9
  //# sourceMappingURL=index.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/domain/value-objects/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAE,MAAM,YAAY,CAAC;AACtC,OAAO,EAAE,gBAAgB,EAAE,MAAM,oBAAoB,CAAC;AACtD,OAAO,EAAE,UAAU,EAAE,MAAM,cAAc,CAAC;AAC1C,OAAO,EAAE,UAAU,EAAE,MAAM,cAAc,CAAC;AAC1C,OAAO,EAAE,YAAY,EAAE,MAAM,gBAAgB,CAAC;AAC9C,OAAO,EAAE,SAAS,EAAE,MAAM,aAAa,CAAC"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/domain/value-objects/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAE,MAAM,YAAY,CAAC;AACtC,OAAO,EAAE,gBAAgB,EAAE,MAAM,oBAAoB,CAAC;AACtD,OAAO,EAAE,UAAU,EAAE,MAAM,cAAc,CAAC;AAC1C,OAAO,EAAE,UAAU,EAAE,MAAM,cAAc,CAAC;AAC1C,OAAO,EAAE,QAAQ,EAAE,MAAM,YAAY,CAAC;AACtC,OAAO,EAAE,QAAQ,EAAE,MAAM,YAAY,CAAC;AACtC,OAAO,EAAE,YAAY,EAAE,MAAM,gBAAgB,CAAC;AAC9C,OAAO,EAAE,SAAS,EAAE,MAAM,aAAa,CAAC"}
package/dist/index.d.ts CHANGED
@@ -1,6 +1,6 @@
1
1
  export { GoveeClient, type GoveeClientConfig } from './GoveeClient';
2
- export { GoveeDevice, DeviceState, Command, PowerOnCommand, PowerOffCommand, BrightnessCommand, ColorCommand, ColorTemperatureCommand, LightSceneCommand, SegmentColorRgbCommand, SegmentBrightnessCommand, MusicModeCommand, ToggleCommand, ModeCommand, CommandFactory, type PowerState, type ColorState, type ColorTemperatureState, type BrightnessState, type LightSceneState, type SegmentColorState, type SegmentBrightnessState, type MusicModeState, type ToggleState, type ModeState, type StateProperty, } from './domain/entities';
3
- export { ColorRgb, ColorTemperature, Brightness, LightScene, SegmentColor, MusicMode, } from './domain/value-objects';
2
+ export { GoveeDevice, DeviceState, Command, PowerOnCommand, PowerOffCommand, BrightnessCommand, ColorCommand, ColorTemperatureCommand, LightSceneCommand, SnapshotCommand, DiySceneCommand, SegmentColorRgbCommand, SegmentBrightnessCommand, MusicModeCommand, ToggleCommand, ModeCommand, CommandFactory, type PowerState, type ColorState, type ColorTemperatureState, type BrightnessState, type LightSceneState, type SegmentColorState, type SegmentBrightnessState, type MusicModeState, type ToggleState, type ModeState, type StateProperty, } from './domain/entities';
3
+ export { ColorRgb, ColorTemperature, Brightness, LightScene, Snapshot, DiyScene, SegmentColor, MusicMode, } from './domain/value-objects';
4
4
  export { GoveeApiClientError, GoveeApiError, InvalidApiKeyError, RateLimitError, NetworkError, ValidationError, } from './errors';
5
5
  export { GoveeControlService, type GoveeControlServiceConfig } from './services';
6
6
  export { GoveeDeviceRepository } from './infrastructure';
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,WAAW,EAAE,KAAK,iBAAiB,EAAE,MAAM,eAAe,CAAC;AAGpE,OAAO,EACL,WAAW,EACX,WAAW,EACX,OAAO,EACP,cAAc,EACd,eAAe,EACf,iBAAiB,EACjB,YAAY,EACZ,uBAAuB,EACvB,iBAAiB,EACjB,sBAAsB,EACtB,wBAAwB,EACxB,gBAAgB,EAChB,aAAa,EACb,WAAW,EACX,cAAc,EACd,KAAK,UAAU,EACf,KAAK,UAAU,EACf,KAAK,qBAAqB,EAC1B,KAAK,eAAe,EACpB,KAAK,eAAe,EACpB,KAAK,iBAAiB,EACtB,KAAK,sBAAsB,EAC3B,KAAK,cAAc,EACnB,KAAK,WAAW,EAChB,KAAK,SAAS,EACd,KAAK,aAAa,GACnB,MAAM,mBAAmB,CAAC;AAG3B,OAAO,EACL,QAAQ,EACR,gBAAgB,EAChB,UAAU,EACV,UAAU,EACV,YAAY,EACZ,SAAS,GACV,MAAM,wBAAwB,CAAC;AAGhC,OAAO,EACL,mBAAmB,EACnB,aAAa,EACb,kBAAkB,EAClB,cAAc,EACd,YAAY,EACZ,eAAe,GAChB,MAAM,UAAU,CAAC;AAGlB,OAAO,EAAE,mBAAmB,EAAE,KAAK,yBAAyB,EAAE,MAAM,YAAY,CAAC;AACjF,OAAO,EAAE,qBAAqB,EAAE,MAAM,kBAAkB,CAAC;AACzD,OAAO,EAAE,KAAK,sBAAsB,EAAE,MAAM,uBAAuB,CAAC;AAGpE,OAAO,EACL,WAAW,EACX,KAAK,iBAAiB,EACtB,KAAK,eAAe,EACpB,KAAK,YAAY,EACjB,KAAK,cAAc,EACnB,KAAK,oBAAoB,EACzB,KAAK,YAAY,GAClB,MAAM,wBAAwB,CAAC;AAGhC,OAAO,EACL,0BAA0B,EAC1B,wBAAwB,EACxB,0BAA0B,EAC1B,gCAAgC,EAChC,KAAK,oBAAoB,EACzB,KAAK,kBAAkB,EACvB,KAAK,oBAAoB,EACzB,KAAK,0BAA0B,GAChC,MAAM,mCAAmC,CAAC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,WAAW,EAAE,KAAK,iBAAiB,EAAE,MAAM,eAAe,CAAC;AAGpE,OAAO,EACL,WAAW,EACX,WAAW,EACX,OAAO,EACP,cAAc,EACd,eAAe,EACf,iBAAiB,EACjB,YAAY,EACZ,uBAAuB,EACvB,iBAAiB,EACjB,eAAe,EACf,eAAe,EACf,sBAAsB,EACtB,wBAAwB,EACxB,gBAAgB,EAChB,aAAa,EACb,WAAW,EACX,cAAc,EACd,KAAK,UAAU,EACf,KAAK,UAAU,EACf,KAAK,qBAAqB,EAC1B,KAAK,eAAe,EACpB,KAAK,eAAe,EACpB,KAAK,iBAAiB,EACtB,KAAK,sBAAsB,EAC3B,KAAK,cAAc,EACnB,KAAK,WAAW,EAChB,KAAK,SAAS,EACd,KAAK,aAAa,GACnB,MAAM,mBAAmB,CAAC;AAG3B,OAAO,EACL,QAAQ,EACR,gBAAgB,EAChB,UAAU,EACV,UAAU,EACV,QAAQ,EACR,QAAQ,EACR,YAAY,EACZ,SAAS,GACV,MAAM,wBAAwB,CAAC;AAGhC,OAAO,EACL,mBAAmB,EACnB,aAAa,EACb,kBAAkB,EAClB,cAAc,EACd,YAAY,EACZ,eAAe,GAChB,MAAM,UAAU,CAAC;AAGlB,OAAO,EAAE,mBAAmB,EAAE,KAAK,yBAAyB,EAAE,MAAM,YAAY,CAAC;AACjF,OAAO,EAAE,qBAAqB,EAAE,MAAM,kBAAkB,CAAC;AACzD,OAAO,EAAE,KAAK,sBAAsB,EAAE,MAAM,uBAAuB,CAAC;AAGpE,OAAO,EACL,WAAW,EACX,KAAK,iBAAiB,EACtB,KAAK,eAAe,EACpB,KAAK,YAAY,EACjB,KAAK,cAAc,EACnB,KAAK,oBAAoB,EACzB,KAAK,YAAY,GAClB,MAAM,wBAAwB,CAAC;AAGhC,OAAO,EACL,0BAA0B,EAC1B,wBAAwB,EACxB,0BAA0B,EAC1B,gCAAgC,EAChC,KAAK,oBAAoB,EACzB,KAAK,kBAAkB,EACvB,KAAK,oBAAoB,EACzB,KAAK,0BAA0B,GAChC,MAAM,mCAAmC,CAAC"}
package/dist/index.js CHANGED
@@ -1,9 +1,9 @@
1
1
  // Main client
2
2
  export { GoveeClient } from './GoveeClient';
3
3
  // Domain entities
4
- export { GoveeDevice, DeviceState, Command, PowerOnCommand, PowerOffCommand, BrightnessCommand, ColorCommand, ColorTemperatureCommand, LightSceneCommand, SegmentColorRgbCommand, SegmentBrightnessCommand, MusicModeCommand, ToggleCommand, ModeCommand, CommandFactory, } from './domain/entities';
4
+ export { GoveeDevice, DeviceState, Command, PowerOnCommand, PowerOffCommand, BrightnessCommand, ColorCommand, ColorTemperatureCommand, LightSceneCommand, SnapshotCommand, DiySceneCommand, SegmentColorRgbCommand, SegmentBrightnessCommand, MusicModeCommand, ToggleCommand, ModeCommand, CommandFactory, } from './domain/entities';
5
5
  // Value objects
6
- export { ColorRgb, ColorTemperature, Brightness, LightScene, SegmentColor, MusicMode, } from './domain/value-objects';
6
+ export { ColorRgb, ColorTemperature, Brightness, LightScene, Snapshot, DiyScene, SegmentColor, MusicMode, } from './domain/value-objects';
7
7
  // Error classes
8
8
  export { GoveeApiClientError, GoveeApiError, InvalidApiKeyError, RateLimitError, NetworkError, ValidationError, } from './errors';
9
9
  // Services and repositories (for advanced usage)
package/dist/index.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,cAAc;AACd,OAAO,EAAE,WAAW,EAA0B,MAAM,eAAe,CAAC;AAEpE,kBAAkB;AAClB,OAAO,EACL,WAAW,EACX,WAAW,EACX,OAAO,EACP,cAAc,EACd,eAAe,EACf,iBAAiB,EACjB,YAAY,EACZ,uBAAuB,EACvB,iBAAiB,EACjB,sBAAsB,EACtB,wBAAwB,EACxB,gBAAgB,EAChB,aAAa,EACb,WAAW,EACX,cAAc,GAYf,MAAM,mBAAmB,CAAC;AAE3B,gBAAgB;AAChB,OAAO,EACL,QAAQ,EACR,gBAAgB,EAChB,UAAU,EACV,UAAU,EACV,YAAY,EACZ,SAAS,GACV,MAAM,wBAAwB,CAAC;AAEhC,gBAAgB;AAChB,OAAO,EACL,mBAAmB,EACnB,aAAa,EACb,kBAAkB,EAClB,cAAc,EACd,YAAY,EACZ,eAAe,GAChB,MAAM,UAAU,CAAC;AAElB,iDAAiD;AACjD,OAAO,EAAE,mBAAmB,EAAkC,MAAM,YAAY,CAAC;AACjF,OAAO,EAAE,qBAAqB,EAAE,MAAM,kBAAkB,CAAC;AAGzD,mDAAmD;AACnD,OAAO,EACL,WAAW,GAOZ,MAAM,wBAAwB,CAAC;AAEhC,0CAA0C;AAC1C,OAAO,EACL,0BAA0B,EAC1B,wBAAwB,EACxB,0BAA0B,EAC1B,gCAAgC,GAKjC,MAAM,mCAAmC,CAAC"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,cAAc;AACd,OAAO,EAAE,WAAW,EAA0B,MAAM,eAAe,CAAC;AAEpE,kBAAkB;AAClB,OAAO,EACL,WAAW,EACX,WAAW,EACX,OAAO,EACP,cAAc,EACd,eAAe,EACf,iBAAiB,EACjB,YAAY,EACZ,uBAAuB,EACvB,iBAAiB,EACjB,eAAe,EACf,eAAe,EACf,sBAAsB,EACtB,wBAAwB,EACxB,gBAAgB,EAChB,aAAa,EACb,WAAW,EACX,cAAc,GAYf,MAAM,mBAAmB,CAAC;AAE3B,gBAAgB;AAChB,OAAO,EACL,QAAQ,EACR,gBAAgB,EAChB,UAAU,EACV,UAAU,EACV,QAAQ,EACR,QAAQ,EACR,YAAY,EACZ,SAAS,GACV,MAAM,wBAAwB,CAAC;AAEhC,gBAAgB;AAChB,OAAO,EACL,mBAAmB,EACnB,aAAa,EACb,kBAAkB,EAClB,cAAc,EACd,YAAY,EACZ,eAAe,GAChB,MAAM,UAAU,CAAC;AAElB,iDAAiD;AACjD,OAAO,EAAE,mBAAmB,EAAkC,MAAM,YAAY,CAAC;AACjF,OAAO,EAAE,qBAAqB,EAAE,MAAM,kBAAkB,CAAC;AAGzD,mDAAmD;AACnD,OAAO,EACL,WAAW,GAOZ,MAAM,wBAAwB,CAAC;AAEhC,0CAA0C;AAC1C,OAAO,EACL,0BAA0B,EAC1B,wBAAwB,EACxB,0BAA0B,EAC1B,gCAAgC,GAKjC,MAAM,mCAAmC,CAAC"}
@@ -3,7 +3,7 @@ import { IGoveeDeviceRepository } from '../domain/repositories/IGoveeDeviceRepos
3
3
  import { GoveeDevice } from '../domain/entities/GoveeDevice';
4
4
  import { DeviceState } from '../domain/entities/DeviceState';
5
5
  import { Command } from '../domain/entities/Command';
6
- import { LightScene } from '../domain/value-objects';
6
+ import { LightScene, Snapshot, DiyScene } from '../domain/value-objects';
7
7
  interface GoveeApiConfig {
8
8
  apiKey: string;
9
9
  timeout?: number;
@@ -22,10 +22,26 @@ export declare class GoveeDeviceRepository implements IGoveeDeviceRepository {
22
22
  findState(deviceId: string, sku: string): Promise<DeviceState>;
23
23
  sendCommand(deviceId: string, sku: string, command: Command): Promise<void>;
24
24
  findDynamicScenes(deviceId: string, sku: string): Promise<LightScene[]>;
25
+ findSnapshots(deviceId: string, sku: string): Promise<Snapshot[]>;
26
+ findDiyScenes(deviceId: string, sku: string): Promise<DiyScene[]>;
27
+ /**
28
+ * Shared helper for querying the /device/scenes endpoint and
29
+ * extracting entries by capability instance name.
30
+ */
31
+ private findDynamicScenesByInstance;
32
+ private findSnapshotsFromDeviceCapabilities;
25
33
  private validateDeviceParams;
34
+ private parseStructuredDynamicSceneValue;
26
35
  private convertCommandToCapability;
27
36
  private packColorRgbValue;
28
37
  private unpackColorRgbValue;
38
+ /**
39
+ * Read the device's actual online state from the `devices.capabilities.online`
40
+ * capability if present. Returns true when the capability is missing so we
41
+ * don't regress behavior for devices that don't report online state yet
42
+ * still respond to the state endpoint.
43
+ */
44
+ private parseOnlineState;
29
45
  private mapCapabilitiesToStateProperties;
30
46
  }
31
47
  export {};
@@ -1 +1 @@
1
- {"version":3,"file":"GoveeDeviceRepository.d.ts","sourceRoot":"","sources":["../../src/infrastructure/GoveeDeviceRepository.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,MAAM,EAAE,MAAM,MAAM,CAAC;AAC9B,OAAO,EAAE,sBAAsB,EAAE,MAAM,+CAA+C,CAAC;AACvF,OAAO,EAAE,WAAW,EAAE,MAAM,gCAAgC,CAAC;AAC7D,OAAO,EACL,WAAW,EAMZ,MAAM,gCAAgC,CAAC;AACxC,OAAO,EAAE,OAAO,EAAE,MAAM,4BAA4B,CAAC;AACrD,OAAO,EAIL,UAAU,EAGX,MAAM,yBAAyB,CAAC;AAejC,UAAU,cAAc;IACtB,MAAM,EAAE,MAAM,CAAC;IACf,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,MAAM,CAAC,EAAE,MAAM,CAAC;CACjB;AAsFD,qBAAa,qBAAsB,YAAW,sBAAsB;IAClE,OAAO,CAAC,QAAQ,CAAC,UAAU,CAAgB;IAC3C,OAAO,CAAC,QAAQ,CAAC,MAAM,CAAqB;IAC5C,OAAO,CAAC,MAAM,CAAC,QAAQ,CAAC,QAAQ,CAAmC;IAEnE,OAAO,CAAC,iBAAiB;gBAIb,MAAM,EAAE,cAAc;IAgBlC,OAAO,CAAC,cAAc;IAYtB,OAAO,CAAC,iBAAiB;IAqCzB,OAAO,CAAC,eAAe;IAkCjB,OAAO,IAAI,OAAO,CAAC,WAAW,EAAE,CAAC;IA8GjC,SAAS,CAAC,QAAQ,EAAE,MAAM,EAAE,GAAG,EAAE,MAAM,GAAG,OAAO,CAAC,WAAW,CAAC;IAuD9D,WAAW,CAAC,QAAQ,EAAE,MAAM,EAAE,GAAG,EAAE,MAAM,EAAE,OAAO,EAAE,OAAO,GAAG,OAAO,CAAC,IAAI,CAAC;IA6C3E,iBAAiB,CAAC,QAAQ,EAAE,MAAM,EAAE,GAAG,EAAE,MAAM,GAAG,OAAO,CAAC,UAAU,EAAE,CAAC;IA2D7E,OAAO,CAAC,oBAAoB;IAS5B,OAAO,CAAC,0BAA0B;IAuElC,OAAO,CAAC,iBAAiB;IAiBzB,OAAO,CAAC,mBAAmB;IAY3B,OAAO,CAAC,gCAAgC;CAqFzC"}
1
+ {"version":3,"file":"GoveeDeviceRepository.d.ts","sourceRoot":"","sources":["../../src/infrastructure/GoveeDeviceRepository.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,MAAM,EAAE,MAAM,MAAM,CAAC;AAC9B,OAAO,EAAE,sBAAsB,EAAE,MAAM,+CAA+C,CAAC;AACvF,OAAO,EAAE,WAAW,EAAE,MAAM,gCAAgC,CAAC;AAC7D,OAAO,EACL,WAAW,EAMZ,MAAM,gCAAgC,CAAC;AACxC,OAAO,EAAE,OAAO,EAAE,MAAM,4BAA4B,CAAC;AACrD,OAAO,EAIL,UAAU,EACV,QAAQ,EACR,QAAQ,EAGT,MAAM,yBAAyB,CAAC;AAgBjC,UAAU,cAAc;IACtB,MAAM,EAAE,MAAM,CAAC;IACf,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,MAAM,CAAC,EAAE,MAAM,CAAC;CACjB;AAsFD,qBAAa,qBAAsB,YAAW,sBAAsB;IAClE,OAAO,CAAC,QAAQ,CAAC,UAAU,CAAgB;IAC3C,OAAO,CAAC,QAAQ,CAAC,MAAM,CAAqB;IAC5C,OAAO,CAAC,MAAM,CAAC,QAAQ,CAAC,QAAQ,CAAmC;IAEnE,OAAO,CAAC,iBAAiB;gBAIb,MAAM,EAAE,cAAc;IAgBlC,OAAO,CAAC,cAAc;IAYtB,OAAO,CAAC,iBAAiB;IAqCzB,OAAO,CAAC,eAAe;IAkCjB,OAAO,IAAI,OAAO,CAAC,WAAW,EAAE,CAAC;IA8GjC,SAAS,CAAC,QAAQ,EAAE,MAAM,EAAE,GAAG,EAAE,MAAM,GAAG,OAAO,CAAC,WAAW,CAAC;IAuD9D,WAAW,CAAC,QAAQ,EAAE,MAAM,EAAE,GAAG,EAAE,MAAM,EAAE,OAAO,EAAE,OAAO,GAAG,OAAO,CAAC,IAAI,CAAC;IA6C3E,iBAAiB,CAAC,QAAQ,EAAE,MAAM,EAAE,GAAG,EAAE,MAAM,GAAG,OAAO,CAAC,UAAU,EAAE,CAAC;IAyEvE,aAAa,CAAC,QAAQ,EAAE,MAAM,EAAE,GAAG,EAAE,MAAM,GAAG,OAAO,CAAC,QAAQ,EAAE,CAAC;IAejE,aAAa,CAAC,QAAQ,EAAE,MAAM,EAAE,GAAG,EAAE,MAAM,GAAG,OAAO,CAAC,QAAQ,EAAE,CAAC;IAqEvE;;;OAGG;YACW,2BAA2B;YA6E3B,mCAAmC;IAgDjD,OAAO,CAAC,oBAAoB;IAS5B,OAAO,CAAC,gCAAgC;IA0BxC,OAAO,CAAC,0BAA0B;IA+ElC,OAAO,CAAC,iBAAiB;IAiBzB,OAAO,CAAC,mBAAmB;IAY3B;;;;;OAKG;IACH,OAAO,CAAC,gBAAgB;IAkBxB,OAAO,CAAC,gCAAgC;CAqFzC"}
@@ -1,9 +1,9 @@
1
1
  import axios from 'axios';
2
2
  import { GoveeDevice } from '../domain/entities/GoveeDevice';
3
3
  import { DeviceState, } from '../domain/entities/DeviceState';
4
- import { ColorRgb, ColorTemperature, Brightness, LightScene, SegmentColor, MusicMode, } from '../domain/value-objects';
4
+ import { ColorRgb, ColorTemperature, Brightness, LightScene, Snapshot, DiyScene, SegmentColor, MusicMode, } from '../domain/value-objects';
5
5
  import { GoveeApiError, InvalidApiKeyError, RateLimitError, NetworkError, ValidationError, } from '../errors';
6
- import { GoveeDevicesResponseSchema, GoveeStateResponseSchema, GoveeCommandResponseSchema, GoveeDynamicScenesResponseSchema, } from './response-schemas';
6
+ import { GoveeDevicesResponseSchema, GoveeStateResponseSchema, GoveeCommandResponseSchema, GoveeDynamicScenesResponseSchema, GoveeDiyScenesResponseSchema, } from './response-schemas';
7
7
  export class GoveeDeviceRepository {
8
8
  generateRequestId() {
9
9
  return crypto.randomUUID();
@@ -163,8 +163,11 @@ export class GoveeDeviceRepository {
163
163
  }
164
164
  // Parse capabilities into state properties
165
165
  const stateProperties = this.mapCapabilitiesToStateProperties(apiResponse.data.capabilities);
166
- const deviceState = new DeviceState(deviceId, sku, true, // Assume online if we get a response
167
- stateProperties);
166
+ // Parse the device's actual online state from the online capability.
167
+ // Defaults to true when absent, matching pre-existing behavior — some
168
+ // devices don't report online state explicitly but clearly respond.
169
+ const online = this.parseOnlineState(apiResponse.data.capabilities);
170
+ const deviceState = new DeviceState(deviceId, sku, online, stateProperties);
168
171
  this.logger?.info({ deviceId, sku }, 'Successfully fetched device state');
169
172
  return deviceState;
170
173
  }
@@ -230,7 +233,18 @@ export class GoveeDeviceRepository {
230
233
  for (const capability of apiResponse.payload.capabilities) {
231
234
  if (capability.type.includes('dynamic_scene') && capability.instance === 'lightScene') {
232
235
  for (const option of capability.parameters.options) {
233
- scenes.push(new LightScene(option.value.id, option.value.paramId, option.name));
236
+ const parsedValue = this.parseStructuredDynamicSceneValue(option.value);
237
+ if (!parsedValue) {
238
+ this.logger?.debug({
239
+ deviceId,
240
+ sku,
241
+ instance: capability.instance,
242
+ optionName: option.name,
243
+ value: option.value,
244
+ }, 'Skipping lightScene entry with unsupported value shape');
245
+ continue;
246
+ }
247
+ scenes.push(new LightScene(parsedValue.id, parsedValue.paramId, option.name));
234
248
  }
235
249
  }
236
250
  }
@@ -242,6 +256,148 @@ export class GoveeDeviceRepository {
242
256
  throw error;
243
257
  }
244
258
  }
259
+ async findSnapshots(deviceId, sku) {
260
+ const snapshots = await this.findDynamicScenesByInstance(deviceId, sku, 'snapshot', opt => new Snapshot(opt.value.id, opt.value.paramId, opt.name));
261
+ if (snapshots.length > 0) {
262
+ return snapshots;
263
+ }
264
+ return this.findSnapshotsFromDeviceCapabilities(deviceId, sku);
265
+ }
266
+ async findDiyScenes(deviceId, sku) {
267
+ this.validateDeviceParams(deviceId, sku);
268
+ this.logger?.info({ deviceId, sku }, 'Fetching DIY scenes');
269
+ try {
270
+ const requestBody = {
271
+ requestId: this.generateRequestId(),
272
+ payload: {
273
+ sku,
274
+ device: deviceId,
275
+ },
276
+ };
277
+ const response = await this.httpClient.post('/router/api/v1/device/diy-scenes', requestBody);
278
+ const validationResult = GoveeDiyScenesResponseSchema.safeParse(response.data);
279
+ if (!validationResult.success) {
280
+ this.logger?.error({ zodError: validationResult.error, rawData: response.data }, 'DIY scenes response validation failed');
281
+ throw ValidationError.fromZodError(validationResult.error, response.data);
282
+ }
283
+ const apiResponse = validationResult.data;
284
+ if (apiResponse.code !== 200) {
285
+ throw new GoveeApiError(`API returned error code ${apiResponse.code}: ${apiResponse.msg}`, response.status, apiResponse.code, apiResponse.msg || 'Unknown error');
286
+ }
287
+ const scenes = [];
288
+ for (const capability of apiResponse.payload.capabilities) {
289
+ if ((capability.type.includes('dynamic_scene') ||
290
+ capability.type.includes('diy_color_setting')) &&
291
+ capability.instance === 'diyScene') {
292
+ for (const option of capability.parameters.options) {
293
+ const parsedValue = this.parseStructuredDynamicSceneValue(option.value);
294
+ if (!parsedValue) {
295
+ this.logger?.debug({
296
+ deviceId,
297
+ sku,
298
+ instance: capability.instance,
299
+ optionName: option.name,
300
+ value: option.value,
301
+ }, 'Skipping diyScene entry with unsupported value shape');
302
+ continue;
303
+ }
304
+ scenes.push(new DiyScene(parsedValue.id, parsedValue.paramId, option.name));
305
+ }
306
+ }
307
+ }
308
+ this.logger?.info({ deviceId, sku, count: scenes.length }, 'Successfully fetched DIY scenes');
309
+ return scenes;
310
+ }
311
+ catch (error) {
312
+ this.logger?.error(error, 'Failed to fetch DIY scenes');
313
+ throw error;
314
+ }
315
+ }
316
+ /**
317
+ * Shared helper for querying the /device/scenes endpoint and
318
+ * extracting entries by capability instance name.
319
+ */
320
+ async findDynamicScenesByInstance(deviceId, sku, instanceName, factory) {
321
+ this.validateDeviceParams(deviceId, sku);
322
+ this.logger?.info({ deviceId, sku, instance: instanceName }, `Fetching ${instanceName} entries`);
323
+ try {
324
+ const requestBody = {
325
+ requestId: this.generateRequestId(),
326
+ payload: { sku, device: deviceId },
327
+ };
328
+ const response = await this.httpClient.post('/router/api/v1/device/scenes', requestBody);
329
+ const validationResult = GoveeDynamicScenesResponseSchema.safeParse(response.data);
330
+ if (!validationResult.success) {
331
+ this.logger?.error({ zodError: validationResult.error, rawData: response.data }, `${instanceName} response validation failed`);
332
+ throw ValidationError.fromZodError(validationResult.error, response.data);
333
+ }
334
+ const apiResponse = validationResult.data;
335
+ if (apiResponse.code !== 200) {
336
+ throw new GoveeApiError(`API returned error code ${apiResponse.code}: ${apiResponse.msg}`, response.status, apiResponse.code, apiResponse.msg || 'Unknown error');
337
+ }
338
+ const results = [];
339
+ for (const capability of apiResponse.payload.capabilities) {
340
+ if (capability.type.includes('dynamic_scene') && capability.instance === instanceName) {
341
+ for (const option of capability.parameters.options) {
342
+ const parsedValue = this.parseStructuredDynamicSceneValue(option.value);
343
+ if (!parsedValue) {
344
+ this.logger?.debug({
345
+ deviceId,
346
+ sku,
347
+ instance: instanceName,
348
+ optionName: option.name,
349
+ value: option.value,
350
+ }, 'Skipping dynamic scene entry with unsupported value shape');
351
+ continue;
352
+ }
353
+ const result = factory({ name: option.name, value: parsedValue });
354
+ if (result) {
355
+ results.push(result);
356
+ }
357
+ }
358
+ }
359
+ }
360
+ this.logger?.info({ deviceId, sku, count: results.length }, `Successfully fetched ${instanceName} entries`);
361
+ return results;
362
+ }
363
+ catch (error) {
364
+ this.logger?.error(error, `Failed to fetch ${instanceName} entries`);
365
+ throw error;
366
+ }
367
+ }
368
+ async findSnapshotsFromDeviceCapabilities(deviceId, sku) {
369
+ this.validateDeviceParams(deviceId, sku);
370
+ this.logger?.info({ deviceId, sku }, 'Fetching snapshot entries from device capabilities');
371
+ const devices = await this.findAll();
372
+ const device = devices.find(entry => entry.deviceId === deviceId && entry.model === sku);
373
+ if (!device) {
374
+ return [];
375
+ }
376
+ const snapshots = [];
377
+ const addOptions = (options) => {
378
+ if (!Array.isArray(options))
379
+ return;
380
+ for (const option of options) {
381
+ const parsedValue = this.parseStructuredDynamicSceneValue(option.value);
382
+ if (!parsedValue) {
383
+ this.logger?.debug({ deviceId, sku, instance: 'snapshot', optionName: option.name, value: option.value }, 'Skipping snapshot device capability entry with unsupported value shape');
384
+ continue;
385
+ }
386
+ snapshots.push(new Snapshot(parsedValue.id, parsedValue.paramId, option.name));
387
+ }
388
+ };
389
+ for (const capability of device.capabilities) {
390
+ if (!capability.type.includes('dynamic_scene') || capability.instance !== 'snapshot') {
391
+ continue;
392
+ }
393
+ addOptions(capability.parameters?.options);
394
+ for (const field of capability.parameters?.fields ?? []) {
395
+ addOptions(field.options);
396
+ }
397
+ }
398
+ this.logger?.info({ deviceId, sku, count: snapshots.length }, 'Successfully fetched snapshot entries from device capabilities');
399
+ return snapshots;
400
+ }
245
401
  validateDeviceParams(deviceId, sku) {
246
402
  if (!deviceId || typeof deviceId !== 'string' || deviceId.trim().length === 0) {
247
403
  throw new Error('Device ID must be a non-empty string');
@@ -250,6 +406,27 @@ export class GoveeDeviceRepository {
250
406
  throw new Error('SKU must be a non-empty string');
251
407
  }
252
408
  }
409
+ parseStructuredDynamicSceneValue(value) {
410
+ if (typeof value === 'object' &&
411
+ value !== null &&
412
+ 'id' in value &&
413
+ 'paramId' in value &&
414
+ typeof value.id === 'number' &&
415
+ Number.isInteger(value.id) &&
416
+ value.id > 0 &&
417
+ typeof value.paramId === 'number' &&
418
+ Number.isInteger(value.paramId) &&
419
+ value.paramId > 0) {
420
+ return {
421
+ id: value.id,
422
+ paramId: value.paramId,
423
+ };
424
+ }
425
+ if (typeof value === 'number' && Number.isInteger(value) && value > 0) {
426
+ return { id: value, paramId: value };
427
+ }
428
+ return null;
429
+ }
253
430
  convertCommandToCapability(command) {
254
431
  const cmdObj = command.toObject();
255
432
  // Map command names to capability types
@@ -259,6 +436,8 @@ export class GoveeDeviceRepository {
259
436
  color: 'devices.capabilities.color_setting',
260
437
  colorTem: 'devices.capabilities.color_setting',
261
438
  lightScene: 'devices.capabilities.dynamic_scene',
439
+ snapshot: 'devices.capabilities.dynamic_scene',
440
+ diyScene: 'devices.capabilities.dynamic_scene',
262
441
  segmentedColorRgb: 'devices.capabilities.segment_color_setting',
263
442
  segmentedBrightness: 'devices.capabilities.segment_color_setting',
264
443
  musicMode: 'devices.capabilities.music_setting',
@@ -287,6 +466,14 @@ export class GoveeDeviceRepository {
287
466
  instance = 'lightScene';
288
467
  value = cmdObj.value;
289
468
  }
469
+ else if (cmdObj.name === 'snapshot') {
470
+ instance = 'snapshot';
471
+ value = cmdObj.value;
472
+ }
473
+ else if (cmdObj.name === 'diyScene') {
474
+ instance = 'diyScene';
475
+ value = cmdObj.value;
476
+ }
290
477
  else if (cmdObj.name === 'segmentedColorRgb') {
291
478
  instance = 'segmentedColorRgb';
292
479
  value = cmdObj.value;
@@ -342,6 +529,31 @@ export class GoveeDeviceRepository {
342
529
  }
343
530
  return value;
344
531
  }
532
+ /**
533
+ * Read the device's actual online state from the `devices.capabilities.online`
534
+ * capability if present. Returns true when the capability is missing so we
535
+ * don't regress behavior for devices that don't report online state yet
536
+ * still respond to the state endpoint.
537
+ */
538
+ parseOnlineState(capabilities) {
539
+ for (const capability of capabilities) {
540
+ if (capability.type.includes('online')) {
541
+ const value = capability.state.value;
542
+ if (typeof value === 'boolean')
543
+ return value;
544
+ if (typeof value === 'number')
545
+ return value !== 0;
546
+ if (typeof value === 'string') {
547
+ const lowered = value.toLowerCase();
548
+ if (lowered === 'true' || lowered === 'online' || lowered === '1')
549
+ return true;
550
+ if (lowered === 'false' || lowered === 'offline' || lowered === '0')
551
+ return false;
552
+ }
553
+ }
554
+ }
555
+ return true;
556
+ }
345
557
  mapCapabilitiesToStateProperties(capabilities) {
346
558
  const result = {};
347
559
  for (const capability of capabilities) {
@@ -1 +1 @@
1
- {"version":3,"file":"GoveeDeviceRepository.js","sourceRoot":"","sources":["../../src/infrastructure/GoveeDeviceRepository.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"GoveeDeviceRepository.js","sourceRoot":"","sources":["../../src/infrastructure/GoveeDeviceRepository.ts"],"names":[],"mappings":"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"}