homebridge-config-ui-x 5.0.0-beta.11 → 5.0.0-beta.111

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 (325) hide show
  1. package/CHANGELOG.md +526 -31
  2. package/CONTRIBUTING.md +5 -4
  3. package/LICENSE +1 -1
  4. package/config.schema.json +55 -252
  5. package/dist/bin/hb-service.d.ts +2 -2
  6. package/dist/bin/hb-service.js +52 -51
  7. package/dist/bin/hb-service.js.map +1 -1
  8. package/dist/bin/platforms/darwin.js +3 -11
  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 +35 -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 +50 -11
  22. package/dist/core/config/config.service.js +59 -20
  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 +3 -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.d.ts +1 -0
  37. package/dist/modules/backup/backup.controller.js +18 -7
  38. package/dist/modules/backup/backup.controller.js.map +1 -1
  39. package/dist/modules/backup/backup.service.d.ts +1 -0
  40. package/dist/modules/backup/backup.service.js +37 -83
  41. package/dist/modules/backup/backup.service.js.map +1 -1
  42. package/dist/modules/child-bridges/child-bridges.service.js +0 -7
  43. package/dist/modules/child-bridges/child-bridges.service.js.map +1 -1
  44. package/dist/modules/config-editor/config-editor.controller.d.ts +7 -1
  45. package/dist/modules/config-editor/config-editor.controller.js +36 -8
  46. package/dist/modules/config-editor/config-editor.controller.js.map +1 -1
  47. package/dist/modules/config-editor/config-editor.service.d.ts +5 -1
  48. package/dist/modules/config-editor/config-editor.service.js +133 -69
  49. package/dist/modules/config-editor/config-editor.service.js.map +1 -1
  50. package/dist/modules/custom-plugins/plugins-settings-ui/plugins-settings-ui.service.d.ts +1 -1
  51. package/dist/modules/custom-plugins/plugins-settings-ui/plugins-settings-ui.service.js +13 -11
  52. package/dist/modules/custom-plugins/plugins-settings-ui/plugins-settings-ui.service.js.map +1 -1
  53. package/dist/modules/log/log.gateway.d.ts +2 -1
  54. package/dist/modules/log/log.gateway.js.map +1 -1
  55. package/dist/modules/log/log.service.js +3 -3
  56. package/dist/modules/log/log.service.js.map +1 -1
  57. package/dist/modules/platform-tools/docker/docker.controller.js +3 -3
  58. package/dist/modules/platform-tools/docker/docker.controller.js.map +1 -1
  59. package/dist/modules/platform-tools/docker/docker.service.js +1 -1
  60. package/dist/modules/platform-tools/docker/docker.service.js.map +1 -1
  61. package/dist/modules/platform-tools/hb-service/hb-service.controller.js +3 -3
  62. package/dist/modules/platform-tools/hb-service/hb-service.controller.js.map +1 -1
  63. package/dist/modules/platform-tools/hb-service/hb-service.service.js +6 -6
  64. package/dist/modules/platform-tools/hb-service/hb-service.service.js.map +1 -1
  65. package/dist/modules/platform-tools/linux/linux.controller.js +2 -2
  66. package/dist/modules/platform-tools/linux/linux.controller.js.map +1 -1
  67. package/dist/modules/platform-tools/linux/linux.service.js +2 -2
  68. package/dist/modules/platform-tools/linux/linux.service.js.map +1 -1
  69. package/dist/modules/platform-tools/terminal/terminal.gateway.d.ts +2 -1
  70. package/dist/modules/platform-tools/terminal/terminal.gateway.js.map +1 -1
  71. package/dist/modules/platform-tools/terminal/terminal.service.js +2 -2
  72. package/dist/modules/platform-tools/terminal/terminal.service.js.map +1 -1
  73. package/dist/modules/plugins/plugins.controller.d.ts +2 -0
  74. package/dist/modules/plugins/plugins.controller.js +5 -5
  75. package/dist/modules/plugins/plugins.controller.js.map +1 -1
  76. package/dist/modules/plugins/plugins.service.d.ts +10 -1
  77. package/dist/modules/plugins/plugins.service.js +287 -168
  78. package/dist/modules/plugins/plugins.service.js.map +1 -1
  79. package/dist/modules/server/server.controller.d.ts +33 -3
  80. package/dist/modules/server/server.controller.js +162 -20
  81. package/dist/modules/server/server.controller.js.map +1 -1
  82. package/dist/modules/server/server.service.d.ts +35 -6
  83. package/dist/modules/server/server.service.js +288 -66
  84. package/dist/modules/server/server.service.js.map +1 -1
  85. package/dist/modules/status/status.controller.d.ts +0 -1
  86. package/dist/modules/status/status.controller.js +3 -4
  87. package/dist/modules/status/status.controller.js.map +1 -1
  88. package/dist/modules/status/status.gateway.d.ts +1 -1
  89. package/dist/modules/status/status.service.d.ts +1 -1
  90. package/dist/modules/status/status.service.js +34 -41
  91. package/dist/modules/status/status.service.js.map +1 -1
  92. package/dist/modules/users/users.controller.js +7 -7
  93. package/dist/modules/users/users.controller.js.map +1 -1
  94. package/dist/self-check.js +6 -6
  95. package/dist/self-check.js.map +1 -1
  96. package/package.json +50 -43
  97. package/public/3rdpartylicenses.txt +246 -136
  98. package/public/assets/hap-icons/air-purifier.svg +50 -0
  99. package/public/assets/hap-icons/air-quality-sensor.svg +25 -0
  100. package/public/assets/hap-icons/carbon-dioxide-sensor.svg +72 -0
  101. package/public/assets/hap-icons/carbon-monoxide-sensor.svg +72 -0
  102. package/public/assets/hap-icons/contact-sensor-closed.svg +36 -0
  103. package/public/assets/hap-icons/contact-sensor-open.svg +81 -0
  104. package/public/assets/hap-icons/door-closed.svg +32 -2
  105. package/public/assets/hap-icons/door-open.svg +48 -2
  106. package/public/assets/hap-icons/fan-off.svg +24 -13
  107. package/public/assets/hap-icons/fan-on.svg +24 -13
  108. package/public/assets/hap-icons/filter-maintenance.svg +26 -0
  109. package/public/assets/hap-icons/garage-door.svg +25 -0
  110. package/public/assets/hap-icons/humidity-sensor.svg +25 -0
  111. package/public/assets/hap-icons/irrigation-system.svg +47 -18
  112. package/public/assets/hap-icons/leak-sensor.svg +53 -0
  113. package/public/assets/hap-icons/light-bulb.svg +25 -0
  114. package/public/assets/hap-icons/light-sensor.svg +50 -0
  115. package/public/assets/hap-icons/lock-locked.svg +24 -13
  116. package/public/assets/hap-icons/lock-unlocked.svg +24 -13
  117. package/public/assets/hap-icons/motion-sensor.svg +101 -0
  118. package/public/assets/hap-icons/occupancy-sensor.svg +98 -0
  119. package/public/assets/hap-icons/outlet.svg +24 -13
  120. package/public/assets/hap-icons/security-system-active.svg +103 -0
  121. package/public/assets/hap-icons/security-system-off.svg +69 -0
  122. package/public/assets/hap-icons/security-system-triggered.svg +103 -0
  123. package/public/assets/hap-icons/smoke-sensor.svg +59 -0
  124. package/public/assets/hap-icons/speaker.svg +29 -13
  125. package/public/assets/hap-icons/stateless-programmable-switch.svg +52 -0
  126. package/public/assets/hap-icons/switch.svg +24 -13
  127. package/public/assets/hap-icons/television.svg +15 -4
  128. package/public/assets/hap-icons/temperature.svg +24 -13
  129. package/public/assets/hap-icons/unknown.svg +24 -13
  130. package/public/assets/hap-icons/valve-faucet.svg +21 -0
  131. package/public/assets/hap-icons/valve-generic.svg +27 -16
  132. package/public/assets/hap-icons/valve-irrigation.svg +37 -21
  133. package/public/assets/hap-icons/valve-shower-head.svg +52 -0
  134. package/public/assets/hap-icons/window-closed.svg +85 -2
  135. package/public/assets/hap-icons/window-covering-closed.svg +49 -0
  136. package/public/assets/hap-icons/window-covering-open.svg +44 -0
  137. package/public/assets/hap-icons/window-open.svg +136 -2
  138. package/public/assets/homebridge-color-round.svg +36 -1
  139. package/public/assets/homebridge-logo.svg +11 -1
  140. package/public/assets/mask-icon.svg +5 -1
  141. package/public/assets/plugin-ui-utils/ui.js +3 -0
  142. package/public/assets/plugin-ui-utils/ui.js.map +1 -1
  143. package/public/chunk-2B6Z42D5.js +2 -0
  144. package/public/chunk-3KEVK4CU.js +1 -0
  145. package/public/{chunk-T5R3UG6Z.js → chunk-3TXUNOXT.js} +1 -1
  146. package/public/chunk-4G7W6MRL.js +1 -0
  147. package/public/chunk-4N7ZDOUO.js +1 -0
  148. package/public/chunk-5CIDMZGS.js +1 -0
  149. package/public/chunk-66VSEU25.js +5 -0
  150. package/public/chunk-7DSQ7XWE.js +1 -0
  151. package/public/{chunk-QE7DO6J3.js → chunk-7EQ4BJZB.js} +2 -2
  152. package/public/chunk-7GGXZ7OU.js +1 -0
  153. package/public/chunk-7QRMEOTO.js +8 -0
  154. package/public/chunk-7RKBTRXY.js +1 -0
  155. package/public/chunk-ABBL3RO7.js +1 -0
  156. package/public/chunk-BCMP25TC.js +1 -0
  157. package/public/chunk-BP5LQRNS.js +4 -0
  158. package/public/chunk-CF2ZN7LY.js +5 -0
  159. package/public/chunk-DSKSIOUV.js +1 -0
  160. package/public/chunk-EGCUYKRH.js +1 -0
  161. package/public/chunk-EL5XLLBH.js +1 -0
  162. package/public/chunk-EPA4YSLT.js +1 -0
  163. package/public/chunk-F3ERQJVG.js +1 -0
  164. package/public/{chunk-LM6S4A72.js → chunk-FFFA4Z4P.js} +1 -1
  165. package/public/chunk-FNE4UWIK.js +1 -0
  166. package/public/chunk-FXYQSGFB.js +1 -0
  167. package/public/{chunk-7EUQWCP5.js → chunk-GDFV4BMO.js} +2 -2
  168. package/public/chunk-GW2DVJRQ.js +1 -0
  169. package/public/chunk-HTQJEJW6.js +23 -0
  170. package/public/chunk-IN7NZAFJ.js +1 -0
  171. package/public/chunk-J6YDFLQQ.js +1 -0
  172. package/public/chunk-K6X6GPJI.js +1 -0
  173. package/public/chunk-KKNYWOLQ.js +20 -0
  174. package/public/chunk-L3KYADWL.js +1 -0
  175. package/public/chunk-LUNR4YXI.js +1 -0
  176. package/public/chunk-LXXELGX4.js +1 -0
  177. package/public/chunk-LZTR2JMZ.js +1 -0
  178. package/public/{chunk-JZZQRLNW.js → chunk-NGNQPAAK.js} +1 -1
  179. package/public/chunk-NH3ELE5E.js +4 -0
  180. package/public/chunk-OKTBHUEL.js +1 -0
  181. package/public/{chunk-5M6KOARX.js → chunk-ORZLF5HZ.js} +1 -1
  182. package/public/chunk-Q3UFAHWJ.js +1 -0
  183. package/public/{chunk-WNWWUCCZ.js → chunk-QDCKP2LU.js} +3 -3
  184. package/public/chunk-QEBH3NJ4.js +1 -0
  185. package/public/chunk-QTCNRXCY.js +29 -0
  186. package/public/chunk-R33U7ULB.js +1 -0
  187. package/public/chunk-RMY3PS3V.js +1 -0
  188. package/public/chunk-S5TTYLQD.js +1 -0
  189. package/public/chunk-SKZUTSHE.js +7 -0
  190. package/public/chunk-SRP6QX5M.js +2 -0
  191. package/public/chunk-SSMWAG33.js +1 -0
  192. package/public/chunk-T252YJXA.js +1 -0
  193. package/public/chunk-TFSYGCLN.js +1 -0
  194. package/public/chunk-TKTM3Z2T.js +3 -0
  195. package/public/chunk-TQNKRJOX.js +1 -0
  196. package/public/chunk-U3DAE6KH.js +1 -0
  197. package/public/chunk-UD6SVFW2.js +7 -0
  198. package/public/chunk-UO2HQVMO.js +1 -0
  199. package/public/{chunk-3RNRIJ74.js → chunk-UQYCFN3T.js} +11 -11
  200. package/public/chunk-V6SZXPWT.js +1 -0
  201. package/public/chunk-VGEV4FQW.js +1 -0
  202. package/public/{chunk-EA5J2VEJ.js → chunk-X2SHRXXY.js} +1 -1
  203. package/public/chunk-X7PVYZAE.js +1 -0
  204. package/public/{chunk-3TUBDO76.js → chunk-XBWIDIPO.js} +1 -1
  205. package/public/chunk-ZDJGHFIU.js +12 -0
  206. package/public/chunk-ZNACRWKA.js +1 -0
  207. package/public/chunk-ZVUGVJDR.js +1 -0
  208. package/public/index.html +2 -2
  209. package/public/main-YVALKUM3.js +1 -0
  210. package/public/media/fa-brands-400-Q3XCMWHQ.woff2 +0 -0
  211. package/public/media/{fa-brands-400-KOKGDU7E.ttf → fa-brands-400-R2XQZCET.ttf} +0 -0
  212. package/public/media/fa-regular-400-QSNYFYRT.woff2 +0 -0
  213. package/public/media/{fa-regular-400-IPMAEX5Y.ttf → fa-regular-400-XUOPSR7E.ttf} +0 -0
  214. package/public/media/fa-solid-900-5ZUYHGA7.woff2 +0 -0
  215. package/public/media/{fa-solid-900-SRFFQLRM.ttf → fa-solid-900-PJNKLK6W.ttf} +0 -0
  216. package/public/polyfills-WE4HA5DL.js +2 -0
  217. package/public/styles-YDIK2EDN.css +1 -0
  218. package/scripts/upgrade-install-plugin.sh +1 -1
  219. package/public/assets/hap-icons/airpurifier.svg +0 -17
  220. package/public/assets/hap-icons/airquality.svg +0 -14
  221. package/public/assets/hap-icons/contactsensor-closed.svg +0 -3
  222. package/public/assets/hap-icons/contactsensor-open.svg +0 -3
  223. package/public/assets/hap-icons/garagedoor.svg +0 -14
  224. package/public/assets/hap-icons/humidity.svg +0 -14
  225. package/public/assets/hap-icons/leaksensor.svg +0 -3
  226. package/public/assets/hap-icons/light.svg +0 -31
  227. package/public/assets/hap-icons/lightbulb.svg +0 -14
  228. package/public/assets/hap-icons/motionsensor.svg +0 -3
  229. package/public/assets/hap-icons/occupancysensor.svg +0 -3
  230. package/public/assets/hap-icons/securitysystem-active.svg +0 -3
  231. package/public/assets/hap-icons/securitysystem-off.svg +0 -3
  232. package/public/assets/hap-icons/smokesensor.svg +0 -13
  233. package/public/assets/hap-icons/statelessprogrammableswitch.svg +0 -3
  234. package/public/assets/hap-icons/windowcovering-closed.svg +0 -53
  235. package/public/assets/hap-icons/windowcovering-open.svg +0 -48
  236. package/public/chunk-23E7VL2P.js +0 -1
  237. package/public/chunk-33LJ3YIR.js +0 -1
  238. package/public/chunk-34W4KCBV.js +0 -1
  239. package/public/chunk-3IX3CLER.js +0 -1
  240. package/public/chunk-3UBYWHRR.js +0 -1
  241. package/public/chunk-52HTAWOT.js +0 -1
  242. package/public/chunk-535DPMCW.js +0 -1
  243. package/public/chunk-56BOPXKC.js +0 -1
  244. package/public/chunk-6IAVZXBU.js +0 -20
  245. package/public/chunk-6T27YQ2D.js +0 -1
  246. package/public/chunk-6TCHCTXZ.js +0 -1
  247. package/public/chunk-7WLTVXXL.js +0 -1
  248. package/public/chunk-AS2OC4NZ.js +0 -1
  249. package/public/chunk-BKUGARB4.js +0 -7
  250. package/public/chunk-BLUX2UMQ.js +0 -1
  251. package/public/chunk-BPMSJ2VF.js +0 -1
  252. package/public/chunk-BW6NZ6VD.js +0 -6
  253. package/public/chunk-C4ENUEJD.js +0 -1
  254. package/public/chunk-C536FAQ7.js +0 -5
  255. package/public/chunk-CCUID66K.js +0 -1
  256. package/public/chunk-CL4YMJZW.js +0 -1
  257. package/public/chunk-D7HF5OGR.js +0 -1
  258. package/public/chunk-DD3R2DFS.js +0 -1
  259. package/public/chunk-DHAYGFW2.js +0 -1
  260. package/public/chunk-DVTSZQXS.js +0 -1
  261. package/public/chunk-EIBIFGLP.js +0 -1
  262. package/public/chunk-F4CW25FV.js +0 -1
  263. package/public/chunk-HL7XXKHI.js +0 -1
  264. package/public/chunk-HSJSWZHD.js +0 -1
  265. package/public/chunk-HUV3VJSE.js +0 -1
  266. package/public/chunk-INJABMER.js +0 -23
  267. package/public/chunk-IU27XSWW.js +0 -1
  268. package/public/chunk-JVAHZDVJ.js +0 -1
  269. package/public/chunk-KQJ7ONUG.js +0 -1
  270. package/public/chunk-KS3FIR4R.js +0 -1
  271. package/public/chunk-KXWJIWYD.js +0 -1
  272. package/public/chunk-LDGB6S2N.js +0 -1
  273. package/public/chunk-M45D5CCT.js +0 -1
  274. package/public/chunk-MGBLPFXT.js +0 -1
  275. package/public/chunk-MIMQGXTO.js +0 -1
  276. package/public/chunk-NKN62APE.js +0 -1
  277. package/public/chunk-NW6AFAD7.js +0 -1
  278. package/public/chunk-NZNNTHFQ.js +0 -1
  279. package/public/chunk-ORPWYWCL.js +0 -5
  280. package/public/chunk-Q2YQ4J5L.js +0 -1
  281. package/public/chunk-QHPDGSZ6.js +0 -1
  282. package/public/chunk-QXHB5Q7H.js +0 -1
  283. package/public/chunk-R2QZPN2M.js +0 -1
  284. package/public/chunk-RDOXIKK6.js +0 -1
  285. package/public/chunk-RHBPQJLQ.js +0 -1
  286. package/public/chunk-RSGTDKO6.js +0 -1
  287. package/public/chunk-RTVXC3Y7.js +0 -1
  288. package/public/chunk-SFK7OSIU.js +0 -1
  289. package/public/chunk-SFLEKDGL.js +0 -1
  290. package/public/chunk-TB7FJ5XX.js +0 -1
  291. package/public/chunk-TCSXGQNF.js +0 -1
  292. package/public/chunk-TRTZHJGG.js +0 -1
  293. package/public/chunk-TWWDGSRW.js +0 -1
  294. package/public/chunk-TXOB7R5K.js +0 -7
  295. package/public/chunk-U2WFZQTC.js +0 -32
  296. package/public/chunk-UG5DK2RQ.js +0 -2
  297. package/public/chunk-UPYKPJUD.js +0 -4
  298. package/public/chunk-UVNEKL77.js +0 -1
  299. package/public/chunk-VHLIKZYD.js +0 -1
  300. package/public/chunk-WHJOLAED.js +0 -1
  301. package/public/chunk-WHJSVGC7.js +0 -1
  302. package/public/chunk-Y62756RF.js +0 -1
  303. package/public/chunk-YA4WNIBX.js +0 -1
  304. package/public/chunk-ZGUIFA2B.js +0 -1
  305. package/public/chunk-ZLOETFRA.js +0 -8
  306. package/public/chunk-ZT23DWNL.js +0 -1
  307. package/public/main-TLKQDE7H.js +0 -1
  308. package/public/media/01-RQ3S2L53.png +0 -0
  309. package/public/media/02-VNCG2I2A.png +0 -0
  310. package/public/media/03-HI42L4ZG.png +0 -0
  311. package/public/media/04-FJLL55LZ.png +0 -0
  312. package/public/media/05-V3EO6SPT.png +0 -0
  313. package/public/media/06-EOJZCQZN.png +0 -0
  314. package/public/media/07-KMKB5PBD.png +0 -0
  315. package/public/media/08-UQJRF6B2.png +0 -0
  316. package/public/media/09-2DJQFRHH.png +0 -0
  317. package/public/media/arrow_left-CQT7FZM7.svg +0 -4
  318. package/public/media/arrow_right-SBUDRR2G.svg +0 -4
  319. package/public/media/fa-brands-400-6PJPV6JM.woff2 +0 -0
  320. package/public/media/fa-regular-400-OHB6J4OK.woff2 +0 -0
  321. package/public/media/fa-solid-900-ABTK6BNK.woff2 +0 -0
  322. package/public/polyfills-C6JHVXJJ.js +0 -2
  323. package/public/scripts-6GVLYD7F.js +0 -62
  324. package/public/styles-EG5MFQEM.css +0 -1
  325. /package/public/assets/{bootstrap-4 → bootstrap-5}/cssframework/assets.json +0 -0
