@switchbot/homebridge-switchbot 2.0.0-beta.18 → 2.0.0-beta.19

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 (106) hide show
  1. package/CHANGELOG.md +1 -1
  2. package/config.schema.json +11 -2
  3. package/dist/device/bot.d.ts +2 -0
  4. package/dist/device/bot.d.ts.map +1 -1
  5. package/dist/device/bot.js +201 -163
  6. package/dist/device/bot.js.map +1 -1
  7. package/dist/device/colorbulb.d.ts +2 -0
  8. package/dist/device/colorbulb.d.ts.map +1 -1
  9. package/dist/device/colorbulb.js +250 -218
  10. package/dist/device/colorbulb.js.map +1 -1
  11. package/dist/device/contact.d.ts +2 -0
  12. package/dist/device/contact.d.ts.map +1 -1
  13. package/dist/device/contact.js +85 -66
  14. package/dist/device/contact.js.map +1 -1
  15. package/dist/device/curtain.d.ts +2 -0
  16. package/dist/device/curtain.d.ts.map +1 -1
  17. package/dist/device/curtain.js +166 -136
  18. package/dist/device/curtain.js.map +1 -1
  19. package/dist/device/humidifier.d.ts.map +1 -1
  20. package/dist/device/humidifier.js +126 -115
  21. package/dist/device/humidifier.js.map +1 -1
  22. package/dist/device/lock.d.ts +2 -0
  23. package/dist/device/lock.d.ts.map +1 -1
  24. package/dist/device/lock.js +156 -130
  25. package/dist/device/lock.js.map +1 -1
  26. package/dist/device/meter.d.ts +2 -0
  27. package/dist/device/meter.d.ts.map +1 -1
  28. package/dist/device/meter.js +85 -64
  29. package/dist/device/meter.js.map +1 -1
  30. package/dist/device/meterplus.d.ts +2 -0
  31. package/dist/device/meterplus.d.ts.map +1 -1
  32. package/dist/device/meterplus.js +78 -59
  33. package/dist/device/meterplus.js.map +1 -1
  34. package/dist/device/motion.d.ts +2 -0
  35. package/dist/device/motion.d.ts.map +1 -1
  36. package/dist/device/motion.js +76 -57
  37. package/dist/device/motion.js.map +1 -1
  38. package/dist/device/plug.d.ts +2 -0
  39. package/dist/device/plug.d.ts.map +1 -1
  40. package/dist/device/plug.js +133 -107
  41. package/dist/device/plug.js.map +1 -1
  42. package/dist/device/striplight.d.ts +2 -0
  43. package/dist/device/striplight.d.ts.map +1 -1
  44. package/dist/device/striplight.js +224 -195
  45. package/dist/device/striplight.js.map +1 -1
  46. package/dist/irdevice/airconditioner.d.ts +2 -0
  47. package/dist/irdevice/airconditioner.d.ts.map +1 -1
  48. package/dist/irdevice/airconditioner.js +127 -105
  49. package/dist/irdevice/airconditioner.js.map +1 -1
  50. package/dist/irdevice/airpurifier.d.ts +2 -0
  51. package/dist/irdevice/airpurifier.d.ts.map +1 -1
  52. package/dist/irdevice/airpurifier.js +83 -66
  53. package/dist/irdevice/airpurifier.js.map +1 -1
  54. package/dist/irdevice/camera.d.ts +8 -6
  55. package/dist/irdevice/camera.d.ts.map +1 -1
  56. package/dist/irdevice/camera.js +83 -68
  57. package/dist/irdevice/camera.js.map +1 -1
  58. package/dist/irdevice/fan.d.ts +7 -5
  59. package/dist/irdevice/fan.d.ts.map +1 -1
  60. package/dist/irdevice/fan.js +90 -75
  61. package/dist/irdevice/fan.js.map +1 -1
  62. package/dist/irdevice/light.d.ts +8 -6
  63. package/dist/irdevice/light.d.ts.map +1 -1
  64. package/dist/irdevice/light.js +83 -68
  65. package/dist/irdevice/light.js.map +1 -1
  66. package/dist/irdevice/other.d.ts +8 -6
  67. package/dist/irdevice/other.d.ts.map +1 -1
  68. package/dist/irdevice/other.js +93 -78
  69. package/dist/irdevice/other.js.map +1 -1
  70. package/dist/irdevice/tv.d.ts +8 -6
  71. package/dist/irdevice/tv.d.ts.map +1 -1
  72. package/dist/irdevice/tv.js +68 -52
  73. package/dist/irdevice/tv.js.map +1 -1
  74. package/dist/irdevice/vacuumcleaner.d.ts +8 -6
  75. package/dist/irdevice/vacuumcleaner.d.ts.map +1 -1
  76. package/dist/irdevice/vacuumcleaner.js +83 -69
  77. package/dist/irdevice/vacuumcleaner.js.map +1 -1
  78. package/dist/irdevice/waterheater.d.ts +2 -0
  79. package/dist/irdevice/waterheater.d.ts.map +1 -1
  80. package/dist/irdevice/waterheater.js +75 -60
  81. package/dist/irdevice/waterheater.js.map +1 -1
  82. package/dist/settings.d.ts +12 -11
  83. package/dist/settings.d.ts.map +1 -1
  84. package/dist/settings.js.map +1 -1
  85. package/package.json +1 -1
  86. package/src/device/bot.ts +200 -163
  87. package/src/device/colorbulb.ts +252 -221
  88. package/src/device/contact.ts +85 -66
  89. package/src/device/curtain.ts +165 -136
  90. package/src/device/humidifier.ts +126 -115
  91. package/src/device/lock.ts +156 -131
  92. package/src/device/meter.ts +85 -64
  93. package/src/device/meterplus.ts +78 -59
  94. package/src/device/motion.ts +76 -57
  95. package/src/device/plug.ts +132 -107
  96. package/src/device/striplight.ts +226 -198
  97. package/src/irdevice/airconditioner.ts +126 -103
  98. package/src/irdevice/airpurifier.ts +84 -66
  99. package/src/irdevice/camera.ts +84 -68
  100. package/src/irdevice/fan.ts +91 -75
  101. package/src/irdevice/light.ts +84 -68
  102. package/src/irdevice/other.ts +94 -78
  103. package/src/irdevice/tv.ts +69 -53
  104. package/src/irdevice/vacuumcleaner.ts +83 -68
  105. package/src/irdevice/waterheater.ts +76 -60
  106. package/src/settings.ts +12 -11
@@ -58,7 +58,7 @@ class AirPurifier {
58
58
  this.airPurifierService.getCharacteristic(this.platform.Characteristic.TargetAirPurifierState).onSet(this.TargetAirPurifierStateSet.bind(this));
59
59
  }
