@digital-alchemy/hass 0.3.20 → 0.3.22
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 +3228 -198
- package/dist/dynamic.js +335 -85
- package/dist/dynamic.js.map +1 -1
- package/dist/e2e/app/entities.d.ts +5 -0
- package/dist/e2e/app/entities.js +21 -0
- package/dist/e2e/app/entities.js.map +1 -0
- package/dist/e2e/app/main.d.ts +10 -0
- package/dist/e2e/app/main.js +15 -0
- package/dist/e2e/app/main.js.map +1 -0
- package/dist/e2e/area.spec.d.ts +1 -0
- package/dist/e2e/area.spec.js +99 -0
- package/dist/e2e/area.spec.js.map +1 -0
- package/dist/e2e/call-proxy.spec.d.ts +1 -0
- package/dist/e2e/call-proxy.spec.js +57 -0
- package/dist/e2e/call-proxy.spec.js.map +1 -0
- package/dist/e2e/device.spec.d.ts +1 -0
- package/dist/e2e/device.spec.js +27 -0
- package/dist/e2e/device.spec.js.map +1 -0
- package/dist/e2e/entity.spec.d.ts +1 -0
- package/dist/e2e/entity.spec.js +328 -0
- package/dist/e2e/entity.spec.js.map +1 -0
- package/dist/e2e/fetch.spec.d.ts +1 -0
- package/dist/e2e/fetch.spec.js +79 -0
- package/dist/e2e/fetch.spec.js.map +1 -0
- package/dist/e2e/floor.spec.d.ts +1 -0
- package/dist/e2e/floor.spec.js +81 -0
- package/dist/e2e/floor.spec.js.map +1 -0
- package/dist/e2e/label.spec.d.ts +1 -0
- package/dist/e2e/label.spec.js +82 -0
- package/dist/e2e/label.spec.js.map +1 -0
- package/dist/e2e/utils.d.ts +2 -0
- package/dist/e2e/utils.js +6 -0
- package/dist/e2e/utils.js.map +1 -0
- package/dist/extensions/area.extension.d.ts +5 -5
- package/dist/extensions/area.extension.js +60 -51
- package/dist/extensions/area.extension.js.map +1 -1
- package/dist/extensions/call-proxy.extension.d.ts +1 -1
- package/dist/extensions/call-proxy.extension.js +13 -26
- package/dist/extensions/call-proxy.extension.js.map +1 -1
- package/dist/extensions/conversation.extension.js +1 -1
- package/dist/extensions/conversation.extension.js.map +1 -1
- package/dist/extensions/device.extension.d.ts +1 -1
- package/dist/extensions/device.extension.js +2 -1
- package/dist/extensions/device.extension.js.map +1 -1
- package/dist/extensions/entity.extension.d.ts +27 -14
- package/dist/extensions/entity.extension.js +64 -36
- package/dist/extensions/entity.extension.js.map +1 -1
- package/dist/extensions/fetch-api.extension.d.ts +5 -4
- package/dist/extensions/fetch-api.extension.js +41 -30
- package/dist/extensions/fetch-api.extension.js.map +1 -1
- package/dist/extensions/floor.extension.d.ts +0 -5
- package/dist/extensions/floor.extension.js +1 -2
- package/dist/extensions/floor.extension.js.map +1 -1
- package/dist/extensions/label.extension.d.ts +4 -9
- package/dist/extensions/label.extension.js +35 -33
- package/dist/extensions/label.extension.js.map +1 -1
- package/dist/extensions/websocket-api.extension.d.ts +21 -4
- package/dist/extensions/websocket-api.extension.js +94 -57
- package/dist/extensions/websocket-api.extension.js.map +1 -1
- package/dist/extensions/zone.extension.d.ts +0 -6
- package/dist/extensions/zone.extension.js +0 -2
- package/dist/extensions/zone.extension.js.map +1 -1
- package/dist/hass.module.d.ts +10 -0
- package/dist/hass.module.js +13 -0
- package/dist/hass.module.js.map +1 -1
- package/dist/helpers/constants.helper.d.ts +1 -40
- package/dist/helpers/constants.helper.js +2 -45
- package/dist/helpers/constants.helper.js.map +1 -1
- package/dist/helpers/fetch/calendar.d.ts +1 -1
- package/dist/helpers/fetch/configuration.d.ts +4 -4
- package/dist/helpers/fetch/service-list.d.ts +7 -4
- package/dist/helpers/metrics.helper.d.ts +4 -0
- package/dist/helpers/metrics.helper.js +15 -7
- package/dist/helpers/metrics.helper.js.map +1 -1
- package/dist/helpers/registry.d.ts +3 -3
- package/dist/helpers/registry.js.map +1 -1
- package/dist/helpers/utility.helper.d.ts +5 -3
- package/dist/helpers/utility.helper.js.map +1 -1
- package/dist/helpers/websocket.helper.d.ts +12 -12
- package/dist/mock_assistant/extensions/events.extension.d.ts +6 -0
- package/dist/mock_assistant/extensions/events.extension.js +28 -0
- package/dist/mock_assistant/extensions/events.extension.js.map +1 -0
- package/dist/mock_assistant/extensions/fixtures.extension.d.ts +13 -0
- package/dist/mock_assistant/extensions/fixtures.extension.js +52 -0
- package/dist/mock_assistant/extensions/fixtures.extension.js.map +1 -0
- package/dist/mock_assistant/extensions/index.d.ts +2 -0
- package/dist/mock_assistant/extensions/index.js +6 -0
- package/dist/mock_assistant/extensions/index.js.map +1 -0
- package/dist/mock_assistant/helpers/fixtures.d.ts +10 -0
- package/dist/mock_assistant/helpers/fixtures.js +3 -0
- package/dist/mock_assistant/helpers/fixtures.js.map +1 -0
- package/dist/mock_assistant/helpers/index.d.ts +2 -0
- package/dist/mock_assistant/helpers/index.js +6 -0
- package/dist/mock_assistant/helpers/index.js.map +1 -0
- package/dist/mock_assistant/helpers/utils.d.ts +3 -0
- package/dist/mock_assistant/helpers/utils.js +31 -0
- package/dist/mock_assistant/helpers/utils.js.map +1 -0
- package/dist/mock_assistant/index.d.ts +3 -0
- package/dist/mock_assistant/index.js +7 -0
- package/dist/mock_assistant/index.js.map +1 -0
- package/dist/mock_assistant/main.d.ts +2 -0
- package/dist/mock_assistant/main.js +37 -0
- package/dist/mock_assistant/main.js.map +1 -0
- package/dist/mock_assistant/mock-assistant.module.d.ts +16 -0
- package/dist/mock_assistant/mock-assistant.module.js +22 -0
- package/dist/mock_assistant/mock-assistant.module.js.map +1 -0
- package/dist/testing/area.spec.d.ts +1 -0
- package/dist/testing/area.spec.js +224 -0
- package/dist/testing/area.spec.js.map +1 -0
- package/dist/testing/config.spec.d.ts +1 -0
- package/dist/testing/config.spec.js +232 -0
- package/dist/testing/config.spec.js.map +1 -0
- package/dist/testing/device.spec.d.ts +1 -0
- package/dist/testing/device.spec.js +81 -0
- package/dist/testing/device.spec.js.map +1 -0
- package/dist/testing/entity.spec.d.ts +1 -0
- package/dist/testing/entity.spec.js +29 -0
- package/dist/testing/entity.spec.js.map +1 -0
- package/dist/testing/fetch-api.spec.d.ts +1 -0
- package/dist/testing/fetch-api.spec.js +476 -0
- package/dist/testing/fetch-api.spec.js.map +1 -0
- package/dist/testing/floor.spec.d.ts +1 -0
- package/dist/testing/floor.spec.js +223 -0
- package/dist/testing/floor.spec.js.map +1 -0
- package/dist/testing/label.spec.d.ts +1 -0
- package/dist/testing/label.spec.js +223 -0
- package/dist/testing/label.spec.js.map +1 -0
- package/dist/testing/websocket.spec.d.ts +8 -0
- package/dist/testing/websocket.spec.js +71 -0
- package/dist/testing/websocket.spec.js.map +1 -0
- package/dist/testing/workflow.spec.d.ts +1 -0
- package/dist/testing/workflow.spec.js +164 -0
- package/dist/testing/workflow.spec.js.map +1 -0
- package/package.json +39 -12
|
@@ -2,46 +2,6 @@ export declare const HASS_ENTITY = "HASS_ENTITY";
|
|
|
2
2
|
export declare const HASS_ENTITY_GROUP = "HASS_ENTITY_GROUP";
|
|
3
3
|
export declare const ALL_ENTITIES_UPDATED = "ALL_ENTITIES_UPDATED";
|
|
4
4
|
export declare const SOCKET_READY = "SOCKET_READY";
|
|
5
|
-
export declare enum HASSIO_WS_COMMAND {
|
|
6
|
-
area_list = "config/area_registry/list",
|
|
7
|
-
auth = "auth",
|
|
8
|
-
call_service = "call_service",
|
|
9
|
-
device_list = "config/device_registry/list",
|
|
10
|
-
entity_list_for_display = "config/entity_registry/list_for_display",
|
|
11
|
-
entity_list = "config/entity_registry/list",
|
|
12
|
-
entity_remove = "config/entity_registry/remove",
|
|
13
|
-
registry_update = "config/entity_registry/update",
|
|
14
|
-
get_config = "get_config",
|
|
15
|
-
generate_backup = "backup/generate",
|
|
16
|
-
remove_backup = "backup/remove",
|
|
17
|
-
history_during_period = "history/history_during_period",
|
|
18
|
-
backup_info = "backup/info",
|
|
19
|
-
download_backup = "auth/sign_path",
|
|
20
|
-
get_states = "get_states",
|
|
21
|
-
fire_event = "fire_event",
|
|
22
|
-
ping = "ping",
|
|
23
|
-
registry_get = "config/entity_registry/get",
|
|
24
|
-
render_template = "render_template",
|
|
25
|
-
search_related = "search/related",
|
|
26
|
-
subscribe_trigger = "subscribe_trigger",
|
|
27
|
-
subscribe_events = "subscribe_events",
|
|
28
|
-
core_update = "config/core/update",
|
|
29
|
-
persistent_notification = "persistent_notification/get",
|
|
30
|
-
setup_info = "integration/setup_info",
|
|
31
|
-
system_health = "system_health/info",
|
|
32
|
-
trace_contexts = "trace/contexts",
|
|
33
|
-
unsubscribe_events = "unsubscribe_events",
|
|
34
|
-
analytics = "analytics",
|
|
35
|
-
auth_list = "config/auth/list",
|
|
36
|
-
cloud_status = "cloud/status",
|
|
37
|
-
current_user = "auth/current_user",
|
|
38
|
-
get_themes = "frontend/get_themes",
|
|
39
|
-
get_user_data = "frontend/get_user_data",
|
|
40
|
-
lovelace_config = "lovelace/config",
|
|
41
|
-
lovelace_resources = "lovelace/resources",
|
|
42
|
-
network = "network",
|
|
43
|
-
translations = "frontend/get_translations"
|
|
44
|
-
}
|
|
45
5
|
export declare enum HassSocketMessageTypes {
|
|
46
6
|
auth_required = "auth_required",
|
|
47
7
|
auth_ok = "auth_ok",
|
|
@@ -56,3 +16,4 @@ export declare const ENTITY_REGISTRY_UPDATED = "ENTITY_REGISTRY_UPDATED";
|
|
|
56
16
|
export declare const AREA_REGISTRY_UPDATED = "AREA_REGISTRY_UPDATED";
|
|
57
17
|
export declare const LABEL_REGISTRY_UPDATED = "LABEL_REGISTRY_UPDATED";
|
|
58
18
|
export declare const FLOOR_REGISTRY_UPDATED = "FLOOR_REGISTRY_UPDATED";
|
|
19
|
+
export declare const DEVICE_REGISTRY_UPDATED = "DEVICE_REGISTRY_UPDATED";
|
|
@@ -1,54 +1,10 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.FLOOR_REGISTRY_UPDATED = exports.LABEL_REGISTRY_UPDATED = exports.AREA_REGISTRY_UPDATED = exports.ENTITY_REGISTRY_UPDATED = exports.EARLY_ON_READY = exports.HOME_ASSISTANT_MODULE_CONFIGURATION = exports.HassSocketMessageTypes = exports.
|
|
3
|
+
exports.DEVICE_REGISTRY_UPDATED = exports.FLOOR_REGISTRY_UPDATED = exports.LABEL_REGISTRY_UPDATED = exports.AREA_REGISTRY_UPDATED = exports.ENTITY_REGISTRY_UPDATED = exports.EARLY_ON_READY = exports.HOME_ASSISTANT_MODULE_CONFIGURATION = exports.HassSocketMessageTypes = exports.SOCKET_READY = exports.ALL_ENTITIES_UPDATED = exports.HASS_ENTITY_GROUP = exports.HASS_ENTITY = void 0;
|
|
4
4
|
exports.HASS_ENTITY = "HASS_ENTITY";
|
|
5
5
|
exports.HASS_ENTITY_GROUP = "HASS_ENTITY_GROUP";
|
|
6
6
|
exports.ALL_ENTITIES_UPDATED = "ALL_ENTITIES_UPDATED";
|
|
7
7
|
exports.SOCKET_READY = "SOCKET_READY";
|
|
8
|
-
var HASSIO_WS_COMMAND;
|
|
9
|
-
(function (HASSIO_WS_COMMAND) {
|
|
10
|
-
// Found a use for
|
|
11
|
-
HASSIO_WS_COMMAND["area_list"] = "config/area_registry/list";
|
|
12
|
-
HASSIO_WS_COMMAND["auth"] = "auth";
|
|
13
|
-
HASSIO_WS_COMMAND["call_service"] = "call_service";
|
|
14
|
-
HASSIO_WS_COMMAND["device_list"] = "config/device_registry/list";
|
|
15
|
-
HASSIO_WS_COMMAND["entity_list_for_display"] = "config/entity_registry/list_for_display";
|
|
16
|
-
HASSIO_WS_COMMAND["entity_list"] = "config/entity_registry/list";
|
|
17
|
-
HASSIO_WS_COMMAND["entity_remove"] = "config/entity_registry/remove";
|
|
18
|
-
HASSIO_WS_COMMAND["registry_update"] = "config/entity_registry/update";
|
|
19
|
-
HASSIO_WS_COMMAND["get_config"] = "get_config";
|
|
20
|
-
HASSIO_WS_COMMAND["generate_backup"] = "backup/generate";
|
|
21
|
-
HASSIO_WS_COMMAND["remove_backup"] = "backup/remove";
|
|
22
|
-
HASSIO_WS_COMMAND["history_during_period"] = "history/history_during_period";
|
|
23
|
-
HASSIO_WS_COMMAND["backup_info"] = "backup/info";
|
|
24
|
-
HASSIO_WS_COMMAND["download_backup"] = "auth/sign_path";
|
|
25
|
-
HASSIO_WS_COMMAND["get_states"] = "get_states";
|
|
26
|
-
HASSIO_WS_COMMAND["fire_event"] = "fire_event";
|
|
27
|
-
HASSIO_WS_COMMAND["ping"] = "ping";
|
|
28
|
-
HASSIO_WS_COMMAND["registry_get"] = "config/entity_registry/get";
|
|
29
|
-
HASSIO_WS_COMMAND["render_template"] = "render_template";
|
|
30
|
-
HASSIO_WS_COMMAND["search_related"] = "search/related";
|
|
31
|
-
HASSIO_WS_COMMAND["subscribe_trigger"] = "subscribe_trigger";
|
|
32
|
-
HASSIO_WS_COMMAND["subscribe_events"] = "subscribe_events";
|
|
33
|
-
// Haven't decided
|
|
34
|
-
HASSIO_WS_COMMAND["core_update"] = "config/core/update";
|
|
35
|
-
HASSIO_WS_COMMAND["persistent_notification"] = "persistent_notification/get";
|
|
36
|
-
HASSIO_WS_COMMAND["setup_info"] = "integration/setup_info";
|
|
37
|
-
HASSIO_WS_COMMAND["system_health"] = "system_health/info";
|
|
38
|
-
HASSIO_WS_COMMAND["trace_contexts"] = "trace/contexts";
|
|
39
|
-
HASSIO_WS_COMMAND["unsubscribe_events"] = "unsubscribe_events";
|
|
40
|
-
// Don't see a use for in library yet
|
|
41
|
-
HASSIO_WS_COMMAND["analytics"] = "analytics";
|
|
42
|
-
HASSIO_WS_COMMAND["auth_list"] = "config/auth/list";
|
|
43
|
-
HASSIO_WS_COMMAND["cloud_status"] = "cloud/status";
|
|
44
|
-
HASSIO_WS_COMMAND["current_user"] = "auth/current_user";
|
|
45
|
-
HASSIO_WS_COMMAND["get_themes"] = "frontend/get_themes";
|
|
46
|
-
HASSIO_WS_COMMAND["get_user_data"] = "frontend/get_user_data";
|
|
47
|
-
HASSIO_WS_COMMAND["lovelace_config"] = "lovelace/config";
|
|
48
|
-
HASSIO_WS_COMMAND["lovelace_resources"] = "lovelace/resources";
|
|
49
|
-
HASSIO_WS_COMMAND["network"] = "network";
|
|
50
|
-
HASSIO_WS_COMMAND["translations"] = "frontend/get_translations";
|
|
51
|
-
})(HASSIO_WS_COMMAND || (exports.HASSIO_WS_COMMAND = HASSIO_WS_COMMAND = {}));
|
|
52
8
|
var HassSocketMessageTypes;
|
|
53
9
|
(function (HassSocketMessageTypes) {
|
|
54
10
|
HassSocketMessageTypes["auth_required"] = "auth_required";
|
|
@@ -64,4 +20,5 @@ exports.ENTITY_REGISTRY_UPDATED = "ENTITY_REGISTRY_UPDATED";
|
|
|
64
20
|
exports.AREA_REGISTRY_UPDATED = "AREA_REGISTRY_UPDATED";
|
|
65
21
|
exports.LABEL_REGISTRY_UPDATED = "LABEL_REGISTRY_UPDATED";
|
|
66
22
|
exports.FLOOR_REGISTRY_UPDATED = "FLOOR_REGISTRY_UPDATED";
|
|
23
|
+
exports.DEVICE_REGISTRY_UPDATED = "DEVICE_REGISTRY_UPDATED";
|
|
67
24
|
//# sourceMappingURL=constants.helper.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"constants.helper.js","sourceRoot":"","sources":["../../src/helpers/constants.helper.ts"],"names":[],"mappings":";;;AAAa,QAAA,WAAW,GAAG,aAAa,CAAC;AAC5B,QAAA,iBAAiB,GAAG,mBAAmB,CAAC;AACxC,QAAA,oBAAoB,GAAG,sBAAsB,CAAC;AAC9C,QAAA,YAAY,GAAG,cAAc,CAAC;AAE3C,IAAY,
|
|
1
|
+
{"version":3,"file":"constants.helper.js","sourceRoot":"","sources":["../../src/helpers/constants.helper.ts"],"names":[],"mappings":";;;AAAa,QAAA,WAAW,GAAG,aAAa,CAAC;AAC5B,QAAA,iBAAiB,GAAG,mBAAmB,CAAC;AACxC,QAAA,oBAAoB,GAAG,sBAAsB,CAAC;AAC9C,QAAA,YAAY,GAAG,cAAc,CAAC;AAE3C,IAAY,sBAOX;AAPD,WAAY,sBAAsB;IAChC,yDAA+B,CAAA;IAC/B,6CAAmB,CAAA;IACnB,yCAAe,CAAA;IACf,2CAAiB,CAAA;IACjB,uCAAa,CAAA;IACb,uDAA6B,CAAA;AAC/B,CAAC,EAPW,sBAAsB,sCAAtB,sBAAsB,QAOjC;AAEY,QAAA,mCAAmC,GAC9C,qCAAqC,CAAC;AAE3B,QAAA,cAAc,GAAG,CAAC,CAAC;AACnB,QAAA,uBAAuB,GAAG,yBAAyB,CAAC;AACpD,QAAA,qBAAqB,GAAG,uBAAuB,CAAC;AAChD,QAAA,sBAAsB,GAAG,wBAAwB,CAAC;AAClD,QAAA,sBAAsB,GAAG,wBAAwB,CAAC;AAClD,QAAA,uBAAuB,GAAG,yBAAyB,CAAC"}
|
|
@@ -37,12 +37,12 @@ export type AreaDetails = AreaCreate & {
|
|
|
37
37
|
area_id: TAreaId;
|
|
38
38
|
};
|
|
39
39
|
export type AreaCreate = {
|
|
40
|
-
floor_id
|
|
40
|
+
floor_id?: TFloorId;
|
|
41
41
|
aliases?: string[];
|
|
42
|
-
icon
|
|
43
|
-
labels
|
|
42
|
+
icon?: string;
|
|
43
|
+
labels?: TLabelId[];
|
|
44
44
|
name: string;
|
|
45
|
-
picture
|
|
45
|
+
picture?: string;
|
|
46
46
|
};
|
|
47
47
|
export interface ConfigEntry {
|
|
48
48
|
entry_id: string;
|
|
@@ -1,6 +1,8 @@
|
|
|
1
|
+
import { TPlatformId } from "../../dynamic";
|
|
2
|
+
import { ALL_DOMAINS } from "../utility.helper";
|
|
1
3
|
export interface ServiceListSelectorTarget {
|
|
2
|
-
domain?:
|
|
3
|
-
integration?:
|
|
4
|
+
domain?: ALL_DOMAINS;
|
|
5
|
+
integration?: TPlatformId;
|
|
4
6
|
multiple?: boolean;
|
|
5
7
|
}
|
|
6
8
|
export interface ServiceListSelector {
|
|
@@ -30,7 +32,8 @@ export interface ServiceListFieldDescription {
|
|
|
30
32
|
selector?: ServiceListSelector;
|
|
31
33
|
}
|
|
32
34
|
export type ServiceListEntityTarget = {
|
|
33
|
-
domain?:
|
|
35
|
+
domain?: ALL_DOMAINS[];
|
|
36
|
+
integration?: TPlatformId;
|
|
34
37
|
supported_features?: number[];
|
|
35
38
|
};
|
|
36
39
|
export interface ServiceListServiceTarget {
|
|
@@ -47,6 +50,6 @@ export interface ServiceListField {
|
|
|
47
50
|
target?: ServiceListServiceTarget;
|
|
48
51
|
}
|
|
49
52
|
export interface HassServiceDTO {
|
|
50
|
-
domain:
|
|
53
|
+
domain: ALL_DOMAINS;
|
|
51
54
|
services: Record<string, ServiceListField>;
|
|
52
55
|
}
|
|
@@ -23,3 +23,7 @@ export declare const SOCKET_EVENT_EXECUTION_TIME: Summary<"event" | "context" |
|
|
|
23
23
|
* Show the current state
|
|
24
24
|
*/
|
|
25
25
|
export declare const SOCKET_CONNECTION_STATE: Gauge<"state">;
|
|
26
|
+
/**
|
|
27
|
+
* Counter for service calls made through the call proxy
|
|
28
|
+
*/
|
|
29
|
+
export declare const CALL_PROXY_SERVICE_CALL: Counter<"service" | "domain">;
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.SOCKET_CONNECTION_STATE = exports.SOCKET_EVENT_EXECUTION_TIME = exports.SOCKET_RECEIVED_MESSAGES = exports.SOCKET_SENT_MESSAGES = exports.SOCKET_EVENT_ERRORS = exports.SOCKET_EVENT_EXECUTION_COUNT = void 0;
|
|
3
|
+
exports.CALL_PROXY_SERVICE_CALL = exports.SOCKET_CONNECTION_STATE = exports.SOCKET_EVENT_EXECUTION_TIME = exports.SOCKET_RECEIVED_MESSAGES = exports.SOCKET_SENT_MESSAGES = exports.SOCKET_EVENT_ERRORS = exports.SOCKET_EVENT_EXECUTION_COUNT = void 0;
|
|
4
4
|
const prom_client_1 = require("prom-client");
|
|
5
5
|
/**
|
|
6
6
|
* Tracks the number of times a socket event callback has been executed.
|
|
@@ -8,7 +8,7 @@ const prom_client_1 = require("prom-client");
|
|
|
8
8
|
exports.SOCKET_EVENT_EXECUTION_COUNT = new prom_client_1.Counter({
|
|
9
9
|
help: "Counts the number of times a socket event callback has been executed",
|
|
10
10
|
labelNames: ["context", "label", "event"],
|
|
11
|
-
name: "
|
|
11
|
+
name: "digital_alchemy_hass_socket_event_callback_execution_count",
|
|
12
12
|
});
|
|
13
13
|
/**
|
|
14
14
|
* Counts the number of errors occurred during socket event callback executions.
|
|
@@ -16,7 +16,7 @@ exports.SOCKET_EVENT_EXECUTION_COUNT = new prom_client_1.Counter({
|
|
|
16
16
|
exports.SOCKET_EVENT_ERRORS = new prom_client_1.Counter({
|
|
17
17
|
help: "Counts the number of errors during socket event callback executions",
|
|
18
18
|
labelNames: ["context", "label", "event"],
|
|
19
|
-
name: "
|
|
19
|
+
name: "digital_alchemy_hass_socket_event_callback_errors",
|
|
20
20
|
});
|
|
21
21
|
/**
|
|
22
22
|
* Counts the number of errors occurred during socket event callback executions.
|
|
@@ -24,7 +24,7 @@ exports.SOCKET_EVENT_ERRORS = new prom_client_1.Counter({
|
|
|
24
24
|
exports.SOCKET_SENT_MESSAGES = new prom_client_1.Counter({
|
|
25
25
|
help: "Counts the number of outgoing sent messages",
|
|
26
26
|
labelNames: ["type"],
|
|
27
|
-
name: "
|
|
27
|
+
name: "digital_alchemy_hass_socket_sent_messages",
|
|
28
28
|
});
|
|
29
29
|
/**
|
|
30
30
|
* Counts the number of errors occurred during socket event callback executions.
|
|
@@ -32,7 +32,7 @@ exports.SOCKET_SENT_MESSAGES = new prom_client_1.Counter({
|
|
|
32
32
|
exports.SOCKET_RECEIVED_MESSAGES = new prom_client_1.Counter({
|
|
33
33
|
help: "Counts the number of incoming socket messages",
|
|
34
34
|
labelNames: ["type"],
|
|
35
|
-
name: "
|
|
35
|
+
name: "digital_alchemy_hass_socket_received_messages",
|
|
36
36
|
});
|
|
37
37
|
/**
|
|
38
38
|
* Summary for Execution Time
|
|
@@ -40,7 +40,7 @@ exports.SOCKET_RECEIVED_MESSAGES = new prom_client_1.Counter({
|
|
|
40
40
|
exports.SOCKET_EVENT_EXECUTION_TIME = new prom_client_1.Summary({
|
|
41
41
|
help: "Measures the duration of each socket event callback execution",
|
|
42
42
|
labelNames: ["context", "label", "event"],
|
|
43
|
-
name: "
|
|
43
|
+
name: "digital_alchemy_hass_socket_event_callback_execution_time",
|
|
44
44
|
percentiles: [0.5, 0.9, 0.99],
|
|
45
45
|
});
|
|
46
46
|
/**
|
|
@@ -49,6 +49,14 @@ exports.SOCKET_EVENT_EXECUTION_TIME = new prom_client_1.Summary({
|
|
|
49
49
|
exports.SOCKET_CONNECTION_STATE = new prom_client_1.Gauge({
|
|
50
50
|
help: "The current connection to home assistant state, observable as a metrics",
|
|
51
51
|
labelNames: ["state"],
|
|
52
|
-
name: "
|
|
52
|
+
name: "digital_alchemy_hass_socket_connection_state",
|
|
53
|
+
});
|
|
54
|
+
/**
|
|
55
|
+
* Counter for service calls made through the call proxy
|
|
56
|
+
*/
|
|
57
|
+
exports.CALL_PROXY_SERVICE_CALL = new prom_client_1.Counter({
|
|
58
|
+
help: "Service calls made through the call proxy",
|
|
59
|
+
labelNames: ["domain", "service"],
|
|
60
|
+
name: "digital_alchemy_hass_call_proxy_service_call",
|
|
53
61
|
});
|
|
54
62
|
//# sourceMappingURL=metrics.helper.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"metrics.helper.js","sourceRoot":"","sources":["../../src/helpers/metrics.helper.ts"],"names":[],"mappings":";;;AAAA,6CAAsD;AAEtD;;GAEG;AACU,QAAA,4BAA4B,GAAG,IAAI,qBAAO,CAAC;IACtD,IAAI,EAAE,sEAAsE;IAC5E,UAAU,EAAE,CAAC,SAAS,EAAE,OAAO,EAAE,OAAO,CAAU;IAClD,IAAI,EAAE,
|
|
1
|
+
{"version":3,"file":"metrics.helper.js","sourceRoot":"","sources":["../../src/helpers/metrics.helper.ts"],"names":[],"mappings":";;;AAAA,6CAAsD;AAEtD;;GAEG;AACU,QAAA,4BAA4B,GAAG,IAAI,qBAAO,CAAC;IACtD,IAAI,EAAE,sEAAsE;IAC5E,UAAU,EAAE,CAAC,SAAS,EAAE,OAAO,EAAE,OAAO,CAAU;IAClD,IAAI,EAAE,4DAA4D;CACnE,CAAC,CAAC;AAEH;;GAEG;AACU,QAAA,mBAAmB,GAAG,IAAI,qBAAO,CAAC;IAC7C,IAAI,EAAE,qEAAqE;IAC3E,UAAU,EAAE,CAAC,SAAS,EAAE,OAAO,EAAE,OAAO,CAAU;IAClD,IAAI,EAAE,mDAAmD;CAC1D,CAAC,CAAC;AAEH;;GAEG;AACU,QAAA,oBAAoB,GAAG,IAAI,qBAAO,CAAC;IAC9C,IAAI,EAAE,6CAA6C;IACnD,UAAU,EAAE,CAAC,MAAM,CAAU;IAC7B,IAAI,EAAE,2CAA2C;CAClD,CAAC,CAAC;AAEH;;GAEG;AACU,QAAA,wBAAwB,GAAG,IAAI,qBAAO,CAAC;IAClD,IAAI,EAAE,+CAA+C;IACrD,UAAU,EAAE,CAAC,MAAM,CAAU;IAC7B,IAAI,EAAE,+CAA+C;CACtD,CAAC,CAAC;AAEH;;GAEG;AACU,QAAA,2BAA2B,GAAG,IAAI,qBAAO,CAAC;IACrD,IAAI,EAAE,+DAA+D;IACrE,UAAU,EAAE,CAAC,SAAS,EAAE,OAAO,EAAE,OAAO,CAAU;IAClD,IAAI,EAAE,2DAA2D;IACjE,WAAW,EAAE,CAAC,GAAG,EAAE,GAAG,EAAE,IAAI,CAAC;CAC9B,CAAC,CAAC;AAEH;;GAEG;AACU,QAAA,uBAAuB,GAAG,IAAI,mBAAK,CAAC;IAC/C,IAAI,EAAE,yEAAyE;IAC/E,UAAU,EAAE,CAAC,OAAO,CAAU;IAC9B,IAAI,EAAE,8CAA8C;CACrD,CAAC,CAAC;AAEH;;GAEG;AACU,QAAA,uBAAuB,GAAG,IAAI,qBAAO,CAAC;IACjD,IAAI,EAAE,2CAA2C;IACjD,UAAU,EAAE,CAAC,QAAQ,EAAE,SAAS,CAAU;IAC1C,IAAI,EAAE,8CAA8C;CACrD,CAAC,CAAC"}
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { TAreaId, TDeviceId, TFloorId, TLabelId, TZoneId } from "../dynamic";
|
|
1
|
+
import { TAreaId, TDeviceId, TFloorId, TLabelId, TPlatformId, TZoneId } from "../dynamic";
|
|
2
2
|
import { PICK_ENTITY } from "./utility.helper";
|
|
3
3
|
export type LabelOptions = {
|
|
4
4
|
name: string;
|
|
@@ -45,7 +45,7 @@ export type EntityRegistryItem<ENTITY extends PICK_ENTITY> = {
|
|
|
45
45
|
};
|
|
46
46
|
};
|
|
47
47
|
original_name: string;
|
|
48
|
-
platform:
|
|
48
|
+
platform: TPlatformId;
|
|
49
49
|
translation_key?: string;
|
|
50
50
|
unique_id: string;
|
|
51
51
|
aliases: string[];
|
|
@@ -145,7 +145,7 @@ export interface Properties {
|
|
|
145
145
|
export type FloorCreate = {
|
|
146
146
|
name: string;
|
|
147
147
|
level: number;
|
|
148
|
-
aliases
|
|
148
|
+
aliases?: string[];
|
|
149
149
|
};
|
|
150
150
|
export type FloorDetails = FloorCreate & {
|
|
151
151
|
floor_id: TFloorId;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"registry.js","sourceRoot":"","sources":["../../src/helpers/registry.ts"],"names":[],"mappings":";;;
|
|
1
|
+
{"version":3,"file":"registry.js","sourceRoot":"","sources":["../../src/helpers/registry.ts"],"names":[],"mappings":";;;AAsEa,QAAA,eAAe,GAAG,+BAA+B,CAAC;AA+D/D,IAAY,eAOX;AAPD,WAAY,eAAe;IACzB,oCAAiB,CAAA;IACjB,oCAAiB,CAAA;IACjB,oCAAiB,CAAA;IACjB,8BAAW,CAAA;IACX,sCAAmB,CAAA;IACnB,oCAAiB,CAAA;AACnB,CAAC,EAPW,eAAe,+BAAf,eAAe,QAO1B;AAED,IAAY,QAMX;AAND,WAAY,QAAQ;IAClB,qCAAyB,CAAA;IACzB,0CAA8B,CAAA;IAC9B,oCAAwB,CAAA;IACxB,0CAA8B,CAAA;IAC9B,oCAAwB,CAAA;AAC1B,CAAC,EANW,QAAQ,wBAAR,QAAQ,QAMnB;AAED,IAAY,YAGX;AAHD,WAAY,YAAY;IACtB,qCAAqB,CAAA;IACrB,qCAAqB,CAAA;AACvB,CAAC,EAHW,YAAY,4BAAZ,YAAY,QAGvB"}
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import { TBlackHole } from "@digital-alchemy/core";
|
|
2
2
|
import { Get } from "type-fest";
|
|
3
|
-
import { ENTITY_SETUP, iCallService, REGISTRY_SETUP, TAreaId, TDeviceId, TFloorId, TLabelId, TRawDomains, TRawEntityIds } from "../dynamic";
|
|
3
|
+
import { ENTITY_SETUP, iCallService, REGISTRY_SETUP, TAreaId, TDeviceId, TFloorId, TLabelId, TPlatformId, TRawDomains, TRawEntityIds } from "../dynamic";
|
|
4
4
|
import { HassEntityContext } from ".";
|
|
5
5
|
export type ANY_ENTITY = TRawEntityIds;
|
|
6
6
|
/**
|
|
@@ -10,12 +10,12 @@ export type PICK_ENTITY<DOMAIN extends ALL_DOMAINS = ALL_DOMAINS> = {
|
|
|
10
10
|
[key in DOMAIN]: `${key}.${keyof (typeof ENTITY_SETUP)[key] & string}`;
|
|
11
11
|
}[DOMAIN];
|
|
12
12
|
/**
|
|
13
|
-
* Pick any valid
|
|
13
|
+
* Pick any valid service call, optionally limiting by domain
|
|
14
14
|
*/
|
|
15
15
|
export type PICK_SERVICE<DOMAIN extends ALL_SERVICE_DOMAINS = ALL_SERVICE_DOMAINS> = {
|
|
16
16
|
[key in DOMAIN]: `${key}.${keyof iCallService[key] & string}`;
|
|
17
17
|
}[DOMAIN];
|
|
18
|
-
export type PICK_SERVICE_PARAMETERS<SERVICE extends PICK_SERVICE
|
|
18
|
+
export type PICK_SERVICE_PARAMETERS<DOMAINS extends ALL_SERVICE_DOMAINS, SERVICE extends PICK_SERVICE<DOMAINS>> = Get<iCallService, SERVICE> extends (serviceParams: infer ServiceParams) => TBlackHole ? ServiceParams : never;
|
|
19
19
|
export declare function entity_split(entity: {
|
|
20
20
|
entity_id: PICK_ENTITY;
|
|
21
21
|
} | PICK_ENTITY): [ALL_DOMAINS, string];
|
|
@@ -25,6 +25,7 @@ export declare function entity_split(entity: {
|
|
|
25
25
|
export declare function domain(entity: {
|
|
26
26
|
entity_id: PICK_ENTITY;
|
|
27
27
|
} | PICK_ENTITY): ALL_DOMAINS;
|
|
28
|
+
export type ENTITY_PROP<ENTITY_ID extends PICK_ENTITY, PROP extends "state" | "attributes"> = Get<typeof ENTITY_SETUP, `${ENTITY_ID}.${PROP}`>;
|
|
28
29
|
/**
|
|
29
30
|
* Type definitions to match a specific entity.
|
|
30
31
|
*/
|
|
@@ -58,3 +59,4 @@ export type PICK_FROM_AREA<ID extends TAreaId, DOMAIN extends ALL_DOMAINS = ALL_
|
|
|
58
59
|
export type PICK_FROM_LABEL<ID extends TLabelId, DOMAIN extends ALL_DOMAINS = ALL_DOMAINS> = Extract<REGISTRY_SETUP["label"][`_${ID}`], PICK_ENTITY<DOMAIN>>;
|
|
59
60
|
export type PICK_FROM_FLOOR<ID extends TFloorId, DOMAIN extends ALL_DOMAINS = ALL_DOMAINS> = Extract<REGISTRY_SETUP["floor"][`_${ID}`], PICK_ENTITY<DOMAIN>>;
|
|
60
61
|
export type PICK_FROM_DEVICE<ID extends TDeviceId, DOMAIN extends ALL_DOMAINS = ALL_DOMAINS> = Extract<REGISTRY_SETUP["device"][`_${ID}`], PICK_ENTITY<DOMAIN>>;
|
|
62
|
+
export type PICK_FROM_PLATFORM<ID extends TPlatformId, DOMAIN extends ALL_DOMAINS = ALL_DOMAINS> = Extract<REGISTRY_SETUP["platform"][`_${ID}`], PICK_ENTITY<DOMAIN>>;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"utility.helper.js","sourceRoot":"","sources":["../../src/helpers/utility.helper.ts"],"names":[],"mappings":";;;AAAA,gDAAuD;
|
|
1
|
+
{"version":3,"file":"utility.helper.js","sourceRoot":"","sources":["../../src/helpers/utility.helper.ts"],"names":[],"mappings":";;;AAAA,gDAAuD;AA6CvD,SAAgB,YAAY,CAC1B,MAAgD;IAEhD,IAAI,SAAE,CAAC,MAAM,CAAC,MAAM,CAAC,EAAE,CAAC;QACtB,MAAM,GAAG,MAAM,CAAC,SAAS,CAAC;IAC5B,CAAC;IACD,OAAO,MAAM,CAAC,KAAK,CAAC,GAAG,CAA0B,CAAC;AACpD,CAAC;AAPD,oCAOC;AACD;;GAEG;AACH,SAAgB,MAAM,CACpB,MAAgD;IAEhD,IAAI,SAAE,CAAC,MAAM,CAAC,MAAM,CAAC,EAAE,CAAC;QACtB,MAAM,GAAG,MAAM,CAAC,SAAS,CAAC;IAC5B,CAAC;IACD,OAAO,YAAY,CAAC,MAAM,CAAC,CAAC,KAAK,EAAiB,CAAC;AACrD,CAAC;AAPD,wBAOC;AAwCD,SAAE,CAAC,MAAM,GAAG,CACV,MAAc,EACd,MAAc,EACiB,EAAE;IACjC,MAAM,CAAC,IAAI,CAAC,GAAG,MAAM,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;IACjC,OAAO,IAAI,KAAK,MAAM,CAAC;AACzB,CAAC,CAAC;AAWW,QAAA,oBAAoB,GAAG;IAClC,KAAK,EAAE,CAAC;IACR,QAAQ,EAAE,CAAC,CAAC;CACJ,CAAC"}
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import { TBlackHole, TContext } from "@digital-alchemy/core";
|
|
2
2
|
import { Dayjs } from "dayjs";
|
|
3
|
-
import {
|
|
3
|
+
import { HassSocketMessageTypes } from "./constants.helper";
|
|
4
4
|
import { EntityUpdateEvent } from "./entity-state.helper";
|
|
5
5
|
import { ALL_DOMAINS, ENTITY_STATE, PICK_ENTITY } from "./utility.helper";
|
|
6
6
|
export interface SignRequestResponse {
|
|
@@ -9,10 +9,10 @@ export interface SignRequestResponse {
|
|
|
9
9
|
export interface SocketMessageDTO {
|
|
10
10
|
error?: Record<string, unknown>;
|
|
11
11
|
event?: EntityUpdateEvent;
|
|
12
|
-
id: string;
|
|
12
|
+
id: string | number;
|
|
13
13
|
message?: string;
|
|
14
14
|
result?: Record<string, unknown>;
|
|
15
|
-
type: HassSocketMessageTypes
|
|
15
|
+
type: `${HassSocketMessageTypes}`;
|
|
16
16
|
}
|
|
17
17
|
export type SocketSubscribeOptions<EVENT extends string> = {
|
|
18
18
|
event_type: EVENT;
|
|
@@ -29,7 +29,7 @@ export interface SendSocketMessageDTO {
|
|
|
29
29
|
hidden_by?: "user";
|
|
30
30
|
service?: string;
|
|
31
31
|
service_data?: unknown;
|
|
32
|
-
type:
|
|
32
|
+
type: string;
|
|
33
33
|
}
|
|
34
34
|
export interface UpdateEntityMessageDTO<DOMAIN extends ALL_DOMAINS = ALL_DOMAINS> {
|
|
35
35
|
area_id?: string;
|
|
@@ -39,37 +39,37 @@ export interface UpdateEntityMessageDTO<DOMAIN extends ALL_DOMAINS = ALL_DOMAINS
|
|
|
39
39
|
icon?: string;
|
|
40
40
|
name: string;
|
|
41
41
|
new_entity_id: PICK_ENTITY<DOMAIN>;
|
|
42
|
-
type:
|
|
42
|
+
type: "config/entity_registry/update";
|
|
43
43
|
}
|
|
44
44
|
export interface RemoveEntityMessageDTO {
|
|
45
45
|
entity_id: PICK_ENTITY;
|
|
46
|
-
type:
|
|
46
|
+
type: "config/entity_registry/remove";
|
|
47
47
|
}
|
|
48
48
|
export interface FindRelatedDTO {
|
|
49
49
|
item_id: string;
|
|
50
50
|
item_type: string;
|
|
51
|
-
type:
|
|
51
|
+
type: "search/related";
|
|
52
52
|
}
|
|
53
53
|
export interface RegistryGetDTO {
|
|
54
54
|
entity_id: string;
|
|
55
|
-
type:
|
|
55
|
+
type: "config/entity_registry/get";
|
|
56
56
|
}
|
|
57
57
|
export interface RenderTemplateDTO {
|
|
58
58
|
template: string;
|
|
59
59
|
timeout: number;
|
|
60
|
-
type:
|
|
60
|
+
type: "render_template";
|
|
61
61
|
}
|
|
62
62
|
export interface SubscribeTriggerDTO {
|
|
63
63
|
trigger: Record<string, unknown>;
|
|
64
|
-
type:
|
|
64
|
+
type: "subscribe_trigger";
|
|
65
65
|
}
|
|
66
66
|
export interface UnsubscribeEventsDTO {
|
|
67
67
|
subscription: number;
|
|
68
|
-
type:
|
|
68
|
+
type: "unsubscribe_events";
|
|
69
69
|
}
|
|
70
70
|
export interface SignPathDTO {
|
|
71
71
|
path: string;
|
|
72
|
-
type:
|
|
72
|
+
type: "auth/sign_path";
|
|
73
73
|
}
|
|
74
74
|
export interface RemoveBackupDTO {
|
|
75
75
|
slug: string;
|
|
@@ -0,0 +1,6 @@
|
|
|
1
|
+
import { TServiceParams } from "@digital-alchemy/core";
|
|
2
|
+
import { ENTITY_STATE, PICK_ENTITY } from "../../helpers";
|
|
3
|
+
export declare function Events({ mock_assistant, hass }: TServiceParams): {
|
|
4
|
+
emitEntityUpdate: <ENTITY extends PICK_ENTITY>(entity: ENTITY, new_state: Partial<ENTITY_STATE<ENTITY>>) => Promise<void>;
|
|
5
|
+
emitEvent: (event: string, data: object) => Promise<void>;
|
|
6
|
+
};
|
|
@@ -0,0 +1,28 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.Events = void 0;
|
|
4
|
+
function Events({ mock_assistant, hass }) {
|
|
5
|
+
let id = 1000;
|
|
6
|
+
async function emitEvent(event, data) {
|
|
7
|
+
id++;
|
|
8
|
+
await hass.socket.onMessage({
|
|
9
|
+
event: {
|
|
10
|
+
data,
|
|
11
|
+
event_type: event,
|
|
12
|
+
},
|
|
13
|
+
id: id,
|
|
14
|
+
type: "event",
|
|
15
|
+
});
|
|
16
|
+
}
|
|
17
|
+
async function emitEntityUpdate(entity, new_state) {
|
|
18
|
+
const old_state = mock_assistant.fixtures.byId(entity);
|
|
19
|
+
new_state = mock_assistant.fixtures.replace(entity, new_state);
|
|
20
|
+
await emitEvent("state_changed", { new_state, old_state });
|
|
21
|
+
}
|
|
22
|
+
return {
|
|
23
|
+
emitEntityUpdate,
|
|
24
|
+
emitEvent,
|
|
25
|
+
};
|
|
26
|
+
}
|
|
27
|
+
exports.Events = Events;
|
|
28
|
+
//# sourceMappingURL=events.extension.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"events.extension.js","sourceRoot":"","sources":["../../../src/mock_assistant/extensions/events.extension.ts"],"names":[],"mappings":";;;AAIA,SAAgB,MAAM,CAAC,EAAE,cAAc,EAAE,IAAI,EAAkB;IAC7D,IAAI,EAAE,GAAG,IAAI,CAAC;IAEd,KAAK,UAAU,SAAS,CAAC,KAAa,EAAE,IAAY;QAClD,EAAE,EAAE,CAAC;QACL,MAAM,IAAI,CAAC,MAAM,CAAC,SAAS,CAAC;YAC1B,KAAK,EAAE;gBACL,IAAI;gBACJ,UAAU,EAAE,KAAK;aACG;YACtB,EAAE,EAAE,EAAE;YACN,IAAI,EAAE,OAAO;SACd,CAAC,CAAC;IACL,CAAC;IAED,KAAK,UAAU,gBAAgB,CAC7B,MAAc,EACd,SAAwC;QAExC,MAAM,SAAS,GAAG,cAAc,CAAC,QAAQ,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;QACvD,SAAS,GAAG,cAAc,CAAC,QAAQ,CAAC,OAAO,CAAC,MAAM,EAAE,SAAS,CAAC,CAAC;QAC/D,MAAM,SAAS,CAAC,eAAe,EAAE,EAAE,SAAS,EAAE,SAAS,EAAE,CAAC,CAAC;IAC7D,CAAC;IAED,OAAO;QACL,gBAAgB;QAChB,SAAS;KACV,CAAC;AACJ,CAAC;AA5BD,wBA4BC"}
|
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
import { TServiceParams } from "@digital-alchemy/core";
|
|
2
|
+
import { ENTITY_STATE, PICK_ENTITY } from "../../helpers";
|
|
3
|
+
import { ScannerCacheData } from "../helpers";
|
|
4
|
+
type StateOptions = Partial<{
|
|
5
|
+
[entity in PICK_ENTITY]: Partial<ENTITY_STATE<entity>>;
|
|
6
|
+
}>;
|
|
7
|
+
export declare function Fixtures({ hass, lifecycle, config, context, mock_assistant, }: TServiceParams): {
|
|
8
|
+
byId: (entity: PICK_ENTITY) => ENTITY_STATE<PICK_ENTITY>;
|
|
9
|
+
data: ScannerCacheData;
|
|
10
|
+
replace: <ENTITY extends PICK_ENTITY>(entity: ENTITY, new_state: Partial<ENTITY_STATE<ENTITY>>) => ENTITY_STATE<ENTITY>;
|
|
11
|
+
setState: (options: StateOptions) => void;
|
|
12
|
+
};
|
|
13
|
+
export {};
|
|
@@ -0,0 +1,52 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.Fixtures = void 0;
|
|
4
|
+
const core_1 = require("@digital-alchemy/core");
|
|
5
|
+
const fs_1 = require("fs");
|
|
6
|
+
const MEGA_HIGH_PRIORITY = 1000;
|
|
7
|
+
function Fixtures({ hass, lifecycle, config, context, mock_assistant, }) {
|
|
8
|
+
hass.area.list = async () => mock_assistant.fixtures.data?.areas ?? [];
|
|
9
|
+
hass.floor.list = async () => mock_assistant.fixtures.data?.floors ?? [];
|
|
10
|
+
hass.label.list = async () => mock_assistant.fixtures.data?.labels ?? [];
|
|
11
|
+
hass.device.list = async () => mock_assistant.fixtures.data?.devices ?? [];
|
|
12
|
+
hass.fetch.getAllEntities = async () => mock_assistant.fixtures.data?.entities ?? [];
|
|
13
|
+
hass.fetch.listServices = async () => mock_assistant.fixtures.data?.services ?? [];
|
|
14
|
+
lifecycle.onPreInit(() => {
|
|
15
|
+
const { MOCK_SOCKET } = config.hass;
|
|
16
|
+
const { FIXTURES_FILE } = config.mock_assistant;
|
|
17
|
+
if (!MOCK_SOCKET) {
|
|
18
|
+
// There needs to be a shared understanding that nobody is actually sending message traffic anywhere
|
|
19
|
+
// Otherwise the mocking is gonna cause some weirdness
|
|
20
|
+
throw new core_1.InternalError(context, "SOCKET_NOT_MOCKED", "Not for testing with live connections");
|
|
21
|
+
}
|
|
22
|
+
if (!(0, fs_1.existsSync)(FIXTURES_FILE)) {
|
|
23
|
+
throw new core_1.BootstrapException(context, "MISSING_FIXTURES_FILE", `${FIXTURES_FILE} does not exist`);
|
|
24
|
+
}
|
|
25
|
+
mock_assistant.fixtures.data = JSON.parse((0, fs_1.readFileSync)(FIXTURES_FILE, "utf8"));
|
|
26
|
+
}, MEGA_HIGH_PRIORITY);
|
|
27
|
+
function setState(options) {
|
|
28
|
+
lifecycle.onPreInit(() => {
|
|
29
|
+
const entities = Object.keys(options);
|
|
30
|
+
entities.forEach(i => replace(i, options[i]));
|
|
31
|
+
});
|
|
32
|
+
}
|
|
33
|
+
function byId(entity) {
|
|
34
|
+
return mock_assistant.fixtures.data.entities.find(i => i.entity_id === entity);
|
|
35
|
+
}
|
|
36
|
+
function replace(entity, new_state) {
|
|
37
|
+
const old_state = byId(entity);
|
|
38
|
+
const { data } = mock_assistant.fixtures;
|
|
39
|
+
data.entities = data.entities.filter(i => i.entity_id !== entity);
|
|
40
|
+
const updated = { ...old_state, ...new_state };
|
|
41
|
+
mock_assistant.fixtures.data.entities.push(updated);
|
|
42
|
+
return updated;
|
|
43
|
+
}
|
|
44
|
+
return {
|
|
45
|
+
byId,
|
|
46
|
+
data: undefined,
|
|
47
|
+
replace,
|
|
48
|
+
setState,
|
|
49
|
+
};
|
|
50
|
+
}
|
|
51
|
+
exports.Fixtures = Fixtures;
|
|
52
|
+
//# sourceMappingURL=fixtures.extension.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"fixtures.extension.js","sourceRoot":"","sources":["../../../src/mock_assistant/extensions/fixtures.extension.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,6 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
const tslib_1 = require("tslib");
|
|
4
|
+
tslib_1.__exportStar(require("./events.extension"), exports);
|
|
5
|
+
tslib_1.__exportStar(require("./fixtures.extension"), exports);
|
|
6
|
+
//# sourceMappingURL=index.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/mock_assistant/extensions/index.ts"],"names":[],"mappings":";;;AAAA,6DAAmC;AACnC,+DAAqC"}
|
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
import { AreaDetails, DeviceDetails, ENTITY_STATE, EntityRegistryItem, FloorDetails, HassServiceDTO as HassServiceDefinition, LabelDefinition, PICK_ENTITY } from "../../helpers";
|
|
2
|
+
export type ScannerCacheData = {
|
|
3
|
+
areas: AreaDetails[];
|
|
4
|
+
services: HassServiceDefinition[];
|
|
5
|
+
labels: LabelDefinition[];
|
|
6
|
+
floors: FloorDetails[];
|
|
7
|
+
devices: DeviceDetails[];
|
|
8
|
+
entities: ENTITY_STATE<PICK_ENTITY>[];
|
|
9
|
+
entity_registry: EntityRegistryItem<PICK_ENTITY>[];
|
|
10
|
+
};
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"fixtures.js","sourceRoot":"","sources":["../../../src/mock_assistant/helpers/fixtures.ts"],"names":[],"mappings":""}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/mock_assistant/helpers/index.ts"],"names":[],"mappings":";;;AAAA,qDAA2B;AAC3B,kDAAwB"}
|
|
@@ -0,0 +1,3 @@
|
|
|
1
|
+
import { BootstrapOptions, PartialConfiguration, ServiceMap } from "@digital-alchemy/core";
|
|
2
|
+
export declare const SILENT_BOOT: (configuration?: PartialConfiguration, fixtures?: boolean) => BootstrapOptions;
|
|
3
|
+
export declare function CreateTestingApplication(services: ServiceMap): import("@digital-alchemy/core").ApplicationDefinition<ServiceMap, import("@digital-alchemy/core").ModuleConfiguration>;
|
|
@@ -0,0 +1,31 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.CreateTestingApplication = exports.SILENT_BOOT = void 0;
|
|
4
|
+
const core_1 = require("@digital-alchemy/core");
|
|
5
|
+
const hass_module_1 = require("../../hass.module");
|
|
6
|
+
const mock_assistant_module_1 = require("../mock-assistant.module");
|
|
7
|
+
const SILENT_BOOT = (configuration = {}, fixtures = false) => ({
|
|
8
|
+
appendLibrary: fixtures ? mock_assistant_module_1.LIB_MOCK_ASSISTANT : undefined,
|
|
9
|
+
configuration,
|
|
10
|
+
// quiet time
|
|
11
|
+
customLogger: {
|
|
12
|
+
debug: () => { },
|
|
13
|
+
error: () => { },
|
|
14
|
+
fatal: () => { },
|
|
15
|
+
info: () => { },
|
|
16
|
+
trace: () => { },
|
|
17
|
+
warn: () => { },
|
|
18
|
+
},
|
|
19
|
+
});
|
|
20
|
+
exports.SILENT_BOOT = SILENT_BOOT;
|
|
21
|
+
function CreateTestingApplication(services) {
|
|
22
|
+
return (0, core_1.CreateApplication)({
|
|
23
|
+
configurationLoaders: [],
|
|
24
|
+
libraries: [hass_module_1.LIB_HASS],
|
|
25
|
+
// @ts-expect-error testing
|
|
26
|
+
name: "testing",
|
|
27
|
+
services,
|
|
28
|
+
});
|
|
29
|
+
}
|
|
30
|
+
exports.CreateTestingApplication = CreateTestingApplication;
|
|
31
|
+
//# sourceMappingURL=utils.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"utils.js","sourceRoot":"","sources":["../../../src/mock_assistant/helpers/utils.ts"],"names":[],"mappings":";;;AAAA,gDAK+B;AAE/B,mDAA6C;AAC7C,oEAA8D;AAEvD,MAAM,WAAW,GAAG,CACzB,gBAAsC,EAAE,EACxC,QAAQ,GAAG,KAAK,EACE,EAAE,CAAC,CAAC;IACtB,aAAa,EAAE,QAAQ,CAAC,CAAC,CAAC,0CAAkB,CAAC,CAAC,CAAC,SAAS;IACxD,aAAa;IACb,aAAa;IACb,YAAY,EAAE;QACZ,KAAK,EAAE,GAAG,EAAE,GAAE,CAAC;QACf,KAAK,EAAE,GAAG,EAAE,GAAE,CAAC;QACf,KAAK,EAAE,GAAG,EAAE,GAAE,CAAC;QACf,IAAI,EAAE,GAAG,EAAE,GAAE,CAAC;QACd,KAAK,EAAE,GAAG,EAAE,GAAE,CAAC;QACf,IAAI,EAAE,GAAG,EAAE,GAAE,CAAC;KACf;CACF,CAAC,CAAC;AAfU,QAAA,WAAW,eAerB;AAEH,SAAgB,wBAAwB,CAAC,QAAoB;IAC3D,OAAO,IAAA,wBAAiB,EAAC;QACvB,oBAAoB,EAAE,EAAE;QAExB,SAAS,EAAE,CAAC,sBAAQ,CAAC;QACrB,2BAA2B;QAC3B,IAAI,EAAE,SAAS;QACf,QAAQ;KACT,CAAC,CAAC;AACL,CAAC;AATD,4DASC"}
|