hap-nodejs 1.1.1-beta.4 → 1.1.1-beta.6

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 (289) hide show
  1. package/@types/bonjour-hap.d.ts +53 -50
  2. package/@types/simple-plist.d.ts +4 -0
  3. package/README.md +19 -16
  4. package/dist/accessories/AirConditioner_accessory.js +30 -28
  5. package/dist/accessories/AirConditioner_accessory.js.map +1 -1
  6. package/dist/accessories/AppleTVRemote_accessory.js +81 -69
  7. package/dist/accessories/AppleTVRemote_accessory.js.map +1 -1
  8. package/dist/accessories/Camera_accessory.js +136 -141
  9. package/dist/accessories/Camera_accessory.js.map +1 -1
  10. package/dist/accessories/Fan_accessory.js +22 -18
  11. package/dist/accessories/Fan_accessory.js.map +1 -1
  12. package/dist/accessories/GarageDoorOpener_accessory.js +35 -33
  13. package/dist/accessories/GarageDoorOpener_accessory.js.map +1 -1
  14. package/dist/accessories/Light-AdaptiveLighting_accessory.js +44 -42
  15. package/dist/accessories/Light-AdaptiveLighting_accessory.js.map +1 -1
  16. package/dist/accessories/Light_accessory.js +34 -32
  17. package/dist/accessories/Light_accessory.js.map +1 -1
  18. package/dist/accessories/Lock_accessory.js +26 -25
  19. package/dist/accessories/Lock_accessory.js.map +1 -1
  20. package/dist/accessories/MotionSensor_accessory.js +16 -13
  21. package/dist/accessories/MotionSensor_accessory.js.map +1 -1
  22. package/dist/accessories/Outlet_accessory.js +22 -20
  23. package/dist/accessories/Outlet_accessory.js.map +1 -1
  24. package/dist/accessories/SmartSpeaker_accessory.js +20 -18
  25. package/dist/accessories/SmartSpeaker_accessory.js.map +1 -1
  26. package/dist/accessories/Sprinkler_accessory.js +37 -34
  27. package/dist/accessories/Sprinkler_accessory.js.map +1 -1
  28. package/dist/accessories/TV_accessory.js +45 -43
  29. package/dist/accessories/TV_accessory.js.map +1 -1
  30. package/dist/accessories/TemperatureSensor_accessory.js +15 -12
  31. package/dist/accessories/TemperatureSensor_accessory.js.map +1 -1
  32. package/dist/accessories/Wi-FiRouter_accessory.d.ts +1 -1
  33. package/dist/accessories/Wi-FiRouter_accessory.d.ts.map +1 -1
  34. package/dist/accessories/Wi-FiRouter_accessory.js +12 -9
  35. package/dist/accessories/Wi-FiRouter_accessory.js.map +1 -1
  36. package/dist/accessories/Wi-FiSatellite_accessory.d.ts +1 -1
  37. package/dist/accessories/Wi-FiSatellite_accessory.d.ts.map +1 -1
  38. package/dist/accessories/Wi-FiSatellite_accessory.js +14 -11
  39. package/dist/accessories/Wi-FiSatellite_accessory.js.map +1 -1
  40. package/dist/accessories/gstreamer-audioProducer.d.ts +3 -3
  41. package/dist/accessories/gstreamer-audioProducer.d.ts.map +1 -1
  42. package/dist/accessories/gstreamer-audioProducer.js +38 -37
  43. package/dist/accessories/gstreamer-audioProducer.js.map +1 -1
  44. package/dist/accessories/types.d.ts +63 -63
  45. package/dist/accessories/types.d.ts.map +1 -1
  46. package/dist/accessories/types.js +87 -83
  47. package/dist/accessories/types.js.map +1 -1
  48. package/dist/index.d.ts +28 -26
  49. package/dist/index.d.ts.map +1 -1
  50. package/dist/index.js +34 -40
  51. package/dist/index.js.map +1 -1
  52. package/dist/internal-types.d.ts +1 -1
  53. package/dist/internal-types.d.ts.map +1 -1
  54. package/dist/internal-types.js +21 -19
  55. package/dist/internal-types.js.map +1 -1
  56. package/dist/lib/Accessory.d.ts +37 -38
  57. package/dist/lib/Accessory.d.ts.map +1 -1
  58. package/dist/lib/Accessory.js +296 -286
  59. package/dist/lib/Accessory.js.map +1 -1
  60. package/dist/lib/Advertiser.d.ts +7 -7
  61. package/dist/lib/Advertiser.d.ts.map +1 -1
  62. package/dist/lib/Advertiser.js +136 -128
  63. package/dist/lib/Advertiser.js.map +1 -1
  64. package/dist/lib/Bridge.d.ts +1 -1
  65. package/dist/lib/Bridge.d.ts.map +1 -1
  66. package/dist/lib/Bridge.js +6 -2
  67. package/dist/lib/Bridge.js.map +1 -1
  68. package/dist/lib/Characteristic.d.ts +41 -40
  69. package/dist/lib/Characteristic.d.ts.map +1 -1
  70. package/dist/lib/Characteristic.js +208 -204
  71. package/dist/lib/Characteristic.js.map +1 -1
  72. package/dist/lib/HAPServer.d.ts +30 -31
  73. package/dist/lib/HAPServer.d.ts.map +1 -1
  74. package/dist/lib/HAPServer.js +229 -220
  75. package/dist/lib/HAPServer.js.map +1 -1
  76. package/dist/lib/Service.d.ts +22 -22
  77. package/dist/lib/Service.d.ts.map +1 -1
  78. package/dist/lib/Service.js +67 -63
  79. package/dist/lib/Service.js.map +1 -1
  80. package/dist/lib/camera/RTPProxy.d.ts +1 -2
  81. package/dist/lib/camera/RTPProxy.d.ts.map +1 -1
  82. package/dist/lib/camera/RTPProxy.js +44 -28
  83. package/dist/lib/camera/RTPProxy.js.map +1 -1
  84. package/dist/lib/camera/RTPStreamManagement.d.ts +33 -34
  85. package/dist/lib/camera/RTPStreamManagement.d.ts.map +1 -1
  86. package/dist/lib/camera/RTPStreamManagement.js +149 -181
  87. package/dist/lib/camera/RTPStreamManagement.js.map +1 -1
  88. package/dist/lib/camera/RecordingManagement.d.ts +17 -19
  89. package/dist/lib/camera/RecordingManagement.d.ts.map +1 -1
  90. package/dist/lib/camera/RecordingManagement.js +151 -160
  91. package/dist/lib/camera/RecordingManagement.js.map +1 -1
  92. package/dist/lib/camera/index.d.ts +3 -3
  93. package/dist/lib/camera/index.d.ts.map +1 -1
  94. package/dist/lib/camera/index.js +6 -3
  95. package/dist/lib/camera/index.js.map +1 -1
  96. package/dist/lib/controller/AdaptiveLightingController.d.ts +33 -33
  97. package/dist/lib/controller/AdaptiveLightingController.d.ts.map +1 -1
  98. package/dist/lib/controller/AdaptiveLightingController.js +144 -152
  99. package/dist/lib/controller/AdaptiveLightingController.js.map +1 -1
  100. package/dist/lib/controller/CameraController.d.ts +20 -22
  101. package/dist/lib/controller/CameraController.d.ts.map +1 -1
  102. package/dist/lib/controller/CameraController.js +78 -74
  103. package/dist/lib/controller/CameraController.js.map +1 -1
  104. package/dist/lib/controller/Controller.d.ts +4 -4
  105. package/dist/lib/controller/Controller.d.ts.map +1 -1
  106. package/dist/lib/controller/Controller.js +8 -5
  107. package/dist/lib/controller/Controller.js.map +1 -1
  108. package/dist/lib/controller/DoorbellController.d.ts +4 -5
  109. package/dist/lib/controller/DoorbellController.d.ts.map +1 -1
  110. package/dist/lib/controller/DoorbellController.js +13 -9
  111. package/dist/lib/controller/DoorbellController.js.map +1 -1
  112. package/dist/lib/controller/RemoteController.d.ts +37 -39
  113. package/dist/lib/controller/RemoteController.d.ts.map +1 -1
  114. package/dist/lib/controller/RemoteController.js +197 -208
  115. package/dist/lib/controller/RemoteController.js.map +1 -1
  116. package/dist/lib/controller/index.d.ts +5 -5
  117. package/dist/lib/controller/index.d.ts.map +1 -1
  118. package/dist/lib/controller/index.js +8 -5
  119. package/dist/lib/controller/index.js.map +1 -1
  120. package/dist/lib/datastream/DataStreamManagement.d.ts +2 -2
  121. package/dist/lib/datastream/DataStreamManagement.d.ts.map +1 -1
  122. package/dist/lib/datastream/DataStreamManagement.js +39 -39
  123. package/dist/lib/datastream/DataStreamManagement.js.map +1 -1
  124. package/dist/lib/datastream/DataStreamParser.d.ts +0 -1
  125. package/dist/lib/datastream/DataStreamParser.d.ts.map +1 -1
  126. package/dist/lib/datastream/DataStreamParser.js +77 -57
  127. package/dist/lib/datastream/DataStreamParser.js.map +1 -1
  128. package/dist/lib/datastream/DataStreamServer.d.ts +22 -23
  129. package/dist/lib/datastream/DataStreamServer.d.ts.map +1 -1
  130. package/dist/lib/datastream/DataStreamServer.js +164 -154
  131. package/dist/lib/datastream/DataStreamServer.js.map +1 -1
  132. package/dist/lib/datastream/index.d.ts +3 -3
  133. package/dist/lib/datastream/index.d.ts.map +1 -1
  134. package/dist/lib/datastream/index.js +6 -3
  135. package/dist/lib/datastream/index.js.map +1 -1
  136. package/dist/lib/definitions/CharacteristicDefinitions.d.ts +11 -1
  137. package/dist/lib/definitions/CharacteristicDefinitions.d.ts.map +1 -1
  138. package/dist/lib/definitions/CharacteristicDefinitions.js +1218 -957
  139. package/dist/lib/definitions/CharacteristicDefinitions.js.map +1 -1
  140. package/dist/lib/definitions/ServiceDefinitions.d.ts +1 -1
  141. package/dist/lib/definitions/ServiceDefinitions.d.ts.map +1 -1
  142. package/dist/lib/definitions/ServiceDefinitions.js +695 -620
  143. package/dist/lib/definitions/ServiceDefinitions.js.map +1 -1
  144. package/dist/lib/definitions/generate-definitions.d.ts +3 -3
  145. package/dist/lib/definitions/generate-definitions.d.ts.map +1 -1
  146. package/dist/lib/definitions/generate-definitions.js +256 -244
  147. package/dist/lib/definitions/generate-definitions.js.map +1 -1
  148. package/dist/lib/definitions/generator-configuration.d.ts +1 -1
  149. package/dist/lib/definitions/generator-configuration.d.ts.map +1 -1
  150. package/dist/lib/definitions/generator-configuration.js +170 -160
  151. package/dist/lib/definitions/generator-configuration.js.map +1 -1
  152. package/dist/lib/definitions/index.d.ts +2 -2
  153. package/dist/lib/definitions/index.d.ts.map +1 -1
  154. package/dist/lib/definitions/index.js +5 -2
  155. package/dist/lib/definitions/index.js.map +1 -1
  156. package/dist/lib/gen/HomeKit.d.ts +7 -0
  157. package/dist/lib/gen/HomeKit.d.ts.map +1 -0
  158. package/dist/lib/gen/HomeKit.js +8 -0
  159. package/dist/lib/gen/HomeKit.js.map +1 -0
  160. package/dist/lib/model/AccessoryInfo.d.ts +3 -4
  161. package/dist/lib/model/AccessoryInfo.d.ts.map +1 -1
  162. package/dist/lib/model/AccessoryInfo.js +53 -50
  163. package/dist/lib/model/AccessoryInfo.js.map +1 -1
  164. package/dist/lib/model/ControllerStorage.d.ts +3 -3
  165. package/dist/lib/model/ControllerStorage.d.ts.map +1 -1
  166. package/dist/lib/model/ControllerStorage.js +23 -18
  167. package/dist/lib/model/ControllerStorage.js.map +1 -1
  168. package/dist/lib/model/HAPStorage.d.ts +2 -2
  169. package/dist/lib/model/HAPStorage.d.ts.map +1 -1
  170. package/dist/lib/model/HAPStorage.js +11 -4
  171. package/dist/lib/model/HAPStorage.js.map +1 -1
  172. package/dist/lib/model/IdentifierCache.d.ts +1 -1
  173. package/dist/lib/model/IdentifierCache.d.ts.map +1 -1
  174. package/dist/lib/model/IdentifierCache.js +27 -19
  175. package/dist/lib/model/IdentifierCache.js.map +1 -1
  176. package/dist/lib/tv/AccessControlManagement.d.ts +9 -9
  177. package/dist/lib/tv/AccessControlManagement.d.ts.map +1 -1
  178. package/dist/lib/tv/AccessControlManagement.js +29 -27
  179. package/dist/lib/tv/AccessControlManagement.js.map +1 -1
  180. package/dist/lib/util/checkName.d.ts +2 -2
  181. package/dist/lib/util/checkName.d.ts.map +1 -1
  182. package/dist/lib/util/checkName.js +9 -6
  183. package/dist/lib/util/checkName.js.map +1 -1
  184. package/dist/lib/util/clone.d.ts.map +1 -1
  185. package/dist/lib/util/clone.js +5 -1
  186. package/dist/lib/util/clone.js.map +1 -1
  187. package/dist/lib/util/color-utils.d.ts +1 -1
  188. package/dist/lib/util/color-utils.d.ts.map +1 -1
  189. package/dist/lib/util/color-utils.js +9 -4
  190. package/dist/lib/util/color-utils.js.map +1 -1
  191. package/dist/lib/util/eventedhttp.d.ts +22 -23
  192. package/dist/lib/util/eventedhttp.d.ts.map +1 -1
  193. package/dist/lib/util/eventedhttp.js +116 -109
  194. package/dist/lib/util/eventedhttp.js.map +1 -1
  195. package/dist/lib/util/hapCrypto.d.ts +2 -3
  196. package/dist/lib/util/hapCrypto.d.ts.map +1 -1
  197. package/dist/lib/util/hapCrypto.js +40 -31
  198. package/dist/lib/util/hapCrypto.js.map +1 -1
  199. package/dist/lib/util/hapStatusError.d.ts +1 -1
  200. package/dist/lib/util/hapStatusError.d.ts.map +1 -1
  201. package/dist/lib/util/hapStatusError.js +8 -4
  202. package/dist/lib/util/hapStatusError.js.map +1 -1
  203. package/dist/lib/util/net-utils.d.ts +1 -1
  204. package/dist/lib/util/net-utils.js +23 -17
  205. package/dist/lib/util/net-utils.js.map +1 -1
  206. package/dist/lib/util/once.d.ts.map +1 -1
  207. package/dist/lib/util/once.js +6 -2
  208. package/dist/lib/util/once.js.map +1 -1
  209. package/dist/lib/util/promise-utils.d.ts +1 -1
  210. package/dist/lib/util/promise-utils.d.ts.map +1 -1
  211. package/dist/lib/util/promise-utils.js +10 -3
  212. package/dist/lib/util/promise-utils.js.map +1 -1
  213. package/dist/lib/util/request-util.d.ts +2 -3
  214. package/dist/lib/util/request-util.d.ts.map +1 -1
  215. package/dist/lib/util/request-util.js +19 -11
  216. package/dist/lib/util/request-util.js.map +1 -1
  217. package/dist/lib/util/time.d.ts +0 -1
  218. package/dist/lib/util/time.d.ts.map +1 -1
  219. package/dist/lib/util/time.js +11 -6
  220. package/dist/lib/util/time.js.map +1 -1
  221. package/dist/lib/util/tlv.d.ts +0 -1
  222. package/dist/lib/util/tlv.d.ts.map +1 -1
  223. package/dist/lib/util/tlv.js +43 -28
  224. package/dist/lib/util/tlv.js.map +1 -1
  225. package/dist/lib/util/uuid.d.ts +0 -1
  226. package/dist/lib/util/uuid.d.ts.map +1 -1
  227. package/dist/lib/util/uuid.js +38 -26
  228. package/dist/lib/util/uuid.js.map +1 -1
  229. package/dist/types.d.ts +24 -24
  230. package/dist/types.d.ts.map +1 -1
  231. package/dist/types.js +5 -3
  232. package/dist/types.js.map +1 -1
  233. package/package.json +45 -50
  234. package/dist/lib/dbus/align.d.ts +0 -2
  235. package/dist/lib/dbus/align.d.ts.map +0 -1
  236. package/dist/lib/dbus/align.js +0 -12
  237. package/dist/lib/dbus/align.js.map +0 -1
  238. package/dist/lib/dbus/bus.d.ts +0 -38
  239. package/dist/lib/dbus/bus.d.ts.map +0 -1
  240. package/dist/lib/dbus/bus.js +0 -222
  241. package/dist/lib/dbus/bus.js.map +0 -1
  242. package/dist/lib/dbus/constants.d.ts +0 -43
  243. package/dist/lib/dbus/constants.d.ts.map +0 -1
  244. package/dist/lib/dbus/constants.js +0 -53
  245. package/dist/lib/dbus/constants.js.map +0 -1
  246. package/dist/lib/dbus/dbus-buffer.d.ts +0 -30
  247. package/dist/lib/dbus/dbus-buffer.d.ts.map +0 -1
  248. package/dist/lib/dbus/dbus-buffer.js +0 -175
  249. package/dist/lib/dbus/dbus-buffer.js.map +0 -1
  250. package/dist/lib/dbus/handshake.d.ts +0 -2
  251. package/dist/lib/dbus/handshake.d.ts.map +0 -1
  252. package/dist/lib/dbus/handshake.js +0 -130
  253. package/dist/lib/dbus/handshake.js.map +0 -1
  254. package/dist/lib/dbus/index.d.ts +0 -3
  255. package/dist/lib/dbus/index.d.ts.map +0 -1
  256. package/dist/lib/dbus/index.js +0 -123
  257. package/dist/lib/dbus/index.js.map +0 -1
  258. package/dist/lib/dbus/introspect.d.ts +0 -30
  259. package/dist/lib/dbus/introspect.d.ts.map +0 -1
  260. package/dist/lib/dbus/introspect.js +0 -208
  261. package/dist/lib/dbus/introspect.js.map +0 -1
  262. package/dist/lib/dbus/marshall.d.ts +0 -2
  263. package/dist/lib/dbus/marshall.d.ts.map +0 -1
  264. package/dist/lib/dbus/marshall.js +0 -97
  265. package/dist/lib/dbus/marshall.js.map +0 -1
  266. package/dist/lib/dbus/marshallers.d.ts +0 -10
  267. package/dist/lib/dbus/marshallers.d.ts.map +0 -1
  268. package/dist/lib/dbus/marshallers.js +0 -329
  269. package/dist/lib/dbus/marshallers.js.map +0 -1
  270. package/dist/lib/dbus/message.d.ts +0 -4
  271. package/dist/lib/dbus/message.d.ts.map +0 -1
  272. package/dist/lib/dbus/message.js +0 -116
  273. package/dist/lib/dbus/message.js.map +0 -1
  274. package/dist/lib/dbus/put.d.ts +0 -21
  275. package/dist/lib/dbus/put.d.ts.map +0 -1
  276. package/dist/lib/dbus/put.js +0 -120
  277. package/dist/lib/dbus/put.js.map +0 -1
  278. package/dist/lib/dbus/readline.d.ts +0 -2
  279. package/dist/lib/dbus/readline.d.ts.map +0 -1
  280. package/dist/lib/dbus/readline.js +0 -27
  281. package/dist/lib/dbus/readline.js.map +0 -1
  282. package/dist/lib/dbus/signature.d.ts +0 -2
  283. package/dist/lib/dbus/signature.d.ts.map +0 -1
  284. package/dist/lib/dbus/signature.js +0 -59
  285. package/dist/lib/dbus/signature.js.map +0 -1
  286. package/dist/lib/dbus/stdifaces.d.ts +0 -3
  287. package/dist/lib/dbus/stdifaces.d.ts.map +0 -1
  288. package/dist/lib/dbus/stdifaces.js +0 -206
  289. package/dist/lib/dbus/stdifaces.js.map +0 -1