60
60
  async ActiveSet(value) {
61
- this.debugLog(`Air Purifier: ${this.accessory.displayName} Set Active: ${value}`);
61
+ this.debugLog(`${this.device.remoteType}: ${this.accessory.displayName} Set Active: ${value}`);
62
62
  if (value === this.platform.Characteristic.Active.INACTIVE) {
63
63
  this.pushAirPurifierOffChanges();
64
64
  }
@@ -71,25 +71,27 @@ class AirPurifier {
71
71
  }
72
72
  async updateHomeKitCharacteristics() {
73
73
  if (this.Active === undefined) {
74
- this.debugLog(`Air Purifier: ${this.accessory.displayName} Active: ${this.Active}`);
74
+ this.debugLog(`${this.device.remoteType}: ${this.accessory.displayName} Active: ${this.Active}`);
75
75
  }
76
76
  else {
77
77
  this.airPurifierService?.updateCharacteristic(this.platform.Characteristic.Active, this.Active);
78
- this.debugLog(`Air Purifier: ${this.accessory.displayName} updateCharacteristic Active: ${this.Active}`);
78
+ this.debugLog(`${this.device.remoteType}: ${this.accessory.displayName} updateCharacteristic Active: ${this.Active}`);
79
79
  }
80
80
  if (this.CurrentAirPurifierState === undefined) {
81
- this.debugLog(`Air Purifier: ${this.accessory.displayName} CurrentAirPurifierState: ${this.CurrentAirPurifierState}`);
81
+ this.debugLog(`${this.device.remoteType}: ${this.accessory.displayName} CurrentAirPurifierState: ${this.CurrentAirPurifierState}`);
82
82
  }
83
83
  else {
84
84
  this.airPurifierService?.updateCharacteristic(this.platform.Characteristic.CurrentAirPurifierState, this.CurrentAirPurifierState);
85
- this.debugLog(`Air Purifier: ${this.accessory.displayName}` + ` updateCharacteristic CurrentAirPurifierState: ${this.CurrentAirPurifierState}`);
85
+ this.debugLog(`${this.device.remoteType}: ${this.accessory.displayName}`
86
+ + ` updateCharacteristic CurrentAirPurifierState: ${this.CurrentAirPurifierState}`);
86
87
  }
87
88
  if (this.CurrentHeaterCoolerState === undefined) {
88
- this.debugLog(`Air Purifier: ${this.accessory.displayName} CurrentHeaterCoolerState: ${this.CurrentHeaterCoolerState}`);
89
+ this.debugLog(`${this.device.remoteType}: ${this.accessory.displayName} CurrentHeaterCoolerState: ${this.CurrentHeaterCoolerState}`);
89
90
  }
90
91
  else {
91
92
  this.airPurifierService?.updateCharacteristic(this.platform.Characteristic.CurrentHeaterCoolerState, this.CurrentHeaterCoolerState);
92
- this.debugLog(`Air Purifier: ${this.accessory.displayName}` + ` updateCharacteristic CurrentHeaterCoolerState: ${this.CurrentHeaterCoolerState}`);
93
+ this.debugLog(`${this.device.remoteType}: ${this.accessory.displayName}`
94
+ + ` updateCharacteristic CurrentHeaterCoolerState: ${this.CurrentHeaterCoolerState}`);
93
95
  }
94
96
  }
95
97
  async TargetAirPurifierStateSet(value) {
@@ -181,82 +183,85 @@ class AirPurifier {
181
183
  await this.pushChanges(body);
182
184
  }
183
185
  async pushChanges(body) {
184
- try {
185
- // Make Push On request to the API
186
- const t = Date.now();
187
- const nonce = 'requestID';
188
- const data = this.platform.config.credentials?.token + t + nonce;
189
- const signTerm = crypto_1.default.createHmac('sha256', this.platform.config.credentials?.secret)
190
- .update(Buffer.from(data, 'utf-8'))
191
- .digest();
192
- const sign = signTerm.toString('base64');
193
- this.debugLog(`Air Purifier: ${this.accessory.displayName} sign: ${sign}`);
194
- this.infoLog(`Air Purifier: ${this.accessory.displayName} Sending request to SwitchBot API. body: ${body},`);
195
- const options = {
196
- hostname: settings_1.HostDomain,
197
- port: 443,
198
- path: `${settings_1.DevicePath}/${this.device.deviceId}/commands`,
199
- method: 'POST',
200
- headers: {
201
- 'Authorization': this.platform.config.credentials?.token,
202
- 'sign': sign,
203
- 'nonce': nonce,
204
- 't': t,
205
- 'Content-Type': 'application/json',
206
- 'Content-Length': body.length,
207
- },
208
- };
209
- const req = https_1.default.request(options, res => {
210
- this.debugLog(`Air Purifier: ${this.accessory.displayName} statusCode: ${res.statusCode}`);
211
- this.statusCode({ res });
212
- res.on('data', d => {
213
- this.debugLog(`Air Purifier: ${this.accessory.displayName} d: ${d}`);
186
+ if (this.OpenAPI) {
187
+ try {
188
+ // Make Push On request to the API
189
+ const t = Date.now();
190
+ const nonce = 'requestID';
191
+ const data = this.platform.config.credentials?.token + t + nonce;
192
+ const signTerm = crypto_1.default.createHmac('sha256', this.platform.config.credentials?.secret)
193
+ .update(Buffer.from(data, 'utf-8'))
194
+ .digest();
195
+ const sign = signTerm.toString('base64');
196
+ this.debugLog(`${this.device.remoteType}: ${this.accessory.displayName} sign: ${sign}`);
197
+ this.infoLog(`${this.device.remoteType}: ${this.accessory.displayName} Sending request to SwitchBot API. body: ${body},`);
198
+ const options = {
199
+ hostname: settings_1.HostDomain,
200
+ port: 443,
201
+ path: `${settings_1.DevicePath}/${this.device.deviceId}/commands`,
202
+ method: 'POST',
203
+ headers: {
204
+ 'Authorization': this.platform.config.credentials?.token,
205
+ 'sign': sign,
206
+ 'nonce': nonce,
207
+ 't': t,
208
+ 'Content-Type': 'application/json',
209
+ 'Content-Length': body.length,
210
+ },
211
+ };
212
+ const req = https_1.default.request(options, res => {
213
+ this.debugLog(`${this.device.remoteType}: ${this.accessory.displayName} statusCode: ${res.statusCode}`);
214
+ this.statusCode({ res });
215
+ res.on('data', d => {
216
+ this.debugLog(`${this.device.remoteType}: ${this.accessory.displayName} d: ${d}`);
217
+ });
214
218
  });
215
- });
216
- req.on('error', (e) => {
217
- this.errorLog(`Air Purifier: ${this.accessory.displayName} error message: ${e.message}`);
218
- });
219
- req.write(body);
220
- req.end();
221
- this.debugLog(`Air Purifier: ${this.accessory.displayName} pushchanges: ${(0, super_stringify_1.default)(req)}`);
222
- this.updateHomeKitCharacteristics();
223
- this.CurrentTemperatureCached = this.CurrentTemperature;
224
- this.accessory.context.CurrentTemperature = this.CurrentTemperatureCached;
225
- }
226
- catch (e) {
227
- this.errorLog(`Air Purifier: ${this.accessory.displayName} failed pushChanges with OpenAPI Connection`);
228
- if (this.deviceLogging.includes('debug')) {
229
- this.errorLog(`Air Purifier: ${this.accessory.displayName} failed pushChanges with OpenAPI Connection,` + ` Error Message: ${(0, super_stringify_1.default)(e.message)}`);
219
+ req.on('error', (e) => {
220
+ this.errorLog(`${this.device.remoteType}: ${this.accessory.displayName} error message: ${e.message}`);
221
+ });
222
+ req.write(body);
223
+ req.end();
224
+ this.debugLog(`${this.device.remoteType}: ${this.accessory.displayName} pushchanges: ${(0, super_stringify_1.default)(req)}`);
225
+ this.updateHomeKitCharacteristics();
226
+ this.CurrentTemperatureCached = this.CurrentTemperature;
227
+ this.accessory.context.CurrentTemperature = this.CurrentTemperatureCached;
228
+ }
229
+ catch (e) {
230
+ this.errorLog(`${this.device.remoteType}: ${this.accessory.displayName} failed pushChanges with OpenAPI Connection`);
231
+ if (this.deviceLogging.includes('debug')) {
232
+ this.errorLog(`${this.device.remoteType}: ${this.accessory.displayName} failed pushChanges with OpenAPI Connection,`
233
+ + ` Error Message: ${(0, super_stringify_1.default)(e.message)}`);
234
+ }
235
+ this.apiError(e);
230
236
  }
231
- this.apiError(e);
232
237
  }
233
238
  }
234
239
  async statusCode({ res }) {
235
240
  switch (res.statusCode) {
236
241
  case 151:
237
- this.errorLog(`Air Purifier: ${this.accessory.displayName} Command not supported by this device type.`);
242
+ this.errorLog(`${this.device.remoteType}: ${this.accessory.displayName} Command not supported by this device type.`);
238
243
  break;
239
244
  case 152:
240
- this.errorLog(`Air Purifier: ${this.accessory.displayName} Device not found.`);
245
+ this.errorLog(`${this.device.remoteType}: ${this.accessory.displayName} Device not found.`);
241
246
  break;
242
247
  case 160:
243
- this.errorLog(`Air Purifier: ${this.accessory.displayName} Command is not supported.`);
248
+ this.errorLog(`${this.device.remoteType}: ${this.accessory.displayName} Command is not supported.`);
244
249
  break;
245
250
  case 161:
246
- this.errorLog(`Air Purifier: ${this.accessory.displayName} Device is offline.`);
251
+ this.errorLog(`${this.device.remoteType}: ${this.accessory.displayName} Device is offline.`);
247
252
  break;
248
253
  case 171:
249
- this.errorLog(`Air Purifier: ${this.accessory.displayName} Hub Device is offline. Hub: ${this.device.hubDeviceId}`);
254
+ this.errorLog(`${this.device.remoteType}: ${this.accessory.displayName} Hub Device is offline. Hub: ${this.device.hubDeviceId}`);
250
255
  break;
251
256
  case 190:
252
- this.errorLog(`Air Purifier: ${this.accessory.displayName} Device internal error due to device states not synchronized` +
257
+ this.errorLog(`${this.device.remoteType}: ${this.accessory.displayName} Device internal error due to device states not synchronized` +
253
258
  ` with server, Or command: ${(0, super_stringify_1.default)(res)} format is invalid`);
254
259
  break;
255
260
  case 100:
256
- this.debugLog(`Air Purifier: ${this.accessory.displayName} Command successfully sent.`);
261
+ this.debugLog(`${this.device.remoteType}: ${this.accessory.displayName} Command successfully sent.`);
257
262
  break;
258
263
  default:
259
- this.debugLog(`Air Purifier: ${this.accessory.displayName} Unknown statusCode.`);
264
+ this.debugLog(`${this.device.remoteType}: ${this.accessory.displayName} Unknown statusCode.`);
260
265
  }
261
266
  }
262
267
  async apiError(e) {
@@ -266,6 +271,15 @@ class AirPurifier {
266
271
  this.airPurifierService.updateCharacteristic(this.platform.Characteristic.Active, e);
267
272
  //throw new this.platform.api.hap.HapStatusError(HAPStatus.SERVICE_COMMUNICATION_FAILURE);
268
273
  }
274
+ async openAPI() {
275
+ if (!this.device.openAPI) {
276
+ this.OpenAPI = true;
277
+ }
278
+ else {
279
+ this.OpenAPI = this.device.openAPI;
280
+ }
281
+ this.debugLog(`${this.device.remoteType}: ${this.accessory.displayName} Using OpenAPI: ${this.OpenAPI}`);
282
+ }
269
283
  async config(device) {
270
284
  let config = {};
271
285
  if (device.irpur) {
@@ -274,26 +288,29 @@ class AirPurifier {
274
288
  if (device.logging !== undefined) {
275
289
  config['logging'] = device.logging;
276
290
  }
291
+ if (device.openAPI !== undefined) {
292
+ config['openAPI'] = device.openAPI;
293
+ }
277
294
  if (Object.entries(config).length !== 0) {
278
- this.infoLog(`Air Purifier: ${this.accessory.displayName} Config: ${(0, super_stringify_1.default)(config)}`);
295
+ this.infoLog(`${this.device.remoteType}: ${this.accessory.displayName} Config: ${(0, super_stringify_1.default)(config)}`);
279
296
  }
280
297
  }
281
298
  async logs(device) {
282
299
  if (this.platform.debugMode) {
283
300
  this.deviceLogging = this.accessory.context.logging = 'debugMode';
284
- this.debugLog(`Air Purifier: ${this.accessory.displayName} Using Debug Mode Logging: ${this.deviceLogging}`);
301
+ this.debugLog(`${this.device.remoteType}: ${this.accessory.displayName} Using Debug Mode Logging: ${this.deviceLogging}`);
285
302
  }
286
303
  else if (device.logging) {
287
304
  this.deviceLogging = this.accessory.context.logging = device.logging;
288
- this.debugLog(`Air Purifier: ${this.accessory.displayName} Using Device Config Logging: ${this.deviceLogging}`);
305
+ this.debugLog(`${this.device.remoteType}: ${this.accessory.displayName} Using Device Config Logging: ${this.deviceLogging}`);
289
306
  }
290
307
  else if (this.platform.config.options?.logging) {
291
308
  this.deviceLogging = this.accessory.context.logging = this.platform.config.options?.logging;
292
- this.debugLog(`Air Purifier: ${this.accessory.displayName} Using Platform Config Logging: ${this.deviceLogging}`);
309
+ this.debugLog(`${this.device.remoteType}: ${this.accessory.displayName} Using Platform Config Logging: ${this.deviceLogging}`);
293
310
  }
294
311
  else {
295
312
  this.deviceLogging = this.accessory.context.logging = 'standard';
296
- this.debugLog(`Air Purifier: ${this.accessory.displayName} Logging Not Set, Using: ${this.deviceLogging}`);
313
+ this.debugLog(`${this.device.remoteType}: ${this.accessory.displayName} Logging Not Set, Using: ${this.deviceLogging}`);
297
314
  }
298
315
  }
299
316
  /**
@@ -1 +1 @@
1
- {"version":3,"file":"airpurifier.js","sourceRoot":"","sources":["../../src/irdevice/airpurifier.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"airpurifier.js","sourceRoot":"","sources":["../../src/irdevice/airpurifier.ts"],"names":[],"mappings":";;;;;;AAAA,kDAA0B;AAC1B,oDAA4B;AAE5B,sEAA6C;AAE7C,0CAAgF;AAGhF;;;;GAIG;AACH,MAAa,WAAW;IA+BtB,YAA6B,QAA2B,EAAU,SAA4B,EAAS,MAAkC;QAA5G,aAAQ,GAAR,QAAQ,CAAmB;QAAU,cAAS,GAAT,SAAS,CAAmB;QAAS,WAAM,GAAN,MAAM,CAA4B;QAZzI,YAAO,GAAQ,IAAI,CAAC;QAalB,uBAAuB;QACvB,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;QAClB,IAAI,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC;QACpB,IAAI,IAAI,CAAC,MAAM,KAAK,SAAS,EAAE;YAC7B,IAAI,CAAC,MAAM,GAAG,IAAI,CAAC,QAAQ,CAAC,cAAc,CAAC,MAAM,CAAC,QAAQ,CAAC;SAC5D;aAAM;YACL,IAAI,CAAC,MAAM,GAAG,IAAI,CAAC,SAAS,CAAC,OAAO,CAAC,MAAM,CAAC;SAC7C;QACD,IAAI,IAAI,CAAC,kBAAkB,KAAK,SAAS,EAAE;YACzC,IAAI,CAAC,kBAAkB,GAAG,EAAE,CAAC;SAC9B;aAAM;YACL,IAAI,CAAC,kBAAkB,GAAG,IAAI,CAAC,SAAS,CAAC,OAAO,CAAC,kBAAkB,CAAC;SACrE;QAED,4BAA4B;QAC5B,SAAS;aACN,UAAU,CAAC,IAAI,CAAC,QAAQ,CAAC,OAAO,CAAC,oBAAoB,CAAE;aACvD,iBAAiB,CAAC,IAAI,CAAC,QAAQ,CAAC,cAAc,CAAC,YAAY,EAAE,WAAW,CAAC;aACzE,iBAAiB,CAAC,IAAI,CAAC,QAAQ,CAAC,cAAc,CAAC,KAAK,EAAE,MAAM,CAAC,UAAU,CAAC;aACxE,iBAAiB,CAAC,IAAI,CAAC,QAAQ,CAAC,cAAc,CAAC,YAAY,EAAE,MAAM,CAAC,QAAS,CAAC,CAAC;QAElF,qFAAqF;QACrF,sDAAsD;QACtD,CAAC,IAAI,CAAC,kBAAkB,GAAG,SAAS,CAAC,UAAU,CAAC,IAAI,CAAC,QAAQ,CAAC,OAAO,CAAC,WAAW,CAAC,IAAI,SAAS,CAAC,UAAU,CAAC,IAAI,CAAC,QAAQ,CAAC,OAAO,CAAC,WAAW,CAAC,CAAC;YAC9I,GAAG,SAAS,CAAC,WAAW,eAAe,CAAC;QAExC,+HAA+H;QAC/H,2HAA2H;QAC3H,sHAAsH;QAEtH,sFAAsF;QACtF,8GAA8G;QAC9G,IAAI,CAAC,kBAAkB,CAAC,iBAAiB,CAAC,IAAI,CAAC,QAAQ,CAAC,cAAc,CAAC,IAAI,EAAE,SAAS,CAAC,WAAW,CAAC,CAAC;QAEpG,yDAAyD;QACzD,IAAI,CAAC,kBAAkB,CAAC,iBAAiB,CAAC,IAAI,CAAC,QAAQ,CAAC,cAAc,CAAC,MAAM,CAAC,CAAC,KAAK,CAAC,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC;QAEhH,IAAI,CAAC,kBAAkB,CAAC,iBAAiB,CAAC,IAAI,CAAC,QAAQ,CAAC,cAAc,CAAC,uBAAuB,CAAC,CAAC,KAAK,CAAC,GAAG,EAAE;YACzG,OAAO,IAAI,CAAC,0BAA0B,EAAE,CAAC;QAC3C,CAAC,CAAC,CAAC;QAEH,IAAI,CAAC,kBAAkB,CAAC,iBAAiB,CAAC,IAAI,CAAC,QAAQ,CAAC,cAAc,CAAC,sBAAsB,CAAC,CAAC,KAAK,CAAC,IAAI,CAAC,yBAAyB,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC;IAClJ,CAAC;IAED,KAAK,CAAC,SAAS,CAAC,KAA0B;QACxC,IAAI,CAAC,QAAQ,CAAC,GAAG,IAAI,CAAC,MAAM,CAAC,UAAU,KAAK,IAAI,CAAC,SAAS,CAAC,WAAW,gBAAgB,KAAK,EAAE,CAAC,CAAC;QAC/F,IAAI,KAAK,KAAK,IAAI,CAAC,QAAQ,CAAC,cAAc,CAAC,MAAM,CAAC,QAAQ,EAAE;YAC1D,IAAI,CAAC,yBAAyB,EAAE,CAAC;SAClC;aAAM;YACL,IAAI,CAAC,wBAAwB,EAAE,CAAC;SACjC;QACD,IAAI,CAAC,MAAM,GAAG,KAAK,CAAC;QACpB,IAAI,CAAC,YAAY,GAAG,IAAI,CAAC,MAAM,CAAC;QAChC,IAAI,CAAC,SAAS,CAAC,OAAO,CAAC,MAAM,GAAG,IAAI,CAAC,YAAY,CAAC;IACpD,CAAC;IAED,KAAK,CAAC,4BAA4B;QAChC,IAAI,IAAI,CAAC,MAAM,KAAK,SAAS,EAAE;YAC7B,IAAI,CAAC,QAAQ,CAAC,GAAG,IAAI,CAAC,MAAM,CAAC,UAAU,KAAK,IAAI,CAAC,SAAS,CAAC,WAAW,YAAY,IAAI,CAAC,MAAM,EAAE,CAAC,CAAC;SAClG;aAAM;YACL,IAAI,CAAC,kBAAkB,EAAE,oBAAoB,CAAC,IAAI,CAAC,QAAQ,CAAC,cAAc,CAAC,MAAM,EAAE,IAAI,CAAC,MAAM,CAAC,CAAC;YAChG,IAAI,CAAC,QAAQ,CAAC,GAAG,IAAI,CAAC,MAAM,CAAC,UAAU,KAAK,IAAI,CAAC,SAAS,CAAC,WAAW,iCAAiC,IAAI,CAAC,MAAM,EAAE,CAAC,CAAC;SACvH;QACD,IAAI,IAAI,CAAC,uBAAuB,KAAK,SAAS,EAAE;YAC9C,IAAI,CAAC,QAAQ,CAAC,GAAG,IAAI,CAAC,MAAM,CAAC,UAAU,KAAK,IAAI,CAAC,SAAS,CAAC,WAAW,6BAA6B,IAAI,CAAC,uBAAuB,EAAE,CAAC,CAAC;SACpI;aAAM;YACL,IAAI,CAAC,kBAAkB,EAAE,oBAAoB,CAAC,IAAI,CAAC,QAAQ,CAAC,cAAc,CAAC,uBAAuB,EAAE,IAAI,CAAC,uBAAuB,CAAC,CAAC;YAClI,IAAI,CAAC,QAAQ,CAAC,GAAG,IAAI,CAAC,MAAM,CAAC,UAAU,KAAK,IAAI,CAAC,SAAS,CAAC,WAAW,EAAE;kBACtE,kDAAkD,IAAI,CAAC,uBAAuB,EAAE,CAAC,CAAC;SACrF;QACD,IAAI,IAAI,CAAC,wBAAwB,KAAK,SAAS,EAAE;YAC/C,IAAI,CAAC,QAAQ,CAAC,GAAG,IAAI,CAAC,MAAM,CAAC,UAAU,KAAK,IAAI,CAAC,SAAS,CAAC,WAAW,8BAA8B,IAAI,CAAC,wBAAwB,EAAE,CAAC,CAAC;SACtI;aAAM;YACL,IAAI,CAAC,kBAAkB,EAAE,oBAAoB,CAAC,IAAI,CAAC,QAAQ,CAAC,cAAc,CAAC,wBAAwB,EAAE,IAAI,CAAC,wBAAwB,CAAC,CAAC;YACpI,IAAI,CAAC,QAAQ,CACX,GAAG,IAAI,CAAC,MAAM,CAAC,UAAU,KAAK,IAAI,CAAC,SAAS,CAAC,WAAW,EAAE;kBACxD,mDAAmD,IAAI,CAAC,wBAAwB,EAAE,CACrF,CAAC;SACH;IACH,CAAC;IAED,KAAK,CAAC,yBAAyB,CAAC,KAA0B;QACxD,QAAQ,KAAK,EAAE;YACb,KAAK,IAAI,CAAC,QAAQ,CAAC,cAAc,CAAC,uBAAuB,CAAC,aAAa;gBACrE,IAAI,CAAC,WAAW,GAAG,WAAW,CAAC,aAAa,CAAC;gBAC7C,MAAM;YACR,KAAK,IAAI,CAAC,QAAQ,CAAC,cAAc,CAAC,uBAAuB,CAAC,IAAI;gBAC5D,IAAI,CAAC,WAAW,GAAG,WAAW,CAAC,IAAI,CAAC;gBACpC,MAAM;YACR,KAAK,IAAI,CAAC,QAAQ,CAAC,cAAc,CAAC,uBAAuB,CAAC,QAAQ;gBAChE,IAAI,CAAC,WAAW,GAAG,WAAW,CAAC,QAAQ,CAAC;gBACxC,MAAM;YACR;gBACE,MAAM;SACT;IACH,CAAC;IAED,KAAK,CAAC,0BAA0B;QAC9B,IAAI,IAAI,CAAC,MAAM,KAAK,CAAC,EAAE;YACrB,IAAI,CAAC,uBAAuB,GAAG,IAAI,CAAC,QAAQ,CAAC,cAAc,CAAC,uBAAuB,CAAC,aAAa,CAAC;SACnG;aAAM;YACL,IAAI,CAAC,uBAAuB,GAAG,IAAI,CAAC,QAAQ,CAAC,cAAc,CAAC,uBAAuB,CAAC,QAAQ,CAAC;SAC9F;QACD,OAAO,IAAI,CAAC,uBAAuB,CAAC;IACtC,CAAC;IAED;;;;;;;;;;OAUG;IACH,KAAK,CAAC,wBAAwB;QAC5B,IAAI,IAAI,CAAC,MAAM,KAAK,CAAC,EAAE;YACrB,MAAM,IAAI,GAAG,IAAA,yBAAc,EAAC;gBAC1B,SAAS,EAAE,QAAQ;gBACnB,WAAW,EAAE,SAAS;gBACtB,aAAa,EAAE,SAAS;aACzB,CAAC,CAAC;YACH,MAAM,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC,CAAC;SAC9B;IACH,CAAC;IAED,KAAK,CAAC,yBAAyB;QAC7B,IAAI,IAAI,CAAC,MAAM,KAAK,CAAC,EAAE;YACrB,MAAM,IAAI,GAAG,IAAA,yBAAc,EAAC;gBAC1B,SAAS,EAAE,SAAS;gBACpB,WAAW,EAAE,SAAS;gBACtB,aAAa,EAAE,SAAS;aACzB,CAAC,CAAC;YACH,MAAM,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC,CAAC;SAC9B;IACH,CAAC;IAED,KAAK,CAAC,+BAA+B;QACnC,IAAI,CAAC,IAAI,CAAC,IAAI,EAAE;YACd,IAAI,CAAC,IAAI,GAAG,IAAI,CAAC;YACjB,IAAI,CAAC,wBAAwB,GAAG,IAAI,CAAC,QAAQ,CAAC,cAAc,CAAC,wBAAwB,CAAC,IAAI,CAAC;SAC5F;QACD,YAAY,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;QAE3B,wDAAwD;QACxD,IAAI,CAAC,OAAO,GAAG,UAAU,CAAC,IAAI,CAAC,gCAAgC,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,IAAI,CAAC,CAAC;IACpF,CAAC;IAED,KAAK,CAAC,gCAAgC;QACpC,IAAI,CAAC,aAAa,GAAG,IAAI,CAAC,kBAAkB,IAAI,EAAE,CAAC;QACnD,IAAI,CAAC,aAAa,GAAG,IAAI,CAAC,WAAW,IAAI,CAAC,CAAC;QAC3C,IAAI,CAAC,iBAAiB,GAAG,IAAI,CAAC,eAAe,IAAI,CAAC,CAAC;QACnD,IAAI,CAAC,QAAQ,GAAG,IAAI,CAAC,MAAM,KAAK,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,KAAK,CAAC;QACjD,MAAM,SAAS,GAAG,GAAG,IAAI,CAAC,aAAa,IAAI,IAAI,CAAC,aAAa,IAAI,IAAI,CAAC,iBAAiB,IAAI,IAAI,CAAC,QAAQ,EAAE,CAAC;QAC3G,MAAM,IAAI,GAAG,IAAA,yBAAc,EAAC;YAC1B,SAAS,EAAE,QAAQ;YACnB,WAAW,EAAE,GAAG,SAAS,EAAE;YAC3B,aAAa,EAAE,SAAS;SACzB,CAAC,CAAC;QACH,IAAI,IAAI,CAAC,MAAM,KAAK,CAAC,EAAE;YACrB,IAAI,CAAC,IAAI,CAAC,kBAAkB,IAAI,EAAE,CAAC,GAAG,CAAC,IAAI,CAAC,eAAe,IAAI,EAAE,CAAC,EAAE;gBAClE,IAAI,CAAC,wBAAwB,GAAG,IAAI,CAAC,QAAQ,CAAC,cAAc,CAAC,wBAAwB,CAAC,OAAO,CAAC;aAC/F;iBAAM;gBACL,IAAI,CAAC,wBAAwB,GAAG,IAAI,CAAC,QAAQ,CAAC,cAAc,CAAC,wBAAwB,CAAC,OAAO,CAAC;aAC/F;SACF;aAAM;YACL,IAAI,CAAC,wBAAwB,GAAG,IAAI,CAAC,QAAQ,CAAC,cAAc,CAAC,wBAAwB,CAAC,QAAQ,CAAC;SAChG;QACD,MAAM,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC,CAAC;IAC/B,CAAC;IAED,KAAK,CAAC,WAAW,CAAC,IAAI;QACpB,IAAI,IAAI,CAAC,OAAO,EAAE;YAChB,IAAI;gBACJ,kCAAkC;gBAChC,MAAM,CAAC,GAAG,IAAI,CAAC,GAAG,EAAE,CAAC;gBACrB,MAAM,KAAK,GAAG,WAAW,CAAC;gBAC1B,MAAM,IAAI,GAAG,IAAI,CAAC,QAAQ,CAAC,MAAM,CAAC,WAAW,EAAE,KAAK,GAAG,CAAC,GAAG,KAAK,CAAC;gBACjE,MAAM,QAAQ,GAAG,gBAAM,CAAC,UAAU,CAAC,QAAQ,EAAE,IAAI,CAAC,QAAQ,CAAC,MAAM,CAAC,WAAW,EAAE,MAAM,CAAC;qBACnF,MAAM,CAAC,MAAM,CAAC,IAAI,CAAC,IAAI,EAAE,OAAO,CAAC,CAAC;qBAClC,MAAM,EAAE,CAAC;gBACZ,MAAM,IAAI,GAAG,QAAQ,CAAC,QAAQ,CAAC,QAAQ,CAAC,CAAC;gBACzC,IAAI,CAAC,QAAQ,CAAC,GAAG,IAAI,CAAC,MAAM,CAAC,UAAU,KAAK,IAAI,CAAC,SAAS,CAAC,WAAW,UAAU,IAAI,EAAE,CAAC,CAAC;gBACxF,IAAI,CAAC,OAAO,CAAC,GAAG,IAAI,CAAC,MAAM,CAAC,UAAU,KAAK,IAAI,CAAC,SAAS,CAAC,WAAW,4CAA4C,IAAI,GAAG,CAAC,CAAC;gBAC1H,MAAM,OAAO,GAAG;oBACd,QAAQ,EAAE,qBAAU;oBACpB,IAAI,EAAE,GAAG;oBACT,IAAI,EAAE,GAAG,qBAAU,IAAI,IAAI,CAAC,MAAM,CAAC,QAAQ,WAAW;oBACtD,MAAM,EAAE,MAAM;oBACd,OAAO,EAAE;wBACP,eAAe,EAAE,IAAI,CAAC,QAAQ,CAAC,MAAM,CAAC,WAAW,EAAE,KAAK;wBACxD,MAAM,EAAE,IAAI;wBACZ,OAAO,EAAE,KAAK;wBACd,GAAG,EAAE,CAAC;wBACN,cAAc,EAAE,kBAAkB;wBAClC,gBAAgB,EAAE,IAAI,CAAC,MAAM;qBAC9B;iBACF,CAAC;gBACF,MAAM,GAAG,GAAG,eAAK,CAAC,OAAO,CAAC,OAAO,EAAE,GAAG,CAAC,EAAE;oBACvC,IAAI,CAAC,QAAQ,CAAC,GAAG,IAAI,CAAC,MAAM,CAAC,UAAU,KAAK,IAAI,CAAC,SAAS,CAAC,WAAW,gBAAgB,GAAG,CAAC,UAAU,EAAE,CAAC,CAAC;oBACxG,IAAI,CAAC,UAAU,CAAC,EAAE,GAAG,EAAE,CAAC,CAAC;oBACzB,GAAG,CAAC,EAAE,CAAC,MAAM,EAAE,CAAC,CAAC,EAAE;wBACjB,IAAI,CAAC,QAAQ,CAAC,GAAG,IAAI,CAAC,MAAM,CAAC,UAAU,KAAK,IAAI,CAAC,SAAS,CAAC,WAAW,OAAO,CAAC,EAAE,CAAC,CAAC;oBACpF,CAAC,CAAC,CAAC;gBACL,CAAC,CAAC,CAAC;gBACH,GAAG,CAAC,EAAE,CAAC,OAAO,EAAE,CAAC,CAAM,EAAE,EAAE;oBACzB,IAAI,CAAC,QAAQ,CAAC,GAAG,IAAI,CAAC,MAAM,CAAC,UAAU,KAAK,IAAI,CAAC,SAAS,CAAC,WAAW,mBAAmB,CAAC,CAAC,OAAO,EAAE,CAAC,CAAC;gBACxG,CAAC,CAAC,CAAC;gBACH,GAAG,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;gBAChB,GAAG,CAAC,GAAG,EAAE,CAAC;gBACV,IAAI,CAAC,QAAQ,CAAC,GAAG,IAAI,CAAC,MAAM,CAAC,UAAU,KAAK,IAAI,CAAC,SAAS,CAAC,WAAW,iBAAiB,IAAA,yBAAc,EAAC,GAAG,CAAC,EAAE,CAAC,CAAC;gBAC9G,IAAI,CAAC,4BAA4B,EAAE,CAAC;gBACpC,IAAI,CAAC,wBAAwB,GAAG,IAAI,CAAC,kBAAkB,CAAC;gBACxD,IAAI,CAAC,SAAS,CAAC,OAAO,CAAC,kBAAkB,GAAG,IAAI,CAAC,wBAAwB,CAAC;aAC3E;YAAC,OAAO,CAAM,EAAE;gBACf,IAAI,CAAC,QAAQ,CAAC,GAAG,IAAI,CAAC,MAAM,CAAC,UAAU,KAAK,IAAI,CAAC,SAAS,CAAC,WAAW,6CAA6C,CAAC,CAAC;gBACrH,IAAI,IAAI,CAAC,aAAa,CAAC,QAAQ,CAAC,OAAO,CAAC,EAAE;oBACxC,IAAI,CAAC,QAAQ,CACX,GAAG,IAAI,CAAC,MAAM,CAAC,UAAU,KAAK,IAAI,CAAC,SAAS,CAAC,WAAW,8CAA8C;0BACpG,mBAAmB,IAAA,yBAAc,EAAC,CAAC,CAAC,OAAO,CAAC,EAAE,CACjD,CAAC;iBACH;gBACD,IAAI,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC;aAClB;SACF;IACH,CAAC;IAED,KAAK,CAAC,UAAU,CAAC,EAAE,GAAG,EAA4B;QAChD,QAAQ,GAAG,CAAC,UAAU,EAAE;YACtB,KAAK,GAAG;gBACN,IAAI,CAAC,QAAQ,CAAC,GAAG,IAAI,CAAC,MAAM,CAAC,UAAU,KAAK,IAAI,CAAC,SAAS,CAAC,WAAW,6CAA6C,CAAC,CAAC;gBACrH,MAAM;YACR,KAAK,GAAG;gBACN,IAAI,CAAC,QAAQ,CAAC,GAAG,IAAI,CAAC,MAAM,CAAC,UAAU,KAAK,IAAI,CAAC,SAAS,CAAC,WAAW,oBAAoB,CAAC,CAAC;gBAC5F,MAAM;YACR,KAAK,GAAG;gBACN,IAAI,CAAC,QAAQ,CAAC,GAAG,IAAI,CAAC,MAAM,CAAC,UAAU,KAAK,IAAI,CAAC,SAAS,CAAC,WAAW,4BAA4B,CAAC,CAAC;gBACpG,MAAM;YACR,KAAK,GAAG;gBACN,IAAI,CAAC,QAAQ,CAAC,GAAG,IAAI,CAAC,MAAM,CAAC,UAAU,KAAK,IAAI,CAAC,SAAS,CAAC,WAAW,qBAAqB,CAAC,CAAC;gBAC7F,MAAM;YACR,KAAK,GAAG;gBACN,IAAI,CAAC,QAAQ,CAAC,GAAG,IAAI,CAAC,MAAM,CAAC,UAAU,KAAK,IAAI,CAAC,SAAS,CAAC,WAAW,gCAAgC,IAAI,CAAC,MAAM,CAAC,WAAW,EAAE,CAAC,CAAC;gBACjI,MAAM;YACR,KAAK,GAAG;gBACN,IAAI,CAAC,QAAQ,CACX,GAAG,IAAI,CAAC,MAAM,CAAC,UAAU,KAAK,IAAI,CAAC,SAAS,CAAC,WAAW,8DAA8D;oBACpH,6BAA6B,IAAA,yBAAc,EAAC,GAAG,CAAC,oBAAoB,CACvE,CAAC;gBACF,MAAM;YACR,KAAK,GAAG;gBACN,IAAI,CAAC,QAAQ,CAAC,GAAG,IAAI,CAAC,MAAM,CAAC,UAAU,KAAK,IAAI,CAAC,SAAS,CAAC,WAAW,6BAA6B,CAAC,CAAC;gBACrG,MAAM;YACR;gBACE,IAAI,CAAC,QAAQ,CAAC,GAAG,IAAI,CAAC,MAAM,CAAC,UAAU,KAAK,IAAI,CAAC,SAAS,CAAC,WAAW,sBAAsB,CAAC,CAAC;SACjG;IACH,CAAC;IAED,KAAK,CAAC,QAAQ,CAAC,CAAM;QACnB,IAAI,CAAC,kBAAkB,CAAC,oBAAoB,CAAC,IAAI,CAAC,QAAQ,CAAC,cAAc,CAAC,wBAAwB,EAAE,CAAC,CAAC,CAAC;QACvG,IAAI,CAAC,kBAAkB,CAAC,oBAAoB,CAAC,IAAI,CAAC,QAAQ,CAAC,cAAc,CAAC,uBAAuB,EAAE,CAAC,CAAC,CAAC;QACtG,IAAI,CAAC,kBAAkB,CAAC,oBAAoB,CAAC,IAAI,CAAC,QAAQ,CAAC,cAAc,CAAC,sBAAsB,EAAE,CAAC,CAAC,CAAC;QACrG,IAAI,CAAC,kBAAkB,CAAC,oBAAoB,CAAC,IAAI,CAAC,QAAQ,CAAC,cAAc,CAAC,MAAM,EAAE,CAAC,CAAC,CAAC;QACrF,0FAA0F;IAC5F,CAAC;IAED,KAAK,CAAC,OAAO;QACX,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,OAAO,EAAE;YACxB,IAAI,CAAC,OAAO,GAAG,IAAI,CAAC;SACrB;aAAM;YACL,IAAI,CAAC,OAAO,GAAG,IAAI,CAAC,MAAM,CAAC,OAAO,CAAC;SACpC;QACD,IAAI,CAAC,QAAQ,CAAC,GAAG,IAAI,CAAC,MAAM,CAAC,UAAU,KAAK,IAAI,CAAC,SAAS,CAAC,WAAW,mBAAmB,IAAI,CAAC,OAAO,EAAE,CAAC,CAAC;IAC3G,CAAC;IAED,KAAK,CAAC,MAAM,CAAC,MAAkC;QAC7C,IAAI,MAAM,GAAG,EAAE,CAAC;QAChB,IAAI,MAAM,CAAC,KAAK,EAAE;YAChB,MAAM,GAAG,MAAM,CAAC,KAAK,CAAC;SACvB;QACD,IAAI,MAAM,CAAC,OAAO,KAAK,SAAS,EAAE;YAChC,MAAM,CAAC,SAAS,CAAC,GAAG,MAAM,CAAC,OAAO,CAAC;SACpC;QACD,IAAI,MAAM,CAAC,OAAO,KAAK,SAAS,EAAE;YAChC,MAAM,CAAC,SAAS,CAAC,GAAG,MAAM,CAAC,OAAO,CAAC;SACpC;QACD,IAAI,MAAM,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC,MAAM,KAAK,CAAC,EAAE;YACvC,IAAI,CAAC,OAAO,CAAC,GAAG,IAAI,CAAC,MAAM,CAAC,UAAU,KAAK,IAAI,CAAC,SAAS,CAAC,WAAW,YAAY,IAAA,yBAAc,EAAC,MAAM,CAAC,EAAE,CAAC,CAAC;SAC5G;IACH,CAAC;IAED,KAAK,CAAC,IAAI,CAAC,MAAkC;QAC3C,IAAI,IAAI,CAAC,QAAQ,CAAC,SAAS,EAAE;YAC3B,IAAI,CAAC,aAAa,GAAG,IAAI,CAAC,SAAS,CAAC,OAAO,CAAC,OAAO,GAAG,WAAW,CAAC;YAClE,IAAI,CAAC,QAAQ,CAAC,GAAG,IAAI,CAAC,MAAM,CAAC,UAAU,KAAK,IAAI,CAAC,SAAS,CAAC,WAAW,8BAA8B,IAAI,CAAC,aAAa,EAAE,CAAC,CAAC;SAC3H;aAAM,IAAI,MAAM,CAAC,OAAO,EAAE;YACzB,IAAI,CAAC,aAAa,GAAG,IAAI,CAAC,SAAS,CAAC,OAAO,CAAC,OAAO,GAAG,MAAM,CAAC,OAAO,CAAC;YACrE,IAAI,CAAC,QAAQ,CAAC,GAAG,IAAI,CAAC,MAAM,CAAC,UAAU,KAAK,IAAI,CAAC,SAAS,CAAC,WAAW,iCAAiC,IAAI,CAAC,aAAa,EAAE,CAAC,CAAC;SAC9H;aAAM,IAAI,IAAI,CAAC,QAAQ,CAAC,MAAM,CAAC,OAAO,EAAE,OAAO,EAAE;YAChD,IAAI,CAAC,aAAa,GAAG,IAAI,CAAC,SAAS,CAAC,OAAO,CAAC,OAAO,GAAG,IAAI,CAAC,QAAQ,CAAC,MAAM,CAAC,OAAO,EAAE,OAAO,CAAC;YAC5F,IAAI,CAAC,QAAQ,CAAC,GAAG,IAAI,CAAC,MAAM,CAAC,UAAU,KAAK,IAAI,CAAC,SAAS,CAAC,WAAW,mCAAmC,IAAI,CAAC,aAAa,EAAE,CAAC,CAAC;SAChI;aAAM;YACL,IAAI,CAAC,aAAa,GAAG,IAAI,CAAC,SAAS,CAAC,OAAO,CAAC,OAAO,GAAG,UAAU,CAAC;YACjE,IAAI,CAAC,QAAQ,CAAC,GAAG,IAAI,CAAC,MAAM,CAAC,UAAU,KAAK,IAAI,CAAC,SAAS,CAAC,WAAW,4BAA4B,IAAI,CAAC,aAAa,EAAE,CAAC,CAAC;SACzH;IACH,CAAC;IAED;;OAEG;IACH,OAAO,CAAC,GAAG,GAAU;QACnB,IAAI,IAAI,CAAC,qBAAqB,EAAE,EAAE;YAChC,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,IAAI,CAAC,MAAM,CAAC,GAAG,GAAG,CAAC,CAAC,CAAC;SACxC;IACH,CAAC;IAED,OAAO,CAAC,GAAG,GAAU;QACnB,IAAI,IAAI,CAAC,qBAAqB,EAAE,EAAE;YAChC,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,IAAI,CAAC,MAAM,CAAC,GAAG,GAAG,CAAC,CAAC,CAAC;SACxC;IACH,CAAC;IAED,QAAQ,CAAC,GAAG,GAAU;QACpB,IAAI,IAAI,CAAC,qBAAqB,EAAE,EAAE;YAChC,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,KAAK,CAAC,MAAM,CAAC,GAAG,GAAG,CAAC,CAAC,CAAC;SACzC;IACH,CAAC;IAED,QAAQ,CAAC,GAAG,GAAU;QACpB,IAAI,IAAI,CAAC,qBAAqB,EAAE,EAAE;YAChC,IAAI,IAAI,CAAC,aAAa,KAAK,OAAO,EAAE;gBAClC,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,IAAI,CAAC,SAAS,EAAE,MAAM,CAAC,GAAG,GAAG,CAAC,CAAC,CAAC;aACnD;iBAAM;gBACL,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,KAAK,CAAC,MAAM,CAAC,GAAG,GAAG,CAAC,CAAC,CAAC;aACzC;SACF;IACH,CAAC;IAED,qBAAqB;QACnB,OAAO,IAAI,CAAC,aAAa,CAAC,QAAQ,CAAC,OAAO,CAAC,IAAI,IAAI,CAAC,aAAa,KAAK,UAAU,CAAC;IACnF,CAAC;CACF;AAvXD,kCAuXC"}
@@ -16,18 +16,19 @@ export declare class Camera {
16
16
  On: CharacteristicValue;
17
17
  OnCached: CharacteristicValue;
18
18
  deviceLogging: string;
19
+ OpenAPI?: boolean;
19
20
  constructor(platform: SwitchBotPlatform, accessory: PlatformAccessory, device: irdevice & irDevicesConfig);
20
21
  OnSet(value: CharacteristicValue): Promise<void>;
21
22
  updateHomeKitCharacteristics(): Promise<void>;
22
23
  /**
23
24
  * Pushes the requested changes to the SwitchBot API
24
25
  * deviceType commandType Command command parameter Description
25
- * Light: "command" "turnOff" "default" = set to OFF state
26
- * Light: "command" "turnOn" "default" = set to ON state
27
- * Light: "command" "volumeAdd" "default" = volume up
28
- * Light: "command" "volumeSub" "default" = volume down
29
- * Light: "command" "channelAdd" "default" = next channel
30
- * Light: "command" "channelSub" "default" = previous channel
26
+ * Camera - "command" "turnOff" "default" = set to OFF state
27
+ * Camera - "command" "turnOn" "default" = set to ON state
28
+ * Camera - "command" "volumeAdd" "default" = volume up
29
+ * Camera - "command" "volumeSub" "default" = volume down
30
+ * Camera - "command" "channelAdd" "default" = next channel
31
+ * Camera - "command" "channelSub" "default" = previous channel
31
32
  */
32
33
  pushOnChanges(): Promise<void>;
33
34
  pushOffChanges(): Promise<void>;
@@ -36,6 +37,7 @@ export declare class Camera {
36
37
  res: IncomingMessage;
37
38
  }): Promise<void>;
38
39
  apiError(e: any): Promise<void>;
40
+ openAPI(): Promise<void>;
39
41
  config(device: irdevice & irDevicesConfig): Promise<void>;
40
42
  logs(device: irdevice & irDevicesConfig): Promise<void>;
41
43
  /**
@@ -1 +1 @@
1
- {"version":3,"file":"camera.d.ts","sourceRoot":"","sources":["../../src/irdevice/camera.ts"],"names":[],"mappings":";AAEA,OAAO,EAAE,eAAe,EAAE,MAAM,MAAM,CAAC;AAEvC,OAAO,EAAE,iBAAiB,EAAE,MAAM,aAAa,CAAC;AAChD,OAAO,EAAE,eAAe,EAAE,QAAQ,EAA0B,MAAM,aAAa,CAAC;AAChF,OAAO,EAAE,mBAAmB,EAAE,iBAAiB,EAAE,OAAO,EAAE,MAAM,YAAY,CAAC;AAE7E;;;;GAIG;AACH,qBAAa,MAAM;IAWL,OAAO,CAAC,QAAQ,CAAC,QAAQ;IAAqB,OAAO,CAAC,SAAS;IAA4B,MAAM,EAAE,QAAQ,GAAG,eAAe;IATzI,aAAa,EAAG,OAAO,CAAC;IAGxB,EAAE,EAAG,mBAAmB,CAAC;IACzB,QAAQ,EAAG,mBAAmB,CAAC;IAG/B,aAAa,EAAG,MAAM,CAAC;gBAEM,QAAQ,EAAE,iBAAiB,EAAU,SAAS,EAAE,iBAAiB,EAAS,MAAM,EAAE,QAAQ,GAAG,eAAe;IAkCnI,KAAK,CAAC,KAAK,EAAE,mBAAmB,GAAG,OAAO,CAAC,IAAI,CAAC;IAUhD,4BAA4B,IAAI,OAAO,CAAC,IAAI,CAAC;IASnD;;;;;;;;;OASG;IACG,aAAa,IAAI,OAAO,CAAC,IAAI,CAAC;IAW9B,cAAc,IAAI,OAAO,CAAC,IAAI,CAAC;IAW/B,WAAW,CAAC,IAAI,KAAA,GAAG,OAAO,CAAC,IAAI,CAAC;IAqDhC,UAAU,CAAC,EAAE,GAAG,EAAE,EAAE;QAAE,GAAG,EAAE,eAAe,CAAA;KAAE,GAAG,OAAO,CAAC,IAAI,CAAC;IA+B5D,QAAQ,CAAC,CAAC,EAAE,GAAG,GAAG,OAAO,CAAC,IAAI,CAAC;IAK/B,MAAM,CAAC,MAAM,EAAE,QAAQ,GAAG,eAAe,GAAG,OAAO,CAAC,IAAI,CAAC;IAazD,IAAI,CAAC,MAAM,EAAE,QAAQ,GAAG,eAAe,GAAG,OAAO,CAAC,IAAI,CAAC;IAgB7D;;OAEG;IACH,OAAO,CAAC,GAAG,GAAG,EAAE,GAAG,EAAE,GAAG,IAAI;IAM5B,OAAO,CAAC,GAAG,GAAG,EAAE,GAAG,EAAE,GAAG,IAAI;IAM5B,QAAQ,CAAC,GAAG,GAAG,EAAE,GAAG,EAAE,GAAG,IAAI;IAM7B,QAAQ,CAAC,GAAG,GAAG,EAAE,GAAG,EAAE,GAAG,IAAI;IAU7B,qBAAqB,IAAI,OAAO;CAGjC"}
1
+ {"version":3,"file":"camera.d.ts","sourceRoot":"","sources":["../../src/irdevice/camera.ts"],"names":[],"mappings":";AAEA,OAAO,EAAE,eAAe,EAAE,MAAM,MAAM,CAAC;AAEvC,OAAO,EAAE,iBAAiB,EAAE,MAAM,aAAa,CAAC;AAChD,OAAO,EAAE,eAAe,EAAE,QAAQ,EAA0B,MAAM,aAAa,CAAC;AAChF,OAAO,EAAE,mBAAmB,EAAE,iBAAiB,EAAE,OAAO,EAAE,MAAM,YAAY,CAAC;AAE7E;;;;GAIG;AACH,qBAAa,MAAM;IAYL,OAAO,CAAC,QAAQ,CAAC,QAAQ;IAAqB,OAAO,CAAC,SAAS;IAA4B,MAAM,EAAE,QAAQ,GAAG,eAAe;IAVzI,aAAa,EAAG,OAAO,CAAC;IAGxB,EAAE,EAAG,mBAAmB,CAAC;IACzB,QAAQ,EAAG,mBAAmB,CAAC;IAG/B,aAAa,EAAG,MAAM,CAAC;IACvB,OAAO,CAAC,EAAE,OAAO,CAAC;gBAEW,QAAQ,EAAE,iBAAiB,EAAU,SAAS,EAAE,iBAAiB,EAAS,MAAM,EAAE,QAAQ,GAAG,eAAe;IAkCnI,KAAK,CAAC,KAAK,EAAE,mBAAmB,GAAG,OAAO,CAAC,IAAI,CAAC;IAUhD,4BAA4B,IAAI,OAAO,CAAC,IAAI,CAAC;IASnD;;;;;;;;;OASG;IACG,aAAa,IAAI,OAAO,CAAC,IAAI,CAAC;IAW9B,cAAc,IAAI,OAAO,CAAC,IAAI,CAAC;IAW/B,WAAW,CAAC,IAAI,KAAA,GAAG,OAAO,CAAC,IAAI,CAAC;IAwDhC,UAAU,CAAC,EAAE,GAAG,EAAE,EAAE;QAAE,GAAG,EAAE,eAAe,CAAA;KAAE,GAAG,OAAO,CAAC,IAAI,CAAC;IA+B5D,QAAQ,CAAC,CAAC,EAAE,GAAG,GAAG,OAAO,CAAC,IAAI,CAAC;IAK/B,OAAO;IASP,MAAM,CAAC,MAAM,EAAE,QAAQ,GAAG,eAAe,GAAG,OAAO,CAAC,IAAI,CAAC;IAgBzD,IAAI,CAAC,MAAM,EAAE,QAAQ,GAAG,eAAe,GAAG,OAAO,CAAC,IAAI,CAAC;IAgB7D;;OAEG;IACH,OAAO,CAAC,GAAG,GAAG,EAAE,GAAG,EAAE,GAAG,IAAI;IAM5B,OAAO,CAAC,GAAG,GAAG,EAAE,GAAG,EAAE,GAAG,IAAI;IAM5B,QAAQ,CAAC,GAAG,GAAG,EAAE,GAAG,EAAE,GAAG,IAAI;IAM7B,QAAQ,CAAC,GAAG,GAAG,EAAE,GAAG,EAAE,GAAG,IAAI;IAU7B,qBAAqB,IAAI,OAAO;CAGjC"}
@@ -47,7 +47,7 @@ class Camera {
47
47
  this.switchService.getCharacteristic(this.platform.Characteristic.On).onSet(this.OnSet.bind(this));
48
48
  }
49
49
  async OnSet(value) {
50
- this.debugLog(`Camera: ${this.accessory.displayName} On: ${value}`);
50
+ this.debugLog(`${this.device.remoteType}: ${this.accessory.displayName} On: ${value}`);
51
51
  this.On = value;
52
52
  if (this.On) {
53
53
  this.pushOnChanges();
@@ -58,22 +58,22 @@ class Camera {
58
58
  }
59
59
  async updateHomeKitCharacteristics() {
60
60
  if (this.On === undefined) {
61
- this.debugLog(`Camera: ${this.accessory.displayName} On: ${this.On}`);
61
+ this.debugLog(`${this.device.remoteType}: ${this.accessory.displayName} On: ${this.On}`);
62
62
  }
63
63
  else {
64
64
  this.switchService?.updateCharacteristic(this.platform.Characteristic.On, this.On);
65
- this.debugLog(`Camera: ${this.accessory.displayName} updateCharacteristic On: ${this.On}`);
65
+ this.debugLog(`${this.device.remoteType}: ${this.accessory.displayName} updateCharacteristic On: ${this.On}`);
66
66
  }
67
67
  }
68
68
  /**
69
69
  * Pushes the requested changes to the SwitchBot API
70
70
  * deviceType commandType Command command parameter Description
71
- * Light: "command" "turnOff" "default" = set to OFF state
72
- * Light: "command" "turnOn" "default" = set to ON state
73
- * Light: "command" "volumeAdd" "default" = volume up
74
- * Light: "command" "volumeSub" "default" = volume down
75
- * Light: "command" "channelAdd" "default" = next channel
76
- * Light: "command" "channelSub" "default" = previous channel
71
+ * Camera - "command" "turnOff" "default" = set to OFF state
72
+ * Camera - "command" "turnOn" "default" = set to ON state
73
+ * Camera - "command" "volumeAdd" "default" = volume up
74
+ * Camera - "command" "volumeSub" "default" = volume down
75
+ * Camera - "command" "channelAdd" "default" = next channel
76
+ * Camera - "command" "channelSub" "default" = previous channel
77
77
  */
78
78
  async pushOnChanges() {
79
79
  if (this.On) {
@@ -96,88 +96,100 @@ class Camera {
96
96
  }
97
97
  }
98
98
  async pushChanges(body) {
99
- try {
100
- // Make Push On request to the API
101
- const t = Date.now();
102
- const nonce = 'requestID';
103
- const data = this.platform.config.credentials?.token + t + nonce;
104
- const signTerm = crypto_1.default.createHmac('sha256', this.platform.config.credentials?.secret)
105
- .update(Buffer.from(data, 'utf-8'))
106
- .digest();
107
- const sign = signTerm.toString('base64');
108
- this.debugLog(`Camera: ${this.accessory.displayName} sign: ${sign}`);
109
- this.infoLog(`Camera: ${this.accessory.displayName} Sending request to SwitchBot API. body: ${body},`);
110
- const options = {
111
- hostname: settings_1.HostDomain,
112
- port: 443,
113
- path: `${settings_1.DevicePath}/${this.device.deviceId}/commands`,
114
- method: 'POST',
115
- headers: {
116
- 'Authorization': this.platform.config.credentials?.token,
117
- 'sign': sign,
118
- 'nonce': nonce,
119
- 't': t,
120
- 'Content-Type': 'application/json',
121
- 'Content-Length': body.length,
122
- },
123
- };
124
- const req = https_1.default.request(options, res => {
125
- this.debugLog(`Camera: ${this.accessory.displayName} statusCode: ${res.statusCode}`);
126
- this.statusCode({ res });
127
- res.on('data', d => {
128
- this.debugLog(`Camera: ${this.accessory.displayName} d: ${d}`);
99
+ if (this.OpenAPI) {
100
+ try {
101
+ // Make Push On request to the API
102
+ const t = Date.now();
103
+ const nonce = 'requestID';
104
+ const data = this.platform.config.credentials?.token + t + nonce;
105
+ const signTerm = crypto_1.default.createHmac('sha256', this.platform.config.credentials?.secret)
106
+ .update(Buffer.from(data, 'utf-8'))
107
+ .digest();
108
+ const sign = signTerm.toString('base64');
109
+ this.debugLog(`${this.device.remoteType}: ${this.accessory.displayName} sign: ${sign}`);
110
+ this.infoLog(`${this.device.remoteType}: ${this.accessory.displayName} Sending request to SwitchBot API. body: ${body},`);
111
+ const options = {
112
+ hostname: settings_1.HostDomain,
113
+ port: 443,
114
+ path: `${settings_1.DevicePath}/${this.device.deviceId}/commands`,
115
+ method: 'POST',
116
+ headers: {
117
+ 'Authorization': this.platform.config.credentials?.token,
118
+ 'sign': sign,
119
+ 'nonce': nonce,
120
+ 't': t,
121
+ 'Content-Type': 'application/json',
122
+ 'Content-Length': body.length,
123
+ },
124
+ };
125
+ const req = https_1.default.request(options, res => {
126
+ this.debugLog(`${this.device.remoteType}: ${this.accessory.displayName} statusCode: ${res.statusCode}`);
127
+ this.statusCode({ res });
128
+ res.on('data', d => {
129
+ this.debugLog(`${this.device.remoteType}: ${this.accessory.displayName} d: ${d}`);
130
+ });
129
131
  });
130
- });
131
- req.on('error', (e) => {
132
- this.errorLog(`Camera: ${this.accessory.displayName} error message: ${e.message}`);
133
- });
134
- req.write(body);
135
- req.end();
136
- this.debugLog(`Camera: ${this.accessory.displayName} pushchanges: ${(0, super_stringify_1.default)(req)}`);
137
- this.updateHomeKitCharacteristics();
138
- this.OnCached = this.On;
139
- this.accessory.context.On = this.OnCached;
140
- }
141
- catch (e) {
142
- this.errorLog(`Camera: ${this.accessory.displayName} failed pushChanges with OpenAPI Connection`);
143
- if (this.deviceLogging.includes('debug')) {
144
- this.errorLog(`Camera: ${this.accessory.displayName} failed pushChanges with OpenAPI Connection,` + ` Error Message: ${(0, super_stringify_1.default)(e.message)}`);
132
+ req.on('error', (e) => {
133
+ this.errorLog(`${this.device.remoteType}: ${this.accessory.displayName} error message: ${e.message}`);
134
+ });
135
+ req.write(body);
136
+ req.end();
137
+ this.debugLog(`${this.device.remoteType}: ${this.accessory.displayName} pushchanges: ${(0, super_stringify_1.default)(req)}`);
138
+ this.updateHomeKitCharacteristics();
139
+ this.OnCached = this.On;
140
+ this.accessory.context.On = this.OnCached;
141
+ }
142
+ catch (e) {
143
+ this.errorLog(`${this.device.remoteType}: ${this.accessory.displayName} failed pushChanges with OpenAPI Connection`);
144
+ if (this.deviceLogging.includes('debug')) {
145
+ this.errorLog(`${this.device.remoteType}: ${this.accessory.displayName} failed pushChanges with OpenAPI Connection,`
146
+ + ` Error Message: ${(0, super_stringify_1.default)(e.message)}`);
147
+ }
148
+ this.apiError(e);
145
149
  }
146
- this.apiError(e);
147
150
  }
148
151
  }
149
152
  async statusCode({ res }) {
150
153
  switch (res.statusCode) {
151
154
  case 151:
152
- this.errorLog(`Camera: ${this.accessory.displayName} Command not supported by this device type.`);
155
+ this.errorLog(`${this.device.remoteType}: ${this.accessory.displayName} Command not supported by this device type.`);
153
156
  break;
154
157
  case 152:
155
- this.errorLog(`Camera: ${this.accessory.displayName} Device not found.`);
158
+ this.errorLog(`${this.device.remoteType}: ${this.accessory.displayName} Device not found.`);
156
159
  break;
157
160
  case 160:
158
- this.errorLog(`Camera: ${this.accessory.displayName} Command is not supported.`);
161
+ this.errorLog(`${this.device.remoteType}: ${this.accessory.displayName} Command is not supported.`);
159
162
  break;
160
163
  case 161:
161
- this.errorLog(`Camera: ${this.accessory.displayName} Device is offline.`);
164
+ this.errorLog(`${this.device.remoteType}: ${this.accessory.displayName} Device is offline.`);
162
165
  break;
163
166
  case 171:
164
- this.errorLog(`Camera: ${this.accessory.displayName} Hub Device is offline. Hub: ${this.device.hubDeviceId}`);
167
+ this.errorLog(`${this.device.remoteType}: ${this.accessory.displayName} Hub Device is offline. Hub: ${this.device.hubDeviceId}`);
165
168
  break;
166
169
  case 190:
167
- this.errorLog(`Camera: ${this.accessory.displayName} Device internal error due to device states not synchronized` +
170
+ this.errorLog(`${this.device.remoteType}: ${this.accessory.displayName} Device internal error due to device states not synchronized` +
168
171
  ` with server, Or command: ${(0, super_stringify_1.default)(res)} format is invalid`);
169
172
  break;
170
173
  case 100:
171
- this.debugLog(`Camera: ${this.accessory.displayName} Command successfully sent.`);
174
+ this.debugLog(`${this.device.remoteType}: ${this.accessory.displayName} Command successfully sent.`);
172
175
  break;
173
176
  default:
174
- this.debugLog(`Camera: ${this.accessory.displayName} Unknown statusCode.`);
177
+ this.debugLog(`${this.device.remoteType}: ${this.accessory.displayName} Unknown statusCode.`);
175
178
  }
176
179
  }
177
180
  async apiError(e) {
178
181
  this.switchService.updateCharacteristic(this.platform.Characteristic.On, e);
179
182
  //throw new this.platform.api.hap.HapStatusError(HAPStatus.SERVICE_COMMUNICATION_FAILURE);
180
183
  }
184
+ async openAPI() {
185
+ if (!this.device.openAPI) {
186
+ this.OpenAPI = true;
187
+ }
188
+ else {
189
+ this.OpenAPI = this.device.openAPI;
190
+ }
191
+ this.debugLog(`${this.device.remoteType}: ${this.accessory.displayName} Using OpenAPI: ${this.OpenAPI}`);
192
+ }
181
193
  async config(device) {
182
194
  let config = {};
183
195
  if (device.ircam) {
@@ -186,26 +198,29 @@ class Camera {
186
198
  if (device.logging !== undefined) {
187
199
  config['logging'] = device.logging;
188
200
  }
201
+ if (device.openAPI !== undefined) {
202
+ config['openAPI'] = device.openAPI;
203
+ }
189
204
  if (Object.entries(config).length !== 0) {
190
- this.infoLog(`Camera: ${this.accessory.displayName} Config: ${(0, super_stringify_1.default)(config)}`);
205
+ this.infoLog(`${this.device.remoteType}: ${this.accessory.displayName} Config: ${(0, super_stringify_1.default)(config)}`);
191
206
  }
192
207
  }
193
208
  async logs(device) {
194
209
  if (this.platform.debugMode) {
195
210
  this.deviceLogging = this.accessory.context.logging = 'debugMode';
196
- this.debugLog(`Camera: ${this.accessory.displayName} Using Debug Mode Logging: ${this.deviceLogging}`);
211
+ this.debugLog(`${this.device.remoteType}: ${this.accessory.displayName} Using Debug Mode Logging: ${this.deviceLogging}`);
197
212
  }
198
213
  else if (device.logging) {
199
214
  this.deviceLogging = this.accessory.context.logging = device.logging;
200
- this.debugLog(`Camera: ${this.accessory.displayName} Using Device Config Logging: ${this.deviceLogging}`);
215
+ this.debugLog(`${this.device.remoteType}: ${this.accessory.displayName} Using Device Config Logging: ${this.deviceLogging}`);
201
216
  }
202
217
  else if (this.platform.config.options?.logging) {
203
218
  this.deviceLogging = this.accessory.context.logging = this.platform.config.options?.logging;
204
- this.debugLog(`Camera: ${this.accessory.displayName} Using Platform Config Logging: ${this.deviceLogging}`);
219
+ this.debugLog(`${this.device.remoteType}: ${this.accessory.displayName} Using Platform Config Logging: ${this.deviceLogging}`);
205
220
  }
206
221
  else {
207
222
  this.deviceLogging = this.accessory.context.logging = 'standard';
208
- this.debugLog(`Camera: ${this.accessory.displayName} Logging Not Set, Using: ${this.deviceLogging}`);
223
+ this.debugLog(`${this.device.remoteType}: ${this.accessory.displayName} Logging Not Set, Using: ${this.deviceLogging}`);
209
224
  }
210
225
  }
211
226
  /**