@viguza/homebridge-ezviz 2.0.2 → 2.1.0

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 (37) hide show
  1. package/CHANGELOG.md +29 -0
  2. package/CODE_OF_CONDUCT.md +132 -0
  3. package/CONTRIBUTING.md +70 -0
  4. package/README.md +8 -8
  5. package/SECURITY.md +33 -0
  6. package/dist/accessories/ip-camera.js +6 -2
  7. package/dist/accessories/ip-camera.js.map +1 -1
  8. package/dist/api/ezviz-api.d.ts +13 -4
  9. package/dist/api/ezviz-api.js +155 -73
  10. package/dist/api/ezviz-api.js.map +1 -1
  11. package/dist/api/ezviz-requests.d.ts +3 -0
  12. package/dist/api/ezviz-requests.js +7 -21
  13. package/dist/api/ezviz-requests.js.map +1 -1
  14. package/dist/platform.d.ts +1 -0
  15. package/dist/platform.js +18 -11
  16. package/dist/platform.js.map +1 -1
  17. package/dist/types/data.d.ts +2 -2
  18. package/dist/utils/ffmpeg.d.ts +0 -2
  19. package/dist/utils/ffmpeg.js +6 -22
  20. package/dist/utils/ffmpeg.js.map +1 -1
  21. package/dist/utils/hksv-prebuffer.d.ts +4 -0
  22. package/dist/utils/hksv-prebuffer.js +48 -8
  23. package/dist/utils/hksv-prebuffer.js.map +1 -1
  24. package/dist/utils/hksv-recording-delegate.d.ts +1 -1
  25. package/dist/utils/hksv-recording-delegate.js +22 -12
  26. package/dist/utils/hksv-recording-delegate.js.map +1 -1
  27. package/dist/utils/mp4-parser.js +8 -1
  28. package/dist/utils/mp4-parser.js.map +1 -1
  29. package/dist/utils/rtsp-url.d.ts +5 -0
  30. package/dist/utils/rtsp-url.js +14 -5
  31. package/dist/utils/rtsp-url.js.map +1 -1
  32. package/dist/utils/sanitize.d.ts +5 -0
  33. package/dist/utils/sanitize.js +10 -0
  34. package/dist/utils/sanitize.js.map +1 -0
  35. package/dist/utils/streaming-delegate.js +5 -3
  36. package/dist/utils/streaming-delegate.js.map +1 -1
  37. package/package.json +5 -5
@@ -4,6 +4,38 @@ import crypto, { randomBytes } from 'crypto';
4
4
  import { EZVIZ_CLIENT_TYPE, EZVIZ_USER_AGENT, EZVIZ_BASE_API_URL, EZVIZ_DOMAINS_ENDPOINT, EZVIZ_AUTH_ENDPOINT, EZVIZ_DEVICES_ENDPOINT, EZVIZ_SWITCH_STATUS_ENDPOINT, EZVIZ_ALARMINFO_ENDPOINT, EZVIZ_SERVER_INFO_ENDPOINT, EZVIZ_DEFENCE_MODE_ENDPOINT, EZVIZ_DEFENCE_MODE_GET_ENDPOINT, API_ENDPOINT_REFRESH, RUSSIA_DOMAIN, RUSSIA_AREA_ID, DEFAULT_GROUP_ID, EZVIZ_REQUEST_TIMEOUT_MS, EZVIZ_BACKGROUND_REQUEST_TIMEOUT_MS, DEVICE_LIST_CACHE_TTL_MS, } from './ezviz-constants.js';
5
5
  import { DefenceMode } from '../utils/enums.js';
6
6
  import { sendRequest } from './ezviz-requests.js';
7
+ const DEVICE_LIST_PAGE_SIZE = 30;
8
+ // Safety bound in case the API keeps reporting another page.
9
+ const DEVICE_LIST_MAX_PAGES = 10;
10
+ function hasNextPage(response) {
11
+ // Accept either casing: the typed shape uses Page.HasNext, but it isn't verified
12
+ // against every region's API.
13
+ const page = (response?.Page ?? response?.page);
14
+ return Boolean(page?.HasNext ?? page?.hasNext);
15
+ }
16
+ function isPlainObject(value) {
17
+ return typeof value === 'object' && value !== null && !Array.isArray(value);
18
+ }
19
+ /**
20
+ * Combines consecutive device-list pages: list fields are concatenated and the
21
+ * per-serial maps (CONNECTION, SWITCH, ...) are merged.
22
+ */
23
+ function mergeDeviceListPages(a, b) {
24
+ const merged = { ...a };
25
+ for (const [key, value] of Object.entries(b ?? {})) {
26
+ const existing = merged[key];
27
+ if (Array.isArray(existing) && Array.isArray(value)) {
28
+ merged[key] = [...existing, ...value];
29
+ }
30
+ else if (key !== 'Page' && key !== 'page' && key !== 'meta' && isPlainObject(existing) && isPlainObject(value)) {
31
+ merged[key] = { ...existing, ...value };
32
+ }
33
+ else {
34
+ merged[key] = value;
35
+ }
36
+ }
37
+ return merged;
38
+ }
7
39
  /**
8
40
  * EZVIZ API client for interacting with EZVIZ services
9
41
  */
