@digital-alchemy/core 0.1.16 → 0.1.18

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 (359) 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 +4 -4
  5. package/dist/{boilerplate/extensions → extensions}/configuration.extension.js +26 -15
  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} +5 -5
  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 +81 -55
  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 +12 -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 +21 -35
  66. package/dist/automation/automation.module.d.ts +0 -96
  67. package/dist/automation/automation.module.js +0 -102
  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/cache.extension.spec.d.ts +0 -6
  122. package/dist/boilerplate/extensions/cache.extension.spec.js +0 -222
  123. package/dist/boilerplate/extensions/cache.extension.spec.js.map +0 -1
  124. package/dist/boilerplate/extensions/configuration.extension.js.map +0 -1
  125. package/dist/boilerplate/extensions/fetch.extension.js.map +0 -1
  126. package/dist/boilerplate/extensions/fetch.extension.spec.d.ts +0 -8
  127. package/dist/boilerplate/extensions/fetch.extension.spec.js +0 -59
  128. package/dist/boilerplate/extensions/fetch.extension.spec.js.map +0 -1
  129. package/dist/boilerplate/extensions/index.js.map +0 -1
  130. package/dist/boilerplate/extensions/logger.extension.js.map +0 -1
  131. package/dist/boilerplate/extensions/scheduler.extension.js.map +0 -1
  132. package/dist/boilerplate/extensions/wiring.extension.js.map +0 -1
  133. package/dist/boilerplate/extensions/wiring.extension.spec.d.ts +0 -8
  134. package/dist/boilerplate/extensions/wiring.extension.spec.js +0 -215
  135. package/dist/boilerplate/extensions/wiring.extension.spec.js.map +0 -1
  136. package/dist/boilerplate/helpers/cache-memory.helper.js.map +0 -1
  137. package/dist/boilerplate/helpers/cache-redis.helper.js.map +0 -1
  138. package/dist/boilerplate/helpers/config-environment-loader.helper.js.map +0 -1
  139. package/dist/boilerplate/helpers/config-file-loader.helper.js.map +0 -1
  140. package/dist/boilerplate/helpers/config.helper.js.map +0 -1
  141. package/dist/boilerplate/helpers/errors.helper.js.map +0 -1
  142. package/dist/boilerplate/helpers/events.helper.js.map +0 -1
  143. package/dist/boilerplate/helpers/fetch.helper.js.map +0 -1
  144. package/dist/boilerplate/helpers/index.js.map +0 -1
  145. package/dist/boilerplate/helpers/lifecycle.helper.js.map +0 -1
  146. package/dist/boilerplate/helpers/metrics.helper.js.map +0 -1
  147. package/dist/boilerplate/helpers/testing.helper.js.map +0 -1
  148. package/dist/boilerplate/helpers/wiring.helper.js.map +0 -1
  149. package/dist/boilerplate/index.d.ts +0 -2
  150. package/dist/boilerplate/index.js +0 -6
  151. package/dist/boilerplate/index.js.map +0 -1
  152. package/dist/gotify/extensions/application.extension.d.ts +0 -13
  153. package/dist/gotify/extensions/application.extension.js +0 -52
  154. package/dist/gotify/extensions/application.extension.js.map +0 -1
  155. package/dist/gotify/extensions/client.extension.d.ts +0 -8
  156. package/dist/gotify/extensions/client.extension.js +0 -38
  157. package/dist/gotify/extensions/client.extension.js.map +0 -1
  158. package/dist/gotify/extensions/fetch.extension.d.ts +0 -2
  159. package/dist/gotify/extensions/fetch.extension.js +0 -14
  160. package/dist/gotify/extensions/fetch.extension.js.map +0 -1
  161. package/dist/gotify/extensions/fetch.extension.spec.d.ts +0 -1
  162. package/dist/gotify/extensions/fetch.extension.spec.js +0 -284
  163. package/dist/gotify/extensions/fetch.extension.spec.js.map +0 -1
  164. package/dist/gotify/extensions/index.d.ts +0 -4
  165. package/dist/gotify/extensions/index.js +0 -8
  166. package/dist/gotify/extensions/index.js.map +0 -1
  167. package/dist/gotify/extensions/message.extension.d.ts +0 -8
  168. package/dist/gotify/extensions/message.extension.js +0 -37
  169. package/dist/gotify/extensions/message.extension.js.map +0 -1
  170. package/dist/gotify/gotify.module.d.ts +0 -34
  171. package/dist/gotify/gotify.module.js +0 -33
  172. package/dist/gotify/gotify.module.js.map +0 -1
  173. package/dist/gotify/helpers/api.d.ts +0 -346
  174. package/dist/gotify/helpers/api.js +0 -14
  175. package/dist/gotify/helpers/api.js.map +0 -1
  176. package/dist/gotify/helpers/events.helper.d.ts +0 -6
  177. package/dist/gotify/helpers/events.helper.js +0 -5
  178. package/dist/gotify/helpers/events.helper.js.map +0 -1
  179. package/dist/gotify/helpers/index.d.ts +0 -2
  180. package/dist/gotify/helpers/index.js +0 -6
  181. package/dist/gotify/helpers/index.js.map +0 -1
  182. package/dist/gotify/index.d.ts +0 -3
  183. package/dist/gotify/index.js +0 -7
  184. package/dist/gotify/index.js.map +0 -1
  185. package/dist/hass/dynamic.d.ts +0 -1126
  186. package/dist/hass/dynamic.js +0 -153
  187. package/dist/hass/dynamic.js.map +0 -1
  188. package/dist/hass/extensions/call-proxy.extension.d.ts +0 -4
  189. package/dist/hass/extensions/call-proxy.extension.js +0 -88
  190. package/dist/hass/extensions/call-proxy.extension.js.map +0 -1
  191. package/dist/hass/extensions/config.extension.d.ts +0 -2
  192. package/dist/hass/extensions/config.extension.js +0 -53
  193. package/dist/hass/extensions/config.extension.js.map +0 -1
  194. package/dist/hass/extensions/entity-manager.extension.d.ts +0 -61
  195. package/dist/hass/extensions/entity-manager.extension.js +0 -211
  196. package/dist/hass/extensions/entity-manager.extension.js.map +0 -1
  197. package/dist/hass/extensions/fetch-api.extension.d.ts +0 -29
  198. package/dist/hass/extensions/fetch-api.extension.js +0 -174
  199. package/dist/hass/extensions/fetch-api.extension.js.map +0 -1
  200. package/dist/hass/extensions/index.d.ts +0 -6
  201. package/dist/hass/extensions/index.js +0 -10
  202. package/dist/hass/extensions/index.js.map +0 -1
  203. package/dist/hass/extensions/utilities.extension.d.ts +0 -9
  204. package/dist/hass/extensions/utilities.extension.js +0 -43
  205. package/dist/hass/extensions/utilities.extension.js.map +0 -1
  206. package/dist/hass/extensions/validate.extension.d.ts +0 -2
  207. package/dist/hass/extensions/validate.extension.js +0 -34
  208. package/dist/hass/extensions/validate.extension.js.map +0 -1
  209. package/dist/hass/extensions/websocket-api.extension.d.ts +0 -39
  210. package/dist/hass/extensions/websocket-api.extension.js +0 -363
  211. package/dist/hass/extensions/websocket-api.extension.js.map +0 -1
  212. package/dist/hass/hass.module.d.ts +0 -80
  213. package/dist/hass/hass.module.js +0 -83
  214. package/dist/hass/hass.module.js.map +0 -1
  215. package/dist/hass/helpers/backup.helper.d.ts +0 -11
  216. package/dist/hass/helpers/backup.helper.js +0 -3
  217. package/dist/hass/helpers/backup.helper.js.map +0 -1
  218. package/dist/hass/helpers/constants.helper.d.ts +0 -54
  219. package/dist/hass/helpers/constants.helper.js +0 -63
  220. package/dist/hass/helpers/constants.helper.js.map +0 -1
  221. package/dist/hass/helpers/entity-state.helper.d.ts +0 -45
  222. package/dist/hass/helpers/entity-state.helper.js +0 -9
  223. package/dist/hass/helpers/entity-state.helper.js.map +0 -1
  224. package/dist/hass/helpers/fetch/calendar.d.ts +0 -54
  225. package/dist/hass/helpers/fetch/calendar.js +0 -3
  226. package/dist/hass/helpers/fetch/calendar.js.map +0 -1
  227. package/dist/hass/helpers/fetch/configuration.d.ts +0 -34
  228. package/dist/hass/helpers/fetch/configuration.js +0 -3
  229. package/dist/hass/helpers/fetch/configuration.js.map +0 -1
  230. package/dist/hass/helpers/fetch/index.d.ts +0 -4
  231. package/dist/hass/helpers/fetch/index.js +0 -8
  232. package/dist/hass/helpers/fetch/index.js.map +0 -1
  233. package/dist/hass/helpers/fetch/server-log.d.ts +0 -10
  234. package/dist/hass/helpers/fetch/server-log.js +0 -20
  235. package/dist/hass/helpers/fetch/server-log.js.map +0 -1
  236. package/dist/hass/helpers/fetch/service-list.d.ts +0 -51
  237. package/dist/hass/helpers/fetch/service-list.js +0 -3
  238. package/dist/hass/helpers/fetch/service-list.js.map +0 -1
  239. package/dist/hass/helpers/index.d.ts +0 -7
  240. package/dist/hass/helpers/index.js +0 -11
  241. package/dist/hass/helpers/index.js.map +0 -1
  242. package/dist/hass/helpers/metrics.helper.d.ts +0 -13
  243. package/dist/hass/helpers/metrics.helper.js +0 -30
  244. package/dist/hass/helpers/metrics.helper.js.map +0 -1
  245. package/dist/hass/helpers/utility.helper.d.ts +0 -61
  246. package/dist/hass/helpers/utility.helper.js +0 -38
  247. package/dist/hass/helpers/utility.helper.js.map +0 -1
  248. package/dist/hass/helpers/websocket.helper.d.ts +0 -129
  249. package/dist/hass/helpers/websocket.helper.js +0 -3
  250. package/dist/hass/helpers/websocket.helper.js.map +0 -1
  251. package/dist/hass/index.d.ts +0 -4
  252. package/dist/hass/index.js +0 -8
  253. package/dist/hass/index.js.map +0 -1
  254. package/dist/nexus/entities.extension.d.ts +0 -2
  255. package/dist/nexus/entities.extension.js +0 -50
  256. package/dist/nexus/entities.extension.js.map +0 -1
  257. package/dist/nexus/main.d.ts +0 -9
  258. package/dist/nexus/main.js +0 -28
  259. package/dist/nexus/main.js.map +0 -1
  260. package/dist/purge/main.d.ts +0 -34
  261. package/dist/purge/main.js +0 -50
  262. package/dist/purge/main.js.map +0 -1
  263. package/dist/purge/purge.extension.d.ts +0 -2
  264. package/dist/purge/purge.extension.js +0 -49
  265. package/dist/purge/purge.extension.js.map +0 -1
  266. package/dist/synapse/extensions/binary-sensor.extension.d.ts +0 -19
  267. package/dist/synapse/extensions/binary-sensor.extension.js +0 -84
  268. package/dist/synapse/extensions/binary-sensor.extension.js.map +0 -1
  269. package/dist/synapse/extensions/button.extension.d.ts +0 -10
  270. package/dist/synapse/extensions/button.extension.js +0 -46
  271. package/dist/synapse/extensions/button.extension.js.map +0 -1
  272. package/dist/synapse/extensions/index.d.ts +0 -6
  273. package/dist/synapse/extensions/index.js +0 -10
  274. package/dist/synapse/extensions/index.js.map +0 -1
  275. package/dist/synapse/extensions/registry.extension.d.ts +0 -21
  276. package/dist/synapse/extensions/registry.extension.js +0 -223
  277. package/dist/synapse/extensions/registry.extension.js.map +0 -1
  278. package/dist/synapse/extensions/scene.extension.d.ts +0 -9
  279. package/dist/synapse/extensions/scene.extension.js +0 -37
  280. package/dist/synapse/extensions/scene.extension.js.map +0 -1
  281. package/dist/synapse/extensions/sensor.extension.d.ts +0 -25
  282. package/dist/synapse/extensions/sensor.extension.js +0 -154
  283. package/dist/synapse/extensions/sensor.extension.js.map +0 -1
  284. package/dist/synapse/extensions/switch.extension.d.ts +0 -19
  285. package/dist/synapse/extensions/switch.extension.js +0 -95
  286. package/dist/synapse/extensions/switch.extension.js.map +0 -1
  287. package/dist/synapse/helpers/device-class.helper.d.ts +0 -323
  288. package/dist/synapse/helpers/device-class.helper.js +0 -241
  289. package/dist/synapse/helpers/device-class.helper.js.map +0 -1
  290. package/dist/synapse/helpers/index.d.ts +0 -3
  291. package/dist/synapse/helpers/index.js +0 -7
  292. package/dist/synapse/helpers/index.js.map +0 -1
  293. package/dist/synapse/helpers/metrics.helper.d.ts +0 -13
  294. package/dist/synapse/helpers/metrics.helper.js +0 -30
  295. package/dist/synapse/helpers/metrics.helper.js.map +0 -1
  296. package/dist/synapse/helpers/utility.helper.d.ts +0 -1
  297. package/dist/synapse/helpers/utility.helper.js +0 -3
  298. package/dist/synapse/helpers/utility.helper.js.map +0 -1
  299. package/dist/synapse/index.d.ts +0 -3
  300. package/dist/synapse/index.js +0 -7
  301. package/dist/synapse/index.js.map +0 -1
  302. package/dist/synapse/synapse.module.d.ts +0 -54
  303. package/dist/synapse/synapse.module.js +0 -63
  304. package/dist/synapse/synapse.module.js.map +0 -1
  305. package/dist/type-writer/build.extension.d.ts +0 -2
  306. package/dist/type-writer/build.extension.js +0 -52
  307. package/dist/type-writer/build.extension.js.map +0 -1
  308. package/dist/type-writer/main.d.ts +0 -17
  309. package/dist/type-writer/main.js +0 -36
  310. package/dist/type-writer/main.js.map +0 -1
  311. package/dist/type-writer/type-writer.extension.d.ts +0 -2
  312. package/dist/type-writer/type-writer.extension.js +0 -214
  313. package/dist/type-writer/type-writer.extension.js.map +0 -1
  314. package/dist/utilities/extensions/index.d.ts +0 -3
  315. package/dist/utilities/extensions/index.js +0 -7
  316. package/dist/utilities/extensions/index.js.map +0 -1
  317. package/dist/utilities/extensions/is.extension.js.map +0 -1
  318. package/dist/utilities/extensions/zcc-testing.extension.d.ts +0 -4
  319. package/dist/utilities/extensions/zcc-testing.extension.js +0 -9
  320. package/dist/utilities/extensions/zcc-testing.extension.js.map +0 -1
  321. package/dist/utilities/extensions/zcc.extension.js.map +0 -1
  322. package/dist/utilities/helpers/async.helper.js.map +0 -1
  323. package/dist/utilities/helpers/context.helper.js.map +0 -1
  324. package/dist/utilities/helpers/cron.helper.js.map +0 -1
  325. package/dist/utilities/helpers/extend.helper.js.map +0 -1
  326. package/dist/utilities/helpers/index.js.map +0 -1
  327. package/dist/utilities/helpers/utilities.helper.js.map +0 -1
  328. package/dist/utilities/index.d.ts +0 -2
  329. package/dist/utilities/index.js +0 -6
  330. package/dist/utilities/index.js.map +0 -1
  331. package/dist/utilities/tests/peat.spec.d.ts +0 -1
  332. package/dist/utilities/tests/peat.spec.js +0 -157
  333. package/dist/utilities/tests/peat.spec.js.map +0 -1
  334. package/dist/utilities/tests/sleep.spec.d.ts +0 -1
  335. package/dist/utilities/tests/sleep.spec.js +0 -21
  336. package/dist/utilities/tests/sleep.spec.js.map +0 -1
  337. /package/dist/{utilities/extensions → extensions}/is.extension.d.ts +0 -0
  338. /package/dist/{utilities/extensions → extensions}/is.extension.js +0 -0
  339. /package/dist/{utilities/helpers → helpers}/async.helper.d.ts +0 -0
  340. /package/dist/{utilities/helpers → helpers}/async.helper.js +0 -0
  341. /package/dist/{boilerplate/helpers → helpers}/cache-memory.helper.d.ts +0 -0
  342. /package/dist/{boilerplate/helpers → helpers}/cache-redis.helper.d.ts +0 -0
  343. /package/dist/{boilerplate/helpers → helpers}/config-environment-loader.helper.d.ts +0 -0
  344. /package/dist/{boilerplate/helpers → helpers}/config-file-loader.helper.d.ts +0 -0
  345. /package/dist/{utilities/helpers → helpers}/context.helper.d.ts +0 -0
  346. /package/dist/{utilities/helpers → helpers}/context.helper.js +0 -0
  347. /package/dist/{utilities/helpers → helpers}/cron.helper.d.ts +0 -0
  348. /package/dist/{utilities/helpers → helpers}/cron.helper.js +0 -0
  349. /package/dist/{boilerplate/helpers → helpers}/errors.helper.js +0 -0
  350. /package/dist/{boilerplate/helpers → helpers}/events.helper.d.ts +0 -0
  351. /package/dist/{utilities/helpers → helpers}/extend.helper.d.ts +0 -0
  352. /package/dist/{utilities/helpers → helpers}/extend.helper.js +0 -0
  353. /package/dist/{utilities/helpers/index.d.ts → helpers/index copy.d.ts} +0 -0
  354. /package/dist/{boilerplate/helpers → helpers}/lifecycle.helper.js +0 -0
  355. /package/dist/{boilerplate/helpers → helpers}/metrics.helper.d.ts +0 -0
  356. /package/dist/{boilerplate/helpers → helpers}/metrics.helper.js +0 -0
  357. /package/dist/{utilities/helpers → helpers}/utilities.helper.d.ts +0 -0
  358. /package/dist/{utilities/helpers → helpers}/utilities.helper.js +0 -0
  359. /package/dist/{boilerplate/helpers → helpers}/wiring.helper.js +0 -0
