@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.
Files changed (134) hide show
  1. package/dist/dynamic.d.ts +3228 -198
  2. package/dist/dynamic.js +335 -85
  3. package/dist/dynamic.js.map +1 -1
  4. package/dist/e2e/app/entities.d.ts +5 -0
  5. package/dist/e2e/app/entities.js +21 -0
  6. package/dist/e2e/app/entities.js.map +1 -0
  7. package/dist/e2e/app/main.d.ts +10 -0
  8. package/dist/e2e/app/main.js +15 -0
  9. package/dist/e2e/app/main.js.map +1 -0
  10. package/dist/e2e/area.spec.d.ts +1 -0
  11. package/dist/e2e/area.spec.js +99 -0
  12. package/dist/e2e/area.spec.js.map +1 -0
  13. package/dist/e2e/call-proxy.spec.d.ts +1 -0
  14. package/dist/e2e/call-proxy.spec.js +57 -0
  15. package/dist/e2e/call-proxy.spec.js.map +1 -0
  16. package/dist/e2e/device.spec.d.ts +1 -0
  17. package/dist/e2e/device.spec.js +27 -0
  18. package/dist/e2e/device.spec.js.map +1 -0
  19. package/dist/e2e/entity.spec.d.ts +1 -0
  20. package/dist/e2e/entity.spec.js +328 -0
  21. package/dist/e2e/entity.spec.js.map +1 -0
  22. package/dist/e2e/fetch.spec.d.ts +1 -0
  23. package/dist/e2e/fetch.spec.js +79 -0
  24. package/dist/e2e/fetch.spec.js.map +1 -0
  25. package/dist/e2e/floor.spec.d.ts +1 -0
  26. package/dist/e2e/floor.spec.js +81 -0
  27. package/dist/e2e/floor.spec.js.map +1 -0
  28. package/dist/e2e/label.spec.d.ts +1 -0
  29. package/dist/e2e/label.spec.js +82 -0
  30. package/dist/e2e/label.spec.js.map +1 -0
  31. package/dist/e2e/utils.d.ts +2 -0
  32. package/dist/e2e/utils.js +6 -0
  33. package/dist/e2e/utils.js.map +1 -0
  34. package/dist/extensions/area.extension.d.ts +5 -5
  35. package/dist/extensions/area.extension.js +60 -51
  36. package/dist/extensions/area.extension.js.map +1 -1
  37. package/dist/extensions/call-proxy.extension.d.ts +1 -1
  38. package/dist/extensions/call-proxy.extension.js +13 -26
  39. package/dist/extensions/call-proxy.extension.js.map +1 -1
  40. package/dist/extensions/conversation.extension.js +1 -1
  41. package/dist/extensions/conversation.extension.js.map +1 -1
  42. package/dist/extensions/device.extension.d.ts +1 -1
  43. package/dist/extensions/device.extension.js +2 -1
  44. package/dist/extensions/device.extension.js.map +1 -1
  45. package/dist/extensions/entity.extension.d.ts +27 -14
  46. package/dist/extensions/entity.extension.js +64 -36
  47. package/dist/extensions/entity.extension.js.map +1 -1
  48. package/dist/extensions/fetch-api.extension.d.ts +5 -4
  49. package/dist/extensions/fetch-api.extension.js +41 -30
  50. package/dist/extensions/fetch-api.extension.js.map +1 -1
  51. package/dist/extensions/floor.extension.d.ts +0 -5
  52. package/dist/extensions/floor.extension.js +1 -2
  53. package/dist/extensions/floor.extension.js.map +1 -1
  54. package/dist/extensions/label.extension.d.ts +4 -9
  55. package/dist/extensions/label.extension.js +35 -33
  56. package/dist/extensions/label.extension.js.map +1 -1
  57. package/dist/extensions/websocket-api.extension.d.ts +21 -4
  58. package/dist/extensions/websocket-api.extension.js +94 -57
  59. package/dist/extensions/websocket-api.extension.js.map +1 -1
  60. package/dist/extensions/zone.extension.d.ts +0 -6
  61. package/dist/extensions/zone.extension.js +0 -2
  62. package/dist/extensions/zone.extension.js.map +1 -1
  63. package/dist/hass.module.d.ts +10 -0
  64. package/dist/hass.module.js +13 -0
  65. package/dist/hass.module.js.map +1 -1
  66. package/dist/helpers/constants.helper.d.ts +1 -40
  67. package/dist/helpers/constants.helper.js +2 -45
  68. package/dist/helpers/constants.helper.js.map +1 -1
  69. package/dist/helpers/fetch/calendar.d.ts +1 -1
  70. package/dist/helpers/fetch/configuration.d.ts +4 -4
  71. package/dist/helpers/fetch/service-list.d.ts +7 -4
  72. package/dist/helpers/metrics.helper.d.ts +4 -0
  73. package/dist/helpers/metrics.helper.js +15 -7
  74. package/dist/helpers/metrics.helper.js.map +1 -1
  75. package/dist/helpers/registry.d.ts +3 -3
  76. package/dist/helpers/registry.js.map +1 -1
  77. package/dist/helpers/utility.helper.d.ts +5 -3
  78. package/dist/helpers/utility.helper.js.map +1 -1
  79. package/dist/helpers/websocket.helper.d.ts +12 -12
  80. package/dist/mock_assistant/extensions/events.extension.d.ts +6 -0
  81. package/dist/mock_assistant/extensions/events.extension.js +28 -0
  82. package/dist/mock_assistant/extensions/events.extension.js.map +1 -0
  83. package/dist/mock_assistant/extensions/fixtures.extension.d.ts +13 -0
  84. package/dist/mock_assistant/extensions/fixtures.extension.js +52 -0
  85. package/dist/mock_assistant/extensions/fixtures.extension.js.map +1 -0
  86. package/dist/mock_assistant/extensions/index.d.ts +2 -0
  87. package/dist/mock_assistant/extensions/index.js +6 -0
  88. package/dist/mock_assistant/extensions/index.js.map +1 -0
  89. package/dist/mock_assistant/helpers/fixtures.d.ts +10 -0
  90. package/dist/mock_assistant/helpers/fixtures.js +3 -0
  91. package/dist/mock_assistant/helpers/fixtures.js.map +1 -0
  92. package/dist/mock_assistant/helpers/index.d.ts +2 -0
  93. package/dist/mock_assistant/helpers/index.js +6 -0
  94. package/dist/mock_assistant/helpers/index.js.map +1 -0
  95. package/dist/mock_assistant/helpers/utils.d.ts +3 -0
  96. package/dist/mock_assistant/helpers/utils.js +31 -0
  97. package/dist/mock_assistant/helpers/utils.js.map +1 -0
  98. package/dist/mock_assistant/index.d.ts +3 -0
  99. package/dist/mock_assistant/index.js +7 -0
  100. package/dist/mock_assistant/index.js.map +1 -0
  101. package/dist/mock_assistant/main.d.ts +2 -0
  102. package/dist/mock_assistant/main.js +37 -0
  103. package/dist/mock_assistant/main.js.map +1 -0
  104. package/dist/mock_assistant/mock-assistant.module.d.ts +16 -0
  105. package/dist/mock_assistant/mock-assistant.module.js +22 -0
  106. package/dist/mock_assistant/mock-assistant.module.js.map +1 -0
  107. package/dist/testing/area.spec.d.ts +1 -0
  108. package/dist/testing/area.spec.js +224 -0
  109. package/dist/testing/area.spec.js.map +1 -0
  110. package/dist/testing/config.spec.d.ts +1 -0
  111. package/dist/testing/config.spec.js +232 -0
  112. package/dist/testing/config.spec.js.map +1 -0
  113. package/dist/testing/device.spec.d.ts +1 -0
  114. package/dist/testing/device.spec.js +81 -0
  115. package/dist/testing/device.spec.js.map +1 -0
  116. package/dist/testing/entity.spec.d.ts +1 -0
  117. package/dist/testing/entity.spec.js +29 -0
  118. package/dist/testing/entity.spec.js.map +1 -0
  119. package/dist/testing/fetch-api.spec.d.ts +1 -0
  120. package/dist/testing/fetch-api.spec.js +476 -0
  121. package/dist/testing/fetch-api.spec.js.map +1 -0
  122. package/dist/testing/floor.spec.d.ts +1 -0
  123. package/dist/testing/floor.spec.js +223 -0
  124. package/dist/testing/floor.spec.js.map +1 -0
  125. package/dist/testing/label.spec.d.ts +1 -0
  126. package/dist/testing/label.spec.js +223 -0
  127. package/dist/testing/label.spec.js.map +1 -0
  128. package/dist/testing/websocket.spec.d.ts +8 -0
  129. package/dist/testing/websocket.spec.js +71 -0
  130. package/dist/testing/websocket.spec.js.map +1 -0
  131. package/dist/testing/workflow.spec.d.ts +1 -0
  132. package/dist/testing/workflow.spec.js +164 -0
  133. package/dist/testing/workflow.spec.js.map +1 -0
  134. package/package.json +39 -12
