homebridge-config-ui-x 5.0.0-beta.9 → 5.0.0-beta.90

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 (316) hide show
  1. package/CHANGELOG.md +428 -31
  2. package/CONTRIBUTING.md +5 -4
  3. package/LICENSE +1 -1
  4. package/config.schema.json +37 -192
  5. package/dist/bin/hb-service.d.ts +2 -2
  6. package/dist/bin/hb-service.js +51 -50
  7. package/dist/bin/hb-service.js.map +1 -1
  8. package/dist/bin/platforms/darwin.js +2 -2
  9. package/dist/bin/platforms/darwin.js.map +1 -1
  10. package/dist/bin/platforms/win32.js +4 -2
  11. package/dist/bin/platforms/win32.js.map +1 -1
  12. package/dist/bin/standalone.js +1 -0
  13. package/dist/bin/standalone.js.map +1 -1
  14. package/dist/core/auth/auth.controller.d.ts +15 -3
  15. package/dist/core/auth/auth.controller.js.map +1 -1
  16. package/dist/core/auth/auth.module.js +1 -1
  17. package/dist/core/auth/auth.module.js.map +1 -1
  18. package/dist/core/auth/auth.service.js +10 -10
  19. package/dist/core/auth/auth.service.js.map +1 -1
  20. package/dist/core/auth/jwt.strategy.d.ts +3 -1
  21. package/dist/core/config/config.service.d.ts +23 -11
  22. package/dist/core/config/config.service.js +39 -19
  23. package/dist/core/config/config.service.js.map +1 -1
  24. package/dist/core/config/config.startup.js +2 -2
  25. package/dist/core/config/config.startup.js.map +1 -1
  26. package/dist/core/homebridge-ipc/homebridge-ipc.service.js +3 -3
  27. package/dist/core/homebridge-ipc/homebridge-ipc.service.js.map +1 -1
  28. package/dist/index.js +6 -77
  29. package/dist/index.js.map +1 -1
  30. package/dist/main.js +2 -1
  31. package/dist/main.js.map +1 -1
  32. package/dist/modules/accessories/accessories.controller.js +5 -5
  33. package/dist/modules/accessories/accessories.controller.js.map +1 -1
  34. package/dist/modules/accessories/accessories.service.js +8 -7
  35. package/dist/modules/accessories/accessories.service.js.map +1 -1
  36. package/dist/modules/backup/backup.controller.js +7 -7
  37. package/dist/modules/backup/backup.controller.js.map +1 -1
  38. package/dist/modules/backup/backup.service.js +19 -79
  39. package/dist/modules/backup/backup.service.js.map +1 -1
  40. package/dist/modules/child-bridges/child-bridges.service.js +0 -7
  41. package/dist/modules/child-bridges/child-bridges.service.js.map +1 -1
  42. package/dist/modules/config-editor/config-editor.controller.d.ts +1 -1
  43. package/dist/modules/config-editor/config-editor.controller.js +8 -8
  44. package/dist/modules/config-editor/config-editor.controller.js.map +1 -1
  45. package/dist/modules/config-editor/config-editor.service.d.ts +1 -1
  46. package/dist/modules/config-editor/config-editor.service.js +84 -67
  47. package/dist/modules/config-editor/config-editor.service.js.map +1 -1
  48. package/dist/modules/custom-plugins/plugins-settings-ui/plugins-settings-ui.service.d.ts +1 -1
  49. package/dist/modules/custom-plugins/plugins-settings-ui/plugins-settings-ui.service.js +13 -11
  50. package/dist/modules/custom-plugins/plugins-settings-ui/plugins-settings-ui.service.js.map +1 -1
  51. package/dist/modules/log/log.gateway.d.ts +2 -1
  52. package/dist/modules/log/log.gateway.js.map +1 -1
  53. package/dist/modules/log/log.service.js +3 -3
  54. package/dist/modules/log/log.service.js.map +1 -1
  55. package/dist/modules/platform-tools/docker/docker.controller.js +3 -3
  56. package/dist/modules/platform-tools/docker/docker.controller.js.map +1 -1
  57. package/dist/modules/platform-tools/docker/docker.service.js +1 -1
  58. package/dist/modules/platform-tools/docker/docker.service.js.map +1 -1
  59. package/dist/modules/platform-tools/hb-service/hb-service.controller.js +3 -3
  60. package/dist/modules/platform-tools/hb-service/hb-service.controller.js.map +1 -1
  61. package/dist/modules/platform-tools/hb-service/hb-service.service.js +6 -6
  62. package/dist/modules/platform-tools/hb-service/hb-service.service.js.map +1 -1
  63. package/dist/modules/platform-tools/linux/linux.controller.js +2 -2
  64. package/dist/modules/platform-tools/linux/linux.controller.js.map +1 -1
  65. package/dist/modules/platform-tools/linux/linux.service.js +2 -2
  66. package/dist/modules/platform-tools/linux/linux.service.js.map +1 -1
  67. package/dist/modules/platform-tools/terminal/terminal.gateway.d.ts +2 -1
  68. package/dist/modules/platform-tools/terminal/terminal.gateway.js.map +1 -1
  69. package/dist/modules/platform-tools/terminal/terminal.service.js +2 -2
  70. package/dist/modules/platform-tools/terminal/terminal.service.js.map +1 -1
  71. package/dist/modules/plugins/plugins.controller.js +4 -4
  72. package/dist/modules/plugins/plugins.controller.js.map +1 -1
  73. package/dist/modules/plugins/plugins.service.d.ts +4 -1
  74. package/dist/modules/plugins/plugins.service.js +168 -103
  75. package/dist/modules/plugins/plugins.service.js.map +1 -1
  76. package/dist/modules/server/server.controller.d.ts +28 -3
  77. package/dist/modules/server/server.controller.js +137 -20
  78. package/dist/modules/server/server.controller.js.map +1 -1
  79. package/dist/modules/server/server.service.d.ts +27 -6
  80. package/dist/modules/server/server.service.js +212 -66
  81. package/dist/modules/server/server.service.js.map +1 -1
  82. package/dist/modules/status/status.controller.d.ts +0 -1
  83. package/dist/modules/status/status.controller.js +3 -4
  84. package/dist/modules/status/status.controller.js.map +1 -1
  85. package/dist/modules/status/status.gateway.d.ts +1 -1
  86. package/dist/modules/status/status.service.d.ts +1 -1
  87. package/dist/modules/status/status.service.js +17 -41
  88. package/dist/modules/status/status.service.js.map +1 -1
  89. package/dist/modules/users/users.controller.js +7 -7
  90. package/dist/modules/users/users.controller.js.map +1 -1
  91. package/dist/self-check.js +6 -6
  92. package/dist/self-check.js.map +1 -1
  93. package/package.json +45 -43
  94. package/public/3rdpartylicenses.txt +192 -109
  95. package/public/assets/hap-icons/airpurifier.svg +49 -16
  96. package/public/assets/hap-icons/airquality.svg +24 -13
  97. package/public/assets/hap-icons/co-sensor.svg +72 -0
  98. package/public/assets/hap-icons/co2-sensor.svg +72 -0
  99. package/public/assets/hap-icons/contactsensor-closed.svg +35 -2
  100. package/public/assets/hap-icons/contactsensor-open.svg +80 -2
  101. package/public/assets/hap-icons/door-closed.svg +32 -2
  102. package/public/assets/hap-icons/door-open.svg +48 -2
  103. package/public/assets/hap-icons/fan-off.svg +24 -13
  104. package/public/assets/hap-icons/fan-on.svg +24 -13
  105. package/public/assets/hap-icons/garagedoor.svg +24 -13
  106. package/public/assets/hap-icons/humidity.svg +24 -13
  107. package/public/assets/hap-icons/irrigation-system.svg +47 -18
  108. package/public/assets/hap-icons/leaksensor.svg +52 -2
  109. package/public/assets/hap-icons/light.svg +47 -28
  110. package/public/assets/hap-icons/lightbulb.svg +24 -13
  111. package/public/assets/hap-icons/lock-locked.svg +24 -13
  112. package/public/assets/hap-icons/lock-unlocked.svg +24 -13
  113. package/public/assets/hap-icons/motionsensor.svg +100 -2
  114. package/public/assets/hap-icons/occupancysensor.svg +97 -2
  115. package/public/assets/hap-icons/outlet.svg +24 -13
  116. package/public/assets/hap-icons/securitysystem-active.svg +102 -2
  117. package/public/assets/hap-icons/securitysystem-off.svg +68 -2
  118. package/public/assets/hap-icons/smokesensor.svg +42 -9
  119. package/public/assets/hap-icons/speaker.svg +29 -13
  120. package/public/assets/hap-icons/statelessprogrammableswitch.svg +51 -2
  121. package/public/assets/hap-icons/switch.svg +24 -13
  122. package/public/assets/hap-icons/television.svg +15 -4
  123. package/public/assets/hap-icons/temperature.svg +24 -13
  124. package/public/assets/hap-icons/unknown.svg +24 -13
  125. package/public/assets/hap-icons/valve-generic.svg +27 -16
  126. package/public/assets/hap-icons/valve-irrigation.svg +37 -21
  127. package/public/assets/hap-icons/valve-showerhead.svg +52 -0
  128. package/public/assets/hap-icons/valve-waterfaucet.svg +21 -0
  129. package/public/assets/hap-icons/window-closed.svg +85 -2
  130. package/public/assets/hap-icons/window-open.svg +136 -2
  131. package/public/assets/hap-icons/windowcovering-closed.svg +45 -49
  132. package/public/assets/hap-icons/windowcovering-open.svg +40 -44
  133. package/public/assets/homebridge-color-round.svg +36 -1
  134. package/public/assets/homebridge-logo.svg +11 -1
  135. package/public/assets/mask-icon.svg +5 -1
  136. package/public/assets/plugin-ui-utils/ui.js +3 -0
  137. package/public/assets/plugin-ui-utils/ui.js.map +1 -1
  138. package/public/chunk-2EMPNH2X.js +5 -0
  139. package/public/chunk-2RK3HZEO.js +1 -0
  140. package/public/{chunk-ENKVNFKF.js → chunk-3AF2QBDU.js} +1 -1
  141. package/public/chunk-3SQKC2TS.js +1 -0
  142. package/public/chunk-3YAYVLRD.js +1 -0
  143. package/public/chunk-42N4BQBA.js +1 -0
  144. package/public/chunk-45VPTZ2V.js +1 -0
  145. package/public/chunk-4CNFMQHX.js +1 -0
  146. package/public/chunk-4FKCTI4U.js +6 -0
  147. package/public/chunk-4V6GR2SD.js +1 -0
  148. package/public/{chunk-EA5J2VEJ.js → chunk-4VKEWS3F.js} +1 -1
  149. package/public/chunk-4XXNIIG7.js +1 -0
  150. package/public/chunk-56VIVSJU.js +1 -0
  151. package/public/chunk-5AQGPMHT.js +8 -0
  152. package/public/chunk-5GQ5LHPJ.js +1 -0
  153. package/public/chunk-5UZVX47W.js +1 -0
  154. package/public/chunk-7Y6NWNO6.js +1 -0
  155. package/public/chunk-A72PCJ6R.js +29 -0
  156. package/public/chunk-AE26NEIO.js +1 -0
  157. package/public/{chunk-QE7DO6J3.js → chunk-ANCTYTNR.js} +2 -2
  158. package/public/chunk-B6WBGOVM.js +1 -0
  159. package/public/{chunk-GR5ZC55C.js → chunk-CEC3XQIL.js} +11 -11
  160. package/public/{chunk-MPLDW2J6.js → chunk-CVKLBLXM.js} +1 -1
  161. package/public/chunk-CW7HPG62.js +1 -0
  162. package/public/chunk-D4RGGBK3.js +1 -0
  163. package/public/chunk-D6TU4SM3.js +1 -0
  164. package/public/chunk-DM5B72RZ.js +1 -0
  165. package/public/{chunk-JZZQRLNW.js → chunk-DQBVZWYJ.js} +1 -1
  166. package/public/chunk-E4XKX7UK.js +1 -0
  167. package/public/chunk-EEUYLNDO.js +5 -0
  168. package/public/chunk-EJ3RNOUF.js +1 -0
  169. package/public/chunk-EP2F3UQR.js +1 -0
  170. package/public/chunk-ET7FWSNM.js +1 -0
  171. package/public/{chunk-6TCHCTXZ.js → chunk-EWUBHGYD.js} +1 -1
  172. package/public/chunk-F7SPUPN4.js +2 -0
  173. package/public/chunk-FDPTBVVC.js +2 -0
  174. package/public/{chunk-7EUQWCP5.js → chunk-FIDKTTX5.js} +2 -2
  175. package/public/chunk-FMIYWTUO.js +1 -0
  176. package/public/chunk-FY5PL5MR.js +1 -0
  177. package/public/chunk-GGYRCAYF.js +1 -0
  178. package/public/chunk-GOW5VSYJ.js +1 -0
  179. package/public/chunk-IF56BKOM.js +1 -0
  180. package/public/chunk-IVCMNRU4.js +1 -0
  181. package/public/chunk-JFFBCK75.js +1 -0
  182. package/public/chunk-JZQGN6ID.js +1 -0
  183. package/public/{chunk-LWNID63H.js → chunk-K25HWAP5.js} +2 -2
  184. package/public/chunk-L3YFIHHA.js +1 -0
  185. package/public/{chunk-WNWWUCCZ.js → chunk-L7P4OVCU.js} +3 -3
  186. package/public/chunk-LNCIURRX.js +1 -0
  187. package/public/chunk-LPGZUTF3.js +1 -0
  188. package/public/chunk-MMXKQEQO.js +8 -0
  189. package/public/chunk-NHJTMRLT.js +1 -0
  190. package/public/chunk-NR37MAXW.js +7 -0
  191. package/public/chunk-O7MBAN56.js +1 -0
  192. package/public/chunk-P7BL7CLR.js +20 -0
  193. package/public/chunk-PA52AH7H.js +1 -0
  194. package/public/chunk-PLCPUQJZ.js +1 -0
  195. package/public/chunk-QQ5WKGNO.js +1 -0
  196. package/public/chunk-SF7DRFC6.js +1 -0
  197. package/public/chunk-SVB7PE7C.js +1 -0
  198. package/public/chunk-TPK2GQ3K.js +1 -0
  199. package/public/chunk-UT35MQIH.js +1 -0
  200. package/public/chunk-UT52O3FM.js +23 -0
  201. package/public/chunk-UVGXL5ZW.js +1 -0
  202. package/public/chunk-VB5IQKBP.js +1 -0
  203. package/public/chunk-VOOJDGMJ.js +1 -0
  204. package/public/chunk-VWFYKFR2.js +1 -0
  205. package/public/{chunk-XSDOEAMI.js → chunk-XCSR3FBC.js} +1 -1
  206. package/public/chunk-XOC6FQ7D.js +1 -0
  207. package/public/chunk-XW322JAX.js +1 -0
  208. package/public/chunk-XZIODJCL.js +1 -0
  209. package/public/chunk-Y6TXYIFY.js +7 -0
  210. package/public/chunk-YWKZ3P6I.js +1 -0
  211. package/public/chunk-YWOWWE53.js +1 -0
  212. package/public/chunk-ZE45ONWQ.js +1 -0
  213. package/public/chunk-ZOLUFCSO.js +1 -0
  214. package/public/chunk-ZVMYOL56.js +1 -0
  215. package/public/chunk-ZZCXKIGL.js +1 -0
  216. package/public/chunk-ZZNJCKGO.js +1 -0
  217. package/public/index.html +2 -2
  218. package/public/main-U47N7JMY.js +1 -0
  219. package/public/media/fa-brands-400-Q3XCMWHQ.woff2 +0 -0
  220. package/public/media/{fa-brands-400-KOKGDU7E.ttf → fa-brands-400-R2XQZCET.ttf} +0 -0
  221. package/public/media/fa-regular-400-QSNYFYRT.woff2 +0 -0
  222. package/public/media/{fa-regular-400-IPMAEX5Y.ttf → fa-regular-400-XUOPSR7E.ttf} +0 -0
  223. package/public/media/fa-solid-900-5ZUYHGA7.woff2 +0 -0
  224. package/public/media/{fa-solid-900-SRFFQLRM.ttf → fa-solid-900-PJNKLK6W.ttf} +0 -0
  225. package/public/polyfills-GCAZ7JAV.js +2 -0
  226. package/public/styles-PKR3EGHP.css +1 -0
  227. package/scripts/upgrade-install-plugin.sh +1 -1
  228. package/public/chunk-2JFSWT5B.js +0 -1
  229. package/public/chunk-2L7ELAST.js +0 -1
  230. package/public/chunk-2S6LQXQQ.js +0 -1
  231. package/public/chunk-33GSDLFJ.js +0 -1
  232. package/public/chunk-3IX3CLER.js +0 -1
  233. package/public/chunk-3OQBMVGJ.js +0 -1
  234. package/public/chunk-4G7JJKXC.js +0 -1
  235. package/public/chunk-4W4R6Q5O.js +0 -1
  236. package/public/chunk-4YG6EOJW.js +0 -1
  237. package/public/chunk-5ABRPQAO.js +0 -1
  238. package/public/chunk-5JQMTC6B.js +0 -1
  239. package/public/chunk-BKCPDNDQ.js +0 -1
  240. package/public/chunk-BKUGARB4.js +0 -7
  241. package/public/chunk-BPMSJ2VF.js +0 -1
  242. package/public/chunk-BVRAVCVU.js +0 -1
  243. package/public/chunk-CCUID66K.js +0 -1
  244. package/public/chunk-CNLFTFGS.js +0 -1
  245. package/public/chunk-COZI4IQZ.js +0 -1
  246. package/public/chunk-DFKBPEBJ.js +0 -1
  247. package/public/chunk-FIWNQUN6.js +0 -1
  248. package/public/chunk-HSJSWZHD.js +0 -1
  249. package/public/chunk-JJL2MTZS.js +0 -1
  250. package/public/chunk-JKN6S535.js +0 -1
  251. package/public/chunk-KQJ7ONUG.js +0 -1
  252. package/public/chunk-KSIUXDRS.js +0 -1
  253. package/public/chunk-KZATMDCZ.js +0 -6
  254. package/public/chunk-L3MK74M5.js +0 -1
  255. package/public/chunk-M2ME37TX.js +0 -8
  256. package/public/chunk-M3VCR6YB.js +0 -1
  257. package/public/chunk-M5AJDIBQ.js +0 -1
  258. package/public/chunk-MK7X7MS5.js +0 -1
  259. package/public/chunk-NBOHFRJZ.js +0 -1
  260. package/public/chunk-NHZHWKSG.js +0 -1
  261. package/public/chunk-NQVE3PCO.js +0 -1
  262. package/public/chunk-NW6AFAD7.js +0 -1
  263. package/public/chunk-NWWJ57YP.js +0 -1
  264. package/public/chunk-NZNNTHFQ.js +0 -1
  265. package/public/chunk-ORPWYWCL.js +0 -5
  266. package/public/chunk-QGKMS5A5.js +0 -1
  267. package/public/chunk-QHPDGSZ6.js +0 -1
  268. package/public/chunk-QOGRNTPH.js +0 -1
  269. package/public/chunk-QXKNQTUO.js +0 -1
  270. package/public/chunk-ROX65GNZ.js +0 -23
  271. package/public/chunk-RTYW4L3V.js +0 -1
  272. package/public/chunk-SQRHRHFP.js +0 -20
  273. package/public/chunk-T7JTTE4M.js +0 -1
  274. package/public/chunk-T7R6ZVT6.js +0 -1
  275. package/public/chunk-TCSXGQNF.js +0 -1
  276. package/public/chunk-THICF3SZ.js +0 -1
  277. package/public/chunk-TUWXLY3X.js +0 -1
  278. package/public/chunk-TXOB7R5K.js +0 -7
  279. package/public/chunk-U5ZKGWCF.js +0 -1
  280. package/public/chunk-UG5DK2RQ.js +0 -2
  281. package/public/chunk-UYFK7HVI.js +0 -1
  282. package/public/chunk-UZOK2K35.js +0 -1
  283. package/public/chunk-VDCXEJXR.js +0 -1
  284. package/public/chunk-VEBWYZYZ.js +0 -1
  285. package/public/chunk-VNARIZ6E.js +0 -1
  286. package/public/chunk-VP4MXPRG.js +0 -1
  287. package/public/chunk-VPJTE4TI.js +0 -1
  288. package/public/chunk-VPKOFODJ.js +0 -1
  289. package/public/chunk-WHJOLAED.js +0 -1
  290. package/public/chunk-WHJSVGC7.js +0 -1
  291. package/public/chunk-WQJUPQJT.js +0 -1
  292. package/public/chunk-XMYXVAEK.js +0 -1
  293. package/public/chunk-XO7XB4PL.js +0 -1
  294. package/public/chunk-XTVTI5YA.js +0 -5
  295. package/public/chunk-YSQSVKZB.js +0 -32
  296. package/public/chunk-Z5GB7FXV.js +0 -1
  297. package/public/chunk-ZT23DWNL.js +0 -1
  298. package/public/main-CNETRB3V.js +0 -1
  299. package/public/media/01-RQ3S2L53.png +0 -0
  300. package/public/media/02-VNCG2I2A.png +0 -0
  301. package/public/media/03-HI42L4ZG.png +0 -0
  302. package/public/media/04-FJLL55LZ.png +0 -0
  303. package/public/media/05-V3EO6SPT.png +0 -0
  304. package/public/media/06-EOJZCQZN.png +0 -0
  305. package/public/media/07-KMKB5PBD.png +0 -0
  306. package/public/media/08-UQJRF6B2.png +0 -0
  307. package/public/media/09-2DJQFRHH.png +0 -0
  308. package/public/media/arrow_left-CQT7FZM7.svg +0 -4
  309. package/public/media/arrow_right-SBUDRR2G.svg +0 -4
  310. package/public/media/fa-brands-400-6PJPV6JM.woff2 +0 -0
  311. package/public/media/fa-regular-400-OHB6J4OK.woff2 +0 -0
  312. package/public/media/fa-solid-900-ABTK6BNK.woff2 +0 -0
  313. package/public/polyfills-C6JHVXJJ.js +0 -2
  314. package/public/scripts-6GVLYD7F.js +0 -62
  315. package/public/styles-EG5MFQEM.css +0 -1
  316. /package/public/assets/{bootstrap-4 → bootstrap-5}/cssframework/assets.json +0 -0
