iobroker.sun2000 0.6.2 → 0.7.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.
- package/README.md +15 -3
- package/admin/sun2000.png +0 -0
- package/io-package.json +59 -35
- package/lib/drivers/driver_inverter.js +1 -1
- package/package.json +6 -6
package/README.md
CHANGED
|
@@ -6,6 +6,9 @@
|
|
|
6
6
|

|
|
7
7
|

|
|
8
8
|
[](./docs/README.md)
|
|
9
|
+
[](https://www.paypal.com/donate/?hosted_button_id=ZTX3VP9LZBDCG)
|
|
10
|
+
[](https://github.com/sponsors/bolliy)
|
|
11
|
+
|
|
9
12
|
|
|
10
13
|
[](https://nodei.co/npm/iobroker.sun2000/)
|
|
11
14
|
|
|
@@ -17,12 +20,16 @@ Sentry reporting is used starting with js-controller 3.0.
|
|
|
17
20
|
|
|
18
21
|
## sun2000 adapter for ioBroker
|
|
19
22
|
|
|
20
|
-
Read register data from Huawei SUN2000 inverter and LUNA2000 battery using Modbus TCP.
|
|
23
|
+
Read and write register data from Huawei SUN2000 inverter and LUNA2000 battery using Modbus TCP. Third-party devices can be integrated via the modbus proxy. Even a Huawei SmartLogger can be integrated.
|
|
21
24
|
|
|
22
25
|
[Huawei product information](https://solar.huawei.com/en/professionals/all-products?residential-smart-pv)
|
|
23
26
|
|
|
24
27
|
Feel free to follow the discussions in the german [iobroker forum](https://forum.iobroker.net/topic/71768/test-adapter-sun2000-v0-1-x-huawei-wechselrichter)
|
|
25
28
|
|
|
29
|
+
## Required
|
|
30
|
+
* Node.js 18.x or higher
|
|
31
|
+
* ioBroker host (js-controller) 5.x or higher
|
|
32
|
+
|
|
26
33
|
## Documentation
|
|
27
34
|
|
|
28
35
|
See the [documentation page](./docs/README.md) or
|
|
@@ -52,9 +59,14 @@ browse in the [wiki](https://github.com/bolliy/ioBroker.sun2000/wiki)
|
|
|
52
59
|
Placeholder for the next version (at the beginning of the line):
|
|
53
60
|
### **WORK IN PROGRESS**
|
|
54
61
|
-->
|
|
62
|
+
### 0.7.0 (2024-04-03)
|
|
63
|
+
* breaking changes
|
|
64
|
+
- Node.js 18.x or higher required
|
|
65
|
+
- ioBroker host (js-controller) 5.x or higher
|
|
66
|
+
|
|
55
67
|
### 0.6.2 (2024-03-31)
|
|
56
68
|
* standby detection adjusted
|
|
57
|
-
*
|
|
69
|
+
* improvement of logs
|
|
58
70
|
|
|
59
71
|
### 0.6.1 (2024-03-23)
|
|
60
72
|
* Battery control: After the second failed attempt, the control event is discarded
|
|
@@ -65,7 +77,7 @@ browse in the [wiki](https://github.com/bolliy/ioBroker.sun2000/wiki)
|
|
|
65
77
|
* fix the standby detection #60
|
|
66
78
|
|
|
67
79
|
### 0.5.1 (2024-03-11)
|
|
68
|
-
*
|
|
80
|
+
* config page restructured
|
|
69
81
|
* read only the required string data
|
|
70
82
|
* fix interval medium
|
|
71
83
|
|
package/admin/sun2000.png
CHANGED
|
Binary file
|
package/io-package.json
CHANGED
|
@@ -1,8 +1,21 @@
|
|
|
1
1
|
{
|
|
2
2
|
"common": {
|
|
3
3
|
"name": "sun2000",
|
|
4
|
-
"version": "0.
|
|
4
|
+
"version": "0.7.0",
|
|
5
5
|
"news": {
|
|
6
|
+
"0.7.0": {
|
|
7
|
+
"en": "breaking changes\nNode.js 18.x or higher required\nioBroker host (js-controller) 5.x or higher",
|
|
8
|
+
"de": "änderungen\nNode.js 18.x oder höher erforderlich\nioBroker Host (js-controller) 5.x oder höher",
|
|
9
|
+
"ru": "изменения\nNode.js 18.x или выше требуется\nioBroker host (js-controller) 5.x или выше",
|
|
10
|
+
"pt": "alterações de ruptura\nNode.js 18.x ou superior requerido\nhospedeiro ioBroker (js-controller) 5.x ou superior",
|
|
11
|
+
"nl": "wijzigingen breken\nNode.js 18.x of hoger vereist\nioBroker host (js-controller) 5.x of hoger",
|
|
12
|
+
"fr": "casser les changements\nNode.js 18.x ou plus requis\nioBroker host (js-controller) 5.x ou plus",
|
|
13
|
+
"it": "cambiamenti di rottura\nNode.js 18.x o superiore richiesto\nioBroker host (js-controller) 5.x o superiore",
|
|
14
|
+
"es": "cambios de ruptura\nNode.js 18.x o superior requerido\nioBroker host (js-controller) 5.x o superior",
|
|
15
|
+
"pl": "łamanie zmian\nNode.js 18,x lub wyższa wymagana\njoBroker host (kontroler js-) 5.x lub wyższy",
|
|
16
|
+
"uk": "поломка змін\nNode.js 18.x або вище потрібно\nioBroker host (js-controller) 5.x або вище",
|
|
17
|
+
"zh-cn": "断开更改\n所需节点.js 18.x或更高\nioBroker 主机(js-controller) 5.x或更高"
|
|
18
|
+
},
|
|
6
19
|
"0.6.2": {
|
|
7
20
|
"en": "standby detection adjusted\nImprovement of logs",
|
|
8
21
|
"de": "standby-erkennung angepasst\nVerbesserung der Protokolle",
|
|
@@ -80,19 +93,6 @@
|
|
|
80
93
|
"pl": "odczyt danych strun fotowoltaicznych wolniej (interwał średni)",
|
|
81
94
|
"uk": "читати повільніші дані ПВ (середній інтервал)",
|
|
82
95
|
"zh-cn": "读取较慢的光电字符串数据( 中间隔)"
|
|
83
|
-
},
|
|
84
|
-
"0.4.0": {
|
|
85
|
-
"en": "detect standby mode of inverters (#34)\ndevices in standby often give incorrect values. These are assigned \"0\" (#40)\nthe modbus register and the length are stored in the description of the states\nimplemented modbus-proxy (read-only cache)\nread register data from SDongleA \nadditional loop interval medium (SDongle data)\nIntegration of [NRGkick Wallbox](https://www.nrgkick.com)\nread string data faster (high interval)",
|
|
86
|
-
"de": "standby-modus von wechselrichtern erkennen (#34)\ngeräte im Standby geben oft falsche Werte. Diese werden \"0\" zugeordnet (#40)\ndas modbusregister und die länge werden in der beschreibung der zustände gespeichert\nimplementiert modbus-proxy (nur lesen cache)\nregisterdaten von SDongleA lesen\nzusätzliches Loop-Intervallmedium (SDongle-Daten)\nIntegration von [NRGkick Wallbox](https://www.nrgkick.com)\nstringdaten schneller lesen (hohes intervall)",
|
|
87
|
-
"ru": "#34\nустройства в режиме ожидания часто дают неправильные значения. Назначены \"0\" (#40)\nрегистр modbus и длина хранятся в описании состояний\nреализованный modbus-proxy (только для чтения)\nчитать данные реестра SDongleA\nдополнительная интерактивная среда (данные SDongle)\nИнтеграция [NRGkick Wallbox] (https://www.nrgkick.com)\nчитать строковые данные быстрее (высокий интервал)",
|
|
88
|
-
"pt": "detectar modo de espera de inversores (#34)\ndispositivos em espera muitas vezes dão valores incorretos. Estes são atribuídos \"0\" (#40)\no registro do modbus e o comprimento são armazenados na descrição dos estados\nimplementado modbus-proxy (apenas leitura cache)\nler dados de registro de SDongleA\nmeio de intervalo de loop adicional (dados de SDongle)\nIntegração de [NRGkick Wallbox](https://www.nrgkick.com)\nler dados de cadeia mais rápido (alto intervalo)",
|
|
89
|
-
"nl": "de standbymodus van de inverters detecteren (#34)\napparaten in stand-by geven vaak onjuiste waarden. Deze worden toegewezen aan \"0\" (#40)\nde modbus register en de lengte worden opgeslagen in de beschrijving van de staten\ngeïmplementeerd modbus-proxy (alleen-lezen cache)\nlees registergegevens van SDongleA\nextra loopintervalmedium (SDongle-gegevens)\nIntegratie van [NRGkick Wallbox](https://www.nrgkick.com)\nlees tekstgegevens sneller (hoog interval)",
|
|
90
|
-
"fr": "détecter le mode veille des onduleurs (#34)\nles dispositifs en attente donnent souvent des valeurs incorrectes. Ils sont assignés « 0 » (#40)\nle registre modbus et la longueur sont stockés dans la description des états\nmis en œuvre modbus-proxy (cache de lecture seule)\nlire les données du registre de SDongleA\nmilieu d'intervalle de boucle supplémentaire (données SDongle)\nIntégration de [NRGkick Wallbox](https://www.nrgkick.com)\nlire les données de chaîne plus rapidement (intervalle élevé)",
|
|
91
|
-
"it": "rilevare modalità standby di inverter (#34)\ni dispositivi in standby spesso danno valori errati. Questi sono assegnati \"0\" (#40)\nil registro modbus e la lunghezza sono memorizzate nella descrizione degli stati\nimplementato modbus-proxy ( cache di sola lettura)\nleggere i dati del registro da SDongleA\nintervallo di loop aggiuntivo medio (dati del triangolo)\nIntegrazione [NRGkick Wallbox](https://www.nrgkick.com)\nleggere i dati della stringa più velocemente (alto intervallo)",
|
|
92
|
-
"es": "detectar el modo de espera de los inversores (#34)\ndispositivos en standby a menudo dan valores incorrectos. Estos son asignados \"0\" (#40)\nel registro del modbus y la longitud se almacenan en la descripción de los estados\naplicado modbus-proxy (caché de sólo lectura)\nread register data from SDongleA\nintervalo de bucle adicional medio (datos de SDongle)\nIntegración de [NRGkick Wallbox](https://www.nrgkick.com)\nleer datos de cadena más rápido (intervalo alto)",
|
|
93
|
-
"pl": "wykrywanie trybu czuwania inwerterów (# 34)\nurządzenia w trybie czuwania często dają nieprawidłowe wartości. Są one przypisane \"0\" (# 40)\nrejestr modbus i długość są przechowywane w opisie stanów\nzaimplementowany modbus- proxy (tylko read- cache)\nczytaj dane rejestru z SDongleA\ndodatkowe medium interwałowe pętli (dane SDongle)\nW związku z tym Komisja uznała, że nie ma podstaw, aby stwierdzić, że w odniesieniu do niektórych rodzajów działalności, które nie są objęte zakresem rozporządzenia (WE) nr 659 / 1999, nie można uznać, że działalność ta nie jest zgodna z rynkiem wewnętrznym\nodczyt danych łańcuchowych szybciej (wysoki interwał)",
|
|
94
|
-
"uk": "виявити режим очікування інверторів (#34)\nпристрої в режимі очікування часто дають неправильні значення. Присвоюється \"0\" (#40)\nреєстр модбусів і довжина зберігаються в описі станів\nреалізований модбус-проксі (тільки кеш)\nчитати реєстраційні дані з SDongleA\nдодатковий інтервал петлі середній (SDongle data)\nІнтеграція [NRGkick Wallbox](https://www.nrgkick.com)\nчитати дані рядка швидше (високий інтервал)",
|
|
95
|
-
"zh-cn": "检测反转器的备用模式 (# 34)\n正在待命的设备往往给出错误的值。 这些被分配为\"0\" (# 40)\nmodbus 寄存器和长度存储在状态描述中\n已执行的 modbus- 代理( 只读缓存)\n从 SDongleA 读取寄存器数据\n额外的循环间隔介质( SDongle 数据)\n整合[NRGkick Wallbox](https://www.nrgkick.com)\n更快地读取字符串数据( 高间隔)"
|
|
96
96
|
}
|
|
97
97
|
},
|
|
98
98
|
"titleLang": {
|
|
@@ -109,17 +109,17 @@
|
|
|
109
109
|
"zh-cn": "Huawei sun2000 inverter"
|
|
110
110
|
},
|
|
111
111
|
"desc": {
|
|
112
|
-
"en": "
|
|
113
|
-
"de": "Daten von bis zu 5 Huawei SUN2000 Wechselrichtern und LUNA2000 Batterien
|
|
114
|
-
"ru": "
|
|
115
|
-
"pt": "
|
|
116
|
-
"nl": "
|
|
117
|
-
"fr": "
|
|
118
|
-
"it": "
|
|
119
|
-
"es": "
|
|
120
|
-
"pl": "
|
|
121
|
-
"uk": "
|
|
122
|
-
"zh-cn": "
|
|
112
|
+
"en": "To read and write data from up to 5 Huawei SUN2000 inverters and LUNA2000 batteries via Modbus TCP. Third-party devices can be integrated via the modbus proxy.",
|
|
113
|
+
"de": "Zum Lesen und Schreiben von Daten von bis zu 5 Huawei SUN2000 Wechselrichtern und LUNA2000 Batterien über Modbus TCP. Drittgeräte können über den Modbus Proxy integriert werden.",
|
|
114
|
+
"ru": "Прочитать и писать данные до 5 инверторов Huawei SUN2000 и батарей LUNA2000 через Modbus TCP. Сторонние устройства могут быть интегрированы через modbus proxy.",
|
|
115
|
+
"pt": "Para ler e escrever dados de até 5 inversores Huawei SUN2000 e baterias LUNA2000 via Modbus TCP. Dispositivos de terceiros podem ser integrados através do proxy modbus.",
|
|
116
|
+
"nl": "Gegevens lezen en schrijven van maximaal 5 Huawei SUN2000 omvormers en LUNA2000 batterijen via Modbus TCP. De apparaten van derden kunnen worden geïntegreerd via de modbus proxy.",
|
|
117
|
+
"fr": "Pour lire et écrire des données de jusqu'à 5 onduleurs Huawei SUN2000 et batteries LUNA2000 via Modbus TCP. Les périphériques tiers peuvent être intégrés via le proxy modbus.",
|
|
118
|
+
"it": "Per leggere e scrivere dati da un massimo di 5 inverter Huawei SUN2000 e batterie LUNA2000 tramite Modbus TCP. I dispositivi di terze parti possono essere integrati tramite il proxy modbus.",
|
|
119
|
+
"es": "Para leer y escribir datos de hasta 5 inversores Huawei SUN2000 y baterías LUNA2000 a través de Modbus TCP. Los dispositivos de terceros se pueden integrar a través del modbus proxy.",
|
|
120
|
+
"pl": "Do odczytu i zapisu danych z do 5 Huawei SUN2000 inwerterów i akumulatorów LUNA2000 za pośrednictwem Modbus TCP. Urządzenia trójstronne mogą być zintegrowane za pośrednictwem proxy modbus.",
|
|
121
|
+
"uk": "Щоб читати та писати дані від 5 інверторів Huawei SUN2000 та батарей LUNA2000 через Modbus TCP. Сторонні пристрої можуть бути інтегровані через проксі модбуса.",
|
|
122
|
+
"zh-cn": "通过Modbus TCP读取和写入最多5个Huawei SUN2000反转器和LUNA2000电池的数据。 第三方设备可以通过modbus代理集成."
|
|
123
123
|
},
|
|
124
124
|
"authors": [
|
|
125
125
|
"bolliy <stephan@mante.info>"
|
|
@@ -130,7 +130,7 @@
|
|
|
130
130
|
"sun2000",
|
|
131
131
|
"luna2000",
|
|
132
132
|
"inverter",
|
|
133
|
-
"
|
|
133
|
+
"smartcharger",
|
|
134
134
|
"sdongle"
|
|
135
135
|
],
|
|
136
136
|
"tier": 2,
|
|
@@ -164,26 +164,50 @@
|
|
|
164
164
|
"condition": {
|
|
165
165
|
"operand": "and",
|
|
166
166
|
"rules": [
|
|
167
|
-
"oldVersion<=0.6.
|
|
168
|
-
"newVersion>0.6.
|
|
167
|
+
"oldVersion<=0.6.2",
|
|
168
|
+
"newVersion>0.6.2"
|
|
169
169
|
]
|
|
170
170
|
},
|
|
171
171
|
"title": {
|
|
172
|
-
"en": "node.js 18.x or higher required"
|
|
172
|
+
"en": "node.js 18.x or higher required",
|
|
173
|
+
"de": "node.js 18.x oder höher erforderlich",
|
|
174
|
+
"ru": "node.js 18.x или выше требуется",
|
|
175
|
+
"pt": "node.js 18.x ou superior requerido",
|
|
176
|
+
"nl": "node.js 18.x of hoger vereist",
|
|
177
|
+
"fr": "node.js 18.x ou plus requis",
|
|
178
|
+
"it": "node.js 18.x o superiore richiesto",
|
|
179
|
+
"es": "node.js 18.x o superior requerido",
|
|
180
|
+
"pl": "node.js 18,x lub wyższa wymagana",
|
|
181
|
+
"uk": "node.js 18.x або вище потрібно",
|
|
182
|
+
"zh-cn": "节点.js 18.x或更高"
|
|
173
183
|
},
|
|
174
184
|
"text": {
|
|
175
|
-
"en": "Please try to stay current with your Node.js version because the support is limited in time. As of now all Node.js versions below 18.x are no longer supported. (End Of Life)."
|
|
185
|
+
"en": "Please try to stay current with your Node.js version because the support is limited in time. As of now all Node.js versions below 18.x are no longer supported. (End Of Life).",
|
|
186
|
+
"de": "Bitte versuchen Sie die Node.js-Version aktuell zu halten, da die Unterstützung zeitlich begrenzt ist. Ab sofort werden alle Node.js Versionen unter 18.x nicht mehr unterstützt. (End Of Life).",
|
|
187
|
+
"ru": "Пожалуйста, попытайтесь оставаться в курсе своей версии Node.js, потому что поддержка ограничена во времени. На данный момент все версии Node.js ниже 18.x больше не поддерживаются. (Конец жизни).",
|
|
188
|
+
"pt": "Por favor, tente manter-se atual com sua versão Node.js porque o suporte é limitado a tempo. A partir de agora todas as versões do Node.js abaixo de 18.x não são mais suportadas. (End Of Life).",
|
|
189
|
+
"nl": "Probeer om actueel te blijven met uw Node.js-versie omdat de ondersteuning beperkt is in de tijd. Vanaf nu worden alle Node.js versies onder 18.x niet meer ondersteund. (Einde van het leven).",
|
|
190
|
+
"fr": "Veuillez essayer de rester à jour avec votre version Node.js car le support est limité dans le temps. Toutes les versions de Node.js sous 18.x ne sont plus prises en charge. (Fin de vie).",
|
|
191
|
+
"it": "Si prega di cercare di rimanere corrente con la versione Node.js perché il supporto è limitato nel tempo. A partire da ora tutte le versioni Node.js inferiori a 18.x non sono più supportate. (End Of Life).",
|
|
192
|
+
"es": "Por favor, trate de mantenerse actualizado con su versión Node.js porque el soporte es limitado en el tiempo. A partir de ahora todas las versiones Node.js debajo de 18.x ya no están soportadas. (End Of Life).",
|
|
193
|
+
"pl": "Proszę spróbować pozostać na bieżąco z wersją Node.js ponieważ wsparcie jest ograniczone w czasie. Od teraz wszystkie wersje Node.js poniżej 18.x nie są już obsługiwane. (Koniec życia).",
|
|
194
|
+
"uk": "Будь-ласка, будь ласка, намагайтеся постійно триматися з версією Node.js, оскільки підтримка обмежена в часі. Зараз всі версії Node.js нижче 18.x не підтримуються. (Для життя).",
|
|
195
|
+
"zh-cn": "请尝试保留您的 Node.js 版本, 因为支持时间有限 。 到目前为止,18x以下的所有Node.js版本不再被支持. (寿终."
|
|
176
196
|
},
|
|
177
|
-
"level": "
|
|
197
|
+
"level": "info",
|
|
178
198
|
"buttons": [
|
|
179
199
|
"agree",
|
|
180
200
|
"cancel"
|
|
181
|
-
]
|
|
201
|
+
],
|
|
202
|
+
"link": "https://github.com/bolliy/ioBroker.sun2000/wiki/Update-node.js",
|
|
203
|
+
"linkText": {
|
|
204
|
+
"en": "The node.js update procedure is described here."
|
|
205
|
+
}
|
|
182
206
|
}
|
|
183
207
|
],
|
|
184
208
|
"dependencies": [
|
|
185
209
|
{
|
|
186
|
-
"js-controller": ">=
|
|
210
|
+
"js-controller": ">=5.0.0"
|
|
187
211
|
}
|
|
188
212
|
],
|
|
189
213
|
"globalDependencies": [
|
|
@@ -280,7 +304,7 @@
|
|
|
280
304
|
"role": "indicator.port",
|
|
281
305
|
"read": true,
|
|
282
306
|
"write": false,
|
|
283
|
-
"desc": "
|
|
307
|
+
"desc": "Device modbus port"
|
|
284
308
|
}
|
|
285
309
|
},
|
|
286
310
|
{
|
|
@@ -295,7 +319,7 @@
|
|
|
295
319
|
"role": "indicator.id",
|
|
296
320
|
"read": true,
|
|
297
321
|
"write": false,
|
|
298
|
-
"desc": "
|
|
322
|
+
"desc": "device modbus IDs"
|
|
299
323
|
}
|
|
300
324
|
},
|
|
301
325
|
{
|
|
@@ -70,7 +70,7 @@ class InverterInfo extends DriverBase {
|
|
|
70
70
|
this._errorCount = 0;
|
|
71
71
|
}
|
|
72
72
|
} else {
|
|
73
|
-
if (this._errorCount >
|
|
73
|
+
if (this._errorCount > 3 && this._modbusAllowed) {
|
|
74
74
|
this.log.warn('It will try again when the sun rises for modbus id '+this._modbusId+' :-)');
|
|
75
75
|
this._modbusAllowed = false;
|
|
76
76
|
}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "iobroker.sun2000",
|
|
3
|
-
"version": "0.
|
|
3
|
+
"version": "0.7.0",
|
|
4
4
|
"description": "sun2000",
|
|
5
5
|
"author": {
|
|
6
6
|
"name": "bolliy",
|
|
@@ -19,7 +19,7 @@
|
|
|
19
19
|
"url": "https://github.com/bolliy/ioBroker.sun2000.git"
|
|
20
20
|
},
|
|
21
21
|
"engines": {
|
|
22
|
-
"node": ">=
|
|
22
|
+
"node": ">= 18"
|
|
23
23
|
},
|
|
24
24
|
"dependencies": {
|
|
25
25
|
"@iobroker/adapter-core": "^3.0.6",
|
|
@@ -33,12 +33,12 @@
|
|
|
33
33
|
"@alcalzone/release-script-plugin-license": "^3.7.0",
|
|
34
34
|
"@alcalzone/release-script-plugin-manual-review": "^3.7.0",
|
|
35
35
|
"@iobroker/adapter-dev": "^1.3.0",
|
|
36
|
-
"@iobroker/testing": "^4.1.
|
|
37
|
-
"@tsconfig/node16": "^16.1.
|
|
36
|
+
"@iobroker/testing": "^4.1.1",
|
|
37
|
+
"@tsconfig/node16": "^16.1.3",
|
|
38
38
|
"@types/chai": "^4.3.14",
|
|
39
39
|
"@types/chai-as-promised": "^7.1.8",
|
|
40
40
|
"@types/mocha": "^10.0.4",
|
|
41
|
-
"@types/node": "^20.
|
|
41
|
+
"@types/node": "^20.12.2",
|
|
42
42
|
"@types/proxyquire": "^1.3.31",
|
|
43
43
|
"@types/sinon": "^17.0.3",
|
|
44
44
|
"@types/sinon-chai": "^3.2.12",
|
|
@@ -49,7 +49,7 @@
|
|
|
49
49
|
"proxyquire": "^2.1.3",
|
|
50
50
|
"sinon": "^17.0.1",
|
|
51
51
|
"sinon-chai": "^3.7.0",
|
|
52
|
-
"typescript": "~5.
|
|
52
|
+
"typescript": "~5.4.3"
|
|
53
53
|
},
|
|
54
54
|
"main": "main.js",
|
|
55
55
|
"files": [
|