@digital-alchemy/core 0.1.17 → 0.2.0

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 (338) hide show
  1. package/dist/{boilerplate/extensions → extensions}/cache.extension.d.ts +3 -3
  2. package/dist/{boilerplate/extensions → extensions}/cache.extension.js +16 -16
  3. package/dist/extensions/cache.extension.js.map +1 -0
  4. package/dist/{boilerplate/extensions → extensions}/configuration.extension.d.ts +3 -3
  5. package/dist/{boilerplate/extensions → extensions}/configuration.extension.js +8 -8
  6. package/dist/extensions/configuration.extension.js.map +1 -0
  7. package/dist/{boilerplate/extensions → extensions}/fetch.extension.d.ts +2 -2
  8. package/dist/{boilerplate/extensions → extensions}/fetch.extension.js +22 -22
  9. package/dist/extensions/fetch.extension.js.map +1 -0
  10. package/dist/{boilerplate/extensions → extensions}/index.d.ts +2 -0
  11. package/dist/{boilerplate/extensions → extensions}/index.js +2 -0
  12. package/dist/extensions/index.js.map +1 -0
  13. package/dist/{utilities/extensions/zcc.extension.d.ts → extensions/internal.extension.d.ts} +4 -4
  14. package/dist/{utilities/extensions/zcc.extension.js → extensions/internal.extension.js} +8 -8
  15. package/dist/extensions/internal.extension.js.map +1 -0
  16. package/dist/extensions/is.extension.js.map +1 -0
  17. package/dist/{boilerplate/extensions → extensions}/logger.extension.d.ts +3 -3
  18. package/dist/{boilerplate/extensions → extensions}/logger.extension.js +1 -1
  19. package/dist/extensions/logger.extension.js.map +1 -0
  20. package/dist/{boilerplate/extensions → extensions}/scheduler.extension.d.ts +1 -1
  21. package/dist/{boilerplate/extensions → extensions}/scheduler.extension.js +1 -1
  22. package/dist/extensions/scheduler.extension.js.map +1 -0
  23. package/dist/{boilerplate/extensions → extensions}/wiring.extension.d.ts +3 -30
  24. package/dist/{boilerplate/extensions → extensions}/wiring.extension.js +43 -59
  25. package/dist/extensions/wiring.extension.js.map +1 -0
  26. package/dist/helpers/async.helper.js.map +1 -0
  27. package/dist/{boilerplate/helpers → helpers}/cache-memory.helper.js +1 -1
  28. package/dist/helpers/cache-memory.helper.js.map +1 -0
  29. package/dist/{boilerplate/helpers → helpers}/cache-redis.helper.js +1 -1
  30. package/dist/helpers/cache-redis.helper.js.map +1 -0
  31. package/dist/{boilerplate/helpers → helpers}/config-environment-loader.helper.js +1 -1
  32. package/dist/helpers/config-environment-loader.helper.js.map +1 -0
  33. package/dist/{boilerplate/helpers → helpers}/config-file-loader.helper.js +2 -2
  34. package/dist/helpers/config-file-loader.helper.js.map +1 -0
  35. package/dist/{boilerplate/helpers → helpers}/config.helper.d.ts +1 -1
  36. package/dist/{boilerplate/helpers → helpers}/config.helper.js +1 -1
  37. package/dist/helpers/config.helper.js.map +1 -0
  38. package/dist/helpers/context.helper.js.map +1 -0
  39. package/dist/helpers/cron.helper.js.map +1 -0
  40. package/dist/{boilerplate/helpers → helpers}/errors.helper.d.ts +1 -1
  41. package/dist/helpers/errors.helper.js.map +1 -0
  42. package/dist/{boilerplate/helpers → helpers}/events.helper.js +1 -1
  43. package/dist/helpers/events.helper.js.map +1 -0
  44. package/dist/helpers/extend.helper.js.map +1 -0
  45. package/dist/{boilerplate/helpers → helpers}/fetch.helper.d.ts +1 -1
  46. package/dist/{boilerplate/helpers → helpers}/fetch.helper.js +1 -1
  47. package/dist/helpers/fetch.helper.js.map +1 -0
  48. package/dist/{utilities/helpers/index.js → helpers/index copy.js } +1 -1
  49. package/dist/helpers/index copy.js.map +1 -0
  50. package/dist/{boilerplate/helpers → helpers}/index.d.ts +5 -0
  51. package/dist/{boilerplate/helpers → helpers}/index.js +5 -0
  52. package/dist/helpers/index.js.map +1 -0
  53. package/dist/{boilerplate/helpers → helpers}/lifecycle.helper.d.ts +1 -1
  54. package/dist/helpers/lifecycle.helper.js.map +1 -0
  55. package/dist/helpers/metrics.helper.js.map +1 -0
  56. package/dist/{boilerplate/helpers → helpers}/testing.helper.d.ts +0 -5
  57. package/dist/{boilerplate/helpers → helpers}/testing.helper.js +3 -3
  58. package/dist/helpers/testing.helper.js.map +1 -0
  59. package/dist/helpers/utilities.helper.js.map +1 -0
  60. package/dist/{boilerplate/helpers → helpers}/wiring.helper.d.ts +3 -3
  61. package/dist/helpers/wiring.helper.js.map +1 -0
  62. package/dist/index.d.ts +2 -2
  63. package/dist/index.js +2 -4
  64. package/dist/index.js.map +1 -1
  65. package/package.json +7 -21
  66. package/dist/automation/automation.module.d.ts +0 -96
  67. package/dist/automation/automation.module.js +0 -105
  68. package/dist/automation/automation.module.js.map +0 -1
  69. package/dist/automation/extensions/aggressive-scenes.extension.d.ts +0 -12
  70. package/dist/automation/extensions/aggressive-scenes.extension.js +0 -114
  71. package/dist/automation/extensions/aggressive-scenes.extension.js.map +0 -1
  72. package/dist/automation/extensions/circadian.extension.d.ts +0 -6
  73. package/dist/automation/extensions/circadian.extension.js +0 -81
  74. package/dist/automation/extensions/circadian.extension.js.map +0 -1
  75. package/dist/automation/extensions/index.d.ts +0 -7
  76. package/dist/automation/extensions/index.js +0 -11
  77. package/dist/automation/extensions/index.js.map +0 -1
  78. package/dist/automation/extensions/light-manager.extension.d.ts +0 -26
  79. package/dist/automation/extensions/light-manager.extension.js +0 -258
  80. package/dist/automation/extensions/light-manager.extension.js.map +0 -1
  81. package/dist/automation/extensions/managed-switch.extension.d.ts +0 -3
  82. package/dist/automation/extensions/managed-switch.extension.js +0 -73
  83. package/dist/automation/extensions/managed-switch.extension.js.map +0 -1
  84. package/dist/automation/extensions/room.extension.d.ts +0 -11
  85. package/dist/automation/extensions/room.extension.js +0 -177
  86. package/dist/automation/extensions/room.extension.js.map +0 -1
  87. package/dist/automation/extensions/sequence-matcher.extension.d.ts +0 -3
  88. package/dist/automation/extensions/sequence-matcher.extension.js +0 -123
  89. package/dist/automation/extensions/sequence-matcher.extension.js.map +0 -1
  90. package/dist/automation/extensions/solar-calc.extension.d.ts +0 -20
  91. package/dist/automation/extensions/solar-calc.extension.js +0 -104
  92. package/dist/automation/extensions/solar-calc.extension.js.map +0 -1
  93. package/dist/automation/helpers/events.helper.d.ts +0 -33
  94. package/dist/automation/helpers/events.helper.js +0 -14
  95. package/dist/automation/helpers/events.helper.js.map +0 -1
  96. package/dist/automation/helpers/index.d.ts +0 -7
  97. package/dist/automation/helpers/index.js +0 -11
  98. package/dist/automation/helpers/index.js.map +0 -1
  99. package/dist/automation/helpers/managed-switch.helper.d.ts +0 -41
  100. package/dist/automation/helpers/managed-switch.helper.js +0 -3
  101. package/dist/automation/helpers/managed-switch.helper.js.map +0 -1
  102. package/dist/automation/helpers/metrics.helper.d.ts +0 -13
  103. package/dist/automation/helpers/metrics.helper.js +0 -30
  104. package/dist/automation/helpers/metrics.helper.js.map +0 -1
  105. package/dist/automation/helpers/reftimes.helper.d.ts +0 -54
  106. package/dist/automation/helpers/reftimes.helper.js +0 -33
  107. package/dist/automation/helpers/reftimes.helper.js.map +0 -1
  108. package/dist/automation/helpers/scene.helper.d.ts +0 -97
  109. package/dist/automation/helpers/scene.helper.js +0 -5
  110. package/dist/automation/helpers/scene.helper.js.map +0 -1
  111. package/dist/automation/helpers/sequence.helper.d.ts +0 -55
  112. package/dist/automation/helpers/sequence.helper.js +0 -3
  113. package/dist/automation/helpers/sequence.helper.js.map +0 -1
  114. package/dist/automation/helpers/solar.helper.d.ts +0 -3
  115. package/dist/automation/helpers/solar.helper.js +0 -262
  116. package/dist/automation/helpers/solar.helper.js.map +0 -1
  117. package/dist/automation/index.d.ts +0 -3
  118. package/dist/automation/index.js +0 -10
  119. package/dist/automation/index.js.map +0 -1
  120. package/dist/boilerplate/extensions/cache.extension.js.map +0 -1
  121. package/dist/boilerplate/extensions/configuration.extension.js.map +0 -1
  122. package/dist/boilerplate/extensions/fetch.extension.js.map +0 -1
  123. package/dist/boilerplate/extensions/index.js.map +0 -1
  124. package/dist/boilerplate/extensions/logger.extension.js.map +0 -1
  125. package/dist/boilerplate/extensions/scheduler.extension.js.map +0 -1
  126. package/dist/boilerplate/extensions/wiring.extension.js.map +0 -1
  127. package/dist/boilerplate/helpers/cache-memory.helper.js.map +0 -1
  128. package/dist/boilerplate/helpers/cache-redis.helper.js.map +0 -1
  129. package/dist/boilerplate/helpers/config-environment-loader.helper.js.map +0 -1
  130. package/dist/boilerplate/helpers/config-file-loader.helper.js.map +0 -1
  131. package/dist/boilerplate/helpers/config.helper.js.map +0 -1
  132. package/dist/boilerplate/helpers/errors.helper.js.map +0 -1
  133. package/dist/boilerplate/helpers/events.helper.js.map +0 -1
  134. package/dist/boilerplate/helpers/fetch.helper.js.map +0 -1
  135. package/dist/boilerplate/helpers/index.js.map +0 -1
  136. package/dist/boilerplate/helpers/lifecycle.helper.js.map +0 -1
  137. package/dist/boilerplate/helpers/metrics.helper.js.map +0 -1
  138. package/dist/boilerplate/helpers/testing.helper.js.map +0 -1
  139. package/dist/boilerplate/helpers/wiring.helper.js.map +0 -1
  140. package/dist/boilerplate/index.d.ts +0 -2
  141. package/dist/boilerplate/index.js +0 -6
  142. package/dist/boilerplate/index.js.map +0 -1
  143. package/dist/gotify/extensions/application.extension.d.ts +0 -13
  144. package/dist/gotify/extensions/application.extension.js +0 -52
  145. package/dist/gotify/extensions/application.extension.js.map +0 -1
  146. package/dist/gotify/extensions/client.extension.d.ts +0 -8
  147. package/dist/gotify/extensions/client.extension.js +0 -38
  148. package/dist/gotify/extensions/client.extension.js.map +0 -1
  149. package/dist/gotify/extensions/fetch.extension.d.ts +0 -2
  150. package/dist/gotify/extensions/fetch.extension.js +0 -13
  151. package/dist/gotify/extensions/fetch.extension.js.map +0 -1
  152. package/dist/gotify/extensions/index.d.ts +0 -4
  153. package/dist/gotify/extensions/index.js +0 -8
  154. package/dist/gotify/extensions/index.js.map +0 -1
  155. package/dist/gotify/extensions/message.extension.d.ts +0 -8
  156. package/dist/gotify/extensions/message.extension.js +0 -37
  157. package/dist/gotify/extensions/message.extension.js.map +0 -1
  158. package/dist/gotify/gotify.module.d.ts +0 -34
  159. package/dist/gotify/gotify.module.js +0 -33
  160. package/dist/gotify/gotify.module.js.map +0 -1
  161. package/dist/gotify/helpers/api.d.ts +0 -346
  162. package/dist/gotify/helpers/api.js +0 -14
  163. package/dist/gotify/helpers/api.js.map +0 -1
  164. package/dist/gotify/helpers/events.helper.d.ts +0 -6
  165. package/dist/gotify/helpers/events.helper.js +0 -5
  166. package/dist/gotify/helpers/events.helper.js.map +0 -1
  167. package/dist/gotify/helpers/index.d.ts +0 -2
  168. package/dist/gotify/helpers/index.js +0 -6
  169. package/dist/gotify/helpers/index.js.map +0 -1
  170. package/dist/gotify/index.d.ts +0 -3
  171. package/dist/gotify/index.js +0 -7
  172. package/dist/gotify/index.js.map +0 -1
  173. package/dist/hass/dynamic.d.ts +0 -1126
  174. package/dist/hass/dynamic.js +0 -153
  175. package/dist/hass/dynamic.js.map +0 -1
  176. package/dist/hass/extensions/call-proxy.extension.d.ts +0 -4
  177. package/dist/hass/extensions/call-proxy.extension.js +0 -88
  178. package/dist/hass/extensions/call-proxy.extension.js.map +0 -1
  179. package/dist/hass/extensions/config.extension.d.ts +0 -2
  180. package/dist/hass/extensions/config.extension.js +0 -53
  181. package/dist/hass/extensions/config.extension.js.map +0 -1
  182. package/dist/hass/extensions/entity-manager.extension.d.ts +0 -61
  183. package/dist/hass/extensions/entity-manager.extension.js +0 -211
  184. package/dist/hass/extensions/entity-manager.extension.js.map +0 -1
  185. package/dist/hass/extensions/fetch-api.extension.d.ts +0 -29
  186. package/dist/hass/extensions/fetch-api.extension.js +0 -174
  187. package/dist/hass/extensions/fetch-api.extension.js.map +0 -1
  188. package/dist/hass/extensions/index.d.ts +0 -6
  189. package/dist/hass/extensions/index.js +0 -10
  190. package/dist/hass/extensions/index.js.map +0 -1
  191. package/dist/hass/extensions/utilities.extension.d.ts +0 -9
  192. package/dist/hass/extensions/utilities.extension.js +0 -43
  193. package/dist/hass/extensions/utilities.extension.js.map +0 -1
  194. package/dist/hass/extensions/websocket-api.extension.d.ts +0 -39
  195. package/dist/hass/extensions/websocket-api.extension.js +0 -363
  196. package/dist/hass/extensions/websocket-api.extension.js.map +0 -1
  197. package/dist/hass/hass.module.d.ts +0 -80
  198. package/dist/hass/hass.module.js +0 -83
  199. package/dist/hass/hass.module.js.map +0 -1
  200. package/dist/hass/helpers/backup.helper.d.ts +0 -11
  201. package/dist/hass/helpers/backup.helper.js +0 -3
  202. package/dist/hass/helpers/backup.helper.js.map +0 -1
  203. package/dist/hass/helpers/constants.helper.d.ts +0 -54
  204. package/dist/hass/helpers/constants.helper.js +0 -63
  205. package/dist/hass/helpers/constants.helper.js.map +0 -1
  206. package/dist/hass/helpers/entity-state.helper.d.ts +0 -45
  207. package/dist/hass/helpers/entity-state.helper.js +0 -9
  208. package/dist/hass/helpers/entity-state.helper.js.map +0 -1
  209. package/dist/hass/helpers/fetch/calendar.d.ts +0 -54
  210. package/dist/hass/helpers/fetch/calendar.js +0 -3
  211. package/dist/hass/helpers/fetch/calendar.js.map +0 -1
  212. package/dist/hass/helpers/fetch/configuration.d.ts +0 -34
  213. package/dist/hass/helpers/fetch/configuration.js +0 -3
  214. package/dist/hass/helpers/fetch/configuration.js.map +0 -1
  215. package/dist/hass/helpers/fetch/index.d.ts +0 -4
  216. package/dist/hass/helpers/fetch/index.js +0 -8
  217. package/dist/hass/helpers/fetch/index.js.map +0 -1
  218. package/dist/hass/helpers/fetch/server-log.d.ts +0 -10
  219. package/dist/hass/helpers/fetch/server-log.js +0 -20
  220. package/dist/hass/helpers/fetch/server-log.js.map +0 -1
  221. package/dist/hass/helpers/fetch/service-list.d.ts +0 -51
  222. package/dist/hass/helpers/fetch/service-list.js +0 -3
  223. package/dist/hass/helpers/fetch/service-list.js.map +0 -1
  224. package/dist/hass/helpers/index.d.ts +0 -7
  225. package/dist/hass/helpers/index.js +0 -11
  226. package/dist/hass/helpers/index.js.map +0 -1
  227. package/dist/hass/helpers/metrics.helper.d.ts +0 -13
  228. package/dist/hass/helpers/metrics.helper.js +0 -30
  229. package/dist/hass/helpers/metrics.helper.js.map +0 -1
  230. package/dist/hass/helpers/utility.helper.d.ts +0 -61
  231. package/dist/hass/helpers/utility.helper.js +0 -38
  232. package/dist/hass/helpers/utility.helper.js.map +0 -1
  233. package/dist/hass/helpers/websocket.helper.d.ts +0 -129
  234. package/dist/hass/helpers/websocket.helper.js +0 -3
  235. package/dist/hass/helpers/websocket.helper.js.map +0 -1
  236. package/dist/hass/index.d.ts +0 -4
  237. package/dist/hass/index.js +0 -8
  238. package/dist/hass/index.js.map +0 -1
  239. package/dist/nexus/entities.extension.d.ts +0 -2
  240. package/dist/nexus/entities.extension.js +0 -50
  241. package/dist/nexus/entities.extension.js.map +0 -1
  242. package/dist/nexus/main.d.ts +0 -9
  243. package/dist/nexus/main.js +0 -28
  244. package/dist/nexus/main.js.map +0 -1
  245. package/dist/purge/main.d.ts +0 -34
  246. package/dist/purge/main.js +0 -50
  247. package/dist/purge/main.js.map +0 -1
  248. package/dist/purge/purge.extension.d.ts +0 -2
  249. package/dist/purge/purge.extension.js +0 -49
  250. package/dist/purge/purge.extension.js.map +0 -1
  251. package/dist/synapse/extensions/binary-sensor.extension.d.ts +0 -19
  252. package/dist/synapse/extensions/binary-sensor.extension.js +0 -84
  253. package/dist/synapse/extensions/binary-sensor.extension.js.map +0 -1
  254. package/dist/synapse/extensions/button.extension.d.ts +0 -10
  255. package/dist/synapse/extensions/button.extension.js +0 -46
  256. package/dist/synapse/extensions/button.extension.js.map +0 -1
  257. package/dist/synapse/extensions/index.d.ts +0 -6
  258. package/dist/synapse/extensions/index.js +0 -10
  259. package/dist/synapse/extensions/index.js.map +0 -1
  260. package/dist/synapse/extensions/registry.extension.d.ts +0 -21
  261. package/dist/synapse/extensions/registry.extension.js +0 -223
  262. package/dist/synapse/extensions/registry.extension.js.map +0 -1
  263. package/dist/synapse/extensions/scene.extension.d.ts +0 -9
  264. package/dist/synapse/extensions/scene.extension.js +0 -37
  265. package/dist/synapse/extensions/scene.extension.js.map +0 -1
  266. package/dist/synapse/extensions/sensor.extension.d.ts +0 -25
  267. package/dist/synapse/extensions/sensor.extension.js +0 -154
  268. package/dist/synapse/extensions/sensor.extension.js.map +0 -1
  269. package/dist/synapse/extensions/switch.extension.d.ts +0 -19
  270. package/dist/synapse/extensions/switch.extension.js +0 -95
  271. package/dist/synapse/extensions/switch.extension.js.map +0 -1
  272. package/dist/synapse/helpers/device-class.helper.d.ts +0 -323
  273. package/dist/synapse/helpers/device-class.helper.js +0 -241
  274. package/dist/synapse/helpers/device-class.helper.js.map +0 -1
  275. package/dist/synapse/helpers/index.d.ts +0 -3
  276. package/dist/synapse/helpers/index.js +0 -7
  277. package/dist/synapse/helpers/index.js.map +0 -1
  278. package/dist/synapse/helpers/metrics.helper.d.ts +0 -13
  279. package/dist/synapse/helpers/metrics.helper.js +0 -30
  280. package/dist/synapse/helpers/metrics.helper.js.map +0 -1
  281. package/dist/synapse/helpers/utility.helper.d.ts +0 -1
  282. package/dist/synapse/helpers/utility.helper.js +0 -3
  283. package/dist/synapse/helpers/utility.helper.js.map +0 -1
  284. package/dist/synapse/index.d.ts +0 -3
  285. package/dist/synapse/index.js +0 -7
  286. package/dist/synapse/index.js.map +0 -1
  287. package/dist/synapse/synapse.module.d.ts +0 -54
  288. package/dist/synapse/synapse.module.js +0 -65
  289. package/dist/synapse/synapse.module.js.map +0 -1
  290. package/dist/type-writer/build.extension.d.ts +0 -2
  291. package/dist/type-writer/build.extension.js +0 -52
  292. package/dist/type-writer/build.extension.js.map +0 -1
  293. package/dist/type-writer/main.d.ts +0 -17
  294. package/dist/type-writer/main.js +0 -36
  295. package/dist/type-writer/main.js.map +0 -1
  296. package/dist/type-writer/type-writer.extension.d.ts +0 -2
  297. package/dist/type-writer/type-writer.extension.js +0 -214
  298. package/dist/type-writer/type-writer.extension.js.map +0 -1
  299. package/dist/utilities/extensions/index.d.ts +0 -3
  300. package/dist/utilities/extensions/index.js +0 -7
  301. package/dist/utilities/extensions/index.js.map +0 -1
  302. package/dist/utilities/extensions/is.extension.js.map +0 -1
  303. package/dist/utilities/extensions/zcc-testing.extension.d.ts +0 -4
  304. package/dist/utilities/extensions/zcc-testing.extension.js +0 -9
  305. package/dist/utilities/extensions/zcc-testing.extension.js.map +0 -1
  306. package/dist/utilities/extensions/zcc.extension.js.map +0 -1
  307. package/dist/utilities/helpers/async.helper.js.map +0 -1
  308. package/dist/utilities/helpers/context.helper.js.map +0 -1
  309. package/dist/utilities/helpers/cron.helper.js.map +0 -1
  310. package/dist/utilities/helpers/extend.helper.js.map +0 -1
  311. package/dist/utilities/helpers/index.js.map +0 -1
  312. package/dist/utilities/helpers/utilities.helper.js.map +0 -1
  313. package/dist/utilities/index.d.ts +0 -2
  314. package/dist/utilities/index.js +0 -6
  315. package/dist/utilities/index.js.map +0 -1
  316. /package/dist/{utilities/extensions → extensions}/is.extension.d.ts +0 -0
  317. /package/dist/{utilities/extensions → extensions}/is.extension.js +0 -0
  318. /package/dist/{utilities/helpers → helpers}/async.helper.d.ts +0 -0
  319. /package/dist/{utilities/helpers → helpers}/async.helper.js +0 -0
  320. /package/dist/{boilerplate/helpers → helpers}/cache-memory.helper.d.ts +0 -0
  321. /package/dist/{boilerplate/helpers → helpers}/cache-redis.helper.d.ts +0 -0
  322. /package/dist/{boilerplate/helpers → helpers}/config-environment-loader.helper.d.ts +0 -0
  323. /package/dist/{boilerplate/helpers → helpers}/config-file-loader.helper.d.ts +0 -0
  324. /package/dist/{utilities/helpers → helpers}/context.helper.d.ts +0 -0
  325. /package/dist/{utilities/helpers → helpers}/context.helper.js +0 -0
  326. /package/dist/{utilities/helpers → helpers}/cron.helper.d.ts +0 -0
  327. /package/dist/{utilities/helpers → helpers}/cron.helper.js +0 -0
  328. /package/dist/{boilerplate/helpers → helpers}/errors.helper.js +0 -0
  329. /package/dist/{boilerplate/helpers → helpers}/events.helper.d.ts +0 -0
  330. /package/dist/{utilities/helpers → helpers}/extend.helper.d.ts +0 -0
  331. /package/dist/{utilities/helpers → helpers}/extend.helper.js +0 -0
  332. /package/dist/{utilities/helpers/index.d.ts → helpers/index copy.d.ts} +0 -0
  333. /package/dist/{boilerplate/helpers → helpers}/lifecycle.helper.js +0 -0
  334. /package/dist/{boilerplate/helpers → helpers}/metrics.helper.d.ts +0 -0
  335. /package/dist/{boilerplate/helpers → helpers}/metrics.helper.js +0 -0
  336. /package/dist/{utilities/helpers → helpers}/utilities.helper.d.ts +0 -0
  337. /package/dist/{utilities/helpers → helpers}/utilities.helper.js +0 -0
  338. /package/dist/{boilerplate/helpers → helpers}/wiring.helper.js +0 -0
