@digital-alchemy/hass 24.10.1 → 24.10.2

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 (38) hide show
  1. package/dist/dynamic.d.ts +3 -1
  2. package/dist/extensions/events.extension.d.ts +1 -1
  3. package/dist/extensions/events.extension.js +26 -7
  4. package/dist/extensions/events.extension.js.map +1 -1
  5. package/dist/extensions/internal.extension.js +1 -1
  6. package/dist/extensions/internal.extension.js.map +1 -1
  7. package/dist/extensions/reference.extension.d.ts +51 -1
  8. package/dist/extensions/reference.extension.js +287 -181
  9. package/dist/extensions/reference.extension.js.map +1 -1
  10. package/dist/extensions/websocket-api.extension.js +4 -3
  11. package/dist/extensions/websocket-api.extension.js.map +1 -1
  12. package/dist/hass.module.d.ts +3 -3
  13. package/dist/hass.module.js +3 -3
  14. package/dist/hass.module.js.map +1 -1
  15. package/dist/helpers/entity-state.helper.d.ts +3 -5
  16. package/dist/helpers/interfaces.helper.d.ts +10 -10
  17. package/dist/helpers/interfaces.helper.js.map +1 -1
  18. package/dist/helpers/utility.helper.d.ts +5 -0
  19. package/dist/helpers/utility.helper.js +5 -0
  20. package/dist/helpers/utility.helper.js.map +1 -1
  21. package/dist/mock_assistant/mock-assistant.module.d.ts +4 -4
  22. package/dist/mock_assistant/mock-assistant.module.js +7 -0
  23. package/dist/mock_assistant/mock-assistant.module.js.map +1 -1
  24. package/dist/testing/fetch-api.spec.js +13 -13
  25. package/dist/testing/fetch-api.spec.js.map +1 -1
  26. package/package.json +27 -26
  27. package/scripts/test.sh +1 -1
  28. package/src/dynamic.ts +82 -77
  29. package/src/extensions/events.extension.ts +26 -10
  30. package/src/extensions/internal.extension.ts +1 -1
  31. package/src/extensions/reference.extension.ts +314 -200
  32. package/src/extensions/websocket-api.extension.ts +4 -3
  33. package/src/hass.module.ts +4 -4
  34. package/src/helpers/entity-state.helper.ts +3 -4
  35. package/src/helpers/interfaces.helper.ts +10 -9
  36. package/src/helpers/utility.helper.ts +8 -0
  37. package/src/mock_assistant/mock-assistant.module.ts +7 -0
  38. package/src/testing/fetch-api.spec.ts +13 -13
package/dist/dynamic.d.ts CHANGED
@@ -1,3 +1,4 @@
1
+ import { RequireAtLeastOne } from "type-fest";
1
2
  import { AndroidNotificationData, AppleNotificationData, NotificationData, PICK_ENTITY } from "./helpers";
2
3
  type PICK_FROM_PLATFORM<ID extends TPlatformId, DOMAIN extends TRawDomains = TRawDomains> = Extract<REGISTRY_SETUP["platform"][`_${ID}`], PICK_ENTITY<DOMAIN>>;