@@ -0,0 +1,164 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ const tslib_1 = require("tslib");
4
+ const core_1 = require("@digital-alchemy/core");
5
+ const dayjs_1 = tslib_1.__importDefault(require("dayjs"));
6
+ const __1 = require("..");
7
+ const mock_assistant_1 = require("../mock_assistant");
8
+ describe("Workflows", () => {
9
+ const application = (0, core_1.CreateApplication)({
10
+ libraries: [__1.LIB_HASS],
11
+ // @ts-expect-error testing
12
+ name: "testing",
13
+ services: {
14
+ Test({ hass, scheduler }) {
15
+ scheduler.cron({
16
+ async exec() {
17
+ await hass.call.switch.turn_on({
18
+ entity_id: "switch.bedroom_lamp",
19
+ });
20
+ },
21
+ schedule: core_1.CronExpression.EVERY_DAY_AT_8PM,
22
+ });
23
+ const entity = hass.entity.byId("sensor.magic");
24
+ entity.onUpdate(async () => {
25
+ const action = entity.state === "test" ? "turn_on" : "turn_off";
26
+ await hass.call.switch[action]({
27
+ entity_id: "switch.porch_light",
28
+ });
29
+ });
30
+ entity.onUpdate(async (new_state, old_state) => {
31
+ if (old_state.state === "away" && new_state.state === "here") {
32
+ await hass.call.switch.turn_on({
33
+ entity_id: "switch.living_room_mood_lights",
34
+ });
35
+ }
36
+ });
37
+ },
38
+ },
39
+ });
40
+ afterEach(async () => {
41
+ await application.teardown();
42
+ jest.restoreAllMocks();
43
+ });
44
+ describe("Event and Response", () => {
45
+ it("should be able to trigger a workflow", async () => {
46
+ expect.assertions(2);
47
+ await application.bootstrap({
48
+ appendLibrary: mock_assistant_1.LIB_MOCK_ASSISTANT,
49
+ appendService: {
50
+ Runner({ mock_assistant, lifecycle, hass }) {
51
+ lifecycle.onReady(async () => {
52
+ const turnOn = jest.spyOn(hass.call.switch, "turn_on");
53
+ const turnOff = jest.spyOn(hass.call.switch, "turn_off");
54
+ await mock_assistant.events.emitEntityUpdate("sensor.magic", {
55
+ state: "test",
56
+ });
57
+ await (0, core_1.sleep)(1);
58
+ await mock_assistant.events.emitEntityUpdate("sensor.magic", {
59
+ state: "foo",
60
+ });
61
+ expect(turnOn).toHaveBeenCalledTimes(1);
62
+ expect(turnOff).toHaveBeenCalledTimes(1);
63
+ });
64
+ },
65
+ },
66
+ configuration: {
67
+ boilerplate: { LOG_LEVEL: "error" },
68
+ hass: { MOCK_SOCKET: true, TOKEN: "--" },
69
+ },
70
+ });
71
+ });
72
+ it("should be able to trigger a from an initial state", async () => {
73
+ expect.assertions(1);
74
+ await application.bootstrap({
75
+ appendLibrary: mock_assistant_1.LIB_MOCK_ASSISTANT,
76
+ appendService: {
77
+ Runner({ mock_assistant, lifecycle, hass }) {
78
+ mock_assistant.fixtures.setState({
79
+ "sensor.magic": {
80
+ state: "away",
81
+ },
82
+ });
83
+ lifecycle.onReady(async () => {
84
+ const turnOn = jest.spyOn(hass.call.switch, "turn_on");
85
+ await mock_assistant.events.emitEntityUpdate("sensor.magic", {
86
+ state: "here",
87
+ });
88
+ await (0, core_1.sleep)(1);
89
+ expect(turnOn).toHaveBeenCalledWith({
90
+ entity_id: "switch.living_room_mood_lights",
91
+ });
92
+ });
93
+ },
94
+ },
95
+ configuration: {
96
+ boilerplate: { LOG_LEVEL: "error" },
97
+ hass: { MOCK_SOCKET: true, TOKEN: "--" },
98
+ },
99
+ });
100
+ });
101
+ it("should not trigger a from an invalid initial state", async () => {
102
+ expect.assertions(1);
103
+ await application.bootstrap({
104
+ appendLibrary: mock_assistant_1.LIB_MOCK_ASSISTANT,
105
+ appendService: {
106
+ Runner({ mock_assistant, lifecycle, hass }) {
107
+ mock_assistant.fixtures.setState({
108
+ "sensor.magic": {
109
+ state: "mars",
110
+ },
111
+ });
112
+ lifecycle.onReady(async () => {
113
+ const turnOn = jest.spyOn(hass.call.switch, "turn_on");
114
+ await mock_assistant.events.emitEntityUpdate("sensor.magic", {
115
+ state: "here",
116
+ });
117
+ await (0, core_1.sleep)(1);
118
+ expect(turnOn).not.toHaveBeenCalledWith({
119
+ entity_id: "switch.living_room_mood_lights",
120
+ });
121
+ });
122
+ },
123
+ },
124
+ configuration: {
125
+ boilerplate: { LOG_LEVEL: "error" },
126
+ hass: { MOCK_SOCKET: true, TOKEN: "--" },
127
+ },
128
+ });
129
+ });
130
+ });
131
+ describe("Timers", () => {
132
+ beforeEach(() => {
133
+ jest.useFakeTimers();
134
+ });
135
+ afterEach(() => {
136
+ jest.useRealTimers();
137
+ });
138
+ it("should run at 3PM", async () => {
139
+ expect.assertions(1);
140
+ // 745PM
141
+ jest.setSystemTime((0, dayjs_1.default)("2024-01-01 19:59:59").toDate());
142
+ await application.bootstrap({
143
+ appendLibrary: mock_assistant_1.LIB_MOCK_ASSISTANT,
144
+ appendService: {
145
+ Runner({ lifecycle, hass }) {
146
+ lifecycle.onReady(async () => {
147
+ const turnOn = jest.spyOn(hass.call.switch, "turn_on");
148
+ jest.advanceTimersByTime(2 * core_1.SECOND);
149
+ expect(turnOn).toHaveBeenCalledWith({
150
+ entity_id: "switch.bedroom_lamp",
151
+ });
152
+ });
153
+ jest.runOnlyPendingTimersAsync();
154
+ },
155
+ },
156
+ configuration: {
157
+ boilerplate: { LOG_LEVEL: "error" },
158
+ hass: { MOCK_SOCKET: true, TOKEN: "--" },
159
+ },
160
+ });
161
+ });
162
+ });
163
+ });
164
+ //# sourceMappingURL=workflow.spec.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"workflow.spec.js","sourceRoot":"","sources":["../../src/testing/workflow.spec.ts"],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -2,13 +2,16 @@
2
2
  "name": "@digital-alchemy/hass",
