iobroker.zendure-solarflow 2.0.4 → 3.0.0-alpha.3

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 (68) hide show
  1. package/README.md +8 -5
  2. package/admin/build/index.js +35 -35
  3. package/admin/build/index.js.map +2 -2
  4. package/build/constants/constants.js +41 -0
  5. package/build/constants/constants.js.map +7 -0
  6. package/build/helpers/helpers.js +93 -96
  7. package/build/helpers/helpers.js.map +2 -2
  8. package/build/main.js +108 -180
  9. package/build/main.js.map +2 -2
  10. package/build/models/IDeviceAutomationPayload.js.map +1 -1
  11. package/build/models/{IPack2Device.js → IDevicePack.js} +3 -3
  12. package/build/models/IDevicePack.js.map +7 -0
  13. package/build/models/{ISolarFlowDeviceDetails.js → IHaDeviceListData.js} +3 -3
  14. package/build/models/IHaDeviceListData.js.map +7 -0
  15. package/build/models/{ISolarflowDevRegisterResponse.js → IZenHaDeviceDetails.js} +3 -3
  16. package/build/models/IZenHaDeviceDetails.js.map +7 -0
  17. package/build/models/{ISolarFlowPaths.js → IZenHaMqttData.js} +3 -3
  18. package/build/models/IZenHaMqttData.js.map +7 -0
  19. package/build/models/deviceModels/Ace1500.js +77 -0
  20. package/build/models/deviceModels/Ace1500.js.map +7 -0
  21. package/build/models/deviceModels/Aio2400.js +121 -0
  22. package/build/models/deviceModels/Aio2400.js.map +7 -0
  23. package/build/models/deviceModels/Hyper2000.js +200 -0
  24. package/build/models/deviceModels/Hyper2000.js.map +7 -0
  25. package/build/models/deviceModels/Sf2400Ac.js +146 -0
  26. package/build/models/deviceModels/Sf2400Ac.js.map +7 -0
  27. package/build/models/deviceModels/Sf800.js +144 -0
  28. package/build/models/deviceModels/Sf800.js.map +7 -0
  29. package/build/models/deviceModels/SfHub1200.js +179 -0
  30. package/build/models/deviceModels/SfHub1200.js.map +7 -0
  31. package/build/models/deviceModels/SfHub2000.js +177 -0
  32. package/build/models/deviceModels/SfHub2000.js.map +7 -0
  33. package/build/models/deviceModels/ZenHaDevice.js +1093 -0
  34. package/build/models/deviceModels/ZenHaDevice.js.map +7 -0
  35. package/build/services/jobSchedule.js +19 -58
  36. package/build/services/jobSchedule.js.map +2 -2
  37. package/build/services/mqttCloudZenService.js +79 -0
  38. package/build/services/mqttCloudZenService.js.map +7 -0
  39. package/build/services/mqttLocalService.js +70 -0
  40. package/build/services/mqttLocalService.js.map +7 -0
  41. package/build/services/mqttSharedService.js +432 -0
  42. package/build/services/mqttSharedService.js.map +7 -0
  43. package/build/services/zenWebService.js +84 -0
  44. package/build/services/zenWebService.js.map +7 -0
  45. package/io-package.json +70 -27
  46. package/package.json +2 -2
  47. package/build/constants/paths.js +0 -52
  48. package/build/constants/paths.js.map +0 -7
  49. package/build/helpers/createSolarFlowLocalStates.js +0 -113
  50. package/build/helpers/createSolarFlowLocalStates.js.map +0 -7
  51. package/build/helpers/createSolarFlowStates.js +0 -193
  52. package/build/helpers/createSolarFlowStates.js.map +0 -7
  53. package/build/models/IPack2Device.js.map +0 -7
  54. package/build/models/ISolarFlowDeviceDetails.js.map +0 -7
  55. package/build/models/ISolarFlowPaths.js.map +0 -7
  56. package/build/models/ISolarflowDevRegisterResponse.js.map +0 -7
  57. package/build/services/adapterService.js +0 -142
  58. package/build/services/adapterService.js.map +0 -7
  59. package/build/services/calculationService.js +0 -350
  60. package/build/services/calculationService.js.map +0 -7
  61. package/build/services/fallbackMqttService.js +0 -461
  62. package/build/services/fallbackMqttService.js.map +0 -7
  63. package/build/services/fallbackWebService.js +0 -80
  64. package/build/services/fallbackWebService.js.map +0 -7
  65. package/build/services/mqttService.js +0 -1545
  66. package/build/services/mqttService.js.map +0 -7
  67. package/build/services/webService.js +0 -119
  68. package/build/services/webService.js.map +0 -7
