homebridge-viessmann-vicare 2.0.6 → 2.0.8
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/README.md +24 -3
- package/dist/accessories/boiler-accessory.d.ts.map +1 -1
- package/dist/accessories/boiler-accessory.js +14 -3
- package/dist/accessories/dhw-accessory.d.ts.map +1 -1
- package/dist/accessories/dhw-accessory.js +42 -6
- package/dist/accessories/heating-circuit-accessory.d.ts.map +1 -1
- package/dist/accessories/heating-circuit-accessory.js +21 -3
- package/dist/auth-manager.d.ts +3 -78
- package/dist/auth-manager.d.ts.map +1 -1
- package/dist/auth-manager.js +157 -331
- package/dist/platform.d.ts.map +1 -1
- package/dist/platform.js +109 -98
- package/dist/settings.d.ts +1 -1
- package/dist/settings.js +1 -1
- package/dist/viessmann-api.d.ts +2 -1
- package/dist/viessmann-api.d.ts.map +1 -1
- package/dist/viessmann-api.js +5 -3
- package/package.json +3 -3
package/README.md
CHANGED
|
@@ -142,7 +142,7 @@ src/
|
|
|
142
142
|
**API Errors** → Debug `viessmann-api-endpoints.ts` parsing
|
|
143
143
|
**Network Issues** → Examine `network-utils.ts` detection
|
|
144
144
|
|
|
145
|
-
For detailed architecture documentation, see [
|
|
145
|
+
For detailed architecture documentation, see the [Plugin Architecture](#%EF%B8%8F-plugin-architecture-v20) section above.
|
|
146
146
|
|
|
147
147
|
## 🆕 What's New in v2.0
|
|
148
148
|
|
|
@@ -263,7 +263,7 @@ npm install -g homebridge-viessmann-vicare
|
|
|
263
263
|
"maxDelay": 300000,
|
|
264
264
|
"maxConsecutiveErrors": 5,
|
|
265
265
|
"deviceUpdateDelay": 1000,
|
|
266
|
-
"userAgent": "homebridge-viessmann-vicare/2.0.
|
|
266
|
+
"userAgent": "homebridge-viessmann-vicare/2.0.8"
|
|
267
267
|
},
|
|
268
268
|
"debug": false
|
|
269
269
|
}
|
|
@@ -810,7 +810,7 @@ Contributions are welcome! Please:
|
|
|
810
810
|
## 📋 Compatibility
|
|
811
811
|
|
|
812
812
|
- **Homebridge**: >= 1.8.0 or >= 2.0.0-beta.0
|
|
813
|
-
- **Node.js**: >=
|
|
813
|
+
- **Node.js**: >= 20.0.0
|
|
814
814
|
- **Viessmann API**: v1 and v2
|
|
815
815
|
- **iOS**: All HomeKit-supported devices
|
|
816
816
|
- **Languages**: All languages supported via custom names
|
|
@@ -841,6 +841,27 @@ For issues and questions:
|
|
|
841
841
|
|
|
842
842
|
## 📈 Changelog
|
|
843
843
|
|
|
844
|
+
### [2.0.8] - 2026-02-26
|
|
845
|
+
**Fixed**
|
|
846
|
+
- 🐛 Token storage now uses `api.user.storagePath()` (Homebridge storage directory) instead of `process.cwd()`, as required by Homebridge plugin verification guidelines.
|
|
847
|
+
- 🐛 Early config validation in `ViessmannPlatform` constructor: plugin exits cleanly if `clientId` or `username` are missing, instead of crashing on first API call.
|
|
848
|
+
**Changed**
|
|
849
|
+
- 🔧 `PLUGIN_VERSION` updated to `2.0.8` in `settings.ts` (User-Agent and logs now reflect the correct version).
|
|
850
|
+
- 🔧 `ViessmannAPI` constructor now accepts optional `storagePath` parameter passed from Homebridge.
|
|
851
|
+
- 🔧 `AuthManager` constructor accepts optional `storagePath` parameter (fallback to `.homebridge` in cwd for backward compatibility).
|
|
852
|
+
|
|
853
|
+
### [2.0.7] - 2025-10-07
|
|
854
|
+
**Fixed**
|
|
855
|
+
- 🐛 Minor stability improvements and internal code cleanup.
|
|
856
|
+
|
|
857
|
+
### [2.0.6] - 2025-10-07
|
|
858
|
+
**Fixed**
|
|
859
|
+
- 🐛 Improved error handling for edge cases in token refresh flow.
|
|
860
|
+
|
|
861
|
+
### [2.0.5] - 2025-10-07
|
|
862
|
+
**Fixed**
|
|
863
|
+
- 🐛 Additional resilience improvements for authentication on headless systems.
|
|
864
|
+
|
|
844
865
|
### [2.0.4] - 2025-10-06
|
|
845
866
|
**Added**
|
|
846
867
|
- ✨ `logEnvDiagnostics()` for better detection of graphical environment (X11, Wayland, systemd, headless).
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"boiler-accessory.d.ts","sourceRoot":"","sources":["../../src/accessories/boiler-accessory.ts"],"names":[],"mappings":"AAAA,OAAO,EAAW,iBAAiB,EAAE,mBAAmB,EAAE,MAAM,YAAY,CAAC;AAC7E,OAAO,EAAE,iBAAiB,EAAE,qBAAqB,EAAE,gBAAgB,EAAE,eAAe,EAA2B,MAAM,aAAa,CAAC;AAEnI,qBAAa,wBAAwB;IA2CjC,OAAO,CAAC,QAAQ,CAAC,QAAQ;IACzB,OAAO,CAAC,QAAQ,CAAC,SAAS;IAC1B,OAAO,CAAC,QAAQ,CAAC,YAAY;IAC7B,OAAO,CAAC,QAAQ,CAAC,OAAO;IACxB,OAAO,CAAC,QAAQ,CAAC,MAAM;IA9CzB,OAAO,CAAC,mBAAmB,CAAU;IACrC,OAAO,CAAC,kBAAkB,CAAU;IACpC,OAAO,CAAC,iBAAiB,CAAC,CAAU;IACpC,OAAO,CAAC,aAAa,CAAC,CAAU;IAGhC,OAAO,CAAC,yBAAyB,CAAC,CAAU;IAC5C,OAAO,CAAC,qBAAqB,CAAC,CAAU;IACxC,OAAO,CAAC,uBAAuB,CAAC,CAAU;IAC1C,OAAO,CAAC,uBAAuB,CAAC,CAAU;IAC1C,OAAO,CAAC,qBAAqB,CAAC,CAAU;IACxC,OAAO,CAAC,uBAAuB,CAAC,CAAU;IAC1C,OAAO,CAAC,oBAAoB,CAAC,CAAU;IAEvC,OAAO,CAAC,0BAA0B,CAAS;IAC3C,OAAO,CAAC,sBAAsB,CAAwB;IACtD,OAAO,CAAC,kBAAkB,CAAS;IACnC,OAAO,CAAC,iBAAiB,CAAK;IAE9B,OAAO,CAAC,MAAM,CAoBZ;gBAGiB,QAAQ,EAAE,iBAAiB,EAC3B,SAAS,EAAE,iBAAiB,EAC5B,YAAY,EAAE,qBAAqB,EACnC,OAAO,EAAE,gBAAgB,EACzB,MAAM,EAAE,eAAe;YAuB5B,sBAAsB;IAmBpC,OAAO,CAAC,mBAAmB;IA2E3B,OAAO,CAAC,oBAAoB;IAiB5B,OAAO,CAAC,yBAAyB;IAoBjC,OAAO,CAAC,wBAAwB;IAoEhC,OAAO,CAAC,kBAAkB;IAwD1B,OAAO,CAAC,sBAAsB;IAyE9B,OAAO,CAAC,uBAAuB;IAmO/B,OAAO,CAAC,gCAAgC;IAqCxC,OAAO,CAAC,2BAA2B;IAInC,OAAO,CAAC,iBAAiB;IAIzB,OAAO,CAAC,mBAAmB;IAI3B,OAAO,CAAC,gBAAgB;IAIlB,qBAAqB,IAAI,OAAO,CAAC,mBAAmB,CAAC;IAIrD,8BAA8B,IAAI,OAAO,CAAC,mBAAmB,CAAC;IAI9D,8BAA8B,CAAC,KAAK,EAAE,mBAAmB;YAoCjD,YAAY;
|
|
1
|
+
{"version":3,"file":"boiler-accessory.d.ts","sourceRoot":"","sources":["../../src/accessories/boiler-accessory.ts"],"names":[],"mappings":"AAAA,OAAO,EAAW,iBAAiB,EAAE,mBAAmB,EAAE,MAAM,YAAY,CAAC;AAC7E,OAAO,EAAE,iBAAiB,EAAE,qBAAqB,EAAE,gBAAgB,EAAE,eAAe,EAA2B,MAAM,aAAa,CAAC;AAEnI,qBAAa,wBAAwB;IA2CjC,OAAO,CAAC,QAAQ,CAAC,QAAQ;IACzB,OAAO,CAAC,QAAQ,CAAC,SAAS;IAC1B,OAAO,CAAC,QAAQ,CAAC,YAAY;IAC7B,OAAO,CAAC,QAAQ,CAAC,OAAO;IACxB,OAAO,CAAC,QAAQ,CAAC,MAAM;IA9CzB,OAAO,CAAC,mBAAmB,CAAU;IACrC,OAAO,CAAC,kBAAkB,CAAU;IACpC,OAAO,CAAC,iBAAiB,CAAC,CAAU;IACpC,OAAO,CAAC,aAAa,CAAC,CAAU;IAGhC,OAAO,CAAC,yBAAyB,CAAC,CAAU;IAC5C,OAAO,CAAC,qBAAqB,CAAC,CAAU;IACxC,OAAO,CAAC,uBAAuB,CAAC,CAAU;IAC1C,OAAO,CAAC,uBAAuB,CAAC,CAAU;IAC1C,OAAO,CAAC,qBAAqB,CAAC,CAAU;IACxC,OAAO,CAAC,uBAAuB,CAAC,CAAU;IAC1C,OAAO,CAAC,oBAAoB,CAAC,CAAU;IAEvC,OAAO,CAAC,0BAA0B,CAAS;IAC3C,OAAO,CAAC,sBAAsB,CAAwB;IACtD,OAAO,CAAC,kBAAkB,CAAS;IACnC,OAAO,CAAC,iBAAiB,CAAK;IAE9B,OAAO,CAAC,MAAM,CAoBZ;gBAGiB,QAAQ,EAAE,iBAAiB,EAC3B,SAAS,EAAE,iBAAiB,EAC5B,YAAY,EAAE,qBAAqB,EACnC,OAAO,EAAE,gBAAgB,EACzB,MAAM,EAAE,eAAe;YAuB5B,sBAAsB;IAmBpC,OAAO,CAAC,mBAAmB;IA2E3B,OAAO,CAAC,oBAAoB;IAiB5B,OAAO,CAAC,yBAAyB;IAoBjC,OAAO,CAAC,wBAAwB;IAoEhC,OAAO,CAAC,kBAAkB;IAwD1B,OAAO,CAAC,sBAAsB;IAyE9B,OAAO,CAAC,uBAAuB;IAmO/B,OAAO,CAAC,gCAAgC;IAqCxC,OAAO,CAAC,2BAA2B;IAInC,OAAO,CAAC,iBAAiB;IAIzB,OAAO,CAAC,mBAAmB;IAI3B,OAAO,CAAC,gBAAgB;IAIlB,qBAAqB,IAAI,OAAO,CAAC,mBAAmB,CAAC;IAIrD,8BAA8B,IAAI,OAAO,CAAC,mBAAmB,CAAC;IAI9D,8BAA8B,CAAC,KAAK,EAAE,mBAAmB;YAoCjD,YAAY;YAYZ,kBAAkB;IAoTzB,oBAAoB,IAAI;QAC7B,WAAW,EAAE,MAAM,CAAC;QACpB,YAAY,EAAE,MAAM,CAAC;QACrB,aAAa,EAAE,MAAM,CAAC;QACtB,UAAU,EAAE,MAAM,GAAG,MAAM,GAAG,SAAS,CAAC;QACxC,mBAAmB,EAAE,MAAM,CAAC;QAC5B,sBAAsB,EAAE,MAAM,CAAC;QAC/B,qBAAqB,EAAE,MAAM,CAAC;QAC9B,wBAAwB,EAAE,MAAM,CAAC;QACjC,kBAAkB,EAAE,MAAM,CAAC;QAC3B,aAAa,EAAE,MAAM,CAAC;QACtB,YAAY,EAAE,MAAM,CAAC;KACtB;CAsBF"}
|
|
@@ -562,11 +562,15 @@ class ViessmannBoilerAccessory {
|
|
|
562
562
|
}
|
|
563
563
|
}
|
|
564
564
|
async handleUpdate(features) {
|
|
565
|
+
const t0 = Date.now();
|
|
565
566
|
try {
|
|
566
567
|
await this.updateFromFeatures(features);
|
|
568
|
+
this.platform.log.debug(`🔥 Caldaia handleUpdate OK in ${Date.now() - t0}ms`);
|
|
567
569
|
}
|
|
568
570
|
catch (error) {
|
|
569
|
-
|
|
571
|
+
const msg = error instanceof Error ? error.message : String(error);
|
|
572
|
+
this.platform.log.error(`❌ Caldaia handleUpdate failed after ${Date.now() - t0}ms: ${msg}`);
|
|
573
|
+
this.platform.log.error(` State at failure: burner=${this.states.BurnerActive}, temp=${this.states.CurrentTemperature}°C, mod=${this.states.Modulation}%`);
|
|
570
574
|
}
|
|
571
575
|
}
|
|
572
576
|
async updateFromFeatures(features) {
|
|
@@ -798,8 +802,15 @@ class ViessmannBoilerAccessory {
|
|
|
798
802
|
const efficiency = parseFloat(startsPerHour) < 2 ? 'Good' : 'Poor';
|
|
799
803
|
diagnosticInfo.push(`Efficiency: ${startsPerHour}starts/h(${efficiency})`);
|
|
800
804
|
}
|
|
801
|
-
const diagnosticStr = diagnosticInfo.length > 0 ?
|
|
802
|
-
|
|
805
|
+
const diagnosticStr = diagnosticInfo.length > 0 ? ` | ${diagnosticInfo.join(' | ')}` : '';
|
|
806
|
+
// Log sempre a debug; se il bruciatore è attivo logga anche a info per visibilità
|
|
807
|
+
const statusLine = `🔥 Caldaia — burner=${this.states.BurnerActive ? 'ON 🔥' : 'OFF'} | mod=${this.states.Modulation}% | temp=${this.states.CurrentTemperature}°C→${this.states.HeatingThresholdTemperature}°C${diagnosticStr}`;
|
|
808
|
+
if (this.states.BurnerActive) {
|
|
809
|
+
this.platform.log.info(statusLine);
|
|
810
|
+
}
|
|
811
|
+
else {
|
|
812
|
+
this.platform.log.debug(statusLine);
|
|
813
|
+
}
|
|
803
814
|
}
|
|
804
815
|
// 🆕 NEW: Public method to get diagnostic summary for platform health reports
|
|
805
816
|
getDiagnosticSummary() {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"dhw-accessory.d.ts","sourceRoot":"","sources":["../../src/accessories/dhw-accessory.ts"],"names":[],"mappings":"AAAA,OAAO,EAAW,iBAAiB,EAAE,mBAAmB,EAAE,MAAM,YAAY,CAAC;AAC7E,OAAO,EAAE,iBAAiB,EAAE,qBAAqB,EAAE,gBAAgB,EAAE,eAAe,EAA2B,MAAM,aAAa,CAAC;AAGnI,qBAAa,qBAAqB;IAsB9B,OAAO,CAAC,QAAQ,CAAC,QAAQ;IACzB,OAAO,CAAC,QAAQ,CAAC,SAAS;IAC1B,OAAO,CAAC,QAAQ,CAAC,YAAY;IAC7B,OAAO,CAAC,QAAQ,CAAC,OAAO;IACxB,OAAO,CAAC,QAAQ,CAAC,MAAM;IAzBzB,OAAO,CAAC,mBAAmB,CAAU;IACrC,OAAO,CAAC,kBAAkB,CAAU;IACpC,OAAO,CAAC,cAAc,CAAC,CAAU;IACjC,OAAO,CAAC,UAAU,CAAC,CAAU;IAC7B,OAAO,CAAC,UAAU,CAAC,CAAU;IAE7B,OAAO,CAAC,cAAc,CAAgB;IACtC,OAAO,CAAC,0BAA0B,CAAS;IAC3C,OAAO,CAAC,sBAAsB,CAAwB;IACtD,OAAO,CAAC,WAAW,CAAS;IAE5B,OAAO,CAAC,MAAM,CAOZ;gBAGiB,QAAQ,EAAE,iBAAiB,EAC3B,SAAS,EAAE,iBAAiB,EAC5B,YAAY,EAAE,qBAAqB,EACnC,OAAO,EAAE,gBAAgB,EACzB,MAAM,EAAE,eAAe;YAuB5B,sBAAsB;IAmBpC,OAAO,CAAC,mBAAmB;IAmE7B,OAAO,CAAC,oBAAoB;IAW1B,OAAO,CAAC,yBAAyB;IAqBjC,OAAO,CAAC,wBAAwB;IAsFhC,OAAO,CAAC,iBAAiB;IAgGzB,OAAO,CAAC,qBAAqB;IAqBzB,SAAS,CAAC,KAAK,EAAE,mBAAmB;IAoBlC,cAAc,CAAC,KAAK,EAAE,mBAAmB;IAsBzC,UAAU,CAAC,KAAK,EAAE,mBAAmB;IAsBrC,UAAU,CAAC,KAAK,EAAE,mBAAmB;YAsB7B,OAAO;IA0CrB,OAAO,CAAC,wBAAwB;YA8BlB,iBAAiB;IAqBzB,qBAAqB,IAAI,OAAO,CAAC,mBAAmB,CAAC;IAIrD,8BAA8B,IAAI,OAAO,CAAC,mBAAmB,CAAC;IAK9D,8BAA8B,CAAC,KAAK,EAAE,mBAAmB;YA8CjD,YAAY;
|
|
1
|
+
{"version":3,"file":"dhw-accessory.d.ts","sourceRoot":"","sources":["../../src/accessories/dhw-accessory.ts"],"names":[],"mappings":"AAAA,OAAO,EAAW,iBAAiB,EAAE,mBAAmB,EAAE,MAAM,YAAY,CAAC;AAC7E,OAAO,EAAE,iBAAiB,EAAE,qBAAqB,EAAE,gBAAgB,EAAE,eAAe,EAA2B,MAAM,aAAa,CAAC;AAGnI,qBAAa,qBAAqB;IAsB9B,OAAO,CAAC,QAAQ,CAAC,QAAQ;IACzB,OAAO,CAAC,QAAQ,CAAC,SAAS;IAC1B,OAAO,CAAC,QAAQ,CAAC,YAAY;IAC7B,OAAO,CAAC,QAAQ,CAAC,OAAO;IACxB,OAAO,CAAC,QAAQ,CAAC,MAAM;IAzBzB,OAAO,CAAC,mBAAmB,CAAU;IACrC,OAAO,CAAC,kBAAkB,CAAU;IACpC,OAAO,CAAC,cAAc,CAAC,CAAU;IACjC,OAAO,CAAC,UAAU,CAAC,CAAU;IAC7B,OAAO,CAAC,UAAU,CAAC,CAAU;IAE7B,OAAO,CAAC,cAAc,CAAgB;IACtC,OAAO,CAAC,0BAA0B,CAAS;IAC3C,OAAO,CAAC,sBAAsB,CAAwB;IACtD,OAAO,CAAC,WAAW,CAAS;IAE5B,OAAO,CAAC,MAAM,CAOZ;gBAGiB,QAAQ,EAAE,iBAAiB,EAC3B,SAAS,EAAE,iBAAiB,EAC5B,YAAY,EAAE,qBAAqB,EACnC,OAAO,EAAE,gBAAgB,EACzB,MAAM,EAAE,eAAe;YAuB5B,sBAAsB;IAmBpC,OAAO,CAAC,mBAAmB;IAmE7B,OAAO,CAAC,oBAAoB;IAW1B,OAAO,CAAC,yBAAyB;IAqBjC,OAAO,CAAC,wBAAwB;IAsFhC,OAAO,CAAC,iBAAiB;IAgGzB,OAAO,CAAC,qBAAqB;IAqBzB,SAAS,CAAC,KAAK,EAAE,mBAAmB;IAoBlC,cAAc,CAAC,KAAK,EAAE,mBAAmB;IAsBzC,UAAU,CAAC,KAAK,EAAE,mBAAmB;IAsBrC,UAAU,CAAC,KAAK,EAAE,mBAAmB;YAsB7B,OAAO;IA0CrB,OAAO,CAAC,wBAAwB;YA8BlB,iBAAiB;IAqBzB,qBAAqB,IAAI,OAAO,CAAC,mBAAmB,CAAC;IAIrD,8BAA8B,IAAI,OAAO,CAAC,mBAAmB,CAAC;IAK9D,8BAA8B,CAAC,KAAK,EAAE,mBAAmB;YA8CjD,YAAY;YAcZ,kBAAkB;IA+DzB,2BAA2B,CAAC,YAAY,EAAE,GAAG,GAAG,IAAI;IA2DpD,kBAAkB,IAAI;QAC3B,cAAc,EAAE,MAAM,EAAE,CAAC;QACzB,0BAA0B,EAAE,OAAO,CAAC;QACpC,gBAAgB,EAAE;YAAE,GAAG,EAAE,MAAM,CAAC;YAAC,GAAG,EAAE,MAAM,CAAA;SAAE,CAAC;QAC/C,WAAW,EAAE,MAAM,CAAC;QACpB,cAAc,EAAE,OAAO,CAAC;QACxB,UAAU,EAAE,OAAO,CAAC;QACpB,UAAU,EAAE,OAAO,CAAC;KACrB;IAaM,YAAY,IAAI;QACrB,QAAQ,EAAE,OAAO,CAAC;QAClB,WAAW,EAAE,MAAM,CAAC;QACpB,kBAAkB,EAAE,MAAM,CAAC;QAC3B,iBAAiB,EAAE,MAAM,CAAC;QAC1B,kBAAkB,EAAE,OAAO,CAAC;QAC5B,cAAc,EAAE,MAAM,CAAC;QACvB,cAAc,CAAC,EAAE,MAAM,CAAC;KACzB;IAgBY,aAAa,IAAI,OAAO,CAAC,OAAO,CAAC;IA+B9C,OAAO,CAAC,8BAA8B;IAwBzB,cAAc,IAAI,OAAO,CAAC,OAAO,CAAC;IA4BxC,OAAO,IAAI,IAAI;CASvB"}
|
|
@@ -495,42 +495,78 @@ class ViessmannDHWAccessory {
|
|
|
495
495
|
}
|
|
496
496
|
}
|
|
497
497
|
async handleUpdate(features) {
|
|
498
|
+
// FIX#6: log entry/exit with timing so stale states are immediately visible in logs
|
|
499
|
+
const t0 = Date.now();
|
|
498
500
|
try {
|
|
499
501
|
await this.updateFromFeatures(features);
|
|
502
|
+
this.platform.log.debug(`🚿 ACS handleUpdate OK in ${Date.now() - t0}ms`);
|
|
500
503
|
}
|
|
501
504
|
catch (error) {
|
|
502
|
-
|
|
505
|
+
// FIX#6: was silently swallowing errors — now logs full context so stale state is diagnosable
|
|
506
|
+
const msg = error instanceof Error ? error.message : String(error);
|
|
507
|
+
this.platform.log.error(`❌ ACS handleUpdate failed after ${Date.now() - t0}ms: ${msg}`);
|
|
508
|
+
this.platform.log.error(` State at failure: mode=${this.currentMode}, temp=${this.states.CurrentTemperature}°C, target=${this.states.HeatingThresholdTemperature}°C`);
|
|
503
509
|
}
|
|
504
510
|
}
|
|
505
511
|
async updateFromFeatures(features) {
|
|
512
|
+
let changed = false;
|
|
506
513
|
// Update DHW current temperature
|
|
507
514
|
const dhwTempFeature = features.find(f => f.feature === 'heating.dhw.sensors.temperature.dhwCylinder' ||
|
|
508
515
|
f.feature === 'heating.dhw.sensors.temperature.hotWaterStorage' ||
|
|
509
516
|
f.feature === 'heating.dhw.sensors.temperature.outlet');
|
|
510
517
|
if (dhwTempFeature?.properties?.value?.value !== undefined) {
|
|
511
|
-
|
|
518
|
+
const newTemp = dhwTempFeature.properties.value.value;
|
|
519
|
+
if (newTemp !== this.states.CurrentTemperature) {
|
|
520
|
+
this.platform.log.debug(`🌡️ ACS current temp: ${this.states.CurrentTemperature}°C → ${newTemp}°C`);
|
|
521
|
+
this.states.CurrentTemperature = newTemp;
|
|
522
|
+
changed = true;
|
|
523
|
+
}
|
|
512
524
|
this.heaterCoolerService.updateCharacteristic(this.platform.Characteristic.CurrentTemperature, this.states.CurrentTemperature);
|
|
513
525
|
}
|
|
526
|
+
else {
|
|
527
|
+
this.platform.log.debug(`🌡️ ACS current temp: no sensor feature found (checked dhwCylinder/hotWaterStorage/outlet)`);
|
|
528
|
+
}
|
|
514
529
|
// Update DHW target temperature
|
|
515
530
|
const dhwTargetTempFeature = features.find(f => f.feature === 'heating.dhw.temperature.main');
|
|
516
531
|
if (dhwTargetTempFeature?.properties?.value?.value !== undefined && this.supportsTemperatureControl) {
|
|
517
532
|
const targetTemp = dhwTargetTempFeature.properties.value.value;
|
|
518
533
|
if (targetTemp >= this.temperatureConstraints.min && targetTemp <= this.temperatureConstraints.max) {
|
|
519
|
-
this.states.HeatingThresholdTemperature
|
|
534
|
+
if (targetTemp !== this.states.HeatingThresholdTemperature) {
|
|
535
|
+
this.platform.log.debug(`🎯 ACS target temp: ${this.states.HeatingThresholdTemperature}°C → ${targetTemp}°C`);
|
|
536
|
+
this.states.HeatingThresholdTemperature = targetTemp;
|
|
537
|
+
changed = true;
|
|
538
|
+
}
|
|
520
539
|
this.heaterCoolerService.updateCharacteristic(this.platform.Characteristic.HeatingThresholdTemperature, targetTemp);
|
|
521
540
|
}
|
|
541
|
+
else {
|
|
542
|
+
this.platform.log.warn(`🎯 ACS target temp ${targetTemp}°C out of range ${this.temperatureConstraints.min}-${this.temperatureConstraints.max}°C — ignored`);
|
|
543
|
+
}
|
|
522
544
|
}
|
|
523
|
-
// Update DHW operating mode
|
|
545
|
+
// Update DHW operating mode — THE MOST CRITICAL UPDATE
|
|
524
546
|
const dhwOperatingModeFeature = features.find(f => f.feature === 'heating.dhw.operating.modes.active');
|
|
525
547
|
if (dhwOperatingModeFeature?.properties?.value?.value !== undefined) {
|
|
526
548
|
const newMode = dhwOperatingModeFeature.properties.value.value;
|
|
527
549
|
if (newMode !== this.currentMode) {
|
|
528
|
-
this.platform.log.
|
|
550
|
+
this.platform.log.info(`🚿 ACS mode changed: ${this.currentMode.toUpperCase()} → ${newMode.toUpperCase()}`);
|
|
529
551
|
this.currentMode = newMode;
|
|
530
552
|
this.updateAllCharacteristics();
|
|
553
|
+
changed = true;
|
|
531
554
|
}
|
|
555
|
+
else {
|
|
556
|
+
this.platform.log.debug(`🚿 ACS mode unchanged: ${this.currentMode.toUpperCase()}`);
|
|
557
|
+
}
|
|
558
|
+
}
|
|
559
|
+
else {
|
|
560
|
+
this.platform.log.warn(`🚿 ACS mode: feature 'heating.dhw.operating.modes.active' not found in ${features.length} features — state NOT updated`);
|
|
561
|
+
}
|
|
562
|
+
// Summary log — always visible at debug, visible at info only when something changed
|
|
563
|
+
const summary = `mode=${this.currentMode.toUpperCase()} | temp=${this.states.CurrentTemperature}°C | target=${this.states.HeatingThresholdTemperature}°C`;
|
|
564
|
+
if (changed) {
|
|
565
|
+
this.platform.log.info(`🚿 ACS state updated: ${summary}`);
|
|
566
|
+
}
|
|
567
|
+
else {
|
|
568
|
+
this.platform.log.debug(`🚿 ACS state unchanged: ${summary}`);
|
|
532
569
|
}
|
|
533
|
-
this.platform.log.debug(`DHW Status - Mode: ${this.currentMode.toUpperCase()}, Temp: ${this.states.CurrentTemperature}°C → ${this.states.HeatingThresholdTemperature}°C`);
|
|
534
570
|
}
|
|
535
571
|
// 🆕 NEW: Handle immediate burner status updates from platform
|
|
536
572
|
handleImmediateBurnerUpdate(burnerStatus) {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"heating-circuit-accessory.d.ts","sourceRoot":"","sources":["../../src/accessories/heating-circuit-accessory.ts"],"names":[],"mappings":"AAAA,OAAO,EAAW,iBAAiB,EAAE,mBAAmB,EAAE,MAAM,YAAY,CAAC;AAC7E,OAAO,EAAE,iBAAiB,EAAE,qBAAqB,EAAE,gBAAgB,EAAE,eAAe,EAA2B,MAAM,aAAa,CAAC;AAInI,qBAAa,gCAAgC;IA8CzC,OAAO,CAAC,QAAQ,CAAC,QAAQ;IACzB,OAAO,CAAC,QAAQ,CAAC,SAAS;IAC1B,OAAO,CAAC,QAAQ,CAAC,YAAY;IAC7B,OAAO,CAAC,QAAQ,CAAC,OAAO;IACxB,OAAO,CAAC,QAAQ,CAAC,MAAM;IACvB,OAAO,CAAC,QAAQ,CAAC,aAAa;IAlDhC,OAAO,CAAC,mBAAmB,CAAU;IACrC,OAAO,CAAC,kBAAkB,CAAU;IAGpC,OAAO,CAAC,cAAc,CAAC,CAAU;IACjC,OAAO,CAAC,oBAAoB,CAAC,CAAU;IACvC,OAAO,CAAC,sBAAsB,CAAC,CAAU;IAGzC,OAAO,CAAC,cAAc,CAAC,CAAU;IACjC,OAAO,CAAC,cAAc,CAAC,CAAU;IACjC,OAAO,CAAC,cAAc,CAAC,CAAU;IAEjC,OAAO,CAAC,cAAc,CAAgB;IACtC,OAAO,CAAC,iBAAiB,CAAgB;IACzC,OAAO,CAAC,wBAAwB,CAAgB;IAChD,OAAO,CAAC,0BAA0B,CAAS;IAC3C,OAAO,CAAC,sBAAsB,CAAuB;IACrD,OAAO,CAAC,gBAAgB,CAAS;IACjC,OAAO,CAAC,WAAW,CAAa;IAChC,OAAO,CAAC,cAAc,CAAY;IAElC,OAAO,CAAC,MAAM,CAaZ;IAGF,OAAO,CAAC,mBAAmB,CAIzB;gBAGiB,QAAQ,EAAE,iBAAiB,EAC3B,SAAS,EAAE,iBAAiB,EAC5B,YAAY,EAAE,qBAAqB,EACnC,OAAO,EAAE,gBAAgB,EACzB,MAAM,EAAE,eAAe,EACvB,aAAa,EAAE,MAAM;YAuB1B,sBAAsB;IAyBpC,OAAO,CAAC,mBAAmB;IAuJ3B,OAAO,CAAC,oBAAoB;IAoB5B,OAAO,CAAC,yBAAyB;IAqBjC,OAAO,CAAC,wBAAwB;IA4DlC,OAAO,CAAC,+BAA+B;IA8FrC,OAAO,CAAC,2BAA2B;IAqFnC,OAAO,CAAC,mCAAmC;IA0B3C,OAAO,CAAC,+BAA+B;YA2BzB,iBAAiB;YAejB,gBAAgB;YAehB,iBAAiB;YAejB,wBAAwB;IA2CtC,OAAO,CAAC,gCAAgC;IAqBlC,SAAS,CAAC,KAAK,EAAE,mBAAmB;IAgBpC,0BAA0B,CAAC,KAAK,EAAE,mBAAmB;YAa7C,cAAc;YA+Dd,oBAAoB;YA4DpB,sBAAsB;YAqGtB,6BAA6B;YAsH7B,qBAAqB;IAsBnC,OAAO,CAAC,4BAA4B;IAyCpC,OAAO,CAAC,2BAA2B;IAMnC;;OAEG;YACW,oCAAoC;IAiDlD;;OAEG;YACW,6BAA6B;IAyB3C;;OAEG;YACW,+BAA+B;IAsB7C;;OAEG;IACH,OAAO,CAAC,+BAA+B;YAyBzB,OAAO;IAqCrB,OAAO,CAAC,wBAAwB;IAa1B,qBAAqB,IAAI,OAAO,CAAC,mBAAmB,CAAC;IAIrD,8BAA8B,IAAI,OAAO,CAAC,mBAAmB,CAAC;IAI9D,8BAA8B,CAAC,KAAK,EAAE,mBAAmB;IAgD/D,OAAO,CAAC,kBAAkB;IA4BpB,0BAA0B,IAAI,OAAO,CAAC,mBAAmB,CAAC;YAIlD,YAAY;
|
|
1
|
+
{"version":3,"file":"heating-circuit-accessory.d.ts","sourceRoot":"","sources":["../../src/accessories/heating-circuit-accessory.ts"],"names":[],"mappings":"AAAA,OAAO,EAAW,iBAAiB,EAAE,mBAAmB,EAAE,MAAM,YAAY,CAAC;AAC7E,OAAO,EAAE,iBAAiB,EAAE,qBAAqB,EAAE,gBAAgB,EAAE,eAAe,EAA2B,MAAM,aAAa,CAAC;AAInI,qBAAa,gCAAgC;IA8CzC,OAAO,CAAC,QAAQ,CAAC,QAAQ;IACzB,OAAO,CAAC,QAAQ,CAAC,SAAS;IAC1B,OAAO,CAAC,QAAQ,CAAC,YAAY;IAC7B,OAAO,CAAC,QAAQ,CAAC,OAAO;IACxB,OAAO,CAAC,QAAQ,CAAC,MAAM;IACvB,OAAO,CAAC,QAAQ,CAAC,aAAa;IAlDhC,OAAO,CAAC,mBAAmB,CAAU;IACrC,OAAO,CAAC,kBAAkB,CAAU;IAGpC,OAAO,CAAC,cAAc,CAAC,CAAU;IACjC,OAAO,CAAC,oBAAoB,CAAC,CAAU;IACvC,OAAO,CAAC,sBAAsB,CAAC,CAAU;IAGzC,OAAO,CAAC,cAAc,CAAC,CAAU;IACjC,OAAO,CAAC,cAAc,CAAC,CAAU;IACjC,OAAO,CAAC,cAAc,CAAC,CAAU;IAEjC,OAAO,CAAC,cAAc,CAAgB;IACtC,OAAO,CAAC,iBAAiB,CAAgB;IACzC,OAAO,CAAC,wBAAwB,CAAgB;IAChD,OAAO,CAAC,0BAA0B,CAAS;IAC3C,OAAO,CAAC,sBAAsB,CAAuB;IACrD,OAAO,CAAC,gBAAgB,CAAS;IACjC,OAAO,CAAC,WAAW,CAAa;IAChC,OAAO,CAAC,cAAc,CAAY;IAElC,OAAO,CAAC,MAAM,CAaZ;IAGF,OAAO,CAAC,mBAAmB,CAIzB;gBAGiB,QAAQ,EAAE,iBAAiB,EAC3B,SAAS,EAAE,iBAAiB,EAC5B,YAAY,EAAE,qBAAqB,EACnC,OAAO,EAAE,gBAAgB,EACzB,MAAM,EAAE,eAAe,EACvB,aAAa,EAAE,MAAM;YAuB1B,sBAAsB;IAyBpC,OAAO,CAAC,mBAAmB;IAuJ3B,OAAO,CAAC,oBAAoB;IAoB5B,OAAO,CAAC,yBAAyB;IAqBjC,OAAO,CAAC,wBAAwB;IA4DlC,OAAO,CAAC,+BAA+B;IA8FrC,OAAO,CAAC,2BAA2B;IAqFnC,OAAO,CAAC,mCAAmC;IA0B3C,OAAO,CAAC,+BAA+B;YA2BzB,iBAAiB;YAejB,gBAAgB;YAehB,iBAAiB;YAejB,wBAAwB;IA2CtC,OAAO,CAAC,gCAAgC;IAqBlC,SAAS,CAAC,KAAK,EAAE,mBAAmB;IAgBpC,0BAA0B,CAAC,KAAK,EAAE,mBAAmB;YAa7C,cAAc;YA+Dd,oBAAoB;YA4DpB,sBAAsB;YAqGtB,6BAA6B;YAsH7B,qBAAqB;IAsBnC,OAAO,CAAC,4BAA4B;IAyCpC,OAAO,CAAC,2BAA2B;IAMnC;;OAEG;YACW,oCAAoC;IAiDlD;;OAEG;YACW,6BAA6B;IAyB3C;;OAEG;YACW,+BAA+B;IAsB7C;;OAEG;IACH,OAAO,CAAC,+BAA+B;YAyBzB,OAAO;IAqCrB,OAAO,CAAC,wBAAwB;IAa1B,qBAAqB,IAAI,OAAO,CAAC,mBAAmB,CAAC;IAIrD,8BAA8B,IAAI,OAAO,CAAC,mBAAmB,CAAC;IAI9D,8BAA8B,CAAC,KAAK,EAAE,mBAAmB;IAgD/D,OAAO,CAAC,kBAAkB;IA4BpB,0BAA0B,IAAI,OAAO,CAAC,mBAAmB,CAAC;YAIlD,YAAY;YAYZ,kBAAkB;CAwJjC"}
|
|
@@ -1072,11 +1072,15 @@ class ViessmannHeatingCircuitAccessory {
|
|
|
1072
1072
|
return this.states.CurrentRelativeHumidity;
|
|
1073
1073
|
}
|
|
1074
1074
|
async handleUpdate(features) {
|
|
1075
|
+
const t0 = Date.now();
|
|
1075
1076
|
try {
|
|
1076
1077
|
await this.updateFromFeatures(features);
|
|
1078
|
+
this.platform.log.debug(`🌡️ Riscaldamento ${this.circuitNumber} handleUpdate OK in ${Date.now() - t0}ms`);
|
|
1077
1079
|
}
|
|
1078
1080
|
catch (error) {
|
|
1079
|
-
|
|
1081
|
+
const msg = error instanceof Error ? error.message : String(error);
|
|
1082
|
+
this.platform.log.error(`❌ Riscaldamento ${this.circuitNumber} handleUpdate failed after ${Date.now() - t0}ms: ${msg}`);
|
|
1083
|
+
this.platform.log.error(` State at failure: mode=${this.currentMode}, program=${this.currentProgram}, temp=${this.states.CurrentTemperature}°C`);
|
|
1080
1084
|
}
|
|
1081
1085
|
}
|
|
1082
1086
|
async updateFromFeatures(features) {
|
|
@@ -1190,17 +1194,31 @@ class ViessmannHeatingCircuitAccessory {
|
|
|
1190
1194
|
if (operatingModeFeature?.properties?.value?.value !== undefined) {
|
|
1191
1195
|
const newMode = operatingModeFeature.properties.value.value;
|
|
1192
1196
|
if (newMode !== this.currentMode) {
|
|
1193
|
-
this.platform.log.
|
|
1197
|
+
this.platform.log.info(`🌡️ Riscaldamento ${this.circuitNumber} mode changed: ${this.currentMode.toUpperCase()} → ${newMode.toUpperCase()}`);
|
|
1194
1198
|
this.currentMode = newMode;
|
|
1195
1199
|
this.updateAllCharacteristics();
|
|
1200
|
+
anyProgramStateChanged = true;
|
|
1201
|
+
}
|
|
1202
|
+
else {
|
|
1203
|
+
this.platform.log.debug(`🌡️ Riscaldamento ${this.circuitNumber} mode unchanged: ${this.currentMode.toUpperCase()}`);
|
|
1196
1204
|
}
|
|
1197
1205
|
}
|
|
1206
|
+
else {
|
|
1207
|
+
this.platform.log.warn(`🌡️ Riscaldamento ${this.circuitNumber}: feature '${circuitPrefix}.operating.modes.active' not found — mode NOT updated`);
|
|
1208
|
+
}
|
|
1198
1209
|
// Update humidity if available
|
|
1199
1210
|
const humidityFeature = features.find(f => f.feature.includes('sensors.humidity'));
|
|
1200
1211
|
if (humidityFeature?.properties?.value?.value !== undefined) {
|
|
1201
1212
|
this.states.CurrentRelativeHumidity = humidityFeature.properties.value.value;
|
|
1202
1213
|
}
|
|
1203
|
-
|
|
1214
|
+
// Summary: log at info when mode or program changed, debug otherwise
|
|
1215
|
+
const summaryLine = `🌡️ Riscaldamento ${this.circuitNumber} — mode=${this.currentMode.toUpperCase()} | prog=${this.currentProgram.toUpperCase()} | room=${this.states.CurrentTemperature}°C | target=${this.states.HeatingThresholdTemperature}°C`;
|
|
1216
|
+
if (anyProgramStateChanged || anyTemperatureChanged) {
|
|
1217
|
+
this.platform.log.info(summaryLine);
|
|
1218
|
+
}
|
|
1219
|
+
else {
|
|
1220
|
+
this.platform.log.debug(summaryLine);
|
|
1221
|
+
}
|
|
1204
1222
|
}
|
|
1205
1223
|
}
|
|
1206
1224
|
exports.ViessmannHeatingCircuitAccessory = ViessmannHeatingCircuitAccessory;
|
package/dist/auth-manager.d.ts
CHANGED
|
@@ -36,7 +36,8 @@ export declare class AuthManager {
|
|
|
36
36
|
private authServer?;
|
|
37
37
|
private authTimeout?;
|
|
38
38
|
private tokenRefreshTimer?;
|
|
39
|
-
|
|
39
|
+
private envDiagnosticsLogged;
|
|
40
|
+
constructor(log: Logger, config: AuthConfig, httpClient: AxiosInstance, hostIp: string, storagePath?: string);
|
|
40
41
|
private validateAuthConfiguration;
|
|
41
42
|
private generatePKCECodes;
|
|
42
43
|
private initializeTokens;
|
|
@@ -114,86 +115,10 @@ export declare class AuthManager {
|
|
|
114
115
|
}
|
|
115
116
|
}
|
|
116
117
|
|
|
117
|
-
private openBrowser(url: string): void {
|
|
118
|
-
const { execFile, exec } = require('child_process');
|
|
119
118
|
|
|
120
|
-
const tryExecFile = (cmd: string, args: string[], env: NodeJS.ProcessEnv) =>
|
|
121
|
-
new Promise<void>((resolve, reject) => {
|
|
122
|
-
execFile(cmd, args, { env }, (err: any) => err ? reject(err) : resolve());
|
|
123
|
-
});
|
|
124
|
-
|
|
125
|
-
const tryExec = (command: string, env: NodeJS.ProcessEnv) =>
|
|
126
|
-
new Promise<void>((resolve, reject) => {
|
|
127
|
-
exec(command, { env }, (err: any) => err ? reject(err) : resolve());
|
|
128
|
-
});
|
|
129
|
-
|
|
130
|
-
// Copia pulita dell'ambiente
|
|
131
|
-
const env: NodeJS.ProcessEnv = { ...process.env };
|
|
132
|
-
|
|
133
|
-
// Migliora compatibilità Linux (X/Wayland) senza toccare il servizio
|
|
134
|
-
if (process.platform === 'linux') {
|
|
135
|
-
if (!env.DISPLAY) {
|
|
136
|
-
// fallback tipico X11
|
|
137
|
-
env.DISPLAY = ':0';
|
|
138
|
-
}
|
|
139
|
-
if (!env.XDG_RUNTIME_DIR && typeof process.getuid === 'function') {
|
|
140
|
-
env.XDG_RUNTIME_DIR = `/run/user/${process.getuid()}`;
|
|
141
|
-
}
|
|
142
|
-
}
|
|
143
|
-
|
|
144
|
-
|
|
145
|
-
const tryLinux = async () => {
|
|
146
|
-
// 1) Standard freedesktop
|
|
147
|
-
try { await tryExecFile('xdg-open', [url], env); this.log.debug('🌐 xdg-open OK'); return; } catch {}
|
|
148
|
-
|
|
149
|
-
// 2) Gio / GVFS
|
|
150
|
-
try { await tryExec(`gio open "${url}"`, env); this.log.debug('🌐 gio open OK'); return; } catch {}
|
|
151
|
-
|
|
152
|
-
// 3) Debian-like helpers
|
|
153
|
-
try { await tryExecFile('sensible-browser', [url], env); this.log.debug('🌐 sensible-browser OK'); return; } catch {}
|
|
154
|
-
try { await tryExecFile('x-www-browser', [url], env); this.log.debug('🌐 x-www-browser OK'); return; } catch {}
|
|
155
|
-
|
|
156
|
-
// 4) xdg-desktop-portal (DBus OpenURI) — compatibile Wayland/X
|
|
157
|
-
try {
|
|
158
|
-
await tryExec(
|
|
159
|
-
`gdbus call --session ` +
|
|
160
|
-
`--dest org.freedesktop.portal.Desktop ` +
|
|
161
|
-
`--object-path /org/freedesktop/portal/desktop ` +
|
|
162
|
-
`--method org.freedesktop.portal.OpenURI.OpenURI "" "${url}" "{}"`,
|
|
163
|
-
env
|
|
164
|
-
);
|
|
165
|
-
this.log.debug('🌐 xdg-desktop-portal OpenURI OK');
|
|
166
|
-
return;
|
|
167
|
-
} catch {}
|
|
168
|
-
|
|
169
|
-
// 5) backend specifici (best-effort, non bloccanti)
|
|
170
|
-
try { await tryExecFile('kde-open5', [url], env); this.log.debug('🌐 kde-open5 OK'); return; } catch {}
|
|
171
|
-
try { await tryExecFile('gnome-open', [url], env); this.log.debug('🌐 gnome-open OK'); return; } catch {}
|
|
172
|
-
|
|
173
|
-
// Nessun metodo disponibile/riuscito
|
|
174
|
-
throw new Error('No Linux opener succeeded');
|
|
175
|
-
};
|
|
176
|
-
|
|
177
|
-
(async () => {
|
|
178
|
-
try {
|
|
179
|
-
switch (process.platform) {
|
|
180
|
-
case 'darwin':
|
|
181
|
-
await tryExec(`open "${url}"`, env);
|
|
182
|
-
break;
|
|
183
|
-
case 'win32':
|
|
184
|
-
await tryExec(`start "" "${url}"`, env);
|
|
185
|
-
break;
|
|
186
|
-
default:
|
|
187
|
-
await tryLinux();
|
|
188
|
-
}
|
|
189
|
-
this.log.info('✅ Tentativo di apertura browser completato');
|
|
190
|
-
} catch (e: any) {
|
|
191
|
-
this.log.warn(`⚠️ Impossibile aprire automaticamente il browser (${e?.message || e}). Apri l’URL manualmente.`);
|
|
192
|
-
}
|
|
193
|
-
})();
|
|
194
|
-
}
|
|
195
119
|
**/
|
|
196
120
|
private openBrowser;
|
|
121
|
+
private tryOpenBrowserDirect;
|
|
197
122
|
private exchangeCodeForTokens;
|
|
198
123
|
refreshAccessToken(): Promise<void>;
|
|
199
124
|
private setTokens;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"auth-manager.d.ts","sourceRoot":"","sources":["../src/auth-manager.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,EAAE,MAAM,YAAY,CAAC;AACpC,OAAO,EAAE,aAAa,EAAiB,MAAM,OAAO,CAAC;AAOrD,MAAM,WAAW,UAAU;IACzB,QAAQ,EAAE,MAAM,CAAC;IACjB,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,QAAQ,EAAE,MAAM,CAAC;IACjB,QAAQ,EAAE,MAAM,CAAC;IACjB,UAAU,CAAC,EAAE,MAAM,GAAG,QAAQ,CAAC;IAC/B,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,kBAAkB,CAAC,EAAE,MAAM,CAAC;IAC5B,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,sBAAsB,CAAC,EAAE,OAAO,CAAC;CAClC;AAkBD,qBAAa,WAAW;
|
|
1
|
+
{"version":3,"file":"auth-manager.d.ts","sourceRoot":"","sources":["../src/auth-manager.ts"],"names":[],"mappings":"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"}
|