node-switchbot 2.0.2-beta.7 → 2.0.2-beta.9

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 (60) hide show
  1. package/dist/advertising.d.ts +2 -2
  2. package/dist/advertising.d.ts.map +1 -1
  3. package/dist/advertising.js +61 -65
  4. package/dist/advertising.js.map +1 -1
  5. package/dist/device/woblindtilt.d.ts +9 -9
  6. package/dist/device/woblindtilt.d.ts.map +1 -1
  7. package/dist/device/woblindtilt.js +24 -24
  8. package/dist/device/woblindtilt.js.map +1 -1
  9. package/dist/device/wobulb.d.ts +16 -16
  10. package/dist/device/wobulb.d.ts.map +1 -1
  11. package/dist/device/wobulb.js +47 -47
  12. package/dist/device/wobulb.js.map +1 -1
  13. package/dist/device/wocontact.d.ts +12 -13
  14. package/dist/device/wocontact.d.ts.map +1 -1
  15. package/dist/device/wocontact.js +36 -37
  16. package/dist/device/wocontact.js.map +1 -1
  17. package/dist/device/wocurtain.d.ts +10 -10
  18. package/dist/device/wocurtain.d.ts.map +1 -1
  19. package/dist/device/wocurtain.js +29 -29
  20. package/dist/device/wocurtain.js.map +1 -1
  21. package/dist/device/wohand.d.ts +7 -7
  22. package/dist/device/wohand.d.ts.map +1 -1
  23. package/dist/device/wohand.js +20 -20
  24. package/dist/device/wohand.js.map +1 -1
  25. package/dist/device/wohumi.d.ts +7 -7
  26. package/dist/device/wohumi.d.ts.map +1 -1
  27. package/dist/device/wohumi.js +20 -20
  28. package/dist/device/wohumi.js.map +1 -1
  29. package/dist/device/woiosensorth.d.ts +11 -11
  30. package/dist/device/woiosensorth.d.ts.map +1 -1
  31. package/dist/device/woiosensorth.js +32 -32
  32. package/dist/device/woiosensorth.js.map +1 -1
  33. package/dist/device/woplugmini.d.ts +22 -22
  34. package/dist/device/woplugmini.d.ts.map +1 -1
  35. package/dist/device/woplugmini.js +66 -66
  36. package/dist/device/woplugmini.js.map +1 -1
  37. package/dist/device/wopresence.d.ts +12 -12
  38. package/dist/device/wopresence.d.ts.map +1 -1
  39. package/dist/device/wopresence.js +31 -31
  40. package/dist/device/wopresence.js.map +1 -1
  41. package/dist/device/wosensorth.d.ts +22 -22
  42. package/dist/device/wosensorth.d.ts.map +1 -1
  43. package/dist/device/wosensorth.js +51 -51
  44. package/dist/device/wosensorth.js.map +1 -1
  45. package/dist/device/wosmartlock.d.ts +13 -13
  46. package/dist/device/wosmartlock.d.ts.map +1 -1
  47. package/dist/device/wosmartlock.js +42 -42
  48. package/dist/device/wosmartlock.js.map +1 -1
  49. package/dist/device/wostrip.d.ts +15 -15
  50. package/dist/device/wostrip.d.ts.map +1 -1
  51. package/dist/device/wostrip.js +43 -43
  52. package/dist/device/wostrip.js.map +1 -1
  53. package/dist/device.d.ts.map +1 -1
  54. package/dist/device.js +5 -7
  55. package/dist/device.js.map +1 -1
  56. package/dist/switchbot.d.ts +1 -1
  57. package/dist/switchbot.d.ts.map +1 -1
  58. package/dist/switchbot.js +5 -6
  59. package/dist/switchbot.js.map +1 -1
  60. package/package.json +1 -1
@@ -1,15 +1,15 @@
1
1
  import { SwitchbotDevice } from '../switchbot.js';