@@ -13,6 +45,15 @@ export class EZVIZAPI {
13
45
  log;
14
46
  deviceListCache = null;
15
47
  deviceListInFlight = null;
48
+ // Bumped by every write, so a list fetch that was already in flight can tell its
49
+ // result may predate the write.
50
+ deviceListGeneration = 0;
51
+ refreshInFlight = null;
52
+ latestAlarmInFlight = new Map();
53
+ // Invoked after every successful session rotation, including ones triggered by a 401
54
+ // mid-request, so anything bound to the old sessionId (the MQTT push subscription)
55
+ // can re-establish itself.
56
+ onSessionRefreshed;
16
57
  constructor(config, log) {
17
58
  this.config = config;
18
59
  this.sessionId = null;
@@ -97,10 +138,26 @@ export class EZVIZAPI {
97
138
  }
98
139
  /**
99
140
  * Refreshes the session using the refresh token, falling back to full re-authentication
100
- * if the refresh token is missing or rejected.
141
+ * if the refresh token is missing or rejected. Concurrent callers (e.g. several requests
142
+ * hitting 401 at once) share a single refresh.
101
143
  * @returns Promise resolving to updated credentials or undefined on failure
102
144
  */
103
- async refreshSession() {
145
+ refreshSession() {
146
+ if (!this.refreshInFlight) {
147
+ this.refreshInFlight = this.doRefreshSession()
148
+ .then((credentials) => {
149
+ if (credentials) {
150
+ this.onSessionRefreshed?.();
151
+ }
152
+ return credentials;
153
+ })
154
+ .finally(() => {
155
+ this.refreshInFlight = null;
156
+ });
157
+ }
158
+ return this.refreshInFlight;
159
+ }
160
+ async doRefreshSession() {
104
161
  const creds = this.config.credentials;
105
162
  if (!creds?.rfSessionId) {
106
163
  this.log?.debug('No refresh token available, falling back to full re-authentication');
@@ -130,11 +187,11 @@ export class EZVIZAPI {
130
187
  this.log?.debug(`Session refresh rejected (code ${result.meta?.code}), falling back to full re-authentication`);
131
188
  return this.authenticate();
132
189
  }
190
+ // Spread to keep username/pushAddr, which the MQTT reconnect after a refresh needs.
133
191
  const updated = {
192
+ ...creds,
134
193
  sessionId: result.sessionInfo.sessionId,
135
194
  rfSessionId: result.sessionInfo.refreshSessionId,
136
- featureCode: creds.featureCode,
137
- cuName: creds.cuName,
138
195
  };
139
196
  this.sessionId = updated.sessionId;
140
197
  this.config.credentials = updated;
@@ -182,13 +239,19 @@ export class EZVIZAPI {
182
239
  throw error;
183
240
  }
184
241
  }
242
+ request(endpoint, method, data, options = {}) {
243
+ return sendRequest(this.config, this.config.domain, endpoint, method, data, 3, {
244
+ ...options,
245
+ onUnauthorized: async () => Boolean(await this.refreshSession()),
246
+ });
247
+ }
185
248
  /**
186
249
  * Returns the MQTT push address from the server info endpoint.
187
250
  * Used to connect the MQTT client for real-time push notifications.
188
251
  */
189
252
  async getServiceUrls() {
190
253
  try {
191
- const response = await sendRequest(this.config, this.config.domain, EZVIZ_SERVER_INFO_ENDPOINT, 'GET', undefined, 3, { timeoutMs: EZVIZ_BACKGROUND_REQUEST_TIMEOUT_MS, networkRetries: 2 });
254
+ const response = await this.request(EZVIZ_SERVER_INFO_ENDPOINT, 'GET', undefined, { timeoutMs: EZVIZ_BACKGROUND_REQUEST_TIMEOUT_MS, networkRetries: 2 });
192
255
  const sysConfig = response?.systemConfigInfo;
193
256
  const pushAddr = sysConfig?.pushAddr ?? null;
194
257
  if (pushAddr && this.config.credentials) {
@@ -219,41 +282,66 @@ export class EZVIZAPI {
219
282
  return;
220
283
  }
221
284
  }
222
- if (!forceRefresh) {
223
- if (this.deviceListCache && this.deviceListCache.expiresAt > Date.now()) {
224
- this.log?.debug('Using cached device list');
225
- return this.deviceListCache.data;
226
- }
227
- if (this.deviceListInFlight) {
228
- this.log?.debug('Joining in-flight device list request');
229
- return this.deviceListInFlight;
230
- }
285
+ if (!forceRefresh && this.deviceListCache && this.deviceListCache.expiresAt > Date.now()) {
286
+ this.log?.debug('Using cached device list');
287
+ return this.deviceListCache.data;
231
288
  }
232
- const request = this.fetchDeviceList();
233
- this.deviceListInFlight = request;
234
- try {
235
- return await request;
289
+ const generation = this.deviceListGeneration;
290
+ let request = forceRefresh ? null : this.deviceListInFlight;
291
+ if (request) {
292
+ this.log?.debug('Joining in-flight device list request');
293
+ }
294
+ else {
295
+ request = this.startDeviceListFetch();
236
296
  }
237
- finally {
297
+ const result = await request;
298
+ if (this.deviceListGeneration !== generation) {
299
+ // A write landed while this was in flight, so the result may predate it; returning
300
+ // it would revert the state the write just set.
301
+ return this.listDevices();
302
+ }
303
+ return result;
304
+ }
305
+ startDeviceListFetch() {
306
+ const generation = this.deviceListGeneration;
307
+ const request = this.fetchDeviceList().then((info) => {
308
+ if (this.deviceListGeneration === generation) {
309
+ this.deviceListCache = { data: info, expiresAt: Date.now() + DEVICE_LIST_CACHE_TTL_MS };
310
+ }
311
+ return info;
312
+ });
313
+ this.deviceListInFlight = request;
314
+ request
315
+ .finally(() => {
238
316
  if (this.deviceListInFlight === request) {
239
317
  this.deviceListInFlight = null;
240
318
  }
241
- }
319
+ })
320
+ .catch(() => {
321
+ // Rejection is surfaced to the awaiting callers; this chain only clears state.
322
+ });
323
+ return request;
242
324
  }
243
- /**
244
- * Performs the actual device list request and populates the cache
245
- */
246
325
  async fetchDeviceList() {
247
326
  try {
248
- const query = querystring.stringify({
249
- filter: 'CONNECTION,WIFI,SWITCH,STATUS,NODISTURB,P2P,FEATURE,DETECTOR',
250
- groupId: DEFAULT_GROUP_ID,
251
- limit: 30,
252
- offset: 0,
253
- });
254
- const info = await sendRequest(this.config, this.config.domain, `${EZVIZ_DEVICES_ENDPOINT}?${query}`, 'GET', undefined, 3, { timeoutMs: EZVIZ_BACKGROUND_REQUEST_TIMEOUT_MS, networkRetries: 2 });
255
- this.deviceListCache = { data: info, expiresAt: Date.now() + DEVICE_LIST_CACHE_TTL_MS };
256
- return info;
327
+ let merged = null;
328
+ let offset = 0;
329
+ for (let page = 0; page < DEVICE_LIST_MAX_PAGES; page++) {
330
+ const query = querystring.stringify({
331
+ filter: 'CONNECTION,WIFI,SWITCH,STATUS,NODISTURB,P2P,FEATURE,DETECTOR',
332
+ groupId: DEFAULT_GROUP_ID,
333
+ limit: DEVICE_LIST_PAGE_SIZE,
334
+ offset,
335
+ });
336
+ const info = await this.request(`${EZVIZ_DEVICES_ENDPOINT}?${query}`, 'GET', undefined, { timeoutMs: EZVIZ_BACKGROUND_REQUEST_TIMEOUT_MS, networkRetries: 2 });
337
+ merged = merged ? mergeDeviceListPages(merged, info) : info;
338
+ const received = info?.deviceInfos?.length ?? 0;
339
+ if (!hasNextPage(info) || received === 0) {
340
+ break;
341
+ }
342
+ offset += received;
343
+ }
344
+ return merged;
257
345
  }
258
346
  catch (error) {
259
347
  this.log?.error('Error fetching devices:', error);
@@ -266,14 +354,29 @@ export class EZVIZAPI {
266
354
  */
267
355
  invalidateDeviceListCache() {
268
356
  this.deviceListCache = null;
357
+ this.deviceListInFlight = null;
358
+ this.deviceListGeneration++;
269
359
  }
270
360
  /**
271
361
  * Returns the most recent alarm's timestamp (ms) and snapshot URL for a device, or null
272
362
  * if it has no alarm history. Uses /v3/alarms/v2/advanced, which filters server-side by
273
363
  * deviceSerials — unlike /v3/unifiedmsg/list, which silently ignores that param and
274
364
  * always returns global results.
365
+ *
366
+ * Concurrent calls for the same serial share one request: a dual-lens camera has a
367
+ * motion sensor per lens, both polling the same device on the same schedule.
275
368
  */
276
- async getLatestAlarm(serialNumber) {
369
+ getLatestAlarm(serialNumber) {
370
+ let request = this.latestAlarmInFlight.get(serialNumber);
371
+ if (!request) {
372
+ request = this.fetchLatestAlarm(serialNumber).finally(() => {
373
+ this.latestAlarmInFlight.delete(serialNumber);
374
+ });
375
+ this.latestAlarmInFlight.set(serialNumber, request);
376
+ }
377
+ return request;
378
+ }
379
+ async fetchLatestAlarm(serialNumber) {
277
380
  if (!this.sessionId) {
278
381
  try {
279
382
  await this.authenticate();
@@ -290,7 +393,7 @@ export class EZVIZAPI {
290
393
  limit: 1,
291
394
  stype: -1,
292
395
  });
293
- const response = await sendRequest(this.config, this.config.domain, `${EZVIZ_ALARMINFO_ENDPOINT}?${query}`, 'GET', undefined, 3, { timeoutMs: EZVIZ_BACKGROUND_REQUEST_TIMEOUT_MS, networkRetries: 2 });
396
+ const response = await this.request(`${EZVIZ_ALARMINFO_ENDPOINT}?${query}`, 'GET', undefined, { timeoutMs: EZVIZ_BACKGROUND_REQUEST_TIMEOUT_MS, networkRetries: 2 });
294
397
  const latest = response?.alarms?.[0];
295
398
  if (!latest?.alarmStartTime) {
296
399
  return null;
@@ -321,30 +424,19 @@ export class EZVIZAPI {
321
424
  throw error;
322
425
  }
323
426
  }
324
- const config = {
325
- method: 'post',
326
- timeout: EZVIZ_REQUEST_TIMEOUT_MS,
327
- url: `${this.config.domain}${EZVIZ_SWITCH_STATUS_ENDPOINT}`,
328
- headers: {
329
- 'sessionid': this.sessionId,
330
- 'clienttype': EZVIZ_CLIENT_TYPE,
331
- 'user-agent': EZVIZ_USER_AGENT,
332
- },
333
- data: querystring.stringify({
334
- channel: 0,
335
- clientType: 1,
336
- enable: value ? 1 : 0,
337
- serial: serialNumber,
338
- type: type,
339
- }),
340
- };
427
+ const data = querystring.stringify({
428
+ channel: 0,
429
+ clientType: 1,
430
+ enable: value ? 1 : 0,
431
+ serial: serialNumber,
432
+ type: type,
433
+ });
341
434
  try {
342
- const response = await axios(config);
343
- if (response.data?.retcode) {
344
- throw new Error(`Switch state update failed: ${response.data.retcode}`);
435
+ const response = await this.request(EZVIZ_SWITCH_STATUS_ENDPOINT, 'POST', data);
436
+ if (response?.retcode) {
437
+ throw new Error(`Switch state update failed: ${response.retcode}`);
345
438
  }
346
439
  this.invalidateDeviceListCache();
347
- return response.data;
348
440
  }
349
441
  catch (error) {
350
442
  this.log?.error('Error setting switch state:', error);
@@ -418,25 +510,14 @@ export class EZVIZAPI {
418
510
  groupId: groupId,
419
511
  mode: mode,
420
512
  });
421
- const config = {
422
- method: 'post',
423
- timeout: EZVIZ_REQUEST_TIMEOUT_MS,
424
- url: `${this.config.domain}${EZVIZ_DEFENCE_MODE_ENDPOINT}?${query}`,
425
- headers: {
426
- 'sessionid': this.sessionId,
427
- 'clienttype': EZVIZ_CLIENT_TYPE,
428
- 'user-agent': EZVIZ_USER_AGENT,
429
- },
430
- };
431
513
  try {
432
- const response = await axios(config);
433
- if (response.data?.retcode && response.data.retcode !== '200') {
434
- throw new Error(`Defence mode update failed: ${response.data.retcode}`);
514
+ const response = await this.request(`${EZVIZ_DEFENCE_MODE_ENDPOINT}?${query}`, 'POST');
515
+ if (response?.retcode && response.retcode !== '200') {
516
+ throw new Error(`Defence mode update failed: ${response.retcode}`);
435
517
  }
436
- if (response.data?.meta?.code && response.data.meta.code !== 200) {
437
- throw new Error(`Defence mode update failed: ${response.data.meta.code} - ${response.data.meta.message}`);
518
+ if (response?.meta?.code && response.meta.code !== 200) {
519
+ throw new Error(`Defence mode update failed: ${response.meta.code} - ${response.meta.message}`);
438
520
  }
439
- return response.data;
440
521
  }
441
522
  catch (error) {
442
523
  this.log?.error('Error setting defence mode:', error);
@@ -462,7 +543,7 @@ export class EZVIZAPI {
462
543
  groupId: groupId,
463
544
  });
464
545
  try {
465
- const response = await sendRequest(this.config, this.config.domain, `${EZVIZ_DEFENCE_MODE_GET_ENDPOINT}?${query}`, 'GET', undefined, 3, { timeoutMs: EZVIZ_BACKGROUND_REQUEST_TIMEOUT_MS, networkRetries: 2 });
546
+ const response = await this.request(`${EZVIZ_DEFENCE_MODE_GET_ENDPOINT}?${query}`, 'GET', undefined, { timeoutMs: EZVIZ_BACKGROUND_REQUEST_TIMEOUT_MS, networkRetries: 2 });
466
547
  if (response?.retcode && response.retcode !== '200') {
467
548
  throw new Error(`Failed to get defence mode: ${response.retcode}`);
468
549
  }
@@ -471,7 +552,8 @@ export class EZVIZAPI {
471
552
  }
472
553
  // Extract the mode from the response
473
554
  // The response structure may vary, but typically it's in response.mode or response.defenceMode
474
- const mode = response?.mode || response?.defenceMode || response?.data?.mode;
555
+ // `??`, not `||`: 0 (UNSET_MODE) is a valid mode, not a missing one.
556
+ const mode = response?.mode ?? response?.defenceMode ?? response?.data?.mode;
475
557
  if (mode === undefined || mode === null) {
476
558
  this.log?.debug('No mode found in response, defaulting to UNSET_MODE');
477
559
  return DefenceMode.UNSET_MODE;
@@ -1 +1 @@
1
- {"version":3,"file":"ezviz-api.js","sourceRoot":"","sources":["../../src/api/ezviz-api.ts"],"names":[],"mappings":"AAAA,OAAO,KAA6B,MAAM,OAAO,CAAC;AAClD,OAAO,WAAW,MAAM,aAAa,CAAC;AACtC,OAAO,MAAM,EAAE,EAAE,WAAW,EAAE,MAAM,QAAQ,CAAC;AAK7C,OAAO,EACL,iBAAiB,EACjB,gBAAgB,EAChB,kBAAkB,EAClB,sBAAsB,EACtB,mBAAmB,EACnB,sBAAsB,EACtB,4BAA4B,EAC5B,wBAAwB,EACxB,0BAA0B,EAC1B,2BAA2B,EAC3B,+BAA+B,EAC/B,oBAAoB,EACpB,aAAa,EACb,cAAc,EACd,gBAAgB,EAChB,wBAAwB,EACxB,mCAAmC,EACnC,wBAAwB,GACzB,MAAM,sBAAsB,CAAC;AAC9B,OAAO,EAAE,WAAW,EAAE,MAAM,mBAAmB,CAAC;AAChD,OAAO,EAAE,WAAW,EAAE,MAAM,qBAAqB,CAAC;AAElD;;GAEG;AACH,MAAM,OAAO,QAAQ;IACX,MAAM,CAAc;IACrB,SAAS,CAAgB;IACxB,GAAG,CAAsB;IACzB,eAAe,GAA4D,IAAI,CAAC;IAChF,kBAAkB,GAAwC,IAAI,CAAC;IAEvE,YAAY,MAAmB,EAAE,GAAa;QAC5C,IAAI,CAAC,MAAM,GAAG,MAAM,CAAC;QACrB,IAAI,CAAC,SAAS,GAAG,IAAI,CAAC;QACtB,IAAI,CAAC,GAAG,GAAG,GAAG,CAAC;IACjB,CAAC;IAED;;;;OAIG;IACH,SAAS,CAAC,MAAc;QACtB,OAAO,WAAW,CAAC,MAAM,CAAC;aACvB,QAAQ,CAAC,QAAQ,CAAC;aAClB,KAAK,CAAC,CAAC,EAAE,MAAM,CAAC;aAChB,OAAO,CAAC,KAAK,EAAE,GAAG,CAAC;aACnB,OAAO,CAAC,KAAK,EAAE,GAAG,CAAC,CAAC;IACzB,CAAC;IAED;;;OAGG;IACH,KAAK,CAAC,YAAY;QAChB,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,KAAK,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,QAAQ,EAAE,CAAC;YAChD,IAAI,CAAC,GAAG,EAAE,KAAK,CAAC,oDAAoD,CAAC,CAAC;YACtE,OAAO;QACT,CAAC;QAED,MAAM,SAAS,GAAG,MAAM,CAAC,UAAU,CAAC,KAAK,CAAC,CAAC,MAAM,CAAC,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC;QACnF,MAAM,QAAQ,GAAG,MAAM,CAAC,UAAU,CAAC,KAAK,CAAC,CAAC,MAAM,CAAC,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC;QACrF,MAAM,IAAI,GAAG,WAAW,CAAC,SAAS,CAAC;YACjC,OAAO,EAAE,IAAI,CAAC,MAAM,CAAC,KAAK;YAC1B,WAAW,EAAE,SAAS;YACtB,QAAQ,EAAE,QAAQ;SACnB,CAAC,CAAC;QACH,MAAM,MAAM,GAAuB;YACjC,MAAM,EAAE,MAAM;YACd,OAAO,EAAE,wBAAwB;YACjC,GAAG,EAAE,GAAG,IAAI,CAAC,MAAM,CAAC,MAAM,GAAG,mBAAmB,EAAE;YAClD,OAAO,EAAE;gBACP,cAAc,EAAE,mCAAmC;gBACnD,YAAY,EAAE,iBAAiB;gBAC/B,YAAY,EAAE,gBAAgB;aAC/B;YACD,IAAI;SACL,CAAC;QAEF,IAAI,CAAC;YACH,MAAM,QAAQ,GAAG,MAAM,KAAK,CAAC,MAAM,CAAC,CAAC;YACrC,MAAM,IAAI,GAAG,QAAQ,CAAC,IAAI,CAAC;YAE3B,IAAI,IAAI,CAAC,OAAO,EAAE,CAAC;gBACjB,IAAI,CAAC,GAAG,EAAE,KAAK,CAAC,gBAAgB,IAAI,CAAC,OAAO,EAAE,CAAC,CAAC;gBAChD,OAAO;YACT,CAAC;YAED,IAAI,IAAI,CAAC,IAAI,EAAE,IAAI,KAAK,IAAI,EAAE,CAAC;gBAC7B,IAAI,CAAC,GAAG,EAAE,KAAK,CAAC,kEAAkE,CAAC,CAAC;gBACpF,OAAO;YACT,CAAC;YAED,IAAI,IAAI,CAAC,IAAI,EAAE,IAAI,KAAK,GAAG,EAAE,CAAC;gBAC5B,IAAI,CAAC,GAAG,EAAE,KAAK,CAAC,mBAAmB,EAAE,IAAI,CAAC,IAAI,EAAE,IAAI,CAAC,CAAC;gBACtD,OAAO;YACT,CAAC;YAED,IAAI,IAAI,CAAC,YAAY,EAAE,SAAS,EAAE,CAAC;gBACjC,MAAM,KAAK,GAAG,IAAa,CAAC;gBAC5B,MAAM,WAAW,GAAgB;oBAC/B,SAAS,EAAE,KAAK,CAAC,YAAY,CAAC,SAAS;oBACvC,WAAW,EAAE,KAAK,CAAC,YAAY,CAAC,WAAW;oBAC3C,WAAW,EAAE,SAAS;oBACtB,MAAM,EAAE,IAAI,CAAC,SAAS,CAAC,EAAE,CAAC;oBAC1B,QAAQ,EAAE,KAAK,CAAC,SAAS,EAAE,QAAQ;iBACpC,CAAC;gBACF,IAAI,CAAC,SAAS,GAAG,KAAK,CAAC,YAAY,CAAC,SAAS,CAAC;gBAC9C,IAAI,CAAC,MAAM,CAAC,WAAW,GAAG,WAAW,CAAC;gBACtC,OAAO,WAAW,CAAC;YACrB,CAAC;iBAAM,CAAC;gBACN,IAAI,CAAC,GAAG,EAAE,KAAK,CAAC,sCAAsC,CAAC,CAAC;gBACxD,OAAO;YACT,CAAC;QACH,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACf,IAAI,CAAC,GAAG,EAAE,KAAK,CAAC,kBAAkB,EAAE,KAAK,CAAC,CAAC;YAC3C,MAAM,KAAK,CAAC;QACd,CAAC;IACH,CAAC;IAED;;;;OAIG;IACH,KAAK,CAAC,cAAc;QAClB,MAAM,KAAK,GAAG,IAAI,CAAC,MAAM,CAAC,WAAW,CAAC;QAEtC,IAAI,CAAC,KAAK,EAAE,WAAW,EAAE,CAAC;YACxB,IAAI,CAAC,GAAG,EAAE,KAAK,CAAC,oEAAoE,CAAC,CAAC;YACtF,OAAO,IAAI,CAAC,YAAY,EAAE,CAAC;QAC7B,CAAC;QAED,MAAM,IAAI,GAAG,WAAW,CAAC,SAAS,CAAC;YACjC,MAAM,EAAE,KAAK,CAAC,MAAM;YACpB,WAAW,EAAE,KAAK,CAAC,WAAW;YAC9B,gBAAgB,EAAE,KAAK,CAAC,WAAW;SACpC,CAAC,CAAC;QAEH,MAAM,MAAM,GAAuB;YACjC,MAAM,EAAE,KAAK;YACb,OAAO,EAAE,wBAAwB;YACjC,GAAG,EAAE,GAAG,IAAI,CAAC,MAAM,CAAC,MAAM,GAAG,oBAAoB,EAAE;YACnD,OAAO,EAAE;gBACP,cAAc,EAAE,mCAAmC;gBACnD,YAAY,EAAE,iBAAiB;gBAC/B,YAAY,EAAE,gBAAgB;gBAC9B,WAAW,EAAE,IAAI,CAAC,SAAS,IAAI,EAAE;aAClC;YACD,IAAI;SACL,CAAC;QAEF,IAAI,CAAC;YACH,MAAM,QAAQ,GAAG,MAAM,KAAK,CAAC,MAAM,CAAC,CAAC;YACrC,MAAM,MAAM,GAAG,QAAQ,CAAC,IAAsB,CAAC;YAE/C,IAAI,MAAM,CAAC,IAAI,EAAE,IAAI,KAAK,GAAG,EAAE,CAAC;gBAC9B,IAAI,CAAC,GAAG,EAAE,KAAK,CAAC,kCAAkC,MAAM,CAAC,IAAI,EAAE,IAAI,2CAA2C,CAAC,CAAC;gBAChH,OAAO,IAAI,CAAC,YAAY,EAAE,CAAC;YAC7B,CAAC;YAED,MAAM,OAAO,GAAgB;gBAC3B,SAAS,EAAE,MAAM,CAAC,WAAW,CAAC,SAAS;gBACvC,WAAW,EAAE,MAAM,CAAC,WAAW,CAAC,gBAAgB;gBAChD,WAAW,EAAE,KAAK,CAAC,WAAW;gBAC9B,MAAM,EAAE,KAAK,CAAC,MAAM;aACrB,CAAC;YAEF,IAAI,CAAC,SAAS,GAAG,OAAO,CAAC,SAAS,CAAC;YACnC,IAAI,CAAC,MAAM,CAAC,WAAW,GAAG,OAAO,CAAC;YAClC,IAAI,CAAC,GAAG,EAAE,KAAK,CAAC,gCAAgC,CAAC,CAAC;YAClD,OAAO,OAAO,CAAC;QACjB,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACf,IAAI,CAAC,GAAG,EAAE,KAAK,CAAC,iEAAiE,EAAE,KAAK,CAAC,CAAC;YAC1F,OAAO,IAAI,CAAC,YAAY,EAAE,CAAC;QAC7B,CAAC;IACH,CAAC;IAED;;;;OAIG;IACH,KAAK,CAAC,SAAS,CAAC,EAAU;QACxB,IAAI,EAAE,KAAK,cAAc,EAAE,CAAC;YAC1B,OAAO,WAAW,aAAa,EAAE,CAAC;QACpC,CAAC;QAED,MAAM,OAAO,GAAG;YACd,cAAc,EAAE,mCAAmC;YACnD,YAAY,EAAE,iBAAiB;YAC/B,YAAY,EAAE,gBAAgB;SAC/B,CAAC;QAEF,MAAM,SAAS,GAAuB;YACpC,OAAO,EAAE,OAAO;YAChB,MAAM,EAAE,MAAM;YACd,OAAO,EAAE,wBAAwB;YACjC,GAAG,EAAE,GAAG,kBAAkB,GAAG,sBAAsB,EAAE;YACrD,IAAI,EAAE,WAAW,CAAC,SAAS,CAAC;gBAC1B,MAAM,EAAE,EAAE;aACX,CAAC;SACH,CAAC;QAEF,IAAI,CAAC;YACH,MAAM,QAAQ,GAAG,MAAM,KAAK,CAAC,SAAS,CAAC,CAAC;YACxC,MAAM,MAAM,GAAG,QAAQ,CAAC,IAAc,CAAC;YAEvC,IAAI,CAAC,MAAM,CAAC,MAAM,EAAE,CAAC;gBACnB,MAAM,IAAI,KAAK,CAAC,kCAAkC,CAAC,CAAC;YACtD,CAAC;YAED,OAAO,WAAW,MAAM,CAAC,MAAM,EAAE,CAAC;QACpC,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACf,IAAI,CAAC,GAAG,EAAE,KAAK,CAAC,wBAAwB,EAAE,KAAK,CAAC,CAAC;YACjD,MAAM,KAAK,CAAC;QACd,CAAC;IACH,CAAC;IAED;;;OAGG;IACH,KAAK,CAAC,cAAc;QAClB,IAAI,CAAC;YACH,MAAM,QAAQ,GAAG,MAAM,WAAW,CAChC,IAAI,CAAC,MAAM,EACX,IAAI,CAAC,MAAM,CAAC,MAAM,EAClB,0BAA0B,EAC1B,KAAK,EACL,SAAS,EACT,CAAC,EACD,EAAE,SAAS,EAAE,mCAAmC,EAAE,cAAc,EAAE,CAAC,EAAE,CAC3C,CAAC;YAC7B,MAAM,SAAS,GAAG,QAAQ,EAAE,gBAAuD,CAAC;YACpF,MAAM,QAAQ,GAAI,SAAS,EAAE,QAAmB,IAAI,IAAI,CAAC;YACzD,IAAI,QAAQ,IAAI,IAAI,CAAC,MAAM,CAAC,WAAW,EAAE,CAAC;gBACxC,IAAI,CAAC,MAAM,CAAC,WAAW,CAAC,QAAQ,GAAG,QAAQ,CAAC;YAC9C,CAAC;YACD,OAAO,QAAQ,CAAC;QAClB,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACf,IAAI,CAAC,GAAG,EAAE,KAAK,CAAC,+BAA+B,EAAE,KAAK,CAAC,CAAC;YACxD,OAAO,IAAI,CAAC;QACd,CAAC;IACH,CAAC;IAED;;;;;;;OAOG;IACH,KAAK,CAAC,WAAW,CAAC,YAAY,GAAG,KAAK;QACpC,IAAI,CAAC,IAAI,CAAC,SAAS,EAAE,CAAC;YACpB,IAAI,CAAC;gBACH,MAAM,IAAI,CAAC,YAAY,EAAE,CAAC;YAC5B,CAAC;YAAC,OAAO,KAAK,EAAE,CAAC;gBACf,IAAI,CAAC,GAAG,EAAE,KAAK,CAAC,gDAAgD,EAAE,KAAK,CAAC,CAAC;gBACzE,OAAO;YACT,CAAC;QACH,CAAC;QAED,IAAI,CAAC,YAAY,EAAE,CAAC;YAClB,IAAI,IAAI,CAAC,eAAe,IAAI,IAAI,CAAC,eAAe,CAAC,SAAS,GAAG,IAAI,CAAC,GAAG,EAAE,EAAE,CAAC;gBACxE,IAAI,CAAC,GAAG,EAAE,KAAK,CAAC,0BAA0B,CAAC,CAAC;gBAC5C,OAAO,IAAI,CAAC,eAAe,CAAC,IAAI,CAAC;YACnC,CAAC;YAED,IAAI,IAAI,CAAC,kBAAkB,EAAE,CAAC;gBAC5B,IAAI,CAAC,GAAG,EAAE,KAAK,CAAC,uCAAuC,CAAC,CAAC;gBACzD,OAAO,IAAI,CAAC,kBAAkB,CAAC;YACjC,CAAC;QACH,CAAC;QAED,MAAM,OAAO,GAAG,IAAI,CAAC,eAAe,EAAE,CAAC;QACvC,IAAI,CAAC,kBAAkB,GAAG,OAAO,CAAC;QAElC,IAAI,CAAC;YACH,OAAO,MAAM,OAAO,CAAC;QACvB,CAAC;gBAAS,CAAC;YACT,IAAI,IAAI,CAAC,kBAAkB,KAAK,OAAO,EAAE,CAAC;gBACxC,IAAI,CAAC,kBAAkB,GAAG,IAAI,CAAC;YACjC,CAAC;QACH,CAAC;IACH,CAAC;IAED;;OAEG;IACK,KAAK,CAAC,eAAe;QAC3B,IAAI,CAAC;YACH,MAAM,KAAK,GAAG,WAAW,CAAC,SAAS,CAAC;gBAClC,MAAM,EAAE,8DAA8D;gBACtE,OAAO,EAAE,gBAAgB;gBACzB,KAAK,EAAE,EAAE;gBACT,MAAM,EAAE,CAAC;aACV,CAAC,CAAC;YAEH,MAAM,IAAI,GAAG,MAAM,WAAW,CAC5B,IAAI,CAAC,MAAM,EACX,IAAI,CAAC,MAAM,CAAC,MAAM,EAClB,GAAG,sBAAsB,IAAI,KAAK,EAAE,EACpC,KAAK,EACL,SAAS,EACT,CAAC,EACD,EAAE,SAAS,EAAE,mCAAmC,EAAE,cAAc,EAAE,CAAC,EAAE,CAC/C,CAAC;YACzB,IAAI,CAAC,eAAe,GAAG,EAAE,IAAI,EAAE,IAAI,EAAE,SAAS,EAAE,IAAI,CAAC,GAAG,EAAE,GAAG,wBAAwB,EAAE,CAAC;YACxF,OAAO,IAAI,CAAC;QACd,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACf,IAAI,CAAC,GAAG,EAAE,KAAK,CAAC,yBAAyB,EAAE,KAAK,CAAC,CAAC;YAClD,MAAM,KAAK,CAAC;QACd,CAAC;IACH,CAAC;IAED;;;OAGG;IACH,yBAAyB;QACvB,IAAI,CAAC,eAAe,GAAG,IAAI,CAAC;IAC9B,CAAC;IAED;;;;;OAKG;IACH,KAAK,CAAC,cAAc,CAAC,YAAoB;QACvC,IAAI,CAAC,IAAI,CAAC,SAAS,EAAE,CAAC;YACpB,IAAI,CAAC;gBACH,MAAM,IAAI,CAAC,YAAY,EAAE,CAAC;YAC5B,CAAC;YAAC,OAAO,KAAK,EAAE,CAAC;gBACf,IAAI,CAAC,GAAG,EAAE,KAAK,CAAC,sDAAsD,EAAE,KAAK,CAAC,CAAC;gBAC/E,MAAM,KAAK,CAAC;YACd,CAAC;QACH,CAAC;QAED,IAAI,CAAC;YACH,MAAM,KAAK,GAAG,WAAW,CAAC,SAAS,CAAC;gBAClC,aAAa,EAAE,YAAY;gBAC3B,SAAS,EAAE,CAAC,CAAC;gBACb,KAAK,EAAE,CAAC;gBACR,KAAK,EAAE,CAAC,CAAC;aACV,CAAC,CAAC;YAEH,MAAM,QAAQ,GAAG,MAAM,WAAW,CAChC,IAAI,CAAC,MAAM,EACX,IAAI,CAAC,MAAM,CAAC,MAAM,EAClB,GAAG,wBAAwB,IAAI,KAAK,EAAE,EACtC,KAAK,EACL,SAAS,EACT,CAAC,EACD,EAAE,SAAS,EAAE,mCAAmC,EAAE,cAAc,EAAE,CAAC,EAAE,CACF,CAAC;YAEtE,MAAM,MAAM,GAAG,QAAQ,EAAE,MAAM,EAAE,CAAC,CAAC,CAAC,CAAC;YACrC,IAAI,CAAC,MAAM,EAAE,cAAc,EAAE,CAAC;gBAC5B,OAAO,IAAI,CAAC;YACd,CAAC;YAED,OAAO,EAAE,IAAI,EAAE,MAAM,CAAC,cAAc,EAAE,MAAM,EAAE,MAAM,CAAC,MAAM,IAAI,EAAE,EAAE,CAAC;QACtE,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACf,IAAI,CAAC,GAAG,EAAE,KAAK,CAAC,8BAA8B,EAAE,KAAK,CAAC,CAAC;YACvD,MAAM,KAAK,CAAC;QACd,CAAC;IACH,CAAC;IAED;;;;;OAKG;IACH,KAAK,CAAC,cAAc,CAAC,YAAoB,EAAE,IAAY,EAAE,KAAc;QACrE,IAAI,CAAC,YAAY,EAAE,CAAC;YAClB,MAAM,IAAI,KAAK,CAAC,2BAA2B,CAAC,CAAC;QAC/C,CAAC;QAED,IAAI,CAAC,IAAI,CAAC,SAAS,EAAE,CAAC;YACpB,IAAI,CAAC;gBACH,MAAM,IAAI,CAAC,YAAY,EAAE,CAAC;YAC5B,CAAC;YAAC,OAAO,KAAK,EAAE,CAAC;gBACf,IAAI,CAAC,GAAG,EAAE,KAAK,CAAC,qDAAqD,EAAE,KAAK,CAAC,CAAC;gBAC9E,MAAM,KAAK,CAAC;YACd,CAAC;QACH,CAAC;QAED,MAAM,MAAM,GAAuB;YACjC,MAAM,EAAE,MAAM;YACd,OAAO,EAAE,wBAAwB;YACjC,GAAG,EAAE,GAAG,IAAI,CAAC,MAAM,CAAC,MAAM,GAAG,4BAA4B,EAAE;YAC3D,OAAO,EAAE;gBACP,WAAW,EAAE,IAAI,CAAC,SAAS;gBAC3B,YAAY,EAAE,iBAAiB;gBAC/B,YAAY,EAAE,gBAAgB;aAC/B;YACD,IAAI,EAAE,WAAW,CAAC,SAAS,CAAC;gBAC1B,OAAO,EAAE,CAAC;gBACV,UAAU,EAAE,CAAC;gBACb,MAAM,EAAE,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;gBACrB,MAAM,EAAE,YAAY;gBACpB,IAAI,EAAE,IAAI;aACX,CAAC;SACH,CAAC;QAEF,IAAI,CAAC;YACH,MAAM,QAAQ,GAAG,MAAM,KAAK,CAAC,MAAM,CAAC,CAAC;YAErC,IAAI,QAAQ,CAAC,IAAI,EAAE,OAAO,EAAE,CAAC;gBAC3B,MAAM,IAAI,KAAK,CAAC,+BAA+B,QAAQ,CAAC,IAAI,CAAC,OAAO,EAAE,CAAC,CAAC;YAC1E,CAAC;YAED,IAAI,CAAC,yBAAyB,EAAE,CAAC;YACjC,OAAO,QAAQ,CAAC,IAAI,CAAC;QACvB,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACf,IAAI,CAAC,GAAG,EAAE,KAAK,CAAC,6BAA6B,EAAE,KAAK,CAAC,CAAC;YACtD,MAAM,KAAK,CAAC;QACd,CAAC;IACH,CAAC;IAED;;;;;OAKG;IACH,KAAK,CAAC,cAAc,CAAC,YAAoB,EAAE,IAAY;QACrD,IAAI,CAAC,YAAY,EAAE,CAAC;YAClB,MAAM,IAAI,KAAK,CAAC,2BAA2B,CAAC,CAAC;QAC/C,CAAC;QAED,IAAI,CAAC,IAAI,CAAC,SAAS,EAAE,CAAC;YACpB,IAAI,CAAC;gBACH,MAAM,IAAI,CAAC,YAAY,EAAE,CAAC;YAC5B,CAAC;YAAC,OAAO,KAAK,EAAE,CAAC;gBACf,IAAI,CAAC,GAAG,EAAE,KAAK,CAAC,qDAAqD,EAAE,KAAK,CAAC,CAAC;gBAC9E,MAAM,KAAK,CAAC;YACd,CAAC;QACH,CAAC;QAED,MAAM,UAAU,GAAG,MAAM,IAAI,CAAC,WAAW,EAAE,CAAC;QAC5C,IAAI,CAAC,UAAU,EAAE,CAAC;YAChB,MAAM,OAAO,GAAG,kBAAkB,CAAC;YACnC,IAAI,CAAC,GAAG,EAAE,KAAK,CAAC,OAAO,CAAC,CAAC;YACzB,MAAM,IAAI,KAAK,CAAC,OAAO,CAAC,CAAC;QAC3B,CAAC;QAED,MAAM,UAAU,GAAG,UAAU,CAAC,WAAW,EAAE,IAAI,CAAC,CAAC,MAAM,EAAE,EAAE,CAAC,MAAM,CAAC,YAAY,KAAK,YAAY,CAAC,CAAC;QAClG,IAAI,CAAC,UAAU,EAAE,CAAC;YAChB,MAAM,OAAO,GAAG,sBAAsB,YAAY,gBAAgB,CAAC;YACnE,IAAI,CAAC,GAAG,EAAE,KAAK,CAAC,OAAO,CAAC,CAAC;YACzB,MAAM,IAAI,KAAK,CAAC,OAAO,CAAC,CAAC;QAC3B,CAAC;QAED,IAAI,UAAU,EAAE,MAAM,KAAK,CAAC,EAAE,CAAC;YAC7B,MAAM,OAAO,GAAG,sBAAsB,YAAY,aAAa,CAAC;YAChE,IAAI,CAAC,GAAG,EAAE,KAAK,CAAC,OAAO,CAAC,CAAC;YACzB,MAAM,IAAI,KAAK,CAAC,OAAO,CAAC,CAAC;QAC3B,CAAC;QAED,MAAM,YAAY,GAAG,UAAU,CAAC,MAAM,EAAE,CAAC,YAAY,CAAC,EAAE,IAAI,CAAC,CAAC,MAAM,EAAE,EAAE,CAAC,MAAM,CAAC,IAAI,KAAK,IAAI,CAAC,CAAC;QAC/F,IAAI,CAAC,YAAY,EAAE,CAAC;YAClB,MAAM,OAAO,GAAG,4BAA4B,YAAY,gBAAgB,CAAC;YACzE,IAAI,CAAC,GAAG,EAAE,KAAK,CAAC,OAAO,CAAC,CAAC;YACzB,MAAM,IAAI,KAAK,CAAC,OAAO,CAAC,CAAC;QAC3B,CAAC;QAED,OAAO,YAAY,EAAE,MAAM,CAAC;IAC9B,CAAC;IAED;;;;;OAKG;IACH,KAAK,CAAC,cAAc,CAAC,UAAkB,gBAAgB,EAAE,IAAiB;QACxE,IAAI,CAAC,MAAM,CAAC,MAAM,CAAC,WAAW,CAAC,CAAC,QAAQ,CAAC,IAAI,CAAC,EAAE,CAAC;YAC/C,MAAM,IAAI,KAAK,CAAC,yCAAyC,MAAM,CAAC,MAAM,CAAC,WAAW,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;QACpG,CAAC;QAED,IAAI,CAAC,IAAI,CAAC,SAAS,EAAE,CAAC;YACpB,IAAI,CAAC;gBACH,MAAM,IAAI,CAAC,YAAY,EAAE,CAAC;YAC5B,CAAC;YAAC,OAAO,KAAK,EAAE,CAAC;gBACf,IAAI,CAAC,GAAG,EAAE,KAAK,CAAC,qDAAqD,EAAE,KAAK,CAAC,CAAC;gBAC9E,MAAM,KAAK,CAAC;YACd,CAAC;QACH,CAAC;QAED,MAAM,KAAK,GAAG,WAAW,CAAC,SAAS,CAAC;YAClC,OAAO,EAAE,OAAO;YAChB,IAAI,EAAE,IAAI;SACX,CAAC,CAAC;QAEH,MAAM,MAAM,GAAuB;YACjC,MAAM,EAAE,MAAM;YACd,OAAO,EAAE,wBAAwB;YACjC,GAAG,EAAE,GAAG,IAAI,CAAC,MAAM,CAAC,MAAM,GAAG,2BAA2B,IAAI,KAAK,EAAE;YACnE,OAAO,EAAE;gBACP,WAAW,EAAE,IAAI,CAAC,SAAS;gBAC3B,YAAY,EAAE,iBAAiB;gBAC/B,YAAY,EAAE,gBAAgB;aAC/B;SACF,CAAC;QAEF,IAAI,CAAC;YACH,MAAM,QAAQ,GAAG,MAAM,KAAK,CAAC,MAAM,CAAC,CAAC;YAErC,IAAI,QAAQ,CAAC,IAAI,EAAE,OAAO,IAAI,QAAQ,CAAC,IAAI,CAAC,OAAO,KAAK,KAAK,EAAE,CAAC;gBAC9D,MAAM,IAAI,KAAK,CAAC,+BAA+B,QAAQ,CAAC,IAAI,CAAC,OAAO,EAAE,CAAC,CAAC;YAC1E,CAAC;YAED,IAAI,QAAQ,CAAC,IAAI,EAAE,IAAI,EAAE,IAAI,IAAI,QAAQ,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,KAAK,GAAG,EAAE,CAAC;gBACjE,MAAM,IAAI,KAAK,CAAC,+BAA+B,QAAQ,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,MAAM,QAAQ,CAAC,IAAI,CAAC,IAAI,CAAC,OAAO,EAAE,CAAC,CAAC;YAC5G,CAAC;YAED,OAAO,QAAQ,CAAC,IAAI,CAAC;QACvB,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACf,IAAI,CAAC,GAAG,EAAE,KAAK,CAAC,6BAA6B,EAAE,KAAK,CAAC,CAAC;YACtD,MAAM,KAAK,CAAC;QACd,CAAC;IACH,CAAC;IAED;;;;OAIG;IACH,KAAK,CAAC,cAAc,CAAC,UAAkB,gBAAgB;QACrD,IAAI,CAAC,IAAI,CAAC,SAAS,EAAE,CAAC;YACpB,IAAI,CAAC;gBACH,MAAM,IAAI,CAAC,YAAY,EAAE,CAAC;YAC5B,CAAC;YAAC,OAAO,KAAK,EAAE,CAAC;gBACf,IAAI,CAAC,GAAG,EAAE,KAAK,CAAC,qDAAqD,EAAE,KAAK,CAAC,CAAC;gBAC9E,MAAM,KAAK,CAAC;YACd,CAAC;QACH,CAAC;QAED,MAAM,KAAK,GAAG,WAAW,CAAC,SAAS,CAAC;YAClC,OAAO,EAAE,OAAO;SACjB,CAAC,CAAC;QAUH,IAAI,CAAC;YACH,MAAM,QAAQ,GAAG,MAAM,WAAW,CAChC,IAAI,CAAC,MAAM,EACX,IAAI,CAAC,MAAM,CAAC,MAAM,EAClB,GAAG,+BAA+B,IAAI,KAAK,EAAE,EAC7C,KAAK,EACL,SAAS,EACT,CAAC,EACD,EAAE,SAAS,EAAE,mCAAmC,EAAE,cAAc,EAAE,CAAC,EAAE,CAC/C,CAAC;YAEzB,IAAI,QAAQ,EAAE,OAAO,IAAI,QAAQ,CAAC,OAAO,KAAK,KAAK,EAAE,CAAC;gBACpD,MAAM,IAAI,KAAK,CAAC,+BAA+B,QAAQ,CAAC,OAAO,EAAE,CAAC,CAAC;YACrE,CAAC;YAED,IAAI,QAAQ,EAAE,IAAI,EAAE,IAAI,IAAI,QAAQ,CAAC,IAAI,CAAC,IAAI,KAAK,GAAG,EAAE,CAAC;gBACvD,MAAM,IAAI,KAAK,CAAC,+BAA+B,QAAQ,CAAC,IAAI,CAAC,IAAI,MAAM,QAAQ,CAAC,IAAI,CAAC,OAAO,EAAE,CAAC,CAAC;YAClG,CAAC;YAED,qCAAqC;YACrC,+FAA+F;YAC/F,MAAM,IAAI,GAAG,QAAQ,EAAE,IAAI,IAAI,QAAQ,EAAE,WAAW,IAAI,QAAQ,EAAE,IAAI,EAAE,IAAI,CAAC;YAE7E,IAAI,IAAI,KAAK,SAAS,IAAI,IAAI,KAAK,IAAI,EAAE,CAAC;gBACxC,IAAI,CAAC,GAAG,EAAE,KAAK,CAAC,qDAAqD,CAAC,CAAC;gBACvE,OAAO,WAAW,CAAC,UAAU,CAAC;YAChC,CAAC;YAED,MAAM,SAAS,GAAG,OAAO,IAAI,KAAK,QAAQ,CAAC,CAAC,CAAC,QAAQ,CAAC,IAAI,EAAE,EAAE,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC;YAEvE,IAAI,CAAC,MAAM,CAAC,MAAM,CAAC,WAAW,CAAC,CAAC,QAAQ,CAAC,SAAwB,CAAC,EAAE,CAAC;gBACnE,IAAI,CAAC,GAAG,EAAE,KAAK,CAAC,+BAA+B,SAAS,4BAA4B,CAAC,CAAC;gBACtF,OAAO,WAAW,CAAC,UAAU,CAAC;YAChC,CAAC;YAED,OAAO,SAAwB,CAAC;QAClC,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACf,IAAI,CAAC,GAAG,EAAE,KAAK,CAAC,6BAA6B,EAAE,KAAK,CAAC,CAAC;YACtD,MAAM,KAAK,CAAC;QACd,CAAC;IACH,CAAC;CACF"}
1
+ {"version":3,"file":"ezviz-api.js","sourceRoot":"","sources":["../../src/api/ezviz-api.ts"],"names":[],"mappings":"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"}
@@ -24,8 +24,11 @@ export declare function withNetworkRetry<T>(fn: () => Promise<T>, retries: numbe
24
24
  * networkRetries (default 0) retries transient network
25
25
  * errors with backoff before giving up. Leave both unset
26
26
  * for requests on a HomeKit-blocking read path.
27
+ * onUnauthorized is called on a 401 to rotate the session
28
+ * (resolving false if it couldn't) before retrying.
27
29
  */
28
30
  export declare function sendRequest<T>(config: EZVIZConfig, hostname: string, endpoint: string, method: Method, data?: string, retries?: number, options?: {
29
31
  timeoutMs?: number;
30
32
  networkRetries?: number;
33
+ onUnauthorized?: () => Promise<boolean>;
31
34
  }): Promise<T>;
@@ -1,6 +1,5 @@
1
1
  import axios from 'axios';
2
- import querystring from 'querystring';
3
- import { EZVIZ_CLIENT_TYPE, EZVIZ_USER_AGENT, API_ENDPOINT_REFRESH, EZVIZ_REQUEST_TIMEOUT_MS } from './ezviz-constants.js';
2
+ import { EZVIZ_CLIENT_TYPE, EZVIZ_USER_AGENT, EZVIZ_REQUEST_TIMEOUT_MS } from './ezviz-constants.js';
4
3
  /**
5
4
  * True for errors worth retrying: no response was received (timeout, DNS, connection
6
5
  * reset, etc.) or the server reported a transient 5xx. A response with a 4xx status is
@@ -46,9 +45,11 @@ export async function withNetworkRetry(fn, retries) {
46
45
  * networkRetries (default 0) retries transient network
47
46
  * errors with backoff before giving up. Leave both unset
48
47
  * for requests on a HomeKit-blocking read path.
48
+ * onUnauthorized is called on a 401 to rotate the session
49
+ * (resolving false if it couldn't) before retrying.
49
50
  */
50
51
  export async function sendRequest(config, hostname, endpoint, method, data, retries = 3, options = {}) {
51
- const { timeoutMs = EZVIZ_REQUEST_TIMEOUT_MS, networkRetries = 0 } = options;
52
+ const { timeoutMs = EZVIZ_REQUEST_TIMEOUT_MS, networkRetries = 0, onUnauthorized } = options;
52
53
  const credentials = config.credentials;
53
54
  const headers = {
54
55
  'User-Agent': EZVIZ_USER_AGENT,
@@ -71,25 +72,10 @@ export async function sendRequest(config, hostname, endpoint, method, data, retr
71
72
  }
72
73
  catch (error) {
73
74
  const axiosError = error;
74
- if (retries > 0 && axiosError.response?.status === 401) {
75
- const query = querystring.stringify({
76
- cuName: credentials.cuName,
77
- featureCode: credentials.featureCode,
78
- refreshSessionId: credentials.rfSessionId,
79
- });
80
- const refreshSession = (await sendRequest(config, config.domain, API_ENDPOINT_REFRESH, 'PUT', query));
81
- const creds = {
82
- sessionId: refreshSession.sessionInfo.sessionId,
83
- rfSessionId: refreshSession.sessionInfo.refreshSessionId,
84
- featureCode: credentials.featureCode,
85
- cuName: credentials.cuName,
86
- };
87
- config.credentials = creds;
88
- return await sendRequest(config, hostname, endpoint, method, data, retries - 1, options);
89
- }
90
- else {
91
- throw error;
75
+ if (retries > 0 && onUnauthorized && axiosError.response?.status === 401 && await onUnauthorized()) {
76
+ return sendRequest(config, hostname, endpoint, method, data, retries - 1, options);
92
77
  }
78
+ throw error;
93
79
  }
94
80
  }
95
81
  //# sourceMappingURL=ezviz-requests.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"ezviz-requests.js","sourceRoot":"","sources":["../../src/api/ezviz-requests.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"ezviz-requests.js","sourceRoot":"","sources":["../../src/api/ezviz-requests.ts"],"names":[],"mappings":"AAAA,OAAO,KAAiD,MAAM,OAAO,CAAC;AAGtE,OAAO,EAAE,iBAAiB,EAAE,gBAAgB,EAAE,wBAAwB,EAAE,MAAM,sBAAsB,CAAC;AAErG;;;;GAIG;AACH,MAAM,UAAU,gBAAgB,CAAC,KAAc;IAC7C,MAAM,UAAU,GAAG,KAAmB,CAAC;IACvC,IAAI,UAAU,CAAC,QAAQ,EAAE,CAAC;QACxB,OAAO,UAAU,CAAC,QAAQ,CAAC,MAAM,IAAI,GAAG,CAAC;IAC3C,CAAC;IACD,OAAO,OAAO,CAAC,UAAU,CAAC,YAAY,CAAC,CAAC;AAC1C,CAAC;AAED;;;;GAIG;AACH,MAAM,CAAC,KAAK,UAAU,gBAAgB,CAAI,EAAoB,EAAE,OAAe;IAC7E,IAAI,OAAO,GAAG,CAAC,CAAC;IAChB,SAAS,CAAC;QACR,IAAI,CAAC;YACH,OAAO,MAAM,EAAE,EAAE,CAAC;QACpB,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACf,IAAI,OAAO,IAAI,OAAO,IAAI,CAAC,gBAAgB,CAAC,KAAK,CAAC,EAAE,CAAC;gBACnD,MAAM,KAAK,CAAC;YACd,CAAC;YACD,MAAM,OAAO,GAAG,GAAG,GAAG,CAAC,IAAI,OAAO,GAAG,IAAI,CAAC,MAAM,EAAE,GAAG,GAAG,CAAC;YACzD,MAAM,IAAI,OAAO,CAAC,CAAC,OAAO,EAAE,EAAE,CAAC,UAAU,CAAC,OAAO,EAAE,OAAO,CAAC,CAAC,CAAC;YAC7D,OAAO,EAAE,CAAC;QACZ,CAAC;IACH,CAAC;AACH,CAAC;AAED;;;;;;;;;;;;;;GAcG;AACH,MAAM,CAAC,KAAK,UAAU,WAAW,CAC/B,MAAmB,EACnB,QAAgB,EAChB,QAAgB,EAChB,MAAc,EACd,IAAa,EACb,OAAO,GAAG,CAAC,EACX,UAAoG,EAAE;IAEtG,MAAM,EAAE,SAAS,GAAG,wBAAwB,EAAE,cAAc,GAAG,CAAC,EAAE,cAAc,EAAE,GAAG,OAAO,CAAC;IAC7F,MAAM,WAAW,GAAG,MAAM,CAAC,WAAW,CAAC;IAEvC,MAAM,OAAO,GAAmB;QAC9B,YAAY,EAAE,gBAAgB;QAC9B,YAAY,EAAE,iBAAiB;QAC/B,cAAc,EAAE,MAAM,KAAK,MAAM,IAAI,MAAM,KAAK,KAAK,CAAC,CAAC,CAAC,mCAAmC,CAAC,CAAC,CAAC,SAAS;QACvG,WAAW,EAAE,WAAW,CAAC,SAAS;KACnC,CAAC;IAEF,MAAM,GAAG,GAAG,QAAQ,GAAG,QAAQ,CAAC;IAChC,MAAM,GAAG,GAAuB;QAC9B,MAAM;QACN,GAAG;QACH,IAAI;QACJ,OAAO;QACP,YAAY,EAAE,MAAM;QACpB,OAAO,EAAE,SAAS;KACnB,CAAC;IAEF,IAAI,CAAC;QACH,MAAM,QAAQ,GAAG,MAAM,gBAAgB,CAAC,GAAG,EAAE,CAAC,KAAK,CAAC,GAAG,CAAC,EAAE,cAAc,CAAC,CAAC;QAC1E,OAAO,QAAQ,CAAC,IAAI,CAAC;IACvB,CAAC;IAAC,OAAO,KAAK,EAAE,CAAC;QACf,MAAM,UAAU,GAAG,KAAmB,CAAC;QACvC,IAAI,OAAO,GAAG,CAAC,IAAI,cAAc,IAAI,UAAU,CAAC,QAAQ,EAAE,MAAM,KAAK,GAAG,IAAI,MAAM,cAAc,EAAE,EAAE,CAAC;YACnG,OAAO,WAAW,CAAC,MAAM,EAAE,QAAQ,EAAE,QAAQ,EAAE,MAAM,EAAE,IAAI,EAAE,OAAO,GAAG,CAAC,EAAE,OAAO,CAAC,CAAC;QACrF,CAAC;QACD,MAAM,KAAK,CAAC;IACd,CAAC;AACH,CAAC"}
@@ -18,6 +18,7 @@ export declare class EZVIZPlatform implements DynamicPlatformPlugin {
18
18
  readonly discoveredCacheUUIDs: string[];
19
19
  private readonly motionSensors;
20
20
  private mqttClient;
21
+ private mqttLifecycle;
21
22
  private ezvizAPI;
22
23
  private readonly alarmSnapshots;
23
24
  constructor(log: Logging, config: EZVIZConfig, api: API);
package/dist/platform.js CHANGED
@@ -21,6 +21,7 @@ export class EZVIZPlatform {
21
21
  discoveredCacheUUIDs = [];
22
22
  motionSensors = new Map();
23
23
  mqttClient = null;
24
+ mqttLifecycle = Promise.resolve();
24
25
  ezvizAPI = null;
25
26
  // Latest alarm snapshot URL per device serial, used as a fast path for HomeKit
26
27
  // snapshot requests shortly after a motion event instead of a live RTSP grab.
@@ -44,22 +45,24 @@ export class EZVIZPlatform {
44
45
  this.ezvizAPI = ezvizAPI;
45
46
  const credentials = await this.authenticateWithRetry(ezvizAPI);
46
47
  if (credentials) {
47
- // Refresh session every 12 hours (uses refresh token, falls back to full re-auth).
48
48
  // The MQTT push subscription is registered against the current sessionId, so it
49
- // must be re-established with the new one or it silently stops receiving pushes
50
- // while the socket itself stays connected.
49
+ // must be re-established after every rotation — the 12h refresh below or a 401
50
+ // mid-request — or it silently stops receiving pushes while the socket stays up.
51
+ ezvizAPI.onSessionRefreshed = () => {
52
+ void this.restartMqtt(ezvizAPI);
53
+ };
54
+ // Refresh session every 12 hours (uses refresh token, falls back to full re-auth).
51
55
  setInterval(async () => {
52
56
  this.log.debug('Refreshing EZVIZ session');
53
57
  try {
54
58
  await ezvizAPI.refreshSession();
55
- await this.restartMqtt(ezvizAPI);
56
59
  }
57
60
  catch (error) {
58
61
  this.log.error('Session refresh failed:', error);
59
62
  }
60
63
  }, 3600000 * 12);
61
64
  await this.discoverDevices(ezvizAPI);
62
- await this.startMqtt(ezvizAPI);
65
+ await this.restartMqtt(ezvizAPI);
63
66
  }
64
67
  else {
65
68
  this.log.error('Could not authenticate with EZVIZ API. Please check your credentials.');
@@ -293,12 +296,16 @@ export class EZVIZPlatform {
293
296
  * since the push subscription is registered against the sessionId active at connect
294
297
  * time — see startMqtt.
295
298
  */
296
- async restartMqtt(ezvizAPI) {
297
- if (this.mqttClient) {
298
- this.mqttClient.stop();
299
- this.mqttClient = null;
300
- }
301
- await this.startMqtt(ezvizAPI);
299
+ restartMqtt(ezvizAPI) {
300
+ // Serialized so overlapping restarts can't each create a client and leak one.
301
+ this.mqttLifecycle = this.mqttLifecycle.then(async () => {
302
+ if (this.mqttClient) {
303
+ this.mqttClient.stop();
304
+ this.mqttClient = null;
305
+ }
306
+ await this.startMqtt(ezvizAPI);
307
+ });
308
+ return this.mqttLifecycle;
302
309
  }
303
310
  async startMqtt(ezvizAPI) {
304
311
  if (this.motionSensors.size === 0) {
@@ -1 +1 @@
1
- {"version":3,"file":"platform.js","sourceRoot":"","sources":["../src/platform.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"platform.js","sourceRoot":"","sources":["../src/platform.ts"],"names":[],"mappings":"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"}
@@ -9,10 +9,10 @@ export interface DeviceData {
9
9
  Serial: string;
10
10
  Name: string;
11
11
  Type: string;
12
- Connection: ConnectionInfo;
12
+ Connection?: ConnectionInfo;
13
13
  Wifi?: WifiInfo;
14
14
  Status: DeviceStatus;
15
- Switches: SwitchItem[];
15
+ Switches?: SwitchItem[];
16
16
  P2P: P2PItem[];
17
17
  ResourceInfo: ResourceInfo;
18
18
  DeviceInfo: DeviceInfo;