package/CHANGELOG.md CHANGED
@@ -2,14 +2,238 @@
2
2
 
3
3
  All notable changes to `homebridge-config-ui-x` will be documented in this file. This project tries to adhere to [Semantic Versioning](http://semver.org/).
4
4
 
5
- ## BETA
5
+ ## v5.0.0 (Unreleased)
6
6
 
7
7
  ### ⚠️ Breaking Changes
8
8
 
9
- - This version of the Homebridge UI will drop support for:
10
- - Node.js `v16` and earlier, so please update to `v18` or `v20` or `v22` - [more info on updating](https://github.com/homebridge/homebridge/wiki/How-To-Update-Node.js)
11
- - Raspberry Pi devices running on the `armv6` architecture (like the Pi 1 and Pi Zero) - please update your hardware
12
- - Instances using `pnpm` as the package manager - consider updating your Homebridge instance to use npm instead - [more info on updating](https://github.com/homebridge/homebridge-apt-pkg/blob/latest/README.md#using-apt)
9
+ - This version of the Homebridge UI:
10
+ - Is compatible with Homebridge `v1` and `v2-beta`
11
+ - Drops support for Node.js `v18` and earlier, so please update to `v20` or `v22` - [more info on updating](https://github.com/homebridge/homebridge/wiki/How-To-Update-Node.js)
12
+ - Drops support for Raspberry Pi devices running on the `armv6` architecture (like the Pi 1 and Pi Zero) - please update your hardware
13
+ - Drops support for instances using `pnpm` as the package manager - consider updating your Homebridge instance to use npm instead - [more info on updating](https://github.com/homebridge/homebridge-apt-pkg/blob/latest/README.md#using-apt)
14
+
15
+ ### UI Changes
16
+
17
+ - updates to the `fi.json` language file (#2253) (@l1500s)
18
+ - update default dashboard layout
19
+ - add support for dark mode switching with custom plugin uis (@NorthernMan54)
20
+
21
+ ### Other Changes
22
+
23
+ - retire use of `pnpm` and code references
24
+ - bump the default node version from 20 to 22
25
+ - make terminal enabled by default on new macOS hb-service installs
26
+ - update `fastify` and `nestjs` dependencies
27
+ - remove `log.tail` and `log.systemd` ui settings
28
+ - set service mode as default, remove standalone
29
+ - Initial support for NodeJS 24 in preparation for LTS in Fall of 2025 (#2451) (@NorthernMan54)
30
+
31
+ ### Homebridge Dependencies
32
+
33
+ - `@homebridge/hap-client` @ `v3.0.0-beta`
34
+ - `@homebridge/node-pty-prebuilt-multiarch` @ `v0.13.0-beta`
35
+ - `@homebridge/plugin-ui-utils` @ `v2.1.0`
36
+
37
+ ## v4.77.0 (Unreleased)
38
+
39
+ ### UI Changes
40
+
41
+ - auto restart after version change of hb or ui
42
+ - more items from ui advanced settings to main settings page
43
+ - redesigned setup wizard page
44
+
45
+ ### Homebridge Dependencies
46
+
47
+ - `@homebridge/hap-client` @ `v2.2.0`
48
+ - `@homebridge/node-pty-prebuilt-multiarch` @ `v0.11.14`
49
+ - `@homebridge/plugin-ui-utils` @ `v2.1.0`
50
+
51
+ ## v4.76.0 (2025-06-07)
52
+
53
+ ### UI Changes
54
+
55
+ - updates to the `th.json` language file (#2443) (@tomzt)
56
+ - improvements to various accessory tiles and modals
57
+ - fix occasional issue in backup/restore, revert recent change
58
+ - improvements to plugin config validation
59
+ - use `ajv-keywords` to allow validation of unique properties in arrays
60
+ - fix form field error state font colour (make it red)
61
+ - redesigned login page
62
+ - improve wallpaper selection with new modal to upload a file
63
+ - refactor HBv2 and UIv5 readiness modals
64
+ - move backup settings from ui advanced settings to backup/restore modal
65
+
66
+ ### Other Changes
67
+
68
+ - upgrade to angular `v20`
69
+ - bump `plugin-ui-utils` for new theme method
70
+
71
+ ### Homebridge Dependencies
72
+
73
+ - `@homebridge/hap-client` @ `v2.2.0`
74
+ - `@homebridge/node-pty-prebuilt-multiarch` @ `v0.11.14`
75
+ - `@homebridge/plugin-ui-utils` @ `v2.1.0`
76
+
77
+ ## v4.75.0 (2025-05-25)
78
+
79
+ ### UI Changes
80
+
81
+ - updates to the uk.json language file (#2436) (@xrust83)
82
+ - updates to the th.json language file (#2437) (@tomzt)
83
+ - updates to the `manual_update_command` language string
84
+ - show restart modal after installing an already configured plugin
85
+ - add long click modal for lock mechanism + management
86
+ - improvements to heater/humidifier/thermostat icon+modal
87
+ - improvements to battery icon
88
+
89
+ ### Homebridge Dependencies
90
+
91
+ - `@homebridge/hap-client` @ `v2.1.0`
92
+ - `@homebridge/node-pty-prebuilt-multiarch` @ `v0.11.14`
93
+ - `@homebridge/plugin-ui-utils` @ `v2.0.2`
94
+
95
+ ## v4.74.0 (2025-05-18)
96
+
97
+ ### UI Changes
98
+
99
+ - improve plugin manage version ui (#2424) (@apexskier)
100
+ - capitalise time zone in system info widget
101
+ - add architecture to system info widget
102
+ - add checks on system for updating to ui v5
103
+ - added screen for ui v5 readiness check
104
+ - add color temperature to lightbulb screen (@justjam2013)
105
+ - add temperature units to heatercooler (@justjam2013)
106
+ - add valve control modal (@justjam2013)
107
+ - update speaker tile + control modal (@justjam2013)
108
+
109
+ ### Homebridge Dependencies
110
+
111
+ - `@homebridge/hap-client` @ `v2.1.0`
112
+ - `@homebridge/node-pty-prebuilt-multiarch` @ `v0.11.14`
113
+ - `@homebridge/plugin-ui-utils` @ `v2.0.2`
114
+
115
+ ## v4.73.0 (2025-04-19)
116
+
117
+ ### UI Changes
118
+
119
+ - updates to the `en.json` language file (#2389) (@HenryGelderbloem)
120
+ - updates to the `de.json` language file (#2403) (@Staubgeborener)
121
+ - updates to the `de.json` language file (#2404) (@Staubgeborener)
122
+ - improve icons in bridges widget
123
+ - fix individual accessory deselect on remove modal
124
+ - improve accessory icons for CO and CO2 sensors
125
+ - make secondary blue colour in light mode more distinct
126
+
127
+ ### Other Changes
128
+
129
+ - fix do not include `--omit=dev` flag in `pnpm` commands
130
+ - add lint job for checking all pull requests
131
+ - allow package mode users to disable the terminal
132
+ - various copilot improvements for file paths
133
+ - updated dependencies
134
+ - remove `ubuntu-20.04` from actions as unsupported
135
+
136
+ ### Homebridge Dependencies
137
+
138
+ - `@homebridge/hap-client` @ `v2.1.0`
139
+ - `@homebridge/node-pty-prebuilt-multiarch` @ `v0.11.14`
140
+ - `@homebridge/plugin-ui-utils` @ `v2.0.2`
141
+
142
+ ## v4.72.0 (2025-03-22)
143
+
144
+ ### UI Changes
145
+
146
+ - updates to the `th.json` language file (#2365) (@tomzt)
147
+ - updates to the `es.json` language file (#2376) (@kyrokode)
148
+ - updates to the `id.json` language file (#2377) (@dwaan)
149
+ - updates to the `ru.json` language file (#2384) (@SeregaTarasov)
150
+ - fixed issue with UI config incorrectly reporting as invalid
151
+ - don't allow adding multiple config blocks for singular plugins
152
+
153
+ ### Other Changes
154
+
155
+ - updated dependencies
156
+
157
+ ### Homebridge Dependencies
158
+
159
+ - `@homebridge/hap-client` @ `v2.0.6`
160
+ - `@homebridge/node-pty-prebuilt-multiarch` @ `v0.11.14`
161
+ - `@homebridge/plugin-ui-utils` @ `v2.0.1`
162
+
163
+ ## v4.71.2 (2025-02-23)
164
+
165
+ ### Other Changes
166
+
167
+ - fix alpha/beta update checks for bundled ui (#2363) (@dnicolson)
168
+ - fix ui config validation when default theme selected
169
+
170
+ ### Homebridge Dependencies
171
+
172
+ - `@homebridge/hap-client` @ `v2.0.5`
173
+ - `@homebridge/node-pty-prebuilt-multiarch` @ `v0.11.14`
174
+ - `@homebridge/plugin-ui-utils` @ `v2.0.1`
175
+
176
+ ## v4.71.1 (2025-02-22)
177
+
178
+ ### UI Changes
179
+
180
+ - updates to the `uk.json` language file (#2352) (@xrust83)
181
+ - add missing add section button to plugin config screens
182
+ - improve active/stale bridge detection
183
+ - fix error state on plugin search input
184
+
185
+ ### Other Changes
186
+
187
+ - re-add `reflect-metadata` to `dependencies` in `package.json`
188
+
189
+ ### Homebridge Dependencies
190
+
191
+ - `@homebridge/hap-client` @ `v2.0.5`
192
+ - `@homebridge/node-pty-prebuilt-multiarch` @ `v0.11.14`
193
+ - `@homebridge/plugin-ui-utils` @ `v2.0.1`
194
+
195
+ ## v4.71.0 (2025-02-09)
196
+
197
+ ### UI Changes
198
+
199
+ - updates to the `uk.json` language file (#2348) (@xrust83)
200
+ - allow docker users to disable the UI terminal via env
201
+ - set `HOMEBRIDGE_CONFIG_UI_TERMINAL_ENABLED=0`
202
+ - note that this has not been extensively tested
203
+ - fix opening control accessory modal on mobile devices
204
+
205
+ ### Other Changes
206
+
207
+ - update `@ng-formworks/` dependencies
208
+
209
+ ### Homebridge Dependencies
210
+
211
+ - `@homebridge/hap-client` @ `v2.0.5`
212
+ - `@homebridge/node-pty-prebuilt-multiarch` @ `v0.11.14`
213
+ - `@homebridge/plugin-ui-utils` @ `v2.0.1`
214
+
215
+ ## v4.70.0 (2025-02-08)
216
+
217
+ ### UI Changes
218
+
219
+ - updates to the `th.json` language file (#2338) (@tomzt)
220
+ - improvements to long-click accessory control
221
+ - also fixes accessory and room rearranging on the accessories page
222
+ - accessory and status page layout will now be locked by default on each visit
223
+ - add message for docker/synology users in node update info modal
224
+
225
+ ### Other Changes
226
+
227
+ - append `--omit=dev` to `npm i` commands
228
+ - clean up `npm` cache before any install/uninstall
229
+
230
+ ### Homebridge Dependencies
231
+
232
+ - `@homebridge/hap-client` @ `v2.0.5`
233
+ - `@homebridge/node-pty-prebuilt-multiarch` @ `v0.11.14`
234
+ - `@homebridge/plugin-ui-utils` @ `v2.0.1`
235
+
236
+ ## v4.69.0 (2025-01-25)
13
237
 
14
238
  ### ⚠️ Plugin Config Validation
15
239
 
@@ -23,48 +247,221 @@ This version of Homebridge UI adds validation to plugin config screens. This doe
23
247
 
24
248
  If you have a plugin which can be configured multiple times, then an icon will be shown on each configuration block.
25
249
 
26
- For custom UIs developed using the `@homebridge/plugin-ui-utils` package, the `Save` button will be enabled at all times by default.
27
- In `@homebridge/plugin-ui-utils@v2.0.0`, two new methods have been added which allow you to disable and enable the `Save` button:
28
- - `homebridge.disableSaveButton()`
29
- - `homebridge.enableSaveButton()`
30
-
31
- When the button is enabled, the validation icon will be visible showing the status of the configuration. When the button is disabled, the validation icon will be hidden.
32
- If your plugin implements these methods, but the user is on an older version of the Homebridge UI, then the methods will have no effect, but not throw an error. The `Save` button will always be enabled.
33
-
34
250
  Plugin developers:
35
251
 
36
- - Please do not rely on this validation and assume that a user's configuration will be valid
37
- - All plugins should still validate a configuration when the plugin is started
252
+ - Please do not rely on this validation and assume that a user's configuration will be valid: you should still validate the user's config on plugin startup
38
253
  - Remember that some users do not use the UI at all, and other users may prefer to configure using raw `JSON` rather than config screens
254
+ - For custom UI screens, the validation icon will be hidden when the save button is disabled (using `homebridge.disableSaveButton()` from `@homebridge/plugin-ui-utils`)
39
255
  - Please report any cases where the validation is not working as expected
40
256
 
41
257
  ### UI Changes
42
258
 
43
- - updates to the `de.json` language file (#2249) (@Staubgeborener)
44
- - updates to the `ko.json` language file (#2251) (@alphaorderly)
45
- - implement and allow switching to scoped plugins
259
+ - updates to the `uk.json` language file (#2312) (@xrust83)
260
+ - updates to the `cs.json` language file (#2332) (@DavidHuljak)
261
+ - fix typos in hb/ui settings schemas (#2317) (@dnicolson)
262
+ - fix margins in update plugin modal
46
263
  - add plugin config validation functionality
47
264
  - refactor status and child bridge widgets
48
- - update default dashboard layout
49
- - logo and `homebridge` text should link to status page
265
+ - the existing 'status' widget has been renamed to 'update info' widget
266
+ - the existing 'child bridges' widget has been renamed to 'bridges' widget
267
+ - the homebridge status (from the old status widget) is now shown as a bridge in the new bridges widget
268
+ - node update information has been added to the new update info widget
269
+ - a widget option has been added to hide node update information: this may be useful for docker/synology users
270
+ - homebridge and ui version information has been moved from the footer to the new update info widget
271
+ - add 'homebridge name' setting to settings page
272
+ - migrate bootstrap from `v4` to `v5`
273
+ - fix plugin config/bridge screens for certain plugins
274
+ - add lighting mode option for terminal and log widgets
275
+ - only available when the UI is already in light mode
276
+ - fix long press on mobile devices
277
+ - control fan rotation direction from the ui
50
278
 
51
279
  ### Other Changes
52
280
 
53
- - update screenshots (for readme file)
54
- - retire use of `pnpm` and code references
55
- - enable strict config validation for the UI
56
- - bump the default node version from 20 to 22
57
- - make terminal enabled by default on new macOS hb-service installs
58
- - update node pty beta `v0.12.0-beta`
59
- - update angular from `v18` to `v19`
60
- - update `@homebridge/plugin-ui-utils` to `v2.0.0`
281
+ - improvements to GH actions and build processes (@NorthernMan54)
282
+
283
+ ### Homebridge Dependencies
284
+
285
+ - `@homebridge/hap-client` @ `v2.0.5`
286
+ - `@homebridge/node-pty-prebuilt-multiarch` @ `v0.11.14`
287
+ - `@homebridge/plugin-ui-utils` @ `v2.0.1`
288
+
289
+ ## v4.68.0 (2025-01-08)
290
+
291
+ Happy 2025 to all our users! 🎉
292
+
293
+ ### UI Changes
294
+
295
+ - updates to the `cs.json` language file (#2311) (@DavidHuljak)
296
+ - improved messaging on plugin child bridge modal
297
+ - further improvements to plugin search
298
+ - implement and allow switching to scoped plugins
299
+ - merge plugin info and verified modals
300
+ - condensing plugin card into title + three lines of description
301
+ - consistent formatting of child bridge names across the ui
302
+ - general improvements across the ui
303
+ - status page:
304
+ - individual widget setting form design made consistent with other forms
305
+ - added pairing status to qr code widget
306
+ - plugins page:
307
+ - visual improvements to plugin child bridge settings modal
308
+ - allow plugins to disable/enable the save button in custom uis (see below section)
309
+ - allow configuring [multiple accessories on the same child bridge](https://github.com/homebridge/homebridge/wiki/Child-Bridges#multiple-accessories-on-the-same-child-bridge) via the ui
310
+ - accessories page:
311
+ - changed accessory spanner icon to info icon (more descriptive)
312
+ - accessory info modal redesigned and provides more info where possible like the accessory UUID (including a link to remove from the cache)
313
+ - added support modal with some info about rooms and accessories (visible on desktop)
314
+ - json config page:
315
+ - redesigned restore modal to be more consistent with other modals
316
+ - settings page:
317
+ - chevron icons replaced with arrow-right icons
318
+ - removed restore modal from settings page and is accessible from the backup modal
319
+ - backup modal redesigned to be more consistent with other modals
320
+ - added new display -> menu mode setting which allows keeping the side menu from expanding out on desktop
321
+ - redesigned and improved accessories and bridges sections and modals
322
+ - users page:
323
+ - add user and edit user modals redesigned to be more consistent with other modals
324
+ - user card updated with icon buttons for edit/delete rather than text buttons
325
+
326
+ ### Plugin Custom UI Changes
327
+
328
+ The UI has recently been updated with `@homebridge/plugin-ui-utils` @ `v2.0.0`, which includes a new feature to allow plugin developers to dynamically enable and disable the `Save` button in the custom UI modal.
329
+ Two new methods have been added for this purpose:
330
+
331
+ - `homebridge.disableSaveButton()`
332
+ - `homebridge.enableSaveButton()`
333
+
334
+ Developers: to maintain compatibility with older versions of the Homebridge UI, it is recommended to check if the methods exist before calling them in your custom UIs:
335
+
336
+ - `homebridge.disableSaveButton?.()`
337
+ - `homebridge.enableSaveButton?.()`
338
+
339
+ ### Other Changes
340
+
341
+ - auto-fix ui theme setting property if existing value is not valid
342
+ - do not allow `armv6l` users to update to UI `v5`
343
+
344
+ ### Homebridge Dependencies
345
+
346
+ - `@homebridge/hap-client` @ `v2.0.5`
347
+ - `@homebridge/node-pty-prebuilt-multiarch` @ `v0.11.14`
348
+ - `@homebridge/plugin-ui-utils` @ `v2.0.0`
349
+
350
+ ## v4.67.0 (2024-12-28)
351
+
352
+ ### UI Changes
353
+
354
+ - add explanation of deleting child bridges when un-toggling
355
+ - add filtering to search to improve results (#2286) (@justjam2013) (fixes [#2266](https://github.com/homebridge/homebridge-config-ui-x/issues/2266))
356
+ - fix spacing issue with hidden accessories
357
+ - make margins consistent of un/lock buttons on status screen
358
+ - fix ui not restarting properly after updating the ui
359
+ - use broom icon in remove bridge accessories (to match similar modal from plugin menu)
360
+
361
+ ### Other Changes
362
+
363
+ - improve and finish up previous angular migration
364
+ - update `hap-client` + `plugin-ui-utils` hb dependencies
365
+ - update dependencies
366
+ - improve lint sorting of imports
61
367
 
62
368
  ### Homebridge Dependencies
63
369
 
64
- - `@homebridge/hap-client` @ `v2.0.5-beta`
65
- - `@homebridge/node-pty-prebuilt-multiarch` @ `v0.12.0-beta`
370
+ - `@homebridge/hap-client` @ `v2.0.5`
371
+ - `@homebridge/node-pty-prebuilt-multiarch` @ `v0.11.14`
66
372
  - `@homebridge/plugin-ui-utils` @ `v2.0.0`
67
373
 
374
+ ## v4.66.0 (2024-12-25)
375
+
376
+ ### UI Changes
377
+
378
+ - fix verified plugins link in support module (fixes [#2295](https://github.com/homebridge/homebridge-config-ui-x/issues/2295))
379
+ - add missing modal footer `<div>`s to accessory control modals
380
+ - fix radio button groups in certain accessory control modals (fixes [#2294](https://github.com/homebridge/homebridge-config-ui-x/issues/2294))
381
+
382
+ ### Other Changes
383
+
384
+ - format svg files nicely as part of lint
385
+ - upgrade angular from `v18` to `v19`
386
+ - delete unpaired bridges when toggling bridges off (#2284) (@justjam2013) (fixes [#2257](https://github.com/homebridge/homebridge-config-ui-x/issues/2257))
387
+
388
+ ### Homebridge Dependencies
389
+
390
+ - `@homebridge/hap-client` @ `v1.10.2`
391
+ - `@homebridge/node-pty-prebuilt-multiarch` @ `v0.11.14`
392
+ - `@homebridge/plugin-ui-utils` @ `v1.0.3`
393
+
394
+ ## v4.65.2 (2024-12-15)
395
+
396
+ ### UI Changes
397
+
398
+ - Rollback recent changes to plugin search (#2289) (@justjam2013)
399
+
400
+ ### Homebridge Dependencies
401
+
402
+ - `@homebridge/hap-client` @ `v1.10.2`
403
+ - `@homebridge/node-pty-prebuilt-multiarch` @ `v0.11.14`
404
+ - `@homebridge/plugin-ui-utils` @ `v1.0.3`
405
+
406
+ ## v4.65.1 (2024-12-13)
407
+
408
+ ### UI Changes
409
+
410
+ - updates to the `th.json` language file (#2271) (@tomzt)
411
+ - updates to the `de.json` language file (#2250) (@Staubgeborener)
412
+ - Remove unrelated plugins from search (#2272) (@justjam2013)
413
+
414
+ ### Other Changes
415
+
416
+ - fix types + update dependencies
417
+ - fix attach artifacts to release workflow
418
+
419
+ ### Homebridge Dependencies
420
+
421
+ - `@homebridge/hap-client` @ `v1.10.2`
422
+ - `@homebridge/node-pty-prebuilt-multiarch` @ `v0.11.14`
423
+ - `@homebridge/plugin-ui-utils` @ `v1.0.3`
424
+
425
+ ## v4.65.0 (2024-12-08)
426
+
427
+ ### UI Changes
428
+
429
+ - updates to the `uk.json` language file (#2262) (@xrust83)
430
+ - logo and `homebridge` text should link to status page
431
+ - Add icons for shower head and water faucet valve types (#2267) (@justjam2013)
432
+ - Removed conditional for displaying search exit component (#2269) (@justjam2013)
433
+
434
+ ### Other Changes
435
+
436
+ - Fix typo in console message (#2264) (@markholland)
437
+ - updated dependencies
438
+
439
+ ### Homebridge Dependencies
440
+
441
+ - `@homebridge/hap-client` @ `v1.10.2`
442
+ - `@homebridge/node-pty-prebuilt-multiarch` @ `v0.11.14`
443
+ - `@homebridge/plugin-ui-utils` @ `v1.0.3`
444
+
445
+ ## v4.64.0 (2024-11-30)
446
+
447
+ ### UI Changes
448
+
449
+ - updates to the `de.json` language file (#2249) (@Staubgeborener)
450
+ - updates to the `ko.json` language file (#2251) (@alphaorderly)
451
+ - updates to the `uk.json` language file (#2255) (@xrust83)
452
+ - add reload menu item when using as a PWA
453
+
454
+ ### Other Changes
455
+
456
+ - dependency updates
457
+ - fix npm search max character limit
458
+
459
+ ### Homebridge Dependencies
460
+
461
+ - `@homebridge/hap-client` @ `v1.10.2`
462
+ - `@homebridge/node-pty-prebuilt-multiarch` @ `v0.11.14`
463
+ - `@homebridge/plugin-ui-utils` @ `v1.0.3`
464
+
68
465
  ## v4.63.0 (2024-11-17)
69
466
 
70
467
  ### UI Changes
@@ -563,7 +960,7 @@ Merry Christmas and Happy Holidays to all our users celebrating later this month
563
960
  - Various changes to the plugin cards
564
961
  - Plugin settings now accessible from the plugin card menu, called 'Config'
565
962
  - Icons: plugin devs can request an icon for their verified plugin at:
566
- - https://github.com/homebridge/verified/issues/new/choose
963
+ - https://github.com/homebridge/plugins/issues/new/choose
567
964
 
568
965
  ### UI Changes
569
966
 
package/CONTRIBUTING.md CHANGED
@@ -2,11 +2,12 @@
2
2
 
3
3
  Pull requests are welcome from everyone.
4
4
 
5
- This project is written in [TypeScript](https://www.typescriptlang.org/) and uses [Nest.js](https://nestjs.com/) for the server and [Angular](https://angular.io/) for the client UI.
5
+ This project is written in [TypeScript](https://www.typescriptlang.org/) and uses [Nest.js](https://nestjs.com/) for the server and [Angular](https://angular.dev/) for the client UI.
6
6
 
7
7
  ## Getting Setup
8
8
 
9
- _Note: The Raspberry Pi and similar boards do not meet the memory or CPU requirements required to set up the development environment._
9
+ > [!NOTE]
10
+ > The Raspberry Pi and similar boards do not meet the memory or CPU requirements required to set up the development environment.
10
11
 
11
12
  First, remove any globally installed versions of `homebridge-config-ui-x` you may have installed on your development machine:
12
13
 
@@ -38,7 +39,7 @@ Symlink your development directory to global:
38
39
  npm link
39
40
  ```
40
41
 
41
- If you don't have homebridge installed already run:
42
+ If you don't have Homebridge installed already run:
42
43
 
43
44
  ```sh
44
45
  npm install -g homebridge
@@ -52,7 +53,7 @@ This will start the Angular development server on port `4200` and a standalone s
52
53
  npm run watch
53
54
  ```
54
55
 
55
- You should now be able to navigate to `https://localhost:4200` in your browser which will connect to your `homebridge` instance running on port `8581`. The UI will automatically reload whenever you make changes to the code.
56
+ You should now be able to navigate to `https://localhost:4200` in your browser which will connect to your Homebridge instance running on port `8581`. The UI will automatically reload whenever you make changes to the code.
56
57
 
57
58
  ## Running Tests
58
59
 
package/LICENSE CHANGED
@@ -1,6 +1,6 @@
1
1
  MIT License
2
2
 
3
- Copyright (c) 2023-2024 Homebridge
3
+ Copyright (c) 2023-2025 Homebridge
4
4
  Copyright (c) 2017-2023 oznu <dev@oz.nu>
5
5
  Copyright (c) 2017 Michael Kellsy
6
6