@@ -1,461 +0,0 @@
1
- "use strict";
2
- var __create = Object.create;
3
- var __defProp = Object.defineProperty;
4
- var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
5
- var __getOwnPropNames = Object.getOwnPropertyNames;
6
- var __getProtoOf = Object.getPrototypeOf;
7
- var __hasOwnProp = Object.prototype.hasOwnProperty;
8
- var __export = (target, all) => {
9
- for (var name in all)
10
- __defProp(target, name, { get: all[name], enumerable: true });
11
- };
12
- var __copyProps = (to, from, except, desc) => {
13
- if (from && typeof from === "object" || typeof from === "function") {
14
- for (let key of __getOwnPropNames(from))
15
- if (!__hasOwnProp.call(to, key) && key !== except)
16
- __defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable });
17
- }
18
- return to;
19
- };
20
- var __toESM = (mod, isNodeMode, target) => (target = mod != null ? __create(__getProtoOf(mod)) : {}, __copyProps(
21
- // If the importer is in node compatibility mode or this is not an ESM
22
- // file that has been converted to a CommonJS file using a Babel-
23
- // compatible transform (i.e. "__esModule" has not been set), then set
24
- // "default" to the CommonJS "module.exports" for node compatibility.
25
- isNodeMode || !mod || !mod.__esModule ? __defProp(target, "default", { value: mod, enumerable: true }) : target,
26
- mod
27
- ));
28
- var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod);
29
- var fallbackMqttService_exports = {};
30
- __export(fallbackMqttService_exports, {
31
- addOrUpdatePackData: () => addOrUpdatePackData,
32
- connectFallbackMqttClient: () => connectFallbackMqttClient
33
- });
34
- module.exports = __toCommonJS(fallbackMqttService_exports);
35
- var import_mqtt = __toESM(require("mqtt"));
36
- var import_uuidHelper = require("../helpers/uuidHelper");
37
- var import_adapterService = require("./adapterService");
38
- var import_calculationService = require("./calculationService");
39
- var import_createSolarFlowStates = require("../helpers/createSolarFlowStates");
40
- var import_jobSchedule = require("./jobSchedule");
41
- let adapter = void 0;
42
- const addOrUpdatePackData = async (productKey, deviceKey, packData) => {
43
- if (adapter && productKey && deviceKey) {
44
- await packData.forEach(async (x) => {
45
- if (x.sn && adapter) {
46
- const key = (productKey + "." + deviceKey + ".packData." + x.sn).replace(adapter.FORBIDDEN_CHARS, "");
47
- await (adapter == null ? void 0 : adapter.extendObject(key + ".sn", {
48
- type: "state",
49
- common: {
50
- name: {
51
- de: "Seriennummer",
52
- en: "Serial id"
53
- },
54
- type: "string",
55
- desc: "Serial ID",
56
- role: "value",
57
- read: true,
58
- write: false
59
- },
60
- native: {}
61
- }));
62
- await (adapter == null ? void 0 : adapter.setState(key + ".sn", x.sn, true));
63
- if (x.socLevel) {
64
- await (adapter == null ? void 0 : adapter.extendObject(key + ".socLevel", {
65
- type: "state",
66
- common: {
67
- name: {
68
- de: "SOC der Batterie",
69
- en: "soc of battery"
70
- },
71
- type: "number",
72
- desc: "SOC Level",
73
- role: "value",
74
- read: true,
75
- write: false
76
- },
77
- native: {}
78
- }));
79
- await (adapter == null ? void 0 : adapter.setState(key + ".socLevel", x.socLevel, true));
80
- }
81
- if (x.maxTemp) {
82
- await (adapter == null ? void 0 : adapter.extendObject(key + ".maxTemp", {
83
- type: "state",
84
- common: {
85
- name: {
86
- de: "Max. Temperatur der Batterie",
87
- en: "max temp. of battery"
88
- },
89
- type: "number",
90
- desc: "Max. Temp",
91
- role: "value",
92
- read: true,
93
- write: false
94
- },
95
- native: {}
96
- }));
97
- await (adapter == null ? void 0 : adapter.setState(
98
- key + ".maxTemp",
99
- x.maxTemp / 10 - 273.15,
100
- true
101
- ));
102
- }
103
- if (x.minVol) {
104
- await (adapter == null ? void 0 : adapter.extendObject(key + ".minVol", {
105
- type: "state",
106
- common: {
107
- name: "minVol",
108
- type: "number",
109
- desc: "minVol",
110
- role: "value",
111
- read: true,
112
- write: false
113
- },
114
- native: {}
115
- }));
116
- await (adapter == null ? void 0 : adapter.setState(key + ".minVol", x.minVol / 100, true));
117
- }
118
- if (x.maxVol) {
119
- await (adapter == null ? void 0 : adapter.extendObject(key + ".maxVol", {
120
- type: "state",
121
- common: {
122
- name: "maxVol",
123
- type: "number",
124
- desc: "maxVol",
125
- role: "value",
126
- read: true,
127
- write: false
128
- },
129
- native: {}
130
- }));
131
- await (adapter == null ? void 0 : adapter.setState(key + ".maxVol", x.maxVol / 100, true));
132
- }
133
- if (x.totalVol) {
134
- await (adapter == null ? void 0 : adapter.extendObject(key + ".totalVol", {
135
- type: "state",
136
- common: {
137
- name: "totalVol",
138
- type: "number",
139
- desc: "totalVol",
140
- role: "value",
141
- read: true,
142
- write: false
143
- },
144
- native: {}
145
- }));
146
- const totalVol = x.totalVol / 100;
147
- await (adapter == null ? void 0 : adapter.setState(key + ".totalVol", totalVol, true));
148
- }
149
- }
150
- });
151
- }
152
- };
153
- const onMessage = async (topic, message) => {
154
- if (adapter) {
155
- let obj = {};
156
- try {
157
- obj = JSON.parse(message.toString());
158
- } catch (e) {
159
- const txt = message.toString();
160
- adapter.log.error(`[JSON PARSE ERROR] ${txt}`);
161
- return;
162
- }
163
- const topicSplitted = topic.split("/");
164
- let productKey = topicSplitted[0];
165
- const deviceKey = topicSplitted[1];
166
- if (deviceKey == "sensor" || deviceKey == "switch") {
167
- return;
168
- }
169
- if (productKey == "E8OdVAA4") {
170
- productKey = "73bkTV";
171
- }
172
- if (!adapter.deviceList.some(
173
- (x) => x.deviceKey == deviceKey && x.productKey == productKey
174
- )) {
175
- const device = {
176
- productName: "Solarflow2.0",
177
- deviceKey,
178
- productKey
179
- };
180
- adapter.deviceList.push(device);
181
- await (0, import_createSolarFlowStates.createSolarFlowStates)(adapter, device);
182
- await (0, import_adapterService.updateSolarFlowState)(
183
- adapter,
184
- productKey,
185
- deviceKey,
186
- "registeredServer",
187
- adapter.config.server
188
- );
189
- }
190
- (0, import_adapterService.updateSolarFlowState)(
191
- adapter,
192
- productKey,
193
- deviceKey,
194
- "lastUpdate",
195
- (/* @__PURE__ */ new Date()).getTime()
196
- );
197
- if ((obj == null ? void 0 : obj.electricLevel) != null && (obj == null ? void 0 : obj.electricLevel) != void 0) {
198
- (0, import_adapterService.updateSolarFlowState)(
199
- adapter,
200
- productKey,
201
- deviceKey,
202
- "electricLevel",
203
- obj.electricLevel
204
- );
205
- if ((adapter == null ? void 0 : adapter.config.useCalculation) && obj.electricLevel == 100) {
206
- (0, import_calculationService.setEnergyWhMax)(adapter, productKey, deviceKey);
207
- }
208
- }
209
- if ((obj == null ? void 0 : obj.packState) != null && (obj == null ? void 0 : obj.packState) != void 0) {
210
- const value = (obj == null ? void 0 : obj.packState) == 0 ? "Idle" : (obj == null ? void 0 : obj.packState) == 1 ? "Charging" : (obj == null ? void 0 : obj.packState) == 2 ? "Discharging" : "Unknown";
211
- (0, import_adapterService.updateSolarFlowState)(adapter, productKey, deviceKey, "packState", value);
212
- }
213
- if ((obj == null ? void 0 : obj.passMode) != null && (obj == null ? void 0 : obj.passMode) != void 0) {
214
- const value = (obj == null ? void 0 : obj.passMode) == 0 ? "Automatic" : (obj == null ? void 0 : obj.passMode) == 1 ? "Always off" : (obj == null ? void 0 : obj.passMode) == 2 ? "Always on" : "Unknown";
215
- (0, import_adapterService.updateSolarFlowState)(adapter, productKey, deviceKey, "passMode", value);
216
- }
217
- if ((obj == null ? void 0 : obj.pass) != null && (obj == null ? void 0 : obj.pass) != void 0) {
218
- const value = (obj == null ? void 0 : obj.pass) == 0 ? false : true;
219
- (0, import_adapterService.updateSolarFlowState)(adapter, productKey, deviceKey, "pass", value);
220
- }
221
- if ((obj == null ? void 0 : obj.autoRecover) != null && (obj == null ? void 0 : obj.autoRecover) != void 0) {
222
- const value = (obj == null ? void 0 : obj.autoRecover) == 0 ? false : true;
223
- (0, import_adapterService.updateSolarFlowState)(
224
- adapter,
225
- productKey,
226
- deviceKey,
227
- "autoRecover",
228
- value
229
- );
230
- }
231
- if ((obj == null ? void 0 : obj.outputHomePower) != null && (obj == null ? void 0 : obj.outputHomePower) != void 0) {
232
- (0, import_adapterService.updateSolarFlowState)(
233
- adapter,
234
- productKey,
235
- deviceKey,
236
- "outputHomePower",
237
- obj.outputHomePower
238
- );
239
- }
240
- if ((obj == null ? void 0 : obj.outputLimit) != null && (obj == null ? void 0 : obj.outputLimit) != void 0) {
241
- (0, import_adapterService.updateSolarFlowState)(
242
- adapter,
243
- productKey,
244
- deviceKey,
245
- "outputLimit",
246
- obj.outputLimit
247
- );
248
- }
249
- if ((obj == null ? void 0 : obj.buzzerSwitch) != null && (obj == null ? void 0 : obj.buzzerSwitch) != void 0) {
250
- const value = (obj == null ? void 0 : obj.buzzerSwitch) == 0 ? false : true;
251
- (0, import_adapterService.updateSolarFlowState)(
252
- adapter,
253
- productKey,
254
- deviceKey,
255
- "buzzerSwitch",
256
- value
257
- );
258
- }
259
- if ((obj == null ? void 0 : obj.outputPackPower) != null && (obj == null ? void 0 : obj.outputPackPower) != void 0) {
260
- (0, import_adapterService.updateSolarFlowState)(
261
- adapter,
262
- productKey,
263
- deviceKey,
264
- "outputPackPower",
265
- obj.outputPackPower
266
- );
267
- (0, import_adapterService.updateSolarFlowState)(adapter, productKey, deviceKey, "packInputPower", 0);
268
- }
269
- if ((obj == null ? void 0 : obj.packInputPower) != null && (obj == null ? void 0 : obj.packInputPower) != void 0) {
270
- (0, import_adapterService.updateSolarFlowState)(
271
- adapter,
272
- productKey,
273
- deviceKey,
274
- "packInputPower",
275
- obj.packInputPower
276
- );
277
- (0, import_adapterService.updateSolarFlowState)(
278
- adapter,
279
- productKey,
280
- deviceKey,
281
- "outputPackPower",
282
- 0
283
- );
284
- }
285
- if ((obj == null ? void 0 : obj.solarInputPower) != null && (obj == null ? void 0 : obj.solarInputPower) != void 0) {
286
- (0, import_adapterService.updateSolarFlowState)(
287
- adapter,
288
- productKey,
289
- deviceKey,
290
- "solarInputPower",
291
- obj.solarInputPower
292
- );
293
- }
294
- if ((obj == null ? void 0 : obj.pvPower1) != null && (obj == null ? void 0 : obj.pvPower1) != void 0) {
295
- (0, import_adapterService.updateSolarFlowState)(
296
- adapter,
297
- productKey,
298
- deviceKey,
299
- "pvPower2",
300
- // Reversed to adjust like offical app
301
- obj.pvPower1
302
- );
303
- }
304
- if ((obj == null ? void 0 : obj.pvPower2) != null && (obj == null ? void 0 : obj.pvPower2) != void 0) {
305
- (0, import_adapterService.updateSolarFlowState)(
306
- adapter,
307
- productKey,
308
- deviceKey,
309
- "pvPower1",
310
- // Reversed to adjust like offical app
311
- obj.pvPower2
312
- );
313
- }
314
- if ((obj == null ? void 0 : obj.solarPower1) != null && (obj == null ? void 0 : obj.solarPower1) != void 0) {
315
- (0, import_adapterService.updateSolarFlowState)(
316
- adapter,
317
- productKey,
318
- deviceKey,
319
- "pvPower1",
320
- obj.solarPower1
321
- );
322
- }
323
- if ((obj == null ? void 0 : obj.solarPower2) != null && (obj == null ? void 0 : obj.solarPower2) != void 0) {
324
- (0, import_adapterService.updateSolarFlowState)(
325
- adapter,
326
- productKey,
327
- deviceKey,
328
- "pvPower2",
329
- obj.solarPower2
330
- );
331
- }
332
- if ((obj == null ? void 0 : obj.remainOutTime) != null && (obj == null ? void 0 : obj.remainOutTime) != void 0) {
333
- (0, import_adapterService.updateSolarFlowState)(
334
- adapter,
335
- productKey,
336
- deviceKey,
337
- "remainOutTime",
338
- obj.remainOutTime
339
- );
340
- }
341
- if ((obj == null ? void 0 : obj.remainInputTime) != null && (obj == null ? void 0 : obj.remainInputTime) != void 0) {
342
- (0, import_adapterService.updateSolarFlowState)(
343
- adapter,
344
- productKey,
345
- deviceKey,
346
- "remainInputTime",
347
- obj.remainInputTime
348
- );
349
- }
350
- if ((obj == null ? void 0 : obj.socSet) != null && (obj == null ? void 0 : obj.socSet) != void 0) {
351
- (0, import_adapterService.updateSolarFlowState)(
352
- adapter,
353
- productKey,
354
- deviceKey,
355
- "socSet",
356
- Number(obj.socSet) / 10
357
- );
358
- }
359
- if ((obj == null ? void 0 : obj.minSoc) != null && (obj == null ? void 0 : obj.minSoc) != void 0) {
360
- (0, import_adapterService.updateSolarFlowState)(
361
- adapter,
362
- productKey,
363
- deviceKey,
364
- "minSoc",
365
- Number(obj.minSoc) / 10
366
- );
367
- }
368
- if ((obj == null ? void 0 : obj.pvBrand) != null && (obj == null ? void 0 : obj.pvBrand) != void 0) {
369
- const value = (obj == null ? void 0 : obj.pvBrand) == 0 ? "Others" : (obj == null ? void 0 : obj.pvBrand) == 1 ? "Hoymiles" : (obj == null ? void 0 : obj.pvBrand) == 2 ? "Enphase" : (obj == null ? void 0 : obj.pvBrand) == 3 ? "APSystems" : (obj == null ? void 0 : obj.pvBrand) == 4 ? "Anker" : (obj == null ? void 0 : obj.pvBrand) == 5 ? "Deye" : (obj == null ? void 0 : obj.pvBrand) == 6 ? "Bosswerk" : "Unknown";
370
- (0, import_adapterService.updateSolarFlowState)(adapter, productKey, deviceKey, "pvBrand", value);
371
- }
372
- if ((obj == null ? void 0 : obj.inverseMaxPower) != null && (obj == null ? void 0 : obj.inverseMaxPower) != void 0) {
373
- (0, import_adapterService.updateSolarFlowState)(
374
- adapter,
375
- productKey,
376
- deviceKey,
377
- "inverseMaxPower",
378
- obj.inverseMaxPower
379
- );
380
- }
381
- if ((obj == null ? void 0 : obj.wifiState) != null && (obj == null ? void 0 : obj.wifiState) != void 0) {
382
- (0, import_adapterService.updateSolarFlowState)(
383
- adapter,
384
- productKey,
385
- deviceKey,
386
- "wifiState",
387
- obj.wifiState == 1 ? "Connected" : "Disconnected"
388
- );
389
- }
390
- if ((obj == null ? void 0 : obj.hubState) != null && (obj == null ? void 0 : obj.hubState) != void 0) {
391
- (0, import_adapterService.updateSolarFlowState)(
392
- adapter,
393
- productKey,
394
- deviceKey,
395
- "hubState",
396
- obj.hubState == 0 ? "Stop output and standby" : "Stop output and shut down"
397
- );
398
- }
399
- if (obj.packData) {
400
- addOrUpdatePackData(productKey, deviceKey, obj.packData);
401
- }
402
- }
403
- };
404
- const onConnected = () => {
405
- adapter == null ? void 0 : adapter.log.info("[onConnected] Connected with MQTT!");
406
- };
407
- const onError = (error) => {
408
- adapter == null ? void 0 : adapter.log.error("Connection to MQTT failed! Error: " + error);
409
- };
410
- const onSubscribeReportTopic = (error) => {
411
- if (error) {
412
- adapter == null ? void 0 : adapter.log.error("Subscription to MQTT failed! Error: " + error);
413
- } else {
414
- adapter == null ? void 0 : adapter.log.debug("Subscription of Report Topic successful!");
415
- }
416
- };
417
- const connectFallbackMqttClient = (_adapter, appKey, secret, mqttServer, mqttPort) => {
418
- var _a;
419
- adapter = _adapter;
420
- const options = {
421
- clientId: (0, import_uuidHelper.generateUniqSerial)(),
422
- username: appKey,
423
- password: secret,
424
- clean: true,
425
- protocolVersion: 5
426
- };
427
- if (import_mqtt.default && adapter && adapter.paths && adapter.deviceList) {
428
- adapter.log.debug(
429
- `[connectMqttClient] Connecting to DEV MQTT broker ${mqttServer + ":" + mqttPort}...`
430
- );
431
- adapter.mqttClient = import_mqtt.default.connect(
432
- "mqtt://" + mqttServer + ":" + mqttPort,
433
- options
434
- );
435
- if (adapter && adapter.mqttClient) {
436
- adapter.mqttClient.on("connect", onConnected);
437
- adapter.mqttClient.on("error", onError);
438
- if (adapter) {
439
- const reportTopic = `${appKey}/#`;
440
- adapter.log.debug(
441
- `[connectMqttClient] Subscribing to MQTT Topic: ${reportTopic}`
442
- );
443
- (_a = adapter.mqttClient) == null ? void 0 : _a.subscribe(reportTopic, onSubscribeReportTopic);
444
- }
445
- adapter.mqttClient.on("message", onMessage);
446
- (0, import_jobSchedule.startResetValuesJob)(adapter);
447
- (0, import_jobSchedule.startCheckStatesAndConnectionJob)(adapter);
448
- if (adapter.config.useCalculation) {
449
- (0, import_jobSchedule.startCalculationJob)(adapter);
450
- }
451
- return true;
452
- }
453
- }
454
- return false;
455
- };
456
- // Annotate the CommonJS export names for ESM import in node:
457
- 0 && (module.exports = {
458
- addOrUpdatePackData,
459
- connectFallbackMqttClient
460
- });
461
- //# sourceMappingURL=fallbackMqttService.js.map
@@ -1,7 +0,0 @@
1
- {
2
- "version": 3,
3
- "sources": ["../../src/services/fallbackMqttService.ts"],
4
- "sourcesContent": ["/* eslint-disable @typescript-eslint/indent */\r\nimport mqtt from \"mqtt\";\r\nimport { ZendureSolarflow } from \"../main\";\r\nimport { generateUniqSerial } from \"../helpers/uuidHelper\";\r\nimport { IPackData } from \"../models/IPackData\";\r\nimport { updateSolarFlowState } from \"./adapterService\";\r\nimport { ISolarFlowMqttProperties } from \"../models/ISolarFlowMqttProperties\";\r\nimport { setEnergyWhMax } from \"./calculationService\";\r\nimport { createSolarFlowStates } from \"../helpers/createSolarFlowStates\";\r\nimport {\r\n startCalculationJob,\r\n startCheckStatesAndConnectionJob,\r\n startResetValuesJob,\r\n} from \"./jobSchedule\";\r\nimport { ISolarFlowDeviceDetails } from \"../models/ISolarFlowDeviceDetails\";\r\n\r\nlet adapter: ZendureSolarflow | undefined = undefined;\r\n\r\nexport const addOrUpdatePackData = async (\r\n productKey: string,\r\n deviceKey: string,\r\n packData: IPackData[]\r\n): Promise<void> => {\r\n if (adapter && productKey && deviceKey) {\r\n await packData.forEach(async (x) => {\r\n // Process data only with a serial id!\r\n if (x.sn && adapter) {\r\n // create a state for the serial id\r\n const key = (\r\n productKey +\r\n \".\" +\r\n deviceKey +\r\n \".packData.\" +\r\n x.sn\r\n ).replace(adapter.FORBIDDEN_CHARS, \"\");\r\n\r\n await adapter?.extendObject(key + \".sn\", {\r\n type: \"state\",\r\n common: {\r\n name: {\r\n de: \"Seriennummer\",\r\n en: \"Serial id\",\r\n },\r\n type: \"string\",\r\n desc: \"Serial ID\",\r\n role: \"value\",\r\n read: true,\r\n write: false,\r\n },\r\n native: {},\r\n });\r\n\r\n await adapter?.setState(key + \".sn\", x.sn, true);\r\n\r\n if (x.socLevel) {\r\n // State f\u00FCr socLevel\r\n await adapter?.extendObject(key + \".socLevel\", {\r\n type: \"state\",\r\n common: {\r\n name: {\r\n de: \"SOC der Batterie\",\r\n en: \"soc of battery\",\r\n },\r\n type: \"number\",\r\n desc: \"SOC Level\",\r\n role: \"value\",\r\n read: true,\r\n write: false,\r\n },\r\n native: {},\r\n });\r\n\r\n await adapter?.setState(key + \".socLevel\", x.socLevel, true);\r\n }\r\n\r\n if (x.maxTemp) {\r\n // State f\u00FCr maxTemp\r\n await adapter?.extendObject(key + \".maxTemp\", {\r\n type: \"state\",\r\n common: {\r\n name: {\r\n de: \"Max. Temperatur der Batterie\",\r\n en: \"max temp. of battery\",\r\n },\r\n type: \"number\",\r\n desc: \"Max. Temp\",\r\n role: \"value\",\r\n read: true,\r\n write: false,\r\n },\r\n native: {},\r\n });\r\n\r\n // Convert Kelvin to Celsius\r\n await adapter?.setState(\r\n key + \".maxTemp\",\r\n x.maxTemp / 10 - 273.15,\r\n true\r\n );\r\n }\r\n\r\n if (x.minVol) {\r\n await adapter?.extendObject(key + \".minVol\", {\r\n type: \"state\",\r\n common: {\r\n name: \"minVol\",\r\n type: \"number\",\r\n desc: \"minVol\",\r\n role: \"value\",\r\n read: true,\r\n write: false,\r\n },\r\n native: {},\r\n });\r\n\r\n await adapter?.setState(key + \".minVol\", x.minVol / 100, true);\r\n }\r\n\r\n if (x.maxVol) {\r\n await adapter?.extendObject(key + \".maxVol\", {\r\n type: \"state\",\r\n common: {\r\n name: \"maxVol\",\r\n type: \"number\",\r\n desc: \"maxVol\",\r\n role: \"value\",\r\n read: true,\r\n write: false,\r\n },\r\n native: {},\r\n });\r\n\r\n await adapter?.setState(key + \".maxVol\", x.maxVol / 100, true);\r\n }\r\n\r\n if (x.totalVol) {\r\n await adapter?.extendObject(key + \".totalVol\", {\r\n type: \"state\",\r\n common: {\r\n name: \"totalVol\",\r\n type: \"number\",\r\n desc: \"totalVol\",\r\n role: \"value\",\r\n read: true,\r\n write: false,\r\n },\r\n native: {},\r\n });\r\n\r\n const totalVol = x.totalVol / 100;\r\n\r\n await adapter?.setState(key + \".totalVol\", totalVol, true);\r\n\r\n // Send Voltage to checkVoltage Method - Check Voltage makes no sense, as no control is possible in fallback mode!\r\n //checkVoltage(adapter, productKey, deviceKey, totalVol);\r\n }\r\n }\r\n });\r\n }\r\n};\r\n\r\nconst onMessage = async (topic: string, message: Buffer): Promise<void> => {\r\n if (adapter) {\r\n let obj: ISolarFlowMqttProperties = {};\r\n try {\r\n //console.log(\"Topic: \" + topic);\r\n //console.log(\"Message: \" + message.toString());\r\n obj = JSON.parse(message.toString());\r\n } catch (e) {\r\n const txt = message.toString();\r\n adapter.log.error(`[JSON PARSE ERROR] ${txt}`);\r\n return;\r\n }\r\n\r\n const topicSplitted = topic.split(\"/\");\r\n let productKey = topicSplitted[0];\r\n const deviceKey = topicSplitted[1];\r\n\r\n //console.log(\"productKey: \" + productKey + \" / deviceKey: \" + deviceKey);\r\n\r\n if (deviceKey == \"sensor\" || deviceKey == \"switch\") {\r\n return;\r\n }\r\n\r\n if (productKey == \"E8OdVAA4\") {\r\n // E8OdVAA4 vom Dev MQTT ist 73bkTV vom App MQTT - wir \u00FCberschreiben diesen damit die angelegten States beim Umswitchen des MQTT weitergenutzt werden k\u00F6nnen.\r\n productKey = \"73bkTV\";\r\n }\r\n\r\n if (\r\n !adapter.deviceList.some(\r\n (x) => x.deviceKey == deviceKey && x.productKey == productKey\r\n )\r\n ) {\r\n // Create an \"fake\" device\r\n const device: ISolarFlowDeviceDetails = {\r\n productName: \"Solarflow2.0\",\r\n deviceKey: deviceKey,\r\n productKey: productKey,\r\n };\r\n adapter.deviceList.push(device);\r\n\r\n // Wir erstellen bzw. aktualisieren die States, erfolgt im \"normalen\" MQTT in der main.ts\r\n await createSolarFlowStates(adapter, device);\r\n\r\n await updateSolarFlowState(\r\n adapter,\r\n productKey,\r\n deviceKey,\r\n \"registeredServer\",\r\n adapter.config.server\r\n );\r\n }\r\n\r\n // set lastUpdate for deviceKey\r\n updateSolarFlowState(\r\n adapter,\r\n productKey,\r\n deviceKey,\r\n \"lastUpdate\",\r\n new Date().getTime()\r\n );\r\n\r\n if (obj?.electricLevel != null && obj?.electricLevel != undefined) {\r\n updateSolarFlowState(\r\n adapter,\r\n productKey,\r\n deviceKey,\r\n \"electricLevel\",\r\n obj.electricLevel\r\n );\r\n\r\n if (adapter?.config.useCalculation && obj.electricLevel == 100) {\r\n setEnergyWhMax(adapter, productKey, deviceKey);\r\n }\r\n }\r\n\r\n if (obj?.packState != null && obj?.packState != undefined) {\r\n const value =\r\n obj?.packState == 0\r\n ? \"Idle\"\r\n : obj?.packState == 1\r\n ? \"Charging\"\r\n : obj?.packState == 2\r\n ? \"Discharging\"\r\n : \"Unknown\";\r\n updateSolarFlowState(adapter, productKey, deviceKey, \"packState\", value);\r\n }\r\n\r\n if (obj?.passMode != null && obj?.passMode != undefined) {\r\n const value =\r\n obj?.passMode == 0\r\n ? \"Automatic\"\r\n : obj?.passMode == 1\r\n ? \"Always off\"\r\n : obj?.passMode == 2\r\n ? \"Always on\"\r\n : \"Unknown\";\r\n updateSolarFlowState(adapter, productKey, deviceKey, \"passMode\", value);\r\n }\r\n\r\n if (obj?.pass != null && obj?.pass != undefined) {\r\n const value = obj?.pass == 0 ? false : true;\r\n\r\n updateSolarFlowState(adapter, productKey, deviceKey, \"pass\", value);\r\n }\r\n\r\n if (obj?.autoRecover != null && obj?.autoRecover != undefined) {\r\n const value = obj?.autoRecover == 0 ? false : true;\r\n\r\n updateSolarFlowState(\r\n adapter,\r\n productKey,\r\n deviceKey,\r\n \"autoRecover\",\r\n value\r\n );\r\n }\r\n\r\n if (obj?.outputHomePower != null && obj?.outputHomePower != undefined) {\r\n updateSolarFlowState(\r\n adapter,\r\n productKey,\r\n deviceKey,\r\n \"outputHomePower\",\r\n obj.outputHomePower\r\n );\r\n }\r\n\r\n if (obj?.outputLimit != null && obj?.outputLimit != undefined) {\r\n updateSolarFlowState(\r\n adapter,\r\n productKey,\r\n deviceKey,\r\n \"outputLimit\",\r\n obj.outputLimit\r\n );\r\n }\r\n\r\n if (obj?.buzzerSwitch != null && obj?.buzzerSwitch != undefined) {\r\n const value = obj?.buzzerSwitch == 0 ? false : true;\r\n\r\n updateSolarFlowState(\r\n adapter,\r\n productKey,\r\n deviceKey,\r\n \"buzzerSwitch\",\r\n value\r\n );\r\n }\r\n\r\n if (obj?.outputPackPower != null && obj?.outputPackPower != undefined) {\r\n updateSolarFlowState(\r\n adapter,\r\n productKey,\r\n deviceKey,\r\n \"outputPackPower\",\r\n obj.outputPackPower\r\n );\r\n\r\n // if outPutPackPower set packInputPower to 0\r\n updateSolarFlowState(adapter, productKey, deviceKey, \"packInputPower\", 0);\r\n }\r\n\r\n if (obj?.packInputPower != null && obj?.packInputPower != undefined) {\r\n updateSolarFlowState(\r\n adapter,\r\n productKey,\r\n deviceKey,\r\n \"packInputPower\",\r\n obj.packInputPower\r\n );\r\n\r\n // if packInputPower set outputPackPower to 0\r\n updateSolarFlowState(\r\n adapter,\r\n productKey,\r\n deviceKey,\r\n \"outputPackPower\",\r\n 0\r\n );\r\n }\r\n\r\n if (obj?.solarInputPower != null && obj?.solarInputPower != undefined) {\r\n updateSolarFlowState(\r\n adapter,\r\n productKey,\r\n deviceKey,\r\n \"solarInputPower\",\r\n obj.solarInputPower\r\n );\r\n }\r\n\r\n if (obj?.pvPower1 != null && obj?.pvPower1 != undefined) {\r\n updateSolarFlowState(\r\n adapter,\r\n productKey,\r\n deviceKey,\r\n \"pvPower2\", // Reversed to adjust like offical app\r\n obj.pvPower1\r\n );\r\n }\r\n\r\n if (obj?.pvPower2 != null && obj?.pvPower2 != undefined) {\r\n updateSolarFlowState(\r\n adapter,\r\n productKey,\r\n deviceKey,\r\n \"pvPower1\", // Reversed to adjust like offical app\r\n obj.pvPower2\r\n );\r\n }\r\n\r\n if (obj?.solarPower1 != null && obj?.solarPower1 != undefined) {\r\n updateSolarFlowState(\r\n adapter,\r\n productKey,\r\n deviceKey,\r\n \"pvPower1\",\r\n obj.solarPower1\r\n );\r\n }\r\n\r\n if (obj?.solarPower2 != null && obj?.solarPower2 != undefined) {\r\n updateSolarFlowState(\r\n adapter,\r\n productKey,\r\n deviceKey,\r\n \"pvPower2\",\r\n obj.solarPower2\r\n );\r\n }\r\n\r\n if (obj?.remainOutTime != null && obj?.remainOutTime != undefined) {\r\n updateSolarFlowState(\r\n adapter,\r\n productKey,\r\n deviceKey,\r\n \"remainOutTime\",\r\n obj.remainOutTime\r\n );\r\n }\r\n\r\n if (obj?.remainInputTime != null && obj?.remainInputTime != undefined) {\r\n updateSolarFlowState(\r\n adapter,\r\n productKey,\r\n deviceKey,\r\n \"remainInputTime\",\r\n obj.remainInputTime\r\n );\r\n }\r\n\r\n if (obj?.socSet != null && obj?.socSet != undefined) {\r\n updateSolarFlowState(\r\n adapter,\r\n productKey,\r\n deviceKey,\r\n \"socSet\",\r\n Number(obj.socSet) / 10\r\n );\r\n }\r\n\r\n if (obj?.minSoc != null && obj?.minSoc != undefined) {\r\n updateSolarFlowState(\r\n adapter,\r\n productKey,\r\n deviceKey,\r\n \"minSoc\",\r\n Number(obj.minSoc) / 10\r\n );\r\n }\r\n\r\n if (obj?.pvBrand != null && obj?.pvBrand != undefined) {\r\n const value =\r\n obj?.pvBrand == 0\r\n ? \"Others\"\r\n : obj?.pvBrand == 1\r\n ? \"Hoymiles\"\r\n : obj?.pvBrand == 2\r\n ? \"Enphase\"\r\n : obj?.pvBrand == 3\r\n ? \"APSystems\"\r\n : obj?.pvBrand == 4\r\n ? \"Anker\"\r\n : obj?.pvBrand == 5\r\n ? \"Deye\"\r\n : obj?.pvBrand == 6\r\n ? \"Bosswerk\"\r\n : \"Unknown\";\r\n updateSolarFlowState(adapter, productKey, deviceKey, \"pvBrand\", value);\r\n }\r\n\r\n if (obj?.inverseMaxPower != null && obj?.inverseMaxPower != undefined) {\r\n updateSolarFlowState(\r\n adapter,\r\n productKey,\r\n deviceKey,\r\n \"inverseMaxPower\",\r\n obj.inverseMaxPower\r\n );\r\n }\r\n\r\n if (obj?.wifiState != null && obj?.wifiState != undefined) {\r\n updateSolarFlowState(\r\n adapter,\r\n productKey,\r\n deviceKey,\r\n \"wifiState\",\r\n obj.wifiState == 1 ? \"Connected\" : \"Disconnected\"\r\n );\r\n }\r\n\r\n if (obj?.hubState != null && obj?.hubState != undefined) {\r\n updateSolarFlowState(\r\n adapter,\r\n productKey,\r\n deviceKey,\r\n \"hubState\",\r\n obj.hubState == 0\r\n ? \"Stop output and standby\"\r\n : \"Stop output and shut down\"\r\n );\r\n }\r\n\r\n if (obj.packData) {\r\n addOrUpdatePackData(productKey, deviceKey, obj.packData);\r\n }\r\n }\r\n};\r\n\r\nconst onConnected = (): void => {\r\n adapter?.log.info(\"[onConnected] Connected with MQTT!\");\r\n};\r\n\r\nconst onError = (error: any): void => {\r\n adapter?.log.error(\"Connection to MQTT failed! Error: \" + error);\r\n};\r\n\r\nconst onSubscribeReportTopic: any = (error: Error | null) => {\r\n if (error) {\r\n adapter?.log.error(\"Subscription to MQTT failed! Error: \" + error);\r\n } else {\r\n adapter?.log.debug(\"Subscription of Report Topic successful!\");\r\n }\r\n};\r\n\r\nexport const connectFallbackMqttClient = (\r\n _adapter: ZendureSolarflow,\r\n appKey: string,\r\n secret: string,\r\n mqttServer: string,\r\n mqttPort: number\r\n): boolean => {\r\n //console.log(\"connectFallbackMqttClient\");\r\n adapter = _adapter;\r\n\r\n const options: mqtt.IClientOptions = {\r\n clientId: generateUniqSerial(),\r\n username: appKey,\r\n password: secret,\r\n clean: true,\r\n protocolVersion: 5,\r\n };\r\n\r\n if (mqtt && adapter && adapter.paths && adapter.deviceList) {\r\n adapter.log.debug(\r\n `[connectMqttClient] Connecting to DEV MQTT broker ${\r\n mqttServer + \":\" + mqttPort\r\n }...`\r\n );\r\n adapter.mqttClient = mqtt.connect(\r\n \"mqtt://\" + mqttServer + \":\" + mqttPort,\r\n options\r\n ); // create a client\r\n\r\n if (adapter && adapter.mqttClient) {\r\n adapter.mqttClient.on(\"connect\", onConnected);\r\n adapter.mqttClient.on(\"error\", onError);\r\n\r\n // Subscribe to Topic (appkey von Zendure)\r\n\r\n if (adapter) {\r\n const reportTopic = `${appKey}/#`;\r\n\r\n adapter.log.debug(\r\n `[connectMqttClient] Subscribing to MQTT Topic: ${reportTopic}`\r\n );\r\n adapter.mqttClient?.subscribe(reportTopic, onSubscribeReportTopic);\r\n }\r\n\r\n adapter.mqttClient.on(\"message\", onMessage);\r\n\r\n // Job starten die states in der Nacht zu resetten\r\n startResetValuesJob(adapter);\r\n\r\n // Job starten die States zu checken\r\n startCheckStatesAndConnectionJob(adapter);\r\n\r\n // Calculation Job starten sofern aktiviert\r\n if (adapter.config.useCalculation) {\r\n startCalculationJob(adapter);\r\n }\r\n\r\n return true;\r\n }\r\n }\r\n return false;\r\n};\r\n"],
5
- "mappings": "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",
6
- "names": ["mqtt"]
7
- }
@@ -1,80 +0,0 @@
1
- "use strict";
2
- var __create = Object.create;
3
- var __defProp = Object.defineProperty;
4
- var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
5
- var __getOwnPropNames = Object.getOwnPropertyNames;
6
- var __getProtoOf = Object.getPrototypeOf;
7
- var __hasOwnProp = Object.prototype.hasOwnProperty;
8
- var __export = (target, all) => {
9
- for (var name in all)
10
- __defProp(target, name, { get: all[name], enumerable: true });
11
- };
12
- var __copyProps = (to, from, except, desc) => {
13
- if (from && typeof from === "object" || typeof from === "function") {
14
- for (let key of __getOwnPropNames(from))
15
- if (!__hasOwnProp.call(to, key) && key !== except)
16
- __defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable });
17
- }
18
- return to;
19
- };
20
- var __toESM = (mod, isNodeMode, target) => (target = mod != null ? __create(__getProtoOf(mod)) : {}, __copyProps(
21
- // If the importer is in node compatibility mode or this is not an ESM
22
- // file that has been converted to a CommonJS file using a Babel-
23
- // compatible transform (i.e. "__esModule" has not been set), then set
24
- // "default" to the CommonJS "module.exports" for node compatibility.
25
- isNodeMode || !mod || !mod.__esModule ? __defProp(target, "default", { value: mod, enumerable: true }) : target,
26
- mod
27
- ));
28
- var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod);
29
- var fallbackWebService_exports = {};
30
- __export(fallbackWebService_exports, {
31
- createDeveloperAccount: () => createDeveloperAccount
32
- });
33
- module.exports = __toCommonJS(fallbackWebService_exports);
34
- var import_axios = __toESM(require("axios"));
35
- var import_paths = require("../constants/paths");
36
- const config = {
37
- headers: {
38
- "Content-Type": "application/json",
39
- "Accept-Language": "de-DE",
40
- Accept: "*/*"
41
- },
42
- timeout: 1e4
43
- };
44
- const createDeveloperAccount = (adapter) => {
45
- adapter.log.info(
46
- "[createDeveloperAccount] Connecting to Zendure Developer Web API..."
47
- );
48
- const body = {
49
- snNumber: adapter.config.snNumber,
50
- account: adapter.config.userName
51
- };
52
- let paths = void 0;
53
- if (adapter.config.server == "eu") {
54
- paths = import_paths.pathsEu;
55
- } else {
56
- paths = import_paths.pathsGlobal;
57
- }
58
- return import_axios.default.post(paths.solarFlowDevRegisterUrl, JSON.stringify(body), config).then(function(response) {
59
- adapter.log.info("Successfully created Developer Account!");
60
- if (response.data && response.data.success == true) {
61
- return response.data.data;
62
- } else {
63
- console.warn("No Response Data!");
64
- return void 0;
65
- }
66
- }).catch(function(error) {
67
- var _a, _b, _c, _d, _e, _f;
68
- if (((_b = (_a = error.response) == null ? void 0 : _a.data) == null ? void 0 : _b.code) && ((_d = (_c = error.response) == null ? void 0 : _c.data) == null ? void 0 : _d.msg)) {
69
- adapter.log.error(
70
- "Failed to created Zendure Developer Account: " + ((_f = (_e = error.response) == null ? void 0 : _e.data) == null ? void 0 : _f.code) + " - " + error.response.data.msg
71
- );
72
- }
73
- return Promise.reject("Failed to created Zendure Developer Account!");
74
- });
75
- };
76
- // Annotate the CommonJS export names for ESM import in node:
77
- 0 && (module.exports = {
78
- createDeveloperAccount
79
- });
80
- //# sourceMappingURL=fallbackWebService.js.map
@@ -1,7 +0,0 @@
1
- {
2
- "version": 3,
3
- "sources": ["../../src/services/fallbackWebService.ts"],
4
- "sourcesContent": ["/* eslint-disable @typescript-eslint/indent */\r\n\r\nimport axios, { AxiosRequestConfig } from \"axios\";\r\nimport { ZendureSolarflow } from \"../main\";\r\nimport { pathsEu, pathsGlobal } from \"../constants/paths\";\r\nimport { ISolarFlowDevRegisterData } from \"../models/ISolarflowDevRegisterResponse\";\r\n\r\nconst config: AxiosRequestConfig = {\r\n headers: {\r\n \"Content-Type\": \"application/json\",\r\n \"Accept-Language\": \"de-DE\",\r\n Accept: \"*/*\",\r\n },\r\n timeout: 10000,\r\n};\r\n\r\nexport const createDeveloperAccount = (\r\n adapter: ZendureSolarflow,\r\n): Promise<ISolarFlowDevRegisterData> => {\r\n adapter.log.info(\r\n \"[createDeveloperAccount] Connecting to Zendure Developer Web API...\",\r\n );\r\n\r\n const body = {\r\n snNumber: adapter.config.snNumber,\r\n account: adapter.config.userName,\r\n };\r\n\r\n let paths = undefined;\r\n\r\n if (adapter.config.server == \"eu\") {\r\n paths = pathsEu;\r\n } else {\r\n paths = pathsGlobal;\r\n }\r\n\r\n return axios\r\n .post(paths.solarFlowDevRegisterUrl, JSON.stringify(body), config)\r\n .then(function (response: axios.AxiosResponse) {\r\n adapter.log.info(\"Successfully created Developer Account!\");\r\n\r\n if (response.data && response.data.success == true) {\r\n return response.data.data;\r\n } else {\r\n console.warn(\"No Response Data!\");\r\n return undefined;\r\n }\r\n })\r\n .catch(function (error) {\r\n if (error.response?.data?.code && error.response?.data?.msg) {\r\n // The request was made and the server responded with a status code\r\n // that falls out of the range of 2xx\r\n adapter.log.error(\r\n \"Failed to created Zendure Developer Account: \" +\r\n error.response?.data?.code +\r\n \" - \" +\r\n error.response.data.msg,\r\n );\r\n }\r\n\r\n return Promise.reject(\"Failed to created Zendure Developer Account!\");\r\n });\r\n};\r\n"],
5
- "mappings": ";;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;AAEA,mBAA0C;AAE1C,mBAAqC;AAGrC,MAAM,SAA6B;AAAA,EACjC,SAAS;AAAA,IACP,gBAAgB;AAAA,IAChB,mBAAmB;AAAA,IACnB,QAAQ;AAAA,EACV;AAAA,EACA,SAAS;AACX;AAEO,MAAM,yBAAyB,CACpC,YACuC;AACvC,UAAQ,IAAI;AAAA,IACV;AAAA,EACF;AAEA,QAAM,OAAO;AAAA,IACX,UAAU,QAAQ,OAAO;AAAA,IACzB,SAAS,QAAQ,OAAO;AAAA,EAC1B;AAEA,MAAI,QAAQ;AAEZ,MAAI,QAAQ,OAAO,UAAU,MAAM;AACjC,YAAQ;AAAA,EACV,OAAO;AACL,YAAQ;AAAA,EACV;AAEA,SAAO,aAAAA,QACJ,KAAK,MAAM,yBAAyB,KAAK,UAAU,IAAI,GAAG,MAAM,EAChE,KAAK,SAAU,UAA+B;AAC7C,YAAQ,IAAI,KAAK,yCAAyC;AAE1D,QAAI,SAAS,QAAQ,SAAS,KAAK,WAAW,MAAM;AAClD,aAAO,SAAS,KAAK;AAAA,IACvB,OAAO;AACL,cAAQ,KAAK,mBAAmB;AAChC,aAAO;AAAA,IACT;AAAA,EACF,CAAC,EACA,MAAM,SAAU,OAAO;AAhD5B;AAiDM,UAAI,iBAAM,aAAN,mBAAgB,SAAhB,mBAAsB,WAAQ,iBAAM,aAAN,mBAAgB,SAAhB,mBAAsB,MAAK;AAG3D,cAAQ,IAAI;AAAA,QACV,oDACE,iBAAM,aAAN,mBAAgB,SAAhB,mBAAsB,QACtB,QACA,MAAM,SAAS,KAAK;AAAA,MACxB;AAAA,IACF;AAEA,WAAO,QAAQ,OAAO,8CAA8C;AAAA,EACtE,CAAC;AACL;",
6
- "names": ["axios"]
7
- }