zigbee-herdsman-converters 14.0.560 → 14.0.563

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.
@@ -1946,7 +1946,9 @@ const converters = {
1946
1946
  case 1:
1947
1947
  return {temperature: calibrateAndPrecisionRoundOptions(value / 10, options, 'temperature')};
1948
1948
  case 2:
1949
- return {humidity: calibrateAndPrecisionRoundOptions(value, options, 'humidity')};
1949
+ return {humidity: calibrateAndPrecisionRoundOptions(
1950
+ (value / (meta.device.manufacturerName === '_TZE200_bjawzodf' ? 10 : 1)),
1951
+ options, 'humidity')};
1950
1952
  case 4:
1951
1953
  return {battery: value};
1952
1954
  default:
@@ -3236,7 +3238,7 @@ const converters = {
3236
3238
  };
3237
3239
 
3238
3240
  let nameAlt = '';
3239
- if (unit === 'A') {
3241
+ if (unit === 'A' || unit === 'pf') {
3240
3242
  if (valRaw < 1) {
3241
3243
  val = precisionRound(valRaw, 3);
3242
3244
  }
@@ -2300,7 +2300,8 @@ const converters = {
2300
2300
  key: ['led_disabled_night'],
2301
2301
  convertSet: async (entity, key, value, meta) => {
2302
2302
  if (['ZNCZ04LM', 'ZNCZ15LM', 'QBCZ14LM', 'QBCZ15LM', 'QBKG19LM', 'QBKG20LM', 'QBKG25LM', 'QBKG26LM',
2303
- 'QBKG31LM', 'QBKG34LM', 'DLKZMK11LM', 'SSM-U01', 'WS-EUK01', 'WS-EUK02'].includes(meta.mapped.model)) {
2303
+ 'QBKG31LM', 'QBKG34LM', 'DLKZMK11LM', 'SSM-U01', 'WS-EUK01', 'WS-EUK02',
2304
+ 'WS-EUK03', 'WS-EUK04'].includes(meta.mapped.model)) {
2304
2305
  await entity.write('aqaraOpple', {0x0203: {value: value ? 1 : 0, type: 0x10}}, manufacturerOptions.xiaomi);
2305
2306
  } else if (['ZNCZ11LM'].includes(meta.mapped.model)) {
2306
2307
  const payload = value ?
@@ -2315,7 +2316,8 @@ const converters = {
2315
2316
  },
2316
2317
  convertGet: async (entity, key, meta) => {
2317
2318
  if (['ZNCZ04LM', 'ZNCZ15LM', 'QBCZ15LM', 'QBCZ14LM', 'QBKG19LM', 'QBKG20LM', 'QBKG25LM', 'QBKG26LM',
2318
- 'QBKG31LM', 'QBKG34LM', 'DLKZMK11LM', 'SSM-U01', 'WS-EUK01', 'WS-EUK02'].includes(meta.mapped.model)) {
2319
+ 'QBKG31LM', 'QBKG34LM', 'DLKZMK11LM', 'SSM-U01', 'WS-EUK01', 'WS-EUK02',
2320
+ 'WS-EUK03', 'WS-EUK04'].includes(meta.mapped.model)) {
2319
2321
  await entity.read('aqaraOpple', [0x0203], manufacturerOptions.xiaomi);
2320
2322
  } else {
2321
2323
  throw new Error('Not supported');
package/devices/acova.js CHANGED
@@ -63,4 +63,34 @@ module.exports = [
63
63
  await reporting.thermostatUnoccupiedHeatingSetpoint(endpoint);
64
64
  },
65
65
  },
66
+ {
67
+ zigbeeModel: ['TAFFETAS2 D1.00P1.02Z1.00'],
68
+ model: 'TAFFETAS2',
69
+ vendor: 'Acova',
70
+ description: 'Taffetas 2 heater',
71
+ fromZigbee: [fz.thermostat, fz.hvac_user_interface],
72
+ toZigbee: [
73
+ tz.thermostat_local_temperature,
74
+ tz.thermostat_system_mode,
75
+ tz.thermostat_occupied_heating_setpoint,
76
+ tz.thermostat_unoccupied_heating_setpoint,
77
+ tz.thermostat_occupied_cooling_setpoint,
78
+ tz.thermostat_running_state,
79
+ ],
80
+ exposes: [
81
+ exposes.climate()
82
+ .withSetpoint('occupied_heating_setpoint', 7, 28, 0.5)
83
+ .withLocalTemperature()
84
+ .withSystemMode(['off', 'heat', 'auto'])
85
+ .withRunningState(['idle', 'heat']),
86
+ ],
87
+ configure: async (device, coordinatorEndpoint, logger) => {
88
+ const endpoint = device.getEndpoint(1);
89
+ await reporting.bind(endpoint, coordinatorEndpoint, ['genPowerCfg', 'hvacThermostat']);
90
+ await reporting.thermostatTemperature(endpoint);
91
+ await reporting.thermostatRunningState(endpoint);
92
+ await reporting.thermostatOccupiedHeatingSetpoint(endpoint);
93
+ await reporting.thermostatUnoccupiedHeatingSetpoint(endpoint);
94
+ },
95
+ },
66
96
  ];
package/devices/adeo.js CHANGED
@@ -112,14 +112,28 @@ module.exports = [
112
112
  zigbeeModel: ['LXEK-2'],
113
113
  model: '9CZA-G1521-Q1A',
114
114
  vendor: 'ADEO',
115
- description: 'ENKI Lexman E27 14W to 100W LED RGBW',
115
+ description: 'ENKI LEXMAN E27 14W to 100W LED RGBW',
116
116
  extend: extend.light_onoff_brightness_colortemp_color(),
117
117
  },
118
+ {
119
+ zigbeeModel: ['LDSENK07'],
120
+ model: 'LDSENK07',
121
+ vendor: 'ADEO',
122
+ description: 'ENKI LEXMAN wireless smart outdoor siren',
123
+ fromZigbee: [fz.battery, fz.ias_siren],
124
+ toZigbee: [tz.warning],
125
+ exposes: [e.warning(), e.battery(), e.battery_low(), e.tamper()],
126
+ configure: async (device, coordinatorEndpoint, logger) => {
127
+ device.defaultSendRequestWhen = 'immediate';
128
+ device.save();
129
+ await device.getEndpoint(1).unbind('genPollCtrl', coordinatorEndpoint);
130
+ },
131
+ },
118
132
  {
119
133
  zigbeeModel: ['ZBEK-2'],
120
134
  model: 'IG-CDZOTAAG014RA-MAN',
121
135
  vendor: 'ADEO',
122
- description: 'ENKI Lexman E27 14W to 100W LED RGBW v2',
136
+ description: 'ENKI LEXMAN E27 14W to 100W LED RGBW v2',
123
137
  extend: extend.light_onoff_brightness_colortemp_color({colorTempRange: [153, 370]}),
124
138
  },
125
139
  {
@@ -133,7 +147,7 @@ module.exports = [
133
147
  zigbeeModel: ['LXEK-7'],
134
148
  model: '9CZA-A806ST-Q1Z',
135
149
  vendor: 'ADEO',
136
- description: 'ENKI Lexman E27 LED white',
150
+ description: 'ENKI LEXMAN E27 LED white',
137
151
  extend: extend.light_onoff_brightness_colortemp({colorTempRange: [153, 370]}),
138
152
  },
139
153
  {
@@ -157,7 +171,7 @@ module.exports = [
157
171
  zigbeeModel: ['LDSENK10'],
158
172
  model: 'LDSENK10',
159
173
  vendor: 'ADEO',
160
- description: 'LEXMAN motion sensor',
174
+ description: 'ENKI LEXMAN motion sensor',
161
175
  fromZigbee: [fz.ias_occupancy_alarm_1],
162
176
  toZigbee: [],
163
177
  exposes: [e.occupancy(), e.battery_low(), e.tamper()],
@@ -26,7 +26,7 @@ module.exports = [
26
26
  },
27
27
  {
28
28
  zigbeeModel: [' Dimmer switch with neutral\u0000\u0000\u0000\u0000'],
29
- model: 'L441C/N4411C/NT4411C',
29
+ model: 'L4411C/N4411C/NT4411C',
30
30
  vendor: 'BTicino',
31
31
  description: 'Dimmer switch with neutral',
32
32
  extend: extend.light_onoff_brightness({noConfigure: true}),
@@ -5,6 +5,13 @@ const e = exposes.presets;
5
5
  const fz = require('../converters/fromZigbee');
6
6
 
7
7
  module.exports = [
8
+ {
9
+ zigbeeModel: ['ZG_LED_DRIVER42CC'],
10
+ model: 'ZG_LED_DRIVER42CC',
11
+ vendor: 'ENVILAR',
12
+ description: 'Zigbee LED driver',
13
+ extend: extend.light_onoff_brightness(),
14
+ },
8
15
  {
9
16
  zigbeeModel: ['ZG50CC-CCT-DRIVER'],
10
17
  model: 'ZG50CC-CCT-DRIVER',
package/devices/hive.js CHANGED
@@ -9,6 +9,13 @@ const e = exposes.presets;
9
9
  const ea = exposes.access;
10
10
 
11
11
  module.exports = [
12
+ {
13
+ zigbeeModel: ['FWGU10Bulb02UK'],
14
+ model: 'FWGU10Bulb02UK',
15
+ vendor: 'Hive',
16
+ description: 'GU10 warm white',
17
+ extend: extend.light_onoff_brightness(),
18
+ },
12
19
  {
13
20
  zigbeeModel: ['MOT003'],
14
21
  model: 'MOT003',
package/devices/insta.js CHANGED
@@ -53,7 +53,7 @@ module.exports = [
53
53
  {ID: 242, profileID: 41440, deviceID: 97},
54
54
  ]},
55
55
  ],
56
- zigbeeModel: ['57005000'],
56
+ zigbeeModel: ['NEXENTRO Switching Actuator', '57005000'],
57
57
  model: '57005000',
58
58
  vendor: 'Insta',
59
59
  description: 'Switching Actuator Mini with input for wall switch',
package/devices/lidl.js CHANGED
@@ -857,4 +857,12 @@ module.exports = [
857
857
  }),
858
858
  ],
859
859
  },
860
+ {
861
+ fingerprint: [{modelID: 'TS0505B', manufacturerName: '_TZ3000_taspddvq'}],
862
+ model: 'HG08383A',
863
+ vendor: 'Lidl',
864
+ description: 'Livarno outdoor LED light chain',
865
+ extend: extend.light_onoff_brightness_colortemp_color({colorTempRange: [153, 500], disableColorTempStartup: true}),
866
+ meta: {applyRedFix: true, enhancedHue: false},
867
+ },
860
868
  ];
package/devices/neo.js CHANGED
@@ -35,7 +35,7 @@ module.exports = [
35
35
  },
36
36
  },
37
37
  {
38
- fingerprint: [{modelID: 'TS0601', manufacturerName: '_TZE200_t1blo2bj'}, {modelID: 'TS0202', manufacturerName: '_TZ3000_kmh5qpmb'}],
38
+ fingerprint: [{modelID: 'TS0601', manufacturerName: '_TZE200_t1blo2bj'}],
39
39
  zigbeeModel: ['1blo2bj'],
40
40
  model: 'NAS-AB02B2',
41
41
  vendor: 'Neo',
@@ -58,7 +58,7 @@ module.exports = [
58
58
  },
59
59
  },
60
60
  {
61
- fingerprint: [{modelID: 'TS0601', manufacturerName: '_TZE200_7hfcudw5'}],
61
+ fingerprint: [{modelID: 'TS0601', manufacturerName: '_TZE200_7hfcudw5'}, {modelID: 'TS0202', manufacturerName: '_TZ3000_kmh5qpmb'}],
62
62
  model: 'NAS-PD07',
63
63
  vendor: 'Neo',
64
64
  description: 'Motion, temperature & humidity sensor',
package/devices/nous.js CHANGED
@@ -17,7 +17,9 @@ module.exports = [
17
17
  exposes: [e.temperature(), e.humidity(), e.battery()],
18
18
  },
19
19
  {
20
- fingerprint: [{modelID: 'TS0601', manufacturerName: '_TZE200_lve3dvpy'}, {modelID: 'TS0601', manufacturerName: '_TZE200_c7emyjom'}],
20
+ fingerprint: [{modelID: 'TS0601', manufacturerName: '_TZE200_lve3dvpy'},
21
+ {modelID: 'TS0601', manufacturerName: '_TZE200_c7emyjom'},
22
+ {modelID: 'TS0601', manufacturerName: '_TZE200_locansqn'}],
21
23
  model: 'SZ-T04',
22
24
  vendor: 'Nous',
23
25
  description: 'Temperature and humidity sensor with clock',
package/devices/nue_3a.js CHANGED
@@ -4,6 +4,32 @@ const tz = require('../converters/toZigbee');
4
4
  const reporting = require('../lib/reporting');
5
5
  const extend = require('../lib/extend');
6
6
  const e = exposes.presets;
7
+ const ea = exposes.access;
8
+
9
+ const fzLocal = {
10
+ LXN59_cover_options: {
11
+ cluster: 'closuresWindowCovering',
12
+ type: ['attributeReport', 'readResponse'],
13
+ convert: (model, msg, publish, options, meta) => {
14
+ const result = {};
15
+ if (msg.data.hasOwnProperty('tuyaMovingState')) {
16
+ const value = msg.data['tuyaMovingState'];
17
+ const movingLookup = {0: 'DOWN', 1: 'UP', 2: 'STOP'};
18
+ result.moving = movingLookup[value];
19
+ }
20
+ return result;
21
+ },
22
+ },
23
+ LXN59_cover_state_via_onoff: {
24
+ cluster: 'genOnOff',
25
+ type: ['attributeReport', 'readResponse'],
26
+ convert: (model, msg, publish, options, meta) => {
27
+ if (msg.data.hasOwnProperty('onOff')) {
28
+ return {state: msg.data['onOff'] === 1 ? 'CLOSE' : 'OPEN'};
29
+ }
30
+ },
31
+ },
32
+ };
7
33
 
8
34
  module.exports = [
9
35
  {
@@ -247,6 +273,40 @@ module.exports = [
247
273
  description: 'Smart 7W E27 light bulb',
248
274
  extend: extend.light_onoff_brightness_colortemp_color(),
249
275
  },
276
+ {
277
+ zigbeeModel: ['LXN59-CS27LX1.0'],
278
+ model: 'ZW-EU-4C',
279
+ vendor: 'Nue / 3A',
280
+ description: 'Zigbee smart curtain switch',
281
+ fromZigbee: [fz.cover_position_tilt, fzLocal.LXN59_cover_state_via_onoff, fzLocal.LXN59_cover_options],
282
+ toZigbee: [tz.cover_state, tz.cover_position_tilt],
283
+ meta: {disableDefaultResponse: true},
284
+ exposes: [e.cover_position(), exposes.enum('moving', ea.STATE, ['UP', 'STOP', 'DOWN'])],
285
+ configure: async (device, coordinatorEndpoint, logger) => {
286
+ const endpoint1 = device.getEndpoint(1);
287
+ await reporting.bind(endpoint1, coordinatorEndpoint, ['genOnOff']);
288
+ await reporting.onOff(endpoint1);
289
+ await reporting.bind(endpoint1, coordinatorEndpoint, ['closuresWindowCovering']);
290
+ await reporting.currentPositionLiftPercentage(endpoint1);
291
+ device.powerSource = 'Mains (single phase)';
292
+ device.save();
293
+ },
294
+ },
295
+ {
296
+ zigbeeModel: ['LXX60-CS27LX1.0'],
297
+ model: 'ZW-EC-01',
298
+ vendor: 'Nue / 3A',
299
+ description: 'Zigbee smart curtain switch',
300
+ extend: extend.switch(),
301
+ configure: async (device, coordinatorEndpoint, logger) => {
302
+ const endpoint1 = device.getEndpoint(1);
303
+ await reporting.bind(endpoint1, coordinatorEndpoint, ['genOnOff']);
304
+ await reporting.bind(endpoint1, coordinatorEndpoint, ['closuresWindowCovering']);
305
+ await reporting.onOff(endpoint1);
306
+ device.powerSource = 'Mains (single phase)';
307
+ device.save();
308
+ },
309
+ },
250
310
  {
251
311
  zigbeeModel: ['LXN56-0S27LX1.1', 'LXN56-0S27LX1.3'],
252
312
  model: 'HGZB-20-UK',
@@ -357,6 +357,18 @@ module.exports = [
357
357
  await reporting.onOff(endpoint);
358
358
  },
359
359
  },
360
+ {
361
+ zigbeeModel: ['CH10AX/SWITCH/1'],
362
+ model: '41E10PBSWMZ-VW',
363
+ vendor: 'Schneider Electric',
364
+ description: 'Wiser 40/300-Series module switch 10A with ControlLink',
365
+ extend: extend.switch(),
366
+ configure: async (device, coordinatorEndpoint, logger) => {
367
+ const endpoint = device.getEndpoint(1);
368
+ await reporting.bind(endpoint, coordinatorEndpoint, ['genOnOff']);
369
+ await reporting.onOff(endpoint);
370
+ },
371
+ },
360
372
  {
361
373
  zigbeeModel: ['SMARTPLUG/1'],
362
374
  model: 'CCT711119',
package/devices/tuya.js CHANGED
@@ -338,7 +338,9 @@ module.exports = [
338
338
  },
339
339
  {
340
340
  fingerprint: [{modelID: 'TS0601', manufacturerName: '_TZE200_8ygsuhe1'},
341
- {modelID: 'TS0601', manufacturerName: '_TZE200_yvx5lh6k'}, {modelID: 'TS0601', manufacturerName: '_TZE200_ryfmq5rl'}],
341
+ {modelID: 'TS0601', manufacturerName: '_TZE200_yvx5lh6k'},
342
+ {modelID: 'TS0601', manufacturerName: '_TZE200_ryfmq5rl'},
343
+ {modelID: 'TS0601', manufacturerName: '_TZE200_c2fmom5z'}],
342
344
  model: 'TS0601_air_quality_sensor',
343
345
  vendor: 'TuYa',
344
346
  description: 'Air quality sensor',
@@ -439,6 +441,14 @@ module.exports = [
439
441
  extend: extend.switch(),
440
442
  whiteLabel: [{vendor: 'Mumubiz', model: 'ZJSB9-80Z'}],
441
443
  },
444
+ {
445
+ fingerprint: [{modelID: 'TS011F', manufacturerName: '_TZ3000_8fdayfch'}],
446
+ model: 'TS011F_relay_switch',
447
+ vendor: 'TuYa',
448
+ description: 'Dry contact relay switch',
449
+ extend: extend.switch(),
450
+ whiteLabel: [{vendor: 'KTNNKG', model: 'ZB1248-10A'}],
451
+ },
442
452
  {
443
453
  fingerprint: [{modelID: 'TS0505B', manufacturerName: '_TZ3000_qqjaziws'},
444
454
  {modelID: 'TS0505B', manufacturerName: '_TZ3000_jtmhndw2'},
package/devices/ubisys.js CHANGED
@@ -640,7 +640,8 @@ module.exports = [
640
640
  fz.command_move, fz.command_stop, fz.lighting_ballast_configuration, fz.level_config, ubisys.fz.dimmer_setup,
641
641
  ubisys.fz.dimmer_setup_genLevelCtrl],
642
642
  toZigbee: [tz.light_onoff_brightness, tz.ballast_config, tz.level_config, ubisys.tz.dimmer_setup,
643
- ubisys.tz.dimmer_setup_genLevelCtrl, ubisys.tz.configure_device_setup, tz.ignore_transition],
643
+ ubisys.tz.dimmer_setup_genLevelCtrl, ubisys.tz.configure_device_setup, tz.ignore_transition, tz.light_brightness_move,
644
+ tz.light_brightness_step],
644
645
  exposes: [e.light_brightness().withLevelConfig(), e.power(),
645
646
  exposes.numeric('ballast_physical_minimum_level', ea.ALL).withValueMin(1).withValueMax(254)
646
647
  .withDescription('Specifies the minimum light output the ballast can achieve.'),
package/devices/xiaomi.js CHANGED
@@ -269,11 +269,19 @@ module.exports = [
269
269
  model: 'WS-USC01',
270
270
  vendor: 'Xiaomi',
271
271
  description: 'Aqara smart wall switch (no neutral, single rocker)',
272
- extend: extend.switch(),
272
+ fromZigbee: [fz.on_off, fz.xiaomi_multistate_action, fz.aqara_opple],
273
+ toZigbee: [tz.on_off, tz.xiaomi_switch_operation_mode_opple,
274
+ tz.xiaomi_flip_indicator_light, tz.aqara_switch_mode_switch],
275
+ exposes: [e.switch(), e.action(['single', 'double']), e.flip_indicator_light(),
276
+ exposes.enum('operation_mode', ea.ALL, ['control_relay', 'decoupled']).withDescription('Decoupled mode'),
277
+ exposes.enum('mode_switch', ea.ALL, ['anti_flicker_mode', 'quick_mode'])
278
+ .withDescription('Anti flicker mode can be used to solve blinking issues of some lights.' +
279
+ 'Quick mode makes the device respond faster.')],
280
+ onEvent: preventReset,
273
281
  configure: async (device, coordinatorEndpoint, logger) => {
274
- const endpoint = device.getEndpoint(1);
275
- await reporting.bind(endpoint, coordinatorEndpoint, ['genOnOff']);
276
- await reporting.onOff(endpoint);
282
+ const endpoint1 = device.getEndpoint(1);
283
+ // set "event" mode
284
+ await endpoint1.write('aqaraOpple', {'mode': 1}, {manufacturerCode: 0x115f, disableResponse: true});
277
285
  },
278
286
  },
279
287
  {
@@ -410,9 +418,9 @@ module.exports = [
410
418
  description: 'Aqara smart wall switch H1 EU (with neutral, single rocker)',
411
419
  fromZigbee: [fz.on_off, fz.xiaomi_power, fz.xiaomi_multistate_action, fz.aqara_opple],
412
420
  toZigbee: [tz.on_off, tz.xiaomi_power, tz.xiaomi_switch_operation_mode_opple, tz.xiaomi_switch_power_outage_memory,
413
- tz.xiaomi_flip_indicator_light],
421
+ tz.xiaomi_flip_indicator_light, tz.xiaomi_led_disabled_night],
414
422
  exposes: [e.switch(), e.action(['single', 'double']), e.power().withAccess(ea.STATE_GET), e.energy(), e.flip_indicator_light(),
415
- e.power_outage_memory(), e.device_temperature().withAccess(ea.STATE),
423
+ e.power_outage_memory(), e.device_temperature().withAccess(ea.STATE), e.led_disabled_night(), e.power_outage_count(),
416
424
  exposes.enum('operation_mode', ea.ALL, ['control_relay', 'decoupled']).withDescription('Decoupled mode')],
417
425
  onEvent: preventReset,
418
426
  configure: async (device, coordinatorEndpoint, logger) => {
@@ -428,7 +436,7 @@ module.exports = [
428
436
  description: 'Aqara smart wall switch H1 EU (with neutral, double rocker)',
429
437
  fromZigbee: [fz.on_off, fz.xiaomi_power, fz.xiaomi_multistate_action, fz.aqara_opple],
430
438
  toZigbee: [tz.on_off, tz.xiaomi_power, tz.xiaomi_switch_operation_mode_opple, tz.xiaomi_switch_power_outage_memory,
431
- tz.xiaomi_flip_indicator_light],
439
+ tz.xiaomi_flip_indicator_light, tz.xiaomi_led_disabled_night],
432
440
  meta: {multiEndpoint: true},
433
441
  endpoint: (device) => {
434
442
  return {'left': 1, 'right': 2};
@@ -439,7 +447,8 @@ module.exports = [
439
447
  exposes.enum('operation_mode', ea.ALL, ['control_relay', 'decoupled']).withDescription('Decoupled mode for right button')
440
448
  .withEndpoint('right'),
441
449
  e.action(['single_left', 'double_left', 'single_right', 'double_right', 'single_both', 'double_both']),
442
- e.device_temperature().withAccess(ea.STATE), e.power_outage_memory(), e.flip_indicator_light()],
450
+ e.device_temperature().withAccess(ea.STATE), e.power_outage_memory(), e.flip_indicator_light(),
451
+ e.led_disabled_night(), e.power_outage_count()],
443
452
  onEvent: preventReset,
444
453
  configure: async (device, coordinatorEndpoint, logger) => {
445
454
  const endpoint1 = device.getEndpoint(1);
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "zigbee-herdsman-converters",
3
- "version": "14.0.560",
3
+ "version": "14.0.563",
4
4
  "description": "Collection of device converters to be used with zigbee-herdsman",
5
5
  "main": "index.js",
6
6
  "files": [