homebridge-config-ui-x 5.11.2-alpha.0 → 5.11.2-beta.1

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 (245) hide show
  1. package/CHANGELOG.md +4 -5
  2. package/dist/core/auth/auth.controller.d.ts +0 -4
  3. package/dist/core/config/config.interfaces.d.ts +0 -14
  4. package/dist/core/config/config.service.d.ts +0 -6
  5. package/dist/core/config/config.service.js +0 -8
  6. package/dist/core/config/config.service.js.map +1 -1
  7. package/dist/core/config/config.startup.js +17 -48
  8. package/dist/core/config/config.startup.js.map +1 -1
  9. package/dist/core/feature-flags/feature-flags.registry.js +0 -5
  10. package/dist/core/feature-flags/feature-flags.registry.js.map +1 -1
  11. package/dist/core/homebridge-ipc/homebridge-ipc.service.js +0 -1
  12. package/dist/core/homebridge-ipc/homebridge-ipc.service.js.map +1 -1
  13. package/dist/core/spa/spa.filter.d.ts +0 -3
  14. package/dist/core/spa/spa.filter.js +2 -22
  15. package/dist/core/spa/spa.filter.js.map +1 -1
  16. package/dist/globalDefaults.js +0 -3
  17. package/dist/globalDefaults.js.map +1 -1
  18. package/dist/main.js +4 -18
  19. package/dist/main.js.map +1 -1
  20. package/dist/modules/accessories/accessories.controller.d.ts +1 -1
  21. package/dist/modules/accessories/accessories.module.js +0 -2
  22. package/dist/modules/accessories/accessories.module.js.map +1 -1
  23. package/dist/modules/accessories/accessories.service.d.ts +3 -21
  24. package/dist/modules/accessories/accessories.service.js +17 -280
  25. package/dist/modules/accessories/accessories.service.js.map +1 -1
  26. package/dist/modules/child-bridges/child-bridges.interfaces.d.ts +0 -9
  27. package/dist/modules/config-editor/config-editor.controller.d.ts +0 -4
  28. package/dist/modules/config-editor/config-editor.controller.js +0 -64
  29. package/dist/modules/config-editor/config-editor.controller.js.map +1 -1
  30. package/dist/modules/config-editor/config-editor.service.d.ts +1 -6
  31. package/dist/modules/config-editor/config-editor.service.js +1 -45
  32. package/dist/modules/config-editor/config-editor.service.js.map +1 -1
  33. package/dist/modules/custom-plugins/plugins-settings-ui/plugins-settings-ui.service.js +1 -1
  34. package/dist/modules/custom-plugins/plugins-settings-ui/plugins-settings-ui.service.js.map +1 -1
  35. package/dist/modules/plugins/plugins.service.js +0 -15
  36. package/dist/modules/plugins/plugins.service.js.map +1 -1
  37. package/dist/modules/server/server.controller.d.ts +0 -50
  38. package/dist/modules/server/server.controller.js +2 -201
  39. package/dist/modules/server/server.controller.js.map +1 -1
  40. package/dist/modules/server/server.service.d.ts +0 -48
  41. package/dist/modules/server/server.service.js +14 -502
  42. package/dist/modules/server/server.service.js.map +1 -1
  43. package/dist/modules/status/status.gateway.d.ts +0 -2
  44. package/dist/modules/status/status.interfaces.d.ts +0 -11
  45. package/dist/modules/status/status.service.d.ts +1 -4
  46. package/dist/modules/status/status.service.js +2 -21
  47. package/dist/modules/status/status.service.js.map +1 -1
  48. package/package.json +1 -3
  49. package/public/3rdpartylicenses.txt +636 -558
  50. package/public/assets/plugin-ui-utils/ui.js +0 -3
  51. package/public/assets/plugin-ui-utils/ui.js.map +1 -1
  52. package/public/chunk-342H572F.js +1 -0
  53. package/public/chunk-3F6KNL45.js +5 -0
  54. package/public/chunk-4JYU6R74.js +1 -0
  55. package/public/chunk-5CLM4CQU.js +50 -0
  56. package/public/chunk-5CPK4NBR.js +1 -0
  57. package/public/chunk-5EULNW5A.js +1 -0
  58. package/public/chunk-5GRM2PNI.js +8 -0
  59. package/public/chunk-5LNBY2QJ.js +1 -0
  60. package/public/chunk-5RXIVKGI.js +1 -0
  61. package/public/chunk-5WYDLLKX.js +1 -0
  62. package/public/chunk-6B6DTILV.js +19 -0
  63. package/public/chunk-6PV3BEGA.js +1 -0
  64. package/public/chunk-6PZV6EDH.js +4 -0
  65. package/public/chunk-6Y5JPVJC.js +1 -0
  66. package/public/{chunk-FARCNAHH.js → chunk-75KR2TK6.js} +1 -1
  67. package/public/chunk-7A57BNDR.js +1 -0
  68. package/public/chunk-7B7RFPU7.js +1 -0
  69. package/public/chunk-7J6ARX42.js +1 -0
  70. package/public/chunk-AADX2O64.js +1 -0
  71. package/public/chunk-ADWZU2CD.js +1 -0
  72. package/public/chunk-B6MBMYJR.js +1 -0
  73. package/public/{chunk-M72FKTRG.js → chunk-BKCIVF4W.js} +2 -52
  74. package/public/chunk-BON2K2BD.js +2 -0
  75. package/public/chunk-BQFFORLL.js +1 -0
  76. package/public/chunk-D5XR6U2H.js +1 -0
  77. package/public/chunk-DJUTRAWQ.js +1 -0
  78. package/public/chunk-GS7QBH55.js +4 -0
  79. package/public/chunk-GSNQS72P.js +1 -0
  80. package/public/chunk-IJ6XC4FQ.js +1 -0
  81. package/public/chunk-IPDCZNIT.js +5 -0
  82. package/public/chunk-IWUO3IX6.js +1 -0
  83. package/public/chunk-JHORORE3.js +1 -0
  84. package/public/chunk-JOKXOBGO.js +1 -0
  85. package/public/chunk-KGJTO5JU.js +1 -0
  86. package/public/{chunk-BMOLDRJ3.js → chunk-KI6BE77G.js} +1 -1
  87. package/public/{chunk-4O7BLLBH.js → chunk-LZEOYQZI.js} +1 -1
  88. package/public/chunk-M2Q5J2B7.js +1 -0
  89. package/public/chunk-M37HW5G2.js +1 -0
  90. package/public/chunk-M6N6IBFU.js +3 -0
  91. package/public/chunk-MABZ7MTN.js +1 -0
  92. package/public/chunk-MMBLECEN.js +1 -0
  93. package/public/chunk-MNU7Q4DB.js +1 -0
  94. package/public/chunk-MWW52HEG.js +1 -0
  95. package/public/chunk-O2EHR65X.js +1 -0
  96. package/public/chunk-O7FHGI3B.js +1 -0
  97. package/public/chunk-OGO6ALZ2.js +8 -0
  98. package/public/{chunk-H7F7H5MW.js → chunk-OMFNURQZ.js} +1 -1
  99. package/public/chunk-OOM2PIRM.js +5 -0
  100. package/public/chunk-P3BL74P3.js +1 -0
  101. package/public/chunk-PULFKPWP.js +4 -0
  102. package/public/chunk-QXD4RXA4.js +1 -0
  103. package/public/chunk-R4OYPF3T.js +1 -0
  104. package/public/chunk-R6ZB26DX.js +1 -0
  105. package/public/chunk-R7Q4CXAE.js +1 -0
  106. package/public/chunk-RVLSH2HG.js +1 -0
  107. package/public/chunk-S6VT5K76.js +1 -0
  108. package/public/chunk-SIK5VCAP.js +1 -0
  109. package/public/chunk-SNTDJVQW.js +1 -0
  110. package/public/chunk-TJ54G72D.js +2 -0
  111. package/public/chunk-UFJE2I6L.js +1 -0
  112. package/public/chunk-VNXVBDDZ.js +1 -0
  113. package/public/chunk-WAAQIJDA.js +1 -0
  114. package/public/chunk-X7NHZZAY.js +1 -0
  115. package/public/chunk-XDFBUXFD.js +1 -0
  116. package/public/chunk-XZLOYWNC.js +16 -0
  117. package/public/chunk-Y62YZFXR.js +1 -0
  118. package/public/chunk-ZV62AL5V.js +40 -0
  119. package/public/chunk-ZXUIFQS4.js +51 -0
  120. package/public/index.html +2 -2
  121. package/public/main-WKJRPHIR.js +1 -0
  122. package/public/polyfills-5KWHJ7II.js +2 -0
  123. package/public/styles-7EFV5QBG.css +1 -0
  124. package/scripts/extract-plugin-alias.js +2 -53
  125. package/dist/core/spa/spa-html.service.d.ts +0 -5
  126. package/dist/core/spa/spa-html.service.js +0 -32
  127. package/dist/core/spa/spa-html.service.js.map +0 -1
  128. package/dist/core/ssl/ssl-cert-generator.service.d.ts +0 -15
  129. package/dist/core/ssl/ssl-cert-generator.service.js +0 -125
  130. package/dist/core/ssl/ssl-cert-generator.service.js.map +0 -1
  131. package/dist/modules/accessories/accessories.interfaces.d.ts +0 -94
  132. package/dist/modules/accessories/accessories.interfaces.js +0 -2
  133. package/dist/modules/accessories/accessories.interfaces.js.map +0 -1
  134. package/docs/matter-todo.md +0 -15
  135. package/docs/ssl-upload-pr.md +0 -103
  136. package/public/assets/matter.svg +0 -8
  137. package/public/chunk-22B4UCUR.js +0 -19
  138. package/public/chunk-2AZ4IAJX.js +0 -1
  139. package/public/chunk-2W47TKRP.js +0 -8
  140. package/public/chunk-32NSGOWJ.js +0 -1
  141. package/public/chunk-3AXKQX7N.js +0 -1
  142. package/public/chunk-3SLVSNU6.js +0 -1
  143. package/public/chunk-4FBWT2PG.js +0 -1
  144. package/public/chunk-4G547VQH.js +0 -1
  145. package/public/chunk-4KBAYZP7.js +0 -1
  146. package/public/chunk-4X67MV5P.js +0 -1
  147. package/public/chunk-56AT4EBV.js +0 -1
  148. package/public/chunk-5INR7MRZ.js +0 -1
  149. package/public/chunk-5IRYX3WN.js +0 -1
  150. package/public/chunk-5N6BZ66K.js +0 -1
  151. package/public/chunk-5QXXJI43.js +0 -5
  152. package/public/chunk-5USVC2CC.js +0 -3
  153. package/public/chunk-5YRG477U.js +0 -1
  154. package/public/chunk-63DEF4BP.js +0 -1
  155. package/public/chunk-7D5NLF5A.js +0 -1
  156. package/public/chunk-AASDOQGB.js +0 -1
  157. package/public/chunk-AU6YJ4VB.js +0 -1
  158. package/public/chunk-B2R3BKIF.js +0 -1
  159. package/public/chunk-B4AJQJMI.js +0 -1
  160. package/public/chunk-BMH5GPEB.js +0 -1
  161. package/public/chunk-BOVXKVZC.js +0 -1
  162. package/public/chunk-C2W3HONU.js +0 -1
  163. package/public/chunk-CB6OGKHG.js +0 -1
  164. package/public/chunk-CBSLCVSR.js +0 -1
  165. package/public/chunk-CR6W3PUA.js +0 -1
  166. package/public/chunk-CYSSAU76.js +0 -1
  167. package/public/chunk-DGBI427A.js +0 -1
  168. package/public/chunk-E2INCMIB.js +0 -1
  169. package/public/chunk-EVNAB6KB.js +0 -4
  170. package/public/chunk-FIF6GB4H.js +0 -1
  171. package/public/chunk-FNIVJEH2.js +0 -1
  172. package/public/chunk-FW2NZE2W.js +0 -1
  173. package/public/chunk-FXM34P2Q.js +0 -1
  174. package/public/chunk-G4TMATE3.js +0 -1
  175. package/public/chunk-GARJCQR2.js +0 -1
  176. package/public/chunk-GHNACZX3.js +0 -1
  177. package/public/chunk-GIPFJVAC.js +0 -1
  178. package/public/chunk-GQMGUEFI.js +0 -1
  179. package/public/chunk-GRUJENQH.js +0 -1
  180. package/public/chunk-HGB7JMQB.js +0 -1
  181. package/public/chunk-HRBBCSGX.js +0 -1
  182. package/public/chunk-I7UZENUE.js +0 -1
  183. package/public/chunk-IUXXJEPG.js +0 -1
  184. package/public/chunk-JC74NWLG.js +0 -1
  185. package/public/chunk-JEWURKW3.js +0 -1
  186. package/public/chunk-JH5W4II7.js +0 -1
  187. package/public/chunk-JLNKCN3A.js +0 -1
  188. package/public/chunk-JTGLNZVD.js +0 -1
  189. package/public/chunk-KSP343GE.js +0 -1
  190. package/public/chunk-KTE7SASZ.js +0 -1
  191. package/public/chunk-L2BEQFIA.js +0 -1
  192. package/public/chunk-L6LSM43U.js +0 -1
  193. package/public/chunk-LPZZFOKR.js +0 -4
  194. package/public/chunk-LT4LVLTJ.js +0 -5
  195. package/public/chunk-M4OD2EYP.js +0 -1
  196. package/public/chunk-M5KMDWMD.js +0 -1
  197. package/public/chunk-M5U3WH6U.js +0 -68
  198. package/public/chunk-MKCBNPFH.js +0 -1
  199. package/public/chunk-MKFXR7SP.js +0 -1
  200. package/public/chunk-MYJVEYXW.js +0 -1
  201. package/public/chunk-N2IMTG2V.js +0 -1
  202. package/public/chunk-NDBIOJ3K.js +0 -1
  203. package/public/chunk-NF7H6G7M.js +0 -1
  204. package/public/chunk-NMM246IB.js +0 -1
  205. package/public/chunk-NPWYNB2M.js +0 -1
  206. package/public/chunk-OB3JM574.js +0 -1
  207. package/public/chunk-OKQK5WGA.js +0 -1
  208. package/public/chunk-OYHGZQRR.js +0 -1
  209. package/public/chunk-P3D45344.js +0 -50
  210. package/public/chunk-P7RLJ6EQ.js +0 -16
  211. package/public/chunk-PXNJ4PSF.js +0 -1
  212. package/public/chunk-QB4JVFF7.js +0 -1
  213. package/public/chunk-QIW6VVBV.js +0 -1
  214. package/public/chunk-QOXXKL5T.js +0 -2
  215. package/public/chunk-QRWK7JO5.js +0 -1
  216. package/public/chunk-S52YHDRI.js +0 -2
  217. package/public/chunk-S6JEMYUK.js +0 -3
  218. package/public/chunk-SOEFKTV3.js +0 -1
  219. package/public/chunk-T5WI6HLG.js +0 -1
  220. package/public/chunk-TCWZ7ASJ.js +0 -1
  221. package/public/chunk-TNQQAZ6Z.js +0 -1
  222. package/public/chunk-TXOHSX6R.js +0 -1
  223. package/public/chunk-UQGRSMY3.js +0 -1
  224. package/public/chunk-UR2DRSIX.js +0 -1
  225. package/public/chunk-UR7BEPD4.js +0 -1
  226. package/public/chunk-UXXY7XNH.js +0 -1
  227. package/public/chunk-VHK6V2IY.js +0 -1
  228. package/public/chunk-VQBGFNDB.js +0 -1
  229. package/public/chunk-VVINUJOQ.js +0 -1
  230. package/public/chunk-W546I2QX.js +0 -1
  231. package/public/chunk-W6MP663P.js +0 -1
  232. package/public/chunk-WYJ4N4TV.js +0 -12
  233. package/public/chunk-X6NYM4NC.js +0 -1
  234. package/public/chunk-XEOYEVJE.js +0 -1
  235. package/public/chunk-XM3BXRQJ.js +0 -1
  236. package/public/chunk-YI2ZMXIQ.js +0 -1
  237. package/public/chunk-YJWJIJMQ.js +0 -1
  238. package/public/chunk-YZZ7SAON.js +0 -2
  239. package/public/chunk-ZCGZM7LU.js +0 -1
  240. package/public/chunk-ZI6P36I2.js +0 -1
  241. package/public/chunk-ZPXACREZ.js +0 -4
  242. package/public/main-QSNNOJ3S.js +0 -1
  243. package/public/media/matter-P563JGDL.svg +0 -8
  244. package/public/polyfills-34U4WL3Z.js +0 -1
  245. package/public/styles-CT2LPGES.css +0 -1