@@ -13,12 +13,14 @@ var __importDefault = (this && this.__importDefault) || function (mod) {
13
13
  };
14
14
  Object.defineProperty(exports, "__esModule", { value: true });
15
15
  exports.ServerService = void 0;
16
+ const node_buffer_1 = require("node:buffer");
16
17
  const node_child_process_1 = require("node:child_process");
17
18
  const node_path_1 = require("node:path");
18
19
  const node_process_1 = __importDefault(require("node:process"));
20
+ const node_stream_1 = require("node:stream");
21
+ const node_util_1 = require("node:util");
19
22
  const hap_types_1 = require("@homebridge/hap-client/dist/hap-types");
20
23
  const common_1 = require("@nestjs/common");
21
- const buffer_shims_1 = require("buffer-shims");
22
24
  const fs_extra_1 = require("fs-extra");
23
25
  const node_cache_1 = __importDefault(require("node-cache"));
24
26
  const systeminformation_1 = require("systeminformation");
@@ -27,14 +29,13 @@ const config_service_1 = require("../../core/config/config.service");
27
29
  const homebridge_ipc_service_1 = require("../../core/homebridge-ipc/homebridge-ipc.service");
28
30
  const logger_service_1 = require("../../core/logger/logger.service");
29
31
  const accessories_service_1 = require("../accessories/accessories.service");