3
3
  "repository": "https://github.com/Digital-Alchemy-TS/hass",
4
4
  "homepage": "https://docs.digital-alchemy.app/Hass",
5
- "version": "0.3.20",
5
+ "version": "0.3.22",
6
6
  "scripts": {
7
7
  "build": "rm -rf dist/; tsc",
8
8
  "lint": "eslint src",
9
9
  "test": "./scripts/test.sh",
10
10
  "prepublishOnly": "npm run build",
11
- "upgrade": "ncu -u; npm i"
11
+ "upgrade": "ncu -f '@digital-alchemy/*' -u; npm i"
12
+ },
13
+ "bin": {
14
+ "mock-assistant": "./dist/mock_assistant/main.js"
12
15
  },
13
16
  "author": {
14
17
  "url": "https://github.com/zoe-codez",
@@ -21,17 +24,20 @@
21
24
  "node": ">=20"
22
25
  },
23
26
  "exports": {
24
- ".": "./dist/index.js"
27
+ ".": "./dist/index.js",
28
+ "./mock-assistant": "./dist/mock_assistant/index.js"
25
29
  },
26
30
  "license": "MIT",
27
31
  "dependencies": {
28
- "@digital-alchemy/core": "^0.3.11",
29
- "dayjs": "^1.11.10",
30
- "prom-client": "^15.1.1",
31
- "ws": "^8.16.0"
32
+ "@digital-alchemy/core": "^0.3.13",
33
+ "dayjs": "^1.11.11",
34
+ "prom-client": "^15.1.2",
35
+ "ws": "^8.17.0"
32
36
  },