@@ -0,0 +1,2 @@
1
+ import{a as D}from"./chunk-B6MBMYJR.js";import{Cb as g,Da as l,F as c,Rb as y,Sa as w,Sb as b,Ta as u,Tb as E,Yc as N,db as h,eb as C,ha as _,hb as f,ja as M,jc as O,la as v,na as a}from"./chunk-OOM2PIRM.js";var T=["editorContainer"],z="[_nghost-%COMP%]{display:block;height:200px}.editor-container[_ngcontent-%COMP%]{width:100%;height:98%}",I=new v("NGX_MONACO_EDITOR_CONFIG"),R=!1,q,x=(()=>{let i=class i{constructor(){this.config=a(I),this.onInit=new w,this._insideNg=!1}set insideNg(e){this._insideNg=e,this._editor&&(this._editor.dispose(),this.initMonaco(this._options,this.insideNg))}get insideNg(){return this._insideNg}ngAfterViewInit(){R?q.then(()=>{this.initMonaco(this._options,this.insideNg)}):(R=!0,q=new Promise(e=>{let t=this.config.baseUrl;if((t==="assets"||!t)&&(t="./assets/monaco/min/vs"),typeof window.monaco=="object"){this.initMonaco(this._options,this.insideNg),e();return}let o=r=>{let m=r||window.require,p={paths:{vs:`${t}`}};Object.assign(p,this.config.requireConfig||{}),m.config(p),m(["vs/editor/editor.main"],()=>{typeof this.config.onMonacoLoad=="function"&&this.config.onMonacoLoad(),this.initMonaco(this._options,this.insideNg),e()})};if(this.config.monacoRequire)o(this.config.monacoRequire);else if(window.require)if(window.require.config)o();else{var s=`${t}/loader.js`,d=new XMLHttpRequest;d.addEventListener("load",()=>{let r=document.createElement("script");r.type="text/javascript",r.text=["var nodeRequire = require;",d.responseText.replace('"use strict";',""),"var monacoAmdRequire = require;","require = nodeRequire;","require.nodeRequire = require;"].join(`
2
+ `),document.body.appendChild(r),o(window.monacoAmdRequire)}),d.open("GET",s),d.send()}else{let r=document.createElement("script");r.type="text/javascript",r.src=`${t}/loader.js`,r.addEventListener("load",()=>{o()}),document.body.appendChild(r)}}))}ngOnDestroy(){this._windowResizeSubscription&&this._windowResizeSubscription.unsubscribe(),this._editor&&(this._editor.dispose(),this._editor=void 0)}};i.\u0275fac=function(t){return new(t||i)},i.\u0275cmp=h({type:i,selectors:[["ng-component"]],viewQuery:function(t,o){if(t&1&&y(T,7),t&2){let s;b(s=E())&&(o._editorContainer=s.first)}},inputs:{insideNg:"insideNg"},outputs:{onInit:"onInit"},standalone:!1,decls:0,vars:0,template:function(t,o){},encapsulation:2});let n=i;return n})(),X=(()=>{let i=class i extends x{constructor(){super(...arguments),this.zone=a(u),this._value="",this.propagateChange=e=>{},this.onTouched=()=>{}}set options(e){this._options=Object.assign({},this.config.defaultOptions,e),this._editor&&(this._editor.dispose(),this.initMonaco(this._options,this.insideNg))}get options(){return this._options}set model(e){this.options.model=e,this._editor&&(this._editor.dispose(),this.initMonaco(this.options,this.insideNg))}writeValue(e){this._value=e||"",setTimeout(()=>{this._editor&&!this.options.model&&this._editor.setValue(this._value)})}registerOnChange(e){this.propagateChange=e}registerOnTouched(e){this.onTouched=e}setDisabledState(e){this.options.readOnly=e||this._options.readOnly}initMonaco(e,t){let o=!!e.model;if(o){let s=monaco.editor.getModel(e.model.uri||"");s?(e.model=s,e.model.setValue(this._value)):e.model=monaco.editor.createModel(e.model.value,e.model.language,e.model.uri)}t?this._editor=monaco.editor.create(this._editorContainer.nativeElement,e):this.zone.runOutsideAngular(()=>{this._editor=monaco.editor.create(this._editorContainer.nativeElement,e)}),o||this._editor.setValue(this._value),this._editor.onDidChangeModelContent(s=>{let d=this._editor.getValue();this.zone.run(()=>{this.propagateChange(d),this._value=d})}),this._editor.onDidBlurEditorWidget(()=>{this.onTouched()}),this._editor.setTheme=s=>{this.options.theme=s,monaco.editor.setTheme(s)},this._windowResizeSubscription&&this._windowResizeSubscription.unsubscribe(),this._windowResizeSubscription=c(window,"resize").subscribe(()=>this._editor.layout()),this.onInit.emit(this._editor)}};i.\u0275fac=(()=>{let e;return function(o){return(e||(e=l(i)))(o||i)}})(),i.\u0275cmp=h({type:i,selectors:[["ngx-monaco-editor"]],inputs:{options:"options",model:"model"},features:[O([{provide:D,useExisting:_(()=>i),multi:!0}]),f],decls:2,vars:0,consts:[["editorContainer",""],[1,"editor-container"]],template:function(t,o){t&1&&g(0,"div",1,0)},styles:["[_nghost-%COMP%]{display:block;height:200px}.editor-container[_ngcontent-%COMP%]{width:100%;height:98%}"],changeDetection:0});let n=i;return n})(),$=(()=>{let i=class i extends x{constructor(){super(...arguments),this.zone=a(u)}set options(e){this._options=Object.assign({},this.config.defaultOptions,e),this._editor&&(this._editor.dispose(),this.initMonaco(this._options,this.insideNg))}get options(){return this._options}set originalModel(e){this._originalModel=e,this._editor&&(this._editor.dispose(),this.initMonaco(this.options,this.insideNg))}set modifiedModel(e){this._modifiedModel=e,this._editor&&(this._editor.dispose(),this.initMonaco(this.options,this.insideNg))}initMonaco(e,t){if(!this._originalModel||!this._modifiedModel)throw new Error("originalModel or modifiedModel not found for ngx-monaco-diff-editor");this._originalModel.language=this._originalModel.language||e.language,this._modifiedModel.language=this._modifiedModel.language||e.language;let o=monaco.editor.createModel(this._originalModel.code,this._originalModel.language),s=monaco.editor.createModel(this._modifiedModel.code,this._modifiedModel.language);this._editorContainer.nativeElement.innerHTML="";let d=e.theme;t?this._editor=monaco.editor.createDiffEditor(this._editorContainer.nativeElement,e):this.zone.runOutsideAngular(()=>{this._editor=monaco.editor.createDiffEditor(this._editorContainer.nativeElement,e)}),e.theme=d,this._editor.setModel({original:o,modified:s}),this._windowResizeSubscription&&this._windowResizeSubscription.unsubscribe(),this._windowResizeSubscription=c(window,"resize").subscribe(()=>this._editor.layout()),this.onInit.emit(this._editor)}};i.\u0275fac=(()=>{let e;return function(o){return(e||(e=l(i)))(o||i)}})(),i.\u0275cmp=h({type:i,selectors:[["ngx-monaco-diff-editor"]],inputs:{options:"options",originalModel:"originalModel",modifiedModel:"modifiedModel"},features:[f],decls:2,vars:0,consts:[["editorContainer",""],[1,"editor-container"]],template:function(t,o){t&1&&g(0,"div",1,0)},styles:[z],changeDetection:0});let n=i;return n})(),H=(()=>{let i=class i{static forRoot(e={}){return{ngModule:i,providers:[{provide:I,useValue:e}]}}};i.\u0275fac=function(t){return new(t||i)},i.\u0275mod=C({type:i}),i.\u0275inj=M({imports:[N]});let n=i;return n})();export{X as a,$ as b,H as c};
@@ -0,0 +1 @@
1
+ import{a as T}from"./chunk-5LNBY2QJ.js";import"./chunk-DJUTRAWQ.js";import{e as $}from"./chunk-R7Q4CXAE.js";import{b as S}from"./chunk-6PV3BEGA.js";import{k as g,l as _,n as E,q as y}from"./chunk-5CPK4NBR.js";import{$b as s,Ab as r,Bb as i,Cb as u,Nb as v,Qa as n,_b as a,db as h,na as o,qb as c,rb as d,rc as m,sc as l}from"./chunk-OOM2PIRM.js";function C(t,f){if(t&1&&(r(0,"div",7),a(1),i()),t&2){let e=v();n(),s(e.error)}}function w(t,f){t&1&&(r(0,"p",9),a(1),m(2,"translate"),i(),r(3,"div",10)(4,"div",11),u(5,"i",12),i()()),t&2&&(n(),s(l(2,1,"restart.please_wait_while_server_restarts")))}function k(t,f){t&1&&(r(0,"div",8),a(1),m(2,"translate"),i()),t&2&&(n(),s(l(2,1,"platform.linux.long_time")))}var z=(()=>{class t{$api=o(y);$router=o($);$settings=o(S);$toastr=o(E);$translate=o(g);$ws=o(T);checkTimeout;checkDelay;io;resp={};timeout=!1;error=!1;ngOnInit(){this.io=this.$ws.connectToNamespace("status"),this.io.connected.subscribe(()=>{this.io.socket.emit("monitor-server-status"),this.$settings.getAppSettings().catch(()=>{})}),this.$api.put("/platform-tools/linux/restart-host",{}).subscribe({next:e=>{this.resp=e,this.checkIfServerUp()},error:e=>{console.error(e),this.error=this.$translate.instant("platform.linux.server_restart_error"),this.$toastr.error(this.$translate.instant("platform.linux.server_restart_error"),this.$translate.instant("toast.title_error"))}})}ngOnDestroy(){this.io.end(),clearTimeout(this.checkDelay),clearTimeout(this.checkTimeout)}checkIfServerUp(){this.checkDelay=setTimeout(()=>{this.io.socket.on("homebridge-status",e=>{(e.status==="ok"||e.status==="pending")&&(this.$toastr.success(this.$translate.instant("platform.linux.server_restarted"),this.$translate.instant("toast.title_success")),this.$router.navigate(["/"]))})},3e4),this.checkTimeout=setTimeout(()=>{this.$toastr.warning(this.$translate.instant("platform.linux.server_taking_long_time"),this.$translate.instant("toast.title_warning"),{timeOut:1e4}),this.timeout=!0},12e4)}static \u0275fac=function(p){return new(p||t)};static \u0275cmp=h({type:t,selectors:[["ng-component"]],decls:14,vars:8,consts:[[1,"d-flex","justify-content-between"],[1,"primary-text","m-0"],[1,"my-4","align-items-center",2,"max-width","1000px","margin","auto"],[1,"w-100","text-center","primary-text","mb-5"],[1,"fas","fa-power-off",2,"font-size","75px"],[1,"text-center"],[1,"primary-text","mb-4"],[1,"alert","alert-error","my-4"],[1,"alert","alert-warning","my-4"],[1,"grey-text"],[1,"justify-content-center","my-4"],[1,"restart-progress-box","primary-text"],[1,"fas","fa-spinner","fa-spin"]],template:function(p,x){p&1&&(r(0,"div",0)(1,"h3",1),a(2),m(3,"translate"),i()(),r(4,"div",2)(5,"div",3),u(6,"i",4),i(),r(7,"div",5)(8,"h4",6),a(9),m(10,"translate"),i(),c(11,C,2,1,"div",7)(12,w,6,3),c(13,k,3,3,"div",8),i()()),p&2&&(n(2),s(l(3,4,"menu.restart.title")),n(7),s(l(10,6,"platform.linux.restarting_server")),n(2),d(x.error?11:12),n(2),d(x.timeout?13:-1))},dependencies:[_],styles:[".restart-progress-box[_ngcontent-%COMP%]{font-size:22px;font-weight:300;margin-top:15px}"]})}return t})();export{z as RestartLinuxComponent};
@@ -0,0 +1 @@
1
+ import{b as c}from"./chunk-O7FHGI3B.js";import{b as f}from"./chunk-DJUTRAWQ.js";import{e as u}from"./chunk-R7Q4CXAE.js";import{b as h}from"./chunk-6PV3BEGA.js";import{k as o,n}from"./chunk-5CPK4NBR.js";import{h as i,ia as s,na as t,x as a}from"./chunk-OOM2PIRM.js";var j=(()=>{class e{$auth=t(f);$authHelper=t(c);$router=t(u);$settings=t(h);$translate=t(o);$toastr=t(n);canActivate(m,r){return i(this,null,function*(){return this.$settings.settingsLoaded||(yield a(this.$settings.onSettingsLoaded)),this.$settings.formAuth===!1?(yield this.$auth.noauth(),!0):(yield this.$authHelper.isAuthenticated())?(yield this.$auth.checkAndRefreshIfNeeded(),this.$auth.user?.admin?!0:(this.$toastr.error(this.$translate.instant("toast.no_auth"),this.$translate.instant("toast.title_error")),yield this.$router.navigate(["/"]),!1)):(window.sessionStorage.setItem("target_route",r.url),yield this.$router.navigate(["/login"]),!1)})}static \u0275fac=function(r){return new(r||e)};static \u0275prov=s({token:e,factory:e.\u0275fac,providedIn:"root"})}return e})();export{j as a};
@@ -0,0 +1 @@
1
+ import{b as $}from"./chunk-6PV3BEGA.js";import{p as h,q as S}from"./chunk-5CPK4NBR.js";import{A as w,D as T,eb as E,fd as j,h as a,ia as d,ja as v,la as y,ma as l,na as p,s as f,x as c,xa as I,y as k}from"./chunk-OOM2PIRM.js";var g=new y("JWT_OPTIONS"),m=(()=>{class i{constructor(e=null){this.tokenGetter=e&&e.tokenGetter||function(){}}urlBase64Decode(e){let t=e.replace(/-/g,"+").replace(/_/g,"/");switch(t.length%4){case 0:break;case 2:{t+="==";break}case 3:{t+="=";break}default:throw new Error("Illegal base64url string!")}return this.b64DecodeUnicode(t)}b64decode(e){let t="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/=",o="";if(e=String(e).replace(/=+$/,""),e.length%4===1)throw new Error("'atob' failed: The string to be decoded is not correctly encoded.");for(let r=0,s,n,D=0;n=e.charAt(D++);~n&&(s=r%4?s*64+n:n,r++%4)?o+=String.fromCharCode(255&s>>(-2*r&6)):0)n=t.indexOf(n);return o}b64DecodeUnicode(e){return decodeURIComponent(Array.prototype.map.call(this.b64decode(e),t=>"%"+("00"+t.charCodeAt(0).toString(16)).slice(-2)).join(""))}decodeToken(e=this.tokenGetter()){return e instanceof Promise?e.then(t=>this._decodeToken(t)):this._decodeToken(e)}_decodeToken(e){if(!e||e==="")return null;let t=e.split(".");if(t.length!==3)throw new Error("The inspected token doesn't appear to be a JWT. Check to make sure it has three parts and see https://jwt.io for more.");let o=this.urlBase64Decode(t[1]);if(!o)throw new Error("Cannot decode the token.");return JSON.parse(o)}getTokenExpirationDate(e=this.tokenGetter()){return e instanceof Promise?e.then(t=>this._getTokenExpirationDate(t)):this._getTokenExpirationDate(e)}_getTokenExpirationDate(e){let t;if(t=this.decodeToken(e),!t||!t.hasOwnProperty("exp"))return null;let o=new Date(0);return o.setUTCSeconds(t.exp),o}isTokenExpired(e=this.tokenGetter(),t){return e instanceof Promise?e.then(o=>this._isTokenExpired(o,t)):this._isTokenExpired(e,t)}_isTokenExpired(e,t){if(!e||e==="")return!0;let o=this.getTokenExpirationDate(e);return t=t||0,o===null?!1:!(o.valueOf()>new Date().valueOf()+t*1e3)}getAuthScheme(e,t){return typeof e=="function"?e(t):e}}return i.\u0275fac=function(e){return new(e||i)(l(g))},i.\u0275prov=d({token:i,factory:i.\u0275fac}),i})(),x=i=>i instanceof Promise?T(()=>i):f(i),b=(()=>{class i{constructor(e,t,o){this.jwtHelper=t,this.document=o,this.standardPorts=["80","443"],this.tokenGetter=e.tokenGetter,this.headerName=e.headerName||"Authorization",this.authScheme=e.authScheme||e.authScheme===""?e.authScheme:"Bearer ",this.allowedDomains=e.allowedDomains||[],this.disallowedRoutes=e.disallowedRoutes||[],this.throwNoTokenError=e.throwNoTokenError||!1,this.skipWhenExpired=e.skipWhenExpired}isAllowedDomain(e){let t=new URL(e.url,this.document.location.origin);if(t.host===this.document.location.host)return!0;let o=`${t.hostname}${t.port&&!this.standardPorts.includes(t.port)?":"+t.port:""}`;return this.allowedDomains.findIndex(r=>typeof r=="string"?r===o:r instanceof RegExp?r.test(o):!1)>-1}isDisallowedRoute(e){let t=new URL(e.url,this.document.location.origin);return this.disallowedRoutes.findIndex(o=>{if(typeof o=="string"){let r=new URL(o,this.document.location.origin);return r.hostname===t.hostname&&r.pathname===t.pathname}return o instanceof RegExp?o.test(e.url):!1})>-1}handleInterception(e,t,o){let r=this.jwtHelper.getAuthScheme(this.authScheme,t);if(!e&&this.throwNoTokenError)throw new Error("Could not get token from tokenGetter function.");let s=f(!1);return this.skipWhenExpired&&(s=e?x(this.jwtHelper.isTokenExpired(e)):f(!0)),e?s.pipe(k(n=>n&&this.skipWhenExpired?t.clone():t.clone({setHeaders:{[this.headerName]:`${r}${e}`}})),w(n=>o.handle(n))):o.handle(t)}intercept(e,t){if(!this.isAllowedDomain(e)||this.isDisallowedRoute(e))return t.handle(e);let o=this.tokenGetter(e);return x(o).pipe(w(r=>this.handleInterception(r,e,t)))}}return i.\u0275fac=function(e){return new(e||i)(l(g),l(m),l(I))},i.\u0275prov=d({token:i,factory:i.\u0275fac}),i})(),U=(()=>{class i{constructor(e){if(e)throw new Error("JwtModule is already loaded. It should only be imported in your application's main module.")}static forRoot(e){return{ngModule:i,providers:[{provide:j,useClass:b,multi:!0},e.jwtOptionsProvider||{provide:g,useValue:e.config},m]}}}return i.\u0275fac=function(e){return new(e||i)(l(i,12))},i.\u0275mod=E({type:i}),i.\u0275inj=v({}),i})();var X=(()=>{class i{$api=p(S);$jwtHelper=p(m);$settings=p($);token;user={};logoutTimer;lastRefreshTime=Date.now();isRefreshing=!1;constructor(){this.loadToken()}login(e){return a(this,null,function*(){let t=yield c(this.$api.post("/auth/login",e));if(!this.validateToken(t.access_token))throw new Error("Invalid username or password.");window.localStorage.setItem(h.jwt.tokenKey,t.access_token),yield this.$settings.getAppSettings()})}noauth(){return a(this,null,function*(){let e=yield c(this.$api.post("/auth/noauth",{}));if(this.validateToken(e.access_token))window.localStorage.setItem(h.jwt.tokenKey,e.access_token),yield this.$settings.getAppSettings();else throw new Error("Invalid username or password.")})}logout(){this.user=null,this.token=null,clearTimeout(this.logoutTimer),window.localStorage.removeItem(h.jwt.tokenKey),window.location.reload()}loadToken(){return a(this,null,function*(){this.$settings.settingsLoaded||(yield c(this.$settings.onSettingsLoaded));let e=window.localStorage.getItem(h.jwt.tokenKey);e&&this.validateToken(e)})}checkToken(){return a(this,null,function*(){if(!this.token||this.$jwtHelper.isTokenExpired(this.token,this.$settings.serverTimeOffset)){console.warn("Token expired on client side, logging out immediately"),this.logout();return}try{return yield c(this.$api.get("/auth/check"))}catch(e){throw e.status===401&&(console.warn("Current token is not valid on server"),this.logout()),e}})}isLoggedIn(){return this.$settings.env.instanceId!==this.user.instanceId?(console.error("Token does not match instance"),!1):this.user&&this.token&&!this.$jwtHelper.isTokenExpired(this.token,this.$settings.serverTimeOffset)}validateToken(e){try{return this.$jwtHelper.isTokenExpired(e,this.$settings.serverTimeOffset)&&this.logout(),this.user=this.$jwtHelper.decodeToken(e),this.token=e,this.setLogoutTimer(),!0}catch{return window.localStorage.removeItem(h.jwt.tokenKey),this.token=null,!1}}setLogoutTimer(){if(clearTimeout(this.logoutTimer),!this.$jwtHelper.isTokenExpired(this.token,this.$settings.serverTimeOffset)){let e=this.$settings.sessionTimeout*1e3;e<=2147483647&&(this.logoutTimer=setTimeout(()=>a(this,null,function*(){this.$settings.formAuth===!1?(yield this.noauth(),window.location.reload()):this.logout()}),e))}}checkAndRefreshIfNeeded(){return a(this,null,function*(){if(!this.$settings.formAuth||!this.$settings.sessionTimeoutInactivityBased||!this.token||!this.isLoggedIn()||this.isRefreshing)return;let t=Date.now()-this.lastRefreshTime,r=this.$settings.sessionTimeout*1e3*.7;if(t>r)try{yield this.refreshSession()}catch(s){console.error("Failed to refresh session:",s)}})}refreshSession(){return a(this,null,function*(){if(!this.isRefreshing){this.isRefreshing=!0;try{let e=yield c(this.$api.post("/auth/refresh",{}));e.access_token&&(this.token=e.access_token,window.localStorage.setItem(h.jwt.tokenKey,e.access_token),this.lastRefreshTime=Date.now(),this.setLogoutTimer())}finally{this.isRefreshing=!1}}})}static \u0275fac=function(t){return new(t||i)};static \u0275prov=d({token:i,factory:i.\u0275fac})}return i})();export{U as a,X as b};