3
4
  export type ENTITY_SETUP = {
@@ -3678,6 +3679,7 @@ export type iCallService = {
3678
3679
  * > ```
3679
3680
  */
3680
3681
  options?: unknown;
3682
+ } & RequireAtLeastOne<{
3681
3683
  /**
3682
3684
  * Assisted definition
3683
3685
  * > ```yaml
@@ -3687,7 +3689,7 @@ export type iCallService = {
3687
3689
  * > ```
3688
3690
  */
3689
3691
  entity_id: PICK_ENTITY<"tts"> | PICK_ENTITY<"tts">[];
3690
- }): Promise<void>;
3692
+ }>): Promise<void>;
3691
3693
  };
3692
3694
  zone: {
3693
3695
  /**
@@ -1,3 +1,3 @@
1
1
  import { TServiceParams } from "@digital-alchemy/core";
2
2
  import { HassEventsService } from "../helpers";
3
- export declare function Events({ event }: TServiceParams): HassEventsService;
3
+ export declare function EventsService({ event }: TServiceParams): HassEventsService;
@@ -1,12 +1,31 @@
1
+ import { is } from "@digital-alchemy/core";
1
2
  import { AREA_REGISTRY_UPDATED, DEVICE_REGISTRY_UPDATED, ENTITY_REGISTRY_UPDATED, FLOOR_REGISTRY_UPDATED, LABEL_REGISTRY_UPDATED, ZONE_REGISTRY_UPDATED, } from "../helpers";
2
- export function Events({ event }) {
3
+ export function EventsService({ event }) {
3
4
  return {
4
- onAreaRegistryUpdate: (callback) => event.on(AREA_REGISTRY_UPDATED, callback),
5
- onDeviceRegistryUpdate: (callback) => event.on(DEVICE_REGISTRY_UPDATED, callback),
6
- onEntityRegistryUpdate: (callback) => event.on(ENTITY_REGISTRY_UPDATED, callback),
7
- onFloorRegistryUpdate: (callback) => event.on(FLOOR_REGISTRY_UPDATED, callback),
8
- onLabelRegistryUpdate: (callback) => event.on(LABEL_REGISTRY_UPDATED, callback),
9
- onZoneRegistryUpdate: (callback) => event.on(ZONE_REGISTRY_UPDATED, callback),
5
+ onAreaRegistryUpdate: (callback) => {
6
+ event.on(AREA_REGISTRY_UPDATED, callback);
7
+ return is.removeFn(() => event.removeListener(AREA_REGISTRY_UPDATED, callback));
8
+ },
9
+ onDeviceRegistryUpdate: (callback) => {
10
+ event.on(DEVICE_REGISTRY_UPDATED, callback);
11
+ return is.removeFn(() => event.removeListener(DEVICE_REGISTRY_UPDATED, callback));
12
+ },
13
+ onEntityRegistryUpdate: (callback) => {
14
+ event.on(ENTITY_REGISTRY_UPDATED, callback);
15
+ return is.removeFn(() => event.removeListener(ENTITY_REGISTRY_UPDATED, callback));
16
+ },
17
+ onFloorRegistryUpdate: (callback) => {
18
+ event.on(FLOOR_REGISTRY_UPDATED, callback);
19
+ return is.removeFn(() => event.removeListener(FLOOR_REGISTRY_UPDATED, callback));
20
+ },
21
+ onLabelRegistryUpdate: (callback) => {
22
+ event.on(LABEL_REGISTRY_UPDATED, callback);
23
+ return is.removeFn(() => event.removeListener(LABEL_REGISTRY_UPDATED, callback));
24
+ },
25
+ onZoneRegistryUpdate: (callback) => {
26
+ event.on(ZONE_REGISTRY_UPDATED, callback);
27
+ return is.removeFn(() => event.removeListener(ZONE_REGISTRY_UPDATED, callback));
28
+ },
10
29
  };
11
30
  }
12
31
  //# sourceMappingURL=events.extension.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"events.extension.js","sourceRoot":"","sources":["../../src/extensions/events.extension.ts"],"names":[],"mappings":"AAEA,OAAO,EACL,qBAAqB,EACrB,uBAAuB,EACvB,uBAAuB,EACvB,sBAAsB,EAEtB,sBAAsB,EAEtB,qBAAqB,GACtB,MAAM,YAAY,CAAC;AAEpB,MAAM,UAAU,MAAM,CAAC,EAAE,KAAK,EAAkB;IAC9C,OAAO;QACL,oBAAoB,EAAE,CAAC,QAAwB,EAAE,EAAE,CAAC,KAAK,CAAC,EAAE,CAAC,qBAAqB,EAAE,QAAQ,CAAC;QAC7F,sBAAsB,EAAE,CAAC,QAAwB,EAAE,EAAE,CACnD,KAAK,CAAC,EAAE,CAAC,uBAAuB,EAAE,QAAQ,CAAC;QAC7C,sBAAsB,EAAE,CAAC,QAAwB,EAAE,EAAE,CACnD,KAAK,CAAC,EAAE,CAAC,uBAAuB,EAAE,QAAQ,CAAC;QAC7C,qBAAqB,EAAE,CAAC,QAAwB,EAAE,EAAE,CAAC,KAAK,CAAC,EAAE,CAAC,sBAAsB,EAAE,QAAQ,CAAC;QAC/F,qBAAqB,EAAE,CAAC,QAAwB,EAAE,EAAE,CAAC,KAAK,CAAC,EAAE,CAAC,sBAAsB,EAAE,QAAQ,CAAC;QAC/F,oBAAoB,EAAE,CAAC,QAAwB,EAAE,EAAE,CAAC,KAAK,CAAC,EAAE,CAAC,qBAAqB,EAAE,QAAQ,CAAC;KAC9F,CAAC;AACJ,CAAC"}
1
+ {"version":3,"file":"events.extension.js","sourceRoot":"","sources":["../../src/extensions/events.extension.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,EAAE,EAAkB,MAAM,uBAAuB,CAAC;AAE3D,OAAO,EACL,qBAAqB,EACrB,uBAAuB,EACvB,uBAAuB,EACvB,sBAAsB,EAEtB,sBAAsB,EAEtB,qBAAqB,GACtB,MAAM,YAAY,CAAC;AAEpB,MAAM,UAAU,aAAa,CAAC,EAAE,KAAK,EAAkB;IACrD,OAAO;QACL,oBAAoB,EAAE,CAAC,QAAwB,EAAE,EAAE;YACjD,KAAK,CAAC,EAAE,CAAC,qBAAqB,EAAE,QAAQ,CAAC,CAAC;YAC1C,OAAO,EAAE,CAAC,QAAQ,CAAC,GAAG,EAAE,CAAC,KAAK,CAAC,cAAc,CAAC,qBAAqB,EAAE,QAAQ,CAAC,CAAC,CAAC;QAClF,CAAC;QACD,sBAAsB,EAAE,CAAC,QAAwB,EAAE,EAAE;YACnD,KAAK,CAAC,EAAE,CAAC,uBAAuB,EAAE,QAAQ,CAAC,CAAC;YAC5C,OAAO,EAAE,CAAC,QAAQ,CAAC,GAAG,EAAE,CAAC,KAAK,CAAC,cAAc,CAAC,uBAAuB,EAAE,QAAQ,CAAC,CAAC,CAAC;QACpF,CAAC;QACD,sBAAsB,EAAE,CAAC,QAAwB,EAAE,EAAE;YACnD,KAAK,CAAC,EAAE,CAAC,uBAAuB,EAAE,QAAQ,CAAC,CAAC;YAC5C,OAAO,EAAE,CAAC,QAAQ,CAAC,GAAG,EAAE,CAAC,KAAK,CAAC,cAAc,CAAC,uBAAuB,EAAE,QAAQ,CAAC,CAAC,CAAC;QACpF,CAAC;QACD,qBAAqB,EAAE,CAAC,QAAwB,EAAE,EAAE;YAClD,KAAK,CAAC,EAAE,CAAC,sBAAsB,EAAE,QAAQ,CAAC,CAAC;YAC3C,OAAO,EAAE,CAAC,QAAQ,CAAC,GAAG,EAAE,CAAC,KAAK,CAAC,cAAc,CAAC,sBAAsB,EAAE,QAAQ,CAAC,CAAC,CAAC;QACnF,CAAC;QACD,qBAAqB,EAAE,CAAC,QAAwB,EAAE,EAAE;YAClD,KAAK,CAAC,EAAE,CAAC,sBAAsB,EAAE,QAAQ,CAAC,CAAC;YAC3C,OAAO,EAAE,CAAC,QAAQ,CAAC,GAAG,EAAE,CAAC,KAAK,CAAC,cAAc,CAAC,sBAAsB,EAAE,QAAQ,CAAC,CAAC,CAAC;QACnF,CAAC;QACD,oBAAoB,EAAE,CAAC,QAAwB,EAAE,EAAE;YACjD,KAAK,CAAC,EAAE,CAAC,qBAAqB,EAAE,QAAQ,CAAC,CAAC;YAC1C,OAAO,EAAE,CAAC,QAAQ,CAAC,GAAG,EAAE,CAAC,KAAK,CAAC,cAAc,CAAC,qBAAqB,EAAE,QAAQ,CAAC,CAAC,CAAC;QAClF,CAAC;KACF,CAAC;AACJ,CAAC"}
@@ -60,7 +60,7 @@ export function FetchInternals({ logger, context: parentContext }) {
60
60
  // #MARK: execFetch
61
61
  async function exec({ body, headers = {}, method = "get", process, ...fetchWith }) {
62
62
  const contentType = is.object(body) ? { "Content-Type": "application/json" } : {};
63
- const result = await global.fetch(fetchCreateUrl(fetchWith), {
63
+ const result = await globalThis.fetch(fetchCreateUrl(fetchWith), {
64
64
  body: is.object(body) ? JSON.stringify(body) : body,
65
65
  headers: {
66
66
  ...contentType,
@@ -1 +1 @@
1
- {"version":3,"file":"internal.extension.js","sourceRoot":"","sources":["../../src/extensions/internal.extension.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"internal.extension.js","sourceRoot":"","sources":["../../src/extensions/internal.extension.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,EAAE,aAAa,EAAE,EAAE,EAAkB,MAAM,uBAAuB,CAAC;AACjF,OAAO,EAAE,iBAAiB,EAAE,MAAM,IAAI,CAAC;AACvC,OAAO,EAAE,QAAQ,EAAE,MAAM,QAAQ,CAAC;AAClC,OAAO,EAAE,SAAS,EAAE,MAAM,MAAM,CAAC;AAEjC,OAAO,EACL,iBAAiB,GAQlB,MAAM,YAAY,CAAC;AAEpB,MAAM,cAAc,GAAG,SAAS,CAAC,QAAQ,CAAC,CAAC;AAE3C,MAAM,UAAU,cAAc,CAAC,EAAE,MAAM,EAAE,OAAO,EAAE,aAAa,EAAkB;IAC/E,OAAO,CAAC,EAAE,OAAO,EAAE,YAAY,EAAE,OAAO,EAAE,QAAQ,EAAE,OAAO,EAAE,UAAU,EAAkB,EAAE,EAAE;QAC3F,MAAM,YAAY,GAAa,EAAE,CAAC;QAElC,IAAI,CAAC,EAAE,CAAC,KAAK,CAAC,YAAY,CAAC,EAAE,CAAC;YAC5B,MAAM,CAAC,KAAK,CAAC,EAAE,YAAY,EAAE,IAAI,EAAE,UAAU,EAAE,EAAE,qBAAqB,CAAC,CAAC;QAC1E,CAAC;QAED,SAAS,kBAAkB,CAA8B,UAA0B;YACjF,IACE,EAAE,CAAC,MAAM,CAAC,UAAU,CAAC;gBACrB,UAAU,KAAK,IAAI;gBACnB,EAAE,CAAC,MAAM,CAAC,UAAU,CAAC,UAAU,CAAC;gBAChC,EAAE,CAAC,MAAM,CAAC,UAAU,CAAC,KAAK,CAAC,EAC3B,CAAC;gBACD,0BAA0B;gBAC1B,MAAM,CAAC,KAAK,CAAC,EAAE,KAAK,EAAE,UAAU,EAAE,IAAI,EAAE,UAAU,EAAE,EAAE,UAAU,CAAC,OAAO,CAAC,CAAC;gBAE1E,4BAA4B;gBAC5B,2CAA2C;gBAC3C,MAAM,IAAI,aAAa,CAAC,UAAU,IAAI,aAAa,EAAE,UAAU,CAAC,KAAK,EAAE,UAAU,CAAC,OAAO,CAAC,CAAC;YAC7F,CAAC;YAED,OAAO,UAAe,CAAC;QACzB,CAAC;QAED,6BAA6B;QAC7B,KAAK,UAAU,mBAAmB,CAChC,OAA0B,EAC1B,QAAkB;YAElB,IAAI,OAAO,KAAK,KAAK,IAAI,OAAO,KAAK,KAAK,EAAE,CAAC;gBAC3C,OAAO,QAAa,CAAC;YACvB,CAAC;YACD,MAAM,IAAI,GAAG,MAAM,QAAQ,CAAC,IAAI,EAAE,CAAC;YACnC,IAAI,OAAO,KAAK,MAAM,EAAE,CAAC;gBACvB,OAAO,IAAoB,CAAC;YAC9B,CAAC;YACD,IAAI,CAAC,CAAC,GAAG,EAAE,GAAG,CAAC,CAAC,QAAQ,CAAC,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC;gBAC7C,IAAI,CAAC,IAAI,CAAC,CAAC,QAAQ,CAAC,IAAI,CAAC,EAAE,CAAC;oBAC1B,MAAM,CAAC,KAAK,CAAC,EAAE,IAAI,EAAE,UAAU,EAAE,IAAI,EAAE,EAAE,oBAAoB,CAAC,CAAC;gBACjE,CAAC;qBAAM,CAAC;oBACN,oEAAoE;oBACpE,uEAAuE;oBACvE,MAAM,CAAC,IAAI,CAAC,EAAE,IAAI,EAAE,UAAU,EAAE,IAAI,EAAE,EAAE,yBAAyB,CAAC,CAAC;gBACrE,CAAC;gBACD,OAAO,IAAS,CAAC;YACnB,CAAC;YACD,MAAM,MAAM,GAAG,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;YAChC,OAAO,kBAAkB,CAAI,MAAM,CAAC,CAAC;QACvC,CAAC;QAED,SAAS,cAAc,CAAC,EAAE,MAAM,EAAE,GAAG,EAAE,GAAG,SAAS,EAAa;YAC9D,IAAI,GAAG,GAAG,GAAG,IAAI,EAAE,CAAC;YACpB,IAAI,CAAC,MAAM,EAAE,CAAC;gBACZ,MAAM,IAAI,GAAG,SAAS,CAAC,OAAO,IAAI,YAAY,CAAC,QAAQ,CAAC;gBACxD,GAAG,GAAG,IAAI,GAAG,GAAG,CAAC;YACnB,CAAC;YACD,IAAI,CAAC,EAAE,CAAC,KAAK,CAAC,SAAS,CAAC,MAAM,CAAC,EAAE,CAAC;gBAChC,GAAG,GAAG,GAAG,GAAG,IAAI,iBAAiB,CAAC,SAAS,CAAC,EAAE,CAAC;YACjD,CAAC;YACD,OAAO,GAAG,CAAC;QACb,CAAC;QAED,mBAAmB;QACnB,KAAK,UAAU,IAAI,CAAyC,EAC1D,IAAI,EACJ,OAAO,GAAG,EAAE,EACZ,MAAM,GAAG,KAAK,EACd,OAAO,EACP,GAAG,SAAS,EACkB;YAC9B,MAAM,WAAW,GAAG,EAAE,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,EAAE,cAAc,EAAE,kBAAkB,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;YAClF,MAAM,MAAM,GAAG,MAAM,UAAU,CAAC,KAAK,CAAC,cAAc,CAAC,SAAS,CAAC,EAAE;gBAC/D,IAAI,EAAE,EAAE,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,IAAI;gBACnD,OAAO,EAAE;oBACP,GAAG,WAAW;oBACd,GAAG,YAAY,CAAC,YAAY;oBAC5B,GAAG,OAAO;iBACX;gBACD,MAAM;aACP,CAAC,CAAC;YACH,OAAO,MAAM,mBAAmB,CAAI,OAAO,EAAE,MAAM,CAAC,CAAC;QACvD,CAAC;QAED,KAAK,UAAU,QAAQ,CAAC,EACtB,WAAW,EACX,IAAI,EACJ,OAAO,GAAG,EAAE,EACZ,MAAM,GAAG,KAAK,EACd,GAAG,SAAS,EACI;YAChB,MAAM,GAAG,GAAW,MAAM,cAAc,CAAC,SAAS,CAAC,CAAC;YACpD,MAAM,QAAQ,GAAG,MAAM,KAAK,CAAC,GAAG,EAAE;gBAChC,IAAI,EAAE,EAAE,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,IAAI;gBACnD,OAAO,EAAE,EAAE,GAAG,YAAY,CAAC,YAAY,EAAE,GAAG,OAAO,EAAE;gBACrD,MAAM;aACP,CAAC,CAAC;YAEH,MAAM,MAAM,GAAG,iBAAiB,CAAC,WAAW,CAAC,CAAC;YAC9C,MAAM,cAAc,CAAC,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC,CAAC;QAC9C,CAAC;QAED,uBAAuB;QACvB,MAAM,YAAY,GAAG;YACnB,YAAY;YACZ,QAAQ;YACR,QAAQ;YACR,IAAI;YACJ;;eAEG;YACH,UAAU,EAAE,CAAC,GAAW,EAAE,EAAE,CAAC,CAAC,YAAY,CAAC,QAAQ,GAAG,GAAG,CAAC;YAC1D;;eAEG;YACH,UAAU,EAAE,CAAC,OAA+B,EAAE,EAAE,CAAC,CAAC,YAAY,CAAC,YAAY,GAAG,OAAO,CAAC;SACvF,CAAC;QACF,OAAO,YAAY,CAAC;IACtB,CAAC,CAAC;AACJ,CAAC"}
@@ -1,3 +1,53 @@
1
1
  import { TServiceParams } from "@digital-alchemy/core";
2
2
  import { HassReferenceService } from "../helpers";
3
- export declare function ReferenceExtension({ hass, logger, internal, event, }: TServiceParams): HassReferenceService;
3
+ /**
4
+ * ## Overview
5
+ *
6
+ * This service is intended for the creation of type safe entity references based on entity id.
7
+ *
8
+ * ```typescript
9
+ * const ref = hass.refBy.id("switch.example");
10
+ * ```
11
+ *
12
+ * These contain specialized type definitions that gets looked up by entity id, making typescript report info about the desired entity.
13
+ *
14
+ * ## Capabilities
15
+ *
16
+ * ### Event Listeners
17
+ *
18
+ * Run a callback in response to
19
+ * - `.onUpdate((new_state, old_state) => ...)`
20
+ * - `.once((new_state, old_state) => ...)`
21
+ *
22
+ * ### State lookups
23
+ *
24
+ * - `.nextState(timeout?)`
25
+ * - `.waitForState(state, timeout?)`
26
+ * - `.previous.state` | `.previous.attributes`
27
+ *
28
+ * ### Service Calling
29
+ *
30
+ * For services that appear on the same domain as the provided entity, the service call can be made directly from the reference.
31
+ *
32
+ * > Ex: `switch.example` calling `switch.turn_on`
33
+ *
34
+ * ```typescript
35
+ * ref.turn_on();
36
+ * ```
37
+ *
38
+ * The `entity_id` property that would normally be required is automatically provided by the proxy.
39
+ *
40
+ * ### Property Lookups
41
+ *
42
+ * - `.state`
43
+ * - `.entity_id`
44
+ * - `.attributes`
45
+ *
46
+ * ## Garbage Collection
47
+ *
48
+ * - `.removeAllListeners()`
49
+ *
50
+ * The reference may call the remove all active event listeners and timers at any time.
51
+ * It will interrupt any timers (nextState/waitForState), as well as detach any event listeners
52
+ */
53
+ export declare function ReferenceService({ hass, logger, internal, event, }: TServiceParams): HassReferenceService;