homebridge-levoit-humidifiers 1.14.4 → 1.15.0-beta.2

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/.tool-versions CHANGED
@@ -1 +1 @@
1
- nodejs 20.10.0
1
+ nodejs 20.19.5
package/CHANGELOG.md ADDED
@@ -0,0 +1,4 @@
1
+ ## [1.15.0] - 2025-Sept-08
2
+
3
+ ### Fixed
4
+ - #89: Update login implementation for non-US users to use region
@@ -23,6 +23,12 @@
23
23
  "required": true,
24
24
  "description": "VeSync's account password"
25
25
  },
26
+ "countryCode": {
27
+ "title": "Country Code",
28
+ "type": "string",
29
+ "default": "US",
30
+ "description": "The 2-letter ISO country code of your VeSync account (e.g. US, DE, JP). You can find your Region in the VeSync app under Settings → Region, then use the corresponding ISO code."
31
+ },
26
32
  "accessories": {
27
33
  "type": "object",
28
34
  "properties": {
@@ -22,6 +22,7 @@ export default class VeSync {
22
22
  private api?;
23
23
  private accountId?;
24
24
  private token?;
25
+ private baseURL;
25
26
  private readonly VERSION;
26
27
  private readonly FULL_VERSION;
27
28
  private readonly AGENT;
@@ -29,8 +30,10 @@ export default class VeSync {
29
30
  private readonly OS;
30
31
  private readonly BRAND;
31
32
  private readonly LANG;
32
- private readonly AXIOS_OPTIONS;
33
+ private readonly terminalId;
33
34
  constructor(email: string, password: string, config: PlatformConfig, debugMode: DebugMode, log: Logger);
35
+ private AXIOS_OPTIONS;
36
+ private ACCOUNT_AXIOS_OPTIONS;
34
37
  private generateDetailBody;
35
38
  private generateBody;
36
39
  private generateV2Body;
@@ -38,6 +41,8 @@ export default class VeSync {
38
41
  getDeviceInfo(fan: VeSyncFan): Promise<any>;
39
42
  startSession(): Promise<boolean>;
40
43
  private login;
44
+ private authByPWDOrOTM;
45
+ private loginByAuthorizeCode4Vesync;
41
46
  getDevices(): Promise<VeSyncFan[]>;
42
47
  }
43
48
  //# sourceMappingURL=VeSync.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"VeSync.d.ts","sourceRoot":"","sources":["../../src/api/VeSync.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,MAAM,EAAE,cAAc,EAAE,MAAM,YAAY,CAAC;AAKpD,OAAO,SAAS,MAAM,cAAc,CAAC;AACrC,OAAO,SAAS,MAAM,aAAa,CAAC;AAEpC,oBAAY,YAAY;IACtB,MAAM,wBAAwB;IAC9B,IAAI,oBAAoB;IACxB,sBAAsB,4BAA4B;IAClD,OAAO,eAAe;IACtB,MAAM,cAAc;IACpB,QAAQ,sBAAsB;IAC9B,UAAU,oBAAoB;IAC9B,KAAK,aAAa;IAClB,YAAY,mBAAmB;IAC/B,WAAW,kBAAkB;CAC9B;AAID,MAAM,CAAC,OAAO,OAAO,MAAM;IAmBvB,OAAO,CAAC,QAAQ,CAAC,KAAK;IACtB,OAAO,CAAC,QAAQ,CAAC,QAAQ;IACzB,QAAQ,CAAC,MAAM,EAAE,cAAc;aACf,SAAS,EAAE,SAAS;aACpB,GAAG,EAAE,MAAM;IAtB7B,OAAO,CAAC,GAAG,CAAC,CAAgB;IAC5B,OAAO,CAAC,SAAS,CAAC,CAAS;IAC3B,OAAO,CAAC,KAAK,CAAC,CAAS;IAEvB,OAAO,CAAC,QAAQ,CAAC,OAAO,CAAY;IACpC,OAAO,CAAC,QAAQ,CAAC,YAAY,CAAoC;IACjE,OAAO,CAAC,QAAQ,CAAC,KAAK,CAAkE;IACxF,OAAO,CAAC,QAAQ,CAAC,QAAQ,CAAsB;IAC/C,OAAO,CAAC,QAAQ,CAAC,EAAE,CAAgB;IACnC,OAAO,CAAC,QAAQ,CAAC,KAAK,CAAmB;IACzC,OAAO,CAAC,QAAQ,CAAC,IAAI,CAAQ;IAE7B,OAAO,CAAC,QAAQ,CAAC,aAAa,CAG5B;gBAGiB,KAAK,EAAE,MAAM,EACb,QAAQ,EAAE,MAAM,EACxB,MAAM,EAAE,cAAc,EACf,SAAS,EAAE,SAAS,EACpB,GAAG,EAAE,MAAM;IAG7B,OAAO,CAAC,kBAAkB;IAS1B,OAAO,CAAC,YAAY;IAapB,OAAO,CAAC,cAAc;IAiBT,WAAW,CACtB,GAAG,EAAE,SAAS,EACd,MAAM,EAAE,YAAY,EACpB,IAAI,KAAK,GACR,OAAO,CAAC,OAAO,CAAC;IA6DN,aAAa,CAAC,GAAG,EAAE,SAAS,GAAG,OAAO,CAAC,GAAG,CAAC;IA0C3C,YAAY,IAAI,OAAO,CAAC,OAAO,CAAC;YAO/B,KAAK;IAyEN,UAAU,IAAI,OAAO,CAAC,SAAS,EAAE,CAAC;CAsDhD"}
1
+ {"version":3,"file":"VeSync.d.ts","sourceRoot":"","sources":["../../src/api/VeSync.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,MAAM,EAAE,cAAc,EAAE,MAAM,YAAY,CAAC;AAKpD,OAAO,SAAS,MAAM,cAAc,CAAC;AACrC,OAAO,SAAS,MAAM,aAAa,CAAC;AAEpC,oBAAY,YAAY;IACtB,MAAM,wBAAwB;IAC9B,IAAI,oBAAoB;IACxB,sBAAsB,4BAA4B;IAClD,OAAO,eAAe;IACtB,MAAM,cAAc;IACpB,QAAQ,sBAAsB;IAC9B,UAAU,oBAAoB;IAC9B,KAAK,aAAa;IAClB,YAAY,mBAAmB;IAC/B,WAAW,kBAAkB;CAC9B;AAwBD,MAAM,CAAC,OAAO,OAAO,MAAM;IAoBvB,OAAO,CAAC,QAAQ,CAAC,KAAK;IACtB,OAAO,CAAC,QAAQ,CAAC,QAAQ;IACzB,QAAQ,CAAC,MAAM,EAAE,cAAc;aACf,SAAS,EAAE,SAAS;aACpB,GAAG,EAAE,MAAM;IAvB7B,OAAO,CAAC,GAAG,CAAC,CAAgB;IAC5B,OAAO,CAAC,SAAS,CAAC,CAAS;IAC3B,OAAO,CAAC,KAAK,CAAC,CAAS;IAGvB,OAAO,CAAC,OAAO,CAAS;IAExB,OAAO,CAAC,QAAQ,CAAC,OAAO,CAAY;IACpC,OAAO,CAAC,QAAQ,CAAC,YAAY,CAA4B;IACzD,OAAO,CAAC,QAAQ,CAAC,KAAK,CAAkE;IACxF,OAAO,CAAC,QAAQ,CAAC,QAAQ,CAAsB;IAC/C,OAAO,CAAC,QAAQ,CAAC,EAAE,CAAgB;IACnC,OAAO,CAAC,QAAQ,CAAC,KAAK,CAAmB;IACzC,OAAO,CAAC,QAAQ,CAAC,IAAI,CAAQ;IAG7B,OAAO,CAAC,QAAQ,CAAC,UAAU,CAA8B;gBAGtC,KAAK,EAAE,MAAM,EACb,QAAQ,EAAE,MAAM,EACxB,MAAM,EAAE,cAAc,EACf,SAAS,EAAE,SAAS,EACpB,GAAG,EAAE,MAAM;IAO7B,OAAO,CAAC,aAAa;IAOrB,OAAO,CAAC,qBAAqB;IAS7B,OAAO,CAAC,kBAAkB;IAS1B,OAAO,CAAC,YAAY;IAapB,OAAO,CAAC,cAAc;IAiBT,WAAW,CACtB,GAAG,EAAE,SAAS,EACd,MAAM,EAAE,YAAY,EACpB,IAAI,KAAK,GACR,OAAO,CAAC,OAAO,CAAC;IA4DN,aAAa,CAAC,GAAG,EAAE,SAAS,GAAG,OAAO,CAAC,GAAG,CAAC;IAyC3C,YAAY,IAAI,OAAO,CAAC,OAAO,CAAC;YAQ/B,KAAK;YA8EL,cAAc;YAmDd,2BAA2B;IA4C5B,UAAU,IAAI,OAAO,CAAC,SAAS,EAAE,CAAC;CAoDhD"}
@@ -6,7 +6,7 @@ Object.defineProperty(exports, "__esModule", { value: true });
6
6
  exports.BypassMethod = void 0;
7
7
  const axios_1 = __importDefault(require("axios"));
8
8
  const async_lock_1 = __importDefault(require("async-lock"));
9
- const crypto_1 = __importDefault(require("crypto"));
9
+ const uuid_1 = require("uuid");
10
10
  const deviceTypes_1 = __importDefault(require("./deviceTypes"));
11
11
  const VeSyncFan_1 = __importDefault(require("./VeSyncFan"));
12
12
  var BypassMethod;
@@ -22,24 +22,59 @@ var BypassMethod;
22
22
  BypassMethod["LIGHT_STATUS"] = "setLightStatus";
23
23
  BypassMethod["DRYING_MODE"] = "setDryingMode";
24
24
  })(BypassMethod = exports.BypassMethod || (exports.BypassMethod = {}));
25
+ function initialHostForCountry(cc) {
26
+ const upper = cc.toUpperCase();
27
+ if (['US', 'CA', 'MX', 'JP'].includes(upper))
28
+ return US_HOST;
29
+ return EU_HOST; // everything else starts on EU
30
+ }
25
31
  const lock = new async_lock_1.default();
32
+ // Known API hosts
33
+ const US_HOST = 'https://smartapi.vesync.com';
34
+ const EU_HOST = 'https://smartapi.vesync.eu';
35
+ const ACCOUNT_HOST = 'https://accountapi.vesync.com';
36
+ // Server error code indicating cross-region login is required
37
+ const CROSS_REGION_CODE = -11260022;
38
+ // Convert server region → host (default to US if unknown)
39
+ function regionToHost(region) {
40
+ if (typeof region === 'string' && region.toUpperCase() === 'EU')
41
+ return EU_HOST;
42
+ return US_HOST;
43
+ }
26
44
  class VeSync {
27
45
  constructor(email, password, config, debugMode, log) {
28
- var _a;
46
+ var _a, _b;
29
47
  this.email = email;
30
48
  this.password = password;
31
49
  this.config = config;
32
50
  this.debugMode = debugMode;
33
51
  this.log = log;
34
- this.VERSION = '4.1.70';
35
- this.FULL_VERSION = `VeSync ${this.VERSION} build15`;
52
+ this.VERSION = '5.6.60';
53
+ this.FULL_VERSION = `VeSync ${this.VERSION}`;
36
54
  this.AGENT = `VeSync/${this.VERSION} (iPhone; iOS 17.2.1; Humidifier/5.00)`;
37
55
  this.TIMEZONE = 'America/New_York';
38
56
  this.OS = 'iOS 17.2.1';
39
57
  this.BRAND = 'iPhone 15 Pro';
40
58
  this.LANG = 'en';
41
- this.AXIOS_OPTIONS = {
42
- baseURL: 'https://smartapi.vesync.com',
59
+ // Terminal/device identifier that VeSync expects to remain stable
60
+ this.terminalId = (0, uuid_1.v4)().replace(/-/g, '');
61
+ // Allow explicit override via config.options.apiHost; otherwise start with US
62
+ const cc = (((_a = config.options) === null || _a === void 0 ? void 0 : _a.countryCode) || 'US').toUpperCase();
63
+ this.baseURL = ((_b = config.options) === null || _b === void 0 ? void 0 : _b.apiHost) || initialHostForCountry(cc);
64
+ }
65
+ AXIOS_OPTIONS() {
66
+ var _a;
67
+ return {
68
+ baseURL: this.baseURL,
69
+ timeout: ((_a = this.config.options) === null || _a === void 0 ? void 0 : _a.apiTimeout) || 15000,
70
+ };
71
+ }
72
+ ACCOUNT_AXIOS_OPTIONS() {
73
+ var _a;
74
+ // Step 1 hits the account API (global). If this ever stops working,
75
+ // we can fall back to the smartapi host by switching baseURL here.
76
+ return {
77
+ baseURL: ACCOUNT_HOST,
43
78
  timeout: ((_a = this.config.options) === null || _a === void 0 ? void 0 : _a.apiTimeout) || 15000,
44
79
  };
45
80
  }
@@ -47,7 +82,7 @@ class VeSync {
47
82
  return {
48
83
  appVersion: this.FULL_VERSION,
49
84
  phoneBrand: this.BRAND,
50
- traceId: Date.now(),
85
+ traceId: `APP${Date.now()}-00001`,
51
86
  phoneOS: this.OS,
52
87
  };
53
88
  }
@@ -81,7 +116,7 @@ class VeSync {
81
116
  }
82
117
  async sendCommand(fan, method, body = {}) {
83
118
  return lock.acquire('api-call', async () => {
84
- var _a, _b;
119
+ var _a, _b, _c;
85
120
  if (!this.api) {
86
121
  throw new Error('The user is not logged in!');
87
122
  }
@@ -91,10 +126,9 @@ class VeSync {
91
126
  ...this.generateDetailBody(),
92
127
  ...this.generateBody(true),
93
128
  });
94
- // Explicitly fail if device is offline
95
- if (response.data.msg == 'device offline') {
129
+ if (((_a = response.data) === null || _a === void 0 ? void 0 : _a.msg) === 'device offline') {
96
130
  this.log.error('VeSync cannot communicate with humidifier! Check the VeSync App.');
97
- if ((_a = this.config.options) === null || _a === void 0 ? void 0 : _a.showOffWhenDisconnected) {
131
+ if ((_b = this.config.options) === null || _b === void 0 ? void 0 : _b.showOffWhenDisconnected) {
98
132
  return false;
99
133
  }
100
134
  else {
@@ -104,7 +138,7 @@ class VeSync {
104
138
  if (!(response === null || response === void 0 ? void 0 : response.data)) {
105
139
  this.debugMode.debug('[SEND COMMAND]', 'No response data!! JSON:', JSON.stringify(response === null || response === void 0 ? void 0 : response.data));
106
140
  }
107
- const isSuccess = ((_b = response === null || response === void 0 ? void 0 : response.data) === null || _b === void 0 ? void 0 : _b.code) === 0;
141
+ const isSuccess = ((_c = response === null || response === void 0 ? void 0 : response.data) === null || _c === void 0 ? void 0 : _c.code) === 0;
108
142
  if (!isSuccess) {
109
143
  this.debugMode.debug('[SEND COMMAND]', `Failed to send command ${method} to ${fan.name}`, `with (${JSON.stringify(body)})!`, `Response: ${JSON.stringify(response === null || response === void 0 ? void 0 : response.data)}`);
110
144
  }
@@ -116,7 +150,7 @@ class VeSync {
116
150
  }
117
151
  async getDeviceInfo(fan) {
118
152
  return lock.acquire('api-call', async () => {
119
- var _a;
153
+ var _a, _b;
120
154
  if (!this.api) {
121
155
  throw new Error('The user is not logged in!');
122
156
  }
@@ -127,10 +161,9 @@ class VeSync {
127
161
  ...this.generateBody(true),
128
162
  });
129
163
  this.debugMode.debug('[DEVICE INFO]', JSON.stringify(response.data));
130
- // Explicitly fail if device is offline
131
- if (response.data.msg == 'device offline') {
164
+ if (((_a = response.data) === null || _a === void 0 ? void 0 : _a.msg) === 'device offline') {
132
165
  this.log.error('VeSync cannot communicate with humidifier! Check the VeSync App.');
133
- if ((_a = this.config.options) === null || _a === void 0 ? void 0 : _a.showOffWhenDisconnected) {
166
+ if ((_b = this.config.options) === null || _b === void 0 ? void 0 : _b.showOffWhenDisconnected) {
134
167
  return false;
135
168
  }
136
169
  else {
@@ -146,46 +179,54 @@ class VeSync {
146
179
  async startSession() {
147
180
  this.debugMode.debug('[START SESSION]', 'Starting auth session...');
148
181
  const firstLoginSuccess = await this.login();
149
- setInterval(this.login.bind(this), 1000 * 60 * 55); // Refresh token every 55 minutes
182
+ // Refresh token every ~55 minutes
183
+ setInterval(this.login.bind(this), 1000 * 60 * 55);
150
184
  return firstLoginSuccess;
151
185
  }
152
186
  async login() {
153
187
  return lock.acquire('api-call', async () => {
188
+ var _a, _b, _c, _d, _e, _f, _g, _h;
154
189
  if (!this.email || !this.password) {
155
190
  throw new Error('Email and password are required');
156
191
  }
157
- this.debugMode.debug('[LOGIN]', 'Logging in...');
158
- const pwdHashed = crypto_1.default
159
- .createHash('md5')
160
- .update(this.password)
161
- .digest('hex');
162
- const response = await axios_1.default.post('cloud/v1/user/login', {
163
- email: this.email,
164
- password: pwdHashed,
165
- devToken: '',
166
- userType: 1,
167
- method: 'login',
168
- token: '',
169
- ...this.generateDetailBody(),
170
- ...this.generateBody(),
171
- }, {
172
- ...this.AXIOS_OPTIONS,
192
+ const userCountryCode = (((_a = this.config.options) === null || _a === void 0 ? void 0 : _a.countryCode) || 'US').toUpperCase();
193
+ this.debugMode.debug('[LOGIN]', 'Step 1: authByPWDOrOTM…');
194
+ const { authorizeCode, bizToken: initialBizToken } = await this.authByPWDOrOTM(userCountryCode);
195
+ this.debugMode.debug('[LOGIN]', `Step 2: loginByAuthorizeCode on ${this.baseURL}…`);
196
+ let step2Resp = await this.loginByAuthorizeCode4Vesync({
197
+ userCountryCode,
198
+ authorizeCode,
199
+ host: this.baseURL,
173
200
  });
174
- if (!(response === null || response === void 0 ? void 0 : response.data)) {
175
- this.debugMode.debug('[LOGIN]', 'No response data!! JSON:', JSON.stringify(response === null || response === void 0 ? void 0 : response.data));
176
- return false;
201
+ // Cross-region handling
202
+ if ((step2Resp === null || step2Resp === void 0 ? void 0 : step2Resp.code) === CROSS_REGION_CODE) {
203
+ const currentRegion = ((_b = step2Resp === null || step2Resp === void 0 ? void 0 : step2Resp.result) === null || _b === void 0 ? void 0 : _b.currentRegion) ||
204
+ ((_c = step2Resp === null || step2Resp === void 0 ? void 0 : step2Resp.data) === null || _c === void 0 ? void 0 : _c.currentRegion) ||
205
+ (step2Resp === null || step2Resp === void 0 ? void 0 : step2Resp.currentRegion);
206
+ const crossBizToken = ((_d = step2Resp === null || step2Resp === void 0 ? void 0 : step2Resp.result) === null || _d === void 0 ? void 0 : _d.bizToken) ||
207
+ ((_e = step2Resp === null || step2Resp === void 0 ? void 0 : step2Resp.data) === null || _e === void 0 ? void 0 : _e.bizToken) ||
208
+ initialBizToken ||
209
+ null;
210
+ const regionHost = regionToHost(currentRegion);
211
+ this.debugMode.debug('[LOGIN]', `Cross-region detected (${currentRegion}). Retrying on ${regionHost} with bizToken…`);
212
+ // Switch baseURL and retry with bizToken
213
+ this.baseURL = ((_f = this.config.options) === null || _f === void 0 ? void 0 : _f.apiHost) || regionHost;
214
+ step2Resp = await this.loginByAuthorizeCode4Vesync({
215
+ userCountryCode,
216
+ bizToken: crossBizToken,
217
+ host: this.baseURL,
218
+ });
177
219
  }
178
- const { result } = response.data;
179
- const { token, accountID } = result !== null && result !== void 0 ? result : {};
180
- if (!token || !accountID) {
181
- this.debugMode.debug('[LOGIN]', 'The authentication failed!! JSON:', JSON.stringify(response.data));
220
+ if (!step2Resp || step2Resp.code !== 0 || !((_g = step2Resp.result) === null || _g === void 0 ? void 0 : _g.token) || !((_h = step2Resp.result) === null || _h === void 0 ? void 0 : _h.accountID)) {
221
+ this.debugMode.debug('[LOGIN] Failed final step', JSON.stringify(step2Resp));
182
222
  return false;
183
223
  }
224
+ const { token, accountID } = step2Resp.result;
184
225
  this.debugMode.debug('[LOGIN]', 'Authentication was successful');
185
226
  this.accountId = accountID;
186
227
  this.token = token;
187
228
  this.api = axios_1.default.create({
188
- ...this.AXIOS_OPTIONS,
229
+ ...this.AXIOS_OPTIONS(),
189
230
  headers: {
190
231
  'content-type': 'application/json',
191
232
  'accept-language': this.LANG,
@@ -199,6 +240,75 @@ class VeSync {
199
240
  return true;
200
241
  });
201
242
  }
243
+ async authByPWDOrOTM(userCountryCode) {
244
+ const body = {
245
+ email: this.email,
246
+ method: 'authByPWDOrOTM',
247
+ password: this.password,
248
+ acceptLanguage: this.LANG,
249
+ accountID: '',
250
+ authProtocolType: 'generic',
251
+ clientInfo: this.BRAND,
252
+ clientType: 'vesyncApp',
253
+ clientVersion: this.FULL_VERSION,
254
+ debugMode: false,
255
+ osInfo: this.OS.includes('iOS') ? 'iOS' : 'Android',
256
+ terminalId: this.terminalId,
257
+ timeZone: this.TIMEZONE,
258
+ token: '',
259
+ userCountryCode,
260
+ appID: 'homebridge-levoit',
261
+ sourceAppID: 'homebridge-levoit',
262
+ ...this.generateDetailBody(),
263
+ };
264
+ // Prefer the account API for step 1 (matches app behavior)
265
+ let resp;
266
+ try {
267
+ resp = await axios_1.default.post('/globalPlatform/api/accountAuth/v1/authByPWDOrOTM', body, this.ACCOUNT_AXIOS_OPTIONS());
268
+ }
269
+ catch (e) {
270
+ // Fallback to smartapi host if accountapi ever blocks this
271
+ this.debugMode.debug('[AUTH] accountapi failed, falling back to smartapi', String(e));
272
+ resp = await axios_1.default.post('/globalPlatform/api/accountAuth/v1/authByPWDOrOTM', body, this.AXIOS_OPTIONS());
273
+ }
274
+ if (!(resp === null || resp === void 0 ? void 0 : resp.data) || resp.data.code !== 0 || !resp.data.result) {
275
+ this.debugMode.debug('[AUTH] Failed authByPWDOrOTM', JSON.stringify(resp === null || resp === void 0 ? void 0 : resp.data));
276
+ throw new Error('VeSync authentication failed at step 1');
277
+ }
278
+ const { authorizeCode = null, bizToken = null } = resp.data.result;
279
+ return { authorizeCode, bizToken };
280
+ }
281
+ async loginByAuthorizeCode4Vesync(opts) {
282
+ var _a;
283
+ const { userCountryCode, host, authorizeCode = null, bizToken = null } = opts;
284
+ const body = {
285
+ method: 'loginByAuthorizeCode4Vesync',
286
+ authorizeCode,
287
+ acceptLanguage: this.LANG,
288
+ accountID: '',
289
+ clientInfo: this.BRAND,
290
+ clientType: 'vesyncApp',
291
+ clientVersion: this.FULL_VERSION,
292
+ debugMode: false,
293
+ emailSubscriptions: false,
294
+ osInfo: this.OS.includes('iOS') ? 'iOS' : 'Android',
295
+ terminalId: this.terminalId,
296
+ timeZone: this.TIMEZONE,
297
+ token: '',
298
+ regionChange: '',
299
+ userCountryCode,
300
+ ...this.generateDetailBody(),
301
+ };
302
+ if (bizToken) {
303
+ body.bizToken = bizToken;
304
+ body.authorizeCode = null;
305
+ }
306
+ const resp = await axios_1.default.post('/user/api/accountManage/v1/loginByAuthorizeCode4Vesync', body, {
307
+ baseURL: host,
308
+ timeout: ((_a = this.config.options) === null || _a === void 0 ? void 0 : _a.apiTimeout) || 15000,
309
+ });
310
+ return resp === null || resp === void 0 ? void 0 : resp.data;
311
+ }
202
312
  async getDevices() {
203
313
  return lock.acquire('api-call', async () => {
204
314
  var _a, _b, _c;
@@ -1 +1 @@
1
- {"version":3,"file":"VeSync.js","sourceRoot":"","sources":["../../src/api/VeSync.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"VeSync.js","sourceRoot":"","sources":["../../src/api/VeSync.ts"],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -4,7 +4,7 @@
4
4
  "displayName": "Levoit Humidifiers",
5
5
  "main": "dist/index.js",
6
6
  "license": "Apache-2.0",
7
- "version": "1.14.4",
7
+ "version": "1.15.0-beta.2",
8
8
  "private": false,
9
9
  "bugs": {
10
10
  "url": "https://github.com/pschroeder89/homebridge-levoit-humidifiers/issues"
@@ -32,7 +32,8 @@
32
32
  "nodemon": "^2.0.13",
33
33
  "rimraf": "^3.0.2",
34
34
  "ts-node": "^10.3.0",
35
- "typescript": "^4.4.4"
35
+ "typescript": "^4.4.4",
36
+ "uuid": "^9.0.0"
36
37
  },
37
38
  "engines": {
38
39
  "homebridge": ">=1.3.5",
@@ -70,4 +71,4 @@
70
71
  "url": "https://www.paypal.me/pschroeder89"
71
72
  }
72
73
  ]
73
- }
74
+ }