30
- const child_bridges_service_1 = require("../child-bridges/child-bridges.service");
31
32
  const config_editor_service_1 = require("../config-editor/config-editor.service");
33
+ const pump = (0, node_util_1.promisify)(node_stream_1.pipeline);
32
34
  let ServerService = class ServerService {
33
- constructor(configService, configEditorService, accessoriesService, childBridgesService, homebridgeIpcService, logger) {
35
+ constructor(configService, configEditorService, accessoriesService, homebridgeIpcService, logger) {
34
36
  this.configService = configService;
35
37
  this.configEditorService = configEditorService;
36
38
  this.accessoriesService = accessoriesService;
37
- this.childBridgesService = childBridgesService;
38
39
  this.homebridgeIpcService = homebridgeIpcService;
39
40
  this.logger = logger;
40
41
  this.serverServiceCache = new node_cache_1.default({ stdTTL: 300 });
@@ -43,20 +44,88 @@ let ServerService = class ServerService {
43
44
  this.accessoryId = this.configService.homebridgeConfig.bridge.username.split(':').join('');
44
45
  this.accessoryInfoPath = (0, node_path_1.join)(this.configService.storagePath, 'persist', `AccessoryInfo.${this.accessoryId}.json`);
45
46
  }
47
+ async deleteSingleDeviceAccessories(id, cachedAccessoriesDir) {
48
+ const cachedAccessories = (0, node_path_1.join)(cachedAccessoriesDir, `cachedAccessories.${id}`);
49
+ const cachedAccessoriesBackup = (0, node_path_1.join)(cachedAccessoriesDir, `.cachedAccessories.${id}.bak`);
50
+ if (await (0, fs_extra_1.pathExists)(cachedAccessories)) {
51
+ await (0, fs_extra_1.unlink)(cachedAccessories);
52
+ this.logger.warn(`Bridge ${id} accessory removal: removed ${cachedAccessories}.`);
53
+ }
54
+ if (await (0, fs_extra_1.pathExists)(cachedAccessoriesBackup)) {
55
+ await (0, fs_extra_1.unlink)(cachedAccessoriesBackup);
56
+ this.logger.warn(`Bridge ${id} accessory removal: removed ${cachedAccessoriesBackup}.`);
57
+ }
58
+ }
59
+ async deleteSingleDevicePairing(id, resetPairingInfo) {
60
+ const persistPath = (0, node_path_1.join)(this.configService.storagePath, 'persist');
61
+ const accessoryInfo = (0, node_path_1.join)(persistPath, `AccessoryInfo.${id}.json`);
62
+ const identifierCache = (0, node_path_1.join)(persistPath, `IdentifierCache.${id}.json`);
63
+ try {
64
+ const configFile = await this.configEditorService.getConfigFile();
65
+ const username = id.match(/.{1,2}/g).join(':').toUpperCase();
66
+ const uiConfig = configFile.platforms.find(x => x.platform === 'config');
67
+ let blacklistChanged = false;
68
+ if (uiConfig.accessoryControl?.instanceBlacklist?.includes(username)) {
69
+ blacklistChanged = true;
70
+ uiConfig.accessoryControl.instanceBlacklist = uiConfig.accessoryControl.instanceBlacklist
71
+ .filter((x) => x.toUpperCase() !== username);
72
+ }
73
+ if (resetPairingInfo) {
74
+ const pluginBlocks = configFile.accessories
75
+ .concat(configFile.platforms)
76
+ .concat([{ _bridge: configFile.bridge }])
77
+ .filter((block) => block._bridge?.username?.toUpperCase() === username.toUpperCase());
78
+ const pluginBlock = pluginBlocks.find((block) => block._bridge?.port);
79
+ const otherBlocks = pluginBlocks.filter((block) => !block._bridge?.port);
80
+ if (pluginBlock) {
81
+ pluginBlock._bridge.username = this.configEditorService.generateUsername();
82
+ pluginBlock._bridge.pin = this.configEditorService.generatePin();
83
+ otherBlocks.forEach((block) => {
84
+ block._bridge.username = pluginBlock._bridge.username;
85
+ });
86
+ if (blacklistChanged) {
87
+ uiConfig.accessoryControl.instanceBlacklist = uiConfig.accessoryControl.instanceBlacklist
88
+ .concat(pluginBlock._bridge.username.toUpperCase());
89
+ }
90
+ this.logger.warn(`Bridge ${id} reset: new username: ${pluginBlock._bridge.username} and new pin: ${pluginBlock._bridge.pin}.`);
91
+ }
92
+ else {
93
+ this.logger.error(`Failed to reset username and pin for child bridge ${id} as the plugin block could not be found.`);
94
+ }
95
+ }
96
+ if (blacklistChanged) {
97
+ uiConfig.accessoryControl.instanceBlacklist = uiConfig.accessoryControl.instanceBlacklist
98
+ .sort((a, b) => a.localeCompare(b));
99
+ }
100
+ await this.configEditorService.updateConfigFile(configFile);
101
+ }
102
+ catch (e) {
103
+ this.logger.error(`Failed to reset username and pin for child bridge ${id} as ${e.message}.`);
104
+ }
105
+ if (await (0, fs_extra_1.pathExists)(accessoryInfo)) {
106
+ await (0, fs_extra_1.unlink)(accessoryInfo);
107
+ this.logger.warn(`Bridge ${id} reset: removed ${accessoryInfo}.`);
108
+ }
109
+ if (await (0, fs_extra_1.pathExists)(identifierCache)) {
110
+ await (0, fs_extra_1.unlink)(identifierCache);
111
+ this.logger.warn(`Bridge ${id} reset: removed ${identifierCache}.`);
112
+ }
113
+ await this.deleteDeviceAccessories(id);
114
+ }
46
115
  async restartServer() {
47
- this.logger.log('Homebridge restart request received');
48
- if (this.configService.serviceMode && !(await this.configService.uiRestartRequired() || await this.nodeVersionChanged())) {
49
- this.logger.log('UI / Bridge settings have not changed; only restarting Homebridge process');
116
+ this.logger.log('Homebridge restart request received.');
117
+ if (!await this.configService.uiRestartRequired() && !await this.nodeVersionChanged()) {
118
+ this.logger.log('UI/Bridge settings have not changed - only restarting Homebridge process.');
50
119
  this.homebridgeIpcService.restartHomebridge();
51
120
  this.accessoriesService.resetInstancePool();
52
121
  return { ok: true, command: 'SIGTERM', restartingUI: false };
53
122
  }
54
123
  setTimeout(() => {
55
124
  if (this.configService.ui.restart) {
56
- this.logger.log(`Executing restart command: ${this.configService.ui.restart}`);
125
+ this.logger.log(`Executing restart command ${this.configService.ui.restart}.`);
57
126
  (0, node_child_process_1.exec)(this.configService.ui.restart, (err) => {
58
127
  if (err) {
59
- this.logger.log('Restart command exited with an error. Failed to restart Homebridge.');
128
+ this.logger.log('Restart command exited with an error, failed to restart Homebridge.');
60
129
  }
61
130
  });
62
131
  }
@@ -70,25 +139,32 @@ let ServerService = class ServerService {
70
139
  async resetHomebridgeAccessory() {
71
140
  this.configService.hbServiceUiRestartRequired = true;
72
141
  const configFile = await this.configEditorService.getConfigFile();
142
+ const oldUsername = configFile.bridge.username;
73
143
  configFile.bridge.pin = this.configEditorService.generatePin();
74
144
  configFile.bridge.username = this.configEditorService.generateUsername();
75
- this.logger.warn(`Homebridge Reset: New Username: ${configFile.bridge.username}`);
76
- this.logger.warn(`Homebridge Reset: New Pin: ${configFile.bridge.pin}`);
145
+ const uiConfig = configFile.platforms.find(x => x.platform === 'config');
146
+ if (uiConfig.accessoryControl?.instanceBlacklist?.includes(oldUsername.toUpperCase())) {
147
+ uiConfig.accessoryControl.instanceBlacklist = uiConfig.accessoryControl.instanceBlacklist
148
+ .filter((x) => x.toUpperCase() !== oldUsername.toUpperCase())
149
+ .concat(configFile.bridge.pin)
150
+ .sort((a, b) => a.localeCompare(b));
151
+ }
152
+ this.logger.warn(`Homebridge bridge reset: new username ${configFile.bridge.username} and new pin ${configFile.bridge.pin}.`);
77
153
  await this.configEditorService.updateConfigFile(configFile);
78
154
  await (0, fs_extra_1.remove)((0, node_path_1.resolve)(this.configService.storagePath, 'accessories'));
79
155
  await (0, fs_extra_1.remove)((0, node_path_1.resolve)(this.configService.storagePath, 'persist'));
80
- this.logger.log('Homebridge Reset: "persist" directory removed.');
81
- this.logger.log('Homebridge Reset: "accessories" directory removed.');
156
+ this.logger.log('Homebridge bridge reset: accessories and persist directories were removed.');
82
157
  }
83
158
  async getDevicePairings() {
84
159
  const persistPath = (0, node_path_1.join)(this.configService.storagePath, 'persist');
85
160
  const devices = (await (0, fs_extra_1.readdir)(persistPath))
86
161
  .filter(x => x.match(/AccessoryInfo\.([A-F,a-f0-9]+)\.json/));
162
+ const configFile = await this.configEditorService.getConfigFile();
87
163
  return Promise.all(devices.map(async (x) => {
88
- return await this.getDevicePairingById(x.split('.')[1]);
164
+ return await this.getDevicePairingById(x.split('.')[1], configFile);
89
165
  }));
90
166
  }
91
- async getDevicePairingById(deviceId) {
167
+ async getDevicePairingById(deviceId, configFile = null) {
92
168
  const persistPath = (0, node_path_1.join)(this.configService.storagePath, 'persist');
93
169
  let device;
94
170
  try {
@@ -97,53 +173,71 @@ let ServerService = class ServerService {
97
173
  catch (e) {
98
174
  throw new common_1.NotFoundException();
99
175
  }
176
+ if (!configFile) {
177
+ configFile = await this.configEditorService.getConfigFile();
178
+ }
179
+ const username = deviceId.match(/.{1,2}/g).join(':');
180
+ const isMain = this.configService.homebridgeConfig.bridge.username.toUpperCase() === username.toUpperCase();
181
+ const pluginBlock = configFile.accessories
182
+ .concat(configFile.platforms)
183
+ .concat([{ _bridge: configFile.bridge }])
184
+ .find((block) => block._bridge?.username?.toUpperCase() === username.toUpperCase());
185
+ try {
186
+ device._category = Object.entries(hap_types_1.Categories).find(([, value]) => value === device.category)[0].toLowerCase();
187
+ }
188
+ catch (e) {
189
+ device._category = 'Other';
190
+ }
191
+ device.name = pluginBlock?._bridge.name || pluginBlock?.name || device.displayName;
100
192
  device._id = deviceId;
101
- device._username = device._id.match(/.{1,2}/g).join(':');
102
- device._main = this.configService.homebridgeConfig.bridge.username.toUpperCase() === device._username.toUpperCase();
193
+ device._username = username;
194
+ device._main = isMain;
103
195
  device._isPaired = device.pairedClients && Object.keys(device.pairedClients).length > 0;
104
196
  device._setupCode = this.generateSetupCode(device);
197
+ device._couldBeStale = !device._main && device._category === 'bridge' && !pluginBlock;
105
198
  delete device.signSk;
106
199
  delete device.signPk;
107
200
  delete device.configHash;
108
201
  delete device.pairedClients;
109
202
  delete device.pairedClientsPermission;
110
- try {
111
- device._category = Object.entries(hap_types_1.Categories).find(([, value]) => value === device.category)[0].toLowerCase();
112
- }
113
- catch (e) {
114
- device._category = 'Other';
115
- }
116
203
  return device;
117
204
  }
118
- async deleteDevicePairing(id) {
119
- if (this.configService.serviceMode) {
120
- this.childBridgesService.stopStartRestartChildBridge('stopChildBridge', id);
121
- await new Promise(res => setTimeout(res, 3000));
122
- }
123
- const persistPath = (0, node_path_1.join)(this.configService.storagePath, 'persist');
124
- const accessoryInfo = (0, node_path_1.join)(persistPath, `AccessoryInfo.${id}.json`);
125
- const identifierCache = (0, node_path_1.join)(persistPath, `IdentifierCache.${id}.json`);
126
- if (await (0, fs_extra_1.pathExists)(accessoryInfo)) {
127
- await (0, fs_extra_1.unlink)(accessoryInfo);
128
- this.logger.warn(`Removed ${accessoryInfo}`);
129
- }
130
- if (await (0, fs_extra_1.pathExists)(identifierCache)) {
131
- await (0, fs_extra_1.unlink)(identifierCache);
132
- this.logger.warn(`Removed ${identifierCache}`);
205
+ async deleteDevicePairing(id, resetPairingInfo) {
206
+ this.logger.warn(`Shutting down Homebridge before resetting paired bridge ${id}...`);
207
+ await this.homebridgeIpcService.restartAndWaitForClose();
208
+ await this.deleteSingleDevicePairing(id, resetPairingInfo);
209
+ return { ok: true };
210
+ }
211
+ async deleteDevicesPairing(bridges) {
212
+ this.logger.warn(`Shutting down Homebridge before resetting paired bridges ${bridges.map(x => x.id).join(', ')}...`);
213
+ await this.homebridgeIpcService.restartAndWaitForClose();
214
+ for (const { id, resetPairingInfo } of bridges) {
215
+ try {
216
+ await this.deleteSingleDevicePairing(id, resetPairingInfo);
217
+ }
218
+ catch (e) {
219
+ this.logger.error(`Failed to reset paired bridge ${id} as ${e.message}.`);
220
+ }
133
221
  }
134
- await this.deleteDeviceAccessories(id);
222
+ return { ok: true };
135
223
  }
136
224
  async deleteDeviceAccessories(id) {
225
+ this.logger.warn(`Shutting down Homebridge before removing accessories for paired bridge ${id}...`);
226
+ await this.homebridgeIpcService.restartAndWaitForClose();
137
227
  const cachedAccessoriesDir = (0, node_path_1.join)(this.configService.storagePath, 'accessories');
138
- const cachedAccessories = (0, node_path_1.join)(cachedAccessoriesDir, `cachedAccessories.${id}`);
139
- const cachedAccessoriesBackup = (0, node_path_1.join)(cachedAccessoriesDir, `.cachedAccessories.${id}.bak`);
140
- if (await (0, fs_extra_1.pathExists)(cachedAccessories)) {
141
- await (0, fs_extra_1.unlink)(cachedAccessories);
142
- this.logger.warn(`Removed ${cachedAccessories}`);
143
- }
144
- if (await (0, fs_extra_1.pathExists)(cachedAccessoriesBackup)) {
145
- await (0, fs_extra_1.unlink)(cachedAccessoriesBackup);
146
- this.logger.warn(`Removed ${cachedAccessoriesBackup}`);
228
+ await this.deleteSingleDeviceAccessories(id, cachedAccessoriesDir);
229
+ }
230
+ async deleteDevicesAccessories(bridges) {
231
+ this.logger.warn(`Shutting down Homebridge before removing accessories for paired bridges ${bridges.map(x => x.id).join(', ')}...`);
232
+ await this.homebridgeIpcService.restartAndWaitForClose();
233
+ const cachedAccessoriesDir = (0, node_path_1.join)(this.configService.storagePath, 'accessories');
234
+ for (const { id } of bridges) {
235
+ try {
236
+ await this.deleteSingleDeviceAccessories(id, cachedAccessoriesDir);
237
+ }
238
+ catch (e) {
239
+ this.logger.error(`Failed to remove accessories for bridge ${id} as ${e.message}.`);
240
+ }
147
241
  }
148
242
  }
149
243
  async getCachedAccessories() {
@@ -162,31 +256,56 @@ let ServerService = class ServerService {
162
256
  }
163
257
  async deleteCachedAccessory(uuid, cacheFile) {
164
258
  cacheFile = cacheFile || 'cachedAccessories';
165
- if (!this.configService.serviceMode) {
166
- this.logger.error('The reset accessories cache command is only available in service mode');
167
- throw new common_1.BadRequestException('This command is only available in service mode');
168
- }
169
259
  const cachedAccessoriesPath = (0, node_path_1.resolve)(this.configService.storagePath, 'accessories', cacheFile);
170
- this.logger.warn(`Shutting down Homebridge before removing cached accessory: ${uuid}`);
260
+ this.logger.warn(`Shutting down Homebridge before removing cached accessory ${uuid}...`);
171
261
  await this.homebridgeIpcService.restartAndWaitForClose();
172
262
  const cachedAccessories = await (0, fs_extra_1.readJson)(cachedAccessoriesPath);
173
263
  const accessoryIndex = cachedAccessories.findIndex(x => x.UUID === uuid);
174
264
  if (accessoryIndex > -1) {
175
265
  cachedAccessories.splice(accessoryIndex, 1);
176
266
  await (0, fs_extra_1.writeJson)(cachedAccessoriesPath, cachedAccessories);
177
- this.logger.warn(`Removed cached accessory with UUID: ${uuid}`);
267
+ this.logger.warn(`Removed cached accessory with UUID ${uuid} from file ${cacheFile}.`);
178
268
  }
179
269
  else {
180
- this.logger.error(`Cannot find cached accessory with UUID: ${uuid}`);
270
+ this.logger.error(`Cannot find cached accessory with UUID ${uuid} from file ${cacheFile}.`);
181
271
  throw new common_1.NotFoundException();
182
272
  }
183
273
  return { ok: true };
184
274
  }
185
- async resetCachedAccessories() {
186
- if (!this.configService.serviceMode) {
187
- this.logger.error('The reset accessories cache command is only available in service mode');
188
- throw new common_1.BadRequestException('This command is only available in service mode');
275
+ async deleteCachedAccessories(accessories) {
276
+ this.logger.warn(`Shutting down Homebridge before removing cached accessories ${accessories.map(x => x.uuid).join(', ')}.`);
277
+ await this.homebridgeIpcService.restartAndWaitForClose();
278
+ const accessoriesByCacheFile = new Map();
279
+ for (const { cacheFile, uuid } of accessories) {
280
+ const accessoryCacheFile = cacheFile || 'cachedAccessories';
281
+ if (!accessoriesByCacheFile.has(accessoryCacheFile)) {
282
+ accessoriesByCacheFile.set(accessoryCacheFile, []);
283
+ }
284
+ accessoriesByCacheFile.get(accessoryCacheFile).push({ uuid });
189
285
  }
286
+ for (const [cacheFile, accessories] of accessoriesByCacheFile.entries()) {
287
+ const cachedAccessoriesPath = (0, node_path_1.resolve)(this.configService.storagePath, 'accessories', cacheFile);
288
+ const cachedAccessories = await (0, fs_extra_1.readJson)(cachedAccessoriesPath);
289
+ for (const { uuid } of accessories) {
290
+ try {
291
+ const accessoryIndex = cachedAccessories.findIndex(x => x.UUID === uuid);
292
+ if (accessoryIndex > -1) {
293
+ cachedAccessories.splice(accessoryIndex, 1);
294
+ this.logger.warn(`Removed cached accessory with UUID ${uuid} from file ${cacheFile}.`);
295
+ }
296
+ else {
297
+ this.logger.error(`Cannot find cached accessory with UUID ${uuid} from file ${cacheFile}.`);
298
+ }
299
+ }
300
+ catch (e) {
301
+ this.logger.error(`Failed to remove cached accessory with UUID ${uuid} from file ${cacheFile} as ${e.message}.`);
302
+ }
303
+ }
304
+ await (0, fs_extra_1.writeJson)(cachedAccessoriesPath, cachedAccessories);
305
+ }
306
+ return { ok: true };
307
+ }
308
+ async deleteAllCachedAccessories() {
190
309
  const cachedAccessoriesDir = (0, node_path_1.join)(this.configService.storagePath, 'accessories');
191
310
  const cachedAccessoryPaths = (await (0, fs_extra_1.readdir)(cachedAccessoriesDir))
192
311
  .filter(x => x.match(/cachedAccessories\.([A-F,0-9]+)/) || x === 'cachedAccessories' || x === '.cachedAccessories.bak')
@@ -195,16 +314,16 @@ let ServerService = class ServerService {
195
314
  await this.homebridgeIpcService.restartAndWaitForClose();
196
315
  this.logger.warn('Shutting down Homebridge before removing cached accessories');
197
316
  try {
198
- this.logger.log('Clearing Cached Homebridge Accessories...');
317
+ this.logger.log('Clearing all cached accessories...');
199
318
  for (const thisCachedAccessoriesPath of cachedAccessoryPaths) {
200
319
  if (await (0, fs_extra_1.pathExists)(thisCachedAccessoriesPath)) {
201
320
  await (0, fs_extra_1.unlink)(thisCachedAccessoriesPath);
202
- this.logger.warn(`Removed ${thisCachedAccessoriesPath}`);
321
+ this.logger.warn(`Removed ${thisCachedAccessoriesPath}.`);
203
322
  }
204
323
  }
205
324
  }
206
325
  catch (e) {
207
- this.logger.error(`Failed to clear Homebridge Accessories Cache at ${cachedAccessoriesPath}`);
326
+ this.logger.error(`Failed to clear all cached accessories at ${cachedAccessoriesPath} as ${e.message}.`);
208
327
  console.error(e);
209
328
  throw new common_1.InternalServerErrorException('Failed to clear Homebridge accessory cache - see logs.');
210
329
  }
@@ -224,7 +343,7 @@ let ServerService = class ServerService {
224
343
  }
225
344
  }
226
345
  generateSetupCode(accessoryInfo) {
227
- const buffer = (0, buffer_shims_1.alloc)(8);
346
+ const buffer = node_buffer_1.Buffer.allocUnsafe(8);
228
347
  let valueLow = Number.parseInt(accessoryInfo.pincode.replace(/-/g, ''), 10);
229
348
  const valueHigh = accessoryInfo.category >> 1;
230
349
  valueLow |= 1 << 28;
@@ -316,19 +435,123 @@ let ServerService = class ServerService {
316
435
  const config = await this.configEditorService.getConfigFile();
317
436
  return { port: config.bridge.port };
318
437
  }
438
+ async getUsablePorts() {
439
+ const config = await this.configEditorService.getConfigFile();
440
+ let start;
441
+ let end;
442
+ if (config.ports && typeof config.ports === 'object') {
443
+ if (config.ports.start) {
444
+ start = config.ports.start;
445
+ }
446
+ if (config.ports.end) {
447
+ end = config.ports.end;
448
+ }
449
+ }
450
+ return { start, end };
451
+ }
452
+ async setHomebridgeName(name) {
453
+ if (!name || !(/^[\p{L}\p{N}][\p{L}\p{N} ']*[\p{L}\p{N}]$/u).test(name)) {
454
+ throw new common_1.BadRequestException('Invalid name');
455
+ }
456
+ const config = await this.configEditorService.getConfigFile();
457
+ config.bridge.name = name;
458
+ await this.configEditorService.updateConfigFile(config);
459
+ }
319
460
  async setHomebridgePort(port) {
320
461
  if (!port || typeof port !== 'number' || !Number.isInteger(port) || port < 1025 || port > 65533) {
321
462
  throw new common_1.BadRequestException('Invalid port number');
322
463
  }
323
464
  const config = await this.configEditorService.getConfigFile();
324
465
  config.bridge.port = port;
325
- console.error('port', port);
326
466
  await this.configEditorService.updateConfigFile(config);
327
467
  }
468
+ async setUsablePorts(value) {
469
+ let config = await this.configEditorService.getConfigFile();
470
+ if (value.start === null) {
471
+ delete value.start;
472
+ }
473
+ if (value.end === null) {
474
+ delete value.end;
475
+ }
476
+ if ('start' in value && (typeof value.start !== 'number' || value.start < 1025 || value.start > 65533)) {
477
+ throw new common_1.BadRequestException('Port start must be a number between 1025 and 65533.');
478
+ }
479
+ if ('end' in value && (typeof value.end !== 'number' || value.end < 1025 || value.end > 65533)) {
480
+ throw new common_1.BadRequestException('Port end must be a number between 1025 and 65533.');
481
+ }
482
+ if ('start' in value && 'end' in value && value.start >= value.end) {
483
+ throw new common_1.BadRequestException('Ports start must be less than end.');
484
+ }
485
+ if ('start' in value && !('end' in value) && config.ports?.end && value.start >= config.ports.end) {
486
+ throw new common_1.BadRequestException('Ports start must be less than end.');
487
+ }
488
+ if ('end' in value && !('start' in value) && config.ports?.start && config.ports.start >= value.end) {
489
+ throw new common_1.BadRequestException('Ports start must be less than end.');
490
+ }
491
+ if (!value.start && !value.end) {
492
+ delete config.ports;
493
+ }
494
+ else {
495
+ config.ports = {};
496
+ if (value.start) {
497
+ config.ports.start = value.start;
498
+ }
499
+ if (value.end) {
500
+ config.ports.end = value.end;
501
+ }
502
+ }
503
+ const { bridge, ports, ...rest } = config;
504
+ config = ports ? { bridge, ports, ...rest } : { bridge, ...rest };
505
+ await this.configEditorService.updateConfigFile(config);
506
+ }
507
+ async uploadWallpaper(data) {
508
+ const configFile = await this.configEditorService.getConfigFile();
509
+ const uiConfigBlock = configFile.platforms.find(x => x.platform === 'config');
510
+ if (uiConfigBlock) {
511
+ if (uiConfigBlock.wallpaper) {
512
+ const oldPath = (0, node_path_1.join)(this.configService.storagePath, uiConfigBlock.wallpaper);
513
+ if (await (0, fs_extra_1.pathExists)(oldPath)) {
514
+ try {
515
+ await (0, fs_extra_1.unlink)(oldPath);
516
+ this.logger.log(`Old wallpaper file ${oldPath} deleted successfully.`);
517
+ }
518
+ catch (e) {
519
+ this.logger.error(`Failed to delete old wallpaper ${oldPath} as ${e.message}.`);
520
+ }
521
+ }
522
+ }
523
+ const fileExtension = (0, node_path_1.extname)(data.filename);
524
+ const newPath = (0, node_path_1.join)(this.configService.storagePath, `ui-wallpaper${fileExtension}`);
525
+ await pump(data.file, (0, fs_extra_1.createWriteStream)(newPath));
526
+ uiConfigBlock.wallpaper = `ui-wallpaper${fileExtension}`;
527
+ await this.configEditorService.updateConfigFile(configFile);
528
+ this.logger.log('Wallpaper uploaded and set in the config file.');
529
+ }
530
+ }
531
+ async deleteWallpaper() {
532
+ const configFile = await this.configEditorService.getConfigFile();
533
+ const uiConfigBlock = configFile.platforms.find(x => x.platform === 'config');
534
+ const fullPath = (0, node_path_1.join)(this.configService.storagePath, uiConfigBlock.wallpaper);
535
+ if (uiConfigBlock && uiConfigBlock.wallpaper) {
536
+ if (await (0, fs_extra_1.pathExists)(fullPath)) {
537
+ try {
538
+ await (0, fs_extra_1.unlink)(fullPath);
539
+ this.logger.log(`Wallpaper file ${uiConfigBlock.wallpaper} deleted successfully.`);
540
+ }
541
+ catch (e) {
542
+ this.logger.error(`Failed to delete wallpaper file (${uiConfigBlock.wallpaper}) as ${e.message}.`);
543
+ }
544
+ }
545
+ delete uiConfigBlock.wallpaper;
546
+ await this.configEditorService.updateConfigFile(configFile);
547
+ this.configService.removeWallpaperCache();
548
+ this.logger.log('Wallpaper reference removed from the config file.');
549
+ }
550
+ }
328
551
  async nodeVersionChanged() {
329
552
  return new Promise((res) => {
330
553
  let result = false;
331
- const child = (0, node_child_process_1.spawn)(node_process_1.default.execPath, ['-v']);
554
+ const child = (0, node_child_process_1.spawn)(node_process_1.default.execPath, ['-v'], { shell: true });
332
555
  child.stdout.once('data', (data) => {
333
556
  result = data.toString().trim() !== node_process_1.default.version;
334
557
  });
@@ -347,7 +570,6 @@ exports.ServerService = ServerService = __decorate([
347
570
  __metadata("design:paramtypes", [config_service_1.ConfigService,
348
571
  config_editor_service_1.ConfigEditorService,
349
572
  accessories_service_1.AccessoriesService,
350
- child_bridges_service_1.ChildBridgesService,
351
573
  homebridge_ipc_service_1.HomebridgeIpcService,
352
574
  logger_service_1.Logger])
353
575
  ], ServerService);
@@ -1 +1 @@
1
- {"version":3,"file":"server.service.js","sourceRoot":"","sources":["../../../src/modules/server/server.service.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"server.service.js","sourceRoot":"","sources":["../../../src/modules/server/server.service.ts"],"names":[],"mappings":"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"}
@@ -40,7 +40,6 @@ export declare class StatusController {
40
40
  homebridgeRunningInDocker: boolean;
41
41
  homebridgeRunningInSynologyPackage: boolean;
42
42
  homebridgeRunningInPackageMode: boolean;
43
- homebridgeServiceMode: boolean;
44
43
  nodeVersion: string;
45
44
  os: import("systeminformation").Systeminformation.OsData;
46
45
  glibcVersion: string;
@@ -69,7 +69,7 @@ __decorate([
69
69
  __metadata("design:returntype", void 0)
70
70
  ], StatusController.prototype, "getServerMemoryInfo", null);
71
71
  __decorate([
72
- (0, swagger_1.ApiOperation)({ summary: 'Returns the current transmitted & received bytes per second.' }),
72
+ (0, swagger_1.ApiOperation)({ summary: 'Returns the current transmitted and received bytes per second.' }),
73
73
  (0, common_1.Get)('/network'),
74
74
  __metadata("design:type", Function),
75
75
  __metadata("design:paramtypes", []),
@@ -95,7 +95,6 @@ __decorate([
95
95
  __decorate([
96
96
  (0, swagger_1.ApiOperation)({
97
97
  summary: 'Return an array of the active child bridges and their status.',
98
- description: 'This method is only available when running `hb-service`.',
99
98
  }),
100
99
  (0, common_1.Get)('/homebridge/child-bridges'),
101
100
  __metadata("design:type", Function),
@@ -103,7 +102,7 @@ __decorate([
103
102
  __metadata("design:returntype", Promise)
104
103
  ], StatusController.prototype, "getChildBridges", null);
105
104
  __decorate([
106
- (0, swagger_1.ApiOperation)({ summary: 'Return the current Homebridge version / package information.' }),
105
+ (0, swagger_1.ApiOperation)({ summary: 'Return the current Homebridge version and package information.' }),
107
106
  (0, common_1.Get)('/homebridge-version'),
108
107
  __metadata("design:type", Function),
109
108
  __metadata("design:paramtypes", []),
@@ -124,7 +123,7 @@ __decorate([
124
123
  __metadata("design:returntype", Promise)
125
124
  ], StatusController.prototype, "getNodeJsVersionInfo", null);
126
125
  __decorate([
127
- (0, swagger_1.ApiOperation)({ summary: 'Returns throttled status for Raspberry Pi' }),
126
+ (0, swagger_1.ApiOperation)({ summary: 'Returns throttled status for Raspberry Pi.' }),
128
127
  (0, common_1.Get)('/rpi/throttled'),
129
128
  __metadata("design:type", Function),
130
129
  __metadata("design:paramtypes", []),