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,208 +0,0 @@
1
- import { Parser } from 'xml2js';
2
- const processXML = function (err, xml, obj, callback) {
3
- if (err) {
4
- return callback(err);
5
- }
6
- const parser = new Parser();
7
- parser.parseString(xml, (err, result) => {
8
- if (err) {
9
- return callback(err);
10
- }
11
- if (!result.node) {
12
- throw new Error('No root XML node');
13
- }
14
- result = result.node; // unwrap the root node
15
- // If no interface, try first sub node?
16
- if (!result.interface) {
17
- if (result.node && result.node.length > 0 && result.node[0].$) {
18
- const subObj = Object.assign(obj, {});
19
- if (subObj.name.slice(-1) !== '/') {
20
- subObj.name += '/';
21
- }
22
- subObj.name += result.node[0].$.name;
23
- return introspectBus(subObj, callback);
24
- }
25
- return callback(new Error('No such interface found'));
26
- }
27
- const proxy = {};
28
- const nodes = [];
29
- let ifaceName, method, property, iface, arg, signature, currentIface;
30
- const ifaces = result.interface;
31
- const xmlnodes = result.node || [];
32
- for (let n = 1; n < xmlnodes.length; ++n) {
33
- // Start at 1 because we want to skip the root node
34
- nodes.push(xmlnodes[n].$.name);
35
- }
36
- for (let i = 0; i < ifaces.length; ++i) {
37
- iface = ifaces[i];
38
- ifaceName = iface.$.name;
39
- currentIface = proxy[ifaceName] = new DBusInterface(obj, ifaceName);
40
- for (let m = 0; iface.method && m < iface.method.length; ++m) {
41
- method = iface.method[m];
42
- signature = '';
43
- const methodName = method.$.name;
44
- for (let a = 0; method.arg && a < method.arg.length; ++a) {
45
- arg = method.arg[a].$;
46
- if (arg.direction === 'in') {
47
- signature += arg.type;
48
- }
49
- }
50
- // add method
51
- currentIface.$createMethod(methodName, signature);
52
- }
53
- for (let p = 0; iface.property && p < iface.property.length; ++p) {
54
- property = iface.property[p];
55
- currentIface.$createProp(property.$.name, property.$.type, property.$.access);
56
- }
57
- // TODO: introspect signals
58
- }
59
- callback(null, proxy, nodes);
60
- });
61
- };
62
- export function introspectBus(obj, callback) {
63
- const bus = obj.service.bus;
64
- bus.invoke({
65
- destination: obj.service.name,
66
- path: obj.name,
67
- interface: 'org.freedesktop.DBus.Introspectable',
68
- member: 'Introspect',
69
- }, (err, xml) => {
70
- processXML(err, xml, obj, callback);
71
- });
72
- }
73
- function getMatchRule(objName, ifName, signame) {
74
- return `type='signal',path='${objName}',interface='${ifName}',member='${signame}'`;
75
- }
76
- export class DBusInterface {
77
- $parent;
78
- $name;
79
- $methods;
80
- $properties;
81
- $callbacks;
82
- $sigHandlers;
83
- constructor(parent_obj, ifname) {
84
- this.$parent = parent_obj;
85
- this.$name = ifname;
86
- this.$methods = {};
87
- this.$properties = {};
88
- this.$callbacks = [];
89
- this.$sigHandlers = [];
90
- }
91
- $getSigHandler(callback) {
92
- let index = this.$callbacks.indexOf(callback);
93
- if (index === -1) {
94
- index = this.$callbacks.push(callback) - 1;
95
- this.$sigHandlers[index] = (messageBody) => {
96
- callback(...messageBody);
97
- };
98
- }
99
- return this.$sigHandlers[index];
100
- }
101
- on(signame, callback) {
102
- const bus = this.$parent.service.bus;
103
- const signalFullName = bus.mangle(this.$parent.name, this.$name, signame);
104
- if (!bus.signals.listeners(signalFullName).length) {
105
- const match = getMatchRule(this.$parent.name, this.$name, signame);
106
- bus.addMatch(match, (err) => {
107
- if (err) {
108
- throw new Error(err);
109
- }
110
- bus.signals.on(signalFullName, this.$getSigHandler(callback));
111
- });
112
- }
113
- else {
114
- bus.signals.on(signalFullName, this.$getSigHandler(callback));
115
- }
116
- }
117
- addListener(signame, callback) {
118
- this.on(signame, callback);
119
- }
120
- removeListener(signame, callback) {
121
- this.off(signame, callback);
122
- }
123
- off(signame, callback) {
124
- const bus = this.$parent.service.bus;
125
- const signalFullName = bus.mangle(this.$parent.name, this.$name, signame);
126
- bus.signals.removeListener(signalFullName, this.$getSigHandler(callback));
127
- if (!bus.signals.listeners(signalFullName).length) {
128
- const match = getMatchRule(this.$parent.name, this.$name, signame);
129
- bus.removeMatch(match, (err) => {
130
- if (err) {
131
- throw new Error(err);
132
- }
133
- this.$callbacks.length = 0;
134
- this.$sigHandlers.length = 0;
135
- });
136
- }
137
- }
138
- $createMethod(mName, signature) {
139
- this.$methods[mName] = signature;
140
- this[mName] = (...args) => {
141
- this.$callMethod(mName, args);
142
- };
143
- }
144
- $callMethod(mName, args) {
145
- const bus = this.$parent.service.bus;
146
- if (!Array.isArray(args)) {
147
- args = Array.from(args);
148
- }
149
- const callback = typeof args[args.length - 1] === 'function' ? args.pop() : () => { };
150
- const msg = {
151
- destination: this.$parent.service.name,
152
- path: this.$parent.name,
153
- interface: this.$name,
154
- member: mName,
155
- };
156
- if (this.$methods[mName] !== '') {
157
- msg.signature = this.$methods[mName];
158
- msg.body = args;
159
- }
160
- bus.invoke(msg, callback);
161
- }
162
- $createProp(propName, propType, propAccess) {
163
- this.$properties[propName] = { type: propType, access: propAccess };
164
- Object.defineProperty(this, propName, {
165
- enumerable: true,
166
- get: () => (callback) => this.$readProp(propName, callback), // eslint-disable-line unicorn/consistent-function-scoping
167
- set: (val) => {
168
- this.$writeProp(propName, val);
169
- },
170
- });
171
- }
172
- $readProp(propName, callback) {
173
- const bus = this.$parent.service.bus;
174
- bus.invoke({
175
- destination: this.$parent.service.name,
176
- path: this.$parent.name,
177
- interface: 'org.freedesktop.DBus.Properties',
178
- member: 'Get',
179
- signature: 'ss',
180
- body: [this.$name, propName],
181
- }, (err, val) => {
182
- if (err) {
183
- callback(err);
184
- }
185
- else {
186
- const signature = val[0];
187
- if (signature.length === 1) {
188
- callback(err, val[1][0]);
189
- }
190
- else {
191
- callback(err, val[1]);
192
- }
193
- }
194
- });
195
- }
196
- $writeProp(propName, val) {
197
- const bus = this.$parent.service.bus;
198
- bus.invoke({
199
- destination: this.$parent.service.name,
200
- path: this.$parent.name,
201
- interface: 'org.freedesktop.DBus.Properties',
202
- member: 'Set',
203
- signature: 'ssv',
204
- body: [this.$name, propName, [this.$properties[propName].type, val]],
205
- });
206
- }
207
- }
208
- //# sourceMappingURL=introspect.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"introspect.js","sourceRoot":"","sources":["../../../src/lib/dbus/introspect.ts"],"names":[],"mappings":"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"}
@@ -1,2 +0,0 @@
1
- export default function (signature: any, data: any, offset?: number): any;
2
- //# sourceMappingURL=marshall.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"marshall.d.ts","sourceRoot":"","sources":["../../../src/lib/dbus/marshall.ts"],"names":[],"mappings":"AAQA,MAAM,CAAC,OAAO,WAAW,SAAS,EAAE,GAAG,EAAE,IAAI,EAAE,GAAG,EAAE,MAAM,GAAE,MAAU,OAerE"}
@@ -1,97 +0,0 @@
1
- import assert from 'node:assert';
2
- import { Buffer } from 'node:buffer';
3
- import align from './align.js';
4
- import MakeSimpleMarshaller from './marshallers.js';
5
- import Put from './put.js';
6
- import parseSignature from './signature.js';
7
- export default function (signature, data, offset = 0) {
8
- if (typeof offset === 'undefined') {
9
- offset = 0;
10
- }
11
- const tree = parseSignature(signature);
12
- if (!Array.isArray(data) || data.length !== tree.length) {
13
- throw new Error(`message body does not match message signature. Body:${JSON.stringify(data)}, signature:${signature}`);
14
- }
15
- const putstream = new Put();
16
- putstream._offset = offset;
17
- return writeStruct(putstream, tree, data).buffer();
18
- }
19
- ;
20
- function writeStruct(ps, tree, data) {
21
- if (tree.length !== data.length) {
22
- throw new Error('Invalid struct data');
23
- }
24
- for (let i = 0; i < tree.length; ++i) {
25
- write(ps, tree[i], data[i]);
26
- }
27
- return ps;
28
- }
29
- function write(ps, ele, data) {
30
- switch (ele.type) {
31
- case '(':
32
- case '{':
33
- align(ps, 8);
34
- writeStruct(ps, ele.child, data);
35
- break;
36
- case 'a': {
37
- // array serialisation:
38
- // length of array body aligned at 4 byte boundary
39
- // (optional 4 bytes to align first body element on 8-byte boundary if element
40
- // body
41
- const arrPut = new Put();
42
- arrPut._offset = ps._offset;
43
- const _offset = arrPut._offset;
44
- writeSimple(arrPut, 'u', 0); // array length placeholder
45
- const lengthOffset = arrPut._offset - 4 - _offset;
46
- // we need to align here because alignment is not included in array length
47
- if (['x', 't', 'd', '{', '('].includes(ele.child[0].type)) {
48
- align(arrPut, 8);
49
- }
50
- const startOffset = arrPut._offset;
51
- for (let i = 0; i < data.length; ++i) {
52
- write(arrPut, ele.child[0], data[i]);
53
- }
54
- const arrBuff = arrPut.buffer();
55
- const length = arrPut._offset - startOffset;
56
- // lengthOffset in the range 0 to 3 depending on number of align bytes padded _before_ arrayLength
57
- arrBuff.writeUInt32LE(length, lengthOffset);
58
- ps.put(arrBuff);
59
- ps._offset += arrBuff.length;
60
- break;
61
- }
62
- case 'v': {
63
- // TODO: allow serialisation of simple types as variants, e. g 123 -> ['u', 123], true -> ['b', 1], 'abc' -> ['s', 'abc']
64
- assert.equal(data.length, 2, 'variant data should be [signature, data]');
65
- const signatureEle = {
66
- type: 'g',
67
- child: [],
68
- };
69
- write(ps, signatureEle, data[0]);
70
- const tree = parseSignature(data[0]);
71
- assert(tree.length === 1);
72
- write(ps, tree[0], data[1]);
73
- break;
74
- }
75
- default:
76
- return writeSimple(ps, ele.type, data);
77
- }
78
- }
79
- const stringTypes = ['g', 'o', 's'];
80
- function writeSimple(ps, type, data) {
81
- if (typeof data === 'undefined') {
82
- throw new TypeError('Serialisation of JS \'undefined\' type is not supported by d-bus');
83
- }
84
- if (data === null) {
85
- throw new Error('Serialisation of null value is not supported by d-bus');
86
- }
87
- if (Buffer.isBuffer(data)) {
88
- data = data.toString(); // encoding?
89
- }
90
- if (stringTypes.includes(type) && typeof data !== 'string') {
91
- throw new Error(`Expected string or buffer argument, got ${JSON.stringify(data)} of type '${type}'`);
92
- }
93
- const simpleMarshaller = MakeSimpleMarshaller(type);
94
- simpleMarshaller.marshall(ps, data);
95
- return ps;
96
- }
97
- //# sourceMappingURL=marshall.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"marshall.js","sourceRoot":"","sources":["../../../src/lib/dbus/marshall.ts"],"names":[],"mappings":"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"}
@@ -1,10 +0,0 @@
1
- /**
2
- * MakeSimpleMarshaller
3
- * @param signature - the signature of the data you want to check
4
- * @returns a simple marshaller with the "check" method
5
- *
6
- * check returns nothing - it only raises errors if the data is
7
- * invalid for the signature
8
- */
9
- export default function (signature: any): any;
10
- //# sourceMappingURL=marshallers.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"marshallers.d.ts","sourceRoot":"","sources":["../../../src/lib/dbus/marshallers.ts"],"names":[],"mappings":"AAiKA;;;;;;;GAOG;AACH,MAAM,CAAC,OAAO,WAAW,SAAS,EAAE,GAAG,OAyKtC"}
@@ -1,329 +0,0 @@
1
- import Long from 'long';
2
- import { Buffer } from 'safe-buffer';
3
- import align from './align.js';
4
- import parseSignature from './signature.js';
5
- const checkRange = function (minValue, maxValue, data) {
6
- if (data > maxValue || data < minValue) {
7
- throw new Error('Number outside range');
8
- }
9
- };
10
- const checkInteger = function (data) {
11
- if (typeof data !== 'number') {
12
- throw new TypeError(`Data: ${data} was not of type number`);
13
- }
14
- if (Math.floor(data) !== data) {
15
- throw new Error(`Data: ${data} was not an integer`);
16
- }
17
- };
18
- // This is essentially a tweaked version of 'fromValue' from Long.js with error checking.
19
- // This can take number or string of decimal characters or 'Long' instance (or Long-style object with props low,high,unsigned).
20
- const makeLong = function (val, signed) {
21
- if (val instanceof Long) {
22
- return val;
23
- }
24
- if (val instanceof Number) {
25
- val = val.valueOf();
26
- }
27
- if (typeof val === 'number') {
28
- try {
29
- // Long.js won't alert you to precision loss in passing more than 53 bit int through a double number, so we check here
30
- checkInteger(val);
31
- if (signed) {
32
- checkRange(-0x1FFFFFFFFFFFFF, 0x1FFFFFFFFFFFFF, val);
33
- }
34
- else {
35
- checkRange(0, 0x1FFFFFFFFFFFFF, val);
36
- }
37
- }
38
- catch (e) {
39
- e.message += ' (Number type can only carry 53 bit integer)';
40
- throw e;
41
- }
42
- try {
43
- return Long.fromNumber(val, !signed);
44
- }
45
- catch (e) {
46
- e.message = `Error converting number to 64bit integer "${e.message}"`;
47
- throw e;
48
- }
49
- }
50
- if (typeof val === 'string' || val instanceof String) {
51
- let radix = 10;
52
- val = val.trim().toUpperCase(); // remove extra whitespace and make uppercase (for hex)
53
- if (val.substring(0, 2) === '0X') {
54
- radix = 16;
55
- val = val.substring(2);
56
- }
57
- else if (val.substring(0, 3) === '-0X') {
58
- // unusual, but just in case?
59
- radix = 16;
60
- val = `-${val.substring(3)}`;
61
- }
62
- val = val.replace(/^0+(?=\d)/, ''); // dump leading zeroes
63
- let data;
64
- try {
65
- data = Long.fromString(val, !signed, radix);
66
- }
67
- catch (e) {
68
- e.message = `Error converting string to 64bit integer '${e.message}'`;
69
- throw e;
70
- }
71
- // If string represents a number outside 64 bit range, it can quietly overflow.
72
- // We assume if things converted correctly the string coming out of Long should match what went into it.
73
- if (data.toString(radix).toUpperCase() !== val) {
74
- throw new Error(`Data: '${val}' did not convert correctly to ${signed ? 'signed' : 'unsigned'} 64 bit`);
75
- }
76
- return data;
77
- }
78
- // Throws for non-objects, converts non-instanceof Long:
79
- try {
80
- return Long.fromBits(val.low, val.high, val.unsigned);
81
- }
82
- catch (e) {
83
- e.message = `Error converting object to 64bit integer '${e.message}'`;
84
- throw e;
85
- }
86
- };
87
- const checkLong = function (data, signed) {
88
- if (!Long.isLong(data)) {
89
- data = makeLong(data, signed);
90
- }
91
- // Do we enforce that Long.js object unsigned/signed match the field even if it is still in range?
92
- // Probably, might help users avoid unintended bugs?
93
- if (signed) {
94
- if (data.unsigned) {
95
- throw new Error('Longjs object is unsigned, but marshalling into signed 64 bit field');
96
- }
97
- if (data.gt(Long.MAX_VALUE) || data.lt(Long.MIN_VALUE)) {
98
- throw new Error(`Data: ${data} was out of range (64-bit signed)`);
99
- }
100
- }
101
- else {
102
- if (!data.unsigned) {
103
- throw new Error('Longjs object is signed, but marshalling into unsigned 64 bit field');
104
- }
105
- // NOTE: data.gt(Long.MAX_UNSIGNED_VALUE) will catch if Long.js object is a signed value but is still within unsigned range!
106
- // Since we are enforcing signed type matching between Long.js object and field, this note should not matter.
107
- if (data.gt(Long.MAX_UNSIGNED_VALUE) || data.lt(0)) {
108
- throw new Error(`Data: ${data} was out of range (64-bit unsigned)`);
109
- }
110
- }
111
- return data;
112
- };
113
- const checkBoolean = function (data) {
114
- if (!(typeof data === 'boolean' || data === 0 || data === 1)) {
115
- throw new Error(`Data: ${data} was not of type boolean`);
116
- }
117
- };
118
- function checkValidString(data) {
119
- if (typeof data !== 'string') {
120
- throw new TypeError(`Data: ${data} was not of type string`);
121
- }
122
- else if (data.includes('\0')) {
123
- throw new Error('String contains null byte');
124
- }
125
- }
126
- function checkValidSignature(data) {
127
- if (data.length > 0xFF) {
128
- throw new Error(`Data: ${data} is too long for signature type (${data.length} > 255)`);
129
- }
130
- let parenCount = 0;
131
- for (let ii = 0; ii < data.length; ++ii) {
132
- if (parenCount > 32) {
133
- throw new Error(`Maximum container type nesting exceeded in signature type:${data}`);
134
- }
135
- switch (data[ii]) {
136
- case '(':
137
- ++parenCount;
138
- break;
139
- case ')':
140
- --parenCount;
141
- break;
142
- default:
143
- /* no-op */
144
- break;
145
- }
146
- }
147
- parseSignature(data);
148
- }
149
- /**
150
- * MakeSimpleMarshaller
151
- * @param signature - the signature of the data you want to check
152
- * @returns a simple marshaller with the "check" method
153
- *
154
- * check returns nothing - it only raises errors if the data is
155
- * invalid for the signature
156
- */
157
- export default function (signature) {
158
- // any key,val
159
- const marshaller = {};
160
- switch (signature) {
161
- case 'o':
162
- // object path
163
- // TODO: verify object path here?
164
- case 's': // eslint-disable-line no-fallthrough
165
- // STRING
166
- marshaller.check = function (data) {
167
- checkValidString(data);
168
- };
169
- marshaller.marshall = function (ps, data) {
170
- this.check(data);
171
- // utf8 string
172
- align(ps, 4);
173
- const buff = Buffer.from(data, 'utf8');
174
- ps.word32le(buff.length).put(buff).word8(0);
175
- ps._offset += 5 + buff.length;
176
- };
177
- break;
178
- case 'g':
179
- // SIGNATURE
180
- marshaller.check = function (data) {
181
- checkValidString(data);
182
- checkValidSignature(data);
183
- };
184
- marshaller.marshall = function (ps, data) {
185
- this.check(data);
186
- // signature
187
- const buff = Buffer.from(data, 'ascii');
188
- ps.word8(data.length).put(buff).word8(0);
189
- ps._offset += 2 + buff.length;
190
- };
191
- break;
192
- case 'y':
193
- // BYTE
194
- marshaller.check = function (data) {
195
- checkInteger(data);
196
- checkRange(0x00, 0xFF, data);
197
- };
198
- marshaller.marshall = function (ps, data) {
199
- this.check(data);
200
- ps.word8(data);
201
- ps._offset++;
202
- };
203
- break;
204
- case 'b':
205
- // BOOLEAN
206
- marshaller.check = function (data) {
207
- checkBoolean(data);
208
- };
209
- marshaller.marshall = function (ps, data) {
210
- this.check(data);
211
- // booleans serialised as 0/1 unsigned 32 bit int
212
- data = data ? 1 : 0;
213
- align(ps, 4);
214
- ps.word32le(data);
215
- ps._offset += 4;
216
- };
217
- break;
218
- case 'n':
219
- // INT16
220
- marshaller.check = function (data) {
221
- checkInteger(data);
222
- checkRange(-0x7FFF - 1, 0x7FFF, data);
223
- };
224
- marshaller.marshall = function (ps, data) {
225
- this.check(data);
226
- align(ps, 2);
227
- const buff = Buffer.alloc(2);
228
- buff.writeInt16LE(Number.parseInt(data), 0);
229
- ps.put(buff);
230
- ps._offset += 2;
231
- };
232
- break;
233
- case 'q':
234
- // UINT16
235
- marshaller.check = function (data) {
236
- checkInteger(data);
237
- checkRange(0, 0xFFFF, data);
238
- };
239
- marshaller.marshall = function (ps, data) {
240
- this.check(data);
241
- align(ps, 2);
242
- ps.word16le(data);
243
- ps._offset += 2;
244
- };
245
- break;
246
- case 'i':
247
- // INT32
248
- marshaller.check = function (data) {
249
- checkInteger(data);
250
- checkRange(-0x7FFFFFFF - 1, 0x7FFFFFFF, data);
251
- };
252
- marshaller.marshall = function (ps, data) {
253
- this.check(data);
254
- align(ps, 4);
255
- const buff = Buffer.alloc(4);
256
- buff.writeInt32LE(Number.parseInt(data), 0);
257
- ps.put(buff);
258
- ps._offset += 4;
259
- };
260
- break;
261
- case 'u':
262
- // UINT32
263
- marshaller.check = function (data) {
264
- checkInteger(data);
265
- checkRange(0, 0xFFFFFFFF, data);
266
- };
267
- marshaller.marshall = function (ps, data) {
268
- this.check(data);
269
- // 32 t unsigned int
270
- align(ps, 4);
271
- ps.word32le(data);
272
- ps._offset += 4;
273
- };
274
- break;
275
- case 't':
276
- // UINT64
277
- marshaller.check = function (data) {
278
- return checkLong(data, false);
279
- };
280
- marshaller.marshall = function (ps, data) {
281
- data = this.check(data);
282
- align(ps, 8);
283
- ps.word32le(data.low);
284
- ps.word32le(data.high);
285
- ps._offset += 8;
286
- };
287
- break;
288
- case 'x':
289
- // INT64
290
- marshaller.check = function (data) {
291
- return checkLong(data, true);
292
- };
293
- marshaller.marshall = function (ps, data) {
294
- data = this.check(data);
295
- align(ps, 8);
296
- ps.word32le(data.low);
297
- ps.word32le(data.high);
298
- ps._offset += 8;
299
- };
300
- break;
301
- case 'd':
302
- // DOUBLE
303
- marshaller.check = function (data) {
304
- if (typeof data !== 'number') {
305
- throw new TypeError(`Data: ${data} was not of type number`);
306
- }
307
- else if (Number.isNaN(data)) {
308
- throw new TypeError(`Data: ${data} was not a number`);
309
- }
310
- else if (!Number.isFinite(data)) {
311
- throw new TypeError('Number outside range');
312
- }
313
- };
314
- marshaller.marshall = function (ps, data) {
315
- this.check(data);
316
- align(ps, 8);
317
- const buff = Buffer.alloc(8);
318
- buff.writeDoubleLE(Number.parseFloat(data), 0);
319
- ps.put(buff);
320
- ps._offset += 8;
321
- };
322
- break;
323
- default:
324
- throw new Error(`Unknown data type format: ${signature}`);
325
- }
326
- return marshaller;
327
- }
328
- ;
329
- //# sourceMappingURL=marshallers.js.map