@digital-alchemy/hass 0.3.35 → 24.6.2

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (53) hide show
  1. package/README.md +1 -1
  2. package/dist/extensions/entity.extension.d.ts +41 -11
  3. package/dist/extensions/entity.extension.js +36 -169
  4. package/dist/extensions/entity.extension.js.map +1 -1
  5. package/dist/extensions/id-by.extension.d.ts +10 -0
  6. package/dist/extensions/id-by.extension.js +67 -0
  7. package/dist/extensions/id-by.extension.js.map +1 -0
  8. package/dist/extensions/index.d.ts +2 -0
  9. package/dist/extensions/index.js +2 -0
  10. package/dist/extensions/index.js.map +1 -1
  11. package/dist/extensions/reference.extension.d.ts +24 -0
  12. package/dist/extensions/reference.extension.js +117 -0
  13. package/dist/extensions/reference.extension.js.map +1 -0
  14. package/dist/extensions/websocket-api.extension.d.ts +1 -1
  15. package/dist/extensions/websocket-api.extension.js +1 -1
  16. package/dist/hass.module.d.ts +10 -0
  17. package/dist/hass.module.js +10 -0
  18. package/dist/hass.module.js.map +1 -1
  19. package/dist/testing/id-by.spec.js +148 -0
  20. package/dist/testing/id-by.spec.js.map +1 -0
  21. package/dist/testing/ref-by.spec.js +139 -0
  22. package/dist/testing/ref-by.spec.js.map +1 -0
  23. package/package.json +10 -10
  24. package/dist/e2e/app/entities.d.ts +0 -29
  25. package/dist/e2e/app/entities.js +0 -21
  26. package/dist/e2e/app/entities.js.map +0 -1
  27. package/dist/e2e/app/main.d.ts +0 -10
  28. package/dist/e2e/app/main.js +0 -15
  29. package/dist/e2e/app/main.js.map +0 -1
  30. package/dist/e2e/area.spec.js +0 -99
  31. package/dist/e2e/area.spec.js.map +0 -1
  32. package/dist/e2e/call-proxy.spec.js +0 -57
  33. package/dist/e2e/call-proxy.spec.js.map +0 -1
  34. package/dist/e2e/device.spec.d.ts +0 -1
  35. package/dist/e2e/device.spec.js +0 -27
  36. package/dist/e2e/device.spec.js.map +0 -1
  37. package/dist/e2e/entity.spec.d.ts +0 -1
  38. package/dist/e2e/entity.spec.js +0 -328
  39. package/dist/e2e/entity.spec.js.map +0 -1
  40. package/dist/e2e/fetch.spec.d.ts +0 -1
  41. package/dist/e2e/fetch.spec.js +0 -79
  42. package/dist/e2e/fetch.spec.js.map +0 -1
  43. package/dist/e2e/floor.spec.d.ts +0 -1
  44. package/dist/e2e/floor.spec.js +0 -81
  45. package/dist/e2e/floor.spec.js.map +0 -1
  46. package/dist/e2e/label.spec.d.ts +0 -1
  47. package/dist/e2e/label.spec.js +0 -82
  48. package/dist/e2e/label.spec.js.map +0 -1
  49. package/dist/e2e/utils.d.ts +0 -2
  50. package/dist/e2e/utils.js +0 -7
  51. package/dist/e2e/utils.js.map +0 -1
  52. /package/dist/{e2e/area.spec.d.ts → testing/id-by.spec.d.ts} +0 -0
  53. /package/dist/{e2e/call-proxy.spec.d.ts → testing/ref-by.spec.d.ts} +0 -0
package/README.md CHANGED
@@ -6,7 +6,7 @@
6
6
 
7
7
  This repository contains generic extensions for interacting with Home Assistant, including websocket & REST API adapters, entity & event management, backup workflows, and more.
8
8
 