@@ -1 +1 @@
1
- {"version":3,"file":"AppleTVRemote_accessory.js","sourceRoot":"","sources":["../../src/accessories/AppleTVRemote_accessory.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"AppleTVRemote_accessory.js","sourceRoot":"","sources":["../../src/accessories/AppleTVRemote_accessory.ts"],"names":[],"mappings":"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"}
@@ -1,26 +1,27 @@
1
- import assert from 'node:assert';
2
- import { Buffer } from 'node:buffer';
3
- import { spawn } from 'node:child_process';
4
- import { once } from 'node:events';
5
- import { createServer } from 'node:net';
6
- import process from 'node:process';
7
- import { Accessory, CameraController, Characteristic, Service, uuid, } from '../index.js';
8
- const cameraUUID = uuid.generate('hap-nodejs:accessories:ip-camera');
9
- const camera = exports.accessory = new Accessory('IPCamera', cameraUUID);
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ const tslib_1 = require("tslib");
4
+ const assert_1 = tslib_1.__importDefault(require("assert"));
5
+ const child_process_1 = require("child_process");
6
+ const events_1 = require("events");
7
+ const net_1 = require("net");
8
+ const __1 = require("..");
9
+ const cameraUUID = __1.uuid.generate("hap-nodejs:accessories:ip-camera");
10
+ const camera = exports.accessory = new __1.Accessory("IPCamera", cameraUUID);
10
11
  // @ts-expect-error: Core/BridgeCore API
11
- camera.username = '9F:B2:46:0C:40:DB';
12
+ camera.username = "9F:B2:46:0C:40:DB";
12
13
  // @ts-expect-error: Core/BridgeCore API
13
- camera.pincode = '948-23-459';
14
+ camera.pincode = "948-23-459";
14
15
  camera.category = 17 /* Categories.IP_CAMERA */;
15
16
  const FFMPEGH264ProfileNames = [
16
- 'baseline',
17
- 'main',
18
- 'high',
17
+ "baseline",
18
+ "main",
19
+ "high",
19
20
  ];
20
21
  const FFMPEGH264LevelNames = [
21
- '3.1',
22
- '3.2',
23
- '4.0',
22
+ "3.1",
23
+ "3.2",
24
+ "4.0",
24
25
  ];
25
26
  const ports = new Set();
26
27
  function getPort() {
@@ -43,26 +44,26 @@ class ExampleCamera {
43
44
  server;
44
45
  handleSnapshotRequest(request, callback) {
45
46
  const ffmpegCommand = `-f lavfi -i testsrc=s=${request.width}x${request.height} -vframes 1 -f mjpeg -`;
46
- const ffmpeg = spawn('ffmpeg', ffmpegCommand.split(' '), { env: process.env });
47
+ const ffmpeg = (0, child_process_1.spawn)("ffmpeg", ffmpegCommand.split(" "), { env: process.env });
47
48
  const snapshotBuffers = [];
48
- ffmpeg.stdout.on('data', data => snapshotBuffers.push(data));
49
- ffmpeg.stderr.on('data', (data) => {
49
+ ffmpeg.stdout.on("data", data => snapshotBuffers.push(data));
50
+ ffmpeg.stderr.on("data", data => {
50
51
  if (this.ffmpegDebugOutput) {
51
- console.log(`SNAPSHOT: ${String(data)}`);
52
+ console.log("SNAPSHOT: " + String(data));
52
53
  }
53
54
  });
54
- ffmpeg.on('exit', (code, signal) => {
55
+ ffmpeg.on("exit", (code, signal) => {
55
56
  if (signal) {
56
- console.log(`Snapshot process was killed with signal: ${signal}`);
57
- callback(new Error(`killed with signal ${signal}`));
57
+ console.log("Snapshot process was killed with signal: " + signal);
58
+ callback(new Error("killed with signal " + signal));
58
59
  }
59
60
  else if (code === 0) {
60
61
  console.log(`Successfully captured snapshot at ${request.width}x${request.height}`);
61
62
  callback(undefined, Buffer.concat(snapshotBuffers));
62
63
  }
63
64
  else {
64
- console.log(`Snapshot process exited with code ${code}`);
65
- callback(new Error(`Snapshot process exited with code ${code}`));
65
+ console.log("Snapshot process exited with code " + code);
66
+ callback(new Error("Snapshot process exited with code " + code));
66
67
  }
67
68
  });
68
69
  }
@@ -74,15 +75,15 @@ class ExampleCamera {
74
75
  const videoCryptoSuite = video.srtpCryptoSuite; // could be used to support multiple crypto suite (or support no suite for debugging)
75
76
  const videoSrtpKey = video.srtp_key;
76
77
  const videoSrtpSalt = video.srtp_salt;
77
- const videoSSRC = CameraController.generateSynchronisationSource();
78
+ const videoSSRC = __1.CameraController.generateSynchronisationSource();
78
79
  const localPort = getPort();
79
80
  const sessionInfo = {
80
81
  address: targetAddress,
81
82
  videoPort: video.port,
82
83
  localVideoPort: localPort,
83
- videoCryptoSuite,
84
+ videoCryptoSuite: videoCryptoSuite,
84
85
  videoSRTP: Buffer.concat([videoSrtpKey, videoSrtpSalt]),
85
- videoSSRC,
86
+ videoSSRC: videoSSRC,
86
87
  };
87
88
  const response = {
88
89
  video: {
@@ -110,6 +111,7 @@ class ExampleCamera {
110
111
  const fps = video.fps;
111
112
  const payloadType = video.pt;
112
113
  const maxBitrate = video.max_bit_rate;
114
+ // eslint-disable-next-line @typescript-eslint/no-unused-vars
113
115
  const rtcpInterval = video.rtcp_interval; // usually 0.5
114
116
  const mtu = video.mtu; // maximum transmission unit
115
117
  const address = sessionInfo.address;
@@ -117,52 +119,52 @@ class ExampleCamera {
117
119
  const localVideoPort = sessionInfo.localVideoPort;
118
120
  const ssrc = sessionInfo.videoSSRC;
119
121
  const cryptoSuite = sessionInfo.videoCryptoSuite;
120
- const videoSRTP = sessionInfo.videoSRTP.toString('base64');
122
+ const videoSRTP = sessionInfo.videoSRTP.toString("base64");
121
123
  console.log(`Starting video stream (${width}x${height}, ${fps} fps, ${maxBitrate} kbps, ${mtu} mtu)...`);
122
- let videoffmpegCommand = `-re -f lavfi -i testsrc=s=${width}x${height}:r=${fps} -map 0:0 `
123
- + `-c:v h264 -pix_fmt yuv420p -r ${fps} -an -sn -dn -b:v ${maxBitrate}k `
124
- + `-profile:v ${profile} -level:v ${level} `
125
- + `-payload_type ${payloadType} -ssrc ${ssrc} -f rtp `;
124
+ let videoffmpegCommand = `-re -f lavfi -i testsrc=s=${width}x${height}:r=${fps} -map 0:0 ` +
125
+ `-c:v h264 -pix_fmt yuv420p -r ${fps} -an -sn -dn -b:v ${maxBitrate}k ` +
126
+ `-profile:v ${profile} -level:v ${level} ` +
127
+ `-payload_type ${payloadType} -ssrc ${ssrc} -f rtp `;
126
128
  if (cryptoSuite !== 2 /* SRTPCryptoSuites.NONE */) {
127
129
  let suite;
128
130
  switch (cryptoSuite) {
129
131
  case 0 /* SRTPCryptoSuites.AES_CM_128_HMAC_SHA1_80 */: // actually ffmpeg just supports AES_CM_128_HMAC_SHA1_80
130
- suite = 'AES_CM_128_HMAC_SHA1_80';
132
+ suite = "AES_CM_128_HMAC_SHA1_80";
131
133
  break;
132
134
  case 1 /* SRTPCryptoSuites.AES_CM_256_HMAC_SHA1_80 */:
133
- suite = 'AES_CM_256_HMAC_SHA1_80';
135
+ suite = "AES_CM_256_HMAC_SHA1_80";
134
136
  break;
135
137
  }
136
138
  videoffmpegCommand += `-srtp_out_suite ${suite} -srtp_out_params ${videoSRTP} s`;
137
139
  }
138
140
  videoffmpegCommand += `rtp://${address}:${videoPort}?rtcpport=${videoPort}&localrtcpport=${localVideoPort}&pkt_size=${mtu}`;
139
141
  if (this.ffmpegDebugOutput) {
140
- console.log(`FFMPEG command: ffmpeg ${videoffmpegCommand}`);
142
+ console.log("FFMPEG command: ffmpeg " + videoffmpegCommand);
141
143
  }
142
- const ffmpegVideo = spawn('ffmpeg', videoffmpegCommand.split(' '), { env: process.env });
144
+ const ffmpegVideo = (0, child_process_1.spawn)("ffmpeg", videoffmpegCommand.split(" "), { env: process.env });
143
145
  let started = false;
144
- ffmpegVideo.stderr.on('data', (data) => {
145
- console.log(data.toString('utf8'));
146
+ ffmpegVideo.stderr.on("data", (data) => {
147
+ console.log(data.toString("utf8"));
146
148
  if (!started) {
147
149
  started = true;
148
- console.log('FFMPEG: received first frame');
150
+ console.log("FFMPEG: received first frame");
149
151
  callback(); // do not forget to execute callback once set up
150
152
  }
151
153
  if (this.ffmpegDebugOutput) {
152
- console.log(`VIDEO: ${String(data)}`);
154
+ console.log("VIDEO: " + String(data));
153
155
  }
154
156
  });
155
- ffmpegVideo.on('error', (error) => {
156
- console.log(`[Video] Failed to start video stream: ${error.message}`);
157
- callback(new Error('ffmpeg process creation failed!'));
157
+ ffmpegVideo.on("error", error => {
158
+ console.log("[Video] Failed to start video stream: " + error.message);
159
+ callback(new Error("ffmpeg process creation failed!"));
158
160
  });
159
- ffmpegVideo.on('exit', (code, signal) => {
160
- const message = `[Video] ffmpeg exited with code: ${code} and signal: ${signal}`;
161
+ ffmpegVideo.on("exit", (code, signal) => {
162
+ const message = "[Video] ffmpeg exited with code: " + code + " and signal: " + signal;
161
163
  if (code == null || code === 255) {
162
- console.log(`${message} (Video stream stopped!)`);
164
+ console.log(message + " (Video stream stopped!)");
163
165
  }
164
166
  else {
165
- console.log(`${message} (error)`);
167
+ console.log(message + " (error)");
166
168
  if (!started) {
167
169
  callback(new Error(message));
168
170
  }
@@ -172,7 +174,7 @@ class ExampleCamera {
172
174
  }
173
175
  });
174
176
  this.ongoingSessions[sessionId] = {
175
- localVideoPort,
177
+ localVideoPort: localVideoPort,
176
178
  process: ffmpegVideo,
177
179
  };
178
180
  delete this.pendingSessions[sessionId];
@@ -180,7 +182,7 @@ class ExampleCamera {
180
182
  }
181
183
  case "reconfigure" /* StreamRequestTypes.RECONFIGURE */:
182
184
  // not supported by this example
183
- console.log(`Received (unsupported) request to reconfigure to: ${JSON.stringify(request.video)}`);
185
+ console.log("Received (unsupported) request to reconfigure to: " + JSON.stringify(request.video));
184
186
  callback();
185
187
  break;
186
188
  case "stop" /* StreamRequestTypes.STOP */: {
@@ -191,14 +193,14 @@ class ExampleCamera {
191
193
  }
192
194
  ports.delete(ongoingSession.localVideoPort);
193
195
  try {
194
- ongoingSession.process.kill('SIGKILL');
196
+ ongoingSession.process.kill("SIGKILL");
195
197
  }
196
198
  catch (e) {
197
- console.log('Error occurred terminating the video process!');
199
+ console.log("Error occurred terminating the video process!");
198
200
  console.log(e);
199
201
  }
200
202
  delete this.ongoingSessions[sessionId];
201
- console.log('Stopped streaming session!');
203
+ console.log("Stopped streaming session!");
202
204
  callback();
203
205
  break;
204
206
  }
@@ -206,7 +208,7 @@ class ExampleCamera {
206
208
  }
207
209
  updateRecordingActive(active) {
208
210
  // we haven't implemented a prebuffer
209
- console.log(`Recording active set to ${active}`);
211
+ console.log("Recording active set to " + active);
210
212
  }
211
213
  updateRecordingConfiguration(configuration) {
212
214
  this.configuration = configuration;
@@ -217,12 +219,13 @@ class ExampleCamera {
217
219
  * CameraController supporting HomeKit Secure Video.
218
220
  *
219
221
  * An ideal implementation would diverge from this in the following ways:
220
- * It would implement a prebuffer and respect the recording `active` characteristic for that.
221
- * It would start to immediately record after a trigger event occurred and not just
222
+ * * It would implement a prebuffer and respect the recording `active` characteristic for that.
223
+ * * It would start to immediately record after a trigger event occurred and not just
222
224
  * when the HomeKit Controller requests it (see the documentation of `CameraRecordingDelegate`).
223
225
  */
226
+ // eslint-disable-next-line @typescript-eslint/no-unused-vars
224
227
  async *handleRecordingStreamRequest(streamId) {
225
- assert(!!this.configuration);
228
+ (0, assert_1.default)(!!this.configuration);
226
229
  /**
227
230
  * With this flag you can control how the generator reacts to a reset to the motion trigger.
228
231
  * If set to true, the generator will send a proper endOfStream if the motion stops.
@@ -232,73 +235,62 @@ class ExampleCamera {
232
235
  */
233
236
  const STOP_AFTER_MOTION_STOP = false;
234
237
  this.handlingStreamingRequest = true;
235
- assert(this.configuration.videoCodec.type === 0 /* VideoCodecType.H264 */);
236
- const profile = this.configuration.videoCodec.parameters.profile === 2 /* H264Profile.HIGH */
237
- ? 'high'
238
- : this.configuration.videoCodec.parameters.profile === 1 /* H264Profile.MAIN */ ? 'main' : 'baseline';
239
- const level = this.configuration.videoCodec.parameters.level === 2 /* H264Level.LEVEL4_0 */
240
- ? '4.0'
241
- : this.configuration.videoCodec.parameters.level === 1 /* H264Level.LEVEL3_2 */ ? '3.2' : '3.1';
238
+ (0, assert_1.default)(this.configuration.videoCodec.type === 0 /* VideoCodecType.H264 */);
239
+ const profile = this.configuration.videoCodec.parameters.profile === 2 /* H264Profile.HIGH */ ? "high"
240
+ : this.configuration.videoCodec.parameters.profile === 1 /* H264Profile.MAIN */ ? "main" : "baseline";
241
+ const level = this.configuration.videoCodec.parameters.level === 2 /* H264Level.LEVEL4_0 */ ? "4.0"
242
+ : this.configuration.videoCodec.parameters.level === 1 /* H264Level.LEVEL3_2 */ ? "3.2" : "3.1";
242
243
  const videoArgs = [
243
- '-an',
244
- '-sn',
245
- '-dn',
246
- '-codec:v',
247
- 'libx264',
248
- '-pix_fmt',
249
- 'yuv420p',
250
- '-profile:v',
251
- profile,
252
- '-level:v',
253
- level,
254
- '-b:v',
255
- `${this.configuration.videoCodec.parameters.bitRate}k`,
256
- '-force_key_frames',
257
- `expr:eq(t,n_forced*${this.configuration.videoCodec.parameters.iFrameInterval / 1000})`,
258
- '-r',
259
- this.configuration.videoCodec.resolution[2].toString(),
244
+ "-an",
245
+ "-sn",
246
+ "-dn",
247
+ "-codec:v",
248
+ "libx264",
249
+ "-pix_fmt",
250
+ "yuv420p",
251
+ "-profile:v", profile,
252
+ "-level:v", level,
253
+ "-b:v", `${this.configuration.videoCodec.parameters.bitRate}k`,
254
+ "-force_key_frames", `expr:eq(t,n_forced*${this.configuration.videoCodec.parameters.iFrameInterval / 1000})`,
255
+ "-r", this.configuration.videoCodec.resolution[2].toString(),
260
256
  ];
261
257
  let samplerate;
262
258
  switch (this.configuration.audioCodec.samplerate) {
263
259
  case 0 /* AudioRecordingSamplerate.KHZ_8 */:
264
- samplerate = '8';
260
+ samplerate = "8";
265
261
  break;
266
262
  case 1 /* AudioRecordingSamplerate.KHZ_16 */:
267
- samplerate = '16';
263
+ samplerate = "16";
268
264
  break;
269
265
  case 2 /* AudioRecordingSamplerate.KHZ_24 */:
270
- samplerate = '24';
266
+ samplerate = "24";
271
267
  break;
272
268
  case 3 /* AudioRecordingSamplerate.KHZ_32 */:
273
- samplerate = '32';
269
+ samplerate = "32";
274
270
  break;
275
271
  case 4 /* AudioRecordingSamplerate.KHZ_44_1 */:
276
- samplerate = '44.1';
272
+ samplerate = "44.1";
277
273
  break;
278
274
  case 5 /* AudioRecordingSamplerate.KHZ_48 */:
279
- samplerate = '48';
275
+ samplerate = "48";
280
276
  break;
281
277
  default:
282
- throw new Error(`Unsupported audio samplerate: ${this.configuration.audioCodec.samplerate}`);
278
+ throw new Error("Unsupported audio samplerate: " + this.configuration.audioCodec.samplerate);
283
279
  }
284
- const audioArgs = this.controller?.recordingManagement?.recordingManagementService.getCharacteristic(Characteristic.RecordingAudioActive)
280
+ const audioArgs = this.controller?.recordingManagement?.recordingManagementService.getCharacteristic(__1.Characteristic.RecordingAudioActive)
285
281
  ? [
286
- '-acodec',
287
- 'libfdk_aac',
288
- ...(this.configuration.audioCodec.type === 0 /* AudioRecordingCodecType.AAC_LC */
289
- ? ['-profile:a', 'aac_low']
290
- : ['-profile:a', 'aac_eld']),
291
- '-ar',
292
- `${samplerate}k`,
293
- '-b:a',
294
- `${this.configuration.audioCodec.bitrate}k`,
295
- '-ac',
296
- `${this.configuration.audioCodec.audioChannels}`,
282
+ "-acodec", "libfdk_aac",
283
+ ...(this.configuration.audioCodec.type === 0 /* AudioRecordingCodecType.AAC_LC */ ?
284
+ ["-profile:a", "aac_low"] :
285
+ ["-profile:a", "aac_eld"]),
286
+ "-ar", `${samplerate}k`,
287
+ "-b:a", `${this.configuration.audioCodec.bitrate}k`,
288
+ "-ac", `${this.configuration.audioCodec.audioChannels}`,
297
289
  ]
298
290
  : [];
299
- this.server = new MP4StreamingServer('ffmpeg', `-f lavfi -i \
291
+ this.server = new MP4StreamingServer("ffmpeg", `-f lavfi -i \
300
292
  testsrc=s=${this.configuration.videoCodec.resolution[0]}x${this.configuration.videoCodec.resolution[1]}:r=${this.configuration.videoCodec.resolution[2]}`
301
- .split(/ /), audioArgs, videoArgs);
293
+ .split(/ /g), audioArgs, videoArgs);
302
294
  await this.server.start();
303
295
  if (!this.server || this.server.destroyed) {
304
296
  return; // early exit
@@ -307,29 +299,30 @@ class ExampleCamera {
307
299
  try {
308
300
  for await (const box of this.server.generator()) {
309
301
  pending.push(box.header, box.data);
310
- const motionDetected = camera.getService(Service.MotionSensor)?.getCharacteristic(Characteristic.MotionDetected).value;
311
- console.log(`mp4 box type ${box.type} and length ${box.length}`);
312
- if (box.type === 'moov' || box.type === 'mdat') {
302
+ const motionDetected = camera.getService(__1.Service.MotionSensor)?.getCharacteristic(__1.Characteristic.MotionDetected).value;
303
+ console.log("mp4 box type " + box.type + " and length " + box.length);
304
+ if (box.type === "moov" || box.type === "mdat") {
313
305
  const fragment = Buffer.concat(pending);
314
306
  pending.splice(0, pending.length);
315
307
  const isLast = STOP_AFTER_MOTION_STOP && !motionDetected;
316
308
  yield {
317
309
  data: fragment,
318
- isLast,
310
+ isLast: isLast,
319
311
  };
320
312
  if (isLast) {
321
- console.log('Ending session due to motion stopped!');
313
+ console.log("Ending session due to motion stopped!");
322
314
  break;
323
315
  }
324
316
  }
325
317
  }
326
318
  }
327
319
  catch (error) {
328
- if (!error.message.startsWith('FFMPEG')) { // cheap way of identifying our own emitted errors
329
- console.error(`Encountered unexpected error on generator ${error.stack}`);
320
+ if (!error.message.startsWith("FFMPEG")) { // cheap way of identifying our own emitted errors
321
+ console.error("Encountered unexpected error on generator " + error.stack);
330
322
  }
331
323
  }
332
324
  }
325
+ // eslint-disable-next-line @typescript-eslint/no-unused-vars
333
326
  closeRecordingStream(streamId, reason) {
334
327
  if (this.server) {
335
328
  this.server.destroy();
@@ -356,33 +349,33 @@ class MP4StreamingServer {
356
349
  connectResolve;
357
350
  constructor(ffmpegPath, ffmpegInput, audioOutputArgs, videoOutputArgs) {
358
351
  this.connectPromise = new Promise(resolve => this.connectResolve = resolve);
359
- this.server = createServer(this.handleConnection.bind(this));
352
+ this.server = (0, net_1.createServer)(this.handleConnection.bind(this));
360
353
  this.ffmpegPath = ffmpegPath;
361
354
  this.args = [];
362
355
  this.args.push(...ffmpegInput);
363
356
  this.args.push(...audioOutputArgs);
364
- this.args.push('-f', 'mp4');
357
+ this.args.push("-f", "mp4");
365
358
  this.args.push(...videoOutputArgs);
366
- this.args.push('-fflags', '+genpts', '-reset_timestamps', '1');
367
- this.args.push('-movflags', 'frag_keyframe+empty_moov+default_base_moof');
359
+ this.args.push("-fflags", "+genpts", "-reset_timestamps", "1");
360
+ this.args.push("-movflags", "frag_keyframe+empty_moov+default_base_moof");
368
361
  }
369
362
  async start() {
370
- const promise = once(this.server, 'listening');
363
+ const promise = (0, events_1.once)(this.server, "listening");
371
364
  this.server.listen(); // listen on random port
372
365
  await promise;
373
366
  if (this.destroyed) {
374
367
  return;
375
368
  }
376
369
  const port = this.server.address().port;
377
- this.args.push(`tcp://127.0.0.1:${port}`);
378
- console.log(`${this.ffmpegPath} ${this.args.join(' ')}`);
379
- this.childProcess = spawn(this.ffmpegPath, this.args, { env: process.env, stdio: this.debugMode ? 'pipe' : 'ignore' });
370
+ this.args.push("tcp://127.0.0.1:" + port);
371
+ console.log(this.ffmpegPath + " " + this.args.join(" "));
372
+ this.childProcess = (0, child_process_1.spawn)(this.ffmpegPath, this.args, { env: process.env, stdio: this.debugMode ? "pipe" : "ignore" });
380
373
  if (!this.childProcess || !this.childProcess.stdout || !this.childProcess.stderr) {
381
- throw new Error('ChildProcess or its streams is undefined directly after the init!');
374
+ throw new Error("ChildProcess or its streams is undefined directly after the init!");
382
375
  }
383
376
  if (this.debugMode) {
384
- this.childProcess.stdout?.on('data', data => console.log(data.toString()));
385
- this.childProcess.stderr?.on('data', data => console.log(data.toString()));
377
+ this.childProcess.stdout?.on("data", data => console.log(data.toString()));
378
+ this.childProcess.stderr?.on("data", data => console.log(data.toString()));
386
379
  }
387
380
  }
388
381
  destroy() {
@@ -404,8 +397,8 @@ class MP4StreamingServer {
404
397
  async *generator() {
405
398
  await this.connectPromise;
406
399
  if (!this.socket || !this.childProcess) {
407
- console.log(`Socket undefined ${!!this.socket} childProcess undefined ${!!this.childProcess}`);
408
- throw new Error('Unexpected state!');
400
+ console.log("Socket undefined " + !!this.socket + " childProcess undefined " + !!this.childProcess);
401
+ throw new Error("Unexpected state!");
409
402
  }
410
403
  while (true) {
411
404
  const header = await this.read(8);
@@ -413,16 +406,16 @@ class MP4StreamingServer {
413
406
  const type = header.slice(4).toString();
414
407
  const data = await this.read(length);
415
408
  yield {
416
- header,
417
- length,
418
- type,
419
- data,
409
+ header: header,
410
+ length: length,
411
+ type: type,
412
+ data: data,
420
413
  };
421
414
  }
422
415
  }
423
416
  async read(length) {
424
417
  if (!this.socket) {
425
- throw new Error('FFMPEG tried reading from closed socket!');
418
+ throw Error("FFMPEG tried reading from closed socket!");
426
419
  }
427
420
  if (!length) {
428
421
  return Buffer.alloc(0);
@@ -435,28 +428,30 @@ class MP4StreamingServer {
435
428
  const readHandler = () => {
436
429
  const value = this.socket.read(length);
437
430
  if (value) {
438
- cleanup(); // eslint-disable-line ts/no-use-before-define
431
+ // eslint-disable-next-line @typescript-eslint/no-use-before-define
432
+ cleanup();
439
433
  resolve(value);
440
434
  }
441
435
  };
442
436
  const endHandler = () => {
443
- cleanup(); // eslint-disable-line ts/no-use-before-define
437
+ // eslint-disable-next-line @typescript-eslint/no-use-before-define
438
+ cleanup();
444
439
  reject(new Error(`FFMPEG socket closed during read for ${length} bytes!`));
445
440
  };
446
441
  const cleanup = () => {
447
- this.socket?.removeListener('readable', readHandler);
448
- this.socket?.removeListener('close', endHandler);
442
+ this.socket?.removeListener("readable", readHandler);
443
+ this.socket?.removeListener("close", endHandler);
449
444
  };
450
445
  if (!this.socket) {
451
- throw new Error('FFMPEG socket is closed now!');
446
+ throw new Error("FFMPEG socket is closed now!");
452
447
  }
453
- this.socket.on('readable', readHandler);
454
- this.socket.on('close', endHandler);
448
+ this.socket.on("readable", readHandler);
449
+ this.socket.on("close", endHandler);
455
450
  });
456
451
  }
457
452
  }
458
453
  const streamDelegate = new ExampleCamera();
459
- const cameraController = new CameraController({
454
+ const cameraController = new __1.CameraController({
460
455
  cameraStreamCount: 2, // HomeKit requires at least 2 streams, but 1 is also just fine
461
456
  delegate: streamDelegate,
462
457
  streamingOptions: {
@@ -541,10 +536,10 @@ const cameraController = new CameraController({
541
536
  streamDelegate.controller = cameraController;
542
537
  camera.configureController(cameraController);
543
538
  // a service to trigger the motion sensor!
544
- camera.addService(Service.Switch, 'MOTION TRIGGER')
545
- .getCharacteristic(Characteristic.On)
546
- .onSet((value) => {
547
- camera.getService(Service.MotionSensor)
548
- ?.updateCharacteristic(Characteristic.MotionDetected, value);
539
+ camera.addService(__1.Service.Switch, "MOTION TRIGGER")
540
+ .getCharacteristic(__1.Characteristic.On)
541
+ .onSet(value => {
542
+ camera.getService(__1.Service.MotionSensor)
543
+ ?.updateCharacteristic(__1.Characteristic.MotionDetected, value);
549
544
  });
550
545
  //# sourceMappingURL=Camera_accessory.js.map