33
37
  "devDependencies": {
34
38
  "@cspell/eslint-plugin": "^8.7.0",
39
+ "@digital-alchemy/synapse": "^0.3.5",
40
+ "@digital-alchemy/type-writer": "^0.3.11",
35
41
  "@types/figlet": "^1.5.8",
36
42
  "@types/jest": "^29.5.12",
37
43
  "@types/js-yaml": "^4.0.9",
@@ -40,8 +46,8 @@
40
46
  "@types/node": "^20.12.7",
41
47
  "@types/uuid": "^9.0.8",
42
48
  "@types/ws": "^8.5.10",
43
- "@typescript-eslint/eslint-plugin": "7.6.0",
44
- "@typescript-eslint/parser": "7.6.0",
49
+ "@typescript-eslint/eslint-plugin": "7.8.0",
50
+ "@typescript-eslint/parser": "7.8.0",
45
51
  "eslint": "8.57.0",
46
52
  "eslint-config-prettier": "9.1.0",
47
53
  "eslint-plugin-import": "^2.29.1",
@@ -55,11 +61,32 @@
55
61
  "eslint-plugin-unicorn": "^52.0.0",
56
62
  "jest": "^29.7.0",
57
63
  "jest-environment-node": "^29.7.0",
58
- "npm-check-updates": "^16.14.18",
64
+ "npm-check-updates": "^16.14.20",
59
65
  "prettier": "^3.2.5",
60
66
  "ts-jest": "^29.1.2",
61
- "tsx": "^4.7.2",
62
- "type-fest": "^4.15.0",
67
+ "tsx": "^4.7.3",
68
+ "type-fest": "^4.18.0",
63
69
  "typescript": "^5.4.5"
70
+ },
71
+ "jest": {
72
+ "preset": "ts-jest",
73
+ "testEnvironment": "node",
74
+ "moduleFileExtensions": [
75
+ "ts",
76
+ "js",
77
+ "json",
78
+ "node"
79
+ ],
80
+ "testMatch": [
81
+ "**/?(*.)+(spec|test).ts"
82
+ ],
83
+ "transform": {
84
+ "^.+\\.ts$": [
85
+ "ts-jest",
86
+ {
87
+ "tsconfig": "tsconfig.spec.json"
88
+ }
89
+ ]
90
+ }
64
91
  }
65
92
  }