homebridge-econet-rheem 1.5.12 → 1.5.13-beta.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (53) hide show
  1. package/CHANGELOG.md +10 -2
  2. package/config.schema.json +9 -10
  3. package/dist/homebridge/platform.js +10 -11
  4. package/dist/homebridge/platform.js.map +1 -1
  5. package/dist/homebridge/thermostatAccessory.js +4 -4
  6. package/dist/homebridge/thermostatAccessory.js.map +1 -1
  7. package/dist/homebridge/waterHeaterAccessory.d.ts +0 -1
  8. package/dist/homebridge/waterHeaterAccessory.js +3 -5
  9. package/dist/homebridge/waterHeaterAccessory.js.map +1 -1
  10. package/dist/homebridge-ui/public/index.html +17 -0
  11. package/dist/homebridge-ui/public/ui.js +1 -0
  12. package/dist/homebridge-ui/server.js +8 -2
  13. package/dist/homebridge-ui/server.js.map +1 -1
  14. package/dist/i18n/en.d.ts +80 -0
  15. package/dist/i18n/en.js +86 -0
  16. package/dist/i18n/en.js.map +1 -0
  17. package/dist/i18n/i18n.d.ts +89 -0
  18. package/dist/i18n/i18n.js +38 -0
  19. package/dist/i18n/i18n.js.map +1 -0
  20. package/dist/i18n/template.d.ts +80 -0
  21. package/dist/i18n/template.js +8 -0
  22. package/dist/i18n/template.js.map +1 -0
  23. package/dist/i18n/zz.d.ts +109 -0
  24. package/dist/i18n/zz.js +35 -0
  25. package/dist/i18n/zz.js.map +1 -0
  26. package/dist/model/api.d.ts +4 -4
  27. package/dist/model/api.js +47 -46
  28. package/dist/model/api.js.map +1 -1
  29. package/dist/model/auth.d.ts +2 -2
  30. package/dist/model/auth.js +21 -16
  31. package/dist/model/auth.js.map +1 -1
  32. package/dist/model/equipment.js +6 -6
  33. package/dist/model/equipment.js.map +1 -1
  34. package/dist/model/recoverySimulator.d.ts +3 -2
  35. package/dist/model/recoverySimulator.js +15 -10
  36. package/dist/model/recoverySimulator.js.map +1 -1
  37. package/dist/model/thermostat.js +12 -12
  38. package/dist/model/thermostat.js.map +1 -1
  39. package/dist/model/types.d.ts +1 -1
  40. package/dist/model/waterHeater.d.ts +3 -2
  41. package/dist/model/waterHeater.js +16 -14
  42. package/dist/model/waterHeater.js.map +1 -1
  43. package/dist/tools/log.js +6 -5
  44. package/dist/tools/log.js.map +1 -1
  45. package/dist/tools/storage.d.ts +2 -3
  46. package/dist/tools/storage.js +20 -18
  47. package/dist/tools/storage.js.map +1 -1
  48. package/eslint.config.ts +35 -0
  49. package/package.json +12 -9
  50. package/src/homebridge-ui/public/index.html +6 -93
  51. package/dist/lang/en.d.ts +0 -53
  52. package/dist/lang/en.js +0 -60
  53. package/dist/lang/en.js.map +0 -1
@@ -1,5 +1,5 @@
1
1
  import crypto from 'crypto';
