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