@@ -1,81 +0,0 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.CircadianLighting = void 0;
4
- const tslib_1 = require("tslib");
5
- const dayjs_1 = tslib_1.__importDefault(require("dayjs"));
6
- const utilities_1 = require("../../utilities");
7
- const helpers_1 = require("../helpers");
8
- const MIN = 0;
9
- const MAX = 1;
10
- function CircadianLighting({ logger, lifecycle, scheduler, synapse, automation, config, context, event, }) {
11
- let circadianEntity;
12
- lifecycle.onPostConfig(() => {
13
- if (!config.automation.CIRCADIAN_ENABLED) {
14
- logger.info(`circadian disabled`);
15
- return;
16
- }
17
- circadianEntity = synapse.sensor({
18
- context,
19
- device_class: "temperature",
20
- icon: "mdi:sun-thermometer",
21
- name: config.automation.CIRCADIAN_SENSOR_NAME,
22
- unit_of_measurement: "K",
23
- });
24
- out.circadianEntity = circadianEntity;
25
- scheduler.cron({
26
- exec: () => updateKelvin(),
27
- schedule: utilities_1.CronExpression.EVERY_30_SECONDS,
28
- });
29
- });
30
- event.on(helpers_1.LOCATION_UPDATED, () => updateKelvin());
31
- function updateKelvin() {
32
- if (!circadianEntity) {
33
- return;
34
- }
35
- if (!automation.solar.loaded) {
36
- logger.debug(`lat/long not loaded yet`);
37
- return;
38
- }
39
- const offset = getColorOffset();
40
- circadianEntity.state = Math.floor((config.automation.CIRCADIAN_MAX_TEMP -
41
- config.automation.CIRCADIAN_MIN_TEMP) *
42
- offset +
43
- config.automation.CIRCADIAN_MIN_TEMP);
44
- }
45
- /**
46
- * Returns 0 when it's dark out, increasing to 1 at solar noon
47
- */
48
- function getColorOffset() {
49
- if (!circadianEntity) {
50
- return MIN;
51
- }
52
- if (!automation.solar.loaded) {
53
- logger.debug(`lat/long not loaded yet`);
54
- return MIN;
55
- }
56
- const now = (0, dayjs_1.default)();
57
- const { solarNoon, dawn, dusk } = automation.solar;
58
- if (now.isBefore(dawn)) {
59
- // After midnight, but before dawn
60
- return MIN;
61
- }
62
- if (now.isBefore(solarNoon)) {
63
- // After dawn, but before solar noon
64
- return Math.abs(solarNoon.diff(now, "s") / solarNoon.diff(dawn, "s") - MAX);
65
- }
66
- if (now.isBefore(dusk)) {
67
- // Afternoon, but before dusk
68
- return Math.abs(solarNoon.diff(now, "s") / solarNoon.diff(dusk, "s") - MAX);
69
- }
70
- // Until midnight
71
- return MIN;
72
- }
73
- const out = {
74
- circadianEntity,
75
- getKelvin: () => circadianEntity?.state,
76
- updateKelvin,
77
- };
78
- return out;
79
- }
80
- exports.CircadianLighting = CircadianLighting;
81
- //# sourceMappingURL=circadian.extension.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"circadian.extension.js","sourceRoot":"","sources":["../../../src/automation/extensions/circadian.extension.ts"],"names":[],"mappings":"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"}
@@ -1,7 +0,0 @@
1
- export * from "./aggressive-scenes.extension";
2
- export * from "./circadian.extension";
3
- export * from "./light-manager.extension";
4
- export * from "./managed-switch.extension";
5
- export * from "./room.extension";
6
- export * from "./sequence-matcher.extension";
7
- export * from "./solar-calc.extension";
@@ -1,11 +0,0 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- const tslib_1 = require("tslib");
4
- tslib_1.__exportStar(require("./aggressive-scenes.extension"), exports);
5
- tslib_1.__exportStar(require("./circadian.extension"), exports);
6
- tslib_1.__exportStar(require("./light-manager.extension"), exports);
7
- tslib_1.__exportStar(require("./managed-switch.extension"), exports);
8
- tslib_1.__exportStar(require("./room.extension"), exports);
9
- tslib_1.__exportStar(require("./sequence-matcher.extension"), exports);
10
- tslib_1.__exportStar(require("./solar-calc.extension"), exports);
11
- //# sourceMappingURL=index.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/automation/extensions/index.ts"],"names":[],"mappings":";;;AAAA,wEAA8C;AAC9C,gEAAsC;AACtC,oEAA0C;AAC1C,qEAA2C;AAC3C,2DAAiC;AACjC,uEAA6C;AAC7C,iEAAuC"}
@@ -1,26 +0,0 @@
1
- import { TServiceParams } from "../../boilerplate";
2
- import { ENTITY_STATE, GenericEntityDTO, PICK_ENTITY } from "../../hass";
3
- import { RoomDefinition } from "..";
4
- import { SceneDefinition } from "../helpers";
5
- type ColorModes = "color_temp" | "xy" | "brightness";
6
- export type ColorLight = GenericEntityDTO<{
7
- brightness: number;
8
- color_mode: ColorModes;
9
- color_temp: number;
10
- color_temp_kelvin: number;
11
- entity_id?: PICK_ENTITY<"light">[];
12
- hs_color: [h: number, s: number];
13
- max_color_temp_kelvin: number;
14
- max_mireds: number;
15
- min_color_temp_kelvin: number;
16
- min_mireds: number;
17
- rgb_color: [number, number, number];
18
- supported_color_modes: ColorModes[];
19
- supported_features: number;
20
- xy_color: [x: number, y: number];
21
- }>;
22
- export declare function LightManager({ logger, hass, scheduler, lifecycle, automation, config, }: TServiceParams): {
23
- manageLight: (entity: ENTITY_STATE<PICK_ENTITY<"light">>, scene: SceneDefinition) => Promise<void>;
24
- registerRoom: (room: RoomDefinition) => Set<RoomDefinition<string>>;
25
- };
26
- export {};
@@ -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>;