homebridge-config-ui-x 4.78.2-beta.5 → 4.78.2-beta.7
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.
- package/CHANGELOG.md +9 -1
- package/dist/main.js +1 -0
- package/dist/main.js.map +1 -1
- package/package.json +1 -1
- package/public/3rdpartylicenses.txt +132 -132
- package/public/assets/hap-icons/{airpurifier.svg → air-purifier.svg} +11 -11
- package/public/assets/hap-icons/{filtermaintenance.svg → filter-maintenance.svg} +1 -1
- package/public/{chunk-DW53RC2J.js → chunk-24HGAFIA.js} +1 -1
- package/public/chunk-335BVUT7.js +1 -0
- package/public/chunk-3FIZ5SHA.js +1 -0
- package/public/chunk-3K6K2EED.js +2 -0
- package/public/{chunk-HAZ2TOVS.js → chunk-4SCDQJ67.js} +1 -1
- package/public/chunk-5MYMUS7R.js +3 -0
- package/public/chunk-5QYOJ5G7.js +1 -0
- package/public/chunk-5SOTFW4L.js +1 -0
- package/public/{chunk-MA7HSK5I.js → chunk-5XE7ACAJ.js} +16 -16
- package/public/chunk-7UNMO36V.js +1 -0
- package/public/chunk-CHQMUTDZ.js +4 -0
- package/public/chunk-CIJ7JUI4.js +1 -0
- package/public/chunk-DFK6HAB2.js +1 -0
- package/public/chunk-F3ERQJVG.js +1 -0
- package/public/chunk-FSQU6S5U.js +1 -0
- package/public/chunk-G7MJKB2I.js +1 -0
- package/public/chunk-GMZYTKA7.js +1 -0
- package/public/chunk-GW2DVJRQ.js +1 -0
- package/public/chunk-HDDSK4T6.js +1 -0
- package/public/chunk-HDIZOXS3.js +1 -0
- package/public/chunk-HVYATWTL.js +1 -0
- package/public/chunk-IN7NZAFJ.js +1 -0
- package/public/chunk-J4CE5VUG.js +1 -0
- package/public/chunk-J6YDFLQQ.js +1 -0
- package/public/chunk-JKFIZ5HO.js +1 -0
- package/public/chunk-JL52RNPX.js +1 -0
- package/public/chunk-KX4HFAMS.js +1 -0
- package/public/chunk-KZXWMOV5.js +1 -0
- package/public/chunk-M7Q25OA7.js +12 -0
- package/public/chunk-N2BRDQMV.js +1 -0
- package/public/chunk-NFOOVJXR.js +23 -0
- package/public/chunk-NHCHG3Z6.js +1 -0
- package/public/chunk-NJPGGFP6.js +1 -0
- package/public/{chunk-PZ4EJUWJ.js → chunk-OCUYP77B.js} +1 -1
- package/public/{chunk-HYRHD4VJ.js → chunk-OFS35DEJ.js} +1 -1
- package/public/chunk-OQR4JGQQ.js +1 -0
- package/public/{chunk-MOMFYMZX.js → chunk-PBJK6VW5.js} +1 -1
- package/public/chunk-RCXJKKFJ.js +1 -0
- package/public/chunk-RDHSN5YP.js +1 -0
- package/public/chunk-RPGBJBQM.js +1 -0
- package/public/chunk-RTYG6XT7.js +1 -0
- package/public/chunk-SRAPPW2T.js +4 -0
- package/public/chunk-TQNKRJOX.js +1 -0
- package/public/chunk-TTFPDSBH.js +20 -0
- package/public/chunk-UJKWN6WW.js +1 -0
- package/public/{chunk-YTSL4WKW.js → chunk-UQYCFN3T.js} +1 -1
- package/public/chunk-V5SJINUD.js +1 -0
- package/public/chunk-WBSGPRW6.js +1 -0
- package/public/chunk-WIKVE33G.js +1 -0
- package/public/chunk-YO4OJGZL.js +1 -0
- package/public/chunk-ZYZKPRJW.js +5 -0
- package/public/index.html +1 -1
- package/public/main-HK64V7MI.js +1 -0
- package/public/chunk-2BG2CSJ2.js +0 -1
- package/public/chunk-3BLUUVJH.js +0 -1
- package/public/chunk-3JILA3K4.js +0 -5
- package/public/chunk-4SA4GMB2.js +0 -1
- package/public/chunk-4SWQFHHP.js +0 -1
- package/public/chunk-56PY5QTA.js +0 -1
- package/public/chunk-5ZWZPDTW.js +0 -1
- package/public/chunk-7FD3EC7J.js +0 -1
- package/public/chunk-7LNTGSCN.js +0 -1
- package/public/chunk-7X55NKR3.js +0 -20
- package/public/chunk-AC3XUOVQ.js +0 -1
- package/public/chunk-AY7YHLF5.js +0 -1
- package/public/chunk-B3U7UOR3.js +0 -1
- package/public/chunk-BM6T3M62.js +0 -6
- package/public/chunk-C5CQZHR2.js +0 -1
- package/public/chunk-D5A7AKWO.js +0 -1
- package/public/chunk-DBKYJGLQ.js +0 -1
- package/public/chunk-DDARHLW6.js +0 -1
- package/public/chunk-DEVBRHQE.js +0 -1
- package/public/chunk-ECZQTQYF.js +0 -4
- package/public/chunk-EIRMDXFU.js +0 -1
- package/public/chunk-EOTSCZHB.js +0 -1
- package/public/chunk-F35OKPJJ.js +0 -1
- package/public/chunk-FBAFQRNU.js +0 -2
- package/public/chunk-FGF4IVHI.js +0 -1
- package/public/chunk-FLUPYWZS.js +0 -1
- package/public/chunk-FPYIY6YX.js +0 -1
- package/public/chunk-G7WIBZOG.js +0 -1
- package/public/chunk-H6HTVCWS.js +0 -1
- package/public/chunk-HKCMS5E6.js +0 -1
- package/public/chunk-IF3KFND5.js +0 -1
- package/public/chunk-IIPUK2BI.js +0 -23
- package/public/chunk-J74LBPGO.js +0 -1
- package/public/chunk-JODV6RHA.js +0 -1
- package/public/chunk-LDLY2W2L.js +0 -12
- package/public/chunk-LIR7QVML.js +0 -1
- package/public/chunk-M2S3C4EG.js +0 -1
- package/public/chunk-MXARL4DO.js +0 -1
- package/public/chunk-N53PZ7G7.js +0 -1
- package/public/chunk-NPI2SMFS.js +0 -1
- package/public/chunk-OAFL5KUH.js +0 -1
- package/public/chunk-OTZLBFXM.js +0 -1
- package/public/chunk-OVZ7RBX7.js +0 -1
- package/public/chunk-P2K2XE6W.js +0 -1
- package/public/chunk-PEVVFCXI.js +0 -1
- package/public/chunk-QAMMYHW2.js +0 -1
- package/public/chunk-QY46HWDD.js +0 -1
- package/public/chunk-R53BOK3Z.js +0 -1
- package/public/chunk-RKB6QR63.js +0 -1
- package/public/chunk-SOHPXRDW.js +0 -1
- package/public/chunk-SOOC2JQJ.js +0 -1
- package/public/chunk-SWAUKWH7.js +0 -1
- package/public/chunk-V53MRZ5F.js +0 -1
- package/public/chunk-VYOUOZE7.js +0 -1
- package/public/chunk-WVNHIT6J.js +0 -1
- package/public/chunk-XHKH2R5G.js +0 -1
- package/public/chunk-YPA2CDCH.js +0 -1
- package/public/chunk-ZVHPQCQY.js +0 -1
- package/public/main-OTQSSOQS.js +0 -1
- /package/public/assets/hap-icons/{airquality.svg → air-quality-sensor.svg} +0 -0
- /package/public/assets/hap-icons/{co2-sensor.svg → carbon-dioxide-sensor.svg} +0 -0
- /package/public/assets/hap-icons/{co-sensor.svg → carbon-monoxide-sensor.svg} +0 -0
- /package/public/assets/hap-icons/{contactsensor-closed.svg → contact-sensor-closed.svg} +0 -0
- /package/public/assets/hap-icons/{contactsensor-open.svg → contact-sensor-open.svg} +0 -0
- /package/public/assets/hap-icons/{garagedoor.svg → garage-door.svg} +0 -0
- /package/public/assets/hap-icons/{humidity.svg → humidity-sensor.svg} +0 -0
- /package/public/assets/hap-icons/{leaksensor.svg → leak-sensor.svg} +0 -0
- /package/public/assets/hap-icons/{lightbulb.svg → light-bulb.svg} +0 -0
- /package/public/assets/hap-icons/{light.svg → light-sensor.svg} +0 -0
- /package/public/assets/hap-icons/{motionsensor.svg → motion-sensor.svg} +0 -0
- /package/public/assets/hap-icons/{occupancysensor.svg → occupancy-sensor.svg} +0 -0
- /package/public/assets/hap-icons/{securitysystem-active.svg → security-system-active.svg} +0 -0
- /package/public/assets/hap-icons/{securitysystem-off.svg → security-system-off.svg} +0 -0
- /package/public/assets/hap-icons/{securitysystem-triggered.svg → security-system-triggered.svg} +0 -0
- /package/public/assets/hap-icons/{smokesensor.svg → smoke-sensor.svg} +0 -0
- /package/public/assets/hap-icons/{statelessprogrammableswitch.svg → stateless-programmable-switch.svg} +0 -0
- /package/public/assets/hap-icons/{valve-waterfaucet.svg → valve-faucet.svg} +0 -0
- /package/public/assets/hap-icons/{valve-showerhead.svg → valve-shower-head.svg} +0 -0
- /package/public/assets/hap-icons/{windowcovering-closed.svg → window-covering-closed.svg} +0 -0
- /package/public/assets/hap-icons/{windowcovering-open.svg → window-covering-open.svg} +0 -0
package/CHANGELOG.md
CHANGED
|
@@ -2,7 +2,7 @@
|
|
|
2
2
|
|
|
3
3
|
All notable changes to `homebridge-config-ui-x` will be documented in this file. This project tries to adhere to [Semantic Versioning](http://semver.org/).
|
|
4
4
|
|
|
5
|
-
## v4.79.0 (2025-07-
|
|
5
|
+
## v4.79.0 (2025-07-07)
|
|
6
6
|
|
|
7
7
|
### ⚠️ Upcoming Deprecations:
|
|
8
8
|
|
|
@@ -37,6 +37,14 @@ All notable changes to `homebridge-config-ui-x` will be documented in this file.
|
|
|
37
37
|
- add plugin search button, hide bar by default
|
|
38
38
|
- add tab in plugins showing plugin analytics in `iframe`
|
|
39
39
|
|
|
40
|
+
### Other Changes
|
|
41
|
+
|
|
42
|
+
- code cleanup inside angular module files
|
|
43
|
+
- refactor ui types into interface files
|
|
44
|
+
- rename hap icon files for consistency
|
|
45
|
+
- rename accessory type component files for consistency
|
|
46
|
+
- angular-wide code refactoring and cleanup
|
|
47
|
+
|
|
40
48
|
### Homebridge Dependencies
|
|
41
49
|
|
|
42
50
|
- `@homebridge/hap-client` @ `v3.1.0`
|
package/dist/main.js
CHANGED
|
@@ -53,6 +53,7 @@ async function bootstrap() {
|
|
|
53
53
|
connectSrc: ['\'self\'', 'https://openweathermap.org', 'https://api.openweathermap.org', (req) => {
|
|
54
54
|
return `wss://${req.headers.host} ws://${req.headers.host} ${startupConfig.cspWsOverride || ''}`;
|
|
55
55
|
}],
|
|
56
|
+
frameSrc: ['\'self\'', 'data:', 'https://developers.homebridge.io'],
|
|
56
57
|
scriptSrcAttr: null,
|
|
57
58
|
fontSrc: null,
|
|
58
59
|
objectSrc: null,
|
package/dist/main.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"main.js","sourceRoot":"","sources":["../src/main.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"main.js","sourceRoot":"","sources":["../src/main.ts"],"names":[],"mappings":"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"}
|
package/package.json
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "homebridge-config-ui-x",
|
|
3
3
|
"displayName": "Homebridge UI",
|
|
4
|
-
"version": "4.78.2-beta.
|
|
4
|
+
"version": "4.78.2-beta.7",
|
|
5
5
|
"description": "A web based management, configuration and control platform for Homebridge.",
|
|
6
6
|
"author": "oznu <dev@oz.nu>",
|
|
7
7
|
"license": "MIT",
|
|
@@ -233,6 +233,84 @@ LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
|
|
|
233
233
|
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
|
|
234
234
|
SOFTWARE.
|
|
235
235
|
|
|
236
|
+
--------------------------------------------------------------------------------
|
|
237
|
+
Package: ng-inline-svg-2
|
|
238
|
+
License: "MIT"
|
|
239
|
+
|
|
240
|
+
The MIT License (MIT)
|
|
241
|
+
|
|
242
|
+
Copyright (c) 2016 Eugene Cheung
|
|
243
|
+
|
|
244
|
+
Permission is hereby granted, free of charge, to any person obtaining a copy
|
|
245
|
+
of this software and associated documentation files (the "Software"), to deal
|
|
246
|
+
in the Software without restriction, including without limitation the rights
|
|
247
|
+
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
|
|
248
|
+
copies of the Software, and to permit persons to whom the Software is
|
|
249
|
+
furnished to do so, subject to the following conditions:
|
|
250
|
+
|
|
251
|
+
The above copyright notice and this permission notice shall be included in
|
|
252
|
+
all copies or substantial portions of the Software.
|
|
253
|
+
|
|
254
|
+
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
|
|
255
|
+
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
|
|
256
|
+
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
|
|
257
|
+
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
|
|
258
|
+
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
|
|
259
|
+
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
|
|
260
|
+
THE SOFTWARE.
|
|
261
|
+
|
|
262
|
+
--------------------------------------------------------------------------------
|
|
263
|
+
Package: nouislider
|
|
264
|
+
License: "MIT"
|
|
265
|
+
|
|
266
|
+
MIT License
|
|
267
|
+
|
|
268
|
+
Copyright (c) 2019 Léon Gersen
|
|
269
|
+
|
|
270
|
+
Permission is hereby granted, free of charge, to any person obtaining a copy
|
|
271
|
+
of this software and associated documentation files (the "Software"), to deal
|
|
272
|
+
in the Software without restriction, including without limitation the rights
|
|
273
|
+
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
|
|
274
|
+
copies of the Software, and to permit persons to whom the Software is
|
|
275
|
+
furnished to do so, subject to the following conditions:
|
|
276
|
+
|
|
277
|
+
The above copyright notice and this permission notice shall be included in all
|
|
278
|
+
copies or substantial portions of the Software.
|
|
279
|
+
|
|
280
|
+
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
|
|
281
|
+
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
|
|
282
|
+
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
|
|
283
|
+
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
|
|
284
|
+
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
|
|
285
|
+
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
|
|
286
|
+
SOFTWARE.
|
|
287
|
+
|
|
288
|
+
--------------------------------------------------------------------------------
|
|
289
|
+
Package: ng2-nouislider
|
|
290
|
+
License: "MIT"
|
|
291
|
+
|
|
292
|
+
MIT License
|
|
293
|
+
|
|
294
|
+
Copyright (c) 2017-2019 Tomasz Bak https://www.tomaszbak.com/
|
|
295
|
+
|
|
296
|
+
Permission is hereby granted, free of charge, to any person obtaining a copy
|
|
297
|
+
of this software and associated documentation files (the "Software"), to deal
|
|
298
|
+
in the Software without restriction, including without limitation the rights
|
|
299
|
+
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
|
|
300
|
+
copies of the Software, and to permit persons to whom the Software is
|
|
301
|
+
furnished to do so, subject to the following conditions:
|
|
302
|
+
|
|
303
|
+
The above copyright notice and this permission notice shall be included in all
|
|
304
|
+
copies or substantial portions of the Software.
|
|
305
|
+
|
|
306
|
+
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
|
|
307
|
+
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
|
|
308
|
+
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
|
|
309
|
+
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
|
|
310
|
+
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
|
|
311
|
+
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
|
|
312
|
+
SOFTWARE.
|
|
313
|
+
|
|
236
314
|
--------------------------------------------------------------------------------
|
|
237
315
|
Package: @kurkle/color
|
|
238
316
|
License: "MIT"
|
|
@@ -378,97 +456,19 @@ Package: dragula
|
|
|
378
456
|
License: "MIT"
|
|
379
457
|
|
|
380
458
|
|
|
381
|
-
--------------------------------------------------------------------------------
|
|
382
|
-
Package: @homebridge/hap-client
|
|
383
|
-
License: "MIT"
|
|
384
|
-
|
|
385
|
-
MIT License
|
|
386
|
-
|
|
387
|
-
Copyright (c) 2023-2025 Homebridge
|
|
388
|
-
Copyright (c) 2020-2023 oznu <dev@oz.nu>
|
|
389
|
-
|
|
390
|
-
Permission is hereby granted, free of charge, to any person obtaining a copy
|
|
391
|
-
of this software and associated documentation files (the "Software"), to deal
|
|
392
|
-
in the Software without restriction, including without limitation the rights
|
|
393
|
-
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
|
|
394
|
-
copies of the Software, and to permit persons to whom the Software is
|
|
395
|
-
furnished to do so, subject to the following conditions:
|
|
396
|
-
|
|
397
|
-
The above copyright notice and this permission notice shall be included in all
|
|
398
|
-
copies or substantial portions of the Software.
|
|
399
|
-
|
|
400
|
-
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
|
|
401
|
-
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
|
|
402
|
-
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
|
|
403
|
-
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
|
|
404
|
-
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
|
|
405
|
-
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
|
|
406
|
-
SOFTWARE.
|
|
407
|
-
|
|
408
459
|
--------------------------------------------------------------------------------
|
|
409
460
|
Package: ng2-dragula
|
|
410
461
|
License: "MIT"
|
|
411
462
|
|
|
412
463
|
|
|
413
464
|
--------------------------------------------------------------------------------
|
|
414
|
-
Package:
|
|
415
|
-
License: "MIT"
|
|
416
|
-
|
|
417
|
-
The MIT License (MIT)
|
|
418
|
-
|
|
419
|
-
Copyright (c) 2016 Eugene Cheung
|
|
420
|
-
|
|
421
|
-
Permission is hereby granted, free of charge, to any person obtaining a copy
|
|
422
|
-
of this software and associated documentation files (the "Software"), to deal
|
|
423
|
-
in the Software without restriction, including without limitation the rights
|
|
424
|
-
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
|
|
425
|
-
copies of the Software, and to permit persons to whom the Software is
|
|
426
|
-
furnished to do so, subject to the following conditions:
|
|
427
|
-
|
|
428
|
-
The above copyright notice and this permission notice shall be included in
|
|
429
|
-
all copies or substantial portions of the Software.
|
|
430
|
-
|
|
431
|
-
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
|
|
432
|
-
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
|
|
433
|
-
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
|
|
434
|
-
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
|
|
435
|
-
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
|
|
436
|
-
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
|
|
437
|
-
THE SOFTWARE.
|
|
438
|
-
|
|
439
|
-
--------------------------------------------------------------------------------
|
|
440
|
-
Package: nouislider
|
|
441
|
-
License: "MIT"
|
|
442
|
-
|
|
443
|
-
MIT License
|
|
444
|
-
|
|
445
|
-
Copyright (c) 2019 Léon Gersen
|
|
446
|
-
|
|
447
|
-
Permission is hereby granted, free of charge, to any person obtaining a copy
|
|
448
|
-
of this software and associated documentation files (the "Software"), to deal
|
|
449
|
-
in the Software without restriction, including without limitation the rights
|
|
450
|
-
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
|
|
451
|
-
copies of the Software, and to permit persons to whom the Software is
|
|
452
|
-
furnished to do so, subject to the following conditions:
|
|
453
|
-
|
|
454
|
-
The above copyright notice and this permission notice shall be included in all
|
|
455
|
-
copies or substantial portions of the Software.
|
|
456
|
-
|
|
457
|
-
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
|
|
458
|
-
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
|
|
459
|
-
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
|
|
460
|
-
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
|
|
461
|
-
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
|
|
462
|
-
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
|
|
463
|
-
SOFTWARE.
|
|
464
|
-
|
|
465
|
-
--------------------------------------------------------------------------------
|
|
466
|
-
Package: ng2-nouislider
|
|
465
|
+
Package: @homebridge/hap-client
|
|
467
466
|
License: "MIT"
|
|
468
467
|
|
|
469
468
|
MIT License
|
|
470
469
|
|
|
471
|
-
Copyright (c)
|
|
470
|
+
Copyright (c) 2023-2025 Homebridge
|
|
471
|
+
Copyright (c) 2020-2023 oznu <dev@oz.nu>
|
|
472
472
|
|
|
473
473
|
Permission is hereby granted, free of charge, to any person obtaining a copy
|
|
474
474
|
of this software and associated documentation files (the "Software"), to deal
|
|
@@ -809,6 +809,31 @@ Package: ngx-monaco-editor-v2
|
|
|
809
809
|
License: "MIT"
|
|
810
810
|
|
|
811
811
|
|
|
812
|
+
--------------------------------------------------------------------------------
|
|
813
|
+
Package: mobile-detect
|
|
814
|
+
License: "MIT"
|
|
815
|
+
|
|
816
|
+
The MIT License (MIT)
|
|
817
|
+
|
|
818
|
+
Copyright (c) 2013 Heinrich Goebl
|
|
819
|
+
|
|
820
|
+
Permission is hereby granted, free of charge, to any person obtaining a copy
|
|
821
|
+
of this software and associated documentation files (the "Software"), to deal
|
|
822
|
+
in the Software without restriction, including without limitation the rights
|
|
823
|
+
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
|
|
824
|
+
copies of the Software, and to permit persons to whom the Software is
|
|
825
|
+
furnished to do so, subject to the following conditions:
|
|
826
|
+
|
|
827
|
+
The above copyright notice and this permission notice shall be included in
|
|
828
|
+
all copies or substantial portions of the Software.
|
|
829
|
+
|
|
830
|
+
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
|
|
831
|
+
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
|
|
832
|
+
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
|
|
833
|
+
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
|
|
834
|
+
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
|
|
835
|
+
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
|
|
836
|
+
THE SOFTWARE.
|
|
812
837
|
--------------------------------------------------------------------------------
|
|
813
838
|
Package: prismjs
|
|
814
839
|
License: "MIT"
|
|
@@ -894,31 +919,6 @@ Package: ngx-md
|
|
|
894
919
|
License: "MIT"
|
|
895
920
|
|
|
896
921
|
|
|
897
|
-
--------------------------------------------------------------------------------
|
|
898
|
-
Package: mobile-detect
|
|
899
|
-
License: "MIT"
|
|
900
|
-
|
|
901
|
-
The MIT License (MIT)
|
|
902
|
-
|
|
903
|
-
Copyright (c) 2013 Heinrich Goebl
|
|
904
|
-
|
|
905
|
-
Permission is hereby granted, free of charge, to any person obtaining a copy
|
|
906
|
-
of this software and associated documentation files (the "Software"), to deal
|
|
907
|
-
in the Software without restriction, including without limitation the rights
|
|
908
|
-
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
|
|
909
|
-
copies of the Software, and to permit persons to whom the Software is
|
|
910
|
-
furnished to do so, subject to the following conditions:
|
|
911
|
-
|
|
912
|
-
The above copyright notice and this permission notice shall be included in
|
|
913
|
-
all copies or substantial portions of the Software.
|
|
914
|
-
|
|
915
|
-
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
|
|
916
|
-
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
|
|
917
|
-
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
|
|
918
|
-
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
|
|
919
|
-
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
|
|
920
|
-
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
|
|
921
|
-
THE SOFTWARE.
|
|
922
922
|
--------------------------------------------------------------------------------
|
|
923
923
|
Package: file-saver
|
|
924
924
|
License: "MIT"
|
|
@@ -1161,32 +1161,6 @@ LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
|
|
|
1161
1161
|
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
|
|
1162
1162
|
THE SOFTWARE.
|
|
1163
1163
|
|
|
1164
|
-
--------------------------------------------------------------------------------
|
|
1165
|
-
Package: @angular/router
|
|
1166
|
-
License: "MIT"
|
|
1167
|
-
|
|
1168
|
-
The MIT License
|
|
1169
|
-
|
|
1170
|
-
Copyright (c) 2010-2025 Google LLC. https://angular.dev/license
|
|
1171
|
-
|
|
1172
|
-
Permission is hereby granted, free of charge, to any person obtaining a copy
|
|
1173
|
-
of this software and associated documentation files (the "Software"), to deal
|
|
1174
|
-
in the Software without restriction, including without limitation the rights
|
|
1175
|
-
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
|
|
1176
|
-
copies of the Software, and to permit persons to whom the Software is
|
|
1177
|
-
furnished to do so, subject to the following conditions:
|
|
1178
|
-
|
|
1179
|
-
The above copyright notice and this permission notice shall be included in
|
|
1180
|
-
all copies or substantial portions of the Software.
|
|
1181
|
-
|
|
1182
|
-
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
|
|
1183
|
-
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
|
|
1184
|
-
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
|
|
1185
|
-
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
|
|
1186
|
-
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
|
|
1187
|
-
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
|
|
1188
|
-
THE SOFTWARE.
|
|
1189
|
-
|
|
1190
1164
|
--------------------------------------------------------------------------------
|
|
1191
1165
|
Package: engine.io-parser
|
|
1192
1166
|
License: "MIT"
|
|
@@ -1345,6 +1319,32 @@ LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
|
|
|
1345
1319
|
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
|
|
1346
1320
|
SOFTWARE.
|
|
1347
1321
|
|
|
1322
|
+
--------------------------------------------------------------------------------
|
|
1323
|
+
Package: @angular/router
|
|
1324
|
+
License: "MIT"
|
|
1325
|
+
|
|
1326
|
+
The MIT License
|
|
1327
|
+
|
|
1328
|
+
Copyright (c) 2010-2025 Google LLC. https://angular.dev/license
|
|
1329
|
+
|
|
1330
|
+
Permission is hereby granted, free of charge, to any person obtaining a copy
|
|
1331
|
+
of this software and associated documentation files (the "Software"), to deal
|
|
1332
|
+
in the Software without restriction, including without limitation the rights
|
|
1333
|
+
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
|
|
1334
|
+
copies of the Software, and to permit persons to whom the Software is
|
|
1335
|
+
furnished to do so, subject to the following conditions:
|
|
1336
|
+
|
|
1337
|
+
The above copyright notice and this permission notice shall be included in
|
|
1338
|
+
all copies or substantial portions of the Software.
|
|
1339
|
+
|
|
1340
|
+
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
|
|
1341
|
+
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
|
|
1342
|
+
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
|
|
1343
|
+
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
|
|
1344
|
+
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
|
|
1345
|
+
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
|
|
1346
|
+
THE SOFTWARE.
|
|
1347
|
+
|
|
1348
1348
|
--------------------------------------------------------------------------------
|
|
1349
1349
|
Package: dayjs
|
|
1350
1350
|
License: "MIT"
|
|
@@ -8,11 +8,11 @@
|
|
|
8
8
|
xmlns:xlink="http://www.w3.org/1999/xlink"
|
|
9
9
|
>
|
|
10
10
|
<g id="Page-1" stroke="none" stroke-width="1" fill="none" fill-rule="evenodd">
|
|
11
|
-
<g id="
|
|
11
|
+
<g id="air-purifier" transform="translate(7.000000, 5.000000)">
|
|
12
12
|
<path
|
|
13
13
|
d="M-4.26325641e-14,6.22067087 C4.02953795,8.50225516 12.4315562,9.67933849 25.2060547,9.75192087 C32.8391014,9.79529045 51.5791554,2.41088415 63.7714844,0.357389618 C69.2464736,-0.564736121 76.8610569,0.297568567 86.6152344,2.94430368"
|
|
14
14
|
id="Line"
|
|
15
|
-
class="
|
|
15
|
+
class="air-purifier_off_grey"
|
|
16
16
|
stroke="#5BC8FA"
|
|
17
17
|
stroke-width="10"
|
|
18
18
|
stroke-linecap="square"
|
|
@@ -20,7 +20,7 @@
|
|
|
20
20
|
<path
|
|
21
21
|
d="M-4.26325641e-14,30.2206709 C4.02953795,32.5022552 12.4315562,33.6793385 25.2060547,33.7519209 C32.8391014,33.7952905 51.5791554,26.4108841 63.7714844,24.3573896 C69.2464736,23.4352639 76.8610569,24.2975686 86.6152344,26.9443037"
|
|
22
22
|
id="Line"
|
|
23
|
-
class="
|
|
23
|
+
class="air-purifier_off_grey"
|
|
24
24
|
stroke="#91DBFB"
|
|
25
25
|
stroke-width="10"
|
|
26
26
|
stroke-linecap="square"
|
|
@@ -28,23 +28,23 @@
|
|
|
28
28
|
<path
|
|
29
29
|
d="M-4.26325641e-14,54.2206709 C4.02953795,56.5022552 12.4315562,57.6793385 25.2060547,57.7519209 C32.8391014,57.7952905 51.5791554,50.4108841 63.7714844,48.3573896 C69.2464736,47.4352639 76.8610569,48.2975686 86.6152344,50.9443037"
|
|
30
30
|
id="Line"
|
|
31
|
-
class="
|
|
31
|
+
class="air-purifier_off_grey"
|
|
32
32
|
stroke="#C8EAFE"
|
|
33
33
|
stroke-width="10"
|
|
34
34
|
stroke-linecap="square"
|
|
35
35
|
/>
|
|
36
36
|
<polygon
|
|
37
37
|
id="Path"
|
|
38
|
-
class="
|
|
38
|
+
class="air-purifier_off_grey"
|
|
39
39
|
fill="#C7C5CB"
|
|
40
40
|
points="17.2333685 76.7914641 70.0374945 76.7914641 73.9430133 79.2866885 76.8250853 84.9649087 87.1832833 114.139252 87.1832833 140.017181 85.5385126 142.175202 83.1303576 143.984565 5.21741581 143.984565 2.85966936 142.750318 1.09613307 140.017181 1.09613307 114.139252 10.9193128 84.9649087 14.372682 79.2866885"
|
|
41
41
|
/>
|
|
42
|
-
<rect class="rectangle
|
|
43
|
-
<rect class="rectangle
|
|
44
|
-
<rect class="rectangle
|
|
45
|
-
<rect class="rectangle
|
|
46
|
-
<rect class="rectangle
|
|
47
|
-
<rect class="rectangle
|
|
42
|
+
<rect class="rectangle air-purifier_off_lgrey" fill="#e0e0e0" x="46" y="84" width="17" height="5" />
|
|
43
|
+
<rect class="rectangle air-purifier_off_lgrey" fill="#e0e0e0" x="46" y="94" width="20" height="5" />
|
|
44
|
+
<rect class="rectangle air-purifier_off_lgrey" fill="#e0e0e0" x="46" y="103" width="22" height="5" />
|
|
45
|
+
<rect class="rectangle air-purifier_off_lgrey" fill="#e0e0e0" x="20" y="103" width="22" height="5" />
|
|
46
|
+
<rect class="rectangle air-purifier_off_lgrey" fill="#e0e0e0" x="22" y="94" width="20" height="5" />
|
|
47
|
+
<rect class="rectangle air-purifier_off_lgrey" fill="#e0e0e0" x="25" y="84" width="17" height="5" />
|
|
48
48
|
</g>
|
|
49
49
|
</g>
|
|
50
50
|
</svg>
|
|
@@ -1 +1 @@
|
|
|
1
|
-
import{a as _,b as D}from"./chunk-
|
|
1
|
+
import{a as _,b as D}from"./chunk-PBJK6VW5.js";import{m as c,n as S}from"./chunk-OCUYP77B.js";import{f as x}from"./chunk-SRP6QX5M.js";import{C as v,g as O,ga as h,h as a,ha as E,ja as y,ka as l,la as f,nb as I,r as p,va as j,w as d,x as T,z as w}from"./chunk-SKZUTSHE.js";var g=new y("JWT_OPTIONS"),m=(()=>{class r{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 i=0,s,n,b=0;n=e.charAt(b++);~n&&(s=i%4?s*64+n:n,i++%4)?o+=String.fromCharCode(255&s>>(-2*i&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 r.\u0275fac=function(e){return new(e||r)(l(g))},r.\u0275prov=h({token:r,factory:r.\u0275fac}),r})(),$=r=>r instanceof Promise?v(()=>r):p(r),R=(()=>{class r{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(i=>typeof i=="string"?i===o:i instanceof RegExp?i.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 i=new URL(o,this.document.location.origin);return i.hostname===t.hostname&&i.pathname===t.pathname}return o instanceof RegExp?o.test(e.url):!1})>-1}handleInterception(e,t,o){let i=this.jwtHelper.getAuthScheme(this.authScheme,t);if(!e&&this.throwNoTokenError)throw new Error("Could not get token from tokenGetter function.");let s=p(!1);return this.skipWhenExpired&&(s=e?$(this.jwtHelper.isTokenExpired(e)):p(!0)),e?s.pipe(T(n=>n&&this.skipWhenExpired?t.clone():t.clone({setHeaders:{[this.headerName]:`${i}${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 $(o).pipe(w(i=>this.handleInterception(i,e,t)))}}return r.\u0275fac=function(e){return new(e||r)(l(g),l(m),l(j))},r.\u0275prov=h({token:r,factory:r.\u0275fac}),r})(),F=(()=>{class r{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:r,providers:[{provide:x,useClass:R,multi:!0},e.jwtOptionsProvider||{provide:g,useValue:e.config},m]}}}return r.\u0275fac=function(e){return new(e||r)(l(r,12))},r.\u0275mod=I({type:r}),r.\u0275inj=E({}),r})();var k=O(_(),1);var q=(()=>{class r{$api=f(S);$jwtHelper=f(m);$settings=f(D);token;user={};logoutTimer;constructor(){this.loadToken()}login(e){return a(this,null,function*(){let t=yield d(this.$api.post("/auth/login",e));if(!this.validateToken(t.access_token))throw new Error("Invalid username or password.");window.localStorage.setItem(c.jwt.tokenKey,t.access_token),yield this.$settings.getAppSettings()})}noauth(){return a(this,null,function*(){let e=yield d(this.$api.post("/auth/noauth",{}));if(this.validateToken(e.access_token))window.localStorage.setItem(c.jwt.tokenKey,e.access_token),yield this.$settings.getAppSettings();else throw new Error("Invalid username or password.")})}logout(){this.user=null,this.token=null,window.localStorage.removeItem(c.jwt.tokenKey),window.location.reload()}loadToken(){return a(this,null,function*(){this.$settings.settingsLoaded||(yield d(this.$settings.onSettingsLoaded));let e=window.localStorage.getItem(c.jwt.tokenKey);e&&this.validateToken(e)})}checkToken(){return a(this,null,function*(){try{return yield d(this.$api.get("/auth/check"))}catch(e){e.status===401&&(console.error("Current token is not valid"),this.logout())}})}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(c.jwt.tokenKey),this.token=null,!1}}setLogoutTimer(){if(clearTimeout(this.logoutTimer),!this.$jwtHelper.isTokenExpired(this.token,this.$settings.serverTimeOffset)){let t=(0,k.default)(this.$jwtHelper.getTokenExpirationDate(this.token)).diff((0,k.default)().add(this.$settings.serverTimeOffset,"s"),"millisecond");t<=2147483647&&(this.logoutTimer=setTimeout(()=>a(this,null,function*(){this.$settings.formAuth===!1?(yield this.noauth(),window.location.reload()):this.logout()}),t))}}static \u0275fac=function(t){return new(t||r)};static \u0275prov=h({token:r,factory:r.\u0275fac})}return r})();export{F as a,q as b};
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
import{g as i}from"./chunk-X7PVYZAE.js";import"./chunk-SRP6QX5M.js";import{ha as t,nb as e}from"./chunk-SKZUTSHE.js";var d=[{path:"",redirectTo:"/",pathMatch:"full"},{path:"docker",loadChildren:()=>import("./chunk-DFK6HAB2.js").then(o=>o.DockerModule)},{path:"linux",loadChildren:()=>import("./chunk-YO4OJGZL.js").then(o=>o.LinuxModule)},{path:"terminal",loadChildren:()=>import("./chunk-HVYATWTL.js").then(o=>o.TerminalModule)}],l=(()=>{class o{static \u0275fac=function(r){return new(r||o)};static \u0275mod=e({type:o});static \u0275inj=t({imports:[i.forChild(d),i]})}return o})();var p=(()=>{class o{static \u0275fac=function(r){return new(r||o)};static \u0275mod=e({type:o});static \u0275inj=t({imports:[l]})}return o})();export{p as PlatformToolsModule};
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
import{A,c as R,d as b,e as O,f as T,g as N,j as w,m as q,p as z,q as H,w as D,x as G,z as Q}from"./chunk-T252YJXA.js";import{b as K}from"./chunk-24HGAFIA.js";import{d as U}from"./chunk-X7PVYZAE.js";import{b as J}from"./chunk-PBJK6VW5.js";import{m as W}from"./chunk-OCUYP77B.js";import{b as j}from"./chunk-LXXELGX4.js";import"./chunk-SRP6QX5M.js";import{Bc as l,Cc as d,Ib as u,Jb as c,M as I,Mc as C,Ob as m,Oc as V,Pb as r,Qb as a,Rb as s,Xa as x,Yb as E,Zb as F,ab as i,cd as P,ec as v,fc as M,fd as B,h as y,kc as g,la as p,lc as h,mb as k,mc as L,td as $,w as S,xc as f}from"./chunk-SKZUTSHE.js";var Y=["password"],Z=["username"],ee=["otp"],te=e=>({background:e}),ie=e=>({anim:e}),X=e=>({"is-invalid":e});function ne(e,_){if(e&1&&(r(0,"div",8)(1,"span",12),s(2,"i",13),a(),s(3,"input",14,0),l(5,"translate"),a(),r(6,"div",8)(7,"span",12),s(8,"i",15),a(),s(9,"input",16,1),l(11,"translate"),a()),e&2){let n=F();i(3),m("placeholder",d(5,4,"users.label_username"))("ngClass",f(8,X,n.form.controls.username.dirty&&n.form.controls.username.errors)),i(6),m("placeholder",d(11,6,"users.label_password"))("ngClass",f(10,X,n.form.controls.password.dirty&&n.form.controls.password.errors))}}function oe(e,_){e&1&&(r(0,"div",8)(1,"span",12),s(2,"i",17),a(),s(3,"input",18,2),l(5,"translate"),a()),e&2&&(i(3),m("placeholder",d(5,1,"login.label_2fa_code")))}function ae(e,_){e&1&&(r(0,"div",9)(1,"div",12),s(2,"i",19),a(),r(3,"div",20)(4,"div",21),g(5),l(6,"translate"),a(),s(7,"div",22),l(8,"translate"),a()()),e&2&&(i(5),h(d(6,2,"login.invalid_credentials")),i(2),m("innerHTML",d(8,4,"login.invalid_credentials_2"),x))}function re(e,_){e&1&&(r(0,"div",9)(1,"div",12),s(2,"i",19),a(),r(3,"div",20)(4,"div",21),g(5),l(6,"translate"),a(),s(7,"div",22),l(8,"translate"),a()()),e&2&&(i(5),h(d(6,2,"login.invalid_code")),i(2),m("innerHTML",d(8,4,"login.invalid_credentials_2"),x))}var _e=(()=>{class e{$auth=p(K);$cdr=p(V);$router=p(U);$settings=p(J);targetRoute;passwordInput=C("password");usernameInput=C("username");otpInput=C("otp");backgroundStyle;invalidCredentials=!1;invalid2faCode=!1;twoFactorCodeRequired=!1;inProgress=!1;form;ngOnInit(){this.form=new N({username:new w(""),password:new w("")}),this.form.valueChanges.pipe(I(500)).subscribe(n=>{let o=this.passwordInput()?.nativeElement.value;o&&o!==n.password&&this.form.controls.password.setValue(o)}),this.targetRoute=window.sessionStorage.getItem("target_route")||"",this.setBackground()}ngAfterViewChecked(){this.$cdr.detectChanges()}onSubmit(){return y(this,null,function*(){this.invalidCredentials=!1,this.invalid2faCode=!1,this.inProgress=!0,document.getElementById("submit-button")?.blur();let n=this.passwordInput()?.nativeElement.value;n&&n!==this.form.get("password").value&&this.form.controls.password.setValue(n);let o=this.usernameInput()?.nativeElement.value;if(o&&o!==this.form.get("username").value&&this.form.controls.username.setValue(o),this.twoFactorCodeRequired){let t=this.otpInput()?.nativeElement.value;t&&t!==this.form.get("otp").value&&this.form.controls.username.setValue(t)}try{yield this.$auth.login(this.form.getRawValue()),this.$router.navigateByUrl(this.targetRoute),window.sessionStorage.removeItem("target_route")}catch(t){t.status===412?(this.form.controls.otp?(this.form.controls.otp.setErrors(["Invalid Code"]),this.invalid2faCode=!0):this.form.addControl("otp",new w("",[b.required,b.minLength(6),b.maxLength(6)])),this.twoFactorCodeRequired=!0,setTimeout(()=>{document.getElementById("form-ota").focus()},100)):this.invalidCredentials=!0}this.inProgress=!1})}setBackground(){return y(this,null,function*(){if(this.$settings.settingsLoaded||(yield S(this.$settings.onSettingsLoaded)),this.$settings.env.customWallpaperHash){let n=`${W.api.base}/auth/wallpaper/${this.$settings.env.customWallpaperHash}`;this.backgroundStyle=`url('${n}') center/cover`}})}static \u0275fac=function(o){return new(o||e)};static \u0275cmp=k({type:e,selectors:[["ng-component"]],viewQuery:function(o,t){o&1&&(v(t.passwordInput,Y,5),v(t.usernameInput,Z,5),v(t.otpInput,ee,5)),o&2&&M(3)},decls:15,vars:18,consts:[["username",""],["password",""],["otp",""],[1,"login-container","gradient","d-flex","align-items-start","justify-content-center",3,"ngStyle","ngClass"],[1,"w-100","login-card","d-flex","py-4","flex-column"],["ngSrc","/assets/homebridge-color-round.svg","alt","Homebridge Logo","height","100","width","100","priority","true",1,"homebridge-logo","mx-auto","my-3"],["novalidate","",3,"ngSubmit","formGroup"],[1,"mb-4","text-center"],[1,"input-group","mb-4"],[1,"input-group","no-border","mb-4"],[1,"text-center"],["tabindex","3","id","submit-button","type","submit",1,"btn","btn-primary","mb-2",3,"disabled"],[1,"input-group-text","custom-input"],[1,"fas","fa-fw","fa-user","primary-text","fa-lg"],["formControlName","username","type","text","id","form-username","autofocus","","autocomplete","username","autocapitalize","none","tabindex","1","required","",1,"form-control","custom-input",3,"placeholder","ngClass"],[1,"fas","fa-fw","fa-lock","primary-text","fa-lg"],["formControlName","password","type","password","id","form-pass","autocomplete","current-password","tabindex","2","required","",1,"form-control","custom-input",3,"placeholder","ngClass"],[1,"fas","fa-fw","fa-key","primary-text","fa-lg"],["formControlName","otp","type","text","id","form-ota","autofocus","","autocomplete","one-time-code","autocapitalize","none","inputmode","numeric","pattern","[0-9]*","tabindex","1",1,"form-control","custom-input",3,"placeholder"],[1,"fas","fa-fw","fa-exclamation-triangle","pink-text","fa-lg"],[1,"form-control","custom-input"],[1,"small","grey-text","fw-semibold"],[1,"small","grey-text",3,"innerHTML"]],template:function(o,t){o&1&&(r(0,"div",3)(1,"div",4),s(2,"img",5),r(3,"form",6),E("ngSubmit",function(){return t.onSubmit()}),r(4,"h4",7),g(5),l(6,"translate"),a(),u(7,ne,12,12),u(8,oe,6,3,"div",8),u(9,ae,9,6,"div",9),u(10,re,9,6,"div",9),r(11,"div",10)(12,"button",11),g(13),l(14,"translate"),a()()()()()),o&2&&(m("ngStyle",f(14,te,t.backgroundStyle))("ngClass",f(16,ie,!t.backgroundStyle)),i(3),m("formGroup",t.form),i(2),h(d(6,10,"setup.welcome_to_homebridge")),i(2),c(t.twoFactorCodeRequired?-1:7),i(),c(t.twoFactorCodeRequired?8:-1),i(),c(t.invalidCredentials?9:-1),i(),c(t.invalid2faCode?10:-1),i(2),m("disabled",t.form.invalid),i(),L(" ",d(14,12,"form.label_continue")," "))},dependencies:[B,Q,q,R,O,T,D,G,A,z,H,P,j,$],styles:["body{overflow:scroll!important} body.dark-mode .login-card{background-color:#2b2b2b;color:#fff}.login-container[_ngcontent-%COMP%]{z-index:-1;padding-top:2em;padding-bottom:2em;min-height:100%;background-size:300% 300%}.anim[_ngcontent-%COMP%]{-webkit-animation:_ngcontent-%COMP%_gradient 20s ease infinite;-moz-animation:gradient 20s ease infinite;-o-animation:gradient 20s ease infinite;animation:_ngcontent-%COMP%_gradient 20s ease infinite}@keyframes _ngcontent-%COMP%_gradient{0%{background-position:0 50%}50%{background-position:100% 50%}to{background-position:0 50%}}.login-card[_ngcontent-%COMP%]{max-width:550px;border-radius:1rem;padding-right:25px;padding-left:25px;background-color:#ffffffe6}.login-card[_ngcontent-%COMP%] .form-control[_ngcontent-%COMP%]:focus{background-color:inherit!important}@media screen and (max-width: 575px){.login-card[_ngcontent-%COMP%]{margin-left:1em;margin-right:1em}}.homebridge-logo[_ngcontent-%COMP%]{margin-bottom:10px}"]})}return e})();export{_e as LoginComponent};
|
|
@@ -0,0 +1,2 @@
|
|
|
1
|
+
import{A as Z,c as G,d as k,e as j,f as D,g as K,j as $,m as A,p as J,q as Q,w as X,z as Y}from"./chunk-T252YJXA.js";import{a as ae}from"./chunk-OFS35DEJ.js";import{b as oe}from"./chunk-24HGAFIA.js";import{b as re}from"./chunk-PBJK6VW5.js";import{k as ie,m as U,n as ne}from"./chunk-OCUYP77B.js";import{a as ee,b as te}from"./chunk-LXXELGX4.js";import{l as q}from"./chunk-SRP6QX5M.js";import{Bc as a,Cc as s,Hb as M,Ib as z,Jb as T,Ob as m,Pb as o,Qb as r,Rb as u,Vb as I,Xa as W,Yb as x,Zb as _,ab as n,cd as H,fd as N,h as S,hc as O,kc as l,la as w,lc as f,mb as V,mc as g,ra as C,sa as b,td as R,w as h,wc as L,xc as B,yc as E}from"./chunk-SKZUTSHE.js";var pe=t=>({background:t}),de=t=>({anim:t}),ce=t=>({"progress-bar-animated":t}),me=()=>["restoring","restarting","restore-complete"],P=(t,d)=>({"is-valid":t,"is-invalid":d});function ue(t,d){if(t&1){let e=I();o(0,"div",5)(1,"h4",6),l(2),a(3,"translate"),r(),u(4,"div",7),a(5,"translate"),o(6,"button",8),x("click",function(){C(e);let i=_();return b(i.onClickGettingStarted())}),l(7),a(8,"translate"),r(),o(9,"a",9),x("click",function(){C(e);let i=_();return b(i.onClickRestoreBackup())}),l(10),a(11,"translate"),r()()}t&2&&(n(2),f(s(3,4,"setup.welcome_to_homebridge")),n(2),m("innerHTML",s(5,6,"setup.intro"),W),n(3),g(" ",s(8,8,"setup.button_get_started")," "),n(3),f(s(11,10,"setup_wizard_restore")))}function ge(t,d){if(t&1){let e=I();o(0,"div",5)(1,"h4",6),l(2),a(3,"translate"),r(),o(4,"div",10),l(5),a(6,"translate"),r(),o(7,"div",11)(8,"form",12),x("ngSubmit",function(){C(e);let i=_();return b(i.createFirstUser())}),o(9,"div",13)(10,"span",14),u(11,"i",15),r(),u(12,"input",16),a(13,"translate"),r(),o(14,"div",13)(15,"span",14),u(16,"i",17),r(),u(17,"input",18),a(18,"translate"),r(),o(19,"div",13)(20,"span",14),u(21,"i",17),r(),u(22,"input",19),a(23,"translate"),r(),o(24,"div",20)(25,"button",21),x("click",function(){C(e);let i=_();return b(i.onClickCancelRestore())}),l(26),a(27,"translate"),r(),o(28,"button",22),l(29),a(30,"translate"),r()()()()()}if(t&2){let e=_();n(2),f(s(3,16,"setup.create_account")),n(3),f(s(6,18,"setup_wizard_create_info")),n(3),m("formGroup",e.createUserForm),n(4),m("readonly",e.loading)("ngClass",E(30,P,e.createUserForm.controls.username.dirty&&e.createUserForm.controls.username.valid,e.createUserForm.controls.username.dirty&&e.createUserForm.controls.username.invalid))("placeholder",s(13,20,"users.label_username")),n(5),m("readonly",e.loading)("ngClass",E(33,P,e.createUserForm.controls.password.dirty&&e.createUserForm.controls.password.valid,e.createUserForm.controls.password.dirty&&e.createUserForm.controls.password.errors))("placeholder",s(18,22,"users.label_password")),n(5),m("readonly",e.loading)("ngClass",E(36,P,e.createUserForm.controls.passwordConfirm.dirty&&e.createUserForm.controls.passwordConfirm.valid,e.createUserForm.controls.passwordConfirm.dirty&&e.createUserForm.controls.passwordConfirm.errors))("placeholder",s(23,24,"users.label_confirm_password")),n(3),m("disabled",e.restoreUploading),n(),g(" ",s(27,26,"form.button_back")," "),n(2),m("disabled",e.createUserForm.invalid||e.loading),n(),g(" ",s(30,28,"form.label_continue")," ")}}function _e(t,d){t&1&&(u(0,"i",25),l(1),a(2,"translate")),t&2&&(n(),g(" ",s(2,1,"backup.label_uploading")," "))}function fe(t,d){t&1&&(l(0),a(1,"translate")),t&2&&g(" ",s(1,1,"form.label_continue")," ")}function he(t,d){if(t&1){let e=I();o(0,"div",5)(1,"h4",6),l(2),a(3,"translate"),r(),o(4,"div",10),l(5),a(6,"translate"),r(),o(7,"input",23),x("change",function(i){C(e);let F=_();return b(F.handleRestoreFileInput(i.target.files))}),r(),o(8,"div",20)(9,"button",21),x("click",function(){C(e);let i=_();return b(i.onClickCancelRestore())}),l(10),a(11,"translate"),r(),o(12,"button",24),x("click",function(){C(e);let i=_();return b(i.onRestoreBackupClick())}),z(13,_e,3,3)(14,fe,2,3),r()()()}if(t&2){let e=_();n(2),f(s(3,6,"setup_wizard_restore")),n(3),f(s(6,8,"backup.restore_help_one")),n(4),m("disabled",e.restoreUploading),n(),g(" ",s(11,10,"form.button_back")," "),n(2),m("disabled",e.restoreUploading||!e.selectedFile),n(),T(e.restoreUploading?13:14)}}function we(t,d){t&1&&(l(0),a(1,"translate")),t&2&&g(" ",s(1,1,"setup_wizard_restoring")," ")}function Ce(t,d){t&1&&(l(0),a(1,"translate")),t&2&&g(" ",s(1,1,"setup_wizard_starting")," ")}function be(t,d){t&1&&(l(0),a(1,"translate")),t&2&&g(" ",s(1,1,"setup_wizard_complete")," ")}function xe(t,d){t&1&&(o(0,"a",27),l(1),a(2,"translate"),r()),t&2&&(n(),g(" ",s(2,1,"form.label_continue")," "))}function ve(t,d){if(t&1&&(o(0,"div",5)(1,"h4",6),z(2,we,2,3)(3,Ce,2,3)(4,be,2,3),r(),u(5,"div",26),z(6,xe,3,3,"a",27),r()),t&2){let e=_();n(2),T(e.step==="restoring"?2:e.step==="restarting"?3:e.step==="restore-complete"?4:-1),n(4),T(e.step==="restore-complete"?6:-1)}}function ye(t,d){t&1&&(o(0,"div",5)(1,"h4",28),l(2),a(3,"translate"),r(),o(4,"div",10),l(5),a(6,"translate"),r(),o(7,"a",29),l(8),a(9,"translate"),r()()),t&2&&(n(2),f(s(3,3,"setup_wizard_complete_title")),n(3),f(s(6,5,"setup_wizard_completed")),n(3),g(" ",s(9,7,"form.label_continue")," "))}var He=(()=>{class t{$api=w(ne);$auth=w(oe);$settings=w(re);$title=w(q);$toastr=w(ie);$translate=w(ee);$ws=w(ae);io;step="welcome";backgroundStyle;progress=1;restoreInProgress=!1;restoreStarted=!1;restoreFailed=!1;loading=!1;selectedFile;restoreUploading=!1;createUserForm=new K({username:new $("",[k.required]),password:new $("",[k.compose([k.required,k.minLength(4)])]),passwordConfirm:new $("",[k.required])},this.matchPassword);ngOnInit(){return S(this,null,function*(){this.$title.setTitle(this.$translate.instant("setup_wizard_page_title")),yield this.setBackground()})}onClickGettingStarted(){this.step="create-account",this.progress=50}onClickRestoreBackup(){this.step="restore-backup",this.progress=20}onClickCancelRestore(){this.selectedFile=null,this.step="welcome",this.progress=1}createFirstUser(){return S(this,null,function*(){this.loading=!0,this.progress=75;let e=this.createUserForm.getRawValue();e.name=e.username;try{yield h(this.$api.post("/setup-wizard/create-first-user",e)),this.$settings.env.setupWizardComplete=!0,this.progress=100,this.loading=!1,yield this.$auth.login({username:e.username,password:e.password}),this.step="setup-complete"}catch(p){this.loading=!1,this.progress=50,console.error(p),this.$toastr.error(p.message,this.$translate.instant("toast.title_error"))}})}handleRestoreFileInput(e){e.length?(this.selectedFile=e[0],this.progress=40):(delete this.selectedFile,this.progress=20)}onRestoreBackupClick(){return S(this,null,function*(){this.restoreUploading=!0,this.step="restoring",this.progress=60;try{let e=yield h(this.$api.get("/setup-wizard/get-setup-wizard-token"));window.localStorage.setItem(U.jwt.tokenKey,e.access_token),this.$auth.token=e.access_token,this.progress=65;let p=new FormData;p.append("restoreArchive",this.selectedFile,this.selectedFile.name),yield h(this.$api.post("/backup/restore",p)),this.progress=70,this.io=this.$ws.connectToNamespace("backup");let i=document.getElementById("output");this.io.socket.on("stdout",c=>{c.split(`
|
|
2
|
+
\r`).forEach(v=>{if(v&&!/^[⠇⠏⠋⠙⠹⠸]+$/.test(v)){let y=document.createElement("div"),le=/\x1B\[(\d{1,2}(;\d{1,2})?)?[mGK]/g;y.innerHTML=v.replace(le,""),v.includes("[0;31m")?y.classList.add("red-text"):v.includes("[0;32m")?y.classList.add("green-text"):v.includes("[0;33m")?y.classList.add("orange-text"):v.includes("[0;36m")&&y.classList.add("cyan-text"),i.appendChild(y),i.scrollTop=i.scrollHeight}})}),this.restoreStarted=!0,this.restoreInProgress=!0,this.progress=75,yield h(this.io.request("do-restore")),this.progress=80,this.restoreInProgress=!1,yield h(this.$api.put("/backup/restart",{})),this.step="restarting",this.progress=85,window.localStorage.removeItem(U.jwt.tokenKey),this.$auth.token=null;let F=document.createElement("div");F.classList.add("orange-text"),F.innerHTML="Starting Homebridge, please wait...",i.appendChild(F),i.scrollTop=i.scrollHeight,yield new Promise(c=>setTimeout(c,3e3)),this.progress=88,yield new Promise(c=>setTimeout(c,3e3)),this.progress=91,yield new Promise(c=>setTimeout(c,3e3)),this.progress=94,yield new Promise(c=>setTimeout(c,3e3)),this.progress=97,yield new Promise(c=>setTimeout(c,3e3)),this.progress=99;let se=setInterval(()=>S(this,null,function*(){try{yield h(this.$api.get("/auth/settings")),clearInterval(se),this.progress=100,this.restoreUploading=!1,this.step="restore-complete"}catch{}}),1e3)}catch(e){console.error(e),this.restoreUploading=!1,this.restoreFailed=!0,this.progress=20,this.step="restore-backup",this.$toastr.error(e.message,this.$translate.instant("toast.title_error"))}finally{this.io&&this.io.end()}})}setBackground(){return S(this,null,function*(){if(this.$settings.settingsLoaded||(yield h(this.$settings.onSettingsLoaded)),this.$settings.env.customWallpaperHash){let e=`${U.api.base}/auth/wallpaper/${this.$settings.env.customWallpaperHash}`;this.backgroundStyle=`url('${e}') center/cover`}})}matchPassword(e){let p=e.get("password").value,i=e.get("passwordConfirm").value;if(p!==i)e.get("passwordConfirm").setErrors({matchPassword:!0});else return null}static \u0275fac=function(p){return new(p||t)};static \u0275cmp=V({type:t,selectors:[["ng-component"]],decls:10,vars:14,consts:[[1,"setup-container","gradient","d-flex","align-items-start","justify-content-center",3,"ngStyle","ngClass"],[1,"w-100","setup-card","d-flex","py-4","flex-column"],["ngSrc","/assets/homebridge-color-round.svg","alt","Homebridge Logo","height","100","width","100","priority","true",1,"homebridge-logo","mx-auto","my-3"],[1,"progress","w-100","my-4"],["role","progressbar","aria-valuemin","0","aria-valuemax","100",1,"progress-bar","progress-bar-striped","bg-success",3,"ngClass"],[1,"w-100","d-flex","flex-column","align-items-center","mb-2"],[1,"mb-3","text-center"],[1,"mb-4","small","grey-text","text-center",3,"innerHTML"],["type","button",1,"btn","btn-lg","btn-primary","mb-4",3,"click"],["href","javascript:void(0)",1,"grey-text",3,"click"],[1,"mb-4","small","grey-text","text-center"],[1,"w-100"],["novalidate","",3,"ngSubmit","formGroup"],[1,"input-group","mb-4"],[1,"input-group-text","custom-input"],[1,"fas","fa-fw","fa-user","primary-text","fa-lg"],["formControlName","username","type","text","id","form-username","autocomplete","username","autocapitalize","none","tabindex","1","required","",1,"form-control","custom-input",3,"readonly","ngClass","placeholder"],[1,"fas","fa-fw","fa-lock","primary-text","fa-lg"],["formControlName","password","type","password","id","form-pass","autocomplete","new-password","tabindex","2","required","",1,"form-control","custom-input",3,"readonly","ngClass","placeholder"],["formControlName","passwordConfirm","type","password","id","form-pass-confirm","autocomplete","new-password","tabindex","2","required","",1,"form-control","custom-input",3,"readonly","ngClass","placeholder"],[1,"mt-3","w-100","d-flex","justify-content-between"],["type","button",1,"btn","btn-elegant","ms-0",3,"click","disabled"],["type","submit",1,"btn","btn-primary",3,"disabled"],["type","file","id","restoreFileUpload","accept","application/gzip, .gz",1,"form-control","custom-input","mb-3",3,"change"],["type","button",1,"btn","btn-primary","me-0",3,"click","disabled"],[1,"fas","fa-fw","fa-spinner","fa-pulse"],["id","output",1,"font-monospace","small","alert","alert-info","w-100","text-start","mt-1","mb-0"],["href","/login",1,"btn","btn-lg","btn-primary","mt-4"],[1,"mb-3"],["href","/",1,"btn","btn-lg","btn-primary"]],template:function(p,i){p&1&&(o(0,"div",0)(1,"div",1),u(2,"img",2),o(3,"div",3),u(4,"div",4),r(),z(5,ue,12,12,"div",5)(6,ge,31,39,"div",5)(7,he,15,12,"div",5)(8,ve,7,2,"div",5)(9,ye,10,9,"div",5),r()()),p&2&&(m("ngStyle",B(7,pe,i.backgroundStyle))("ngClass",B(9,de,!i.backgroundStyle)),n(4),O("width",i.progress+"%"),m("ngClass",B(11,ce,i.loading||i.restoreUploading)),M("aria-valuenow",i.progress),n(),T(i.step==="welcome"?5:i.step==="create-account"?6:i.step==="restore-backup"?7:L(13,me).includes(i.step)?8:i.step==="setup-complete"?9:-1))},dependencies:[H,te,R,Y,A,G,j,D,X,Z,J,Q,N],styles:["body{overflow:scroll!important} body.dark-mode .setup-card{background-color:#2b2b2b;color:#fff}.setup-container[_ngcontent-%COMP%]{z-index:-1;padding-top:2em;padding-bottom:2em;min-height:100%;background-size:300% 300%}.anim[_ngcontent-%COMP%]{-webkit-animation:_ngcontent-%COMP%_gradient 20s ease infinite;-moz-animation:gradient 20s ease infinite;-o-animation:gradient 20s ease infinite;animation:_ngcontent-%COMP%_gradient 20s ease infinite}@keyframes _ngcontent-%COMP%_gradient{0%{background-position:0 50%}50%{background-position:100% 50%}to{background-position:0 50%}}.setup-card[_ngcontent-%COMP%]{max-width:550px;border-radius:1rem;padding-right:25px;padding-left:25px;background-color:#ffffffe6}.setup-card[_ngcontent-%COMP%] .form-control[_ngcontent-%COMP%]:focus{background-color:inherit!important}@media screen and (max-width: 575px){.setup-card[_ngcontent-%COMP%]{margin-left:1em;margin-right:1em}}.homebridge-logo[_ngcontent-%COMP%]{margin-bottom:10px}.progress[_ngcontent-%COMP%]{background-color:#ddd}#output[_ngcontent-%COMP%]{height:200px;overflow-y:scroll;white-space:pre-wrap}"]})}return t})();export{He as SetupWizardComponent};
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import{a as S,b as O,c as U}from"./chunk-UD6SVFW2.js";import{a as g}from"./chunk-
|
|
1
|
+
import{a as S,b as O,c as U}from"./chunk-UD6SVFW2.js";import{a as g}from"./chunk-OFS35DEJ.js";import{M as w,e as x,g as h,ga as E,la as L,n as R}from"./chunk-SKZUTSHE.js";var F=x((v,b)=>{(function(a,l){typeof define=="function"&&define.amd?define([],l):typeof v<"u"?l():(l(),a.FileSaver={})})(v,function(){"use strict";function a(e,t){return typeof t>"u"?t={autoBom:!1}:typeof t!="object"&&(console.warn("Deprecated: Expected third argument to be a object"),t={autoBom:!t}),t.autoBom&&/^\s*(?:text\/\S*|application\/xml|\S*\/\S*\+xml)\s*;.*charset\s*=\s*utf-8/i.test(e.type)?new Blob(["\uFEFF",e],{type:e.type}):e}function l(e,t,n){var i=new XMLHttpRequest;i.open("GET",e),i.responseType="blob",i.onload=function(){r(i.response,t,n)},i.onerror=function(){console.error("could not download file")},i.send()}function d(e){var t=new XMLHttpRequest;t.open("HEAD",e,!1);try{t.send()}catch{}return 200<=t.status&&299>=t.status}function c(e){try{e.dispatchEvent(new MouseEvent("click"))}catch{var t=document.createEvent("MouseEvents");t.initMouseEvent("click",!0,!0,window,0,0,0,80,20,!1,!1,!1,!1,0,null),e.dispatchEvent(t)}}var s=typeof window=="object"&&window.window===window?window:typeof self=="object"&&self.self===self?self:typeof global=="object"&&global.global===global?global:void 0,m=s.navigator&&/Macintosh/.test(navigator.userAgent)&&/AppleWebKit/.test(navigator.userAgent)&&!/Safari/.test(navigator.userAgent),r=s.saveAs||(typeof window!="object"||window!==s?function(){}:"download"in HTMLAnchorElement.prototype&&!m?function(e,t,n){var i=s.URL||s.webkitURL,o=document.createElement("a");t=t||e.name||"download",o.download=t,o.rel="noopener",typeof e=="string"?(o.href=e,o.origin===location.origin?c(o):d(o.href)?l(e,t,n):c(o,o.target="_blank")):(o.href=i.createObjectURL(e),setTimeout(function(){i.revokeObjectURL(o.href)},4e4),setTimeout(function(){c(o)},0))}:"msSaveOrOpenBlob"in navigator?function(e,t,n){if(t=t||e.name||"download",typeof e!="string")navigator.msSaveOrOpenBlob(a(e,n),t);else if(d(e))l(e,t,n);else{var i=document.createElement("a");i.href=e,i.target="_blank",setTimeout(function(){c(i)})}}:function(e,t,n,i){if(i=i||open("","_blank"),i&&(i.document.title=i.document.body.innerText="downloading..."),typeof e=="string")return l(e,t,n);var o=e.type==="application/octet-stream",z=/constructor/i.test(s.HTMLElement)||s.safari,y=/CriOS\/[\d]+/.test(navigator.userAgent);if((y||o&&z||m)&&typeof FileReader<"u"){var u=new FileReader;u.onloadend=function(){var f=u.result;f=y?f:f.replace(/^data:[^;]*;/,"data:attachment/file;"),i?i.location.href=f:location=f,i=null},u.readAsDataURL(e)}else{var A=s.URL||s.webkitURL,p=A.createObjectURL(e);i?i.location=p:location.href=p,i=null,setTimeout(function(){A.revokeObjectURL(p)},4e4)}});s.saveAs=r.saveAs=r,typeof b<"u"&&(b.exports=r)})});var k=h(S(),1),j=h(O(),1),T=h(U(),1);var W=(()=>{class a{$ws=L(g);io;fitAddon;webLinksAddon;resize;elementResize;pluginName;term;startTerminal(d,c={},s,m){this.pluginName=m,this.elementResize=s,this.io=this.$ws.connectToNamespace("log"),this.term=new k.Terminal(c),setTimeout(()=>{this.term.loadAddon(this.fitAddon),this.term.loadAddon(this.webLinksAddon)}),this.fitAddon=new j.FitAddon,this.webLinksAddon=new T.WebLinksAddon,this.resize=new R,this.term.open(d.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
|