homebridge-config-ui-x 5.0.0-beta.69 → 5.0.0-beta.70

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 (144) hide show
  1. package/CHANGELOG.md +6 -1
  2. package/package.json +7 -7
  3. package/public/{chunk-KPW2P5T4.js → chunk-2FGEOEQD.js} +2 -2
  4. package/public/{chunk-JHAEEOVW.js → chunk-2FXBIEFA.js} +1 -1
  5. package/public/chunk-2OXWNNKT.js +1 -0
  6. package/public/chunk-2TIYBO73.js +1 -0
  7. package/public/chunk-2TV4AE2B.js +1 -0
  8. package/public/{chunk-67JXNHZU.js → chunk-3C65WELO.js} +1 -1
  9. package/public/chunk-3TKE62PU.js +1 -0
  10. package/public/{chunk-CUKPSGYS.js → chunk-3VIG5M5R.js} +3 -3
  11. package/public/chunk-4NDOCFGG.js +1 -0
  12. package/public/{chunk-G5LGUOIC.js → chunk-4XCUHCZU.js} +1 -1
  13. package/public/chunk-53GLNOVG.js +1 -0
  14. package/public/chunk-5CVOEJKH.js +1 -0
  15. package/public/chunk-7JPH5SDX.js +1 -0
  16. package/public/chunk-7K64Z2GO.js +1 -0
  17. package/public/chunk-7NH4NVWO.js +1 -0
  18. package/public/{chunk-B2YEAISS.js → chunk-7YEHCGBQ.js} +1 -1
  19. package/public/chunk-A6DLVGIC.js +1 -0
  20. package/public/chunk-AKBHSB64.js +1 -0
  21. package/public/chunk-ASBFWS7L.js +2 -0
  22. package/public/{chunk-3GTACTUQ.js → chunk-AYAHOPHC.js} +1 -1
  23. package/public/chunk-BLCADRP2.js +1 -0
  24. package/public/chunk-BXNSJERZ.js +1 -0
  25. package/public/{chunk-N76LUI5K.js → chunk-C4OILQGQ.js} +1 -1
  26. package/public/chunk-C53ZM5K2.js +1 -0
  27. package/public/chunk-CBVDW3UH.js +1 -0
  28. package/public/chunk-CGQJWESO.js +1 -0
  29. package/public/chunk-CL3ZDKJG.js +1 -0
  30. package/public/chunk-CNEG5OIV.js +6 -0
  31. package/public/chunk-CUAJJ6IB.js +1 -0
  32. package/public/chunk-D6HAEAIY.js +1 -0
  33. package/public/{chunk-FETTFNJ2.js → chunk-DJKI5XBW.js} +1 -1
  34. package/public/chunk-DNSPHPB6.js +1 -0
  35. package/public/{chunk-UADGHPWZ.js → chunk-EIL4KU4D.js} +2 -2
  36. package/public/chunk-ENWIG42Q.js +1 -0
  37. package/public/chunk-F2OGU5FW.js +1 -0
  38. package/public/chunk-F7KMJJSW.js +23 -0
  39. package/public/{chunk-AFY7IWPI.js → chunk-FHMZVMZK.js} +2 -2
  40. package/public/chunk-FTPISXWD.js +1 -0
  41. package/public/chunk-GFELNZRD.js +20 -0
  42. package/public/chunk-H34IWNCG.js +1 -0
  43. package/public/chunk-HT4RSDPG.js +1 -0
  44. package/public/chunk-HWQ3KYIQ.js +1 -0
  45. package/public/{chunk-K5MAJ5RF.js → chunk-I2L3GMBC.js} +1 -1
  46. package/public/chunk-I44OXIOM.js +1 -0
  47. package/public/{chunk-L5DJ2UTP.js → chunk-I74DZSHW.js} +1 -1
  48. package/public/{chunk-2QMAJ3PN.js → chunk-IU44HP4M.js} +1 -1
  49. package/public/{chunk-V22QF6S6.js → chunk-JH55PRGX.js} +1 -1
  50. package/public/{chunk-ZIXTTJ4W.js → chunk-JMCN2SQV.js} +1 -1
  51. package/public/chunk-JOBKDXBH.js +1 -0
  52. package/public/chunk-JXN4RBAX.js +1 -0
  53. package/public/{chunk-XSS6G7LC.js → chunk-LTDUXFUG.js} +1 -1
  54. package/public/chunk-MNWOLOKA.js +1 -0
  55. package/public/chunk-MUNP54KM.js +1 -0
  56. package/public/chunk-OKGCGHKO.js +32 -0
  57. package/public/chunk-OLCJ3UHM.js +1 -0
  58. package/public/{chunk-IMTSM6HN.js → chunk-OR6GW5WP.js} +1 -1
  59. package/public/{chunk-JCKLHHH2.js → chunk-OYHOVHGM.js} +1 -1
  60. package/public/chunk-PCAN2IQ6.js +1 -0
  61. package/public/chunk-PIPVTUBD.js +1 -0
  62. package/public/{chunk-BEXZDO4J.js → chunk-PXFCEK22.js} +1 -1
  63. package/public/chunk-Q3LSTRCD.js +1 -0
  64. package/public/{chunk-3NAAMMFZ.js → chunk-Q7VA22QV.js} +1 -1
  65. package/public/chunk-QR7L4UUP.js +1 -0
  66. package/public/chunk-REUKAKIF.js +1 -0
  67. package/public/chunk-RSIXVZQ5.js +1 -0
  68. package/public/{chunk-TVADH2OL.js → chunk-RWMXS5CJ.js} +1 -1
  69. package/public/chunk-SCUB4HUR.js +1 -0
  70. package/public/chunk-TCMMHINS.js +1 -0
  71. package/public/chunk-U4V4ICSI.js +7 -0
  72. package/public/{chunk-HGX4YUHS.js → chunk-UIPWNZIB.js} +1 -1
  73. package/public/{chunk-OFBUS5IB.js → chunk-UJPIGBLW.js} +1 -1
  74. package/public/{chunk-SRHERU2M.js → chunk-ULBJMQJF.js} +1 -1
  75. package/public/{chunk-D33FRRVF.js → chunk-UR24V3JB.js} +1 -1
  76. package/public/{chunk-QCVDY2FW.js → chunk-WM3ZC7RY.js} +1 -1
  77. package/public/chunk-XCZRGZLZ.js +1 -0
  78. package/public/chunk-XSXBWJW4.js +1 -0
  79. package/public/{chunk-F4MUW63B.js → chunk-XZLDNJOX.js} +1 -1
  80. package/public/{chunk-I6OD3CV4.js → chunk-XZR7OZ6I.js} +1 -1
  81. package/public/{chunk-XLKKNOJ4.js → chunk-Y532R476.js} +1 -1
  82. package/public/chunk-YHABGXDF.js +5 -0
  83. package/public/chunk-YLJ4YK2P.js +1 -0
  84. package/public/chunk-YXEV6KOV.js +7 -0
  85. package/public/{chunk-4SN72CMA.js → chunk-ZAFVFM3T.js} +1 -1
  86. package/public/index.html +2 -2
  87. package/public/main-CCEKU4WV.js +1 -0
  88. package/public/polyfills-4F4B5XMZ.js +2 -0
  89. package/public/styles-4YGS4LAH.css +1 -0
  90. package/public/chunk-3H2NNUVI.js +0 -1
  91. package/public/chunk-3HAXS3IU.js +0 -1
  92. package/public/chunk-3JPSLKGD.js +0 -1
  93. package/public/chunk-44K5XVZH.js +0 -7
  94. package/public/chunk-4UVD743J.js +0 -1
  95. package/public/chunk-5USLVPBK.js +0 -1
  96. package/public/chunk-6OMIETCH.js +0 -1
  97. package/public/chunk-6ZN4TBLM.js +0 -7
  98. package/public/chunk-73NF6HFY.js +0 -1
  99. package/public/chunk-7EXP4HZB.js +0 -1
  100. package/public/chunk-ACOWZQSA.js +0 -1
  101. package/public/chunk-B34QXHET.js +0 -1
  102. package/public/chunk-BC4ZZQWV.js +0 -1
  103. package/public/chunk-CMUSONVW.js +0 -1
  104. package/public/chunk-CXXS65VA.js +0 -1
  105. package/public/chunk-D7NSANTX.js +0 -1
  106. package/public/chunk-DBUCH6BG.js +0 -1
  107. package/public/chunk-DYLDNTCO.js +0 -1
  108. package/public/chunk-FIOSU7DQ.js +0 -6
  109. package/public/chunk-G5O7CHKI.js +0 -20
  110. package/public/chunk-GDFC3M3E.js +0 -2
  111. package/public/chunk-GZJ5IINF.js +0 -1
  112. package/public/chunk-I275JECR.js +0 -1
  113. package/public/chunk-IAJDVYYP.js +0 -1
  114. package/public/chunk-IN4TCNQE.js +0 -1
  115. package/public/chunk-J2A3PKBA.js +0 -1
  116. package/public/chunk-JXU7YRFK.js +0 -1
  117. package/public/chunk-KH3V2KYC.js +0 -1
  118. package/public/chunk-L233K63S.js +0 -1
  119. package/public/chunk-L3LMIZ4T.js +0 -1
  120. package/public/chunk-LBTHDQJW.js +0 -1
  121. package/public/chunk-LBWDO3T4.js +0 -1
  122. package/public/chunk-MZQEEJH5.js +0 -1
  123. package/public/chunk-NOMWD75Z.js +0 -1
  124. package/public/chunk-NSIKUTVP.js +0 -32
  125. package/public/chunk-OUFTHC36.js +0 -1
  126. package/public/chunk-OXOBBTSH.js +0 -1
  127. package/public/chunk-PKS4X3TG.js +0 -1
  128. package/public/chunk-POGEGBM3.js +0 -1
  129. package/public/chunk-QN4OHVRE.js +0 -1
  130. package/public/chunk-RKJ4CETZ.js +0 -1
  131. package/public/chunk-RQNFJUYG.js +0 -1
  132. package/public/chunk-S6ZSRVGR.js +0 -1
  133. package/public/chunk-SPHSTPNY.js +0 -1
  134. package/public/chunk-TEFE7EK6.js +0 -1
  135. package/public/chunk-UEC3IA3K.js +0 -1
  136. package/public/chunk-UTHIJK2F.js +0 -1
  137. package/public/chunk-W2INV3O5.js +0 -5
  138. package/public/chunk-X37KHKZ4.js +0 -1
  139. package/public/chunk-XB3NIEFE.js +0 -1
  140. package/public/chunk-YEJSJ4HZ.js +0 -1
  141. package/public/chunk-YKDS5Y4S.js +0 -23
  142. package/public/main-NTAVPHBN.js +0 -1
  143. package/public/polyfills-JFMQVUE2.js +0 -2
  144. package/public/styles-SGJCHKTF.css +0 -1
