@digital-alchemy/hass 24.9.3 → 24.9.4

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 (197) hide show
  1. package/README.md +4 -1
  2. package/dist/dynamic.d.ts +1 -1
  3. package/dist/dynamic.js +7 -2
  4. package/dist/dynamic.js.map +1 -1
  5. package/dist/extensions/area.extension.d.ts +2 -12
  6. package/dist/extensions/area.extension.js +20 -26
  7. package/dist/extensions/area.extension.js.map +1 -1
  8. package/dist/extensions/backup.extension.d.ts +2 -7
  9. package/dist/extensions/backup.extension.js +5 -8
  10. package/dist/extensions/backup.extension.js.map +1 -1
  11. package/dist/extensions/call-proxy.extension.d.ts +1 -1
  12. package/dist/extensions/call-proxy.extension.js +3 -22
  13. package/dist/extensions/call-proxy.extension.js.map +1 -1
  14. package/dist/extensions/config.extension.d.ts +2 -6
  15. package/dist/extensions/config.extension.js +21 -25
  16. package/dist/extensions/config.extension.js.map +1 -1
  17. package/dist/extensions/conversation.extension.d.ts +2 -6
  18. package/dist/extensions/conversation.extension.js +5 -8
  19. package/dist/extensions/conversation.extension.js.map +1 -1
  20. package/dist/extensions/device.extension.d.ts +2 -5
  21. package/dist/extensions/device.extension.js +16 -22
  22. package/dist/extensions/device.extension.js.map +1 -1
  23. package/dist/extensions/entity.extension.d.ts +2 -61
  24. package/dist/extensions/entity.extension.js +42 -83
  25. package/dist/extensions/entity.extension.js.map +1 -1
  26. package/dist/extensions/events.extension.d.ts +3 -11
  27. package/dist/extensions/events.extension.js +8 -11
  28. package/dist/extensions/events.extension.js.map +1 -1
  29. package/dist/extensions/fetch-api.extension.d.ts +12 -4
  30. package/dist/extensions/fetch-api.extension.js +23 -35
  31. package/dist/extensions/fetch-api.extension.js.map +1 -1
  32. package/dist/extensions/floor.extension.d.ts +2 -9
  33. package/dist/extensions/floor.extension.js +17 -23
  34. package/dist/extensions/floor.extension.js.map +1 -1
  35. package/dist/extensions/id-by.extension.js +15 -20
  36. package/dist/extensions/id-by.extension.js.map +1 -1
  37. package/dist/extensions/index.d.ts +1 -0
  38. package/dist/extensions/index.js +16 -18
  39. package/dist/extensions/index.js.map +1 -1
  40. package/dist/extensions/internal.extension.d.ts +18 -0
  41. package/dist/extensions/internal.extension.js +102 -0
  42. package/dist/extensions/internal.extension.js.map +1 -0
  43. package/dist/extensions/label.extension.d.ts +2 -9
  44. package/dist/extensions/label.extension.js +17 -23
  45. package/dist/extensions/label.extension.js.map +1 -1
  46. package/dist/extensions/reference.extension.d.ts +2 -12
  47. package/dist/extensions/reference.extension.js +19 -25
  48. package/dist/extensions/reference.extension.js.map +1 -1
  49. package/dist/extensions/registry.extension.d.ts +2 -7
  50. package/dist/extensions/registry.extension.js +1 -4
  51. package/dist/extensions/registry.extension.js.map +1 -1
  52. package/dist/extensions/websocket-api.extension.d.ts +3 -78
  53. package/dist/extensions/websocket-api.extension.js +82 -165
  54. package/dist/extensions/websocket-api.extension.js.map +1 -1
  55. package/dist/extensions/zone.extension.d.ts +2 -7
  56. package/dist/extensions/zone.extension.js +15 -21
  57. package/dist/extensions/zone.extension.js.map +1 -1
  58. package/dist/hass.module.d.ts +47 -36
  59. package/dist/hass.module.js +70 -70
  60. package/dist/hass.module.js.map +1 -1
  61. package/dist/helpers/backup.helper.js +1 -2
  62. package/dist/helpers/constants.helper.js +15 -18
  63. package/dist/helpers/constants.helper.js.map +1 -1
  64. package/dist/helpers/device.helper.js +2 -5
  65. package/dist/helpers/device.helper.js.map +1 -1
  66. package/dist/helpers/entity-state.helper.d.ts +3 -8
  67. package/dist/helpers/entity-state.helper.js +1 -8
  68. package/dist/helpers/entity-state.helper.js.map +1 -1
  69. package/dist/helpers/features.helper.js +79 -85
  70. package/dist/helpers/features.helper.js.map +1 -1
  71. package/dist/helpers/fetch/calendar.js +1 -2
  72. package/dist/helpers/fetch/configuration.js +2 -5
  73. package/dist/helpers/fetch/configuration.js.map +1 -1
  74. package/dist/helpers/fetch/index.js +5 -8
  75. package/dist/helpers/fetch/index.js.map +1 -1
  76. package/dist/helpers/fetch/server-log.js +1 -2
  77. package/dist/helpers/fetch/server-log.js.map +1 -1
  78. package/dist/helpers/fetch/service-list.js +1 -2
  79. package/dist/helpers/fetch/weather-forecasts.js +1 -2
  80. package/dist/helpers/fetch/weather-forecasts.js.map +1 -1
  81. package/dist/helpers/fetch.helper.d.ts +162 -0
  82. package/dist/helpers/fetch.helper.js +161 -0
  83. package/dist/helpers/fetch.helper.js.map +1 -0
  84. package/dist/helpers/id-by.helper.js +1 -2
  85. package/dist/helpers/index.d.ts +2 -1
  86. package/dist/helpers/index.js +13 -15
  87. package/dist/helpers/index.js.map +1 -1
  88. package/dist/helpers/interfaces.helper.d.ts +228 -0
  89. package/dist/helpers/interfaces.helper.js +10 -0
  90. package/dist/helpers/interfaces.helper.js.map +1 -0
  91. package/dist/helpers/manifest.helper.d.ts +0 -1
  92. package/dist/helpers/manifest.helper.js +0 -1
  93. package/dist/helpers/notify.helper.d.ts +11 -3
  94. package/dist/helpers/notify.helper.js +1 -2
  95. package/dist/helpers/registry.js +7 -10
  96. package/dist/helpers/registry.js.map +1 -1
  97. package/dist/helpers/utility.helper.d.ts +6 -1
  98. package/dist/helpers/utility.helper.js +9 -13
  99. package/dist/helpers/utility.helper.js.map +1 -1
  100. package/dist/helpers/websocket.helper.d.ts +1 -2
  101. package/dist/helpers/websocket.helper.js +1 -2
  102. package/dist/index.js +5 -8
  103. package/dist/index.js.map +1 -1
  104. package/dist/mock_assistant/extensions/area.extension.d.ts +8 -0
  105. package/dist/mock_assistant/extensions/area.extension.js +51 -0
  106. package/dist/mock_assistant/extensions/area.extension.js.map +1 -0
  107. package/dist/mock_assistant/extensions/config.extension.d.ts +14 -0
  108. package/dist/mock_assistant/extensions/config.extension.js +29 -0
  109. package/dist/mock_assistant/extensions/config.extension.js.map +1 -0
  110. package/dist/mock_assistant/extensions/device.extension.d.ts +8 -0
  111. package/dist/mock_assistant/extensions/device.extension.js +33 -0
  112. package/dist/mock_assistant/extensions/device.extension.js.map +1 -0
  113. package/dist/mock_assistant/extensions/entity-registry.extension.d.ts +13 -0
  114. package/dist/mock_assistant/extensions/entity-registry.extension.js +28 -0
  115. package/dist/mock_assistant/extensions/entity-registry.extension.js.map +1 -0
  116. package/dist/mock_assistant/extensions/entity.extension.d.ts +30 -0
  117. package/dist/mock_assistant/extensions/entity.extension.js +77 -0
  118. package/dist/mock_assistant/extensions/entity.extension.js.map +1 -0
  119. package/dist/mock_assistant/extensions/events.extension.d.ts +1 -1
  120. package/dist/mock_assistant/extensions/events.extension.js +3 -6
  121. package/dist/mock_assistant/extensions/events.extension.js.map +1 -1
  122. package/dist/mock_assistant/extensions/fetch.extension.d.ts +1 -0
  123. package/dist/mock_assistant/extensions/fetch.extension.js +4 -0
  124. package/dist/mock_assistant/extensions/fetch.extension.js.map +1 -0
  125. package/dist/mock_assistant/extensions/fixtures.extension.d.ts +1 -1
  126. package/dist/mock_assistant/extensions/fixtures.extension.js +29 -33
  127. package/dist/mock_assistant/extensions/fixtures.extension.js.map +1 -1
  128. package/dist/mock_assistant/extensions/floor.extension.d.ts +8 -0
  129. package/dist/mock_assistant/extensions/floor.extension.js +51 -0
  130. package/dist/mock_assistant/extensions/floor.extension.js.map +1 -0
  131. package/dist/mock_assistant/extensions/index.d.ts +10 -0
  132. package/dist/mock_assistant/extensions/index.js +12 -5
  133. package/dist/mock_assistant/extensions/index.js.map +1 -1
  134. package/dist/mock_assistant/extensions/label.extension.d.ts +8 -0
  135. package/dist/mock_assistant/extensions/label.extension.js +51 -0
  136. package/dist/mock_assistant/extensions/label.extension.js.map +1 -0
  137. package/dist/mock_assistant/extensions/services.extension.d.ts +12 -0
  138. package/dist/mock_assistant/extensions/services.extension.js +20 -0
  139. package/dist/mock_assistant/extensions/services.extension.js.map +1 -0
  140. package/dist/mock_assistant/extensions/websocket-api.extension.d.ts +15 -0
  141. package/dist/mock_assistant/extensions/websocket-api.extension.js +68 -0
  142. package/dist/mock_assistant/extensions/websocket-api.extension.js.map +1 -0
  143. package/dist/mock_assistant/extensions/zone.extension.d.ts +8 -0
  144. package/dist/mock_assistant/extensions/zone.extension.js +51 -0
  145. package/dist/mock_assistant/extensions/zone.extension.js.map +1 -0
  146. package/dist/mock_assistant/helpers/fixtures.js +1 -2
  147. package/dist/mock_assistant/helpers/index.d.ts +0 -1
  148. package/dist/mock_assistant/helpers/index.js +1 -5
  149. package/dist/mock_assistant/helpers/index.js.map +1 -1
  150. package/dist/mock_assistant/index.js +3 -6
  151. package/dist/mock_assistant/index.js.map +1 -1
  152. package/dist/mock_assistant/main.js +11 -15
  153. package/dist/mock_assistant/main.js.map +1 -1
  154. package/dist/mock_assistant/mock-assistant.module.d.ts +156 -3
  155. package/dist/mock_assistant/mock-assistant.module.js +56 -11
  156. package/dist/mock_assistant/mock-assistant.module.js.map +1 -1
  157. package/dist/quickboot.module.js +5 -8
  158. package/dist/quickboot.module.js.map +1 -1
  159. package/dist/testing/area.spec.js +106 -194
  160. package/dist/testing/area.spec.js.map +1 -1
  161. package/dist/testing/backup.spec.js +97 -139
  162. package/dist/testing/backup.spec.js.map +1 -1
  163. package/dist/testing/config.spec.js +79 -153
  164. package/dist/testing/config.spec.js.map +1 -1
  165. package/dist/testing/device.spec.js +35 -69
  166. package/dist/testing/device.spec.js.map +1 -1
  167. package/dist/testing/entity.spec.js +94 -149
  168. package/dist/testing/entity.spec.js.map +1 -1
  169. package/dist/testing/events.spec.js +33 -57
  170. package/dist/testing/events.spec.js.map +1 -1
  171. package/dist/testing/fetch-api.spec.js +242 -427
  172. package/dist/testing/fetch-api.spec.js.map +1 -1
  173. package/dist/testing/fixtures.spec.d.ts +1 -0
  174. package/dist/testing/fixtures.spec.js +150 -0
  175. package/dist/testing/fixtures.spec.js.map +1 -0
  176. package/dist/testing/floor.spec.js +106 -194
  177. package/dist/testing/floor.spec.js.map +1 -1
  178. package/dist/testing/id-by.spec.js +68 -107
  179. package/dist/testing/id-by.spec.js.map +1 -1
  180. package/dist/testing/label.spec.js +106 -194
  181. package/dist/testing/label.spec.js.map +1 -1
  182. package/dist/testing/ref-by.spec.js +155 -219
  183. package/dist/testing/ref-by.spec.js.map +1 -1
  184. package/dist/testing/websocket.spec.d.ts +1 -8
  185. package/dist/testing/websocket.spec.js +35 -50
  186. package/dist/testing/websocket.spec.js.map +1 -1
  187. package/dist/testing/workflow.spec.js +82 -81
  188. package/dist/testing/workflow.spec.js.map +1 -1
  189. package/dist/testing/zone.spec.js +61 -113
  190. package/dist/testing/zone.spec.js.map +1 -1
  191. package/package.json +56 -40
  192. package/dist/helpers/metrics.helper.d.ts +0 -29
  193. package/dist/helpers/metrics.helper.js +0 -62
  194. package/dist/helpers/metrics.helper.js.map +0 -1
  195. package/dist/mock_assistant/helpers/utils.d.ts +0 -4
  196. package/dist/mock_assistant/helpers/utils.js +0 -57
  197. package/dist/mock_assistant/helpers/utils.js.map +0 -1