2
- export declare function parseServiceDataForWoCurtain(buf: any, onlog: any): Promise<{
3
- model: any;
4
- modelName: string;
5
- calibration: boolean;
6
- battery: number;
7
- inMotion: boolean;
8
- position: number;
9
- lightLevel: number;
10
- deviceChain: number;
11
- } | null>;
12
2
  export declare class WoCurtain extends SwitchbotDevice {
3
+ static parseServiceData(buf: any, onlog: any): {
4
+ model: any;
5
+ modelName: string;
6
+ calibration: boolean;
7
+ battery: number;
8
+ inMotion: boolean;
9
+ position: number;
10
+ lightLevel: number;
11
+ deviceChain: number;
12
+ } | null;
13
13
  open(mode: any): Promise<unknown>;
14
14
  close(mode: any): Promise<unknown>;
15
15
  pause(): Promise<void>;
@@ -1 +1 @@
1
- {"version":3,"file":"wocurtain.d.ts","sourceRoot":"","sources":["../../src/device/wocurtain.ts"],"names":[],"mappings":"AAMA,OAAO,EAAE,eAAe,EAAE,MAAM,iBAAiB,CAAC;AAElD,wBAAsB,4BAA4B,CAAC,GAAG,KAAA,EAAE,KAAK,KAAA;;;;;;;;;UAkC5D;AAED,qBAAa,SAAU,SAAQ,eAAe;IAY5C,IAAI,CAAC,IAAI,KAAA;IAeT,KAAK,CAAC,IAAI,KAAA;IAeV,KAAK;IAgBL,QAAQ,CAAC,OAAO,KAAA,EAAE,IAAI,SAAO;IA6B7B,eAAe,CAAC,KAAK,KAAA;CAqBtB"}
1
+ {"version":3,"file":"wocurtain.d.ts","sourceRoot":"","sources":["../../src/device/wocurtain.ts"],"names":[],"mappings":"AAMA,OAAO,EAAE,eAAe,EAAE,MAAM,iBAAiB,CAAC;AAElD,qBAAa,SAAU,SAAQ,eAAe;IAC5C,MAAM,CAAC,gBAAgB,CAAC,GAAG,KAAA,EAAE,KAAK,KAAA;;;;;;;;;;IA+ClC,IAAI,CAAC,IAAI,KAAA;IAeT,KAAK,CAAC,IAAI,KAAA;IAeV,KAAK;IAgBL,QAAQ,CAAC,OAAO,KAAA,EAAE,IAAI,SAAO;IA6B7B,eAAe,CAAC,KAAK,KAAA;CAqBtB"}
@@ -4,37 +4,37 @@
4
4
  */
5
5
  import { Buffer } from 'buffer';
6
6
  import { SwitchbotDevice } from '../switchbot.js';
7
- export async function parseServiceDataForWoCurtain(buf, onlog) {
8
- if (buf.length !== 5 && buf.length !== 6) {
9
- if (onlog && typeof onlog === 'function') {
10
- onlog(`[parseServiceDataForWoCurtain] Buffer length ${buf.length} !== 5 or 6!`);
7
+ export class WoCurtain extends SwitchbotDevice {
8
+ static parseServiceData(buf, onlog) {
9
+ if (buf.length !== 5 && buf.length !== 6) {
10
+ if (onlog && typeof onlog === 'function') {
11
+ onlog(`[parseServiceDataForWoCurtain] Buffer length ${buf.length} !== 5 or 6!`);
12
+ }
13
+ return null;
11
14
  }
12
- return null;
15
+ const byte1 = buf.readUInt8(1);
16
+ const byte2 = buf.readUInt8(2);
17
+ const byte3 = buf.readUInt8(3);
18
+ const byte4 = buf.readUInt8(4);
19
+ const calibration = byte1 & 0b01000000 ? true : false; // Whether the calibration is compconsted
20
+ const battery = byte2 & 0b01111111; // %
21
+ const inMotion = byte3 & 0b10000000 ? true : false;
22
+ const currPosition = byte3 & 0b01111111; // current positon %
23
+ const lightLevel = (byte4 >> 4) & 0b00001111; // light sensor level (1-10)
24
+ const deviceChain = byte4 & 0b00000111;
25
+ const model = buf.slice(0, 1).toString('utf8');
26
+ const data = {
27
+ model: model,
28
+ modelName: 'WoCurtain',
29
+ calibration: calibration,
30
+ battery: battery,
31
+ inMotion: inMotion,
32
+ position: currPosition,
33
+ lightLevel: lightLevel,
34
+ deviceChain: deviceChain,
35
+ };
36
+ return data;
13
37
  }
14
- const byte1 = buf.readUInt8(1);
15
- const byte2 = buf.readUInt8(2);
16
- const byte3 = buf.readUInt8(3);
17
- const byte4 = buf.readUInt8(4);
18
- const calibration = byte1 & 0b01000000 ? true : false; // Whether the calibration is compconsted
19
- const battery = byte2 & 0b01111111; // %
20
- const inMotion = byte3 & 0b10000000 ? true : false;
21
- const currPosition = byte3 & 0b01111111; // current positon %
22
- const lightLevel = (byte4 >> 4) & 0b00001111; // light sensor level (1-10)
23
- const deviceChain = byte4 & 0b00000111;
24
- const model = buf.slice(0, 1).toString('utf8');
25
- const data = {
26
- model: model,
27
- modelName: 'WoCurtain',
28
- calibration: calibration,
29
- battery: battery,
30
- inMotion: inMotion,
31
- position: currPosition,
32
- lightLevel: lightLevel,
33
- deviceChain: deviceChain,
34
- };
35
- return data;
36
- }
37
- export class WoCurtain extends SwitchbotDevice {
38
38
  /* ------------------------------------------------------------------
39
39
  * open()
40
40
  * - Open the curtain
@@ -1 +1 @@
1
- {"version":3,"file":"wocurtain.js","sourceRoot":"","sources":["../../src/device/wocurtain.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"wocurtain.js","sourceRoot":"","sources":["../../src/device/wocurtain.ts"],"names":[],"mappings":"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"}
@@ -1,12 +1,12 @@
1
1
  import { SwitchbotDevice } from '../switchbot.js';
2
- export declare function parseServiceDataForWoHand(buf: any, onlog: any): Promise<{
3
- model: string;
4
- modelName: string;
5
- mode: boolean;
6
- state: boolean;
7
- battery: number;
8
- } | null>;
9
2
  export declare class WoHand extends SwitchbotDevice {
3
+ static parseServiceData(buf: any, onlog: any): {
4
+ model: string;
5
+ modelName: string;
6
+ mode: boolean;
7
+ state: boolean;
8
+ battery: number;
9
+ } | null;
10
10
  press(): Promise<void>;
11
11
  turnOn(): Promise<void>;
12
12
  turnOff(): Promise<void>;
@@ -1 +1 @@
1
- {"version":3,"file":"wohand.d.ts","sourceRoot":"","sources":["../../src/device/wohand.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,eAAe,EAAE,MAAM,iBAAiB,CAAC;AAElD,wBAAsB,yBAAyB,CAAC,GAAG,KAAA,EAAE,KAAK,KAAA;;;;;;UAyBzD;AAED,qBAAa,MAAO,SAAQ,eAAe;IAYzC,KAAK;IAeL,MAAM;IAeN,OAAO;IAeP,IAAI;IAeJ,EAAE;IAIF,WAAW,CAAC,KAAK,KAAA;CAqBlB"}
1
+ {"version":3,"file":"wohand.d.ts","sourceRoot":"","sources":["../../src/device/wohand.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,eAAe,EAAE,MAAM,iBAAiB,CAAC;AAElD,qBAAa,MAAO,SAAQ,eAAe;IACzC,MAAM,CAAC,gBAAgB,CAAC,GAAG,KAAA,EAAE,KAAK,KAAA;;;;;;;IAqClC,KAAK;IAeL,MAAM;IAeN,OAAO;IAeP,IAAI;IAeJ,EAAE;IAIF,WAAW,CAAC,KAAK,KAAA;CAqBlB"}
@@ -1,27 +1,27 @@
1
1
  import { Buffer } from 'buffer';
2
2
  import { SwitchbotDevice } from '../switchbot.js';
3
- export async function parseServiceDataForWoHand(buf, onlog) {
4
- if (buf.length !== 3) {
5
- if (onlog && typeof onlog === 'function') {
6
- onlog(`[parseServiceDataForWoHand] Buffer length ${buf.length} !== 3!`);
3
+ export class WoHand extends SwitchbotDevice {
4
+ static parseServiceData(buf, onlog) {
5
+ if (buf.length !== 3) {
6
+ if (onlog && typeof onlog === 'function') {
7
+ onlog(`[parseServiceData] Buffer length ${buf.length} !== 3!`);
8
+ }
9
+ return null;
7
10
  }
8
- return null;
11
+ const byte1 = buf.readUInt8(1);
12
+ const byte2 = buf.readUInt8(2);
13
+ const mode = byte1 & 0b10000000 ? true : false; // Whether the light switch Add-on is used or not. 0 = press, 1 = switch
14
+ const state = byte1 & 0b01000000 ? false : true; // Whether the switch status is ON or OFF. 0 = on, 1 = off
15
+ const battery = byte2 & 0b01111111; // %
16
+ const data = {
17
+ model: 'H',
18
+ modelName: 'WoHand',
19
+ mode: mode,
20
+ state: state,
21
+ battery: battery,
22
+ };
23
+ return data;
9
24
  }
10
- const byte1 = buf.readUInt8(1);
11
- const byte2 = buf.readUInt8(2);
12
- const mode = byte1 & 0b10000000 ? true : false; // Whether the light switch Add-on is used or not. 0 = press, 1 = switch
13
- const state = byte1 & 0b01000000 ? false : true; // Whether the switch status is ON or OFF. 0 = on, 1 = off
14
- const battery = byte2 & 0b01111111; // %
15
- const data = {
16
- model: 'H',
17
- modelName: 'WoHand',
18
- mode: mode,
19
- state: state,
20
- battery: battery,
21
- };
22
- return data;
23
- }
24
- export class WoHand extends SwitchbotDevice {
25
25
  /* ------------------------------------------------------------------
26
26
  * press()
27
27
  * - Press
@@ -1 +1 @@
1
- {"version":3,"file":"wohand.js","sourceRoot":"","sources":["../../src/device/wohand.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"wohand.js","sourceRoot":"","sources":["../../src/device/wohand.ts"],"names":[],"mappings":"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"}
@@ -1,12 +1,12 @@
1
1
  import { SwitchbotDevice } from '../switchbot.js';
2
- export declare function parseServiceDataForWoHumi(buf: any, onlog: any): Promise<{
3
- model: string;
4
- modelName: string;
5
- onState: boolean;
6
- autoMode: boolean;
7
- percentage: number;
8
- } | null>;
9
2
  export declare class WoHumi extends SwitchbotDevice {
3
+ static parseServiceData(buf: any, onlog: any): {
4
+ model: string;
5
+ modelName: string;
6
+ onState: boolean;
7
+ autoMode: boolean;
8
+ percentage: number;
9
+ } | null;
10
10
  press(): Promise<void>;
11
11
  turnOn(): Promise<void>;
12
12
  turnOff(): Promise<void>;
@@ -1 +1 @@
1
- {"version":3,"file":"wohumi.d.ts","sourceRoot":"","sources":["../../src/device/wohumi.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,eAAe,EAAE,MAAM,iBAAiB,CAAC;AAElD,wBAAsB,yBAAyB,CAAC,GAAG,KAAA,EAAE,KAAK,KAAA;;;;;;UA0BzD;AAED,qBAAa,MAAO,SAAQ,eAAe;IAYzC,KAAK;IAeL,MAAM;IAeN,OAAO;IAeP,IAAI;IAeJ,EAAE;IAIF,WAAW,CAAC,KAAK,KAAA;CAqBlB"}
1
+ {"version":3,"file":"wohumi.d.ts","sourceRoot":"","sources":["../../src/device/wohumi.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,eAAe,EAAE,MAAM,iBAAiB,CAAC;AAElD,qBAAa,MAAO,SAAQ,eAAe;IACzC,MAAM,CAAC,gBAAgB,CAAC,GAAG,KAAA,EAAE,KAAK,KAAA;;;;;;;IAuClC,KAAK;IAeL,MAAM;IAeN,OAAO;IAeP,IAAI;IAeJ,EAAE;IAIF,WAAW,CAAC,KAAK,KAAA;CAqBlB"}
@@ -1,27 +1,27 @@
1
1
  import { Buffer } from 'buffer';
2
2
  import { SwitchbotDevice } from '../switchbot.js';
3
- export async function parseServiceDataForWoHumi(buf, onlog) {
4
- if (buf.length !== 8) {
5
- if (onlog && typeof onlog === 'function') {
6
- onlog(`[parseServiceDataForWoHumi] Buffer length ${buf.length} !== 8!`);
3
+ export class WoHumi extends SwitchbotDevice {
4
+ static parseServiceData(buf, onlog) {
5
+ if (buf.length !== 8) {
6
+ if (onlog && typeof onlog === 'function') {
7
+ onlog(`[parseServiceDataForWoHumi] Buffer length ${buf.length} !== 8!`);
8
+ }
9
+ return null;
7
10
  }
8
- return null;
11
+ const byte1 = buf.readUInt8(1);
12
+ const byte4 = buf.readUInt8(4);
13
+ const onState = byte1 & 0b10000000 ? true : false; // 1 - on
14
+ const autoMode = byte4 & 0b10000000 ? true : false; // 1 - auto
15
+ const percentage = byte4 & 0b01111111; // 0-100%, 101/102/103 - Quick gear 1/2/3
16
+ const data = {
17
+ model: 'e',
18
+ modelName: 'WoHumi',
19
+ onState: onState,
20
+ autoMode: autoMode,
21
+ percentage: autoMode ? 0 : percentage,
22
+ };
23
+ return data;
9
24
  }
10
- const byte1 = buf.readUInt8(1);
11
- const byte4 = buf.readUInt8(4);
12
- const onState = byte1 & 0b10000000 ? true : false; // 1 - on
13
- const autoMode = byte4 & 0b10000000 ? true : false; // 1 - auto
14
- const percentage = byte4 & 0b01111111; // 0-100%, 101/102/103 - Quick gear 1/2/3
15
- const data = {
16
- model: 'e',
17
- modelName: 'WoHumi',
18
- onState: onState,
19
- autoMode: autoMode,
20
- percentage: autoMode ? 0 : percentage,
21
- };
22
- return data;
23
- }
24
- export class WoHumi extends SwitchbotDevice {
25
25
  /* ------------------------------------------------------------------
26
26
  * press()
27
27
  * - Press
@@ -1 +1 @@
1
- {"version":3,"file":"wohumi.js","sourceRoot":"","sources":["../../src/device/wohumi.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"wohumi.js","sourceRoot":"","sources":["../../src/device/wohumi.ts"],"names":[],"mappings":"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"}
@@ -1,15 +1,15 @@
1
1
  import { SwitchbotDevice } from '../switchbot.js';
2
- export declare function parseServiceDataForWoIOSensorTH(serviceDataBuf: any, manufacturerDataBuf: any, onlog: any): Promise<{
3
- model: string;
4
- modelName: string;
5
- temperature: {
6
- c: number;
7
- f: number;
8
- };
9
- fahrenheit: boolean;
10
- humidity: number;
11
- battery: number;
12
- } | null>;
13
2
  export declare class WoIOSensorTH extends SwitchbotDevice {
3
+ static parseServiceData(serviceDataBuf: any, manufacturerDataBuf: any, onlog: any): {
4
+ model: string;
5
+ modelName: string;
6
+ temperature: {
7
+ c: number;
8
+ f: number;
9
+ };
10
+ fahrenheit: boolean;
11
+ humidity: number;
12
+ battery: number;
13
+ } | null;
14
14
  }
15
15
  //# sourceMappingURL=woiosensorth.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"woiosensorth.d.ts","sourceRoot":"","sources":["../../src/device/woiosensorth.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,eAAe,EAAE,MAAM,iBAAiB,CAAC;AAElD,wBAAsB,+BAA+B,CAAC,cAAc,KAAA,EAAE,mBAAmB,KAAA,EAAE,KAAK,KAAA;;;;;;;;;;UAyC/F;AAED,qBAAa,YAAa,SAAQ,eAAe;CAAI"}
1
+ {"version":3,"file":"woiosensorth.d.ts","sourceRoot":"","sources":["../../src/device/woiosensorth.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,eAAe,EAAE,MAAM,iBAAiB,CAAC;AAElD,qBAAa,YAAa,SAAQ,eAAe;IAC/C,MAAM,CAAC,gBAAgB,CAAC,cAAc,KAAA,EAAE,mBAAmB,KAAA,EAAE,KAAK,KAAA;;;;;;;;;;;CA0CnE"}
@@ -1,38 +1,38 @@
1
1
  import { SwitchbotDevice } from '../switchbot.js';
2
- export async function parseServiceDataForWoIOSensorTH(serviceDataBuf, manufacturerDataBuf, onlog) {
3
- if (serviceDataBuf.length !== 3) {
4
- if (onlog && typeof onlog === 'function') {
5
- onlog(`[parseServiceDataForWoIOSensorTH] Service Data Buffer length ${serviceDataBuf.length} !== 3!`);
2
+ export class WoIOSensorTH extends SwitchbotDevice {
3
+ static parseServiceData(serviceDataBuf, manufacturerDataBuf, onlog) {
4
+ if (serviceDataBuf.length !== 3) {
5
+ if (onlog && typeof onlog === 'function') {
6
+ onlog(`[parseServiceDataForWoIOSensorTH] Service Data Buffer length ${serviceDataBuf.length} !== 3!`);
7
+ }
8
+ return null;
6
9
  }
7
- return null;
8
- }
9
- if (manufacturerDataBuf.length !== 14) {
10
- if (onlog && typeof onlog === 'function') {
11
- onlog(`[parseServiceDataForWoIOSensorTH] Manufacturer Data Buffer length ${manufacturerDataBuf.length} !== 14!`);
10
+ if (manufacturerDataBuf.length !== 14) {
11
+ if (onlog && typeof onlog === 'function') {
12
+ onlog(`[parseServiceDataForWoIOSensorTH] Manufacturer Data Buffer length ${manufacturerDataBuf.length} !== 14!`);
13
+ }
14
+ return null;
12
15
  }
13
- return null;
16
+ const mdByte10 = manufacturerDataBuf.readUInt8(10);
17
+ const mdByte11 = manufacturerDataBuf.readUInt8(11);
18
+ const mdByte12 = manufacturerDataBuf.readUInt8(12);
19
+ const sdByte2 = serviceDataBuf.readUInt8(2);
20
+ const temp_sign = mdByte11 & 0b10000000 ? 1 : -1;
21
+ const temp_c = temp_sign * ((mdByte11 & 0b01111111) + (mdByte10 & 0b00001111) / 10);
22
+ const temp_f = Math.round(((temp_c * 9 / 5) + 32) * 10) / 10;
23
+ const data = {
24
+ model: 'w',
25
+ modelName: 'WoIOSensorTH',
26
+ temperature: {
27
+ c: temp_c,
28
+ f: temp_f,
29
+ },
30
+ fahrenheit: mdByte12 & 0b10000000 ? true : false, // needs to be confirmed!
31
+ humidity: mdByte12 & 0b01111111,
32
+ battery: sdByte2 & 0b01111111,
33
+ };
34
+ console.log(data);
35
+ return data;
14
36
  }
15
- const mdByte10 = manufacturerDataBuf.readUInt8(10);
16
- const mdByte11 = manufacturerDataBuf.readUInt8(11);
17
- const mdByte12 = manufacturerDataBuf.readUInt8(12);
18
- const sdByte2 = serviceDataBuf.readUInt8(2);
19
- const temp_sign = mdByte11 & 0b10000000 ? 1 : -1;
20
- const temp_c = temp_sign * ((mdByte11 & 0b01111111) + (mdByte10 & 0b00001111) / 10);
21
- const temp_f = Math.round(((temp_c * 9 / 5) + 32) * 10) / 10;
22
- const data = {
23
- model: 'w',
24
- modelName: 'WoIOSensorTH',
25
- temperature: {
26
- c: temp_c,
27
- f: temp_f,
28
- },
29
- fahrenheit: mdByte12 & 0b10000000 ? true : false, // needs to be confirmed!
30
- humidity: mdByte12 & 0b01111111,
31
- battery: sdByte2 & 0b01111111,
32
- };
33
- console.log(data);
34
- return data;
35
- }
36
- export class WoIOSensorTH extends SwitchbotDevice {
37
37
  }
38
38
  //# sourceMappingURL=woiosensorth.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"woiosensorth.js","sourceRoot":"","sources":["../../src/device/woiosensorth.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,eAAe,EAAE,MAAM,iBAAiB,CAAC;AAElD,MAAM,CAAC,KAAK,UAAU,+BAA+B,CAAC,cAAc,EAAE,mBAAmB,EAAE,KAAK;IAC9F,IAAI,cAAc,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;QAChC,IAAI,KAAK,IAAI,OAAO,KAAK,KAAK,UAAU,EAAE,CAAC;YACzC,KAAK,CACH,gEAAgE,cAAc,CAAC,MAAM,SAAS,CAC/F,CAAC;QACJ,CAAC;QACD,OAAO,IAAI,CAAC;IACd,CAAC;IACD,IAAI,mBAAmB,CAAC,MAAM,KAAK,EAAE,EAAE,CAAC;QACtC,IAAI,KAAK,IAAI,OAAO,KAAK,KAAK,UAAU,EAAE,CAAC;YACzC,KAAK,CACH,qEAAqE,mBAAmB,CAAC,MAAM,UAAU,CAC1G,CAAC;QACJ,CAAC;QACD,OAAO,IAAI,CAAC;IACd,CAAC;IACD,MAAM,QAAQ,GAAG,mBAAmB,CAAC,SAAS,CAAC,EAAE,CAAC,CAAC;IACnD,MAAM,QAAQ,GAAG,mBAAmB,CAAC,SAAS,CAAC,EAAE,CAAC,CAAC;IACnD,MAAM,QAAQ,GAAG,mBAAmB,CAAC,SAAS,CAAC,EAAE,CAAC,CAAC;IAEnD,MAAM,OAAO,GAAG,cAAc,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC;IAE5C,MAAM,SAAS,GAAG,QAAQ,GAAG,UAAU,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;IACjD,MAAM,MAAM,GAAG,SAAS,GAAG,CAAC,CAAC,QAAQ,GAAG,UAAU,CAAC,GAAG,CAAC,QAAQ,GAAG,UAAU,CAAC,GAAG,EAAE,CAAC,CAAC;IACpF,MAAM,MAAM,GAAG,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,MAAM,GAAG,CAAC,GAAG,CAAC,CAAC,GAAG,EAAE,CAAC,GAAG,EAAE,CAAC,GAAG,EAAE,CAAC;IAE7D,MAAM,IAAI,GAAG;QACX,KAAK,EAAE,GAAG;QACV,SAAS,EAAE,cAAc;QACzB,WAAW,EAAE;YACX,CAAC,EAAE,MAAM;YACT,CAAC,EAAE,MAAM;SACV;QACD,UAAU,EAAE,QAAQ,GAAG,UAAU,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,KAAK,EAAE,yBAAyB;QAC3E,QAAQ,EAAE,QAAQ,GAAG,UAAU;QAC/B,OAAO,EAAE,OAAO,GAAG,UAAU;KAC9B,CAAC;IAEF,OAAO,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC;IAClB,OAAO,IAAI,CAAC;AACd,CAAC;AAED,MAAM,OAAO,YAAa,SAAQ,eAAe;CAAI"}
1
+ {"version":3,"file":"woiosensorth.js","sourceRoot":"","sources":["../../src/device/woiosensorth.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,eAAe,EAAE,MAAM,iBAAiB,CAAC;AAElD,MAAM,OAAO,YAAa,SAAQ,eAAe;IAC/C,MAAM,CAAC,gBAAgB,CAAC,cAAc,EAAE,mBAAmB,EAAE,KAAK;QAChE,IAAI,cAAc,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;YAChC,IAAI,KAAK,IAAI,OAAO,KAAK,KAAK,UAAU,EAAE,CAAC;gBACzC,KAAK,CACH,gEAAgE,cAAc,CAAC,MAAM,SAAS,CAC/F,CAAC;YACJ,CAAC;YACD,OAAO,IAAI,CAAC;QACd,CAAC;QACD,IAAI,mBAAmB,CAAC,MAAM,KAAK,EAAE,EAAE,CAAC;YACtC,IAAI,KAAK,IAAI,OAAO,KAAK,KAAK,UAAU,EAAE,CAAC;gBACzC,KAAK,CACH,qEAAqE,mBAAmB,CAAC,MAAM,UAAU,CAC1G,CAAC;YACJ,CAAC;YACD,OAAO,IAAI,CAAC;QACd,CAAC;QACD,MAAM,QAAQ,GAAG,mBAAmB,CAAC,SAAS,CAAC,EAAE,CAAC,CAAC;QACnD,MAAM,QAAQ,GAAG,mBAAmB,CAAC,SAAS,CAAC,EAAE,CAAC,CAAC;QACnD,MAAM,QAAQ,GAAG,mBAAmB,CAAC,SAAS,CAAC,EAAE,CAAC,CAAC;QAEnD,MAAM,OAAO,GAAG,cAAc,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC;QAE5C,MAAM,SAAS,GAAG,QAAQ,GAAG,UAAU,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;QACjD,MAAM,MAAM,GAAG,SAAS,GAAG,CAAC,CAAC,QAAQ,GAAG,UAAU,CAAC,GAAG,CAAC,QAAQ,GAAG,UAAU,CAAC,GAAG,EAAE,CAAC,CAAC;QACpF,MAAM,MAAM,GAAG,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,MAAM,GAAG,CAAC,GAAG,CAAC,CAAC,GAAG,EAAE,CAAC,GAAG,EAAE,CAAC,GAAG,EAAE,CAAC;QAE7D,MAAM,IAAI,GAAG;YACX,KAAK,EAAE,GAAG;YACV,SAAS,EAAE,cAAc;YACzB,WAAW,EAAE;gBACX,CAAC,EAAE,MAAM;gBACT,CAAC,EAAE,MAAM;aACV;YACD,UAAU,EAAE,QAAQ,GAAG,UAAU,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,KAAK,EAAE,yBAAyB;YAC3E,QAAQ,EAAE,QAAQ,GAAG,UAAU;YAC/B,OAAO,EAAE,OAAO,GAAG,UAAU;SAC9B,CAAC;QAEF,OAAO,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC;QAClB,OAAO,IAAI,CAAC;IACd,CAAC;CACF"}
@@ -1,30 +1,30 @@
1
1
  import { SwitchbotDevice } from '../switchbot.js';
2
- export declare function parseServiceDataForWoPlugMiniUS(manufacturerData: any, onlog: any): Promise<{
3
- model: string;
4
- modelName: string;
5
- state: string | null;
6
- delay: boolean;
7
- timer: boolean;
8
- syncUtcTime: boolean;
9
- wifiRssi: any;
10
- overload: boolean;
11
- currentPower: number;
12
- } | null>;
13
- export declare function parseServiceDataForWoPlugMiniJP(manufacturerData: any, onlog: any): {
14
- model: string;
15
- modelName: string;
16
- state: string | null;
17
- delay: boolean;
18
- timer: boolean;
19
- syncUtcTime: boolean;
20
- wifiRssi: any;
21
- overload: boolean;
22
- currentPower: number;
23
- } | null;
24
2
  /**
25
3
  * @see https://github.com/OpenWonderLabs/SwitchBotAPI-BLE/blob/latest/devicetypes/plugmini.md
26
4
  */
27
5
  export declare class WoPlugMini extends SwitchbotDevice {
6
+ static parseServiceData_US(manufacturerData: any, onlog: any): {
7
+ model: string;
8
+ modelName: string;
9
+ state: string | null;
10
+ delay: boolean;
11
+ timer: boolean;
12
+ syncUtcTime: boolean;
13
+ wifiRssi: any;
14
+ overload: boolean;
15
+ currentPower: number;
16
+ } | null;
17
+ static parseServiceData_JP(manufacturerData: any, onlog: any): {
18
+ model: string;
19
+ modelName: string;
20
+ state: string | null;
21
+ delay: boolean;
22
+ timer: boolean;
23
+ syncUtcTime: boolean;
24
+ wifiRssi: any;
25
+ overload: boolean;
26
+ currentPower: number;
27
+ } | null;
28
28
  /**
29
29
  * @returns {Promise<boolean>} resolves with a boolean that tells whether the plug in ON(true) or OFF(false)
30
30
  */
@@ -1 +1 @@
1
- {"version":3,"file":"woplugmini.d.ts","sourceRoot":"","sources":["../../src/device/woplugmini.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,eAAe,EAAE,MAAM,iBAAiB,CAAC;AAElD,wBAAsB,+BAA+B,CAAC,gBAAgB,KAAA,EAAE,KAAK,KAAA;;;;;;;;;;UAqC5E;AAED,wBAAgB,+BAA+B,CAAC,gBAAgB,KAAA,EAAE,KAAK,KAAA;;;;;;;;;;SAqCtE;AAED;;GAEG;AACH,qBAAa,UAAW,SAAQ,eAAe;IAC7C;;OAEG;IACH,SAAS;IAIT;;OAEG;IACH,SAAS,CAAC,YAAY,KAAA;IAKtB;;OAEG;IACH,MAAM;IAIN;;OAEG;IACH,OAAO;IAIP;;OAEG;IACH,MAAM;IAIN;;OAEG;IACH,WAAW,CAAC,KAAK,KAAA;CAgClB"}
1
+ {"version":3,"file":"woplugmini.d.ts","sourceRoot":"","sources":["../../src/device/woplugmini.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,eAAe,EAAE,MAAM,iBAAiB,CAAC;AAElD;;GAEG;AACH,qBAAa,UAAW,SAAQ,eAAe;IAC7C,MAAM,CAAC,mBAAmB,CAAC,gBAAgB,KAAA,EAAE,KAAK,KAAA;;;;;;;;;;;IAuClD,MAAM,CAAC,mBAAmB,CAAC,gBAAgB,KAAA,EAAE,KAAK,KAAA;;;;;;;;;;;IAuClD;;OAEG;IACH,SAAS;IAIT;;OAEG;IACH,SAAS,CAAC,YAAY,KAAA;IAKtB;;OAEG;IACH,MAAM;IAIN;;OAEG;IACH,OAAO;IAIP;;OAEG;IACH,MAAM;IAIN;;OAEG;IACH,WAAW,CAAC,KAAK,KAAA;CAgClB"}
@@ -1,75 +1,75 @@
1
1
  import { Buffer } from 'buffer';
2
2
  import { SwitchbotDevice } from '../switchbot.js';
3
- export async function parseServiceDataForWoPlugMiniUS(manufacturerData, onlog) {
4
- if (manufacturerData.length !== 14) {
5
- if (onlog && typeof onlog === 'function') {
6
- onlog(`[parseServiceDataForWoPlugMiniUS] Buffer length ${manufacturerData.length} should be 14`);
7
- }
8
- return null;
9
- }
10
- const byte9 = manufacturerData.readUInt8(9); // byte9: plug mini state; 0x00=off, 0x80=on
11
- const byte10 = manufacturerData.readUInt8(10); // byte10: bit0: 0=no delay,1=delay, bit1:0=no timer, 1=timer; bit2:0=no sync time, 1=sync'ed time
12
- const byte11 = manufacturerData.readUInt8(11); // byte11: wifi rssi
13
- const byte12 = manufacturerData.readUInt8(12); // byte12: bit7: overload?
14
- const byte13 = manufacturerData.readUInt8(13); // byte12[bit0~6] + byte13: current power value
15
- const state = byte9 === 0x00 ? 'off' : byte9 === 0x80 ? 'on' : null;
16
- const delay = !!(byte10 & 0b00000001);
17
- const timer = !!(byte10 & 0b00000010);
18
- const syncUtcTime = !!(byte10 & 0b00000100);
19
- const wifiRssi = byte11;
20
- const overload = !!(byte12 & 0b10000000);
21
- const currentPower = (((byte12 & 0b01111111) << 8) + byte13) / 10; // in watt
22
- // TODO: voltage ???
23
- const data = {
24
- model: 'g',
25
- modelName: 'WoPlugMini',
26
- state: state,
27
- delay: delay,
28
- timer: timer,
29
- syncUtcTime: syncUtcTime,
30
- wifiRssi: wifiRssi,
31
- overload: overload,
32
- currentPower: currentPower,
33
- };
34
- return data;
35
- }
36
- export function parseServiceDataForWoPlugMiniJP(manufacturerData, onlog) {
37
- if (manufacturerData.length !== 14) {
38
- if (onlog && typeof onlog === 'function') {
39
- onlog(`[parseServiceDataForWoPlugMiniJP] Buffer length ${manufacturerData.length} should be 14`);
40
- }
41
- return null;
42
- }
43
- const byte9 = manufacturerData.readUInt8(9); // byte9: plug mini state; 0x00=off, 0x80=on
44
- const byte10 = manufacturerData.readUInt8(10); // byte10: bit0: 0=no delay,1=delay, bit1:0=no timer, 1=timer; bit2:0=no sync time, 1=sync'ed time
45
- const byte11 = manufacturerData.readUInt8(11); // byte11: wifi rssi
46
- const byte12 = manufacturerData.readUInt8(12); // byte12: bit7: overload?
47
- const byte13 = manufacturerData.readUInt8(13); // byte12[bit0~6] + byte13: current power value
48
- const state = byte9 === 0x00 ? 'off' : byte9 === 0x80 ? 'on' : null;
49
- const delay = !!(byte10 & 0b00000001);
50
- const timer = !!(byte10 & 0b00000010);
51
- const syncUtcTime = !!(byte10 & 0b00000100);
52
- const wifiRssi = byte11;
53
- const overload = !!(byte12 & 0b10000000);
54
- const currentPower = (((byte12 & 0b01111111) << 8) + byte13) / 10; // in watt
55
- // TODO: voltage ???
56
- const data = {
57
- model: 'j',
58
- modelName: 'WoPlugMini',
59
- state: state,
60
- delay: delay,
61
- timer: timer,
62
- syncUtcTime: syncUtcTime,
63
- wifiRssi: wifiRssi,
64
- overload: overload,
65
- currentPower: currentPower,
66
- };
67
- return data;
68
- }
69
3
  /**
70
4
  * @see https://github.com/OpenWonderLabs/SwitchBotAPI-BLE/blob/latest/devicetypes/plugmini.md
71
5
  */
72
6
  export class WoPlugMini extends SwitchbotDevice {
7
+ static parseServiceData_US(manufacturerData, onlog) {
8
+ if (manufacturerData.length !== 14) {
9
+ if (onlog && typeof onlog === 'function') {
10
+ onlog(`[parseServiceDataForWoPlugMiniUS] Buffer length ${manufacturerData.length} should be 14`);
11
+ }
12
+ return null;
13
+ }
14
+ const byte9 = manufacturerData.readUInt8(9); // byte9: plug mini state; 0x00=off, 0x80=on
15
+ const byte10 = manufacturerData.readUInt8(10); // byte10: bit0: 0=no delay,1=delay, bit1:0=no timer, 1=timer; bit2:0=no sync time, 1=sync'ed time
16
+ const byte11 = manufacturerData.readUInt8(11); // byte11: wifi rssi
17
+ const byte12 = manufacturerData.readUInt8(12); // byte12: bit7: overload?
18
+ const byte13 = manufacturerData.readUInt8(13); // byte12[bit0~6] + byte13: current power value
19
+ const state = byte9 === 0x00 ? 'off' : byte9 === 0x80 ? 'on' : null;
20
+ const delay = !!(byte10 & 0b00000001);
21
+ const timer = !!(byte10 & 0b00000010);
22
+ const syncUtcTime = !!(byte10 & 0b00000100);
23
+ const wifiRssi = byte11;
24
+ const overload = !!(byte12 & 0b10000000);
25
+ const currentPower = (((byte12 & 0b01111111) << 8) + byte13) / 10; // in watt
26
+ // TODO: voltage ???
27
+ const data = {
28
+ model: 'g',
29
+ modelName: 'WoPlugMini',
30
+ state: state,
31
+ delay: delay,
32
+ timer: timer,
33
+ syncUtcTime: syncUtcTime,
34
+ wifiRssi: wifiRssi,
35
+ overload: overload,
36
+ currentPower: currentPower,
37
+ };
38
+ return data;
39
+ }
40
+ static parseServiceData_JP(manufacturerData, onlog) {
41
+ if (manufacturerData.length !== 14) {
42
+ if (onlog && typeof onlog === 'function') {
43
+ onlog(`[parseServiceDataForWoPlugMiniJP] Buffer length ${manufacturerData.length} should be 14`);
44
+ }
45
+ return null;
46
+ }
47
+ const byte9 = manufacturerData.readUInt8(9); // byte9: plug mini state; 0x00=off, 0x80=on
48
+ const byte10 = manufacturerData.readUInt8(10); // byte10: bit0: 0=no delay,1=delay, bit1:0=no timer, 1=timer; bit2:0=no sync time, 1=sync'ed time
49
+ const byte11 = manufacturerData.readUInt8(11); // byte11: wifi rssi
50
+ const byte12 = manufacturerData.readUInt8(12); // byte12: bit7: overload?
51
+ const byte13 = manufacturerData.readUInt8(13); // byte12[bit0~6] + byte13: current power value
52
+ const state = byte9 === 0x00 ? 'off' : byte9 === 0x80 ? 'on' : null;
53
+ const delay = !!(byte10 & 0b00000001);
54
+ const timer = !!(byte10 & 0b00000010);
55
+ const syncUtcTime = !!(byte10 & 0b00000100);
56
+ const wifiRssi = byte11;
57
+ const overload = !!(byte12 & 0b10000000);
58
+ const currentPower = (((byte12 & 0b01111111) << 8) + byte13) / 10; // in watt
59
+ // TODO: voltage ???
60
+ const data = {
61
+ model: 'j',
62
+ modelName: 'WoPlugMini',
63
+ state: state,
64
+ delay: delay,
65
+ timer: timer,
66
+ syncUtcTime: syncUtcTime,
67
+ wifiRssi: wifiRssi,
68
+ overload: overload,
69
+ currentPower: currentPower,
70
+ };
71
+ return data;
72
+ }
73
73
  /**
74
74
  * @returns {Promise<boolean>} resolves with a boolean that tells whether the plug in ON(true) or OFF(false)
75
75
  */
@@ -1 +1 @@
1
- {"version":3,"file":"woplugmini.js","sourceRoot":"","sources":["../../src/device/woplugmini.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"woplugmini.js","sourceRoot":"","sources":["../../src/device/woplugmini.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,EAAE,MAAM,QAAQ,CAAC;AAEhC,OAAO,EAAE,eAAe,EAAE,MAAM,iBAAiB,CAAC;AAElD;;GAEG;AACH,MAAM,OAAO,UAAW,SAAQ,eAAe;IAC7C,MAAM,CAAC,mBAAmB,CAAC,gBAAgB,EAAE,KAAK;QAChD,IAAI,gBAAgB,CAAC,MAAM,KAAK,EAAE,EAAE,CAAC;YACnC,IAAI,KAAK,IAAI,OAAO,KAAK,KAAK,UAAU,EAAE,CAAC;gBACzC,KAAK,CACH,mDAAmD,gBAAgB,CAAC,MAAM,eAAe,CAC1F,CAAC;YACJ,CAAC;YACD,OAAO,IAAI,CAAC;QACd,CAAC;QACD,MAAM,KAAK,GAAG,gBAAgB,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,CAAC,6CAA6C;QAC1F,MAAM,MAAM,GAAG,gBAAgB,CAAC,SAAS,CAAC,EAAE,CAAC,CAAC,CAAC,kGAAkG;QACjJ,MAAM,MAAM,GAAG,gBAAgB,CAAC,SAAS,CAAC,EAAE,CAAC,CAAC,CAAC,oBAAoB;QACnE,MAAM,MAAM,GAAG,gBAAgB,CAAC,SAAS,CAAC,EAAE,CAAC,CAAC,CAAC,0BAA0B;QACzE,MAAM,MAAM,GAAG,gBAAgB,CAAC,SAAS,CAAC,EAAE,CAAC,CAAC,CAAC,+CAA+C;QAE9F,MAAM,KAAK,GAAG,KAAK,KAAK,IAAI,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,KAAK,KAAK,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC;QACpE,MAAM,KAAK,GAAG,CAAC,CAAC,CAAC,MAAM,GAAG,UAAU,CAAC,CAAC;QACtC,MAAM,KAAK,GAAG,CAAC,CAAC,CAAC,MAAM,GAAG,UAAU,CAAC,CAAC;QACtC,MAAM,WAAW,GAAG,CAAC,CAAC,CAAC,MAAM,GAAG,UAAU,CAAC,CAAC;QAC5C,MAAM,QAAQ,GAAG,MAAM,CAAC;QACxB,MAAM,QAAQ,GAAG,CAAC,CAAC,CAAC,MAAM,GAAG,UAAU,CAAC,CAAC;QACzC,MAAM,YAAY,GAAG,CAAC,CAAC,CAAC,MAAM,GAAG,UAAU,CAAC,IAAI,CAAC,CAAC,GAAG,MAAM,CAAC,GAAG,EAAE,CAAC,CAAC,UAAU;QAC7E,oBAAoB;QAEpB,MAAM,IAAI,GAAG;YACX,KAAK,EAAE,GAAG;YACV,SAAS,EAAE,YAAY;YACvB,KAAK,EAAE,KAAK;YACZ,KAAK,EAAE,KAAK;YACZ,KAAK,EAAE,KAAK;YACZ,WAAW,EAAE,WAAW;YACxB,QAAQ,EAAE,QAAQ;YAClB,QAAQ,EAAE,QAAQ;YAClB,YAAY,EAAE,YAAY;SAC3B,CAAC;QAEF,OAAO,IAAI,CAAC;IACd,CAAC;IAED,MAAM,CAAC,mBAAmB,CAAC,gBAAgB,EAAE,KAAK;QAChD,IAAI,gBAAgB,CAAC,MAAM,KAAK,EAAE,EAAE,CAAC;YACnC,IAAI,KAAK,IAAI,OAAO,KAAK,KAAK,UAAU,EAAE,CAAC;gBACzC,KAAK,CACH,mDAAmD,gBAAgB,CAAC,MAAM,eAAe,CAC1F,CAAC;YACJ,CAAC;YACD,OAAO,IAAI,CAAC;QACd,CAAC;QACD,MAAM,KAAK,GAAG,gBAAgB,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,CAAC,6CAA6C;QAC1F,MAAM,MAAM,GAAG,gBAAgB,CAAC,SAAS,CAAC,EAAE,CAAC,CAAC,CAAC,kGAAkG;QACjJ,MAAM,MAAM,GAAG,gBAAgB,CAAC,SAAS,CAAC,EAAE,CAAC,CAAC,CAAC,oBAAoB;QACnE,MAAM,MAAM,GAAG,gBAAgB,CAAC,SAAS,CAAC,EAAE,CAAC,CAAC,CAAC,0BAA0B;QACzE,MAAM,MAAM,GAAG,gBAAgB,CAAC,SAAS,CAAC,EAAE,CAAC,CAAC,CAAC,+CAA+C;QAE9F,MAAM,KAAK,GAAG,KAAK,KAAK,IAAI,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,KAAK,KAAK,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC;QACpE,MAAM,KAAK,GAAG,CAAC,CAAC,CAAC,MAAM,GAAG,UAAU,CAAC,CAAC;QACtC,MAAM,KAAK,GAAG,CAAC,CAAC,CAAC,MAAM,GAAG,UAAU,CAAC,CAAC;QACtC,MAAM,WAAW,GAAG,CAAC,CAAC,CAAC,MAAM,GAAG,UAAU,CAAC,CAAC;QAC5C,MAAM,QAAQ,GAAG,MAAM,CAAC;QACxB,MAAM,QAAQ,GAAG,CAAC,CAAC,CAAC,MAAM,GAAG,UAAU,CAAC,CAAC;QACzC,MAAM,YAAY,GAAG,CAAC,CAAC,CAAC,MAAM,GAAG,UAAU,CAAC,IAAI,CAAC,CAAC,GAAG,MAAM,CAAC,GAAG,EAAE,CAAC,CAAC,UAAU;QAC7E,oBAAoB;QAEpB,MAAM,IAAI,GAAG;YACX,KAAK,EAAE,GAAG;YACV,SAAS,EAAE,YAAY;YACvB,KAAK,EAAE,KAAK;YACZ,KAAK,EAAE,KAAK;YACZ,KAAK,EAAE,KAAK;YACZ,WAAW,EAAE,WAAW;YACxB,QAAQ,EAAE,QAAQ;YAClB,QAAQ,EAAE,QAAQ;YAClB,YAAY,EAAE,YAAY;SAC3B,CAAC;QAEF,OAAO,IAAI,CAAC;IACd,CAAC;IAED;;OAEG;IACH,SAAS;QACP,OAAO,IAAI,CAAC,WAAW,CAAC,CAAC,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,CAAC,CAAC,CAAC;IACpD,CAAC;IAED;;OAEG;IACH,SAAS,CAAC,YAAY;QACpB,MAAM,IAAI,GAAG,CAAC,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,CAAC,CAAC;QACtC,OAAO,IAAI,CAAC,WAAW,CAAC,CAAC,GAAG,IAAI,EAAE,GAAG,YAAY,CAAC,CAAC,CAAC;IACtD,CAAC;IAED;;OAEG;IACH,MAAM;QACJ,OAAO,IAAI,CAAC,SAAS,CAAC,CAAC,IAAI,EAAE,IAAI,CAAC,CAAC,CAAC;IACtC,CAAC;IAED;;OAEG;IACH,OAAO;QACL,OAAO,IAAI,CAAC,SAAS,CAAC,CAAC,IAAI,EAAE,IAAI,CAAC,CAAC,CAAC;IACtC,CAAC;IAED;;OAEG;IACH,MAAM;QACJ,OAAO,IAAI,CAAC,SAAS,CAAC,CAAC,IAAI,EAAE,IAAI,CAAC,CAAC,CAAC;IACtC,CAAC;IAED;;OAEG;IACH,WAAW,CAAC,KAAK;QACf,MAAM,OAAO,GAAG,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;QACnC,OAAO,IAAI,OAAO,CAAC,CAAC,OAAO,EAAE,MAAM,EAAE,EAAE;YACrC,IAAI,CAAC,QAAQ,CAAC,OAAO,CAAC;iBACnB,IAAI,CAAC,CAAC,SAAS,EAAE,EAAE;gBAClB,MAAM,OAAO,GAAG,MAAM,CAAC,IAAI,CAAC,SAAuB,CAAC,CAAC;gBACrD,IAAI,OAAO,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;oBACzB,MAAM,IAAI,GAAG,OAAO,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC;oBAClC,IAAI,IAAI,KAAK,IAAI,IAAI,IAAI,KAAK,IAAI,EAAE,CAAC;wBACnC,MAAM,KAAK,GAAG,IAAI,KAAK,IAAI,CAAC;wBAC5B,OAAO,CAAC,KAAK,CAAC,CAAC;oBACjB,CAAC;yBAAM,CAAC;wBACN,MAAM,CACJ,IAAI,KAAK,CACP,kCAAkC,GAAG,OAAO,CAAC,QAAQ,CAAC,KAAK,CAAC,CAC7D,CACF,CAAC;oBACJ,CAAC;gBACH,CAAC;qBAAM,CAAC;oBACN,MAAM,CACJ,IAAI,KAAK,CACP,8CAA8C;wBAC5C,OAAO,CAAC,QAAQ,CAAC,KAAK,CAAC,CAC1B,CACF,CAAC;gBACJ,CAAC;YACH,CAAC,CAAC;iBACD,KAAK,CAAC,CAAC,KAAK,EAAE,EAAE;gBACf,MAAM,CAAC,KAAK,CAAC,CAAC;YAChB,CAAC,CAAC,CAAC;QACP,CAAC,CAAC,CAAC;IACL,CAAC;CACF"}