package/CHANGELOG.md CHANGED
@@ -37,8 +37,13 @@ All notable changes to `homebridge-config-ui-x` will be documented in this file.
37
37
  ### UI Changes
38
38
 
39
39
  - improvements to various accessory tiles and modals
40
- - improvements to plugin config validation
41
40
  - fix occasional issue in backup/restore, revert recent change
41
+ - improvements to plugin config validation
42
+ - use `ajv-keywords` to allow validation of unique properties in arrays
43
+
44
+ ### Other Changes
45
+
46
+ - upgrade to angular `v20`
42
47
 
43
48
  ### Homebridge Dependencies
44
49
 
package/package.json CHANGED
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "name": "homebridge-config-ui-x",
3
3
  "displayName": "Homebridge UI",
4
- "version": "5.0.0-beta.69",
4
+ "version": "5.0.0-beta.70",
5
5
  "description": "A web based management, configuration and control platform for Homebridge.",
6
6
  "author": "oznu <dev@oz.nu>",
7
7
  "license": "MIT",
@@ -85,14 +85,14 @@
85
85
  "@homebridge/hap-client": "2.2.0",
86
86
  "@homebridge/node-pty-prebuilt-multiarch": "0.12.0",
87
87
  "@nestjs/axios": "4.0.0",
88
- "@nestjs/common": "11.1.1",
89
- "@nestjs/core": "11.1.1",
88
+ "@nestjs/common": "11.1.2",
89
+ "@nestjs/core": "11.1.2",
90
90
  "@nestjs/jwt": "11.0.0",
