@homebridge-plugins/homebridge-tuya 2.2.1-beta.0 → 2.2.1

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 (121) hide show
  1. package/dist/accessory/AccessoryFactory.js +32 -7
  2. package/dist/accessory/AccessoryFactory.js.map +1 -1
  3. package/dist/accessory/AirConditionerAccessory.js.map +1 -1
  4. package/dist/accessory/AirPurifierAccessory.js.map +1 -1
  5. package/dist/accessory/BaseAccessory.js +5 -5
  6. package/dist/accessory/BaseAccessory.js.map +1 -1
  7. package/dist/accessory/CameraAccessory.js.map +1 -1
  8. package/dist/accessory/CarbonDioxideSensorAccessory.js.map +1 -1
  9. package/dist/accessory/CarbonMonoxideSensorAccessory.js.map +1 -1
  10. package/dist/accessory/ContactSensorAccessory.js.map +1 -1
  11. package/dist/accessory/DehumidifierAccessory.js +1 -1
  12. package/dist/accessory/DehumidifierAccessory.js.map +1 -1
  13. package/dist/accessory/DimmerAccessory.js +1 -1
  14. package/dist/accessory/DimmerAccessory.js.map +1 -1
  15. package/dist/accessory/DoorbellAccessory.js.map +1 -1
  16. package/dist/accessory/ExtractionHoodAccessory.js.map +1 -1
  17. package/dist/accessory/FanAccessory.js.map +1 -1
  18. package/dist/accessory/GarageDoorAccessory.js.map +1 -1
  19. package/dist/accessory/HeaterAccessory.js.map +1 -1
  20. package/dist/accessory/HeaterAccessory_old.js.map +1 -1
  21. package/dist/accessory/HumidifierAccessory.js +1 -1
  22. package/dist/accessory/HumidifierAccessory.js.map +1 -1
  23. package/dist/accessory/IRAirConditionerAccessory.js +13 -20
  24. package/dist/accessory/IRAirConditionerAccessory.js.map +1 -1
  25. package/dist/accessory/IRControlHubAccessory.js.map +1 -1
  26. package/dist/accessory/IRControlHubSubAccessory.js +1 -2
  27. package/dist/accessory/IRControlHubSubAccessory.js.map +1 -1
  28. package/dist/accessory/IRGenericAccessory.js +1 -2
  29. package/dist/accessory/IRGenericAccessory.js.map +1 -1
  30. package/dist/accessory/LeakSensorAccessory.js.map +1 -1
  31. package/dist/accessory/LightSensorAccessory.js.map +1 -1
  32. package/dist/accessory/LocationWeatherAccessory.js.map +1 -1
  33. package/dist/accessory/LockAccessory.js.map +1 -1
  34. package/dist/accessory/PetFeederAccessory.js.map +1 -1
  35. package/dist/accessory/SceneAccessory.js.map +1 -1
  36. package/dist/accessory/SceneSwitchAccessory.js.map +1 -1
  37. package/dist/accessory/SmokeSensorAccessory.js.map +1 -1
  38. package/dist/accessory/SwitchAccessory.js +3 -4
  39. package/dist/accessory/SwitchAccessory.js.map +1 -1
  40. package/dist/accessory/ThermostatAccessory.js +1 -1
  41. package/dist/accessory/ThermostatAccessory.js.map +1 -1
  42. package/dist/accessory/TowerRackAccessory.js +1 -1
  43. package/dist/accessory/TowerRackAccessory.js.map +1 -1
  44. package/dist/accessory/ValveAccessory.js +1 -1
  45. package/dist/accessory/ValveAccessory.js.map +1 -1
  46. package/dist/accessory/VibrationSensorAccessory.js.map +1 -1
  47. package/dist/accessory/WeatherStationAccessory.js +1 -2
  48. package/dist/accessory/WeatherStationAccessory.js.map +1 -1
  49. package/dist/accessory/WhiteNoiseLightAccessory.js.map +1 -1
  50. package/dist/accessory/WindowCoveringAccessory.js.map +1 -1
  51. package/dist/accessory/WirelessSwitchAccessory.js.map +1 -1
  52. package/dist/accessory/characteristic/Active.js +1 -2
  53. package/dist/accessory/characteristic/Active.js.map +1 -1
  54. package/dist/accessory/characteristic/AirQuality.js +1 -2
  55. package/dist/accessory/characteristic/AirQuality.js.map +1 -1
  56. package/dist/accessory/characteristic/CurrentRelativeHumidity.js +1 -2
  57. package/dist/accessory/characteristic/CurrentRelativeHumidity.js.map +1 -1
  58. package/dist/accessory/characteristic/CurrentTemperature.js +1 -2
  59. package/dist/accessory/characteristic/CurrentTemperature.js.map +1 -1
  60. package/dist/accessory/characteristic/CurrentWeather.js +1 -2
  61. package/dist/accessory/characteristic/CurrentWeather.js.map +1 -1
  62. package/dist/accessory/characteristic/CurrentWeatherByOpenMeteo.js +1 -2
  63. package/dist/accessory/characteristic/CurrentWeatherByOpenMeteo.js.map +1 -1
  64. package/dist/accessory/characteristic/CurrentWetBulbGlobeTemperature.js +5 -7
  65. package/dist/accessory/characteristic/CurrentWetBulbGlobeTemperature.js.map +1 -1
  66. package/dist/accessory/characteristic/EnergyUsage.js +42 -51
  67. package/dist/accessory/characteristic/EnergyUsage.js.map +1 -1
  68. package/dist/accessory/characteristic/Light.js +2 -3
  69. package/dist/accessory/characteristic/Light.js.map +1 -1
  70. package/dist/accessory/characteristic/LightSensor.js +1 -2
  71. package/dist/accessory/characteristic/LightSensor.js.map +1 -1
  72. package/dist/accessory/characteristic/LockPhysicalControls.js +1 -2
  73. package/dist/accessory/characteristic/LockPhysicalControls.js.map +1 -1
  74. package/dist/accessory/characteristic/MotionDetected.js +1 -2
  75. package/dist/accessory/characteristic/MotionDetected.js.map +1 -1
  76. package/dist/accessory/characteristic/Name.js +7 -4
  77. package/dist/accessory/characteristic/Name.js.map +1 -1
  78. package/dist/accessory/characteristic/OccupancyDetected.js +1 -2
  79. package/dist/accessory/characteristic/OccupancyDetected.js.map +1 -1
  80. package/dist/accessory/characteristic/On.js +1 -2
  81. package/dist/accessory/characteristic/On.js.map +1 -1
  82. package/dist/accessory/characteristic/OutletInUse.js +4 -5
  83. package/dist/accessory/characteristic/OutletInUse.js.map +1 -1
  84. package/dist/accessory/characteristic/ProgrammableSwitchEvent.js +2 -3
  85. package/dist/accessory/characteristic/ProgrammableSwitchEvent.js.map +1 -1
  86. package/dist/accessory/characteristic/RelativeHumidityDehumidifierThreshold.js +1 -2
  87. package/dist/accessory/characteristic/RelativeHumidityDehumidifierThreshold.js.map +1 -1
  88. package/dist/accessory/characteristic/RotationSpeed.js +4 -5
  89. package/dist/accessory/characteristic/RotationSpeed.js.map +1 -1
  90. package/dist/accessory/characteristic/SecuritySystemState.js +3 -5
  91. package/dist/accessory/characteristic/SecuritySystemState.js.map +1 -1
  92. package/dist/accessory/characteristic/SwingMode.js +1 -2
  93. package/dist/accessory/characteristic/SwingMode.js.map +1 -1
  94. package/dist/accessory/characteristic/TargetTemperature.js +1 -2
  95. package/dist/accessory/characteristic/TargetTemperature.js.map +1 -1
  96. package/dist/accessory/characteristic/TemperatureDisplayUnits.js +1 -2
  97. package/dist/accessory/characteristic/TemperatureDisplayUnits.js.map +1 -1
  98. package/dist/core/TuyaOpenAPI.js +1 -1
  99. package/dist/core/TuyaOpenAPI.js.map +1 -1
  100. package/dist/core/TuyaOpenMQ.js.map +1 -1
  101. package/dist/device/TuyaCustomDeviceManager.js.map +1 -1
  102. package/dist/device/TuyaDevice.js +2 -2
  103. package/dist/device/TuyaDevice.js.map +1 -1
  104. package/dist/device/TuyaDeviceManager.js +24 -16
  105. package/dist/device/TuyaDeviceManager.js.map +1 -1
  106. package/dist/device/TuyaHomeDeviceManager.js.map +1 -1
  107. package/dist/platform.js +34 -20
  108. package/dist/platform.js.map +1 -1
  109. package/dist/util/FfmpegStreamingProcess.js +1 -1
  110. package/dist/util/FfmpegStreamingProcess.js.map +1 -1
  111. package/dist/util/InfraredTool.js +10 -14
  112. package/dist/util/InfraredTool.js.map +1 -1
  113. package/dist/util/Logger.js.map +1 -1
  114. package/dist/util/TuyaStreamDelegate.js +4 -5
  115. package/dist/util/TuyaStreamDelegate.js.map +1 -1
  116. package/dist/util/color.js +3 -4
  117. package/dist/util/color.js.map +1 -1
  118. package/dist/util/util.js +19 -4
  119. package/dist/util/util.js.map +1 -1
  120. package/package.json +11 -8
  121. package/test/sanitizeName.test.ts +25 -0
