@digital-alchemy/hass 24.10.1 → 24.11.1
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/dynamic.d.ts +3 -1
- package/dist/extensions/events.extension.d.ts +1 -1
- package/dist/extensions/events.extension.js +26 -7
- package/dist/extensions/events.extension.js.map +1 -1
- package/dist/extensions/internal.extension.js +1 -1
- package/dist/extensions/internal.extension.js.map +1 -1
- package/dist/extensions/reference.extension.d.ts +51 -1
- package/dist/extensions/reference.extension.js +293 -181
- package/dist/extensions/reference.extension.js.map +1 -1
- package/dist/extensions/websocket-api.extension.js +4 -3
- package/dist/extensions/websocket-api.extension.js.map +1 -1
- package/dist/hass.module.d.ts +3 -3
- package/dist/hass.module.js +3 -3
- package/dist/hass.module.js.map +1 -1
- package/dist/helpers/entity-state.helper.d.ts +11 -7
- package/dist/helpers/interfaces.helper.d.ts +10 -10
- package/dist/helpers/interfaces.helper.js.map +1 -1
- package/dist/helpers/utility.helper.d.ts +5 -0
- package/dist/helpers/utility.helper.js +5 -0
- package/dist/helpers/utility.helper.js.map +1 -1
- package/dist/mock_assistant/mock-assistant.module.d.ts +4 -4
- package/dist/mock_assistant/mock-assistant.module.js +7 -0
- package/dist/mock_assistant/mock-assistant.module.js.map +1 -1
- package/dist/testing/fetch-api.spec.js +13 -13
- package/dist/testing/fetch-api.spec.js.map +1 -1
- package/package.json +27 -28
- package/scripts/test.sh +1 -1
- package/src/dynamic.ts +82 -77
- package/src/extensions/events.extension.ts +26 -10
- package/src/extensions/internal.extension.ts +1 -1
- package/src/extensions/reference.extension.ts +323 -201
- package/src/extensions/websocket-api.extension.ts +4 -3
- package/src/hass.module.ts +4 -4
- package/src/helpers/entity-state.helper.ts +11 -6
- package/src/helpers/interfaces.helper.ts +10 -9
- package/src/helpers/utility.helper.ts +8 -0
- package/src/mock_assistant/mock-assistant.module.ts +7 -0
- 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,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
|
|
3
|
+
export function EventsService({ event }) {
|
|
3
4
|
return {
|
|
4
|
-
onAreaRegistryUpdate: (callback) =>
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
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":"
|
|
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
|
|
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":"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"}
|
|
@@ -1,3 +1,53 @@
|
|
|
1
1
|
import { TServiceParams } from "@digital-alchemy/core";
|
|
2
2
|
import { HassReferenceService } from "../helpers";
|
|
3
|
-
|
|
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;
|