@@ -1,258 +0,0 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.LightManager = void 0;
4
- const utilities_1 = require("../../utilities");
5
- function LightManager({ logger, hass, scheduler, lifecycle, automation, config, }) {
6
- /**
7
- * Lights fall into one of the following:
8
- *
9
- * ### Unable to change color, only brightness
10
- *
11
- * Lights will be maintained at the correct brightness / state
12
- *
13
- * ### Able to change color temp (only)
14
- *
15
- * Lights will be maintained at the correct brightness & circadian color temp
16
- *
17
- * ### RGB (only)
18
- *
19
- * Will always manage brightness & state.
20
- * If rgb color is passed, that will be used.
21
- * Otherwise, a conversion between color temp and rgb color is done within Home Assistant to attempt to track circadian color temp
22
- *
23
- * ### Anything goes
24
- *
25
- * Same as RGB only, but will preferentially use color temp mode
26
- */
27
- async function manageLight(entity, scene) {
28
- const entity_id = entity.entity_id;
29
- const expected = scene[entity_id];
30
- if (utilities_1.is.empty(expected)) {
31
- // ??
32
- return;
33
- }
34
- if (entity.state === "unavailable") {
35
- logger.warn({ entity_id }, `entity is unavailable, cannot manage state`);
36
- return;
37
- }
38
- const performedUpdate = await matchToScene(entity, expected);
39
- if (performedUpdate) {
40
- return;
41
- }
42
- if ("entity_id" in entity.attributes) {
43
- const list = entity.attributes.entity_id;
44
- if (utilities_1.is.array(list) && !utilities_1.is.empty(list)) {
45
- await (0, utilities_1.each)(list, async (child_id) => {
46
- const child = hass.entity.byId(child_id);
47
- if (!child) {
48
- logger.warn(`%s => %s child entity of group cannot be found`, entity_id, child_id);
49
- return;
50
- }
51
- await matchToScene(child, expected);
52
- });
53
- }
54
- }
55
- }
56
- function getCurrentDiff({ attributes, }) {
57
- if (!attributes.supported_color_modes.includes("color_temp")) {
58
- return utilities_1.NONE;
59
- }
60
- const min = Math.max(config.automation.CIRCADIAN_MIN_TEMP, attributes.min_color_temp_kelvin ?? utilities_1.NONE);
61
- const max = Math.min(config.automation.CIRCADIAN_MAX_TEMP, attributes.max_color_temp_kelvin ?? utilities_1.NONE);
62
- const kelvin = attributes.color_temp_kelvin;
63
- const target = Math.min(max, Math.max(automation.circadian.getKelvin(), min));
64
- return Math.abs(kelvin - target);
65
- }
66
- // async function manageLightCircadian(
67
- // entity: ColorLight,
68
- // state: SceneLightStateOn,
69
- // ): Promise<boolean> {
70
- // const stateTests = {
71
- // brightness: entity.attributes.brightness === state.brightness,
72
- // state: entity.state === state.state,
73
- // temperature: getCurrentDiff(entity) <= MAX_DIFFERENCE,
74
- // };
75
- // // ? Find things that don't currently match expectations
76
- // const reasons = Object.keys(stateTests).filter(
77
- // key => !stateTests[key as keyof typeof stateTests],
78
- // );
79
- // let type: AggressiveScenesAdjustmentTypes;
80
- // if (!stateTests.state) {
81
- // type = "light_on_off";
82
- // } else if (!stateTests.brightness) {
83
- // type = "light_brightness";
84
- // // eslint-disable-next-line unicorn/no-negated-condition
85
- // } else if (!stateTests.temperature) {
86
- // type = "light_temperature";
87
- // } else {
88
- // return false;
89
- // }
90
- // logger.debug(
91
- // {
92
- // from: entity.attributes.color_temp_kelvin,
93
- // name: entity.entity_id,
94
- // reasons,
95
- // state,
96
- // to: automation.circadian.getKelvin(),
97
- // type,
98
- // },
99
- // `setting light {temperature}`,
100
- // );
101
- // await hass.call.light.turn_on({
102
- // brightness: state.brightness,
103
- // entity_id: entity.entity_id,
104
- // kelvin: automation.circadian.getKelvin(),
105
- // });
106
- // return true;
107
- // }
108
- /**
109
- * Take in the expected color state of a light, and compare against actual
110
- *
111
- * If they don't match, then issue a `turn_on` call, and log a message
112
- */
113
- async function manageLightColor(entity, state) {
114
- const stateTests = {
115
- brightness: entity.attributes.brightness == state.brightness,
116
- color: entity.attributes.rgb_color.every((color, index) => state.rgb_color[[..."rgb"][index]] ===
117
- color),
118
- state: entity.state === "off",
119
- };
120
- // ? Find things that don't currently match expectations
121
- const reasons = Object.keys(stateTests).filter((key) => !stateTests[key]);
122
- let type;
123
- if (stateTests.state) {
124
- type = "light_on_off";
125
- }
126
- else if (stateTests.brightness) {
127
- type = "light_brightness";
128
- // eslint-disable-next-line unicorn/no-negated-condition
129
- }
130
- else if (!stateTests.color) {
131
- type = "light_color";
132
- }
133
- else {
134
- return false;
135
- }
136
- logger.debug({
137
- entity_id: entity.entity_id,
138
- reasons,
139
- rgb_color: state.rgb_color,
140
- type,
141
- }, `setting light color`);
142
- await hass.call.light.turn_on({
143
- brightness: state.brightness,
144
- entity_id: entity.entity_id,
145
- rgb_color: state.rgb_color,
146
- });
147
- return true;
148
- }
149
- /**
150
- * ? return true if a change was made
151
- *
152
- * ? return false if everything is as expected
153
- */
154
- async function matchToScene(entity, expected) {
155
- const entity_id = entity.entity_id;
156
- if (expected.state === "off") {
157
- if (entity.state === "on") {
158
- logger.debug({ entity_id }, `on => off`);
159
- await hass.call.light.turn_off({ entity_id });
160
- return true;
161
- }
162
- return false;
163
- }
164
- if ("rgb_color" in expected) {
165
- return await manageLightColor(entity, expected);
166
- }
167
- return true;
168
- // // TODO this technically overlaps with the big cron below, needs attention
169
- // // Something should be done about the inefficiency of 2 overlapping processes like this
170
- // // It could end up with multiple service calls in flight unnecessarily
171
- // // Each of these processes individually throttles itself fine, but when a change of scene happens
172
- // // it can end up with the light rapidly changing and sticking in the wrong spot until one of these
173
- // // schedules runs again.
174
- // return await manageLightCircadian(
175
- // entity as unknown as ColorLight,
176
- // expected,
177
- // );
178
- }
179
- const rooms = new Set();
180
- function buildLightList() {
181
- // * Produce a list of lights that are supposed to be turned on
182
- // > Source from the active scene in each loaded room
183
- const lightsToCheck = utilities_1.is.unique([...rooms.values()].flatMap((room) => {
184
- const current = room.currentSceneDefinition?.definition;
185
- if (!current) {
186
- // ? Room set to invalid scene
187
- // Notice already being emitted from room extension
188
- return [];
189
- }
190
- return Object.keys(room.currentSceneDefinition.definition).filter((key) => {
191
- if (!utilities_1.is.domain(key, "light")) {
192
- return false;
193
- }
194
- // TODO: Introduce additional checks for items like rgb color
195
- return room.currentSceneDefinition.definition[key].state !== "off";
196
- });
197
- }));
198
- // * Calculate how off the light is, omit ones that within tolerance, sort list by difference
199
- return lightsToCheck
200
- .map((light) => ({
201
- diff: getCurrentDiff(hass.entity.byId(light)),
202
- light,
203
- }))
204
- .filter(({ diff }) => diff >= config.automation.CIRCADIAN_DIFF_THRESHOLD)
205
- .sort((a, b) => (a.diff > b.diff ? utilities_1.UP : utilities_1.DOWN));
206
- }
207
- // # Light temperature adjustments
208
- // - seek out all lights that are turned on / tracking light temp
209
- // - sort by how off target they are
210
- // - adjust them at a relatively constant rate until all have been called
211
- // - start over every 30 s
212
- // ~ if a new iteration starts before the previous one finishes:
213
- // ~ the previous is halted and a warning is emitted
214
- //
215
- // Could be too many lights, or long response times. Depends on individual setup
216
- lifecycle.onPostConfig(() => {
217
- if (!config.automation.CIRCADIAN_ENABLED) {
218
- return;
219
- }
220
- logger.debug(`setting up light adjustment cron`);
221
- let earlyStop;
222
- scheduler.cron({
223
- exec: async () => {
224
- let stopped = false;
225
- if (earlyStop) {
226
- earlyStop();
227
- }
228
- const list = buildLightList();
229
- let complete = utilities_1.NONE;
230
- earlyStop = () => {
231
- logger.warn({ complete, total: list.length }, `light temperature adjustment not complete yet`);
232
- stopped = true;
233
- earlyStop = undefined;
234
- };
235
- await (0, utilities_1.eachLimit)(list, config.automation.CIRCADIAN_RATE, async ({ light, diff }) => {
236
- if (stopped) {
237
- return;
238
- }
239
- logger.trace({ diff, name: light }, `adjusting light temperature`);
240
- await hass.call.light.turn_on({
241
- entity_id: light,
242
- kelvin: automation.circadian.getKelvin(),
243
- });
244
- complete++;
245
- await (0, utilities_1.sleep)(config.automation.CIRCADIAN_THROTTLE);
246
- });
247
- earlyStop = undefined;
248
- },
249
- schedule: utilities_1.CronExpression.EVERY_30_SECONDS,
250
- });
251
- });
252
- return {
253
- manageLight,
254
- registerRoom: (room) => rooms.add(room),
255
- };
256
- }
257
- exports.LightManager = LightManager;
258
- //# sourceMappingURL=light-manager.extension.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"light-manager.extension.js","sourceRoot":"","sources":["../../../src/automation/extensions/light-manager.extension.ts"],"names":[],"mappings":"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"}
@@ -1,3 +0,0 @@
1
- import { TServiceParams } from "../../boilerplate";
2
- import { ManagedSwitchOptions } from "../helpers";
3
- export declare function ManagedSwitch({ logger, hass, scheduler }: TServiceParams): ({ context, entity_id, schedule, shouldBeOn, onUpdate, }: ManagedSwitchOptions) => void;
@@ -1,73 +0,0 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.ManagedSwitch = void 0;
4
- const utilities_1 = require("../../utilities");
5
- function ManagedSwitch({ logger, hass, scheduler }) {
6
- /**
7
- * Logic runner for the state enforcer
8
- */
9
- async function updateEntities(current, switches, context) {
10
- // ? Bail out if no action can be taken
11
- if (!hass.socket.getConnectionActive()) {
12
- logger.warn({ context }, `Skipping state enforce attempt, socket not available`);
13
- return;
14
- }
15
- // Annotation can be used on property getter, or directly on a plain property (that some other logic updates)
16
- const action = current ? "turn_on" : "turn_off";
17
- const entity_id = [switches]
18
- .flat()
19
- .map((i) => (utilities_1.is.string(i) ? i : i.entity_id));
20
- const shouldExecute = entity_id.some((id) => !action.includes(hass.entity.byId(id)?.state?.toLocaleLowerCase()));
21
- if (!shouldExecute) {
22
- return;
23
- }
24
- // * Notify and execute!
25
- if (entity_id.length === utilities_1.SINGLE) {
26
- logger.debug({ name: entity_id }, action);
27
- }
28
- else {
29
- logger.debug({ action, entity_id });
30
- }
31
- await hass.call.switch[action]({ entity_id });
32
- }
33
- // eslint-disable-next-line sonarjs/cognitive-complexity
34
- function ManageSwitch({ context, entity_id, schedule = utilities_1.CronExpression.EVERY_MINUTE, shouldBeOn, onUpdate = [], }) {
35
- logger.trace({ context, entity_id }, `setting up managed switch`);
36
- const entityList = utilities_1.is.array(entity_id) ? entity_id : [entity_id];
37
- // * Check if there should be a change
38
- const update = async () => {
39
- const expected = shouldBeOn();
40
- if (!utilities_1.is.boolean(expected)) {
41
- if (!utilities_1.is.undefined(expected)) {
42
- logger.error({ context, entity_id, expected }, `Invalid value from switch manage function`);
43
- return;
44
- }
45
- return;
46
- }
47
- await updateEntities(expected, entityList, context);
48
- };
49
- // * Always run on a schedule
50
- scheduler.cron({ exec: async () => await update(), schedule });
51
- // * Update when relevant things update
52
- if (!utilities_1.is.empty(onUpdate)) {
53
- [onUpdate].flat().forEach((i) => {
54
- if (utilities_1.is.object(i) && !("entity_id" in i)) {
55
- const onUpdate = i.onUpdate;
56
- if (!utilities_1.is.function(onUpdate)) {
57
- return;
58
- }
59
- i.onUpdate(async () => {
60
- await update();
61
- });
62
- return;
63
- }
64
- hass.entity
65
- .byId(utilities_1.is.object(i) ? i.entity_id : i)
66
- .onUpdate(async () => await update());
67
- });
68
- }
69
- }
70
- return ManageSwitch;
71
- }
72
- exports.ManagedSwitch = ManagedSwitch;
73
- //# sourceMappingURL=managed-switch.extension.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"managed-switch.extension.js","sourceRoot":"","sources":["../../../src/automation/extensions/managed-switch.extension.ts"],"names":[],"mappings":"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"}
@@ -1,11 +0,0 @@
1
- import { TServiceParams } from "../..";
2
- import { PICK_ENTITY } from "../../hass";
3
- import { VirtualSensor } from "../../synapse";
4
- import { RoomConfiguration, RoomScene } from "..";
5
- export type RoomDefinition<SCENES extends string = string> = {
6
- scene: SCENES;
7
- currentSceneDefinition: RoomScene;
8
- currentSceneEntity: VirtualSensor<SCENES>;
9
- sceneId: (scene: SCENES) => PICK_ENTITY<"scene">;
10
- };
11
- export declare function Room({ logger, hass, synapse, scheduler, automation, context: parentContext, }: TServiceParams): <SCENES extends string>({ name, context, scenes, }: RoomConfiguration<SCENES>) => RoomDefinition<SCENES>;
@@ -1,177 +0,0 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.Room = void 0;
4
- const __1 = require("../..");
5
- function Room({ logger, hass, synapse, scheduler, automation, context: parentContext, }) {
6
- // eslint-disable-next-line sonarjs/cognitive-complexity
7
- return function ({ name, context, scenes, }) {
8
- logger.info({ name }, `create room`);
9
- const SCENE_LIST = Object.keys(scenes);
10
- const sensorName = `${name} current scene`;
11
- const currentScene = synapse.sensor({
12
- context,
13
- name: sensorName,
14
- });
15
- function restoreFromEntity() {
16
- const importedValue = hass.entity.byId(__1.ZCC.toHassId("sensor", sensorName))
17
- .state;
18
- const current = currentScene.state;
19
- if (__1.is.empty(current) && !SCENE_LIST.includes(importedValue)) {
20
- return undefined;
21
- }
22
- currentScene.state = importedValue;
23
- return importedValue;
24
- }
25
- scheduler.cron({
26
- exec: async () => {
27
- let current = currentScene.state;
28
- if (!SCENE_LIST.includes(current)) {
29
- current = restoreFromEntity();
30
- if (!SCENE_LIST.includes(current)) {
31
- logger.warn({ name, scene: current || "(empty string)" }, `room is set to an invalid scene`);
32
- return;
33
- }
34
- logger.debug({ current, name: sensorName }, `imported value restore`);
35
- }
36
- await automation.aggressive.validateRoomScene({
37
- context,
38
- name: current,
39
- room: name,
40
- scene: scenes[current],
41
- });
42
- },
43
- schedule: __1.CronExpression.EVERY_30_SECONDS,
44
- });
45
- /**
46
- * Should circadian if:
47
- * - auto circadian is not disabled
48
- * - is a light, that is currently on
49
- * - the light was recently turned off (<5s)
50
- */
51
- function shouldCircadian(entity_id, target) {
52
- if (!__1.is.domain(entity_id, "light")) {
53
- return false;
54
- }
55
- if (!__1.is.empty(target) && target !== "on") {
56
- return false;
57
- }
58
- const current = (scenes[currentScene.state] ?? {});
59
- const definition = current.definition;
60
- if (entity_id in definition) {
61
- const state = definition[entity_id];
62
- return Object.keys(state).every((i) => ["state", "brightness"].includes(i));
63
- }
64
- return true;
65
- }
66
- function dynamicProperties(sceneName) {
67
- const item = scenes[sceneName];
68
- const definition = item.definition;
69
- const entities = Object.keys(item.definition);
70
- const kelvin = automation.circadian.getKelvin();
71
- const list = entities
72
- .map((name) => {
73
- const value = definition[name];
74
- if (__1.is.domain(name, "switch")) {
75
- return [name, value];
76
- }
77
- if (!__1.is.domain(name, "light")) {
78
- return undefined;
79
- }
80
- if (!shouldCircadian(name, value?.state)) {
81
- return [name, value];
82
- }
83
- return [name, { kelvin, ...value }];
84
- })
85
- .filter((i) => !__1.is.undefined(i));
86
- return {
87
- lights: Object.fromEntries(list.filter((i) => !__1.is.undefined(i[__1.VALUE].kelvin))),
88
- scene: Object.fromEntries(list.filter((i) => __1.is.undefined(i[__1.VALUE].kelvin))),
89
- };
90
- }
91
- async function sceneApply(sceneName) {
92
- const { scene, lights } = dynamicProperties(sceneName);
93
- // Send most things through the expected scene apply
94
- // Send requests to set lights to a specific temperature through the `light.turn_on` call
95
- await Promise.all([
96
- // Normal scene set
97
- new Promise(async (done) => {
98
- if (!__1.is.empty(scene)) {
99
- await hass.call.scene.apply({
100
- entities: scene,
101
- });
102
- }
103
- done();
104
- }),
105
- // Set lights to current color temp
106
- new Promise(async (done) => {
107
- await (0, __1.eachSeries)(Object.keys(lights), async (entity_id) => {
108
- const change = lights[entity_id];
109
- await hass.call.light.turn_on({
110
- brightness: change.brightness,
111
- entity_id,
112
- kelvin: change.kelvin,
113
- });
114
- });
115
- done();
116
- }),
117
- ]);
118
- }
119
- async function setScene(sceneName) {
120
- // ensure not garbage inputs
121
- if (!__1.is.string(sceneName) || !__1.is.object(scenes[sceneName])) {
122
- throw new __1.InternalError(parentContext, "INVALID_SCENE", `scene does not exist on room ${name}`);
123
- }
124
- logger.info({ name }, `set scene {%s}`, sceneName);
125
- currentScene.state = sceneName;
126
- await sceneApply(sceneName);
127
- }
128
- SCENE_LIST.forEach((scene) => {
129
- const sceneName = `${name} ${scene}`;
130
- synapse.scene({
131
- context,
132
- exec: async () => {
133
- logger.trace({ name: sceneName }, `scene activate`);
134
- await setScene(scene);
135
- },
136
- name: sceneName,
137
- });
138
- });
139
- const out = new Proxy({}, {
140
- get: (_, property) => {
141
- if (property === "scene") {
142
- return currentScene.state;
143
- }
144
- if (property === "sceneId") {
145
- return (scene) => {
146
- return __1.ZCC.toHassId("scene", name, scene);
147
- };
148
- }
149
- if (property === "currentSceneEntity") {
150
- return currentScene;
151
- }
152
- if (property === "currentSceneDefinition") {
153
- return scenes[currentScene.state];
154
- }
155
- return undefined;
156
- },
157
- set: (_, property, value) => {
158
- if (property === "scene") {
159
- setImmediate(async () =>
160
- // ? This way adds a network hop, allows hass to create a logbook entry for the call
161
- await hass.call.scene.turn_on({
162
- entity_id: __1.ZCC.toHassId("scene", name, value),
163
- }));
164
- return true;
165
- }
166
- logger.error({ property }, `cannot set property on room`);
167
- return false;
168
- },
169
- });
170
- // FIXME: This casting shouldn't be needed, why is string not assignable to string?
171
- // No idea, but I spent 30 minutes trying to figure it out, and I'm really mad at it
172
- automation.light.registerRoom(out);
173
- return out;
174
- };
175
- }
176
- exports.Room = Room;
177
- //# sourceMappingURL=room.extension.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"room.extension.js","sourceRoot":"","sources":["../../../src/automation/extensions/room.extension.ts"],"names":[],"mappings":"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"}
@@ -1,3 +0,0 @@
1
- import { TServiceParams } from "../../boilerplate";
2
- import { SequenceWatchOptions } from "..";
3
- export declare function SequenceWatcher({ logger, hass, config }: TServiceParams): <DATA extends object = object, MATCH extends string = string>(data: SequenceWatchOptions<DATA, MATCH>) => () => void;