mirror of
https://github.com/ckaczor/HomeMonitor.git
synced 2026-01-13 17:22:54 -05:00
Continue kiosk work
This commit is contained in:
@@ -27,9 +27,9 @@
|
||||
"devDependencies": {
|
||||
"@babel/types": "^7.26.3",
|
||||
"@types/node": "^20.17.9",
|
||||
"@typescript-eslint/parser": "8.17.0",
|
||||
"@vitejs/plugin-vue": "^4.6.2",
|
||||
"@vue/eslint-config-typescript": "^14.1.4",
|
||||
"@typescript-eslint/parser": "8.17.0",
|
||||
"cross-env": "^7.0.3",
|
||||
"eslint": "^9.16.0",
|
||||
"eslint-plugin-import": "^2.31.0",
|
||||
@@ -45,6 +45,7 @@
|
||||
"vite": "^5.4.11",
|
||||
"vite-plugin-vuetify": "^2.0.4",
|
||||
"vue-router": "^4.5.0",
|
||||
"vue-tsc": "^2.1.10"
|
||||
"vue-tsc": "^2.1.10",
|
||||
"websocketstream-polyfill": "^1.0.1"
|
||||
}
|
||||
}
|
||||
|
||||
408
WebDisplay/pnpm-lock.yaml
generated
408
WebDisplay/pnpm-lock.yaml
generated
@@ -22,7 +22,7 @@ importers:
|
||||
version: 8.8.1(vue@3.5.13(typescript@5.6.2))
|
||||
apexcharts:
|
||||
specifier: ^4.1.0
|
||||
version: 4.1.0
|
||||
version: 4.2.0
|
||||
axios:
|
||||
specifier: ^1.7.9
|
||||
version: 1.7.9
|
||||
@@ -46,7 +46,7 @@ importers:
|
||||
version: 3.5.13(typescript@5.6.2)
|
||||
vue3-apexcharts:
|
||||
specifier: ^1.8.0
|
||||
version: 1.8.0(apexcharts@4.1.0)(vue@3.5.13(typescript@5.6.2))
|
||||
version: 1.8.0(apexcharts@4.2.0)(vue@3.5.13(typescript@5.6.2))
|
||||
vuetify:
|
||||
specifier: ^3.7.5
|
||||
version: 3.7.5(typescript@5.6.2)(vite-plugin-vuetify@2.0.4)(vue@3.5.13(typescript@5.6.2))
|
||||
@@ -56,13 +56,13 @@ importers:
|
||||
version: 7.26.3
|
||||
'@types/node':
|
||||
specifier: ^20.17.9
|
||||
version: 20.17.9
|
||||
version: 20.17.10
|
||||
'@typescript-eslint/parser':
|
||||
specifier: 8.17.0
|
||||
version: 8.17.0(eslint@9.16.0)(typescript@5.6.2)
|
||||
'@vitejs/plugin-vue':
|
||||
specifier: ^4.6.2
|
||||
version: 4.6.2(vite@5.4.11(@types/node@20.17.9)(sass@1.82.0))(vue@3.5.13(typescript@5.6.2))
|
||||
version: 4.6.2(vite@5.4.11(@types/node@20.17.10)(sass@1.82.0))(vue@3.5.13(typescript@5.6.2))
|
||||
'@vue/eslint-config-typescript':
|
||||
specifier: ^14.1.4
|
||||
version: 14.1.4(@typescript-eslint/parser@8.17.0(eslint@9.16.0)(typescript@5.6.2))(eslint-plugin-vue@9.32.0(eslint@9.16.0))(eslint@9.16.0)(typescript@5.6.2)
|
||||
@@ -95,7 +95,7 @@ importers:
|
||||
version: 5.6.2
|
||||
unplugin-fonts:
|
||||
specifier: ^1.3.1
|
||||
version: 1.3.1(vite@5.4.11(@types/node@20.17.9)(sass@1.82.0))
|
||||
version: 1.3.1(vite@5.4.11(@types/node@20.17.10)(sass@1.82.0))
|
||||
unplugin-vue-components:
|
||||
specifier: ^0.26.0
|
||||
version: 0.26.0(@babel/parser@7.26.3)(rollup@4.28.1)(vue@3.5.13(typescript@5.6.2))
|
||||
@@ -104,16 +104,19 @@ importers:
|
||||
version: 0.7.0(rollup@4.28.1)(vue-router@4.5.0(vue@3.5.13(typescript@5.6.2)))(vue@3.5.13(typescript@5.6.2))
|
||||
vite:
|
||||
specifier: ^5.4.11
|
||||
version: 5.4.11(@types/node@20.17.9)(sass@1.82.0)
|
||||
version: 5.4.11(@types/node@20.17.10)(sass@1.82.0)
|
||||
vite-plugin-vuetify:
|
||||
specifier: ^2.0.4
|
||||
version: 2.0.4(vite@5.4.11(@types/node@20.17.9)(sass@1.82.0))(vue@3.5.13(typescript@5.6.2))(vuetify@3.7.5)
|
||||
version: 2.0.4(vite@5.4.11(@types/node@20.17.10)(sass@1.82.0))(vue@3.5.13(typescript@5.6.2))(vuetify@3.7.5)
|
||||
vue-router:
|
||||
specifier: ^4.5.0
|
||||
version: 4.5.0(vue@3.5.13(typescript@5.6.2))
|
||||
vue-tsc:
|
||||
specifier: ^2.1.10
|
||||
version: 2.1.10(typescript@5.6.2)
|
||||
websocketstream-polyfill:
|
||||
specifier: ^1.0.1
|
||||
version: 1.0.1
|
||||
|
||||
packages:
|
||||
|
||||
@@ -573,22 +576,19 @@ packages:
|
||||
'@types/json5@0.0.29':
|
||||
resolution: {integrity: sha512-dRLjCWHYg4oaA77cxO64oO+7JwCwnIzkZPdrrC71jQmQtlhM556pwKo5bUzqvZndkVbeFLIIi+9TC40JNF5hNQ==}
|
||||
|
||||
'@types/node@20.17.9':
|
||||
resolution: {integrity: sha512-0JOXkRyLanfGPE2QRCwgxhzlBAvaRdCNMcvbd7jFfpmD4eEXll7LRwy5ymJmyeZqk7Nh7eD2LeUyQ68BbndmXw==}
|
||||
'@types/node@20.17.10':
|
||||
resolution: {integrity: sha512-/jrvh5h6NXhEauFFexRin69nA0uHJ5gwk4iDivp/DeoEua3uwCUto6PC86IpRITBOs4+6i2I56K5x5b6WYGXHA==}
|
||||
|
||||
'@types/suncalc@1.9.2':
|
||||
resolution: {integrity: sha512-ATAGBHHfA1TlE2tjfidLyTcysjoT2JHHEAmWRULh73SU9UTn++j5fqHEW16X6Y/2Li87jEQXzgu4R/OOdlDqzw==}
|
||||
|
||||
'@typescript-eslint/eslint-plugin@8.17.0':
|
||||
resolution: {integrity: sha512-HU1KAdW3Tt8zQkdvNoIijfWDMvdSweFYm4hWh+KwhPstv+sCmWb89hCIP8msFm9N1R/ooh9honpSuvqKWlYy3w==}
|
||||
'@typescript-eslint/eslint-plugin@8.18.0':
|
||||
resolution: {integrity: sha512-NR2yS7qUqCL7AIxdJUQf2MKKNDVNaig/dEB0GBLU7D+ZdHgK1NoH/3wsgO3OnPVipn51tG3MAwaODEGil70WEw==}
|
||||
engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0}
|
||||
peerDependencies:
|
||||
'@typescript-eslint/parser': ^8.0.0 || ^8.0.0-alpha.0
|
||||
eslint: ^8.57.0 || ^9.0.0
|
||||
typescript: '*'
|
||||
peerDependenciesMeta:
|
||||
typescript:
|
||||
optional: true
|
||||
typescript: '>=4.8.4 <5.8.0'
|
||||
|
||||
'@typescript-eslint/parser@8.17.0':
|
||||
resolution: {integrity: sha512-Drp39TXuUlD49F7ilHHCG7TTg8IkA+hxCuULdmzWYICxGXvDXmDmWEjJYZQYgf6l/TFfYNE167m7isnc3xlIEg==}
|
||||
@@ -600,24 +600,36 @@ packages:
|
||||
typescript:
|
||||
optional: true
|
||||
|
||||
'@typescript-eslint/parser@8.18.0':
|
||||
resolution: {integrity: sha512-hgUZ3kTEpVzKaK3uNibExUYm6SKKOmTU2BOxBSvOYwtJEPdVQ70kZJpPjstlnhCHcuc2WGfSbpKlb/69ttyN5Q==}
|
||||
engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0}
|
||||
peerDependencies:
|
||||
eslint: ^8.57.0 || ^9.0.0
|
||||
typescript: '>=4.8.4 <5.8.0'
|
||||
|
||||
'@typescript-eslint/scope-manager@8.17.0':
|
||||
resolution: {integrity: sha512-/ewp4XjvnxaREtqsZjF4Mfn078RD/9GmiEAtTeLQ7yFdKnqwTOgRMSvFz4et9U5RiJQ15WTGXPLj89zGusvxBg==}
|
||||
engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0}
|
||||
|
||||
'@typescript-eslint/type-utils@8.17.0':
|
||||
resolution: {integrity: sha512-q38llWJYPd63rRnJ6wY/ZQqIzPrBCkPdpIsaCfkR3Q4t3p6sb422zougfad4TFW9+ElIFLVDzWGiGAfbb/v2qw==}
|
||||
'@typescript-eslint/scope-manager@8.18.0':
|
||||
resolution: {integrity: sha512-PNGcHop0jkK2WVYGotk/hxj+UFLhXtGPiGtiaWgVBVP1jhMoMCHlTyJA+hEj4rszoSdLTK3fN4oOatrL0Cp+Xw==}
|
||||
engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0}
|
||||
|
||||
'@typescript-eslint/type-utils@8.18.0':
|
||||
resolution: {integrity: sha512-er224jRepVAVLnMF2Q7MZJCq5CsdH2oqjP4dT7K6ij09Kyd+R21r7UVJrF0buMVdZS5QRhDzpvzAxHxabQadow==}
|
||||
engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0}
|
||||
peerDependencies:
|
||||
eslint: ^8.57.0 || ^9.0.0
|
||||
typescript: '*'
|
||||
peerDependenciesMeta:
|
||||
typescript:
|
||||
optional: true
|
||||
typescript: '>=4.8.4 <5.8.0'
|
||||
|
||||
'@typescript-eslint/types@8.17.0':
|
||||
resolution: {integrity: sha512-gY2TVzeve3z6crqh2Ic7Cr+CAv6pfb0Egee7J5UAVWCpVvDI/F71wNfolIim4FE6hT15EbpZFVUj9j5i38jYXA==}
|
||||
engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0}
|
||||
|
||||
'@typescript-eslint/types@8.18.0':
|
||||
resolution: {integrity: sha512-FNYxgyTCAnFwTrzpBGq+zrnoTO4x0c1CKYY5MuUTzpScqmY5fmsh2o3+57lqdI3NZucBDCzDgdEbIaNfAjAHQA==}
|
||||
engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0}
|
||||
|
||||
'@typescript-eslint/typescript-estree@8.17.0':
|
||||
resolution: {integrity: sha512-JqkOopc1nRKZpX+opvKqnM3XUlM7LpFMD0lYxTqOTKQfCWAmxw45e3qlOCsEqEB2yuacujivudOFpCnqkBDNMw==}
|
||||
engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0}
|
||||
@@ -627,20 +639,27 @@ packages:
|
||||
typescript:
|
||||
optional: true
|
||||
|
||||
'@typescript-eslint/utils@8.17.0':
|
||||
resolution: {integrity: sha512-bQC8BnEkxqG8HBGKwG9wXlZqg37RKSMY7v/X8VEWD8JG2JuTHuNK0VFvMPMUKQcbk6B+tf05k+4AShAEtCtJ/w==}
|
||||
'@typescript-eslint/typescript-estree@8.18.0':
|
||||
resolution: {integrity: sha512-rqQgFRu6yPkauz+ms3nQpohwejS8bvgbPyIDq13cgEDbkXt4LH4OkDMT0/fN1RUtzG8e8AKJyDBoocuQh8qNeg==}
|
||||
engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0}
|
||||
peerDependencies:
|
||||
typescript: '>=4.8.4 <5.8.0'
|
||||
|
||||
'@typescript-eslint/utils@8.18.0':
|
||||
resolution: {integrity: sha512-p6GLdY383i7h5b0Qrfbix3Vc3+J2k6QWw6UMUeY5JGfm3C5LbZ4QIZzJNoNOfgyRe0uuYKjvVOsO/jD4SJO+xg==}
|
||||
engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0}
|
||||
peerDependencies:
|
||||
eslint: ^8.57.0 || ^9.0.0
|
||||
typescript: '*'
|
||||
peerDependenciesMeta:
|
||||
typescript:
|
||||
optional: true
|
||||
typescript: '>=4.8.4 <5.8.0'
|
||||
|
||||
'@typescript-eslint/visitor-keys@8.17.0':
|
||||
resolution: {integrity: sha512-1Hm7THLpO6ww5QU6H/Qp+AusUUl+z/CAm3cNZZ0jQvon9yicgO7Rwd+/WWRpMKLYV6p2UvdbR27c86rzCPpreg==}
|
||||
engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0}
|
||||
|
||||
'@typescript-eslint/visitor-keys@8.18.0':
|
||||
resolution: {integrity: sha512-pCh/qEA8Lb1wVIqNvBke8UaRjJ6wrAWkJO5yyIbs8Yx6TNGYyfNjOo61tLv+WwLvoLPp4BQ8B7AHKijl8NGUfw==}
|
||||
engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0}
|
||||
|
||||
'@vitejs/plugin-vue@4.6.2':
|
||||
resolution: {integrity: sha512-kqf7SGFoG+80aZG6Pf+gsZIVvGSCKE98JbiWqcCV9cThtg91Jav0yvYFC9Zb+jKetNGF6ZKeoaxgZfND21fWKw==}
|
||||
engines: {node: ^14.18.0 || >=16.0.0}
|
||||
@@ -657,8 +676,8 @@ packages:
|
||||
'@volar/typescript@2.4.10':
|
||||
resolution: {integrity: sha512-F8ZtBMhSXyYKuBfGpYwqA5rsONnOwAVvjyE7KPYJ7wgZqo2roASqNWUnianOomJX5u1cxeRooHV59N0PhvEOgw==}
|
||||
|
||||
'@vue-macros/common@1.15.0':
|
||||
resolution: {integrity: sha512-yg5VqW7+HRfJGimdKvFYzx8zorHUYo0hzPwuraoC1DWa7HHazbTMoVsHDvk3JHa1SGfSL87fRnzmlvgjEHhszA==}
|
||||
'@vue-macros/common@1.15.1':
|
||||
resolution: {integrity: sha512-O0ZXaladWXwHplQnSjxLbB/G1KpdWCUNJPNYVHIxHonGex1BGpoB4fBZZLgddHgAiy18VZG/Iu5L0kwG+SV7JQ==}
|
||||
engines: {node: '>=16.14.0'}
|
||||
peerDependencies:
|
||||
vue: ^2.7.0 || ^3.2.25
|
||||
@@ -762,8 +781,8 @@ packages:
|
||||
resolution: {integrity: sha512-KMReFUr0B4t+D+OBkjR3KYqvocp2XaSzO55UcB6mgQMd3KbcE+mWTyvVV7D/zsdEbNnV6acZUutkiHQXvTr1Rw==}
|
||||
engines: {node: '>= 8'}
|
||||
|
||||
apexcharts@4.1.0:
|
||||
resolution: {integrity: sha512-TE0q0cXeS5k/AByLqlZAQ/aRQfdD3z0Ajd1uQWWZEjxiIC5qcBpMrTaG+aT+c3golqkvLH3u6kxDW8HBrggpLw==}
|
||||
apexcharts@4.2.0:
|
||||
resolution: {integrity: sha512-MQ5o8KnwMGcAlo+LhXlAjWGk8wBNBK2O1gFv+JiB6w3oJeuDJUFqa6FLTDlXvdhtObNQ3vIfAtv0AbMSkDv0DQ==}
|
||||
|
||||
argparse@2.0.1:
|
||||
resolution: {integrity: sha512-8+9WqebbFzpX9OR+Wa6O29asIogeRMzcGtAINdpMHHyAg10f05aSFVBbcEqGf/PXw1EjAZ+q2/bEBg3DvurK3Q==}
|
||||
@@ -841,14 +860,18 @@ packages:
|
||||
builtins@5.1.0:
|
||||
resolution: {integrity: sha512-SW9lzGTLvWTP1AY8xeAMZimqDrIaSdLQUcVr9DMef51niJ022Ri87SwRRKYm4A6iHfkPaiVUu/Duw2Wc4J7kKg==}
|
||||
|
||||
call-bind-apply-helpers@1.0.0:
|
||||
resolution: {integrity: sha512-CCKAP2tkPau7D3GE8+V8R6sQubA9R5foIzGp+85EXCVSCivuxBNAWqcpn72PKYiIcqoViv/kcUDpaEIMBVi1lQ==}
|
||||
call-bind-apply-helpers@1.0.1:
|
||||
resolution: {integrity: sha512-BhYE+WDaywFg2TBWYNXAE+8B1ATnThNBqXHP5nQu0jWJdVvY2hvkpyB3qOmtmDePiS5/BDQ8wASEWGMWRG148g==}
|
||||
engines: {node: '>= 0.4'}
|
||||
|
||||
call-bind@1.0.8:
|
||||
resolution: {integrity: sha512-oKlSFMcMwpUg2ednkhQ454wfWiU/ul3CkJe/PEHcTKuiX6RpbehUiFMXu13HalGZxfUwCQzZG747YXBn1im9ww==}
|
||||
engines: {node: '>= 0.4'}
|
||||
|
||||
call-bound@1.0.2:
|
||||
resolution: {integrity: sha512-0lk0PHFe/uz0vl527fG9CgdE9WdafjDbCXvBbs+LUv000TVt2Jjhqbs4Jwm8gz070w8xXyEAxrPOMullsxXeGg==}
|
||||
engines: {node: '>= 0.4'}
|
||||
|
||||
callsites@3.1.0:
|
||||
resolution: {integrity: sha512-P8BjAsXvZS+VIDUI11hHCQEv74YT67YUi5JJFNWIqL235sBmjX4+qx9Muvls5ivyNENctx46xQLQ3aTuE7ssaQ==}
|
||||
engines: {node: '>=6'}
|
||||
@@ -1219,8 +1242,8 @@ packages:
|
||||
functions-have-names@1.2.3:
|
||||
resolution: {integrity: sha512-xckBUXyTIqT97tq2x2AMb+g163b5JFysYk0x4qxNFwbfQkmNZoiRHb6sPzI9/QV33WeuvVYBUIiD4NzNIyqaRQ==}
|
||||
|
||||
get-intrinsic@1.2.5:
|
||||
resolution: {integrity: sha512-Y4+pKa7XeRUPWFNvOOYHkRYrfzW07oraURSvjDmRVOJ748OrVmeXtpE4+GCEHncjCjkTxPNRt8kEbxDhsn6VTg==}
|
||||
get-intrinsic@1.2.6:
|
||||
resolution: {integrity: sha512-qxsEs+9A+u85HhllWJJFicJfPDhRmjzoYdl64aMWW9yRIJmSyxdn8IEkuIM530/7T+lv0TIHd8L6Q/ra0tEoeA==}
|
||||
engines: {node: '>= 0.4'}
|
||||
|
||||
get-symbol-description@1.0.2:
|
||||
@@ -1338,8 +1361,8 @@ packages:
|
||||
resolution: {integrity: sha512-z0vtXSwucUJtANQWldhbtbt7BnL0vxiFjIdDLAatwhDYty2bad6s+rijD6Ri4YuYJubLzIJLUidCh09e1djEVQ==}
|
||||
engines: {node: '>= 0.4'}
|
||||
|
||||
is-data-view@1.0.1:
|
||||
resolution: {integrity: sha512-AHkaJrsUVW6wq6JS8y3JnM/GJF/9cf+k20+iDzlSaJrinEo5+7vRiteOSwBhHRiAyQATN1AmY4hwzxJKPmYf+w==}
|
||||
is-data-view@1.0.2:
|
||||
resolution: {integrity: sha512-RKtWF8pGmS87i2D6gqQu/l7EYRlVdfzemCJN/P3UOs//x1QE7mfhvzHIApBTRf7axvT6DMGwSwBXYCT0nfB9xw==}
|
||||
engines: {node: '>= 0.4'}
|
||||
|
||||
is-date-object@1.0.5:
|
||||
@@ -1378,8 +1401,8 @@ packages:
|
||||
resolution: {integrity: sha512-41Cifkg6e8TylSpdtTpeLVMqvSBEVzTttHvERD741+pnZ8ANv0004MRL43QKPDlK9cGvNp6NZWZUBlbGXYxxng==}
|
||||
engines: {node: '>=0.12.0'}
|
||||
|
||||
is-regex@1.2.0:
|
||||
resolution: {integrity: sha512-B6ohK4ZmoftlUe+uvenXSbPJFo6U37BH7oO1B3nQH8f/7h27N56s85MhUtbFJAziz5dcmuR3i8ovUl35zp8pFA==}
|
||||
is-regex@1.2.1:
|
||||
resolution: {integrity: sha512-MjYsKHO5O7mCsmRGxWcLWheFqN9DJ/2TmngvjKXihe6efViPqc274+Fx/4fYj/r03+ESvBdTXK0V6tA3rgez1g==}
|
||||
engines: {node: '>= 0.4'}
|
||||
|
||||
is-set@2.0.3:
|
||||
@@ -1470,8 +1493,12 @@ packages:
|
||||
resolution: {integrity: sha512-C9sgUzVZtUtzCBoMdYtwrIRQ4IucGRFGgdhkjL7PXsVfPYmTuWtewqzk7dlipaCMWH/gOYehW9rgMoa4Oebtpw==}
|
||||
engines: {node: '>=16.14.0'}
|
||||
|
||||
magic-string@0.30.14:
|
||||
resolution: {integrity: sha512-5c99P1WKTed11ZC0HMJOj6CDIue6F8ySu+bJL+85q1zBEIY8IklrJ1eiKC2NDRh3Ct3FcvmJPyQHb9erXMTJNw==}
|
||||
magic-string@0.30.15:
|
||||
resolution: {integrity: sha512-zXeaYRgZ6ldS1RJJUrMrYgNJ4fdwnyI6tVqoiIhyCyv5IVTK9BU8Ic2l253GGETQHxI4HNUwhJ3fjDhKqEoaAw==}
|
||||
|
||||
math-intrinsics@1.0.0:
|
||||
resolution: {integrity: sha512-4MqMiKP90ybymYvsut0CH2g4XWbfLtmlCkXmtmdcDCxNB+mQcu1w/1+L/VD7vi/PSv7X2JYV7SCcR+jiPXnQtA==}
|
||||
engines: {node: '>= 0.4'}
|
||||
|
||||
merge2@1.4.1:
|
||||
resolution: {integrity: sha512-8q7VEgMJW4J8tcfVPy8g09NcQwZdbwFEqhe/WZkoIzjn/3TGDwtOCYtXGxA3O8tPzpczCCDgv+P2P5y00ZJOOg==}
|
||||
@@ -1696,12 +1723,12 @@ packages:
|
||||
run-parallel@1.2.0:
|
||||
resolution: {integrity: sha512-5l4VyZR86LZ/lDxZTR6jqL8AFE2S0IFLMP26AbjsLVADxHdhB/c0GUsH+y39UfCi3dzz8OlQuPmnaJOMoDHQBA==}
|
||||
|
||||
safe-array-concat@1.1.2:
|
||||
resolution: {integrity: sha512-vj6RsCsWBCf19jIeHEfkRMw8DPiBb+DMXklQ/1SGDHOMlHdPUkZXFQ2YdplS23zESTijAcurb1aSgJA3AgMu1Q==}
|
||||
safe-array-concat@1.1.3:
|
||||
resolution: {integrity: sha512-AURm5f0jYEOydBj7VQlVvDrjeFgthDdEF5H1dP+6mNpoXOMo1quQqJ4wvJDyRZ9+pO3kGWoOdmV08cSv2aJV6Q==}
|
||||
engines: {node: '>=0.4'}
|
||||
|
||||
safe-regex-test@1.0.3:
|
||||
resolution: {integrity: sha512-CdASjNJPvRa7roO6Ra/gLYBTzYzzPyyBXxIMdGW3USQLyjWEls2RgW5UBTXaQVp+OrpeCK3bLem8smtmheoRuw==}
|
||||
safe-regex-test@1.1.0:
|
||||
resolution: {integrity: sha512-x/+Cz4YrimQxQccJf5mKEbIa1NzeCRNI5Ecl/ekmlYaampdNLPalVyIcCZNNH3MvmqBugV5TMYZXv0ljslUlaw==}
|
||||
engines: {node: '>= 0.4'}
|
||||
|
||||
sass@1.82.0:
|
||||
@@ -1740,20 +1767,33 @@ packages:
|
||||
resolution: {integrity: sha512-7++dFhtcx3353uBaq8DDR4NuxBetBzC7ZQOhmTQInHEd6bSrXdiEyzCvG07Z44UYdLShWUyXt5M/yhz8ekcb1A==}
|
||||
engines: {node: '>=8'}
|
||||
|
||||
side-channel@1.0.6:
|
||||
resolution: {integrity: sha512-fDW/EZ6Q9RiO8eFG8Hj+7u/oW+XrPTIChwCOM2+th2A6OblDtYYIpve9m+KvI9Z4C9qSEXlaGR6bTEYHReuglA==}
|
||||
side-channel-list@1.0.0:
|
||||
resolution: {integrity: sha512-FCLHtRD/gnpCiCHEiJLOwdmFP+wzCmDEkc9y7NsYxeF4u7Btsn1ZuwgwJGxImImHicJArLP4R0yX4c2KCrMrTA==}
|
||||
engines: {node: '>= 0.4'}
|
||||
|
||||
side-channel-map@1.0.1:
|
||||
resolution: {integrity: sha512-VCjCNfgMsby3tTdo02nbjtM/ewra6jPHmpThenkTYh8pG9ucZ/1P8So4u4FGBek/BjpOVsDCMoLA/iuBKIFXRA==}
|
||||
engines: {node: '>= 0.4'}
|
||||
|
||||
side-channel-weakmap@1.0.2:
|
||||
resolution: {integrity: sha512-WPS/HvHQTYnHisLo9McqBHOJk2FkHO/tlpvldyrnem4aeQp4hai3gythswg6p01oSoTl58rcpiFAjF2br2Ak2A==}
|
||||
engines: {node: '>= 0.4'}
|
||||
|
||||
side-channel@1.1.0:
|
||||
resolution: {integrity: sha512-ZX99e6tRweoUXqR+VBrslhda51Nh5MTQwou5tnUDgbtyM0dBgmhEDtWGP/xbKn6hqfPRHujUNwz5fy/wbbhnpw==}
|
||||
engines: {node: '>= 0.4'}
|
||||
|
||||
source-map-js@1.2.1:
|
||||
resolution: {integrity: sha512-UXWMKhLOwVKb728IUtQPXxfYU+usdybtUrK/8uGE8CQMvrhOpwvzDBwj0QhSL7MQc7vIsISBG8VQ8+IDQxpfQA==}
|
||||
engines: {node: '>=0.10.0'}
|
||||
|
||||
string.prototype.trim@1.2.9:
|
||||
resolution: {integrity: sha512-klHuCNxiMZ8MlsOihJhJEBJAiMVqU3Z2nEXWfWnIqjN0gEFS9J9+IxKozWWtQGcgoa1WUZzLjKPTr4ZHNFTFxw==}
|
||||
string.prototype.trim@1.2.10:
|
||||
resolution: {integrity: sha512-Rs66F0P/1kedk5lyYyH9uBzuiI/kNRmwJAR9quK6VOtIpZ2G+hMZd+HQbbv25MgCA6gEffoMZYxlTod4WcdrKA==}
|
||||
engines: {node: '>= 0.4'}
|
||||
|
||||
string.prototype.trimend@1.0.8:
|
||||
resolution: {integrity: sha512-p73uL5VCHCO2BZZ6krwwQE3kCzM7NKmis8S//xEC6fQonchbum4eP6kR4DLEjQFO3Wnj3Fuo8NM0kOSjVdHjZQ==}
|
||||
string.prototype.trimend@1.0.9:
|
||||
resolution: {integrity: sha512-G7Ok5C6E/j4SGfyLCloXTrngQIQU3PWtXGst3yM7Bea9FRURf1S42ZHlZZtsNque2FN2PoUhfZXYLNWwEr4dLQ==}
|
||||
engines: {node: '>= 0.4'}
|
||||
|
||||
string.prototype.trimstart@1.0.8:
|
||||
resolution: {integrity: sha512-UXSH262CSZY1tfu3G3Secr6uGLCFVPMhIqHjlgCUtCCcgihYc/xKs9djMTMUOb2j1mVSeU8EU6NWc/iQKU6Gfg==}
|
||||
@@ -1822,15 +1862,12 @@ packages:
|
||||
resolution: {integrity: sha512-3KS2b+kL7fsuk/eJZ7EQdnEmQoaho/r6KUef7hxvltNA5DR8NAUM+8wJMbJyZ4G9/7i3v5zPBIMN5aybAh2/Jg==}
|
||||
engines: {node: '>= 0.4'}
|
||||
|
||||
typescript-eslint@8.17.0:
|
||||
resolution: {integrity: sha512-409VXvFd/f1br1DCbuKNFqQpXICoTB+V51afcwG1pn1a3Cp92MqAUges3YjwEdQ0cMUoCIodjVDAYzyD8h3SYA==}
|
||||
typescript-eslint@8.18.0:
|
||||
resolution: {integrity: sha512-Xq2rRjn6tzVpAyHr3+nmSg1/9k9aIHnJ2iZeOH7cfGOWqTkXTm3kwpQglEuLGdNrYvPF+2gtAs+/KF5rjVo+WQ==}
|
||||
engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0}
|
||||
peerDependencies:
|
||||
eslint: ^8.57.0 || ^9.0.0
|
||||
typescript: '*'
|
||||
peerDependenciesMeta:
|
||||
typescript:
|
||||
optional: true
|
||||
typescript: '>=4.8.4 <5.8.0'
|
||||
|
||||
typescript@5.6.2:
|
||||
resolution: {integrity: sha512-NW8ByodCSNCwZeghjN3o+JX5OFH0Ojg6sadjEKY4huZ52TqbJTJnDo5+Tw98lSy63NZvi4n+ez5m2u5d4PkZyw==}
|
||||
@@ -2007,6 +2044,9 @@ packages:
|
||||
webpack-virtual-modules@0.6.2:
|
||||
resolution: {integrity: sha512-66/V2i5hQanC51vBQKPH4aI8NMAcBW59FVBs+rC7eGHupMyfn34q7rZIE+ETlJ+XTevqfUhVVBgSUNSW2flEUQ==}
|
||||
|
||||
websocketstream-polyfill@1.0.1:
|
||||
resolution: {integrity: sha512-SV0AG8yN3YDwCVCex/oBQli7vrezGQ0stgo5suKMTthjPQv2wuMsNvwUWDAvNmDGGb9VIm5WsW99x57GW06gLQ==}
|
||||
|
||||
whatwg-url@5.0.0:
|
||||
resolution: {integrity: sha512-saE57nupxk6v3HY35+jzBwYa0rKSy0XR8JSxZPwgLr7ys0IBzhGviA1/TUGJLmSVqs8pb9AnvICXEuOHLprYTw==}
|
||||
|
||||
@@ -2381,26 +2421,42 @@ snapshots:
|
||||
|
||||
'@types/json5@0.0.29': {}
|
||||
|
||||
'@types/node@20.17.9':
|
||||
'@types/node@20.17.10':
|
||||
dependencies:
|
||||
undici-types: 6.19.8
|
||||
|
||||
'@types/suncalc@1.9.2': {}
|
||||
|
||||
'@typescript-eslint/eslint-plugin@8.17.0(@typescript-eslint/parser@8.17.0(eslint@9.16.0)(typescript@5.6.2))(eslint@9.16.0)(typescript@5.6.2)':
|
||||
'@typescript-eslint/eslint-plugin@8.18.0(@typescript-eslint/parser@8.17.0(eslint@9.16.0)(typescript@5.6.2))(eslint@9.16.0)(typescript@5.6.2)':
|
||||
dependencies:
|
||||
'@eslint-community/regexpp': 4.12.1
|
||||
'@typescript-eslint/parser': 8.17.0(eslint@9.16.0)(typescript@5.6.2)
|
||||
'@typescript-eslint/scope-manager': 8.17.0
|
||||
'@typescript-eslint/type-utils': 8.17.0(eslint@9.16.0)(typescript@5.6.2)
|
||||
'@typescript-eslint/utils': 8.17.0(eslint@9.16.0)(typescript@5.6.2)
|
||||
'@typescript-eslint/visitor-keys': 8.17.0
|
||||
'@typescript-eslint/scope-manager': 8.18.0
|
||||
'@typescript-eslint/type-utils': 8.18.0(eslint@9.16.0)(typescript@5.6.2)
|
||||
'@typescript-eslint/utils': 8.18.0(eslint@9.16.0)(typescript@5.6.2)
|
||||
'@typescript-eslint/visitor-keys': 8.18.0
|
||||
eslint: 9.16.0
|
||||
graphemer: 1.4.0
|
||||
ignore: 5.3.2
|
||||
natural-compare: 1.4.0
|
||||
ts-api-utils: 1.4.3(typescript@5.6.2)
|
||||
typescript: 5.6.2
|
||||
transitivePeerDependencies:
|
||||
- supports-color
|
||||
|
||||
'@typescript-eslint/eslint-plugin@8.18.0(@typescript-eslint/parser@8.18.0(eslint@9.16.0)(typescript@5.6.2))(eslint@9.16.0)(typescript@5.6.2)':
|
||||
dependencies:
|
||||
'@eslint-community/regexpp': 4.12.1
|
||||
'@typescript-eslint/parser': 8.18.0(eslint@9.16.0)(typescript@5.6.2)
|
||||
'@typescript-eslint/scope-manager': 8.18.0
|
||||
'@typescript-eslint/type-utils': 8.18.0(eslint@9.16.0)(typescript@5.6.2)
|
||||
'@typescript-eslint/utils': 8.18.0(eslint@9.16.0)(typescript@5.6.2)
|
||||
'@typescript-eslint/visitor-keys': 8.18.0
|
||||
eslint: 9.16.0
|
||||
graphemer: 1.4.0
|
||||
ignore: 5.3.2
|
||||
natural-compare: 1.4.0
|
||||
ts-api-utils: 1.4.3(typescript@5.6.2)
|
||||
optionalDependencies:
|
||||
typescript: 5.6.2
|
||||
transitivePeerDependencies:
|
||||
- supports-color
|
||||
@@ -2418,25 +2474,43 @@ snapshots:
|
||||
transitivePeerDependencies:
|
||||
- supports-color
|
||||
|
||||
'@typescript-eslint/parser@8.18.0(eslint@9.16.0)(typescript@5.6.2)':
|
||||
dependencies:
|
||||
'@typescript-eslint/scope-manager': 8.18.0
|
||||
'@typescript-eslint/types': 8.18.0
|
||||
'@typescript-eslint/typescript-estree': 8.18.0(typescript@5.6.2)
|
||||
'@typescript-eslint/visitor-keys': 8.18.0
|
||||
debug: 4.4.0
|
||||
eslint: 9.16.0
|
||||
typescript: 5.6.2
|
||||
transitivePeerDependencies:
|
||||
- supports-color
|
||||
|
||||
'@typescript-eslint/scope-manager@8.17.0':
|
||||
dependencies:
|
||||
'@typescript-eslint/types': 8.17.0
|
||||
'@typescript-eslint/visitor-keys': 8.17.0
|
||||
|
||||
'@typescript-eslint/type-utils@8.17.0(eslint@9.16.0)(typescript@5.6.2)':
|
||||
'@typescript-eslint/scope-manager@8.18.0':
|
||||
dependencies:
|
||||
'@typescript-eslint/typescript-estree': 8.17.0(typescript@5.6.2)
|
||||
'@typescript-eslint/utils': 8.17.0(eslint@9.16.0)(typescript@5.6.2)
|
||||
'@typescript-eslint/types': 8.18.0
|
||||
'@typescript-eslint/visitor-keys': 8.18.0
|
||||
|
||||
'@typescript-eslint/type-utils@8.18.0(eslint@9.16.0)(typescript@5.6.2)':
|
||||
dependencies:
|
||||
'@typescript-eslint/typescript-estree': 8.18.0(typescript@5.6.2)
|
||||
'@typescript-eslint/utils': 8.18.0(eslint@9.16.0)(typescript@5.6.2)
|
||||
debug: 4.4.0
|
||||
eslint: 9.16.0
|
||||
ts-api-utils: 1.4.3(typescript@5.6.2)
|
||||
optionalDependencies:
|
||||
typescript: 5.6.2
|
||||
transitivePeerDependencies:
|
||||
- supports-color
|
||||
|
||||
'@typescript-eslint/types@8.17.0': {}
|
||||
|
||||
'@typescript-eslint/types@8.18.0': {}
|
||||
|
||||
'@typescript-eslint/typescript-estree@8.17.0(typescript@5.6.2)':
|
||||
dependencies:
|
||||
'@typescript-eslint/types': 8.17.0
|
||||
@@ -2452,14 +2526,27 @@ snapshots:
|
||||
transitivePeerDependencies:
|
||||
- supports-color
|
||||
|
||||
'@typescript-eslint/utils@8.17.0(eslint@9.16.0)(typescript@5.6.2)':
|
||||
'@typescript-eslint/typescript-estree@8.18.0(typescript@5.6.2)':
|
||||
dependencies:
|
||||
'@typescript-eslint/types': 8.18.0
|
||||
'@typescript-eslint/visitor-keys': 8.18.0
|
||||
debug: 4.4.0
|
||||
fast-glob: 3.3.2
|
||||
is-glob: 4.0.3
|
||||
minimatch: 9.0.5
|
||||
semver: 7.6.3
|
||||
ts-api-utils: 1.4.3(typescript@5.6.2)
|
||||
typescript: 5.6.2
|
||||
transitivePeerDependencies:
|
||||
- supports-color
|
||||
|
||||
'@typescript-eslint/utils@8.18.0(eslint@9.16.0)(typescript@5.6.2)':
|
||||
dependencies:
|
||||
'@eslint-community/eslint-utils': 4.4.1(eslint@9.16.0)
|
||||
'@typescript-eslint/scope-manager': 8.17.0
|
||||
'@typescript-eslint/types': 8.17.0
|
||||
'@typescript-eslint/typescript-estree': 8.17.0(typescript@5.6.2)
|
||||
'@typescript-eslint/scope-manager': 8.18.0
|
||||
'@typescript-eslint/types': 8.18.0
|
||||
'@typescript-eslint/typescript-estree': 8.18.0(typescript@5.6.2)
|
||||
eslint: 9.16.0
|
||||
optionalDependencies:
|
||||
typescript: 5.6.2
|
||||
transitivePeerDependencies:
|
||||
- supports-color
|
||||
@@ -2469,9 +2556,14 @@ snapshots:
|
||||
'@typescript-eslint/types': 8.17.0
|
||||
eslint-visitor-keys: 4.2.0
|
||||
|
||||
'@vitejs/plugin-vue@4.6.2(vite@5.4.11(@types/node@20.17.9)(sass@1.82.0))(vue@3.5.13(typescript@5.6.2))':
|
||||
'@typescript-eslint/visitor-keys@8.18.0':
|
||||
dependencies:
|
||||
vite: 5.4.11(@types/node@20.17.9)(sass@1.82.0)
|
||||
'@typescript-eslint/types': 8.18.0
|
||||
eslint-visitor-keys: 4.2.0
|
||||
|
||||
'@vitejs/plugin-vue@4.6.2(vite@5.4.11(@types/node@20.17.10)(sass@1.82.0))(vue@3.5.13(typescript@5.6.2))':
|
||||
dependencies:
|
||||
vite: 5.4.11(@types/node@20.17.10)(sass@1.82.0)
|
||||
vue: 3.5.13(typescript@5.6.2)
|
||||
|
||||
'@volar/language-core@2.4.10':
|
||||
@@ -2486,7 +2578,7 @@ snapshots:
|
||||
path-browserify: 1.0.1
|
||||
vscode-uri: 3.0.8
|
||||
|
||||
'@vue-macros/common@1.15.0(rollup@4.28.1)(vue@3.5.13(typescript@5.6.2))':
|
||||
'@vue-macros/common@1.15.1(rollup@4.28.1)(vue@3.5.13(typescript@5.6.2))':
|
||||
dependencies:
|
||||
'@babel/types': 7.26.3
|
||||
'@rollup/pluginutils': 5.1.3(rollup@4.28.1)
|
||||
@@ -2520,7 +2612,7 @@ snapshots:
|
||||
'@vue/compiler-ssr': 3.5.13
|
||||
'@vue/shared': 3.5.13
|
||||
estree-walker: 2.0.2
|
||||
magic-string: 0.30.14
|
||||
magic-string: 0.30.15
|
||||
postcss: 8.4.49
|
||||
source-map-js: 1.2.1
|
||||
|
||||
@@ -2538,11 +2630,11 @@ snapshots:
|
||||
|
||||
'@vue/eslint-config-typescript@14.1.4(@typescript-eslint/parser@8.17.0(eslint@9.16.0)(typescript@5.6.2))(eslint-plugin-vue@9.32.0(eslint@9.16.0))(eslint@9.16.0)(typescript@5.6.2)':
|
||||
dependencies:
|
||||
'@typescript-eslint/eslint-plugin': 8.17.0(@typescript-eslint/parser@8.17.0(eslint@9.16.0)(typescript@5.6.2))(eslint@9.16.0)(typescript@5.6.2)
|
||||
'@typescript-eslint/eslint-plugin': 8.18.0(@typescript-eslint/parser@8.17.0(eslint@9.16.0)(typescript@5.6.2))(eslint@9.16.0)(typescript@5.6.2)
|
||||
eslint: 9.16.0
|
||||
eslint-plugin-vue: 9.32.0(eslint@9.16.0)
|
||||
fast-glob: 3.3.2
|
||||
typescript-eslint: 8.17.0(eslint@9.16.0)(typescript@5.6.2)
|
||||
typescript-eslint: 8.18.0(eslint@9.16.0)(typescript@5.6.2)
|
||||
vue-eslint-parser: 9.4.3(eslint@9.16.0)
|
||||
optionalDependencies:
|
||||
typescript: 5.6.2
|
||||
@@ -2628,7 +2720,7 @@ snapshots:
|
||||
normalize-path: 3.0.0
|
||||
picomatch: 2.3.1
|
||||
|
||||
apexcharts@4.1.0:
|
||||
apexcharts@4.2.0:
|
||||
dependencies:
|
||||
'@svgdotjs/svg.draggable.js': 3.0.4(@svgdotjs/svg.js@3.2.4)
|
||||
'@svgdotjs/svg.filter.js': 3.0.8
|
||||
@@ -2650,7 +2742,7 @@ snapshots:
|
||||
define-properties: 1.2.1
|
||||
es-abstract: 1.23.5
|
||||
es-object-atoms: 1.0.0
|
||||
get-intrinsic: 1.2.5
|
||||
get-intrinsic: 1.2.6
|
||||
is-string: 1.1.0
|
||||
|
||||
array.prototype.findlastindex@1.2.5:
|
||||
@@ -2683,7 +2775,7 @@ snapshots:
|
||||
define-properties: 1.2.1
|
||||
es-abstract: 1.23.5
|
||||
es-errors: 1.3.0
|
||||
get-intrinsic: 1.2.5
|
||||
get-intrinsic: 1.2.6
|
||||
is-array-buffer: 3.0.4
|
||||
is-shared-array-buffer: 1.0.3
|
||||
|
||||
@@ -2746,18 +2838,23 @@ snapshots:
|
||||
dependencies:
|
||||
semver: 7.6.3
|
||||
|
||||
call-bind-apply-helpers@1.0.0:
|
||||
call-bind-apply-helpers@1.0.1:
|
||||
dependencies:
|
||||
es-errors: 1.3.0
|
||||
function-bind: 1.1.2
|
||||
|
||||
call-bind@1.0.8:
|
||||
dependencies:
|
||||
call-bind-apply-helpers: 1.0.0
|
||||
call-bind-apply-helpers: 1.0.1
|
||||
es-define-property: 1.0.1
|
||||
get-intrinsic: 1.2.5
|
||||
get-intrinsic: 1.2.6
|
||||
set-function-length: 1.2.2
|
||||
|
||||
call-bound@1.0.2:
|
||||
dependencies:
|
||||
call-bind: 1.0.8
|
||||
get-intrinsic: 1.2.6
|
||||
|
||||
callsites@3.1.0: {}
|
||||
|
||||
chalk@4.1.2:
|
||||
@@ -2815,19 +2912,19 @@ snapshots:
|
||||
dependencies:
|
||||
call-bind: 1.0.8
|
||||
es-errors: 1.3.0
|
||||
is-data-view: 1.0.1
|
||||
is-data-view: 1.0.2
|
||||
|
||||
data-view-byte-length@1.0.1:
|
||||
dependencies:
|
||||
call-bind: 1.0.8
|
||||
es-errors: 1.3.0
|
||||
is-data-view: 1.0.1
|
||||
is-data-view: 1.0.2
|
||||
|
||||
data-view-byte-offset@1.0.0:
|
||||
dependencies:
|
||||
call-bind: 1.0.8
|
||||
es-errors: 1.3.0
|
||||
is-data-view: 1.0.1
|
||||
is-data-view: 1.0.2
|
||||
|
||||
date-fns@3.6.0: {}
|
||||
|
||||
@@ -2866,7 +2963,7 @@ snapshots:
|
||||
|
||||
dunder-proto@1.0.0:
|
||||
dependencies:
|
||||
call-bind-apply-helpers: 1.0.0
|
||||
call-bind-apply-helpers: 1.0.1
|
||||
es-errors: 1.3.0
|
||||
gopd: 1.2.0
|
||||
|
||||
@@ -2887,7 +2984,7 @@ snapshots:
|
||||
es-set-tostringtag: 2.0.3
|
||||
es-to-primitive: 1.3.0
|
||||
function.prototype.name: 1.1.6
|
||||
get-intrinsic: 1.2.5
|
||||
get-intrinsic: 1.2.6
|
||||
get-symbol-description: 1.0.2
|
||||
globalthis: 1.0.4
|
||||
gopd: 1.2.0
|
||||
@@ -2898,9 +2995,9 @@ snapshots:
|
||||
internal-slot: 1.0.7
|
||||
is-array-buffer: 3.0.4
|
||||
is-callable: 1.2.7
|
||||
is-data-view: 1.0.1
|
||||
is-data-view: 1.0.2
|
||||
is-negative-zero: 2.0.3
|
||||
is-regex: 1.2.0
|
||||
is-regex: 1.2.1
|
||||
is-shared-array-buffer: 1.0.3
|
||||
is-string: 1.1.0
|
||||
is-typed-array: 1.1.13
|
||||
@@ -2909,10 +3006,10 @@ snapshots:
|
||||
object-keys: 1.1.1
|
||||
object.assign: 4.1.5
|
||||
regexp.prototype.flags: 1.5.3
|
||||
safe-array-concat: 1.1.2
|
||||
safe-regex-test: 1.0.3
|
||||
string.prototype.trim: 1.2.9
|
||||
string.prototype.trimend: 1.0.8
|
||||
safe-array-concat: 1.1.3
|
||||
safe-regex-test: 1.1.0
|
||||
string.prototype.trim: 1.2.10
|
||||
string.prototype.trimend: 1.0.9
|
||||
string.prototype.trimstart: 1.0.8
|
||||
typed-array-buffer: 1.0.2
|
||||
typed-array-byte-length: 1.0.1
|
||||
@@ -2931,7 +3028,7 @@ snapshots:
|
||||
|
||||
es-set-tostringtag@2.0.3:
|
||||
dependencies:
|
||||
get-intrinsic: 1.2.5
|
||||
get-intrinsic: 1.2.6
|
||||
has-tostringtag: 1.0.2
|
||||
hasown: 2.0.2
|
||||
|
||||
@@ -3029,7 +3126,7 @@ snapshots:
|
||||
object.groupby: 1.0.3
|
||||
object.values: 1.2.0
|
||||
semver: 6.3.1
|
||||
string.prototype.trimend: 1.0.8
|
||||
string.prototype.trimend: 1.0.9
|
||||
tsconfig-paths: 3.15.0
|
||||
optionalDependencies:
|
||||
'@typescript-eslint/parser': 8.17.0(eslint@9.16.0)(typescript@5.6.2)
|
||||
@@ -3239,22 +3336,24 @@ snapshots:
|
||||
|
||||
functions-have-names@1.2.3: {}
|
||||
|
||||
get-intrinsic@1.2.5:
|
||||
get-intrinsic@1.2.6:
|
||||
dependencies:
|
||||
call-bind-apply-helpers: 1.0.0
|
||||
call-bind-apply-helpers: 1.0.1
|
||||
dunder-proto: 1.0.0
|
||||
es-define-property: 1.0.1
|
||||
es-errors: 1.3.0
|
||||
es-object-atoms: 1.0.0
|
||||
function-bind: 1.1.2
|
||||
gopd: 1.2.0
|
||||
has-symbols: 1.1.0
|
||||
hasown: 2.0.2
|
||||
math-intrinsics: 1.0.0
|
||||
|
||||
get-symbol-description@1.0.2:
|
||||
dependencies:
|
||||
call-bind: 1.0.8
|
||||
es-errors: 1.3.0
|
||||
get-intrinsic: 1.2.5
|
||||
get-intrinsic: 1.2.6
|
||||
|
||||
get-tsconfig@4.8.1:
|
||||
dependencies:
|
||||
@@ -3322,12 +3421,12 @@ snapshots:
|
||||
dependencies:
|
||||
es-errors: 1.3.0
|
||||
hasown: 2.0.2
|
||||
side-channel: 1.0.6
|
||||
side-channel: 1.1.0
|
||||
|
||||
is-array-buffer@3.0.4:
|
||||
dependencies:
|
||||
call-bind: 1.0.8
|
||||
get-intrinsic: 1.2.5
|
||||
get-intrinsic: 1.2.6
|
||||
|
||||
is-async-function@2.0.0:
|
||||
dependencies:
|
||||
@@ -3356,8 +3455,10 @@ snapshots:
|
||||
dependencies:
|
||||
hasown: 2.0.2
|
||||
|
||||
is-data-view@1.0.1:
|
||||
is-data-view@1.0.2:
|
||||
dependencies:
|
||||
call-bound: 1.0.2
|
||||
get-intrinsic: 1.2.6
|
||||
is-typed-array: 1.1.13
|
||||
|
||||
is-date-object@1.0.5:
|
||||
@@ -3389,9 +3490,9 @@ snapshots:
|
||||
|
||||
is-number@7.0.0: {}
|
||||
|
||||
is-regex@1.2.0:
|
||||
is-regex@1.2.1:
|
||||
dependencies:
|
||||
call-bind: 1.0.8
|
||||
call-bound: 1.0.2
|
||||
gopd: 1.2.0
|
||||
has-tostringtag: 1.0.2
|
||||
hasown: 2.0.2
|
||||
@@ -3411,7 +3512,7 @@ snapshots:
|
||||
dependencies:
|
||||
call-bind: 1.0.8
|
||||
has-symbols: 1.1.0
|
||||
safe-regex-test: 1.0.3
|
||||
safe-regex-test: 1.1.0
|
||||
|
||||
is-typed-array@1.1.13:
|
||||
dependencies:
|
||||
@@ -3426,7 +3527,7 @@ snapshots:
|
||||
is-weakset@2.0.3:
|
||||
dependencies:
|
||||
call-bind: 1.0.8
|
||||
get-intrinsic: 1.2.5
|
||||
get-intrinsic: 1.2.6
|
||||
|
||||
isarray@2.0.5: {}
|
||||
|
||||
@@ -3474,12 +3575,14 @@ snapshots:
|
||||
|
||||
magic-string-ast@0.6.3:
|
||||
dependencies:
|
||||
magic-string: 0.30.14
|
||||
magic-string: 0.30.15
|
||||
|
||||
magic-string@0.30.14:
|
||||
magic-string@0.30.15:
|
||||
dependencies:
|
||||
'@jridgewell/sourcemap-codec': 1.5.0
|
||||
|
||||
math-intrinsics@1.0.0: {}
|
||||
|
||||
merge2@1.4.1: {}
|
||||
|
||||
micromatch@4.0.8:
|
||||
@@ -3654,7 +3757,7 @@ snapshots:
|
||||
dunder-proto: 1.0.0
|
||||
es-abstract: 1.23.5
|
||||
es-errors: 1.3.0
|
||||
get-intrinsic: 1.2.5
|
||||
get-intrinsic: 1.2.6
|
||||
gopd: 1.2.0
|
||||
which-builtin-type: 1.2.0
|
||||
|
||||
@@ -3712,18 +3815,19 @@ snapshots:
|
||||
dependencies:
|
||||
queue-microtask: 1.2.3
|
||||
|
||||
safe-array-concat@1.1.2:
|
||||
safe-array-concat@1.1.3:
|
||||
dependencies:
|
||||
call-bind: 1.0.8
|
||||
get-intrinsic: 1.2.5
|
||||
call-bound: 1.0.2
|
||||
get-intrinsic: 1.2.6
|
||||
has-symbols: 1.1.0
|
||||
isarray: 2.0.5
|
||||
|
||||
safe-regex-test@1.0.3:
|
||||
safe-regex-test@1.1.0:
|
||||
dependencies:
|
||||
call-bind: 1.0.8
|
||||
call-bound: 1.0.2
|
||||
es-errors: 1.3.0
|
||||
is-regex: 1.2.0
|
||||
is-regex: 1.2.1
|
||||
|
||||
sass@1.82.0:
|
||||
dependencies:
|
||||
@@ -3746,7 +3850,7 @@ snapshots:
|
||||
define-data-property: 1.1.4
|
||||
es-errors: 1.3.0
|
||||
function-bind: 1.1.2
|
||||
get-intrinsic: 1.2.5
|
||||
get-intrinsic: 1.2.6
|
||||
gopd: 1.2.0
|
||||
has-property-descriptors: 1.0.2
|
||||
|
||||
@@ -3763,25 +3867,50 @@ snapshots:
|
||||
|
||||
shebang-regex@3.0.0: {}
|
||||
|
||||
side-channel@1.0.6:
|
||||
side-channel-list@1.0.0:
|
||||
dependencies:
|
||||
call-bind: 1.0.8
|
||||
es-errors: 1.3.0
|
||||
get-intrinsic: 1.2.5
|
||||
object-inspect: 1.13.3
|
||||
|
||||
side-channel-map@1.0.1:
|
||||
dependencies:
|
||||
call-bound: 1.0.2
|
||||
es-errors: 1.3.0
|
||||
get-intrinsic: 1.2.6
|
||||
object-inspect: 1.13.3
|
||||
|
||||
side-channel-weakmap@1.0.2:
|
||||
dependencies:
|
||||
call-bound: 1.0.2
|
||||
es-errors: 1.3.0
|
||||
get-intrinsic: 1.2.6
|
||||
object-inspect: 1.13.3
|
||||
side-channel-map: 1.0.1
|
||||
|
||||
side-channel@1.1.0:
|
||||
dependencies:
|
||||
es-errors: 1.3.0
|
||||
object-inspect: 1.13.3
|
||||
side-channel-list: 1.0.0
|
||||
side-channel-map: 1.0.1
|
||||
side-channel-weakmap: 1.0.2
|
||||
|
||||
source-map-js@1.2.1: {}
|
||||
|
||||
string.prototype.trim@1.2.9:
|
||||
string.prototype.trim@1.2.10:
|
||||
dependencies:
|
||||
call-bind: 1.0.8
|
||||
call-bound: 1.0.2
|
||||
define-data-property: 1.1.4
|
||||
define-properties: 1.2.1
|
||||
es-abstract: 1.23.5
|
||||
es-object-atoms: 1.0.0
|
||||
has-property-descriptors: 1.0.2
|
||||
|
||||
string.prototype.trimend@1.0.8:
|
||||
string.prototype.trimend@1.0.9:
|
||||
dependencies:
|
||||
call-bind: 1.0.8
|
||||
call-bound: 1.0.2
|
||||
define-properties: 1.2.1
|
||||
es-object-atoms: 1.0.0
|
||||
|
||||
@@ -3866,13 +3995,12 @@ snapshots:
|
||||
possible-typed-array-names: 1.0.0
|
||||
reflect.getprototypeof: 1.0.8
|
||||
|
||||
typescript-eslint@8.17.0(eslint@9.16.0)(typescript@5.6.2):
|
||||
typescript-eslint@8.18.0(eslint@9.16.0)(typescript@5.6.2):
|
||||
dependencies:
|
||||
'@typescript-eslint/eslint-plugin': 8.17.0(@typescript-eslint/parser@8.17.0(eslint@9.16.0)(typescript@5.6.2))(eslint@9.16.0)(typescript@5.6.2)
|
||||
'@typescript-eslint/parser': 8.17.0(eslint@9.16.0)(typescript@5.6.2)
|
||||
'@typescript-eslint/utils': 8.17.0(eslint@9.16.0)(typescript@5.6.2)
|
||||
'@typescript-eslint/eslint-plugin': 8.18.0(@typescript-eslint/parser@8.18.0(eslint@9.16.0)(typescript@5.6.2))(eslint@9.16.0)(typescript@5.6.2)
|
||||
'@typescript-eslint/parser': 8.18.0(eslint@9.16.0)(typescript@5.6.2)
|
||||
'@typescript-eslint/utils': 8.18.0(eslint@9.16.0)(typescript@5.6.2)
|
||||
eslint: 9.16.0
|
||||
optionalDependencies:
|
||||
typescript: 5.6.2
|
||||
transitivePeerDependencies:
|
||||
- supports-color
|
||||
@@ -3892,11 +4020,11 @@ snapshots:
|
||||
|
||||
universalify@0.2.0: {}
|
||||
|
||||
unplugin-fonts@1.3.1(vite@5.4.11(@types/node@20.17.9)(sass@1.82.0)):
|
||||
unplugin-fonts@1.3.1(vite@5.4.11(@types/node@20.17.10)(sass@1.82.0)):
|
||||
dependencies:
|
||||
fast-glob: 3.3.2
|
||||
unplugin: 2.0.0-beta.1
|
||||
vite: 5.4.11(@types/node@20.17.9)(sass@1.82.0)
|
||||
vite: 5.4.11(@types/node@20.17.10)(sass@1.82.0)
|
||||
|
||||
unplugin-vue-components@0.26.0(@babel/parser@7.26.3)(rollup@4.28.1)(vue@3.5.13(typescript@5.6.2)):
|
||||
dependencies:
|
||||
@@ -3906,7 +4034,7 @@ snapshots:
|
||||
debug: 4.4.0
|
||||
fast-glob: 3.3.2
|
||||
local-pkg: 0.4.3
|
||||
magic-string: 0.30.14
|
||||
magic-string: 0.30.15
|
||||
minimatch: 9.0.5
|
||||
resolve: 1.22.8
|
||||
unplugin: 1.16.0
|
||||
@@ -3921,7 +4049,7 @@ snapshots:
|
||||
dependencies:
|
||||
'@babel/types': 7.26.3
|
||||
'@rollup/pluginutils': 5.1.3(rollup@4.28.1)
|
||||
'@vue-macros/common': 1.15.0(rollup@4.28.1)(vue@3.5.13(typescript@5.6.2))
|
||||
'@vue-macros/common': 1.15.1(rollup@4.28.1)(vue@3.5.13(typescript@5.6.2))
|
||||
ast-walker-scope: 0.5.0(rollup@4.28.1)
|
||||
chokidar: 3.6.0
|
||||
fast-glob: 3.3.2
|
||||
@@ -3961,24 +4089,24 @@ snapshots:
|
||||
|
||||
util-deprecate@1.0.2: {}
|
||||
|
||||
vite-plugin-vuetify@2.0.4(vite@5.4.11(@types/node@20.17.9)(sass@1.82.0))(vue@3.5.13(typescript@5.6.2))(vuetify@3.7.5):
|
||||
vite-plugin-vuetify@2.0.4(vite@5.4.11(@types/node@20.17.10)(sass@1.82.0))(vue@3.5.13(typescript@5.6.2))(vuetify@3.7.5):
|
||||
dependencies:
|
||||
'@vuetify/loader-shared': 2.0.3(vue@3.5.13(typescript@5.6.2))(vuetify@3.7.5)
|
||||
debug: 4.4.0
|
||||
upath: 2.0.1
|
||||
vite: 5.4.11(@types/node@20.17.9)(sass@1.82.0)
|
||||
vite: 5.4.11(@types/node@20.17.10)(sass@1.82.0)
|
||||
vue: 3.5.13(typescript@5.6.2)
|
||||
vuetify: 3.7.5(typescript@5.6.2)(vite-plugin-vuetify@2.0.4)(vue@3.5.13(typescript@5.6.2))
|
||||
transitivePeerDependencies:
|
||||
- supports-color
|
||||
|
||||
vite@5.4.11(@types/node@20.17.9)(sass@1.82.0):
|
||||
vite@5.4.11(@types/node@20.17.10)(sass@1.82.0):
|
||||
dependencies:
|
||||
esbuild: 0.21.5
|
||||
postcss: 8.4.49
|
||||
rollup: 4.28.1
|
||||
optionalDependencies:
|
||||
'@types/node': 20.17.9
|
||||
'@types/node': 20.17.10
|
||||
fsevents: 2.3.3
|
||||
sass: 1.82.0
|
||||
|
||||
@@ -4013,9 +4141,9 @@ snapshots:
|
||||
semver: 7.6.3
|
||||
typescript: 5.6.2
|
||||
|
||||
vue3-apexcharts@1.8.0(apexcharts@4.1.0)(vue@3.5.13(typescript@5.6.2)):
|
||||
vue3-apexcharts@1.8.0(apexcharts@4.2.0)(vue@3.5.13(typescript@5.6.2)):
|
||||
dependencies:
|
||||
apexcharts: 4.1.0
|
||||
apexcharts: 4.2.0
|
||||
vue: 3.5.13(typescript@5.6.2)
|
||||
|
||||
vue@3.5.13(typescript@5.6.2):
|
||||
@@ -4033,12 +4161,14 @@ snapshots:
|
||||
vue: 3.5.13(typescript@5.6.2)
|
||||
optionalDependencies:
|
||||
typescript: 5.6.2
|
||||
vite-plugin-vuetify: 2.0.4(vite@5.4.11(@types/node@20.17.9)(sass@1.82.0))(vue@3.5.13(typescript@5.6.2))(vuetify@3.7.5)
|
||||
vite-plugin-vuetify: 2.0.4(vite@5.4.11(@types/node@20.17.10)(sass@1.82.0))(vue@3.5.13(typescript@5.6.2))(vuetify@3.7.5)
|
||||
|
||||
webidl-conversions@3.0.1: {}
|
||||
|
||||
webpack-virtual-modules@0.6.2: {}
|
||||
|
||||
websocketstream-polyfill@1.0.1: {}
|
||||
|
||||
whatwg-url@5.0.0:
|
||||
dependencies:
|
||||
tr46: 0.0.3
|
||||
@@ -4061,7 +4191,7 @@ snapshots:
|
||||
is-date-object: 1.0.5
|
||||
is-finalizationregistry: 1.1.0
|
||||
is-generator-function: 1.0.10
|
||||
is-regex: 1.2.0
|
||||
is-regex: 1.2.1
|
||||
is-weakref: 1.0.2
|
||||
isarray: 2.0.5
|
||||
which-boxed-primitive: 1.1.0
|
||||
|
||||
@@ -4,4 +4,20 @@ export default class Environment {
|
||||
public static getUrlPrefix(): string {
|
||||
return config.API_PREFIX;
|
||||
}
|
||||
|
||||
public static getHomeAssistantUrl(): string {
|
||||
return config.HOME_ASSISTANT_URL;
|
||||
}
|
||||
|
||||
public static getHomeAssistantToken(): string {
|
||||
return config.HOME_ASSISTANT_TOKEN;
|
||||
}
|
||||
|
||||
public static getGarageDevice(): string {
|
||||
return config.GARAGE_DEVICE;
|
||||
}
|
||||
|
||||
public static getAlarmDevice(): string {
|
||||
return config.ALARM_DEVICE;
|
||||
}
|
||||
}
|
||||
|
||||
64
WebDisplay/src/models/home-assistant/home-assistant.ts
Normal file
64
WebDisplay/src/models/home-assistant/home-assistant.ts
Normal file
@@ -0,0 +1,64 @@
|
||||
let messageId: number = 1;
|
||||
|
||||
export enum MessageType {
|
||||
auth_invalid = 'auth_invalid',
|
||||
auth_ok = 'auth_ok',
|
||||
auth_required = 'auth_required',
|
||||
event = 'event',
|
||||
pong = 'pong',
|
||||
result = 'result'
|
||||
}
|
||||
|
||||
export interface OutgoingMessage {
|
||||
id: number | undefined;
|
||||
type: string;
|
||||
}
|
||||
|
||||
export interface IncomingMessage {
|
||||
id: number | undefined;
|
||||
type: string;
|
||||
success: boolean | undefined;
|
||||
result: any;
|
||||
}
|
||||
|
||||
export class AuthMessage implements OutgoingMessage {
|
||||
id = undefined;
|
||||
type: string = 'auth';
|
||||
access_token: string | null = null;
|
||||
|
||||
constructor(access_token: string) {
|
||||
this.access_token = access_token;
|
||||
}
|
||||
}
|
||||
|
||||
export class SubscribeEntitiesMessage implements OutgoingMessage {
|
||||
id = messageId++;
|
||||
type = 'subscribe_entities';
|
||||
entity_ids: string[] = [];
|
||||
|
||||
constructor(entity_ids: string[]) {
|
||||
this.entity_ids = entity_ids;
|
||||
}
|
||||
}
|
||||
|
||||
export interface EventMessage extends IncomingMessage {
|
||||
event: StatesUpdates;
|
||||
}
|
||||
|
||||
export interface EntityState {
|
||||
/** state */
|
||||
s: string;
|
||||
/** attributes */
|
||||
a: { [key: string]: any };
|
||||
/** last_changed; if set, also applies to lu */
|
||||
lc: number;
|
||||
/** last_updated */
|
||||
lu: number;
|
||||
}
|
||||
|
||||
export interface StatesUpdates {
|
||||
/** add */
|
||||
a?: Record<string, EntityState>;
|
||||
/** remove */
|
||||
r?: string[]; // remove
|
||||
}
|
||||
@@ -1,8 +1,9 @@
|
||||
<script lang="ts" setup>
|
||||
import { ref } from 'vue';
|
||||
import { capitalize, ref } from 'vue';
|
||||
import { useWeatherStore } from '@/stores/weatherStore';
|
||||
import { useLaundryStore } from '@/stores/laundryStore';
|
||||
import { usePowerStore } from '@/stores/powerStore';
|
||||
import { useHomeAssistantStore } from '@/stores/homeAssistantStore';
|
||||
|
||||
const weatherStore = useWeatherStore();
|
||||
weatherStore.start();
|
||||
@@ -13,6 +14,9 @@
|
||||
const powerStore = usePowerStore();
|
||||
powerStore.start();
|
||||
|
||||
const homeAssistantStore = useHomeAssistantStore();
|
||||
homeAssistantStore.start();
|
||||
|
||||
const currentTime = ref(new Date());
|
||||
|
||||
const timeFormatter = new Intl.DateTimeFormat('en-US', { hour: 'numeric', minute: '2-digit' });
|
||||
@@ -45,38 +49,66 @@
|
||||
{{ weatherStore.current?.Humidity?.toFixed(0) + '%' }}
|
||||
</div>
|
||||
<div
|
||||
class="kiosk-generation pl-2 pt-4"
|
||||
class="kiosk-generation text-center pt-4"
|
||||
v-if="powerStore.current">
|
||||
<v-icon
|
||||
class="kiosk-device"
|
||||
icon="mdi-solar-power-variant" />
|
||||
{{ (powerStore.current!.Generation < 0 ? 0 : powerStore.current!.Generation) + ' W' }}
|
||||
<div>
|
||||
{{ (powerStore.current!.Generation < 0 ? 0 : powerStore.current!.Generation) + ' W' }}
|
||||
</div>
|
||||
</div>
|
||||
<div
|
||||
class="kiosk-consumption pl-2 pt-4"
|
||||
class="kiosk-consumption text-center pt-4"
|
||||
v-if="powerStore.current">
|
||||
<v-icon
|
||||
class="kiosk-device"
|
||||
icon="mdi-home-lightning-bolt" />
|
||||
{{ powerStore.current.Consumption + ' W' }}
|
||||
<div>
|
||||
{{ powerStore.current.Consumption + ' W' }}
|
||||
</div>
|
||||
</div>
|
||||
<div
|
||||
class="kiosk-washer pl-2 pt-4"
|
||||
class="kiosk-washer text-center pt-4"
|
||||
v-if="laundryStore?.current?.washer !== undefined"
|
||||
:class="laundryStore.current.washer.toString()">
|
||||
<v-icon
|
||||
class="kiosk-device"
|
||||
icon="mdi-washing-machine" />
|
||||
{{ laundryStore.current.washer ? 'On' : 'Off' }}
|
||||
<div>
|
||||
{{ laundryStore.current.washer ? 'On' : 'Off' }}
|
||||
</div>
|
||||
</div>
|
||||
<div
|
||||
class="kiosk-dryer pl-2 pt-4"
|
||||
class="kiosk-dryer text-center pt-4"
|
||||
v-if="laundryStore?.current?.dryer !== undefined"
|
||||
:class="laundryStore.current.dryer.toString()">
|
||||
<v-icon
|
||||
class="kiosk-device"
|
||||
icon="mdi-tumble-dryer" />
|
||||
{{ laundryStore.current.dryer ? 'On' : 'Off' }}
|
||||
<div>
|
||||
{{ laundryStore.current.dryer ? 'On' : 'Off' }}
|
||||
</div>
|
||||
</div>
|
||||
<div
|
||||
class="kiosk-garage-door text-center pt-4"
|
||||
v-if="homeAssistantStore?.garageState">
|
||||
<v-icon
|
||||
class="kiosk-device"
|
||||
:icon="homeAssistantStore.garageState === 'closed' ? 'mdi-garage' : 'mdi-garage-open'" />
|
||||
<div>
|
||||
{{ capitalize(homeAssistantStore.garageState) }}
|
||||
</div>
|
||||
</div>
|
||||
<div
|
||||
class="kiosk-house-alarm text-center pt-4"
|
||||
v-if="homeAssistantStore?.houseAlarmState">
|
||||
<v-icon
|
||||
class="kiosk-device"
|
||||
icon="mdi-shield-home" />
|
||||
<div>
|
||||
{{ capitalize(homeAssistantStore.houseAlarmState) }}
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</v-container>
|
||||
@@ -114,7 +146,7 @@
|
||||
|
||||
display: grid;
|
||||
grid-template-columns: repeat(2, 50%);
|
||||
grid-template-rows: repeat(5, auto) 1fr;
|
||||
grid-template-rows: repeat(6, auto) 1fr;
|
||||
grid-column-gap: 0px;
|
||||
grid-row-gap: 0px;
|
||||
|
||||
@@ -123,7 +155,8 @@
|
||||
'kiosk-date kiosk-date'
|
||||
'kiosk-temperature kiosk-humidity'
|
||||
'kiosk-generation kiosk-consumption'
|
||||
'kiosk-washer kiosk-dryer';
|
||||
'kiosk-washer kiosk-dryer'
|
||||
'kiosk-garage-door kiosk-house-alarm';
|
||||
}
|
||||
|
||||
.kiosk-time {
|
||||
@@ -162,6 +195,14 @@
|
||||
grid-area: kiosk-dryer;
|
||||
}
|
||||
|
||||
.kiosk-garage-door {
|
||||
grid-area: kiosk-garage-door;
|
||||
}
|
||||
|
||||
.kiosk-house-alarm {
|
||||
grid-area: kiosk-house-alarm;
|
||||
}
|
||||
|
||||
.kiosk-device {
|
||||
font-size: 2.5rem;
|
||||
}
|
||||
|
||||
92
WebDisplay/src/stores/homeAssistantStore.ts
Normal file
92
WebDisplay/src/stores/homeAssistantStore.ts
Normal file
@@ -0,0 +1,92 @@
|
||||
import { defineStore } from 'pinia';
|
||||
import { WebSocketStream } from 'websocketstream-polyfill';
|
||||
import { MessageType, AuthMessage, IncomingMessage, SubscribeEntitiesMessage, EventMessage } from '@/models/home-assistant/home-assistant';
|
||||
|
||||
import Environment from '@/environment';
|
||||
|
||||
export const useHomeAssistantStore = defineStore('home-assistant', {
|
||||
state: () => {
|
||||
return {
|
||||
garageState: null as string | null,
|
||||
houseAlarmState: null as string | null,
|
||||
_wss: null as WebSocketStream | null
|
||||
};
|
||||
},
|
||||
actions: {
|
||||
async start() {
|
||||
if (!Environment.getHomeAssistantUrl() || !Environment.getHomeAssistantToken()) {
|
||||
return;
|
||||
}
|
||||
|
||||
const garageDevice = Environment.getGarageDevice();
|
||||
const alarmDevice = Environment.getAlarmDevice();
|
||||
|
||||
this._wss = new WebSocketStream(Environment.getHomeAssistantUrl());
|
||||
|
||||
const { readable, writable } = await this._wss.opened;
|
||||
|
||||
const reader = readable.getReader();
|
||||
const writer = writable.getWriter();
|
||||
|
||||
while (true) {
|
||||
const { value, done } = await reader.read();
|
||||
|
||||
const message = JSON.parse(value as string) as IncomingMessage;
|
||||
|
||||
console.info(message);
|
||||
|
||||
switch (message.type) {
|
||||
case MessageType.auth_required:
|
||||
const authMessage = new AuthMessage(Environment.getHomeAssistantToken());
|
||||
writer.write(JSON.stringify(authMessage));
|
||||
break;
|
||||
case MessageType.auth_ok:
|
||||
const subscribeEntitiesMessage = new SubscribeEntitiesMessage([
|
||||
garageDevice,
|
||||
alarmDevice
|
||||
]);
|
||||
writer.write(JSON.stringify(subscribeEntitiesMessage));
|
||||
break;
|
||||
case MessageType.event:
|
||||
const eventMessage = message as EventMessage;
|
||||
|
||||
if (!eventMessage?.event?.a) {
|
||||
break;
|
||||
}
|
||||
|
||||
const garageEntity = eventMessage.event.a[garageDevice];
|
||||
|
||||
if (garageEntity) {
|
||||
this.$patch({ garageState: garageEntity.s });
|
||||
}
|
||||
|
||||
const houseAlarmEntity = eventMessage.event.a[alarmDevice];
|
||||
|
||||
if (houseAlarmEntity) {
|
||||
this.$patch({ houseAlarmState: houseAlarmEntity.s });
|
||||
}
|
||||
|
||||
break;
|
||||
case MessageType.result:
|
||||
// Handle result type
|
||||
break;
|
||||
default:
|
||||
// Handle unknown message type
|
||||
break;
|
||||
}
|
||||
|
||||
if (done) {
|
||||
break;
|
||||
}
|
||||
}
|
||||
},
|
||||
async stop() {
|
||||
if (!this._wss) {
|
||||
return;
|
||||
}
|
||||
|
||||
this._wss.close();
|
||||
this._wss = null;
|
||||
}
|
||||
}
|
||||
});
|
||||
Reference in New Issue
Block a user