9
- - Extended docs: https://docs.digital-alchemy.app/Hass
9
+ - [Extended docs](https://docs.digital-alchemy.app)
10
10
  - [Discord](https://discord.gg/JkZ35Gv97Y)
11
11
 
12
12
  ## ⭐ Features
@@ -1,37 +1,63 @@
1
+ /// <reference types="node" />
1
2
  import { TServiceParams } from "@digital-alchemy/core";
2
- import { ByIdProxy, EditLabelOptions, ENTITY_STATE, EntityHistoryDTO, EntityHistoryResult, EntityRegistryItem, PICK_ENTITY, PICK_FROM_AREA, PICK_FROM_DEVICE, PICK_FROM_FLOOR, PICK_FROM_LABEL, TAreaId, TDeviceId, TFloorId, TLabelId, TPlatformId } from "..";
3
+ import EventEmitter from "events";
4
+ import { ByIdProxy, EditLabelOptions, ENTITY_STATE, EntityHistoryDTO, EntityHistoryResult, EntityRegistryItem, PICK_ENTITY, TAreaId, TDeviceId, TFloorId, TLabelId, TPlatformId, TRawDomains } from "..";
3
5
  export declare const ENTITY_UPDATE_RECEIVER: unique symbol;
4
6
  export declare function EntityManager({ logger, hass, config, lifecycle, event, context, internal, }: TServiceParams): {
7
+ _entityEvents: () => EventEmitter<[never]>;
5
8
  /**
6
9
  * Retrieve a list of entities listed as being part of a certain area
7
10
  * Tracks area updates at runtime
11
+ *
12
+ * @deprecated use `hass.idBy.area` - to be remove 2024-08
8
13
  */
9
- byArea: <AREA extends TAreaId, DOMAIN extends import("..").TRawDomains>(area: AREA, ...domains: DOMAIN[]) => PICK_FROM_AREA<AREA, DOMAIN>[];
14
+ byArea: <AREA extends TAreaId, DOMAINS extends TRawDomains = TRawDomains>(area: AREA, ...domains: DOMAINS[]) => Extract<{
15
+ _living_room: "switch.living_room_mood_lights";
16
+ _kitchen: "switch.kitchen_cabinets";
17
+ _bedroom: "switch.bedroom_lamp" | "light.bedroom_ceiling_fan";
18
+ }[`_${AREA}`], PICK_ENTITY<DOMAINS>>[];
10
19
  /**
11
20
  * Retrieve a list of entities associated with a particular device id
21
+ *
22
+ * @deprecated use `hass.idBy.device` - to be remove 2024-08
12
23
  */
13
- byDevice: <DEVICE extends TDeviceId, DOMAIN_1 extends import("..").TRawDomains>(device: DEVICE, ...domains: DOMAIN_1[]) => PICK_FROM_DEVICE<DEVICE, DOMAIN_1>[];
24
+ byDevice: <DEVICE extends TDeviceId, DOMAINS_1 extends TRawDomains = TRawDomains>(device: DEVICE, ...domains: DOMAINS_1[]) => Extract<{
25
+ _308e39cf50a9fc6c30b4110724ed1f2e: "sensor.sun_next_dawn" | "sensor.sun_next_dusk" | "sensor.sun_next_midnight" | "sensor.sun_next_noon" | "sensor.sun_next_rising" | "sensor.sun_next_setting" | "sensor.sun_solar_elevation" | "sensor.sun_solar_azimuth" | "sensor.sun_solar_rising";
26
+ _e58841e47cf86097b310316e55d6bb12: "calendar.united_states_tx";
27
+ }[`_${DEVICE}`], PICK_ENTITY<DOMAINS_1>>[];
14
28
  /**
15
29
  * Retrieve a list of entities that have areas associated with a certain floor
30
+ *
31
+ * @deprecated use `hass.idBy.floor` - to be remove 2024-08
16
32
  */
17
- byFloor: <FLOOR extends TFloorId, DOMAIN_2 extends import("..").TRawDomains>(floor: FLOOR, ...domains: DOMAIN_2[]) => PICK_FROM_FLOOR<FLOOR, DOMAIN_2>[];
33
+ byFloor: <FLOOR extends TFloorId, DOMAINS_2 extends TRawDomains = TRawDomains>(floor: FLOOR, ...domains: DOMAINS_2[]) => Extract<{
34
+ _downstairs: "switch.kitchen_cabinets" | "switch.living_room_mood_lights";
35
+ _upstairs: "switch.bedroom_lamp";
36
+ }[`_${FLOOR}`], PICK_ENTITY<DOMAINS_2>>[];
18
37
  /**
19
38
  * Retrieves a proxy object for a specified entity. This proxy object
20
39
  * provides current values and event hooks for the entity.
21
40
  */
22
- byId: <ENTITY_ID extends PICK_ENTITY>(entity_id: ENTITY_ID) => ByIdProxy<ENTITY_ID>;
41
+ byId: <ID extends PICK_ENTITY>(id: ID) => ByIdProxy<ID>;
23
42
  /**
24
43
  * Retrieve a list of entities that have a given label
44
+ *
45
+ * @deprecated use `hass.idBy.label` - to be remove 2024-08
25
46
  */
26
- byLabel: <LABEL extends TLabelId, DOMAIN_3 extends import("..").TRawDomains>(label: LABEL, ...domains: DOMAIN_3[]) => PICK_FROM_LABEL<LABEL, DOMAIN_3>[];
47
+ byLabel: <LABEL extends TLabelId, DOMAINS_3 extends TRawDomains = TRawDomains>(label: LABEL, ...domains: DOMAINS_3[]) => Extract<{
48
+ _synapse: "binary_sensor.hass_e2e_online" | "sensor.magic" | "binary_sensor.toggles" | "switch.bedroom_lamp" | "switch.kitchen_cabinets" | "switch.living_room_mood_lights" | "switch.porch_light";
49
+ _test: never;
50
+ }[`_${LABEL}`], PICK_ENTITY<DOMAINS_3>>[];
27
51
  /**
28
52
  * search out ids by platform
53
+ *
54
+ * @deprecated use `hass.idBy.platform` - to be remove 2024-08
29
55
  */
30
- byPlatform: <PLATFORM extends TPlatformId, DOMAIN_4 extends import("..").TRawDomains>(platform: PLATFORM, ...domains: DOMAIN_4[]) => PICK_ENTITY[];
56
+ byPlatform: <PLATFORM extends TPlatformId, DOMAINS_4 extends TRawDomains = TRawDomains>(platform: PLATFORM, ...domains: DOMAINS_4[]) => PICK_ENTITY[];
31
57
  /**
32
58
  * looks up entity_id reference by the unique id in the registry, and returns the entity reference
33
59
  */
34
- byUniqueId: <ID extends PICK_ENTITY>(unique_id: string) => ByIdProxy<ID>;
60
+ byUniqueId: <ID_1 extends PICK_ENTITY>(unique_id: string) => ByIdProxy<ID_1>;
35
61
  /**
36
62
  * Internal library use only
37
63
  */
@@ -40,12 +66,12 @@ export declare function EntityManager({ logger, hass, config, lifecycle, event,
40
66
  * Lists all entities within a specified domain. This is useful for
41
67
  * domain-specific operations or queries.
42
68
  */
43
- findByDomain: <DOMAIN_5 extends import("..").TRawDomains>(domain: DOMAIN_5) => ByIdProxy<PICK_ENTITY>[];
69
+ findByDomain: <DOMAIN extends TRawDomains>(domain: DOMAIN) => ByIdProxy<PICK_ENTITY>[];
44
70
  /**
45
71
  * Retrieves the current state of a given entity. This method returns
46
72
  * raw data, offering a direct view of the entity's state at a given moment.
47
73
  */
48
- getCurrentState: <ENTITY_ID_1 extends PICK_ENTITY>(entity_id: ENTITY_ID_1) => NonNullable<ENTITY_STATE<ENTITY_ID_1>>;
74
+ getCurrentState: <ENTITY_ID extends PICK_ENTITY>(entity_id: ENTITY_ID) => NonNullable<ENTITY_STATE<ENTITY_ID>>;
49
75
  /**
50
76
  * Retrieves the historical state data of entities over a specified time
51
77
  * period. Useful for analysis or tracking changes over time.
@@ -58,10 +84,14 @@ export declare function EntityManager({ logger, hass, config, lifecycle, event,
58
84
  * and quick reference to all available entities.
59
85
  */
60
86
  listEntities: () => PICK_ENTITY[];
87
+ /**
88
+ * Returns the previous entity state (not a proxy)
89
+ */
90
+ previousState: (entity_id: PICK_ENTITY) => ENTITY_STATE<PICK_ENTITY>;
61
91
  /**
62
92
  * Retrieve the raw entity data for this point in time
63
93
  */
64
- raw: (id: PICK_ENTITY) => ENTITY_STATE<PICK_ENTITY>;
94
+ raw: (entity_id: PICK_ENTITY) => ENTITY_STATE<PICK_ENTITY>;
65
95
  /**
66
96
  * Initiates a refresh of the current entity states. Useful for ensuring
67
97
  * synchronization with the latest state data from Home Assistant.
@@ -17,7 +17,6 @@ function EntityManager({ logger, hass, config, lifecycle, event, context, intern
17
17
  * MASTER_STATE.switch.desk_light = {entity_id,state,attributes,...}
18
18
  */
19
19
  let MASTER_STATE = {};
20
- const ENTITY_PROXIES = new Map();
21
20
  const PREVIOUS_STATE = new Map();
22
21
  let lastRefresh;
23
22
  function warnEarly(method) {
@@ -39,98 +38,6 @@ function EntityManager({ logger, hass, config, lifecycle, event, context, intern
39
38
  const out = internal.utils.object.get(MASTER_STATE, entity_id) ?? {};
40
39
  return out;
41
40
  }
42
- // #MARK:proxyGetLogic
43
- function proxyGetLogic(entity, property) {
44
- if (!init) {
45
- return undefined;
46
- }
47
- const valid = ["state", "attributes", "last"].some(i => property.startsWith(i));
48
- if (!valid) {
49
- logger.error({ entity, name: proxyGetLogic, property }, `invalid property lookup`);
50
- return undefined;
51
- }
52
- const current = getCurrentState(entity);
53
- const defaultValue = (property === "state" ? undefined : {});
54
- if (!current) {
55
- logger.error({ defaultValue, name: entity, property }, `proxyGetLogic cannot find entity`);
56
- }
57
- return internal.utils.object.get(current, property) || defaultValue;
58
- }
59
- // #MARK: byId
60
- function byId(entity_id) {
61
- const entity_domain = (0, __1.domain)(entity_id);
62
- if (!ENTITY_PROXIES.has(entity_id)) {
63
- ENTITY_PROXIES.set(entity_id, new Proxy(getCurrentState(entity_id), {
64
- // things that shouldn't be needed: this extract
65
- get: (_, property) => {
66
- if (property === "onUpdate") {
67
- return (callback) => {
68
- const removableCallback = async (a, b) => await internal.safeExec(async () => await callback(a, b, remove));
69
- function remove() {
70
- ENTITY_EVENTS.removeListener(entity_id, removableCallback);
71
- }
72
- ENTITY_EVENTS.on(entity_id, removableCallback);
73
- return { remove };
74
- };
75
- }
76
- if (property === "removeAllListeners") {
77
- return function () {
78
- ENTITY_EVENTS.removeAllListeners(entity_id);
79
- };
80
- }
81
- if (property === "once") {
82
- return (callback) => ENTITY_EVENTS.once(entity_id, async (a, b) => callback(a, b));
83
- }
84
- if (property === "entity_id") {
85
- return entity_id;
86
- }
87
- if (property === "previous") {
88
- return PREVIOUS_STATE.get(entity_id);
89
- }
90
- if (property === "nextState") {
91
- return async () => await new Promise(done => {
92
- ENTITY_EVENTS.once(entity_id, (entity) => done(entity));
93
- });
94
- }
95
- if (hass.configure.isService(entity_domain, property)) {
96
- return async function (data = {}) {
97
- // @ts-expect-error it's fine
98
- return await hass.call[entity_domain][property]({
99
- entity_id,
100
- ...data,
101
- });
102
- };
103
- }
104
- return proxyGetLogic(entity_id, property);
105
- },
106
- set(_, property, value) {
107
- if (property === "state") {
108
- setImmediate(async () => {
109
- logger.debug({ entity_id, state: value }, `emitting set state via rest`);
110
- await hass.fetch.updateEntity(entity_id, {
111
- state: value,
112
- });
113
- });
114
- return true;
115
- }
116
- if (property === "attributes") {
117
- if (!core_1.is.object(value)) {
118
- logger.error(`can only provide objects as attributes`);
119
- return false;
120
- }
121
- setImmediate(async () => {
122
- logger.debug({ attributes: Object.keys(value), entity_id }, `updating attributes via rest`);
123
- await hass.fetch.updateEntity(entity_id, { attributes: value });
124
- });
125
- return true;
126
- }
127
- logger.error({ entity_id, property }, `cannot set property on entity`);
128
- return false;
129
- },
130
- }));
131
- }
132
- return ENTITY_PROXIES.get(entity_id);
133
- }
134
41
  // #MARK: history
135
42
  async function history(payload) {
136
43
  logger.trace({ payload }, `looking up entity history`);
@@ -160,7 +67,7 @@ function EntityManager({ logger, hass, config, lifecycle, event, context, intern
160
67
  }
161
68
  // #MARK: findByDomain
162
69
  function findByDomain(domain) {
163
- return Object.keys(MASTER_STATE[domain] ?? {}).map(i => byId(`${domain}.${i}`));
70
+ return Object.keys(MASTER_STATE[domain] ?? {}).map(i => hass.refBy.id(`${domain}.${i}`));
164
71
  }
165
72
  // #MARK: refresh
166
73
  async function refresh(recursion = core_1.START) {
@@ -237,17 +144,19 @@ function EntityManager({ logger, hass, config, lifecycle, event, context, intern
237
144
  await hass.entity.refresh();
238
145
  });
239
146
  async function AddLabel({ entity, label }) {
240
- const current = await EntityGet(entity);
241
- if (current?.labels?.includes(label)) {
242
- logger.debug({ name: entity }, `already has label {%s}`, label);
243
- return;
244
- }
245
- return await new Promise(async (done) => {
246
- event.once(__1.ENTITY_REGISTRY_UPDATED, done);
247
- await hass.socket.sendMessage({
248
- entity_id: entity,
249
- labels: [...current.labels, label],
250
- type: "config/entity_registry/update",
147
+ await (0, core_1.each)([entity].flat(), async (entity) => {
148
+ const current = await EntityGet(entity);
149
+ if (current?.labels?.includes(label)) {
150
+ logger.debug({ name: entity }, `already has label {%s}`, label);
151
+ return;
152
+ }
153
+ return await new Promise(async (done) => {
154
+ event.once(__1.ENTITY_REGISTRY_UPDATED, done);
155
+ await hass.socket.sendMessage({
156
+ entity_id: entity,
157
+ labels: [...current.labels, label],
158
+ type: "config/entity_registry/update",
159
+ });
251
160
  });
252
161
  });
253
162
  }
@@ -311,63 +220,6 @@ function EntityManager({ logger, hass, config, lifecycle, event, context, intern
311
220
  }
312
221
  return hass.entity.byId(entity.entity_id);
313
222
  }
314
- // #MARK: byLabel
315
- function byLabel(label, ...domains) {
316
- warnEarly("byLabel");
317
- const raw = hass.entity.registry.current.filter(i => i.labels.includes(label));
318
- if (core_1.is.empty(domains)) {
319
- return raw.map(i => i.entity_id);
320
- }
321
- return raw
322
- .filter(entity => domains.some(domain => core_1.is.domain(entity.entity_id, domain)))
323
- .map(i => i.entity_id);
324
- }
325
- // #MARK: byArea
326
- function byArea(area, ...domains) {
327
- warnEarly("byArea");
328
- const raw = hass.entity.registry.current.filter(i => i.area_id === area);
329
- if (core_1.is.empty(domains)) {
330
- return raw.map(i => i.entity_id);
331
- }
332
- return raw
333
- .filter(entity => domains.some(domain => core_1.is.domain(entity.entity_id, domain)))
334
- .map(i => i.entity_id);
335
- }
336
- // #MARK: byDevice
337
- function byDevice(device, ...domains) {
338
- warnEarly("byDevice");
339
- const raw = hass.entity.registry.current.filter(i => i.device_id === device);
340
- if (core_1.is.empty(domains)) {
341
- return raw.map(i => i.entity_id);
342
- }
343
- return raw
344
- .filter(entity => domains.some(domain => core_1.is.domain(entity.entity_id, domain)))
345
- .map(i => i.entity_id);
346
- }
347
- // #MARK: byFloor
348
- function byFloor(floor, ...domains) {
349
- warnEarly("byFloor");
350
- const areas = new Set(hass.area.current.filter(i => i.floor_id === floor).map(i => i.area_id));
351
- const raw = hass.entity.registry.current.filter(i => areas.has(i.area_id));
352
- if (core_1.is.empty(domains)) {
353
- return raw.map(i => i.entity_id);
354
- }
355
- return raw
356
- .filter(entity => domains.some(domain => core_1.is.domain(entity.entity_id, domain)))
357
- .map(i => i.entity_id);
358
- }
359
- // #MARK: byPlatform
360
- function byPlatform(platform, ...domains) {
361
- warnEarly("byPlatform");
362
- const raw = hass.entity.registry.current
363
- .filter(i => i.platform === platform)
364
- .filter(i => i.platform === platform)
365
- .map(i => i.entity_id);
366
- if (core_1.is.empty(domains)) {
367
- return raw;
368
- }
369
- return raw.filter(i => domains.includes((0, __1.domain)(i)));
370
- }
371
223
  // #MARK: RemoveEntity
372
224
  async function RemoveEntity(entity_id) {
373
225
  warnEarly("RemoveEntity");
@@ -381,32 +233,43 @@ function EntityManager({ logger, hass, config, lifecycle, event, context, intern
381
233
  }
382
234
  // #MARK: return object
383
235
  return {
236
+ _entityEvents: () => ENTITY_EVENTS,
384
237
  /**
385
238
  * Retrieve a list of entities listed as being part of a certain area
386
239
  * Tracks area updates at runtime
240
+ *
241
+ * @deprecated use `hass.idBy.area` - to be remove 2024-08
387
242
  */
388
- byArea,
243
+ byArea: (area, ...domains) => hass.idBy.area(area, ...domains),
389
244
  /**
390
245
  * Retrieve a list of entities associated with a particular device id
246
+ *
247
+ * @deprecated use `hass.idBy.device` - to be remove 2024-08
391
248
  */
392
- byDevice,
249
+ byDevice: (device, ...domains) => hass.idBy.device(device, ...domains),
393
250
  /**
394
251
  * Retrieve a list of entities that have areas associated with a certain floor
252
+ *
253
+ * @deprecated use `hass.idBy.floor` - to be remove 2024-08
395
254
  */
396
- byFloor,
255
+ byFloor: (floor, ...domains) => hass.idBy.floor(floor, ...domains),
397
256
  /**
398
257
  * Retrieves a proxy object for a specified entity. This proxy object
399
258
  * provides current values and event hooks for the entity.
400
259
  */
401
- byId,
260
+ byId: (id) => hass.refBy.id(id),
402
261
  /**
403
262
  * Retrieve a list of entities that have a given label
263
+ *
264
+ * @deprecated use `hass.idBy.label` - to be remove 2024-08
404
265
  */
405
- byLabel,
266
+ byLabel: (label, ...domains) => hass.idBy.label(label, ...domains),
406
267
  /**
407
268
  * search out ids by platform
269
+ *
270
+ * @deprecated use `hass.idBy.platform` - to be remove 2024-08
408
271
  */
409
- byPlatform,
272
+ byPlatform: (platform, ...domains) => hass.idBy.platform(platform, ...domains),
410
273
  /**
411
274
  * looks up entity_id reference by the unique id in the registry, and returns the entity reference
412
275
  */
@@ -435,10 +298,14 @@ function EntityManager({ logger, hass, config, lifecycle, event, context, intern
435
298
  * and quick reference to all available entities.
436
299
  */
437
300
  listEntities,
301
+ /**
302
+ * Returns the previous entity state (not a proxy)
303
+ */
304
+ previousState: (entity_id) => PREVIOUS_STATE.get(entity_id),
438
305
  /**
439
306
  * Retrieve the raw entity data for this point in time
440
307
  */
441
- raw: (id) => internal.utils.object.get(MASTER_STATE, id),
308
+ raw: (entity_id) => internal.utils.object.get(MASTER_STATE, entity_id),
442
309
  /**
443
310
  * Initiates a refresh of the current entity states. Useful for ensuring
444
311
  * synchronization with the latest state data from Home Assistant.
@@ -1 +1 @@
1
- {"version":3,"file":"entity.extension.js","sourceRoot":"","sources":["../../src/extensions/entity.extension.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"entity.extension.js","sourceRoot":"","sources":["../../src/extensions/entity.extension.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,10 @@
1
+ import { TServiceParams } from "@digital-alchemy/core";
2
+ import { TAreaId, TDeviceId, TFloorId, TLabelId, TPlatformId } from "../dynamic";
3
+ import { PICK_FROM_AREA, PICK_FROM_DEVICE, PICK_FROM_FLOOR, PICK_FROM_LABEL } from "../helpers";
4
+ export declare function IDByExtension({ hass }: TServiceParams): {
5
+ area: <AREA extends TAreaId, DOMAIN extends import("../dynamic").TRawDomains>(area: AREA, ...domains: DOMAIN[]) => PICK_FROM_AREA<AREA, DOMAIN>[];
6
+ device: <DEVICE extends TDeviceId, DOMAIN_1 extends import("../dynamic").TRawDomains>(device: DEVICE, ...domains: DOMAIN_1[]) => PICK_FROM_DEVICE<DEVICE, DOMAIN_1>[];
7
+ floor: <FLOOR extends TFloorId, DOMAIN_2 extends import("../dynamic").TRawDomains>(floor: FLOOR, ...domains: DOMAIN_2[]) => PICK_FROM_FLOOR<FLOOR, DOMAIN_2>[];
8
+ label: <LABEL extends TLabelId, DOMAIN_3 extends import("../dynamic").TRawDomains>(label: LABEL, ...domains: DOMAIN_3[]) => PICK_FROM_LABEL<LABEL, DOMAIN_3>[];
9
+ platform: <PLATFORM extends TPlatformId, DOMAIN_4 extends import("../dynamic").TRawDomains>(platform: PLATFORM, ...domains: DOMAIN_4[]) => import("../helpers").PICK_ENTITY[];
10
+ };
@@ -0,0 +1,67 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.IDByExtension = void 0;
4
+ const core_1 = require("@digital-alchemy/core");
5
+ const helpers_1 = require("../helpers");
6
+ function IDByExtension({ hass }) {
7
+ // * label
8
+ function label(label, ...domains) {
9
+ hass.entity.warnEarly("label");
10
+ const raw = hass.entity.registry.current.filter(i => i.labels.includes(label));
11
+ if (core_1.is.empty(domains)) {
12
+ return raw.map(i => i.entity_id);
13
+ }
14
+ return raw
15
+ .filter(entity => domains.some(domain => core_1.is.domain(entity.entity_id, domain)))
16
+ .map(i => i.entity_id);
17
+ }
18
+ // * area
19
+ function area(area, ...domains) {
20
+ hass.entity.warnEarly("area");
21
+ const raw = hass.entity.registry.current.filter(i => i.area_id === area);
22
+ if (core_1.is.empty(domains)) {
23
+ return raw.map(i => i.entity_id);
24
+ }
25
+ return raw
26
+ .filter(entity => domains.some(domain => core_1.is.domain(entity.entity_id, domain)))
27
+ .map(i => i.entity_id);
28
+ }
29
+ // * device
30
+ function device(device, ...domains) {
31
+ hass.entity.warnEarly("device");
32
+ const raw = hass.entity.registry.current.filter(i => i.device_id === device);
33
+ if (core_1.is.empty(domains)) {
34
+ return raw.map(i => i.entity_id);
35
+ }
36
+ return raw
37
+ .filter(entity => domains.some(domain => core_1.is.domain(entity.entity_id, domain)))
38
+ .map(i => i.entity_id);
39
+ }
40
+ // * floor
41
+ function floor(floor, ...domains) {
42
+ hass.entity.warnEarly("floor");
43
+ const areas = new Set(hass.area.current.filter(i => i.floor_id === floor).map(i => i.area_id));
44
+ const raw = hass.entity.registry.current.filter(i => areas.has(i.area_id));
45
+ if (core_1.is.empty(domains)) {
46
+ return raw.map(i => i.entity_id);
47
+ }
48
+ return raw
49
+ .filter(entity => domains.some(domain => core_1.is.domain(entity.entity_id, domain)))
50
+ .map(i => i.entity_id);
51
+ }
52
+ // * platform
53
+ function platform(platform, ...domains) {
54
+ hass.entity.warnEarly("platform");
55
+ const raw = hass.entity.registry.current
56
+ .filter(i => i.platform === platform)
57
+ .filter(i => i.platform === platform)
58
+ .map(i => i.entity_id);
59
+ if (core_1.is.empty(domains)) {
60
+ return raw;
61
+ }
62
+ return raw.filter(i => domains.includes((0, helpers_1.domain)(i)));
63
+ }
64
+ return { area, device, floor, label, platform };
65
+ }
66
+ exports.IDByExtension = IDByExtension;
67
+ //# sourceMappingURL=id-by.extension.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"id-by.extension.js","sourceRoot":"","sources":["../../src/extensions/id-by.extension.ts"],"names":[],"mappings":"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"}
@@ -6,7 +6,9 @@ export * from "./device.extension";
6
6
  export * from "./entity.extension";
7
7
  export * from "./fetch-api.extension";
8
8
  export * from "./floor.extension";
9
+ export * from "./id-by.extension";
9
10
  export * from "./label.extension";
11
+ export * from "./reference.extension";
10
12
  export * from "./registry.extension";
11
13
  export * from "./websocket-api.extension";
12
14
  export * from "./zone.extension";
@@ -9,7 +9,9 @@ tslib_1.__exportStar(require("./device.extension"), exports);
9
9
  tslib_1.__exportStar(require("./entity.extension"), exports);
10
10
  tslib_1.__exportStar(require("./fetch-api.extension"), exports);
11
11
  tslib_1.__exportStar(require("./floor.extension"), exports);
12
+ tslib_1.__exportStar(require("./id-by.extension"), exports);
12
13
  tslib_1.__exportStar(require("./label.extension"), exports);
14
+ tslib_1.__exportStar(require("./reference.extension"), exports);
13
15
  tslib_1.__exportStar(require("./registry.extension"), exports);
14
16
  tslib_1.__exportStar(require("./websocket-api.extension"), exports);
15
17
  tslib_1.__exportStar(require("./zone.extension"), exports);
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/extensions/index.ts"],"names":[],"mappings":";;;AAAA,2DAAiC;AACjC,6DAAmC;AACnC,iEAAuC;AACvC,6DAAmC;AACnC,6DAAmC;AACnC,6DAAmC;AACnC,gEAAsC;AACtC,4DAAkC;AAClC,4DAAkC;AAClC,+DAAqC;AACrC,oEAA0C;AAC1C,2DAAiC"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/extensions/index.ts"],"names":[],"mappings":";;;AAAA,2DAAiC;AACjC,6DAAmC;AACnC,iEAAuC;AACvC,6DAAmC;AACnC,6DAAmC;AACnC,6DAAmC;AACnC,gEAAsC;AACtC,4DAAkC;AAClC,4DAAkC;AAClC,4DAAkC;AAClC,gEAAsC;AACtC,+DAAqC;AACrC,oEAA0C;AAC1C,2DAAiC"}
@@ -0,0 +1,24 @@
1
+ import { TServiceParams } from "@digital-alchemy/core";
2
+ import { TAreaId, TDeviceId, TFloorId, TLabelId, TPlatformId, TRawDomains } from "../dynamic";
3
+ import { ByIdProxy, PICK_ENTITY } from "../helpers";
4
+ export declare function ReferenceExtension({ hass, logger, internal }: TServiceParams): {
5
+ area: <AREA extends TAreaId, DOMAINS extends TRawDomains = TRawDomains>(area: AREA, ...domains: DOMAINS[]) => ByIdProxy<Extract<{
6
+ _living_room: "switch.living_room_mood_lights";
7
+ _kitchen: "switch.kitchen_cabinets";
8
+ _bedroom: "switch.bedroom_lamp" | "light.bedroom_ceiling_fan";
9
+ }[`_${AREA}`], PICK_ENTITY<DOMAINS>>>[];
10
+ device: <DEVICE extends TDeviceId, DOMAINS_1 extends TRawDomains = TRawDomains>(device: DEVICE, ...domains: DOMAINS_1[]) => ByIdProxy<Extract<{
11
+ _308e39cf50a9fc6c30b4110724ed1f2e: "sensor.sun_next_dawn" | "sensor.sun_next_dusk" | "sensor.sun_next_midnight" | "sensor.sun_next_noon" | "sensor.sun_next_rising" | "sensor.sun_next_setting" | "sensor.sun_solar_elevation" | "sensor.sun_solar_azimuth" | "sensor.sun_solar_rising";
12
+ _e58841e47cf86097b310316e55d6bb12: "calendar.united_states_tx";
13
+ }[`_${DEVICE}`], PICK_ENTITY<DOMAINS_1>>>[];
14
+ floor: <FLOOR extends TFloorId, DOMAINS_2 extends TRawDomains = TRawDomains>(floor: FLOOR, ...domains: DOMAINS_2[]) => ByIdProxy<Extract<{
15
+ _downstairs: "switch.kitchen_cabinets" | "switch.living_room_mood_lights";
16
+ _upstairs: "switch.bedroom_lamp";
17
+ }[`_${FLOOR}`], PICK_ENTITY<DOMAINS_2>>>[];
18
+ id: <ENTITY_ID extends PICK_ENTITY>(entity_id: ENTITY_ID) => ByIdProxy<ENTITY_ID>;
19
+ label: <LABEL extends TLabelId, DOMAINS_3 extends TRawDomains = TRawDomains>(label: LABEL, ...domains: DOMAINS_3[]) => ByIdProxy<Extract<{
20
+ _synapse: "binary_sensor.hass_e2e_online" | "sensor.magic" | "binary_sensor.toggles" | "switch.bedroom_lamp" | "switch.kitchen_cabinets" | "switch.living_room_mood_lights" | "switch.porch_light";
21
+ _test: never;
22
+ }[`_${LABEL}`], PICK_ENTITY<DOMAINS_3>>>[];
23
+ platform: <PLATFORM extends TPlatformId, DOMAINS_4 extends TRawDomains = TRawDomains>(platform: PLATFORM, ...domains: DOMAINS_4[]) => ByIdProxy<PICK_ENTITY>[];
24
+ };