2
- import { safeGetItem, safeSetItem, STORAGE_KEY_AUTH } from '../tools/storage.js';
2
+ import { storageGet, storageSet, STORAGE_KEY_AUTH } from '../tools/storage.js';
3
3
  export class Auth {
4
4
  data;
5
5
  constructor(data) {
@@ -17,23 +17,28 @@ export class Auth {
17
17
  static digest(encryptionKey) {
18
18
  return crypto.createHash('sha256').update(encryptionKey).digest();
19
19
  }
20
- save(filePath, encryptionKey) {
21
- const serailzed = JSON.stringify({
22
- data: this.data,
23
- });
24
- const digest = Auth.digest(encryptionKey);
25
- const iv = crypto.randomBytes(16);
26
- const cipher = crypto.createCipheriv('aes-256-cbc', digest, iv);
27
- const encrypted = Buffer.concat([cipher.update(serailzed, 'utf8'), cipher.final()]);
28
- const final = iv.toString('hex') + ':' + encrypted.toString('hex');
29
- safeSetItem(filePath, STORAGE_KEY_AUTH, final);
30
- }
31
- static load(filePath, encryptionKey) {
32
- const final = safeGetItem(filePath, STORAGE_KEY_AUTH);
33
- if (!final) {
34
- return null;
20
+ async save(filePath, encryptionKey) {
21
+ try {
22
+ const serailzed = JSON.stringify({
23
+ data: this.data,
24
+ });
25
+ const digest = Auth.digest(encryptionKey);
26
+ const iv = crypto.randomBytes(16);
27
+ const cipher = crypto.createCipheriv('aes-256-cbc', digest, iv);
28
+ const encrypted = Buffer.concat([cipher.update(serailzed, 'utf8'), cipher.final()]);
29
+ const final = iv.toString('hex') + ':' + encrypted.toString('hex');
30
+ await storageSet(filePath, STORAGE_KEY_AUTH, final);
31
+ }
32
+ catch (err) {
33
+ // Nothing
35
34
  }
35
+ }
36
+ static async load(filePath, encryptionKey) {
36
37
  try {
38
+ const final = await storageGet(filePath, STORAGE_KEY_AUTH);
39
+ if (!final) {
40
+ return null;
41
+ }
37
42
  const digest = Auth.digest(encryptionKey);
38
43
  const [ivHex, encryptedHex] = final.split(':');
39
44
  const iv = Buffer.from(ivHex, 'hex');
@@ -1 +1 @@
1
- {"version":3,"file":"auth.js","sourceRoot":"","sources":["../../src/model/auth.ts"],"names":[],"mappings":"AAAA,OAAO,MAAM,MAAM,QAAQ,CAAC;AAI5B,OAAO,EAAE,WAAW,EAAE,WAAW,EAAE,gBAAgB,EAAE,MAAM,qBAAqB,CAAC;AAEjF,MAAM,OAAO,IAAI;IAGI;IADnB,YACmB,IAAe;QAAf,SAAI,GAAJ,IAAI,CAAW;IAChC,CAAC;IAEH,IAAI,KAAK;QACP,OAAO,IAAI,CAAC,IAAI,CAAC,UAAU,CAAC;IAC9B,CAAC;IAED,IAAI,MAAM;QACR,OAAO,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC;IAC3B,CAAC;IAED,IAAI,SAAS;QACX,OAAO,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC,UAAU,CAAC;IACtC,CAAC;IAEO,MAAM,CAAC,MAAM,CAAC,aAAqB;QACzC,OAAO,MAAM,CAAC,UAAU,CAAC,QAAQ,CAAC,CAAC,MAAM,CAAC,aAAa,CAAC,CAAC,MAAM,EAAE,CAAC;IACpE,CAAC;IAED,IAAI,CAAC,QAAgB,EAAE,aAAqB;QAE1C,MAAM,SAAS,GAAG,IAAI,CAAC,SAAS,CAAC;YAC/B,IAAI,EAAE,IAAI,CAAC,IAAI;SAChB,CAAC,CAAC;QAEH,MAAM,MAAM,GAAG,IAAI,CAAC,MAAM,CAAC,aAAa,CAAC,CAAC;QAC1C,MAAM,EAAE,GAAG,MAAM,CAAC,WAAW,CAAC,EAAE,CAAC,CAAC;QAClC,MAAM,MAAM,GAAG,MAAM,CAAC,cAAc,CAAC,aAAa,EAAE,MAAM,EAAE,EAAE,CAAC,CAAC;QAChE,MAAM,SAAS,GAAG,MAAM,CAAC,MAAM,CAAC,CAAC,MAAM,CAAC,MAAM,CAAC,SAAS,EAAE,MAAM,CAAC,EAAE,MAAM,CAAC,KAAK,EAAE,CAAC,CAAC,CAAC;QACpF,MAAM,KAAK,GAAG,EAAE,CAAC,QAAQ,CAAC,KAAK,CAAC,GAAG,GAAG,GAAG,SAAS,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC;QAEnE,WAAW,CAAC,QAAQ,EAAE,gBAAgB,EAAE,KAAK,CAAC,CAAC;IACjD,CAAC;IAED,MAAM,CAAC,IAAI,CAAC,QAAgB,EAAE,aAAqB;QAEjD,MAAM,KAAK,GAAG,WAAW,CAAC,QAAQ,EAAE,gBAAgB,CAAC,CAAC;QACtD,IAAI,CAAC,KAAK,EAAE,CAAC;YACX,OAAO,IAAI,CAAC;QACd,CAAC;QAED,IAAI,CAAC;YAEH,MAAM,MAAM,GAAG,IAAI,CAAC,MAAM,CAAC,aAAa,CAAC,CAAC;YAC1C,MAAM,CAAC,KAAK,EAAE,YAAY,CAAC,GAAG,KAAK,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;YAC/C,MAAM,EAAE,GAAG,MAAM,CAAC,IAAI,CAAC,KAAK,EAAE,KAAK,CAAC,CAAC;YACrC,MAAM,SAAS,GAAG,MAAM,CAAC,IAAI,CAAC,YAAY,EAAE,KAAK,CAAC,CAAC;YACnD,MAAM,QAAQ,GAAG,MAAM,CAAC,gBAAgB,CAAC,aAAa,EAAE,MAAM,EAAE,EAAE,CAAC,CAAC;YACpE,MAAM,SAAS,GAAG,MAAM,CAAC,MAAM,CAAC,CAAC,QAAQ,CAAC,MAAM,CAAC,SAAS,CAAC,EAAE,QAAQ,CAAC,KAAK,EAAE,CAAC,CAAC,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAC;YAEjG,MAAM,GAAG,GAAG,IAAI,CAAC,KAAK,CAAC,SAAS,CAAyC,CAAC;YAC1E,OAAO,IAAI,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC;QAE5B,CAAC;QAAC,MAAM,CAAC;YACP,OAAO,IAAI,CAAC;QACd,CAAC;IACH,CAAC;CACF"}
1
+ {"version":3,"file":"auth.js","sourceRoot":"","sources":["../../src/model/auth.ts"],"names":[],"mappings":"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"}
@@ -1,5 +1,5 @@
1
1
  import { TemperatureUnits } from './constants.js';
2
- import strings from '../lang/en.js';
2
+ import { strings } from '../i18n/i18n.js';
3
3
  export class Equipment {
4
4
  api;
5
5
  device_id;
@@ -13,18 +13,18 @@ export class Equipment {
13
13
  this.api = api;
14
14
  this.device_id = data.device_name;
15
15
  this.serial_number = data.serial_number;
16
- this.device_name = data['@NAME']?.value ?? strings.brand;
16
+ this.device_name = data['@NAME']?.value ?? strings.general.brand;
17
17
  this.alert_count = data['@ALERTCOUNT'] ?? 0;
18
18
  this.temp_units = data['@SETPOINT']?.constraints?.units?.includes('F') ? TemperatureUnits.FAHRENHEIT : TemperatureUnits.CELSIUS;
19
19
  }
20
20
  get deviceId() {
21
- return this.device_id || strings.undefined;
21
+ return this.device_id || strings.general.undefined;
22
22
  }
23
23
  get serialNumber() {
24
- return this.serial_number || strings.undefined;
24
+ return this.serial_number || strings.general.undefined;
25
25
  }
26
26
  get deviceName() {
27
- return this.device_name || strings.undefined;
27
+ return this.device_name || strings.general.undefined;
28
28
  }
29
29
  get hasAlert() {
30
30
  return this.alert_count > 0;
@@ -49,7 +49,7 @@ export class Equipment {
49
49
  updateFromMQTT(update) {
50
50
  if (update['@ALERTCOUNT'] !== undefined) {
51
51
  this.alert_count = update['@ALERTCOUNT'];
52
- this.log.ifVerbose(strings.alertCount, this.deviceName, this.alert_count);
52
+ this.log.ifVerbose(strings.debug.alertCount, this.deviceName, this.alert_count);
53
53
  }
54
54
  }
55
55
  publish(payload, deviceId, serialNumber) {
@@ -1 +1 @@
1
- {"version":3,"file":"equipment.js","sourceRoot":"","sources":["../../src/model/equipment.ts"],"names":[],"mappings":"AACA,OAAO,EAAiB,gBAAgB,EAAE,MAAM,gBAAgB,CAAC;AAGjE,OAAO,OAAO,MAAM,eAAe,CAAC;AAIpC,MAAM,OAAgB,SAAS;IAUA;IATrB,SAAS,CAAiB;IAC1B,aAAa,CAAiB;IAC9B,WAAW,CAAiB;IAC5B,WAAW,GAAW,CAAC,CAAC;IACxB,UAAU,GAAG,gBAAgB,CAAC,OAAO,CAAC;IACpC,OAAO,GAAY,KAAK,CAAC;IAE3B,iBAAiB,GAA4C,IAAI,CAAC;IAE1E,YAA6B,GAAc,EAAE,IAAmB;QAAnC,QAAG,GAAH,GAAG,CAAW;QACzC,IAAI,CAAC,SAAS,GAAG,IAAI,CAAC,WAAW,CAAC;QAClC,IAAI,CAAC,aAAa,GAAG,IAAI,CAAC,aAAa,CAAC;QACxC,IAAI,CAAC,WAAW,GAAG,IAAI,CAAC,OAAO,CAAC,EAAE,KAAK,IAAI,OAAO,CAAC,KAAK,CAAC;QACzD,IAAI,CAAC,WAAW,GAAG,IAAI,CAAC,aAAa,CAAC,IAAI,CAAC,CAAC;QAC5C,IAAI,CAAC,UAAU,GAAG,IAAI,CAAC,WAAW,CAAC,EAAE,WAAW,EAAE,KAAK,EAAE,QAAQ,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,gBAAgB,CAAC,UAAU,CAAC,CAAC,CAAC,gBAAgB,CAAC,OAAO,CAAC;IAClI,CAAC;IAID,IAAI,QAAQ;QACV,OAAO,IAAI,CAAC,SAAS,IAAI,OAAO,CAAC,SAAS,CAAC;IAC7C,CAAC;IAED,IAAI,YAAY;QACd,OAAO,IAAI,CAAC,aAAa,IAAI,OAAO,CAAC,SAAS,CAAC;IACjD,CAAC;IAED,IAAI,UAAU;QACZ,OAAO,IAAI,CAAC,WAAW,IAAI,OAAO,CAAC,SAAS,CAAC;IAC/C,CAAC;IAED,IAAI,QAAQ;QACV,OAAO,IAAI,CAAC,WAAW,GAAG,CAAC,CAAC;IAC9B,CAAC;IAED,IAAI,KAAK;QACP,OAAO,IAAI,CAAC,UAAU,CAAC;IACzB,CAAC;IAED,IAAI,SAAS;QACX,OAAO,IAAI,CAAC,OAAO,CAAC;IACtB,CAAC;IAED,IAAc,GAAG;QACf,OAAO,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC;IACtB,CAAC;IAED,mBAAmB,CAAC,QAAwC;QAC1D,IAAI,CAAC,iBAAiB,GAAG,QAAQ,CAAC;IACpC,CAAC;IAES,SAAS;QACjB,IAAI,IAAI,CAAC,iBAAiB,EAAE,CAAC;YAC3B,IAAI,CAAC,iBAAiB,CAAC,IAAI,CAAC,YAAY,CAAC,CAAC;QAC5C,CAAC;IACH,CAAC;IAED,cAAc,CAAC,MAAgB;QAE7B,IAAI,MAAM,CAAC,aAAa,CAAC,KAAK,SAAS,EAAE,CAAC;YACxC,IAAI,CAAC,WAAW,GAAG,MAAM,CAAC,aAAa,CAAC,CAAC;YACzC,IAAI,CAAC,GAAG,CAAC,SAAS,CAAC,OAAO,CAAC,UAAU,EAAE,IAAI,CAAC,UAAU,EAAE,IAAI,CAAC,WAAW,CAAC,CAAC;QAC5E,CAAC;IACH,CAAC;IAED,OAAO,CAAC,OAAkC,EAAE,QAAgB,EAAE,YAAoB;QAChF,IAAI,CAAC,GAAG,CAAC,OAAO,CAAC,OAAO,EAAE,QAAQ,EAAE,YAAY,CAAC,CAAC;IACpD,CAAC;CACF"}
1
+ {"version":3,"file":"equipment.js","sourceRoot":"","sources":["../../src/model/equipment.ts"],"names":[],"mappings":"AACA,OAAO,EAAiB,gBAAgB,EAAE,MAAM,gBAAgB,CAAC;AAGjE,OAAO,EAAE,OAAO,EAAE,MAAM,iBAAiB,CAAC;AAI1C,MAAM,OAAgB,SAAS;IAUA;IATrB,SAAS,CAAiB;IAC1B,aAAa,CAAiB;IAC9B,WAAW,CAAiB;IAC5B,WAAW,GAAW,CAAC,CAAC;IACxB,UAAU,GAAG,gBAAgB,CAAC,OAAO,CAAC;IACpC,OAAO,GAAY,KAAK,CAAC;IAE3B,iBAAiB,GAA4C,IAAI,CAAC;IAE1E,YAA6B,GAAc,EAAE,IAAmB;QAAnC,QAAG,GAAH,GAAG,CAAW;QACzC,IAAI,CAAC,SAAS,GAAG,IAAI,CAAC,WAAW,CAAC;QAClC,IAAI,CAAC,aAAa,GAAG,IAAI,CAAC,aAAa,CAAC;QACxC,IAAI,CAAC,WAAW,GAAG,IAAI,CAAC,OAAO,CAAC,EAAE,KAAK,IAAI,OAAO,CAAC,OAAO,CAAC,KAAK,CAAC;QACjE,IAAI,CAAC,WAAW,GAAG,IAAI,CAAC,aAAa,CAAC,IAAI,CAAC,CAAC;QAC5C,IAAI,CAAC,UAAU,GAAG,IAAI,CAAC,WAAW,CAAC,EAAE,WAAW,EAAE,KAAK,EAAE,QAAQ,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,gBAAgB,CAAC,UAAU,CAAC,CAAC,CAAC,gBAAgB,CAAC,OAAO,CAAC;IAClI,CAAC;IAID,IAAI,QAAQ;QACV,OAAO,IAAI,CAAC,SAAS,IAAI,OAAO,CAAC,OAAO,CAAC,SAAS,CAAC;IACrD,CAAC;IAED,IAAI,YAAY;QACd,OAAO,IAAI,CAAC,aAAa,IAAI,OAAO,CAAC,OAAO,CAAC,SAAS,CAAC;IACzD,CAAC;IAED,IAAI,UAAU;QACZ,OAAO,IAAI,CAAC,WAAW,IAAI,OAAO,CAAC,OAAO,CAAC,SAAS,CAAC;IACvD,CAAC;IAED,IAAI,QAAQ;QACV,OAAO,IAAI,CAAC,WAAW,GAAG,CAAC,CAAC;IAC9B,CAAC;IAED,IAAI,KAAK;QACP,OAAO,IAAI,CAAC,UAAU,CAAC;IACzB,CAAC;IAED,IAAI,SAAS;QACX,OAAO,IAAI,CAAC,OAAO,CAAC;IACtB,CAAC;IAED,IAAc,GAAG;QACf,OAAO,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC;IACtB,CAAC;IAED,mBAAmB,CAAC,QAAwC;QAC1D,IAAI,CAAC,iBAAiB,GAAG,QAAQ,CAAC;IACpC,CAAC;IAES,SAAS;QACjB,IAAI,IAAI,CAAC,iBAAiB,EAAE,CAAC;YAC3B,IAAI,CAAC,iBAAiB,CAAC,IAAI,CAAC,YAAY,CAAC,CAAC;QAC5C,CAAC;IACH,CAAC;IAED,cAAc,CAAC,MAAgB;QAE7B,IAAI,MAAM,CAAC,aAAa,CAAC,KAAK,SAAS,EAAE,CAAC;YACxC,IAAI,CAAC,WAAW,GAAG,MAAM,CAAC,aAAa,CAAC,CAAC;YACzC,IAAI,CAAC,GAAG,CAAC,SAAS,CAAC,OAAO,CAAC,KAAK,CAAC,UAAU,EAAE,IAAI,CAAC,UAAU,EAAE,IAAI,CAAC,WAAW,CAAC,CAAC;QAClF,CAAC;IACH,CAAC;IAED,OAAO,CAAC,OAAkC,EAAE,QAAgB,EAAE,YAAoB;QAChF,IAAI,CAAC,GAAG,CAAC,OAAO,CAAC,OAAO,EAAE,QAAQ,EAAE,YAAY,CAAC,CAAC;IACpD,CAAC;CACF"}
@@ -13,7 +13,8 @@ export declare class RecoverySimulator {
13
13
  private simulatedTemp;
14
14
  private recoveryStartTime;
15
15
  private recoveryStartTemp;
16
- constructor(waterHeater: WaterHeater, onUpdate: () => void);
16
+ static create(waterHeater: WaterHeater, onUpdate: () => void): Promise<RecoverySimulator>;
17
+ private constructor();
17
18
  currentTemp(inputTemp: number): number;
18
19
  private get isRecovering();
19
20
  handleUpdate(waterHeater: WaterHeater): void;
@@ -22,7 +23,7 @@ export declare class RecoverySimulator {
22
23
  private _stopRecoveryTimer;
23
24
  private _updateSimulatedTemp;
24
25
  private _recordRecoveryRate;
25
- private get recoveryRatesObject();
26
+ private getStoredRecoveryRates;
26
27
  private _loadRecoveryRates;
27
28
  private _saveRecoveryRates;
28
29
  }
@@ -1,6 +1,6 @@
1
1
  import { TemperatureUnits } from './constants.js';
2
2
  import { HOUR, MINUTE } from '../tools/time.js';
3
- import { safeGetItem, safeSetItem, STORAGE_KEY_RECOVERY_RATES } from '../tools/storage.js';
3
+ import { storageSet, STORAGE_KEY_RECOVERY_RATES, storageGet } from '../tools/storage.js';
4
4
  // in degrees Celsius per hour
5
5
  const DEFAULT_RECOVERY_RATE = 20;
6
6
  const MINIMUM_RECOVERY_RATE = 1;
@@ -10,7 +10,7 @@ export class RecoverySimulator {
10
10
  onUpdate;
11
11
  minRecoveryRate;
12
12
  defaultRecoveryRate;
13
- recoveryRates;
13
+ recoveryRates = [DEFAULT_RECOVERY_RATE];
14
14
  recoveryTimer = null;
15
15
  serialNumber;
16
16
  availability;
@@ -19,6 +19,11 @@ export class RecoverySimulator {
19
19
  simulatedTemp;
20
20
  recoveryStartTime = null;
21
21
  recoveryStartTemp = null;
22
+ static async create(waterHeater, onUpdate) {
23
+ const simulator = new RecoverySimulator(waterHeater, onUpdate);
24
+ simulator.recoveryRates = await simulator._loadRecoveryRates() ?? [simulator.defaultRecoveryRate];
25
+ return simulator;
26
+ }
22
27
  constructor(waterHeater, onUpdate) {
23
28
  this.waterHeater = waterHeater;
24
29
  this.onUpdate = onUpdate;
@@ -29,7 +34,6 @@ export class RecoverySimulator {
29
34
  this.simulatedTemp = this.setPoint;
30
35
  this.minRecoveryRate = MINIMUM_RECOVERY_RATE * (waterHeater.units === TemperatureUnits.FAHRENHEIT ? 1.8 : 1);
31
36
  this.defaultRecoveryRate = DEFAULT_RECOVERY_RATE * (waterHeater.units === TemperatureUnits.FAHRENHEIT ? 1.8 : 1);
32
- this.recoveryRates = this._loadRecoveryRates() ?? [this.defaultRecoveryRate];
33
37
  }
34
38
  currentTemp(inputTemp) {
35
39
  if (this.availability === 0 && !this.isRecovering) {
@@ -118,17 +122,18 @@ export class RecoverySimulator {
118
122
  }
119
123
  this._saveRecoveryRates();
120
124
  }
121
- get recoveryRatesObject() {
122
- const objectString = safeGetItem(this.waterHeater.storageFilePath, STORAGE_KEY_RECOVERY_RATES);
125
+ async getStoredRecoveryRates() {
126
+ const objectString = await storageGet(this.waterHeater.persistPath, STORAGE_KEY_RECOVERY_RATES);
123
127
  return objectString ? JSON.parse(objectString) : {};
124
128
  }
125
- _loadRecoveryRates() {
126
- return this.recoveryRatesObject[this.serialNumber];
129
+ async _loadRecoveryRates() {
130
+ const ratesObject = await this.getStoredRecoveryRates();
131
+ return ratesObject[this.serialNumber];
127
132
  }
128
- _saveRecoveryRates() {
129
- const ratesObject = this.recoveryRatesObject;
133
+ async _saveRecoveryRates() {
134
+ const ratesObject = await this.getStoredRecoveryRates();
130
135
  ratesObject[this.serialNumber] = this.recoveryRates;
131
- safeSetItem(this.waterHeater.storageFilePath, STORAGE_KEY_RECOVERY_RATES, JSON.stringify(ratesObject));
136
+ await storageSet(this.waterHeater.persistPath, STORAGE_KEY_RECOVERY_RATES, JSON.stringify(ratesObject));
132
137
  }
133
138
  }
134
139
  //# sourceMappingURL=recoverySimulator.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"recoverySimulator.js","sourceRoot":"","sources":["../../src/model/recoverySimulator.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"recoverySimulator.js","sourceRoot":"","sources":["../../src/model/recoverySimulator.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,gBAAgB,EAAE,MAAM,gBAAgB,CAAC;AAGlD,OAAO,EAAE,IAAI,EAAE,MAAM,EAAE,MAAM,kBAAkB,CAAC;AAChD,OAAO,EAAE,UAAU,EAAE,0BAA0B,EAAE,UAAU,EAAE,MAAM,qBAAqB,CAAC;AAEzF,8BAA8B;AAC9B,MAAM,qBAAqB,GAAG,EAAE,CAAC;AACjC,MAAM,qBAAqB,GAAG,CAAC,CAAC;AAEhC,MAAM,uBAAuB,GAAG,CAAC,GAAG,MAAM,CAAC;AAE3C,MAAM,OAAO,iBAAiB;IA2BjB;IACQ;IA1BF,eAAe,CAAS;IACxB,mBAAmB,CAAS;IACrC,aAAa,GAAa,CAAC,qBAAqB,CAAC,CAAC;IAElD,aAAa,GAA0B,IAAI,CAAC;IAEnC,YAAY,CAAS;IAE9B,YAAY,CAAS;IACrB,QAAQ,CAAS;IAEjB,gBAAgB,CAAS;IAEzB,aAAa,CAAS;IAEtB,iBAAiB,GAAkB,IAAI,CAAC;IACxC,iBAAiB,GAAkB,IAAI,CAAC;IAEhD,MAAM,CAAC,KAAK,CAAC,MAAM,CAAC,WAAwB,EAAE,QAAoB;QAChE,MAAM,SAAS,GAAG,IAAI,iBAAiB,CAAC,WAAW,EAAE,QAAQ,CAAC,CAAC;QAC/D,SAAS,CAAC,aAAa,GAAG,MAAM,SAAS,CAAC,kBAAkB,EAAE,IAAI,CAAC,SAAS,CAAC,mBAAmB,CAAC,CAAC;QAClG,OAAO,SAAS,CAAC;IACnB,CAAC;IAED,YACW,WAAwB,EAChB,QAAoB;QAD5B,gBAAW,GAAX,WAAW,CAAa;QAChB,aAAQ,GAAR,QAAQ,CAAY;QAGrC,IAAI,CAAC,YAAY,GAAG,WAAW,CAAC,YAAY,CAAC;QAE7C,IAAI,CAAC,YAAY,GAAG,WAAW,CAAC,YAAY,CAAC;QAC7C,IAAI,CAAC,QAAQ,GAAG,WAAW,CAAC,QAAQ,CAAC;QACrC,IAAI,CAAC,gBAAgB,GAAG,IAAI,CAAC,QAAQ,CAAC;QAEtC,IAAI,CAAC,aAAa,GAAG,IAAI,CAAC,QAAQ,CAAC;QAEnC,IAAI,CAAC,eAAe,GAAG,qBAAqB,GAAG,CAAC,WAAW,CAAC,KAAK,KAAK,gBAAgB,CAAC,UAAU,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;QAC7G,IAAI,CAAC,mBAAmB,GAAG,qBAAqB,GAAG,CAAC,WAAW,CAAC,KAAK,KAAK,gBAAgB,CAAC,UAAU,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;IACnH,CAAC;IAED,WAAW,CAAC,SAAiB;QAE3B,IAAI,IAAI,CAAC,YAAY,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,YAAY,EAAE,CAAC;YAClD,IAAI,CAAC,aAAa,GAAG,SAAS,CAAC;QACjC,CAAC;QAED,OAAO,IAAI,CAAC,aAAa,CAAC;IAC5B,CAAC;IAED,IAAY,YAAY;QACtB,OAAO,IAAI,CAAC,aAAa,KAAK,IAAI,CAAC;IACrC,CAAC;IAED,YAAY,CAAC,WAAwB;QAEnC,IAAI,IAAI,CAAC,QAAQ,KAAK,WAAW,CAAC,QAAQ,EAAE,CAAC;YAC3C,IAAI,CAAC,gBAAgB,GAAG,IAAI,CAAC,QAAQ,CAAC;YACtC,IAAI,CAAC,QAAQ,GAAG,WAAW,CAAC,QAAQ,CAAC;QACvC,CAAC;QAED,IAAI,CAAC,YAAY,GAAG,WAAW,CAAC,YAAY,CAAC;QAE7C,IAAI,WAAW,CAAC,SAAS,IAAI,CAAC,IAAI,CAAC,YAAY;YAC7C,CAAC,IAAI,CAAC,YAAY,KAAK,CAAC,IAAI,IAAI,CAAC,QAAQ,GAAG,IAAI,CAAC,gBAAgB,CAAC,EAAE,CAAC;YACrE,IAAI,CAAC,mBAAmB,EAAE,CAAC;YAC3B,OAAO;QACT,CAAC;QAED,IAAI,CAAC,WAAW,CAAC,SAAS,IAAI,IAAI,CAAC,YAAY,KAAK,CAAC,EAAE,CAAC;YACtD,IAAI,CAAC,kBAAkB,EAAE,CAAC;YAC1B,IAAI,CAAC,QAAQ,EAAE,CAAC;YAChB,OAAO;QACT,CAAC;QAED,IAAI,IAAI,CAAC,QAAQ,GAAG,IAAI,CAAC,gBAAgB,IAAI,IAAI,CAAC,QAAQ,GAAG,IAAI,CAAC,aAAa,EAAE,CAAC;YAChF,IAAI,CAAC,kBAAkB,EAAE,CAAC;YAE1B,IAAI,CAAC,aAAa,GAAG,IAAI,CAAC,QAAQ,CAAC;YACnC,IAAI,CAAC,QAAQ,EAAE,CAAC;YAEhB,OAAO;QACT,CAAC;QAED,IAAI,CAAC,WAAW,CAAC,SAAS,IAAI,IAAI,CAAC,YAAY,EAAE,CAAC;YAChD,IAAI,CAAC,mBAAmB,EAAE,CAAC;YAC3B,IAAI,CAAC,kBAAkB,EAAE,CAAC;YAE1B,IAAI,CAAC,aAAa,GAAG,IAAI,CAAC,QAAQ,CAAC;YACnC,IAAI,CAAC,QAAQ,EAAE,CAAC;YAEhB,OAAO;QACT,CAAC;IACH,CAAC;IAED,IAAY,YAAY;QACtB,OAAO,IAAI,CAAC,aAAa,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,GAAG,IAAI,CAAC,aAAa,CAAC,MAAM,CAAC;IACnF,CAAC;IAEO,mBAAmB;QAEzB,IAAI,IAAI,CAAC,aAAa,EAAE,CAAC;YACvB,aAAa,CAAC,IAAI,CAAC,aAAa,CAAC,CAAC;QACpC,CAAC;QAED,IAAI,CAAC,iBAAiB,GAAG,IAAI,CAAC,GAAG,EAAE,CAAC;QACpC,IAAI,CAAC,iBAAiB,GAAG,IAAI,CAAC,aAAa,CAAC;QAE5C,IAAI,CAAC,aAAa,GAAG,WAAW,CAAC,GAAG,EAAE;YACpC,IAAI,CAAC,oBAAoB,EAAE,CAAC;QAC9B,CAAC,EAAE,uBAAuB,CAAC,CAAC;IAC9B,CAAC;IAEO,kBAAkB;QACxB,IAAI,IAAI,CAAC,aAAa,EAAE,CAAC;YACvB,aAAa,CAAC,IAAI,CAAC,aAAa,CAAC,CAAC;YAClC,IAAI,CAAC,aAAa,GAAG,IAAI,CAAC;QAC5B,CAAC;IACH,CAAC;IAEO,oBAAoB;QAE1B,IAAI,CAAC,IAAI,CAAC,YAAY,EAAE,CAAC;YACvB,OAAO;QACT,CAAC;QAED,MAAM,YAAY,GAAG,IAAI,CAAC,YAAY,GAAG,CAAC,uBAAuB,GAAG,IAAI,CAAC,CAAC;QAE1E,IAAI,CAAC,aAAa,GAAG,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,aAAa,GAAG,YAAY,EAAE,IAAI,CAAC,QAAQ,CAAC,CAAC;QAChF,IAAI,CAAC,QAAQ,EAAE,CAAC;IAClB,CAAC;IAEO,mBAAmB;QAEzB,IAAI,CAAC,IAAI,CAAC,iBAAiB,IAAI,CAAC,IAAI,CAAC,iBAAiB,EAAE,CAAC;YACvD,OAAO;QACT,CAAC;QAED,MAAM,WAAW,GAAG,CAAC,IAAI,CAAC,GAAG,EAAE,GAAG,IAAI,CAAC,iBAAiB,CAAC,GAAG,IAAI,CAAC;QACjE,MAAM,cAAc,GAAG,IAAI,CAAC,QAAQ,GAAG,IAAI,CAAC,iBAAiB,CAAC;QAE9D,IAAI,CAAC,iBAAiB,GAAG,IAAI,CAAC;QAC9B,IAAI,CAAC,iBAAiB,GAAG,IAAI,CAAC;QAE9B,IAAI,WAAW,IAAI,CAAC,EAAE,CAAC;YACrB,OAAO;QACT,CAAC;QAED,MAAM,IAAI,GAAG,cAAc,GAAG,WAAW,CAAC;QAC1C,IAAI,IAAI,GAAG,IAAI,CAAC,eAAe,EAAE,CAAC;YAChC,OAAO;QACT,CAAC;QAED,IAAI,CAAC,aAAa,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;QAE9B,IAAI,IAAI,CAAC,aAAa,CAAC,MAAM,GAAG,CAAC,IAAI,CAAC,IAAI,CAAC,aAAa,CAAC,MAAM,IAAI,CAAC,IAAI,IAAI,CAAC,aAAa,CAAC,CAAC,CAAC,KAAK,IAAI,CAAC,mBAAmB,CAAC,EAAG,CAAC;YAC7H,IAAI,CAAC,aAAa,CAAC,KAAK,EAAE,CAAC;QAC7B,CAAC;QAED,IAAI,CAAC,kBAAkB,EAAE,CAAC;IAC5B,CAAC;IAEO,KAAK,CAAC,sBAAsB;QAClC,MAAM,YAAY,GAAG,MAAM,UAAU,CAAC,IAAI,CAAC,WAAW,CAAC,WAAW,EAAE,0BAA0B,CAAC,CAAC;QAChG,OAAQ,YAAY,CAAC,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,YAAY,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC;IACvD,CAAC;IAEO,KAAK,CAAC,kBAAkB;QAC9B,MAAM,WAAW,GAAG,MAAM,IAAI,CAAC,sBAAsB,EAAE,CAAC;QACxD,OAAO,WAAW,CAAC,IAAI,CAAC,YAAY,CAAC,CAAC;IACxC,CAAC;IAEO,KAAK,CAAC,kBAAkB;QAC9B,MAAM,WAAW,GAAG,MAAM,IAAI,CAAC,sBAAsB,EAAE,CAAC;QACxD,WAAW,CAAC,IAAI,CAAC,YAAY,CAAC,GAAG,IAAI,CAAC,aAAa,CAAC;QACpD,MAAM,UAAU,CAAC,IAAI,CAAC,WAAW,CAAC,WAAW,EAAE,0BAA0B,EAAE,IAAI,CAAC,SAAS,CAAC,WAAW,CAAC,CAAC,CAAC;IAC1G,CAAC;CACF"}
@@ -1,7 +1,7 @@
1
1
  import { EquipmentType, ThermostatOperationMode } from './constants.js';
2
2
  import { Equipment } from './equipment.js';
3
3
  import { getValue } from './types.js';
4
- import strings from '../lang/en.js';
4
+ import { strings } from '../i18n/i18n.js';
5
5
  import { fromCelsius } from '../tools/temperature.js';
6
6
  const DEFAULT_HUMIDITY = 50;
7
7
  const DEFAULT_LOWER_LIMIT = 10;
@@ -78,28 +78,28 @@ export class Thermostat extends Equipment {
78
78
  super.updateFromMQTT(data);
79
79
  if (data['@HUMIDITY'] !== undefined) {
80
80
  this.current_humidity = data['@HUMIDITY'];
81
- this.log.ifVerbose(strings.humidityState, this.deviceName, this.current_humidity);
81
+ this.log.ifVerbose(strings.debug.humidityState, this.deviceName, this.current_humidity);
82
82
  }
83
83
  if (data['@SETPOINT'] !== undefined) {
84
84
  this.current_temp = data['@SETPOINT'];
85
- this.log.ifVerbose(strings.currentTempState, this.deviceName, this.current_temp);
85
+ this.log.ifVerbose(strings.debug.currentTempState, this.deviceName, this.current_temp);
86
86
  }
87
87
  if (data['@COOLSETPOINT'] !== undefined) {
88
88
  this.cool_set_point = data['@COOLSETPOINT'];
89
- this.log.ifVerbose(strings.coolSetpoint, this.deviceName, this.cool_set_point);
89
+ this.log.ifVerbose(strings.debug.coolSetpoint, this.deviceName, this.cool_set_point);
90
90
  }
91
91
  if (data['@HEATSETPOINT'] !== undefined) {
92
92
  this.heat_set_point = data['@HEATSETPOINT'];
93
- this.log.ifVerbose(strings.heatSetpoint, this.deviceName, this.heat_set_point);
93
+ this.log.ifVerbose(strings.debug.heatSetpoint, this.deviceName, this.heat_set_point);
94
94
  }
95
95
  if (data['@MODE'] !== undefined) {
96
96
  const modeIndex = getValue(data['@MODE']);
97
97
  this.current_mode = this.modes.get(modeIndex) ?? ThermostatOperationMode.UNKNOWN;
98
- this.log.ifVerbose(strings.modeState, this.deviceName, this._stringFromMode(this.current_mode) ?? 'UNKNOWN');
98
+ this.log.ifVerbose(strings.debug.modeState, this.deviceName, this._stringFromMode(this.current_mode) ?? 'UNKNOWN');
99
99
  }
100
100
  if (data['@RUNNINGSTATUS'] !== undefined) {
101
101
  this.running = data['@RUNNINGSTATUS'].replace(/\s/g, '').length > 0;
102
- this.log.ifVerbose(strings.runningState, this.deviceName, this.running);
102
+ this.log.ifVerbose(strings.debug.runningState, this.deviceName, this.running);
103
103
  }
104
104
  this.didUpdate();
105
105
  }
@@ -119,7 +119,7 @@ export class Thermostat extends Equipment {
119
119
  case 'EMERGENCYHEAT':
120
120
  return ThermostatOperationMode.EMERGENCY_HEAT;
121
121
  default:
122
- this.log.error(strings.unknownMode, strValue);
122
+ this.log.error(strings.equipment.unknownMode, strValue);
123
123
  return ThermostatOperationMode.UNKNOWN;
124
124
  }
125
125
  }
@@ -152,7 +152,7 @@ export class Thermostat extends Equipment {
152
152
  this.publish(payload, this.deviceId, this.serialNumber);
153
153
  }
154
154
  else {
155
- this.log.error(strings.unknownMode, mode);
155
+ this.log.error(strings.equipment.unknownMode, mode);
156
156
  }
157
157
  }
158
158
  setSetPoint(targetTemp, targetTempCool, targetTempHeat) {
@@ -165,7 +165,7 @@ export class Thermostat extends Equipment {
165
165
  coolPayload['@COOLSETPOINT'] = temp;
166
166
  }
167
167
  else {
168
- this.log.error(strings.outOfRangeCool, lower, upper, temp);
168
+ this.log.error(strings.equipment.outOfRangeCool, lower, upper, temp);
169
169
  }
170
170
  }
171
171
  if (targetTempHeat || (targetTemp && [ThermostatOperationMode.HEATING, ThermostatOperationMode.EMERGENCY_HEAT].includes(this.mode))) {
@@ -175,7 +175,7 @@ export class Thermostat extends Equipment {
175
175
  heatPayload['@HEATSETPOINT'] = temp;
176
176
  }
177
177
  else {
178
- this.log.error(strings.outOfRangeHeat, lower, upper, temp);
178
+ this.log.error(strings.equipment.outOfRangeHeat, lower, upper, temp);
179
179
  }
180
180
  }
181
181
  let hasSetTemp = false;
@@ -196,7 +196,7 @@ export class Thermostat extends Equipment {
196
196
  payload = heatPayload;
197
197
  }
198
198
  else {
199
- this.log.error(strings.setpointUnknown, this.mode);
199
+ this.log.error(strings.equipment.setpointUnknown, this.mode);
200
200
  }
201
201
  if (Object.keys(payload).length > 0) {
202
202
  this.publish(payload, this.deviceId, this.serialNumber);
@@ -1 +1 @@
1
- {"version":3,"file":"thermostat.js","sourceRoot":"","sources":["../../src/model/thermostat.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"thermostat.js","sourceRoot":"","sources":["../../src/model/thermostat.ts"],"names":[],"mappings":"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"}
@@ -1,4 +1,4 @@
1
- import { ThermostatOperationMode } from './constants';
1
+ import { ThermostatOperationMode } from './constants.js';
2
2
  export declare const SENSITIVE_KEYS: string[];
3
3
  export type ValueOrObject<T> = T | {
4
4
  value: T;
@@ -3,14 +3,15 @@ import { EquipmentType } from './constants.js';
3
3
  import { Equipment } from './equipment.js';
4
4
  import { MQTTData, WaterHeaterData } from './types.js';
5
5
  export declare class WaterHeater extends Equipment {
6
- readonly storageFilePath: string;
6
+ readonly persistPath: string;
7
7
  private enabled;
8
8
  private lower_limit;
9
9
  private upper_limit;
10
10
  private set_point;
11
11
  private availability_icon;
12
12
  private recoverySimulator;
13
- constructor(api: EconetApi, data: WaterHeaterData, storageFilePath: string);
13
+ static create(api: EconetApi, data: WaterHeaterData, persistPath: string): Promise<WaterHeater>;
14
+ private constructor();
14
15
  get type(): EquipmentType;
15
16
  get isEnabled(): boolean;
16
17
  get limits(): [number, number];
@@ -2,22 +2,29 @@ import { EquipmentType } from './constants.js';
2
2
  import { Equipment } from './equipment.js';
3
3
  import { RecoverySimulator } from './recoverySimulator.js';
4
4
  import { getValue } from './types.js';
5
- import strings from '../lang/en.js';
5
+ import { strings } from '../i18n/i18n.js';
6
6
  import { fromCelsius } from '../tools/temperature.js';
7
7
  const DEFAULT_LOWER_LIMIT = 35;
8
8
  const DEFAULT_UPPER_LIMIT = 65;
9
9
  const DEFAULT_SETPOINT = 50;
10
10
  export class WaterHeater extends Equipment {
11
- storageFilePath;
11
+ persistPath;
12
12
  enabled = true;
13
13
  lower_limit = 0;
14
14
  upper_limit = 0;
15
15
  set_point = 0;
16
16
  availability_icon = null;
17
17
  recoverySimulator = null;
18
- constructor(api, data, storageFilePath) {
18
+ static async create(api, data, persistPath) {
19
+ const waterHeater = new WaterHeater(api, data, persistPath);
20
+ waterHeater.recoverySimulator = await RecoverySimulator.create(waterHeater, () => {
21
+ waterHeater.didUpdate();
22
+ });
23
+ return waterHeater;
24
+ }
25
+ constructor(api, data, persistPath) {
19
26
  super(api, data);
20
- this.storageFilePath = storageFilePath;
27
+ this.persistPath = persistPath;
21
28
  this.running = data['@RUNNING'] ? data['@RUNNING']?.replace(/\s/g, '').length > 0 : false;
22
29
  this.enabled = data['@ENABLED']?.value === 1;
23
30
  this.lower_limit = data['@SETPOINT']?.constraints.lowerLimit ?? fromCelsius(DEFAULT_LOWER_LIMIT, this.units);
@@ -64,31 +71,26 @@ export class WaterHeater extends Equipment {
64
71
  return this.set_point;
65
72
  }
66
73
  didUpdate() {
67
- if (!this.recoverySimulator) {
68
- this.recoverySimulator = new RecoverySimulator(this, () => {
69
- super.didUpdate();
70
- });
71
- }
72
- this.recoverySimulator.handleUpdate(this);
74
+ this.recoverySimulator?.handleUpdate(this);
73
75
  super.didUpdate();
74
76
  }
75
77
  updateFromMQTT(data) {
76
78
  super.updateFromMQTT(data);
77
79
  if (data['@ENABLED'] !== undefined) {
78
80
  this.enabled = getValue(data['@ENABLED']) === 1;
79
- this.log.ifVerbose(strings.enabledState, this.deviceName, this.enabled);
81
+ this.log.ifVerbose(strings.debug.enabledState, this.deviceName, this.enabled);
80
82
  }
81
83
  if (data['@SETPOINT'] !== undefined) {
82
84
  this.set_point = data['@SETPOINT'];
83
- this.log.ifVerbose(strings.setpointState, this.deviceName, this.set_point);
85
+ this.log.ifVerbose(strings.debug.setpointState, this.deviceName, this.set_point);
84
86
  }
85
87
  if (data['@HOTWATER'] !== undefined) {
86
88
  this.availability_icon = data['@HOTWATER'];
87
- this.log.ifVerbose(strings.availabilityState, this.deviceName, this.availability_icon);
89
+ this.log.ifVerbose(strings.debug.availabilityState, this.deviceName, this.availability_icon);
88
90
  }
89
91
  if (data['@RUNNING'] !== undefined) {
90
92
  this.running = data['@RUNNING'].replace(/\s/g, '').length > 0;
91
- this.log.ifVerbose(strings.runningState, this.deviceName, this.running);
93
+ this.log.ifVerbose(strings.debug.runningState, this.deviceName, this.running);
92
94
  }
93
95
  this.didUpdate();
94
96
  }
@@ -1 +1 @@
1
- {"version":3,"file":"waterHeater.js","sourceRoot":"","sources":["../../src/model/waterHeater.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"waterHeater.js","sourceRoot":"","sources":["../../src/model/waterHeater.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,aAAa,EAAE,MAAM,gBAAgB,CAAC;AAC/C,OAAO,EAAE,SAAS,EAAE,MAAM,gBAAgB,CAAC;AAC3C,OAAO,EAAE,iBAAiB,EAAE,MAAM,wBAAwB,CAAC;AAC3D,OAAO,EAAiB,QAAQ,EAA6B,MAAM,YAAY,CAAC;AAEhF,OAAO,EAAE,OAAO,EAAE,MAAM,iBAAiB,CAAC;AAE1C,OAAO,EAAE,WAAW,EAAE,MAAM,yBAAyB,CAAC;AAEtD,MAAM,mBAAmB,GAAG,EAAE,CAAC;AAC/B,MAAM,mBAAmB,GAAG,EAAE,CAAC;AAC/B,MAAM,gBAAgB,GAAG,EAAE,CAAC;AAE5B,MAAM,OAAO,WAAY,SAAQ,SAAS;IAoB4B;IAlB5D,OAAO,GAAY,IAAI,CAAC;IAExB,WAAW,GAAG,CAAC,CAAC;IAChB,WAAW,GAAG,CAAC,CAAC;IAChB,SAAS,GAAG,CAAC,CAAC;IAEd,iBAAiB,GAAkB,IAAI,CAAC;IAExC,iBAAiB,GAA6B,IAAI,CAAC;IAE3D,MAAM,CAAC,KAAK,CAAC,MAAM,CAAC,GAAc,EAAE,IAAqB,EAAE,WAAmB;QAC5E,MAAM,WAAW,GAAG,IAAI,WAAW,CAAC,GAAG,EAAE,IAAI,EAAE,WAAW,CAAC,CAAC;QAC5D,WAAW,CAAC,iBAAiB,GAAG,MAAM,iBAAiB,CAAC,MAAM,CAAC,WAAW,EAAE,GAAG,EAAE;YAC/E,WAAW,CAAC,SAAS,EAAE,CAAC;QAC1B,CAAC,CAAC,CAAC;QACH,OAAO,WAAW,CAAC;IACrB,CAAC;IAED,YAAoB,GAAc,EAAE,IAAqB,EAAW,WAAmB;QACrF,KAAK,CAAC,GAAG,EAAE,IAAgC,CAAC,CAAC;QADqB,gBAAW,GAAX,WAAW,CAAQ;QAGrF,IAAI,CAAC,OAAO,GAAG,IAAI,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,UAAU,CAAC,EAAE,OAAO,CAAC,KAAK,EAAE,EAAE,CAAC,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC;QAC1F,IAAI,CAAC,OAAO,GAAG,IAAI,CAAC,UAAU,CAAC,EAAE,KAAK,KAAK,CAAC,CAAC;QAE7C,IAAI,CAAC,WAAW,GAAG,IAAI,CAAC,WAAW,CAAC,EAAE,WAAW,CAAC,UAAU,IAAI,WAAW,CAAC,mBAAmB,EAAE,IAAI,CAAC,KAAK,CAAC,CAAC;QAC7G,IAAI,CAAC,WAAW,GAAG,IAAI,CAAC,WAAW,CAAC,EAAE,WAAW,CAAC,UAAU,IAAI,WAAW,CAAC,mBAAmB,EAAE,IAAI,CAAC,KAAK,CAAC,CAAC;QAC7G,IAAI,CAAC,SAAS,GAAG,IAAI,CAAC,WAAW,CAAC,EAAE,KAAK,IAAI,WAAW,CAAC,gBAAgB,EAAE,IAAI,CAAC,KAAK,CAAC,CAAC;QAEvF,IAAI,CAAC,iBAAiB,GAAG,IAAI,CAAC,WAAW,CAAC,IAAI,EAAE,CAAC;QAEjD,IAAI,CAAC,SAAS,EAAE,CAAC;IACnB,CAAC;IAED,IAAI,IAAI;QACN,OAAO,aAAa,CAAC,YAAY,CAAC;IACpC,CAAC;IAED,IAAI,SAAS;QACX,OAAO,IAAI,CAAC,OAAO,CAAC;IACtB,CAAC;IAED,IAAI,MAAM;QACR,OAAO,CAAC,IAAI,CAAC,WAAW,EAAE,IAAI,CAAC,WAAW,CAAC,CAAC;IAC9C,CAAC;IAED,IAAI,YAAY;QAEd,MAAM,IAAI,GAAG,IAAI,CAAC,iBAAiB,CAAC;QAEpC,IAAI,IAAI,IAAI,IAAI,EAAE,CAAC;YACjB,OAAO,GAAG,CAAC;QACb,CAAC;QAED,IAAI,IAAI,CAAC,QAAQ,CAAC,OAAO,CAAC,IAAI,IAAI,CAAC,QAAQ,CAAC,MAAM,CAAC,EAAE,CAAC;YACpD,OAAO,CAAC,CAAC;QACX,CAAC;QAED,IAAI,IAAI,CAAC,QAAQ,CAAC,KAAK,CAAC,EAAE,CAAC;YACzB,OAAO,EAAE,CAAC;QACZ,CAAC;QAED,IAAI,IAAI,CAAC,QAAQ,CAAC,QAAQ,CAAC,EAAE,CAAC;YAC5B,OAAO,EAAE,CAAC;QACZ,CAAC;QAED,IAAI,IAAI,CAAC,QAAQ,CAAC,SAAS,CAAC,IAAI,IAAI,CAAC,QAAQ,CAAC,UAAU,CAAC,EAAE,CAAC;YAC1D,OAAO,GAAG,CAAC;QACb,CAAC;QAED,OAAO,GAAG,CAAC;IACb,CAAC;IAED,WAAW,CAAC,SAAyB;QAEnC,IAAI,CAAC,SAAS,EAAE,CAAC;YACf,OAAO,IAAI,CAAC,SAAS,CAAC;QACxB,CAAC;QAED,OAAO,IAAI,CAAC,iBAAiB,EAAE,WAAW,CAAC,SAAS,CAAC,IAAI,IAAI,CAAC,SAAS,CAAC;IAC1E,CAAC;IAED,IAAI,QAAQ;QACV,OAAO,IAAI,CAAC,SAAS,CAAC;IACxB,CAAC;IAES,SAAS;QACjB,IAAI,CAAC,iBAAiB,EAAE,YAAY,CAAC,IAAI,CAAC,CAAC;QAC3C,KAAK,CAAC,SAAS,EAAE,CAAC;IACpB,CAAC;IAED,cAAc,CAAC,IAAc;QAC3B,KAAK,CAAC,cAAc,CAAC,IAAI,CAAC,CAAC;QAE3B,IAAI,IAAI,CAAC,UAAU,CAAC,KAAK,SAAS,EAAE,CAAC;YACnC,IAAI,CAAC,OAAO,GAAG,QAAQ,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC,KAAK,CAAC,CAAC;YAChD,IAAI,CAAC,GAAG,CAAC,SAAS,CAAC,OAAO,CAAC,KAAK,CAAC,YAAY,EAAE,IAAI,CAAC,UAAU,EAAE,IAAI,CAAC,OAAO,CAAC,CAAC;QAChF,CAAC;QAED,IAAI,IAAI,CAAC,WAAW,CAAC,KAAK,SAAS,EAAE,CAAC;YACpC,IAAI,CAAC,SAAS,GAAG,IAAI,CAAC,WAAW,CAAC,CAAC;YACnC,IAAI,CAAC,GAAG,CAAC,SAAS,CAAC,OAAO,CAAC,KAAK,CAAC,aAAa,EAAE,IAAI,CAAC,UAAU,EAAE,IAAI,CAAC,SAAS,CAAC,CAAC;QACnF,CAAC;QAED,IAAI,IAAI,CAAC,WAAW,CAAC,KAAK,SAAS,EAAE,CAAC;YACpC,IAAI,CAAC,iBAAiB,GAAG,IAAI,CAAC,WAAW,CAAC,CAAC;YAC3C,IAAI,CAAC,GAAG,CAAC,SAAS,CAAC,OAAO,CAAC,KAAK,CAAC,iBAAiB,EAAE,IAAI,CAAC,UAAU,EAAE,IAAI,CAAC,iBAAiB,CAAC,CAAC;QAC/F,CAAC;QAED,IAAI,IAAI,CAAC,UAAU,CAAC,KAAK,SAAS,EAAE,CAAC;YACnC,IAAI,CAAC,OAAO,GAAG,IAAI,CAAC,UAAU,CAAC,CAAC,OAAO,CAAC,KAAK,EAAE,EAAE,CAAC,CAAC,MAAM,GAAG,CAAC,CAAC;YAC9D,IAAI,CAAC,GAAG,CAAC,SAAS,CAAC,OAAO,CAAC,KAAK,CAAC,YAAY,EAAE,IAAI,CAAC,UAAU,EAAE,IAAI,CAAC,OAAO,CAAC,CAAC;QAChF,CAAC;QAED,IAAI,CAAC,SAAS,EAAE,CAAC;IACnB,CAAC;IAED,UAAU,CAAC,OAAgB;QACzB,IAAI,CAAC,OAAO,CAAC,EAAE,UAAU,EAAE,OAAO,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,EAAE,IAAI,CAAC,QAAQ,EAAE,IAAI,CAAC,YAAY,CAAC,CAAC;IAClF,CAAC;IAED,WAAW,CAAC,QAAgB;QAC1B,IAAI,CAAC,OAAO,CAAC,EAAE,WAAW,EAAE,QAAQ,EAAE,EAAE,IAAI,CAAC,QAAQ,EAAE,IAAI,CAAC,YAAY,CAAC,CAAC;IAC5E,CAAC;CACF"}
package/dist/tools/log.js CHANGED
@@ -20,23 +20,24 @@ export class Log {
20
20
  error(message, ...parameters) {
21
21
  this.logger.error(message, ...parameters);
22
22
  }
23
- ifVerbose(levelOrMessage, messageOrParam, ...parameters) {
23
+ ifVerbose(levelOrMessage, ...rest) {
24
24
  if (!this.verbose) {
25
25
  return;
26
26
  }
27
27
  if (typeof levelOrMessage === 'string') {
28
- this.always(levelOrMessage, messageOrParam, ...parameters);
28
+ this.always(levelOrMessage, ...rest);
29
29
  return;
30
30
  }
31
+ const [message, ...parameters] = rest;
31
32
  switch (levelOrMessage) {
32
33
  case LogType.ALWAYS:
33
- this.always(messageOrParam, ...parameters);
34
+ this.always(message, ...parameters);
34
35
  break;
35
36
  case LogType.WARNING:
36
- this.warning(messageOrParam, ...parameters);
37
+ this.warning(message, ...parameters);
37
38
  break;
38
39
  case LogType.ERROR:
39
- this.error(messageOrParam, ...parameters);
40
+ this.error(message, ...parameters);
40
41
  break;
41
42
  }
42
43
  }
@@ -1 +1 @@
1
- {"version":3,"file":"log.js","sourceRoot":"","sources":["../../src/tools/log.ts"],"names":[],"mappings":"AAGA,MAAM,CAAN,IAAY,OAIX;AAJD,WAAY,OAAO;IACjB,yCAAM,CAAA;IACN,2CAAO,CAAA;IACP,uCAAK,CAAA;AACP,CAAC,EAJW,OAAO,KAAP,OAAO,QAIlB;AAED,MAAM,OAAO,GAAG;IAGK;IACD;IAFlB,YACmB,MAAc,EACf,OAAgB;QADf,WAAM,GAAN,MAAM,CAAQ;QACf,YAAO,GAAP,OAAO,CAAS;IAC/B,CAAC;IAEG,MAAM,CAAC,OAAe,EAAE,GAAG,UAAiB;QACjD,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,OAAO,EAAE,GAAG,UAAU,CAAC,CAAC;IAC3C,CAAC;IAEM,OAAO,CAAC,OAAe,EAAE,GAAG,UAAiB;QAClD,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,OAAO,EAAE,GAAG,UAAU,CAAC,CAAC;IAC3C,CAAC;IAEM,KAAK,CAAC,OAAe,EAAE,GAAG,UAAiB;QAChD,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,OAAO,EAAE,GAAG,UAAU,CAAC,CAAC;IAC5C,CAAC;IAIM,SAAS,CAAC,cAAgC,EAAE,cAA4B,EAAE,GAAG,UAAiB;QACnG,IAAI,CAAC,IAAI,CAAC,OAAO,EAAE,CAAC;YAElB,OAAO;QACT,CAAC;QAED,IAAI,OAAO,cAAc,KAAK,QAAQ,EAAE,CAAC;YACvC,IAAI,CAAC,MAAM,CAAC,cAAc,EAAE,cAAc,EAAE,GAAG,UAAU,CAAC,CAAC;YAC3D,OAAO;QACT,CAAC;QAED,QAAO,cAAc,EAAE,CAAC;YACxB,KAAK,OAAO,CAAC,MAAM;gBACjB,IAAI,CAAC,MAAM,CAAC,cAAc,EAAE,GAAG,UAAU,CAAC,CAAC;gBAC3C,MAAM;YACR,KAAK,OAAO,CAAC,OAAO;gBAClB,IAAI,CAAC,OAAO,CAAC,cAAc,EAAE,GAAG,UAAU,CAAC,CAAC;gBAC5C,MAAM;YACR,KAAK,OAAO,CAAC,KAAK;gBAChB,IAAI,CAAC,KAAK,CAAC,cAAc,EAAE,GAAG,UAAU,CAAC,CAAC;gBAC1C,MAAM;QACR,CAAC;IACH,CAAC;CACF"}
1
+ {"version":3,"file":"log.js","sourceRoot":"","sources":["../../src/tools/log.ts"],"names":[],"mappings":"AAGA,MAAM,CAAN,IAAY,OAIX;AAJD,WAAY,OAAO;IACjB,yCAAM,CAAA;IACN,2CAAO,CAAA;IACP,uCAAK,CAAA;AACP,CAAC,EAJW,OAAO,KAAP,OAAO,QAIlB;AAED,MAAM,OAAO,GAAG;IAGK;IACD;IAFlB,YACmB,MAAc,EACf,OAAgB;QADf,WAAM,GAAN,MAAM,CAAQ;QACf,YAAO,GAAP,OAAO,CAAS;IAC/B,CAAC;IAEG,MAAM,CAAC,OAAe,EAAE,GAAG,UAAiB;QACjD,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,OAAO,EAAE,GAAG,UAAU,CAAC,CAAC;IAC3C,CAAC;IAEM,OAAO,CAAC,OAAe,EAAE,GAAG,UAAiB;QAClD,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,OAAO,EAAE,GAAG,UAAU,CAAC,CAAC;IAC3C,CAAC;IAEM,KAAK,CAAC,OAAe,EAAE,GAAG,UAAiB;QAChD,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,OAAO,EAAE,GAAG,UAAU,CAAC,CAAC;IAC5C,CAAC;IAIM,SAAS,CAAC,cAAgC,EAAE,GAAG,IAAW;QAC/D,IAAI,CAAC,IAAI,CAAC,OAAO,EAAE,CAAC;YAClB,OAAO;QACT,CAAC;QAED,IAAI,OAAO,cAAc,KAAK,QAAQ,EAAE,CAAC;YACvC,IAAI,CAAC,MAAM,CAAC,cAAc,EAAE,GAAG,IAAI,CAAC,CAAC;YACrC,OAAO;QACT,CAAC;QAED,MAAM,CAAC,OAAO,EAAE,GAAG,UAAU,CAAC,GAAG,IAAI,CAAC;QACtC,QAAO,cAAc,EAAE,CAAC;YACxB,KAAK,OAAO,CAAC,MAAM;gBACjB,IAAI,CAAC,MAAM,CAAC,OAAO,EAAE,GAAG,UAAU,CAAC,CAAC;gBACpC,MAAM;YACR,KAAK,OAAO,CAAC,OAAO;gBAClB,IAAI,CAAC,OAAO,CAAC,OAAO,EAAE,GAAG,UAAU,CAAC,CAAC;gBACrC,MAAM;YACR,KAAK,OAAO,CAAC,KAAK;gBAChB,IAAI,CAAC,KAAK,CAAC,OAAO,EAAE,GAAG,UAAU,CAAC,CAAC;gBACnC,MAAM;QACR,CAAC;IACH,CAAC;CACF"}
@@ -1,6 +1,5 @@
1
- export declare const STORAGE_FILE_NAME = "econetRheem.json";
2
1
  export declare const STORAGE_KEY_AUTH = "auth";
3
2
  export declare const STORAGE_KEY_MQTT = "mqtt";
4
3
  export declare const STORAGE_KEY_RECOVERY_RATES = "rates";
5
- export declare function safeGetItem(filePath: string, key: string): string | null;
6
- export declare function safeSetItem(filePath: string, key: string, value: string): void;
4
+ export declare function storageGet(dir: string, key: string): Promise<string | null>;
5
+ export declare function storageSet(dir: string, key: string, value: string): Promise<void>;
@@ -1,25 +1,27 @@
1
- import fs from 'fs';
2
- export const STORAGE_FILE_NAME = 'econetRheem.json';
1
+ import storage from 'node-persist';
2
+ import { PLUGIN_NAME } from '../homebridge/settings.js';
3
3
  export const STORAGE_KEY_AUTH = 'auth';
4
4
  export const STORAGE_KEY_MQTT = 'mqtt';
5
5
  export const STORAGE_KEY_RECOVERY_RATES = 'rates';
6
- function readStorage(filePath) {
7
- if (!fs.existsSync(filePath)) {
8
- return {};
9
- }
10
- const data = fs.readFileSync(filePath, 'utf-8');
11
- return JSON.parse(data);
12
- }
13
- function writeStorage(filePath, storage) {
14
- fs.writeFileSync(filePath, JSON.stringify(storage, null, 2));
6
+ async function init(dir) {
7
+ await storage.init({ dir: dir, forgiveParseErrors: true });
15
8
  }
16
- export function safeGetItem(filePath, key) {
17
- const storage = readStorage(filePath);
18
- return storage[key] ?? null;
9
+ export async function storageGet(dir, key) {
10
+ try {
11
+ await init(dir);
12
+ return await storage.get(`${PLUGIN_NAME}:${key}`);
13
+ }
14
+ catch (err) {
15
+ return null;
16
+ }
19
17
  }
20
- export function safeSetItem(filePath, key, value) {
21
- const storage = readStorage(filePath);
22
- storage[key] = value;
23
- writeStorage(filePath, storage);
18
+ export async function storageSet(dir, key, value) {
19
+ try {
20
+ await init(dir);
21
+ storage.set(`${PLUGIN_NAME}:${key}`, value);
22
+ }
23
+ catch {
24
+ // Nothing
25
+ }
24
26
  }
25
27
  //# sourceMappingURL=storage.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"storage.js","sourceRoot":"","sources":["../../src/tools/storage.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,IAAI,CAAC;AAEpB,MAAM,CAAC,MAAM,iBAAiB,GAAG,kBAAkB,CAAC;AAEpD,MAAM,CAAC,MAAM,gBAAgB,GAAG,MAAM,CAAC;AACvC,MAAM,CAAC,MAAM,gBAAgB,GAAG,MAAM,CAAC;AACvC,MAAM,CAAC,MAAM,0BAA0B,GAAG,OAAO,CAAC;AAElD,SAAS,WAAW,CAAC,QAAgB;IACnC,IAAI,CAAC,EAAE,CAAC,UAAU,CAAC,QAAQ,CAAC,EAAE,CAAC;QAC7B,OAAO,EAAE,CAAC;IACZ,CAAC;IACD,MAAM,IAAI,GAAG,EAAE,CAAC,YAAY,CAAC,QAAQ,EAAE,OAAO,CAAC,CAAC;IAChD,OAAO,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;AAC1B,CAAC;AACD,SAAS,YAAY,CAAC,QAAgB,EAAE,OAA+B;IACrE,EAAE,CAAC,aAAa,CAAC,QAAQ,EAAE,IAAI,CAAC,SAAS,CAAC,OAAO,EAAE,IAAI,EAAE,CAAC,CAAC,CAAC,CAAC;AAC/D,CAAC;AAED,MAAM,UAAU,WAAW,CAAC,QAAgB,EAAE,GAAW;IACvD,MAAM,OAAO,GAAG,WAAW,CAAC,QAAQ,CAAC,CAAC;IACtC,OAAO,OAAO,CAAC,GAAG,CAAC,IAAI,IAAI,CAAC;AAC9B,CAAC;AAED,MAAM,UAAU,WAAW,CAAC,QAAgB,EAAE,GAAW,EAAE,KAAa;IACtE,MAAM,OAAO,GAAG,WAAW,CAAC,QAAQ,CAAC,CAAC;IACtC,OAAO,CAAC,GAAG,CAAC,GAAG,KAAK,CAAC;IACrB,YAAY,CAAC,QAAQ,EAAE,OAAO,CAAC,CAAC;AAClC,CAAC"}
1
+ {"version":3,"file":"storage.js","sourceRoot":"","sources":["../../src/tools/storage.ts"],"names":[],"mappings":"AAAA,OAAO,OAAO,MAAM,cAAc,CAAC;AAEnC,OAAO,EAAE,WAAW,EAAE,MAAM,2BAA2B,CAAC;AAExD,MAAM,CAAC,MAAM,gBAAgB,GAAG,MAAM,CAAC;AACvC,MAAM,CAAC,MAAM,gBAAgB,GAAG,MAAM,CAAC;AACvC,MAAM,CAAC,MAAM,0BAA0B,GAAG,OAAO,CAAC;AAElD,KAAK,UAAU,IAAI,CAAC,GAAW;IAC7B,MAAM,OAAO,CAAC,IAAI,CAAC,EAAE,GAAG,EAAE,GAAG,EAAE,kBAAkB,EAAE,IAAI,EAAE,CAAC,CAAC;AAC7D,CAAC;AAED,MAAM,CAAC,KAAK,UAAU,UAAU,CAAC,GAAW,EAAE,GAAW;IACvD,IAAI,CAAC;QACH,MAAM,IAAI,CAAC,GAAG,CAAC,CAAC;QAChB,OAAO,MAAM,OAAO,CAAC,GAAG,CAAC,GAAG,WAAW,IAAI,GAAG,EAAE,CAAC,CAAC;IACpD,CAAC;IAAC,OAAO,GAAG,EAAE,CAAC;QACb,OAAO,IAAI,CAAC;IACd,CAAC;AACH,CAAC;AAED,MAAM,CAAC,KAAK,UAAU,UAAU,CAAC,GAAW,EAAE,GAAW,EAAE,KAAa;IACtE,IAAI,CAAC;QACH,MAAM,IAAI,CAAC,GAAG,CAAC,CAAC;QAChB,OAAO,CAAC,GAAG,CAAC,GAAG,WAAW,IAAI,GAAG,EAAE,EAAE,KAAK,CAAC,CAAC;IAC9C,CAAC;IAAC,MAAM,CAAC;QACP,UAAU;IACZ,CAAC;AACH,CAAC"}
@@ -0,0 +1,35 @@
1
+ import eslint from '@eslint/js';
2
+ import tseslint from 'typescript-eslint';
3
+
4
+ export default tseslint.config(
5
+ {
6
+ ignores: ['dist/**'],
7
+ },
8
+ {
9
+ rules: {
10
+ 'quotes': ['error', 'single'],
11
+ 'indent': ['error', 2, { 'SwitchCase': 0 }],
12
+ 'linebreak-style': ['error', 'unix'],
13
+ 'semi': ['error', 'always'],
14
+ 'comma-dangle': ['error', 'always-multiline'],
15
+ 'dot-notation': 'error',
16
+ 'eqeqeq': ['error', 'smart'],
17
+ 'curly': ['error', 'all'],
18
+ 'brace-style': ['error'],
19
+ 'prefer-arrow-callback': 'warn',
20
+ 'max-len': ['warn', 160],
21
+ 'object-curly-spacing': ['error', 'always'],
22
+ 'no-use-before-define': 'off',
23
+ '@typescript-eslint/no-use-before-define': ['error', { 'classes': false, 'enums': false }],
24
+ '@typescript-eslint/no-unused-vars': ['error', { 'caughtErrors': 'none' }],
25
+ },
26
+ },
27
+ {
28
+ languageOptions: {
29
+ ecmaVersion: 2022,
30
+ sourceType: 'module',
31
+ },
32
+ },
33
+ eslint.configs.recommended,
34
+ ...tseslint.configs.recommended,
35
+ );