package/package.json CHANGED
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "name": "@homebridge-plugins/homebridge-tuya",
3
3
  "displayName": "Homebridge Tuya",
4
- "version": "2.2.1-beta.0",
4
+ "version": "2.2.1",
5
5
  "description": "Forked from 0x5e/homebridge-tuya-platform, with a focus on fixing bugs and adding new device support.",
6
6
  "license": "MIT",
7
7
  "repository": {
@@ -19,8 +19,11 @@
19
19
  }
20
20
  ],
21
21
  "engines": {
22
- "node": ">=14.18.1",
23
- "homebridge": ">=1.3.5"
22
+ "homebridge": "^1.8.0 || ^2.0.0-beta.0",
23
+ "node": "^20 || ^22 || ^24 || ^25"
24
+ },
25
+ "peerDependencies": {
26
+ "homebridge": "^1.8.0 || ^2.0.0-beta.0"
24
27
  },
25
28
  "main": "dist/index.js",
26
29
  "scripts": {
@@ -54,18 +57,18 @@
54
57
  "@types/debounce": "^1.2.1",
55
58
  "@types/jest": "^29.1.2",
56
59
  "@types/lodash.isequal": "^4.5.6",
57
- "@types/node": "^18.11.9",
60
+ "@types/node": "^22.0.0",
58
61
  "@types/uuid": "^8.3.4",
59
62
  "@typescript-eslint/eslint-plugin": "^5.0.0",
60
63
  "@typescript-eslint/parser": "^5.0.0",
61
64
  "eslint": "8.57.1",
62
- "homebridge": "^1.3.5",
65
+ "homebridge": "^2.0.0-beta.0",
63
66
  "jest": "^29.1.2",
64
67
  "nodemon": "^3.1.10",
65
- "rimraf": "^3.0.2",
66
- "ts-jest": "^29.0.3",
68
+ "rimraf": "^5.0.0",
69
+ "ts-jest": "^29.4.6",
67
70
  "ts-node": "^10.3.0",
68
- "typescript": "^4.8.4"
71
+ "typescript": "^5.0.0"
69
72
  },
70
73
  "homebridge": {
71
74
  "plugin_type": "platform",
@@ -0,0 +1,25 @@
1
+ import { sanitizeName } from '../src/util/util';
2
+
3
+ describe('sanitizeName', () => {
4
+ test('removes underscores and collapses to spaces', () => {
5
+ expect(sanitizeName('switch_1')).toBe('switch 1');
6
+ });
7
+
8
+ test('preserves ASCII alphanumeric and apostrophes', () => {
9
+ expect(sanitizeName("John's Lamp")).toBe("John's Lamp");
10
+ });
11
+
12
+ test('preserves accented and non-Latin letters (Unicode letters)', () => {
13
+ expect(sanitizeName('Café')).toBe('Café');
14
+ expect(sanitizeName('Тест123')).toBe('Тест123');
15
+ });
16
+
17
+ test('preserves CJK characters', () => {
18
+ expect(sanitizeName('中文测试')).toBe('中文测试');
19
+ });
20
+
21
+ test('returns undefined if sanitized name is empty or invalid', () => {
22
+ expect(sanitizeName('@@@')).toBeUndefined();
23
+ expect(sanitizeName(' !!! ')).toBeUndefined();
24
+ });
25
+ });