homebridge-flume 3.1.19 → 3.1.20

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/CHANGELOG.md CHANGED
@@ -2,6 +2,14 @@
2
2
 
3
3
  All notable changes to homebridge-flume will be documented in this file.
4
4
 
5
+ ## 3.1.20 (2026-05-12)
6
+
7
+ ### Fixed
8
+ - Potential translation system crash
9
+
10
+ ### Notes
11
+ Would you like to see Homebridge Flume in your language? Please consider [getting involved](https://github.com/mpatfield/homebridge-flume/issues/107). No coding experience required!
12
+
5
13
  ## 3.1.19 (2026-05-06)
6
14
 
7
15
  ### Changed
@@ -9,9 +17,6 @@ All notable changes to homebridge-flume will be documented in this file.
9
17
  - Reduced noisy startup logging
10
18
  - Updated dependencies
11
19
 
12
- ### Notes
13
- Would you like to see Homebridge Flume in your language? Please consider [getting involved](https://github.com/mpatfield/homebridge-flume/issues/107). No coding experience required!
14
-
15
20
  ## 3.1.18 (2026-04-21)
16
21
 
17
22
  ### Changed
@@ -4,76 +4,9 @@ export declare enum Language {
4
4
  EN = "en",
5
5
  ES = "es"
6
6
  }
7
- export declare function getLanguage(): Language;
8
- export declare function setLanguage(configPath: string): void;
9
7
  type Translation = typeof en;
10
8
  export declare function getTranslation(language: Language): Record<string, string | object>;
11
9
  export declare function getStrings(language: Language): Translation;
12
- declare const translations: {
13
- config: {
14
- continue: string;
15
- needed: string;
16
- support: string;
17
- thankYou: string;
18
- description: {
19
- clientSecret: string;
20
- disableDeviceLogging: string;
21
- excludeDevices: string;
22
- refreshInterval: string;
23
- units: string;
24
- useNotifications: string;
25
- verbose: string;
26
- };
27
- enumNames: {
28
- gallons: string;
29
- liters: string;
30
- cubicFeet: string;
31
- cubicMeters: string;
32
- };
33
- title: {
34
- clientId: string;
35
- clientSecret: string;
36
- deviceId: string;
37
- disableDeviceLogging: string;
38
- excludeDevices: string;
39
- password: string;
40
- refreshInterval: string;
41
- units: string;
42
- useNotifications: string;
43
- username: string;
44
- verbose: string;
45
- };
46
- };
47
- customChar: {
48
- lastMonth: string;
49
- monthUsage: string;
50
- todayUsage: string;
51
- };
52
- errors: {
53
- badConfig: string;
54
- httpRetry: string;
55
- noDataReceived: string;
56
- noDevices: string;
57
- noRefreshToken: string;
58
- };
59
- general: {
60
- brand: string;
61
- redacted: string;
62
- };
63
- startup: {
64
- complete: string;
65
- newDevice: string;
66
- removeDevice: string;
67
- restoringDevice: string;
68
- welcome: string[];
69
- };
70
- status: {
71
- batteryLow: string;
72
- batteryNormal: string;
73
- connectionFault: string;
74
- connectionNormal: string;
75
- leakDetected: string;
76
- leakNotDetected: string;
77
- };
78
- };
79
- export { translations as strings };
10
+ export declare let strings: Translation;
11
+ export declare function setLanguage(configPath: string): void;
12
+ export {};
package/dist/i18n/i18n.js CHANGED
@@ -14,10 +14,13 @@ const Translations = {
14
14
  [Language.EN]: en,
15
15
  [Language.ES]: es,
16
16
  };
17
- let currentLanguage = Language.EN;
18
- export function getLanguage() {
19
- return currentLanguage;
17
+ export function getTranslation(language) {
18
+ return Translations[language] ?? {};
19
+ }
20
+ export function getStrings(language) {
21
+ return merge({}, en, getTranslation(language));
20
22
  }
23
+ export let strings = en;
21
24
  export function setLanguage(configPath) {
22
25
  let isoLang;
23
26
  try {
@@ -30,18 +33,9 @@ export function setLanguage(configPath) {
30
33
  if (isoLang === undefined || isoLang.trim().length === 0 || isoLang === 'auto') {
31
34
  isoLang = Intl.DateTimeFormat().resolvedOptions().locale.split('-')[0];
32
35
  }
33
- currentLanguage = isoLang in Translations ? isoLang : Language.EN;
34
- }
35
- export function getTranslation(language) {
36
- return Translations[language] ?? {};
37
- }
38
- export function getStrings(language) {
39
- return merge({}, en, getTranslation(language));
36
+ const currentLanguage = isoLang in Translations ? isoLang : Language.EN;
37
+ if (currentLanguage !== Language.EN) {
38
+ strings = getStrings(currentLanguage);
39
+ }
40
40
  }
41
- const translations = new Proxy({}, {
42
- get(_target, prop) {
43
- return getTranslation(currentLanguage)[prop] ?? en[prop];
44
- },
45
- });
46
- export { translations as strings };
47
41
  //# sourceMappingURL=i18n.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"i18n.js","sourceRoot":"","sources":["../../src/i18n/i18n.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,YAAY,EAAE,MAAM,IAAI,CAAC;AAClC,OAAO,KAAK,MAAM,cAAc,CAAC;AAEjC,OAAO,EAAE,MAAM,SAAS,CAAC;AACzB,OAAO,EAAE,MAAM,SAAS,CAAC;AACzB,OAAO,EAAE,MAAM,SAAS,CAAC;AAEzB,MAAM,CAAN,IAAY,QAIX;AAJD,WAAY,QAAQ;IAClB,qBAAS,CAAA;IACT,qBAAS,CAAA;IACT,qBAAS,CAAA;AACX,CAAC,EAJW,QAAQ,KAAR,QAAQ,QAInB;AAED,MAAM,YAAY,GAAG;IACnB,CAAC,QAAQ,CAAC,EAAE,CAAC,EAAE,EAAE;IACjB,CAAC,QAAQ,CAAC,EAAE,CAAC,EAAE,EAAE;IACjB,CAAC,QAAQ,CAAC,EAAE,CAAC,EAAE,EAAE;CAClB,CAAC;AAEF,IAAI,eAAe,GAAG,QAAQ,CAAC,EAAE,CAAC;AAElC,MAAM,UAAU,WAAW;IACzB,OAAO,eAAe,CAAC;AACzB,CAAC;AAED,MAAM,UAAU,WAAW,CAAC,UAAkB;IAE5C,IAAI,OAA2B,CAAC;IAChC,IAAI,CAAC;QACH,MAAM,YAAY,GAAG,YAAY,CAAC,UAAU,EAAE,EAAE,QAAQ,EAAE,MAAM,EAAE,CAAC,CAAC;QACpE,OAAO,GAAG,IAAI,CAAC,KAAK,CAAC,YAAY,CAAC,CAAC,SAAS,CAAC,MAAM,CAAE,CAAC,CAA0B,EAAE,EAAE,CAAC,CAAC,CAAC,QAAQ,KAAK,QAAQ,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC;IACxH,CAAC;IAAC,MAAM,CAAC;QACP,UAAU;IACZ,CAAC;IAED,IAAI,OAAO,KAAK,SAAS,IAAI,OAAO,CAAC,IAAI,EAAE,CAAC,MAAM,KAAK,CAAC,IAAI,OAAO,KAAK,MAAM,EAAE,CAAC;QAC/E,OAAO,GAAG,IAAI,CAAC,cAAc,EAAE,CAAC,eAAe,EAAE,CAAC,MAAM,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC;IACzE,CAAC;IAED,eAAe,GAAG,OAAO,IAAI,YAAY,CAAC,CAAC,CAAC,OAAmB,CAAC,CAAC,CAAC,QAAQ,CAAC,EAAE,CAAC;AAChF,CAAC;AAID,MAAM,UAAU,cAAc,CAAC,QAAkB;IAC/C,OAAO,YAAY,CAAC,QAAQ,CAAC,IAAI,EAAE,CAAC;AACtC,CAAC;AAED,MAAM,UAAU,UAAU,CAAC,QAAkB;IAC3C,OAAO,KAAK,CAAC,EAAE,EAAE,EAAE,EAAE,cAAc,CAAC,QAAQ,CAAC,CAAC,CAAC;AACjD,CAAC;AAED,MAAM,YAAY,GAAG,IAAI,KAAK,CAAC,EAAiB,EAAE;IAChD,GAAG,CAAC,OAAO,EAAE,IAAuB;QAClC,OAAO,cAAc,CAAC,eAAe,CAAC,CAAC,IAAI,CAAC,IAAI,EAAE,CAAC,IAAI,CAAC,CAAC;IAC3D,CAAC;CACF,CAAC,CAAC;AAEH,OAAO,EAAE,YAAY,IAAI,OAAO,EAAE,CAAC"}
1
+ {"version":3,"file":"i18n.js","sourceRoot":"","sources":["../../src/i18n/i18n.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,YAAY,EAAE,MAAM,IAAI,CAAC;AAClC,OAAO,KAAK,MAAM,cAAc,CAAC;AAEjC,OAAO,EAAE,MAAM,SAAS,CAAC;AACzB,OAAO,EAAE,MAAM,SAAS,CAAC;AACzB,OAAO,EAAE,MAAM,SAAS,CAAC;AAEzB,MAAM,CAAN,IAAY,QAIX;AAJD,WAAY,QAAQ;IAClB,qBAAS,CAAA;IACT,qBAAS,CAAA;IACT,qBAAS,CAAA;AACX,CAAC,EAJW,QAAQ,KAAR,QAAQ,QAInB;AAED,MAAM,YAAY,GAAG;IACnB,CAAC,QAAQ,CAAC,EAAE,CAAC,EAAE,EAAE;IACjB,CAAC,QAAQ,CAAC,EAAE,CAAC,EAAE,EAAE;IACjB,CAAC,QAAQ,CAAC,EAAE,CAAC,EAAE,EAAE;CAClB,CAAC;AAIF,MAAM,UAAU,cAAc,CAAC,QAAkB;IAC/C,OAAO,YAAY,CAAC,QAAQ,CAAC,IAAI,EAAE,CAAC;AACtC,CAAC;AAED,MAAM,UAAU,UAAU,CAAC,QAAkB;IAC3C,OAAO,KAAK,CAAC,EAAE,EAAE,EAAE,EAAE,cAAc,CAAC,QAAQ,CAAC,CAAC,CAAC;AACjD,CAAC;AAED,MAAM,CAAC,IAAI,OAAO,GAAgB,EAAE,CAAC;AAErC,MAAM,UAAU,WAAW,CAAC,UAAkB;IAE5C,IAAI,OAA2B,CAAC;IAChC,IAAI,CAAC;QACH,MAAM,YAAY,GAAG,YAAY,CAAC,UAAU,EAAE,EAAE,QAAQ,EAAE,MAAM,EAAE,CAAC,CAAC;QACpE,OAAO,GAAG,IAAI,CAAC,KAAK,CAAC,YAAY,CAAC,CAAC,SAAS,CAAC,MAAM,CAAE,CAAC,CAA0B,EAAE,EAAE,CAAC,CAAC,CAAC,QAAQ,KAAK,QAAQ,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC;IACxH,CAAC;IAAC,MAAM,CAAC;QACP,UAAU;IACZ,CAAC;IAED,IAAI,OAAO,KAAK,SAAS,IAAI,OAAO,CAAC,IAAI,EAAE,CAAC,MAAM,KAAK,CAAC,IAAI,OAAO,KAAK,MAAM,EAAE,CAAC;QAC/E,OAAO,GAAG,IAAI,CAAC,cAAc,EAAE,CAAC,eAAe,EAAE,CAAC,MAAM,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC;IACzE,CAAC;IAED,MAAM,eAAe,GAAG,OAAO,IAAI,YAAY,CAAC,CAAC,CAAC,OAAmB,CAAC,CAAC,CAAC,QAAQ,CAAC,EAAE,CAAC;IAEpF,IAAI,eAAe,KAAK,QAAQ,CAAC,EAAE,EAAE,CAAC;QACpC,OAAO,GAAG,UAAU,CAAC,eAAe,CAAC,CAAC;IACxC,CAAC;AACH,CAAC"}
package/package.json CHANGED
@@ -2,7 +2,7 @@
2
2
  "name": "homebridge-flume",
3
3
  "alias": "Flume",
4
4
  "displayName": "Flume",
5
- "version": "3.1.19",
5
+ "version": "3.1.20",
6
6
  "author": {
7
7
  "name": "mpatfield"
8
8
  },