package/README.md CHANGED
@@ -1,5 +1,8 @@
1
- [![codecov](https://codecov.io/gh/Digital-Alchemy-TS/hass/graph/badge.svg?token=LYUQ1FQ71D)](https://codecov.io/gh/Digital-Alchemy-TS/hass)
1
+ [![stars](https://img.shields.io/github/stars/Digital-Alchemy-TS/hass)](https://github.com/Digital-Alchemy-TS/hass)
2
+ ![discord](https://img.shields.io/discord/1219758743848489147?label=Discord&logo=discord)
2
3
 
4
+ [![codecov](https://codecov.io/gh/Digital-Alchemy-TS/hass/graph/badge.svg?token=LYUQ1FQ71D)](https://codecov.io/gh/Digital-Alchemy-TS/hass)
5
+ [![version](https://img.shields.io/github/package-json/version/Digital-Alchemy-TS/hass)](https://www.npmjs.com/package/@digital-alchemy/hass)
3
6
  ---
4
7
 
5
8
  # 🏠 Welcome to `@digital-alchemy/hass`!
package/dist/dynamic.d.ts CHANGED
@@ -278,7 +278,7 @@ export type ENTITY_SETUP = {
278
278
  user_id: null;
279
279
  };
280
280
  entity_id: "switch.porch_light";
281
- state: "unavailable";
281
+ state: string;
282
282
  };
283
283
  "todo.shopping_list": {
284
284
  attributes: {
package/dist/dynamic.js CHANGED
@@ -1,3 +1,8 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
1
+ /* eslint-disable @typescript-eslint/no-magic-numbers */
2
+ /* eslint-disable sonarjs/redundant-type-aliases */
3
+ /* eslint-disable @cspell/spellchecker */
4
+ /* eslint-disable @typescript-eslint/ban-ts-comment */
5
+ /* eslint-disable sonarjs/no-redundant-type-constituents */
6
+ /* eslint-disable @typescript-eslint/no-empty-object-type */
7
+ export {};
3
8
  //# sourceMappingURL=dynamic.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"dynamic.js","sourceRoot":"","sources":["../src/dynamic.ts"],"names":[],"mappings":""}
1
+ {"version":3,"file":"dynamic.js","sourceRoot":"","sources":["../src/dynamic.ts"],"names":[],"mappings":"AAAA,wDAAwD;AACxD,mDAAmD;AACnD,yCAAyC;AACzC,sDAAsD;AACtD,2DAA2D;AAC3D,4DAA4D"}
@@ -1,13 +1,3 @@
1
1
  import { TServiceParams } from "@digital-alchemy/core";
2
- import { TAreaId } from "../dynamic";
3
- import { ANY_ENTITY, AreaCreate, AreaDetails } from "../helpers";
4
- export declare function Area({ hass, context, config, logger, event, lifecycle, }: TServiceParams): {
5
- apply: (area: TAreaId, entities: ANY_ENTITY[]) => Promise<{
6
- updated: ANY_ENTITY[];
7
- }>;
8
- create: (details: AreaCreate) => Promise<void>;
9
- current: AreaDetails[];
10
- delete: (area_id: TAreaId) => Promise<void>;
11
- list: () => Promise<AreaDetails[]>;
12
- update: (details: AreaDetails) => Promise<void>;
13
- };
2
+ import { HassAreaService } from "../helpers";
3
+ export declare function Area({ hass, context, config, logger, event, lifecycle, }: TServiceParams): HassAreaService;
@@ -1,29 +1,23 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.Area = Area;
4
- const core_1 = require("@digital-alchemy/core");
5
- const helpers_1 = require("../helpers");
6
- function Area({ hass, context, config, logger, event, lifecycle, }) {
1
+ import { debounce, eachSeries, InternalError } from "@digital-alchemy/core";
2
+ import { AREA_REGISTRY_UPDATED, EARLY_ON_READY, ENTITY_REGISTRY_UPDATED, } from "../helpers";
3
+ export function Area({ hass, context, config, logger, event, lifecycle, }) {
7
4
  hass.socket.onConnect(async () => {
8
- if (!config.hass.AUTO_CONNECT_SOCKET || !config.hass.MANAGE_REGISTRY) {
9
- return;
10
- }
11
5
  let loading = new Promise(async (done) => {
12
6
  hass.area.current = await hass.area.list();
13
7
  loading = undefined;
14
8
  done();
15
9
  });
16
- lifecycle.onReady(async () => loading && (await loading), helpers_1.EARLY_ON_READY);
17
- });
18
- hass.socket.subscribe({
19
- context,
20
- event_type: "area_registry_updated",
21
- async exec() {
22
- await (0, core_1.debounce)(helpers_1.AREA_REGISTRY_UPDATED, config.hass.EVENT_DEBOUNCE_MS);
23
- hass.area.current = await hass.area.list();
24
- logger.debug(`area registry updated`);
25
- event.emit(helpers_1.AREA_REGISTRY_UPDATED);
26
- },
10
+ lifecycle.onReady(async () => loading && (await loading), EARLY_ON_READY);
11
+ hass.socket.subscribe({
12
+ context,
13
+ event_type: "area_registry_updated",
14
+ async exec() {
15
+ await debounce(AREA_REGISTRY_UPDATED, config.hass.EVENT_DEBOUNCE_MS);
16
+ hass.area.current = await hass.area.list();
17
+ logger.debug(`area registry updated`);
18
+ event.emit(AREA_REGISTRY_UPDATED);
19
+ },
20
+ });
27
21
  });
28
22
  async function list() {
29
23
  return await hass.socket.sendMessage({
@@ -32,7 +26,7 @@ function Area({ hass, context, config, logger, event, lifecycle, }) {
32
26
  }
33
27
  async function deleteArea(area_id) {
34
28
  return await new Promise(async (done) => {
35
- event.once(helpers_1.AREA_REGISTRY_UPDATED, done);
29
+ event.once(AREA_REGISTRY_UPDATED, done);
36
30
  await hass.socket.sendMessage({
37
31
  area_id,
38
32
  type: "config/area_registry/delete",
@@ -41,7 +35,7 @@ function Area({ hass, context, config, logger, event, lifecycle, }) {
41
35
  }
42
36
  async function create(details) {
43
37
  return await new Promise(async (done) => {
44
- event.once(helpers_1.AREA_REGISTRY_UPDATED, done);
38
+ event.once(AREA_REGISTRY_UPDATED, done);
45
39
  await hass.socket.sendMessage({
46
40
  floor_id: "",
47
41
  icon: "",
@@ -54,16 +48,16 @@ function Area({ hass, context, config, logger, event, lifecycle, }) {
54
48
  }
55
49
  async function apply(area, entities) {
56
50
  const out = { updated: [] };
57
- await (0, core_1.eachSeries)(entities, async (entity) => {
51
+ await eachSeries(entities, async (entity) => {
58
52
  const details = hass.entity.registry.current.find(item => item.entity_id === entity);
59
53
  if (!details) {
60
- throw new core_1.InternalError(context, "UNKNOWN_ENTITY", `Cannot find ${entity} in entity registry`);
54
+ throw new InternalError(context, "UNKNOWN_ENTITY", `Cannot find ${entity} in entity registry`);
61
55
  }
62
56
  if (details.area_id === area) {
63
57
  return;
64
58
  }
65
59
  await new Promise(async (done) => {
66
- event.once(helpers_1.ENTITY_REGISTRY_UPDATED, done);
60
+ event.once(ENTITY_REGISTRY_UPDATED, done);
67
61
  logger.trace({ area, entity }, `setting area`);
68
62
  out.updated.push(entity);
69
63
  await hass.socket.sendMessage({
@@ -77,7 +71,7 @@ function Area({ hass, context, config, logger, event, lifecycle, }) {
77
71
  }
78
72
  async function update(details) {
79
73
  return await new Promise(async (done) => {
80
- event.once(helpers_1.AREA_REGISTRY_UPDATED, done);
74
+ event.once(AREA_REGISTRY_UPDATED, done);
81
75
  await hass.socket.sendMessage({
82
76
  type: "config/area_registry/update",
83
77
  ...details,
@@ -1 +1 @@
1
- {"version":3,"file":"area.extension.js","sourceRoot":"","sources":["../../src/extensions/area.extension.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"area.extension.js","sourceRoot":"","sources":["../../src/extensions/area.extension.ts"],"names":[],"mappings":"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"}
@@ -1,8 +1,3 @@
1
1
  import { TServiceParams } from "@digital-alchemy/core";
2
- import { BackupResponse, HomeAssistantBackup } from "../helpers";
3
- export declare function Backup({ logger, hass, config }: TServiceParams): {
4
- download: (slug: string, destination: string) => Promise<void>;
5
- generate: () => Promise<HomeAssistantBackup>;
6
- list: () => Promise<BackupResponse>;
7
- remove: (slug: string) => Promise<void>;
8
- };
2
+ import { HassBackupService } from "../helpers";
3
+ export declare function Backup({ logger, hass, config }: TServiceParams): HassBackupService;
@@ -1,14 +1,11 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.Backup = Backup;
4
- const core_1 = require("@digital-alchemy/core");
5
- function Backup({ logger, hass, config }) {
1
+ import { is, SECOND, sleep } from "@digital-alchemy/core";
2
+ export function Backup({ logger, hass, config }) {
6
3
  async function download(slug, destination) {
7
4
  const result = await hass.socket.sendMessage({
8
5
  path: `/api/backup/download/${slug}`,
9
6
  type: "auth/sign_path",
10
7
  });
11
- if (!core_1.is.object(result) || !("path" in result)) {
8
+ if (!is.object(result) || !("path" in result)) {
12
9
  return;
13
10
  }
14
11
  await hass.fetch.download(destination, {
@@ -26,13 +23,13 @@ function Backup({ logger, hass, config }) {
26
23
  hass.socket.sendMessage({ type: "backup/generate" });
27
24
  while (current.backing_up === false) {
28
25
  logger.debug({ name: generate }, "... waiting");
29
- await (0, core_1.sleep)(config.hass.RETRY_INTERVAL * core_1.SECOND);
26
+ await sleep(config.hass.RETRY_INTERVAL * SECOND);
30
27
  current = await hass.backup.list();
31
28
  }
32
29
  }
33
30
  while (current.backing_up === true) {
34
31
  logger.debug({ name: generate }, "... waiting");
35
- await (0, core_1.sleep)(config.hass.RETRY_INTERVAL * core_1.SECOND);
32
+ await sleep(config.hass.RETRY_INTERVAL * SECOND);
36
33
  current = await hass.backup.list();
37
34
  }
38
35
  logger.info({ name: generate }, `backup complete`);
@@ -1 +1 @@
1
- {"version":3,"file":"backup.extension.js","sourceRoot":"","sources":["../../src/extensions/backup.extension.ts"],"names":[],"mappings":";;AAQA,wBAqDC;AA7DD,gDAA0E;AAQ1E,SAAgB,MAAM,CAAC,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,EAAkB;IAC7D,KAAK,UAAU,QAAQ,CAAC,IAAY,EAAE,WAAmB;QACvD,MAAM,MAAM,GAAG,MAAM,IAAI,CAAC,MAAM,CAAC,WAAW,CAAsB;YAChE,IAAI,EAAE,wBAAwB,IAAI,EAAE;YACpC,IAAI,EAAE,gBAAgB;SACvB,CAAC,CAAC;QACH,IAAI,CAAC,SAAE,CAAC,MAAM,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC,MAAM,IAAI,MAAM,CAAC,EAAE,CAAC;YAC9C,OAAO;QACT,CAAC;QACD,MAAM,IAAI,CAAC,KAAK,CAAC,QAAQ,CAAC,WAAW,EAAE;YACrC,GAAG,EAAE,MAAM,CAAC,IAAI;SACjB,CAAC,CAAC;IACL,CAAC;IAED,KAAK,UAAU,QAAQ;QACrB,IAAI,OAAO,GAAG,MAAM,IAAI,CAAC,MAAM,CAAC,IAAI,EAAE,CAAC;QACvC,iDAAiD;QACjD,IAAI,OAAO,CAAC,UAAU,EAAE,CAAC;YACvB,MAAM,CAAC,IAAI,CACT,EAAE,IAAI,EAAE,QAAQ,EAAE,EAClB,yEAAyE,CAC1E,CAAC;QACJ,CAAC;aAAM,CAAC;YACN,MAAM,CAAC,IAAI,CAAC,EAAE,IAAI,EAAE,QAAQ,EAAE,EAAE,uBAAuB,CAAC,CAAC;YACzD,IAAI,CAAC,MAAM,CAAC,WAAW,CAAC,EAAE,IAAI,EAAE,iBAAiB,EAAE,CAAC,CAAC;YACrD,OAAO,OAAO,CAAC,UAAU,KAAK,KAAK,EAAE,CAAC;gBACpC,MAAM,CAAC,KAAK,CAAC,EAAE,IAAI,EAAE,QAAQ,EAAE,EAAE,aAAa,CAAC,CAAC;gBAChD,MAAM,IAAA,YAAK,EAAC,MAAM,CAAC,IAAI,CAAC,cAAc,GAAG,aAAM,CAAC,CAAC;gBACjD,OAAO,GAAG,MAAM,IAAI,CAAC,MAAM,CAAC,IAAI,EAAE,CAAC;YACrC,CAAC;QACH,CAAC;QACD,OAAO,OAAO,CAAC,UAAU,KAAK,IAAI,EAAE,CAAC;YACnC,MAAM,CAAC,KAAK,CAAC,EAAE,IAAI,EAAE,QAAQ,EAAE,EAAE,aAAa,CAAC,CAAC;YAChD,MAAM,IAAA,YAAK,EAAC,MAAM,CAAC,IAAI,CAAC,cAAc,GAAG,aAAM,CAAC,CAAC;YACjD,OAAO,GAAG,MAAM,IAAI,CAAC,MAAM,CAAC,IAAI,EAAE,CAAC;QACrC,CAAC;QACD,MAAM,CAAC,IAAI,CAAC,EAAE,IAAI,EAAE,QAAQ,EAAE,EAAE,iBAAiB,CAAC,CAAC;QACnD,OAAO,OAAO,CAAC,OAAO,CAAC,GAAG,EAAE,CAAC;IAC/B,CAAC;IAED,KAAK,UAAU,IAAI;QACjB,MAAM,CAAC,KAAK,CAAC,EAAE,IAAI,EAAE,IAAI,EAAE,EAAE,MAAM,CAAC,CAAC;QACrC,OAAO,MAAM,IAAI,CAAC,MAAM,CAAC,WAAW,CAAiB;YACnD,IAAI,EAAE,aAAa;SACpB,CAAC,CAAC;IACL,CAAC;IAED,KAAK,UAAU,MAAM,CAAC,IAAY;QAChC,MAAM,CAAC,KAAK,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,EAAE,MAAM,CAAC,CAAC;QACvC,MAAM,IAAI,CAAC,MAAM,CAAC,WAAW,CAAC,EAAE,IAAI,EAAE,IAAI,EAAE,eAAe,EAAE,CAAC,CAAC;IACjE,CAAC;IAED,OAAO,EAAE,QAAQ,EAAE,QAAQ,EAAE,IAAI,EAAE,MAAM,EAAE,CAAC;AAC9C,CAAC"}
1
+ {"version":3,"file":"backup.extension.js","sourceRoot":"","sources":["../../src/extensions/backup.extension.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,EAAE,EAAE,MAAM,EAAE,KAAK,EAAkB,MAAM,uBAAuB,CAAC;AAS1E,MAAM,UAAU,MAAM,CAAC,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,EAAkB;IAC7D,KAAK,UAAU,QAAQ,CAAC,IAAY,EAAE,WAAmB;QACvD,MAAM,MAAM,GAAG,MAAM,IAAI,CAAC,MAAM,CAAC,WAAW,CAAsB;YAChE,IAAI,EAAE,wBAAwB,IAAI,EAAE;YACpC,IAAI,EAAE,gBAAgB;SACvB,CAAC,CAAC;QACH,IAAI,CAAC,EAAE,CAAC,MAAM,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC,MAAM,IAAI,MAAM,CAAC,EAAE,CAAC;YAC9C,OAAO;QACT,CAAC;QACD,MAAM,IAAI,CAAC,KAAK,CAAC,QAAQ,CAAC,WAAW,EAAE;YACrC,GAAG,EAAE,MAAM,CAAC,IAAI;SACjB,CAAC,CAAC;IACL,CAAC;IAED,KAAK,UAAU,QAAQ;QACrB,IAAI,OAAO,GAAG,MAAM,IAAI,CAAC,MAAM,CAAC,IAAI,EAAE,CAAC;QACvC,iDAAiD;QACjD,IAAI,OAAO,CAAC,UAAU,EAAE,CAAC;YACvB,MAAM,CAAC,IAAI,CACT,EAAE,IAAI,EAAE,QAAQ,EAAE,EAClB,yEAAyE,CAC1E,CAAC;QACJ,CAAC;aAAM,CAAC;YACN,MAAM,CAAC,IAAI,CAAC,EAAE,IAAI,EAAE,QAAQ,EAAE,EAAE,uBAAuB,CAAC,CAAC;YACzD,IAAI,CAAC,MAAM,CAAC,WAAW,CAAC,EAAE,IAAI,EAAE,iBAAiB,EAAE,CAAC,CAAC;YACrD,OAAO,OAAO,CAAC,UAAU,KAAK,KAAK,EAAE,CAAC;gBACpC,MAAM,CAAC,KAAK,CAAC,EAAE,IAAI,EAAE,QAAQ,EAAE,EAAE,aAAa,CAAC,CAAC;gBAChD,MAAM,KAAK,CAAC,MAAM,CAAC,IAAI,CAAC,cAAc,GAAG,MAAM,CAAC,CAAC;gBACjD,OAAO,GAAG,MAAM,IAAI,CAAC,MAAM,CAAC,IAAI,EAAE,CAAC;YACrC,CAAC;QACH,CAAC;QACD,OAAO,OAAO,CAAC,UAAU,KAAK,IAAI,EAAE,CAAC;YACnC,MAAM,CAAC,KAAK,CAAC,EAAE,IAAI,EAAE,QAAQ,EAAE,EAAE,aAAa,CAAC,CAAC;YAChD,MAAM,KAAK,CAAC,MAAM,CAAC,IAAI,CAAC,cAAc,GAAG,MAAM,CAAC,CAAC;YACjD,OAAO,GAAG,MAAM,IAAI,CAAC,MAAM,CAAC,IAAI,EAAE,CAAC;QACrC,CAAC;QACD,MAAM,CAAC,IAAI,CAAC,EAAE,IAAI,EAAE,QAAQ,EAAE,EAAE,iBAAiB,CAAC,CAAC;QACnD,OAAO,OAAO,CAAC,OAAO,CAAC,GAAG,EAAE,CAAC;IAC/B,CAAC;IAED,KAAK,UAAU,IAAI;QACjB,MAAM,CAAC,KAAK,CAAC,EAAE,IAAI,EAAE,IAAI,EAAE,EAAE,MAAM,CAAC,CAAC;QACrC,OAAO,MAAM,IAAI,CAAC,MAAM,CAAC,WAAW,CAAiB;YACnD,IAAI,EAAE,aAAa;SACpB,CAAC,CAAC;IACL,CAAC;IAED,KAAK,UAAU,MAAM,CAAC,IAAY;QAChC,MAAM,CAAC,KAAK,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,EAAE,MAAM,CAAC,CAAC;QACvC,MAAM,IAAI,CAAC,MAAM,CAAC,WAAW,CAAC,EAAE,IAAI,EAAE,IAAI,EAAE,eAAe,EAAE,CAAC,CAAC;IACjE,CAAC;IAED,OAAO,EAAE,QAAQ,EAAE,QAAQ,EAAE,IAAI,EAAE,MAAM,EAAE,CAAC;AAC9C,CAAC"}
@@ -1,3 +1,3 @@
1
1
  import { TServiceParams } from "@digital-alchemy/core";
2
2
  import { iCallService } from "..";
3
- export declare function CallProxy({ logger, lifecycle, internal, hass, config, }: TServiceParams): iCallService;
3
+ export declare function CallProxy({ logger, lifecycle, internal, hass }: TServiceParams): iCallService;
@@ -1,9 +1,5 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.CallProxy = CallProxy;
4
- const core_1 = require("@digital-alchemy/core");
5
- const __1 = require("..");
6
- function CallProxy({ logger, lifecycle, internal, hass, config, }) {
1
+ import { is } from "@digital-alchemy/core";
2
+ export function CallProxy({ logger, lifecycle, internal, hass }) {
7
3
  let loaded = false;
8
4
  const rawProxy = {};
9
5
  /**
@@ -12,10 +8,6 @@ function CallProxy({ logger, lifecycle, internal, hass, config, }) {
12
8
  * This API matches the api at the time the this function is run, which may be different from any generated typescript definitions from the past.
13
9
  */
14
10
  lifecycle.onBootstrap(async () => {
15
- if (!config.hass.AUTO_SCAN_CALL_PROXY) {
16
- logger.debug({ name: "onBootstrap" }, `skip service populate`);
17
- return;
18
- }
19
11
  logger.debug({ name: "onBootstrap" }, `runtime populate service interfaces`);
20
12
  await loadServiceList();
21
13
  loaded = true;
@@ -32,7 +24,7 @@ function CallProxy({ logger, lifecycle, internal, hass, config, }) {
32
24
  const service = `${value.domain}.${key}`;
33
25
  return await sendMessage(service, {
34
26
  ...parameters,
35
- }, core_1.is.boolean(data?.response?.optional));
27
+ }, is.boolean(data?.response?.optional));
36
28
  },
37
29
  ]));
38
30
  logger.trace({ name: loadServiceList, services }, `loaded domain [%s]`, value.domain);
@@ -46,18 +38,7 @@ function CallProxy({ logger, lifecycle, internal, hass, config, }) {
46
38
  if (hass.socket.pauseMessages) {
47
39
  return undefined;
48
40
  }
49
- const sendViaRest = (config.hass.CALL_PROXY_ALLOW_REST === "allow" &&
50
- hass.socket.connectionState !== "connected") ||
51
- config.hass.CALL_PROXY_ALLOW_REST === "prefer";
52
- if (sendViaRest && return_response) {
53
- // See https://github.com/home-assistant/core/issues/106379#issuecomment-1878548124 for the reason for this warning
54
- logger.warn({ name: sendMessage }, "return_response calls must use websocket");
55
- }
56
- if (sendViaRest) {
57
- return await hass.fetch.callService(serviceName, service_data);
58
- }
59
41
  const [domain, service] = serviceName.split(".");
60
- __1.CALL_PROXY_SERVICE_CALL.labels({ domain, service }).inc();
61
42
  // User can just not await this call if they don't care about the "waitForChange"
62
43
  if (!return_response) {
63
44
  return await hass.socket.sendMessage({ domain, service, service_data, type: "call_service" }, true);
@@ -1 +1 @@
1
- {"version":3,"file":"call-proxy.extension.js","sourceRoot":"","sources":["../../src/extensions/call-proxy.extension.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"call-proxy.extension.js","sourceRoot":"","sources":["../../src/extensions/call-proxy.extension.ts"],"names":[],"mappings":"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"}
@@ -1,8 +1,4 @@
1
1
  import { TServiceParams } from "@digital-alchemy/core";
2
- import { ALL_SERVICE_DOMAINS, HassServiceDTO, iCallService } from "..";
2
+ import { HassConfigService } from "..";
3
3
  export declare const SERVICE_LIST_UPDATED = "SERVICE_LIST_UPDATED";
4
- export declare function Configure({ logger, lifecycle, event, hass, config, internal, }: TServiceParams): {
5
- getServices: () => HassServiceDTO[];
6
- isService: <DOMAIN extends ALL_SERVICE_DOMAINS>(domain: DOMAIN, service: string) => service is Extract<keyof iCallService[DOMAIN], string>;
7
- loadServiceList: (recursion?: number) => Promise<void>;
8
- };
4
+ export declare function Configure({ logger, lifecycle, event, hass, config, internal, }: TServiceParams): HassConfigService;
@@ -1,26 +1,22 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.SERVICE_LIST_UPDATED = void 0;
4
- exports.Configure = Configure;
5
1
  /* eslint-disable @typescript-eslint/no-magic-numbers */
6
- const core_1 = require("@digital-alchemy/core");
7
- const process_1 = require("process");
8
- const __1 = require("..");
2
+ import { asyncNoop, INCREMENT, is, SECOND, sleep, START, } from "@digital-alchemy/core";
3
+ import { env } from "process";
4
+ import { PostConfigPriorities, } from "..";
9
5
  const MAX_ATTEMPTS = 50;
10
6
  const FAILED = 1;
11
- exports.SERVICE_LIST_UPDATED = "SERVICE_LIST_UPDATED";
12
- function Configure({ logger, lifecycle, event, hass, config, internal, }) {
7
+ export const SERVICE_LIST_UPDATED = "SERVICE_LIST_UPDATED";
8
+ export function Configure({ logger, lifecycle, event, hass, config, internal, }) {
13
9
  lifecycle.onPreInit(() => {
14
10
  // HASSIO_TOKEN provided by home assistant to addons
15
11
  // SUPERVISOR_TOKEN used as alias elsewhere
16
- const token = process_1.env.HASSIO_TOKEN || process_1.env.SUPERVISOR_TOKEN;
17
- if (core_1.is.empty(token)) {
12
+ const token = env.HASSIO_TOKEN || env.SUPERVISOR_TOKEN;
13
+ if (is.empty(token)) {
18
14
  return;
19
15
  }
20
16
  logger.debug({ name: "onPreInit" }, `auto configuring from addon environment`);
21
17
  internal.boilerplate.configuration.set("hass", "BASE_URL",
22
18
  // don't go over the network
23
- process_1.env.HASS_SERVER || "http://supervisor/core");
19
+ env.HASS_SERVER || "http://supervisor/core");
24
20
  internal.boilerplate.configuration.set("hass", "TOKEN", token);
25
21
  });
26
22
  /**
@@ -33,40 +29,40 @@ function Configure({ logger, lifecycle, event, hass, config, internal, }) {
33
29
  return;
34
30
  }
35
31
  internal.boilerplate.configuration.set("boilerplate", "LOG_LEVEL", "trace");
36
- await (0, core_1.asyncNoop)();
32
+ await asyncNoop();
37
33
  logger.info({ name: "onPostConfig" }, `validating credentials`);
38
34
  try {
39
35
  const result = await hass.fetch.checkCredentials();
40
- if (core_1.is.object(result)) {
36
+ if (is.object(result)) {
41
37
  // * all good
42
38
  logger.info({ name: "onPostConfig" }, result.message);
43
- (0, process_1.exit)(1);
39
+ process.exit(1);
44
40
  }
45
41
  // * bad token
46
42
  logger.error({ name: "onPostConfig" }, String(result));
47
- (0, process_1.exit)(0);
43
+ process.exit(0);
48
44
  }
49
45
  catch (error) {
50
46
  // * bad BASE_URL
51
47
  logger.error({ error, name: "onPostConfig" }, "failed to send request");
52
- (0, process_1.exit)(0);
48
+ process.exit(0);
53
49
  }
54
- }, __1.PostConfigPriorities.VALIDATE);
50
+ }, PostConfigPriorities.VALIDATE);
55
51
  let services;
56
- async function loadServiceList(recursion = core_1.START) {
52
+ async function loadServiceList(recursion = START) {
57
53
  logger.debug({ name: loadServiceList }, `fetching service list`);
58
54
  services = await hass.fetch.listServices();
59
- if (core_1.is.empty(services)) {
55
+ if (is.empty(services)) {
60
56
  if (recursion > MAX_ATTEMPTS) {
61
57
  logger.fatal({ name: loadServiceList }, `failed to load service list from Home Assistant`);
62
- (0, process_1.exit)(FAILED);
58
+ process.exit(FAILED);
63
59
  }
64
60
  logger.warn({ name: loadServiceList }, "failed to retrieve {service} list. Retrying {%s}/[%s]", recursion, MAX_ATTEMPTS);
65
- await (0, core_1.sleep)(config.hass.RETRY_INTERVAL * core_1.SECOND);
66
- await loadServiceList(recursion + core_1.INCREMENT);
61
+ await sleep(config.hass.RETRY_INTERVAL * SECOND);
62
+ await loadServiceList(recursion + INCREMENT);
67
63
  }
68
64
  else {
69
- event.emit(exports.SERVICE_LIST_UPDATED, services);
65
+ event.emit(SERVICE_LIST_UPDATED, services);
70
66
  checkedServices = new Map();
71
67
  }
72
68
  }
@@ -77,7 +73,7 @@ function Configure({ logger, lifecycle, event, hass, config, internal, }) {
77
73
  if (checkedServices.has(service)) {
78
74
  return checkedServices.get(service);
79
75
  }
80
- const exists = services.some(i => i.domain === domain && !core_1.is.undefined(i.services[service]));
76
+ const exists = services.some(i => i.domain === domain && !is.undefined(i.services[service]));
81
77
  checkedServices.set(service, exists);
82
78
  return exists;
83
79
  },
@@ -1 +1 @@
1
- {"version":3,"file":"config.extension.js","sourceRoot":"","sources":["../../src/extensions/config.extension.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"config.extension.js","sourceRoot":"","sources":["../../src/extensions/config.extension.ts"],"names":[],"mappings":"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"}
@@ -1,7 +1,3 @@
1
1
  import { TServiceParams } from "@digital-alchemy/core";
2
- import { EditAliasOptions, ToggleExpose } from "../helpers";
3
- export declare function Conversation({ hass, logger }: TServiceParams): {
4
- addAlias: ({ entity, alias }: EditAliasOptions) => Promise<void>;
5
- removeAlias: ({ entity, alias }: EditAliasOptions) => Promise<void>;
6
- setConversational: ({ entity_ids, assistants, should_expose, }: ToggleExpose) => Promise<void>;
7
- };
2
+ import { HassConversationService } from "../helpers";
3
+ export declare function Conversation({ hass, logger }: TServiceParams): HassConversationService;
@@ -1,8 +1,5 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.Conversation = Conversation;
4
- const helpers_1 = require("../helpers");
5
- function Conversation({ hass, logger }) {
1
+ import { UPDATE_REGISTRY, } from "../helpers";
2
+ export function Conversation({ hass, logger }) {
6
3
  async function addAlias({ entity, alias }) {
7
4
  const current = await hass.entity.registry.get(entity);
8
5
  if (current?.aliases?.includes(alias)) {
@@ -20,14 +17,14 @@ function Conversation({ hass, logger }) {
20
17
  logger.debug({ name: entity }, `does not have alias {%s}`, alias);
21
18
  return;
22
19
  }
23
- await hass.socket.sendMessage({ entity_id: entity, type: helpers_1.UPDATE_REGISTRY });
20
+ await hass.socket.sendMessage({ entity_id: entity, type: UPDATE_REGISTRY });
24
21
  }
25
- async function setConversational({ entity_ids, assistants, should_expose, }) {
22
+ async function setConversational({ entity_ids, assistants, should_expose }) {
26
23
  await hass.socket.sendMessage({
27
24
  assistants: [assistants].flat(),
28
25
  entity_ids: [entity_ids].flat(),
29
26
  should_expose,
30
- type: helpers_1.UPDATE_REGISTRY,
27
+ type: UPDATE_REGISTRY,
31
28
  });
32
29
  }
33
30
  return {
@@ -1 +1 @@
1
- {"version":3,"file":"conversation.extension.js","sourceRoot":"","sources":["../../src/extensions/conversation.extension.ts"],"names":[],"mappings":";;AAIA,oCAwCC;AA1CD,wCAA6E;AAE7E,SAAgB,YAAY,CAAC,EAAE,IAAI,EAAE,MAAM,EAAkB;IAC3D,KAAK,UAAU,QAAQ,CAAC,EAAE,MAAM,EAAE,KAAK,EAAoB;QACzD,MAAM,OAAO,GAAG,MAAM,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC;QACvD,IAAI,OAAO,EAAE,OAAO,EAAE,QAAQ,CAAC,KAAK,CAAC,EAAE,CAAC;YACtC,MAAM,CAAC,KAAK,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,EAAE,wBAAwB,EAAE,KAAK,CAAC,CAAC;YAChE,OAAO;QACT,CAAC;QACD,MAAM,IAAI,CAAC,MAAM,CAAC,WAAW,CAAC;YAC5B,SAAS,EAAE,MAAM;YACjB,IAAI,EAAE,+BAA+B;SACtC,CAAC,CAAC;IACL,CAAC;IAED,KAAK,UAAU,WAAW,CAAC,EAAE,MAAM,EAAE,KAAK,EAAoB;QAC5D,MAAM,OAAO,GAAG,MAAM,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC;QACvD,IAAI,CAAC,OAAO,EAAE,OAAO,EAAE,QAAQ,CAAC,KAAK,CAAC,EAAE,CAAC;YACvC,MAAM,CAAC,KAAK,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,EAAE,0BAA0B,EAAE,KAAK,CAAC,CAAC;YAClE,OAAO;QACT,CAAC;QACD,MAAM,IAAI,CAAC,MAAM,CAAC,WAAW,CAAC,EAAE,SAAS,EAAE,MAAM,EAAE,IAAI,EAAE,yBAAe,EAAE,CAAC,CAAC;IAC9E,CAAC;IAED,KAAK,UAAU,iBAAiB,CAAC,EAC/B,UAAU,EACV,UAAU,EACV,aAAa,GACA;QACb,MAAM,IAAI,CAAC,MAAM,CAAC,WAAW,CAAC;YAC5B,UAAU,EAAE,CAAC,UAAU,CAAC,CAAC,IAAI,EAAE;YAC/B,UAAU,EAAE,CAAC,UAAU,CAAC,CAAC,IAAI,EAAE;YAC/B,aAAa;YACb,IAAI,EAAE,yBAAe;SACtB,CAAC,CAAC;IACL,CAAC;IAED,OAAO;QACL,QAAQ;QACR,WAAW;QACX,iBAAiB;KAClB,CAAC;AACJ,CAAC"}
1
+ {"version":3,"file":"conversation.extension.js","sourceRoot":"","sources":["../../src/extensions/conversation.extension.ts"],"names":[],"mappings":"AAEA,OAAO,EAIL,eAAe,GAChB,MAAM,YAAY,CAAC;AAEpB,MAAM,UAAU,YAAY,CAAC,EAAE,IAAI,EAAE,MAAM,EAAkB;IAC3D,KAAK,UAAU,QAAQ,CAAC,EAAE,MAAM,EAAE,KAAK,EAAoB;QACzD,MAAM,OAAO,GAAG,MAAM,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC;QACvD,IAAI,OAAO,EAAE,OAAO,EAAE,QAAQ,CAAC,KAAK,CAAC,EAAE,CAAC;YACtC,MAAM,CAAC,KAAK,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,EAAE,wBAAwB,EAAE,KAAK,CAAC,CAAC;YAChE,OAAO;QACT,CAAC;QACD,MAAM,IAAI,CAAC,MAAM,CAAC,WAAW,CAAC;YAC5B,SAAS,EAAE,MAAM;YACjB,IAAI,EAAE,+BAA+B;SACtC,CAAC,CAAC;IACL,CAAC;IAED,KAAK,UAAU,WAAW,CAAC,EAAE,MAAM,EAAE,KAAK,EAAoB;QAC5D,MAAM,OAAO,GAAG,MAAM,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC;QACvD,IAAI,CAAC,OAAO,EAAE,OAAO,EAAE,QAAQ,CAAC,KAAK,CAAC,EAAE,CAAC;YACvC,MAAM,CAAC,KAAK,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,EAAE,0BAA0B,EAAE,KAAK,CAAC,CAAC;YAClE,OAAO;QACT,CAAC;QACD,MAAM,IAAI,CAAC,MAAM,CAAC,WAAW,CAAC,EAAE,SAAS,EAAE,MAAM,EAAE,IAAI,EAAE,eAAe,EAAE,CAAC,CAAC;IAC9E,CAAC;IAED,KAAK,UAAU,iBAAiB,CAAC,EAAE,UAAU,EAAE,UAAU,EAAE,aAAa,EAAgB;QACtF,MAAM,IAAI,CAAC,MAAM,CAAC,WAAW,CAAC;YAC5B,UAAU,EAAE,CAAC,UAAU,CAAC,CAAC,IAAI,EAAE;YAC/B,UAAU,EAAE,CAAC,UAAU,CAAC,CAAC,IAAI,EAAE;YAC/B,aAAa;YACb,IAAI,EAAE,eAAe;SACtB,CAAC,CAAC;IACL,CAAC;IAED,OAAO;QACL,QAAQ;QACR,WAAW;QACX,iBAAiB;KAClB,CAAC;AACJ,CAAC"}
@@ -1,6 +1,3 @@
1
1
  import { TServiceParams } from "@digital-alchemy/core";
2
- import { DeviceDetails } from "../helpers";
3
- export declare function Device({ hass, config, context, logger, lifecycle, event, }: TServiceParams): {
4
- current: DeviceDetails[];
5
- list: () => Promise<DeviceDetails[]>;
6
- };
2
+ import { HassDeviceService } from "../helpers";
3
+ export declare function Device({ hass, config, context, logger, lifecycle, event, }: TServiceParams): HassDeviceService;
@@ -1,32 +1,26 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.Device = Device;
4
- const core_1 = require("@digital-alchemy/core");
5
- const helpers_1 = require("../helpers");
6
- function Device({ hass, config, context, logger, lifecycle, event, }) {
1
+ import { debounce } from "@digital-alchemy/core";
2
+ import { DEVICE_REGISTRY_UPDATED, EARLY_ON_READY, } from "../helpers";
3
+ export function Device({ hass, config, context, logger, lifecycle, event, }) {
7
4
  hass.socket.onConnect(async () => {
8
- if (!config.hass.AUTO_CONNECT_SOCKET || !config.hass.MANAGE_REGISTRY) {
9
- return;
10
- }
11
5
  let loading = new Promise(async (done) => {
12
6
  hass.device.current = await hass.device.list();
13
7
  loading = undefined;
14
8
  done();
15
9
  });
16
- lifecycle.onReady(async () => loading && (await loading), helpers_1.EARLY_ON_READY);
17
- await SubscribeUpdates();
18
- });
19
- hass.socket.subscribe({
20
- context,
21
- event_type: "device_registry_updated",
22
- async exec() {
23
- await (0, core_1.debounce)(helpers_1.DEVICE_REGISTRY_UPDATED, config.hass.EVENT_DEBOUNCE_MS);
24
- hass.device.current = await hass.device.list();
25
- logger.debug(`device registry updated`);
26
- event.emit(helpers_1.DEVICE_REGISTRY_UPDATED);
27
- },
10
+ lifecycle.onReady(async () => loading && (await loading), EARLY_ON_READY);
11
+ await subscribeUpdates();
12
+ hass.socket.subscribe({
13
+ context,
14
+ event_type: "device_registry_updated",
15
+ async exec() {
16
+ await debounce(DEVICE_REGISTRY_UPDATED, config.hass.EVENT_DEBOUNCE_MS);
17
+ hass.device.current = await hass.device.list();
18
+ logger.debug(`device registry updated`);
19
+ event.emit(DEVICE_REGISTRY_UPDATED);
20
+ },
21
+ });
28
22
  });
29
- async function SubscribeUpdates() {
23
+ async function subscribeUpdates() {
30
24
  await hass.socket.sendMessage({
31
25
  event_type: "device_registry_updated",
32
26
  type: "subscribe_events",
@@ -1 +1 @@
1
- {"version":3,"file":"device.extension.js","sourceRoot":"","sources":["../../src/extensions/device.extension.ts"],"names":[],"mappings":";;AAQA,wBAiDC;AAzDD,gDAAiE;AAEjE,wCAIoB;AAEpB,SAAgB,MAAM,CAAC,EACrB,IAAI,EACJ,MAAM,EACN,OAAO,EACP,MAAM,EACN,SAAS,EACT,KAAK,GACU;IACf,IAAI,CAAC,MAAM,CAAC,SAAS,CAAC,KAAK,IAAI,EAAE;QAC/B,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,mBAAmB,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,eAAe,EAAE,CAAC;YACrE,OAAO;QACT,CAAC;QACD,IAAI,OAAO,GAAG,IAAI,OAAO,CAAO,KAAK,EAAC,IAAI,EAAC,EAAE;YAC3C,IAAI,CAAC,MAAM,CAAC,OAAO,GAAG,MAAM,IAAI,CAAC,MAAM,CAAC,IAAI,EAAE,CAAC;YAC/C,OAAO,GAAG,SAAS,CAAC;YACpB,IAAI,EAAE,CAAC;QACT,CAAC,CAAC,CAAC;QACH,SAAS,CAAC,OAAO,CAAC,KAAK,IAAI,EAAE,CAAC,OAAO,IAAI,CAAC,MAAM,OAAO,CAAC,EAAE,wBAAc,CAAC,CAAC;QAC1E,MAAM,gBAAgB,EAAE,CAAC;IAC3B,CAAC,CAAC,CAAC;IAEH,IAAI,CAAC,MAAM,CAAC,SAAS,CAAC;QACpB,OAAO;QACP,UAAU,EAAE,yBAAyB;QACrC,KAAK,CAAC,IAAI;YACR,MAAM,IAAA,eAAQ,EAAC,iCAAuB,EAAE,MAAM,CAAC,IAAI,CAAC,iBAAiB,CAAC,CAAC;YACvE,IAAI,CAAC,MAAM,CAAC,OAAO,GAAG,MAAM,IAAI,CAAC,MAAM,CAAC,IAAI,EAAE,CAAC;YAC/C,MAAM,CAAC,KAAK,CAAC,yBAAyB,CAAC,CAAC;YACxC,KAAK,CAAC,IAAI,CAAC,iCAAuB,CAAC,CAAC;QACtC,CAAC;KACF,CAAC,CAAC;IAEH,KAAK,UAAU,gBAAgB;QAC7B,MAAM,IAAI,CAAC,MAAM,CAAC,WAAW,CAAC;YAC5B,UAAU,EAAE,yBAAyB;YACrC,IAAI,EAAE,kBAAkB;SACzB,CAAC,CAAC;IACL,CAAC;IAED,KAAK,UAAU,IAAI;QACjB,OAAO,MAAM,IAAI,CAAC,MAAM,CAAC,WAAW,CAAkB;YACpD,IAAI,EAAE,6BAA6B;SACpC,CAAC,CAAC;IACL,CAAC;IAED,OAAO;QACL,OAAO,EAAE,EAAqB;QAC9B,IAAI;KACL,CAAC;AACJ,CAAC"}
1
+ {"version":3,"file":"device.extension.js","sourceRoot":"","sources":["../../src/extensions/device.extension.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAkB,MAAM,uBAAuB,CAAC;AAEjE,OAAO,EACL,uBAAuB,EAEvB,cAAc,GAEf,MAAM,YAAY,CAAC;AAEpB,MAAM,UAAU,MAAM,CAAC,EACrB,IAAI,EACJ,MAAM,EACN,OAAO,EACP,MAAM,EACN,SAAS,EACT,KAAK,GACU;IACf,IAAI,CAAC,MAAM,CAAC,SAAS,CAAC,KAAK,IAAI,EAAE;QAC/B,IAAI,OAAO,GAAG,IAAI,OAAO,CAAO,KAAK,EAAC,IAAI,EAAC,EAAE;YAC3C,IAAI,CAAC,MAAM,CAAC,OAAO,GAAG,MAAM,IAAI,CAAC,MAAM,CAAC,IAAI,EAAE,CAAC;YAC/C,OAAO,GAAG,SAAS,CAAC;YACpB,IAAI,EAAE,CAAC;QACT,CAAC,CAAC,CAAC;QACH,SAAS,CAAC,OAAO,CAAC,KAAK,IAAI,EAAE,CAAC,OAAO,IAAI,CAAC,MAAM,OAAO,CAAC,EAAE,cAAc,CAAC,CAAC;QAC1E,MAAM,gBAAgB,EAAE,CAAC;QAEzB,IAAI,CAAC,MAAM,CAAC,SAAS,CAAC;YACpB,OAAO;YACP,UAAU,EAAE,yBAAyB;YACrC,KAAK,CAAC,IAAI;gBACR,MAAM,QAAQ,CAAC,uBAAuB,EAAE,MAAM,CAAC,IAAI,CAAC,iBAAiB,CAAC,CAAC;gBACvE,IAAI,CAAC,MAAM,CAAC,OAAO,GAAG,MAAM,IAAI,CAAC,MAAM,CAAC,IAAI,EAAE,CAAC;gBAC/C,MAAM,CAAC,KAAK,CAAC,yBAAyB,CAAC,CAAC;gBACxC,KAAK,CAAC,IAAI,CAAC,uBAAuB,CAAC,CAAC;YACtC,CAAC;SACF,CAAC,CAAC;IACL,CAAC,CAAC,CAAC;IAEH,KAAK,UAAU,gBAAgB;QAC7B,MAAM,IAAI,CAAC,MAAM,CAAC,WAAW,CAAC;YAC5B,UAAU,EAAE,yBAAyB;YACrC,IAAI,EAAE,kBAAkB;SACzB,CAAC,CAAC;IACL,CAAC;IAED,KAAK,UAAU,IAAI;QACjB,OAAO,MAAM,IAAI,CAAC,MAAM,CAAC,WAAW,CAAkB;YACpD,IAAI,EAAE,6BAA6B;SACpC,CAAC,CAAC;IACL,CAAC;IAED,OAAO;QACL,OAAO,EAAE,EAAqB;QAC9B,IAAI;KACL,CAAC;AACJ,CAAC"}
@@ -1,62 +1,3 @@
1
1
  import { TServiceParams } from "@digital-alchemy/core";
2
- import { ALL_DOMAINS, ANY_ENTITY, EditLabelOptions, ENTITY_STATE, EntityHistoryDTO, EntityHistoryResult, EntityRegistryItem, PICK_ENTITY } from "..";
3
- type TMasterState = {
4
- [DOMAIN in ALL_DOMAINS]: Record<string, ENTITY_STATE<PICK_ENTITY<DOMAIN>>>;
5
- };
6
- export declare function EntityManager({ logger, hass, config, lifecycle, event, context, internal, }: TServiceParams): {
7
- /**
8
- * Internal library use only
9
- */
10
- _entityUpdateReceiver: <ENTITY extends ANY_ENTITY = import("..").TRawEntityIds>(entity_id: ENTITY, new_state: ENTITY_STATE<ENTITY>, old_state: ENTITY_STATE<ENTITY>) => void;
11
- _masterState: () => Partial<TMasterState>;
12
- /**
13
- * Lists all entities within a specified domain. This is useful for
14
- * domain-specific operations or queries.
15
- *
16
- * @deprecated use `hass.idBy.domain` | `hass.refBy.domain`
17
- */
18
- findByDomain: <DOMAIN extends ALL_DOMAINS>(domain: DOMAIN) => import("..").ByIdProxy<PICK_ENTITY<DOMAIN>>[];
19
- /**
20
- * Retrieves the current state of a given entity. This method returns
21
- * raw data, offering a direct view of the entity's state at a given moment.
22
- */
23
- getCurrentState: <ENTITY_ID extends ANY_ENTITY>(entity_id: ENTITY_ID) => ENTITY_STATE<ENTITY_ID>;
24
- /**
25
- * Retrieves the historical state data of entities over a specified time
26
- * period. Useful for analysis or tracking changes over time.
27
- */
28
- history: <ENTITES extends ANY_ENTITY[]>(payload: Omit<EntityHistoryDTO<ENTITES>, "type">) => Promise<{
29
- [k: string]: EntityHistoryResult[];
30
- }>;
31
- /**
32
- * Provides a simple listing of all entity IDs. Useful for enumeration
33
- * and quick reference to all available entities.
34
- */
35
- listEntities: <DOMAIN extends ALL_DOMAINS = import("..").TRawDomains>(domain?: DOMAIN) => PICK_ENTITY<DOMAIN>[];
36
- /**
37
- * Returns the previous entity state (not a proxy)
38
- */
39
- previousState: (entity_id: ANY_ENTITY) => ENTITY_STATE<import("..").TRawEntityIds>;
40
- /**
41
- * Initiates a refresh of the current entity states. Useful for ensuring
42
- * synchronization with the latest state data from Home Assistant.
43
- */
44
- refresh: (recursion?: number) => Promise<void>;
45
- /**
46
- * Interact with the entity registry
47
- */
48
- registry: {
49
- addLabel: ({ entity, label }: EditLabelOptions) => Promise<void>;
50
- current: EntityRegistryItem<ANY_ENTITY>[];
51
- get: <ENTITY extends ANY_ENTITY>(entity_id: ENTITY) => Promise<EntityRegistryItem<ENTITY>>;
52
- list: () => Promise<EntityRegistryItem<import("..").TRawEntityIds>[]>;
53
- registryList: () => Promise<EntityRegistryItem<import("..").TRawEntityIds>[]>;
54
- removeEntity: (entity_id: ANY_ENTITY | ANY_ENTITY[]) => Promise<void>;
55
- removeLabel: ({ entity, label }: EditLabelOptions) => Promise<void>;
56
- source: () => Promise<Record<import("..").TRawEntityIds, {
57
- domain: string;
58
- }>>;
59
- };
60
- warnEarly: (method: string) => void;
61
- };
62
- export {};
2
+ import { HassEntityManager } from "..";
3
+ export declare function EntityManager({ logger, hass, config, lifecycle, event, context, internal, }: TServiceParams): HassEntityManager;