91
91
  "@nestjs/passport": "11.0.5",
92
- "@nestjs/platform-fastify": "11.1.1",
93
- "@nestjs/platform-socket.io": "11.1.1",
92
+ "@nestjs/platform-fastify": "11.1.2",
93
+ "@nestjs/platform-socket.io": "11.1.2",
94
94
  "@nestjs/swagger": "11.2.0",
95
- "@nestjs/websockets": "11.1.1",
95
+ "@nestjs/websockets": "11.1.2",
96
96
  "axios": "1.9.0",
97
97
  "bash-color": "0.0.4",
98
98
  "class-transformer": "0.5.1",
@@ -125,7 +125,7 @@
125
125
  "@prettier/plugin-xml": "^3.4.1",
126
126
  "@types/fs-extra": "^11.0.4",
127
127
  "@types/lodash": "^4.17.17",
128
- "@types/node": "^22.15.21",
128
+ "@types/node": "^22.15.24",
129
129
  "@types/node-schedule": "^2.1.7",
130
130
  "@types/passport-jwt": "^4.0.1",
131
131
  "@types/semver": "^7.7.0",
@@ -1,2 +1,2 @@
1
- import{a as D}from"./chunk-4UVD743J.js";import{Ca as w,Da as u,E as h,Wb as g,fa as _,gc as y,ha as M,hc as b,ic as E,id as O,ja as v,ma as a,tb as c,ub as C,wc as N,xa as l,xb as f}from"./chunk-6ZN4TBLM.js";var z=["editorContainer"],T="[_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=c({type:i,selectors:[["ng-component"]],viewQuery:function(t,o){if(t&1&&y(z,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(e,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}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._windowResizeSubscription&&this._windowResizeSubscription.unsubscribe(),this._windowResizeSubscription=h(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=c({type:i,selectors:[["ngx-monaco-editor"]],inputs:{options:"options",model:"model"},features:[N([{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(e,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=h(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=c({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:[T],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:[O]});let n=i;return n})();export{X as a,$ as b,H as c};
1
+ import{a as D}from"./chunk-JOBKDXBH.js";import{Da as l,E as h,Qb as g,ac as y,bc as b,cc as E,fa as _,ha as M,ja as v,kd as O,la as a,lb as c,mb as w,pb as u,tb as C,ub as f,uc as N}from"./chunk-U4V4ICSI.js";var z=["editorContainer"],T="[_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 C,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=c({type:i,selectors:[["ng-component"]],viewQuery:function(t,o){if(t&1&&y(z,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(f),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(e,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}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._windowResizeSubscription&&this._windowResizeSubscription.unsubscribe(),this._windowResizeSubscription=h(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=c({type:i,selectors:[["ngx-monaco-editor"]],inputs:{options:"options",model:"model"},features:[N([{provide:D,useExisting:_(()=>i),multi:!0}]),u],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(f)}set options(e){this._options=Object.assign({},this.config.defaultOptions,e),this._editor&&(this._editor.dispose(),this.initMonaco(e,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=h(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=c({type:i,selectors:[["ngx-monaco-diff-editor"]],inputs:{options:"options",originalModel:"originalModel",modifiedModel:"modifiedModel"},features:[u],decls:2,vars:0,consts:[["editorContainer",""],[1,"editor-container"]],template:function(t,o){t&1&&g(0,"div",1,0)},styles:[T],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=w({type:i}),i.\u0275inj=M({imports:[O]});let n=i;return n})();export{X as a,$ as b,H as c};
@@ -1,4 +1,4 @@
1
- import{a as k}from"./chunk-3NAAMMFZ.js";import{a as z,b as A}from"./chunk-44K5XVZH.js";import{a as l}from"./chunk-L5DJ2UTP.js";import{M as n,g as r,ga as c,ma as d,n as h}from"./chunk-6ZN4TBLM.js";var f=r(z(),1),a=r(A(),1),p=r(k(),1);var $=(()=>{class t{$ws=d(l);term;io;fitAddon;webLinksAddon;resize;elementResize;pluginName;constructor(){}startTerminal(m,s={},u,w){this.pluginName=w,this.elementResize=u,this.io=this.$ws.connectToNamespace("log"),this.term=new f.Terminal(s),setTimeout(()=>{this.term.loadAddon(this.fitAddon),this.term.loadAddon(this.webLinksAddon)}),this.fitAddon=new a.FitAddon,this.webLinksAddon=new p.WebLinksAddon,this.resize=new h,this.term.open(m.nativeElement),setTimeout(()=>{this.fitAddon.activate(this.term),this.fitAddon.fit()}),this.io.connected.subscribe(()=>{this.term.reset(),this.io.socket.emit("tail-log",{cols:this.term.cols,rows:this.term.rows})}),this.io.socket.on("disconnect",()=>{this.term.write(`
1
+ import{a as k}from"./chunk-Q7VA22QV.js";import{a as z,b as A}from"./chunk-YXEV6KOV.js";import{a as l}from"./chunk-I74DZSHW.js";import{M as n,g as r,ga as c,la as d,n as h}from"./chunk-U4V4ICSI.js";var f=r(z(),1),a=r(A(),1),p=r(k(),1);var $=(()=>{class t{$ws=d(l);term;io;fitAddon;webLinksAddon;resize;elementResize;pluginName;constructor(){}startTerminal(m,s={},u,w){this.pluginName=w,this.elementResize=u,this.io=this.$ws.connectToNamespace("log"),this.term=new f.Terminal(s),setTimeout(()=>{this.term.loadAddon(this.fitAddon),this.term.loadAddon(this.webLinksAddon)}),this.fitAddon=new a.FitAddon,this.webLinksAddon=new p.WebLinksAddon,this.resize=new h,this.term.open(m.nativeElement),setTimeout(()=>{this.fitAddon.activate(this.term),this.fitAddon.fit()}),this.io.connected.subscribe(()=>{this.term.reset(),this.io.socket.emit("tail-log",{cols:this.term.cols,rows:this.term.rows})}),this.io.socket.on("disconnect",()=>{this.term.write(`
2
2
  \r
3
3
  \rWebsocket failed to connect. Is the server running?
4
4
  \r
@@ -0,0 +1 @@
1
+ import"./chunk-UJPIGBLW.js";import"./chunk-AKBHSB64.js";import"./chunk-I74DZSHW.js";import{g as n}from"./chunk-QR7L4UUP.js";import"./chunk-Y532R476.js";import"./chunk-AYAHOPHC.js";import"./chunk-OR6GW5WP.js";import"./chunk-ASBFWS7L.js";import{c as m}from"./chunk-DJKI5XBW.js";import{ha as t,kd as i,mb as r}from"./chunk-U4V4ICSI.js";var d=[{path:"",redirectTo:"/",pathMatch:"full"},{path:"restart-server",loadComponent:()=>import("./chunk-XCZRGZLZ.js").then(o=>o.RestartLinuxComponent)},{path:"shutdown-server",loadComponent:()=>import("./chunk-H34IWNCG.js").then(o=>o.ShutdownLinuxComponent)}],u=(()=>{class o{static \u0275fac=function(e){return new(e||o)};static \u0275mod=r({type:o});static \u0275inj=t({imports:[n.forChild(d),n]})}return o})();var g=(()=>{class o{static \u0275fac=function(e){return new(e||o)};static \u0275mod=r({type:o});static \u0275inj=t({imports:[i,m.forChild(),u]})}return o})();export{g as LinuxModule};
@@ -0,0 +1 @@
1
+ import{a}from"./chunk-BLCADRP2.js";import"./chunk-F2OGU5FW.js";import"./chunk-4XCUHCZU.js";import"./chunk-OKGCGHKO.js";import"./chunk-ULBJMQJF.js";import"./chunk-2FGEOEQD.js";import"./chunk-3VIG5M5R.js";import"./chunk-XZR7OZ6I.js";import"./chunk-2FXBIEFA.js";import"./chunk-Q7VA22QV.js";import"./chunk-FHMZVMZK.js";import"./chunk-JMCN2SQV.js";import"./chunk-YXEV6KOV.js";import"./chunk-C53ZM5K2.js";import"./chunk-LTDUXFUG.js";import"./chunk-RSIXVZQ5.js";import"./chunk-YHABGXDF.js";import"./chunk-JOBKDXBH.js";import"./chunk-I74DZSHW.js";import"./chunk-QR7L4UUP.js";import"./chunk-Y532R476.js";import"./chunk-AYAHOPHC.js";import"./chunk-OR6GW5WP.js";import"./chunk-ASBFWS7L.js";import"./chunk-DJKI5XBW.js";import"./chunk-U4V4ICSI.js";export{a as PluginsComponent};
@@ -0,0 +1 @@
1
+ import{b as a}from"./chunk-Q3LSTRCD.js";import"./chunk-DNSPHPB6.js";import"./chunk-HWQ3KYIQ.js";import"./chunk-XZR7OZ6I.js";import"./chunk-YHABGXDF.js";import"./chunk-JOBKDXBH.js";import"./chunk-I74DZSHW.js";import"./chunk-QR7L4UUP.js";import"./chunk-Y532R476.js";import"./chunk-AYAHOPHC.js";import"./chunk-OR6GW5WP.js";import"./chunk-ASBFWS7L.js";import"./chunk-DJKI5XBW.js";import"./chunk-U4V4ICSI.js";export{a as AccessoriesComponent};
@@ -1 +1 @@
1
- import{a as V}from"./chunk-JHAEEOVW.js";import{a as q}from"./chunk-ZIXTTJ4W.js";import{a as _}from"./chunk-TEFE7EK6.js";import{n as B,o as k}from"./chunk-W2INV3O5.js";import{h as D,k as F}from"./chunk-IMTSM6HN.js";import{a as z,b as E}from"./chunk-FETTFNJ2.js";import{Cc as i,Dc as r,Jb as b,Kb as h,Ub as s,Vb as l,Wb as p,_b as T,bc as d,fb as y,g as j,gb as m,h as w,jc as C,kc as x,ma as o,mc as I,n as v,nc as S,pb as $,tb as L,ua as u,va as f}from"./chunk-6ZN4TBLM.js";var H=j(q(),1);var A=["logoutput"],X=(()=>{class c{$api=o(F);$log=o(V);$modal=o(B);$toastr=o(D);$translate=o(z);termTarget=$("logoutput");resizeEvent=new v;constructor(){}onWindowResize(){this.resizeEvent.next(void 0)}ngOnInit(){window.document.querySelector("body").classList.add("bg-black"),this.$log.startTerminal(this.termTarget(),{},this.resizeEvent)}ngOnDestroy(){window.document.querySelector("body").classList.remove("bg-black"),this.$log.destroyTerminal()}downloadLogFile(){let t=this.$modal.open(_,{size:"lg",backdrop:"static"});t.componentInstance.title=this.$translate.instant("logs.title_download_log_file"),t.componentInstance.message=this.$translate.instant("logs.download_warning"),t.componentInstance.confirmButtonLabel=this.$translate.instant("form.button_download"),t.componentInstance.faIconClass="fas fa-fw fa-user-secret primary-text",t.result.then(()=>{this.$api.get("/platform-tools/hb-service/log/download",{observe:"response",responseType:"blob"}).subscribe({next:e=>{(0,H.saveAs)(e.body,"homebridge.log.txt")},error:e=>w(this,null,function*(){let n;try{n=JSON.parse(yield e.error.text()).message}catch(a){console.error(a)}this.$toastr.error(n||this.$translate.instant("logs.download.error"),this.$translate.instant("toast.title_error"))})})}).catch(()=>{})}truncateLogFile(){let t=this.$modal.open(_,{size:"lg",backdrop:"static"});t.componentInstance.title=this.$translate.instant("logs.title_truncate_log_file"),t.componentInstance.message=this.$translate.instant("logs.truncate_log_warning"),t.componentInstance.confirmButtonLabel=this.$translate.instant("form.button_delete"),t.componentInstance.confirmButtonClass="btn-danger",t.componentInstance.faIconClass="fas fa-fw fa-circle-exclamation primary-text",t.result.then(()=>{this.$api.put("/platform-tools/hb-service/log/truncate",{}).subscribe({next:()=>{this.$toastr.success(this.$translate.instant("logs.log_file_truncated"),this.$translate.instant("toast.title_success")),this.$log.term.clear()},error:e=>{console.error(e),this.$toastr.error(e.error.message||this.$translate.instant("logs.truncate.error"),this.$translate.instant("toast.title_error"))}})}).catch(()=>{})}static \u0275fac=function(e){return new(e||c)};static \u0275cmp=L({type:c,selectors:[["ng-component"]],viewQuery:function(e,n){e&1&&C(n.termTarget,A,5),e&2&&x()},hostBindings:function(e,n){e&1&&d("resize",function(g){return n.onWindowResize(g)},!1,y)},decls:17,vars:15,consts:[["logoutput",""],[1,"row","mb-3"],[1,"col-6"],[1,"primary-text","m-0"],[1,"col-6","text-end"],["container","body","placement","bottom","openDelay","150","triggers","hover",1,"btn","btn-elegant","my-0","me-2",3,"click","ngbTooltip"],[1,"fas","fa-fw","fa-download"],["container","body","placement","bottom","openDelay","150","triggers","hover",1,"btn","btn-elegant","my-0","me-0",3,"click","ngbTooltip"],[1,"fas","fa-fw","fa-trash-alt"],[1,"flex-column","d-flex","align-items-stretch","adjust-for-mobile"],["id","log-output",1,"align-self-end","w-100","h-100","mb-1"]],template:function(e,n){if(e&1){let a=T();s(0,"div",1)(1,"div",2)(2,"h3",3),I(3),i(4,"translate"),l()(),s(5,"div",4)(6,"button",5),i(7,"translate"),i(8,"translate"),d("click",function(){return u(a),f(n.downloadLogFile())}),p(9,"i",6),l(),s(10,"button",7),i(11,"translate"),i(12,"translate"),d("click",function(){return u(a),f(n.truncateLogFile())}),p(13,"i",8),l()()(),s(14,"div",9),p(15,"div",10,0),l()}e&2&&(m(3),S(r(4,5,"menu.linux.label_logs")),m(3),h("ngbTooltip",r(7,7,"form.button_download")),b("aria-label",r(8,9,"form.button_download")),m(4),h("ngbTooltip",r(11,11,"form.button_delete")),b("aria-label",r(12,13,"form.button_delete")))},dependencies:[k,E],encapsulation:2})}return c})();export{X as a};
1
+ import{a as V}from"./chunk-2FXBIEFA.js";import{a as q}from"./chunk-JMCN2SQV.js";import{a as _}from"./chunk-RSIXVZQ5.js";import{n as B,o as k}from"./chunk-YHABGXDF.js";import{h as D,k as F}from"./chunk-OR6GW5WP.js";import{a as z,b as E}from"./chunk-DJKI5XBW.js";import{$a as m,Ac as i,Bc as r,Gb as b,Lc as S,Nb as h,Ob as s,Pb as l,Qb as p,Ub as L,Xb as d,_a as y,dc as T,ec as C,g as j,h as w,jc as x,kc as I,la as o,lb as $,n as v,ra as u,sa as f}from"./chunk-U4V4ICSI.js";var H=j(q(),1);var A=["logoutput"],X=(()=>{class c{$api=o(F);$log=o(V);$modal=o(B);$toastr=o(D);$translate=o(z);termTarget=S("logoutput");resizeEvent=new v;constructor(){}onWindowResize(){this.resizeEvent.next(void 0)}ngOnInit(){window.document.querySelector("body").classList.add("bg-black"),this.$log.startTerminal(this.termTarget(),{},this.resizeEvent)}ngOnDestroy(){window.document.querySelector("body").classList.remove("bg-black"),this.$log.destroyTerminal()}downloadLogFile(){let t=this.$modal.open(_,{size:"lg",backdrop:"static"});t.componentInstance.title=this.$translate.instant("logs.title_download_log_file"),t.componentInstance.message=this.$translate.instant("logs.download_warning"),t.componentInstance.confirmButtonLabel=this.$translate.instant("form.button_download"),t.componentInstance.faIconClass="fas fa-fw fa-user-secret primary-text",t.result.then(()=>{this.$api.get("/platform-tools/hb-service/log/download",{observe:"response",responseType:"blob"}).subscribe({next:e=>{(0,H.saveAs)(e.body,"homebridge.log.txt")},error:e=>w(this,null,function*(){let n;try{n=JSON.parse(yield e.error.text()).message}catch(a){console.error(a)}this.$toastr.error(n||this.$translate.instant("logs.download.error"),this.$translate.instant("toast.title_error"))})})}).catch(()=>{})}truncateLogFile(){let t=this.$modal.open(_,{size:"lg",backdrop:"static"});t.componentInstance.title=this.$translate.instant("logs.title_truncate_log_file"),t.componentInstance.message=this.$translate.instant("logs.truncate_log_warning"),t.componentInstance.confirmButtonLabel=this.$translate.instant("form.button_delete"),t.componentInstance.confirmButtonClass="btn-danger",t.componentInstance.faIconClass="fas fa-fw fa-circle-exclamation primary-text",t.result.then(()=>{this.$api.put("/platform-tools/hb-service/log/truncate",{}).subscribe({next:()=>{this.$toastr.success(this.$translate.instant("logs.log_file_truncated"),this.$translate.instant("toast.title_success")),this.$log.term.clear()},error:e=>{console.error(e),this.$toastr.error(e.error.message||this.$translate.instant("logs.truncate.error"),this.$translate.instant("toast.title_error"))}})}).catch(()=>{})}static \u0275fac=function(e){return new(e||c)};static \u0275cmp=$({type:c,selectors:[["ng-component"]],viewQuery:function(e,n){e&1&&T(n.termTarget,A,5),e&2&&C()},hostBindings:function(e,n){e&1&&d("resize",function(g){return n.onWindowResize(g)},y)},decls:17,vars:15,consts:[["logoutput",""],[1,"row","mb-3"],[1,"col-6"],[1,"primary-text","m-0"],[1,"col-6","text-end"],["container","body","placement","bottom","openDelay","150","triggers","hover",1,"btn","btn-elegant","my-0","me-2",3,"click","ngbTooltip"],[1,"fas","fa-fw","fa-download"],["container","body","placement","bottom","openDelay","150","triggers","hover",1,"btn","btn-elegant","my-0","me-0",3,"click","ngbTooltip"],[1,"fas","fa-fw","fa-trash-alt"],[1,"flex-column","d-flex","align-items-stretch","adjust-for-mobile"],["id","log-output",1,"align-self-end","w-100","h-100","mb-1"]],template:function(e,n){if(e&1){let a=L();s(0,"div",1)(1,"div",2)(2,"h3",3),x(3),i(4,"translate"),l()(),s(5,"div",4)(6,"button",5),i(7,"translate"),i(8,"translate"),d("click",function(){return u(a),f(n.downloadLogFile())}),p(9,"i",6),l(),s(10,"button",7),i(11,"translate"),i(12,"translate"),d("click",function(){return u(a),f(n.truncateLogFile())}),p(13,"i",8),l()()(),s(14,"div",9),p(15,"div",10,0),l()}e&2&&(m(3),I(r(4,5,"menu.linux.label_logs")),m(3),h("ngbTooltip",r(7,7,"form.button_download")),b("aria-label",r(8,9,"form.button_download")),m(4),h("ngbTooltip",r(11,11,"form.button_delete")),b("aria-label",r(12,13,"form.button_delete")))},dependencies:[k,E],encapsulation:2})}return c})();export{X as a};
@@ -0,0 +1 @@
1
+ import{a}from"./chunk-JH55PRGX.js";import"./chunk-YHABGXDF.js";import"./chunk-JOBKDXBH.js";import"./chunk-QR7L4UUP.js";import"./chunk-AYAHOPHC.js";import"./chunk-OR6GW5WP.js";import"./chunk-ASBFWS7L.js";import"./chunk-DJKI5XBW.js";import"./chunk-U4V4ICSI.js";export{a as PowerOptionsComponent};