hap-nodejs 0.11.0-beta.10 → 0.11.0-beta.12
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.
- package/README.md +1 -0
- package/dist/accessories/Light_accessory.js +1 -1
- package/dist/accessories/Light_accessory.js.map +1 -1
- package/dist/internal-types.d.ts +47 -3
- package/dist/internal-types.d.ts.map +1 -1
- package/dist/internal-types.js +52 -1
- package/dist/internal-types.js.map +1 -1
- package/dist/lib/Accessory.d.ts +28 -11
- package/dist/lib/Accessory.d.ts.map +1 -1
- package/dist/lib/Accessory.js +159 -191
- package/dist/lib/Accessory.js.map +1 -1
- package/dist/lib/Advertiser.d.ts +6 -0
- package/dist/lib/Advertiser.d.ts.map +1 -1
- package/dist/lib/Advertiser.js +78 -20
- package/dist/lib/Advertiser.js.map +1 -1
- package/dist/lib/Characteristic.d.ts +2 -1
- package/dist/lib/Characteristic.d.ts.map +1 -1
- package/dist/lib/Characteristic.js +5 -2
- package/dist/lib/Characteristic.js.map +1 -1
- package/dist/lib/HAPServer.d.ts +43 -4
- package/dist/lib/HAPServer.d.ts.map +1 -1
- package/dist/lib/HAPServer.js +78 -101
- package/dist/lib/HAPServer.js.map +1 -1
- package/dist/lib/Service.d.ts +2 -1
- package/dist/lib/Service.d.ts.map +1 -1
- package/dist/lib/Service.js +4 -0
- package/dist/lib/Service.js.map +1 -1
- package/dist/lib/camera/RTPStreamManagement.d.ts +2 -2
- package/dist/lib/camera/RTPStreamManagement.d.ts.map +1 -1
- package/dist/lib/camera/RTPStreamManagement.js +14 -11
- package/dist/lib/camera/RTPStreamManagement.js.map +1 -1
- package/dist/lib/controller/AdaptiveLightingController.d.ts.map +1 -1
- package/dist/lib/controller/AdaptiveLightingController.js +9 -7
- package/dist/lib/controller/AdaptiveLightingController.js.map +1 -1
- package/dist/lib/controller/CameraController.d.ts.map +1 -1
- package/dist/lib/controller/CameraController.js +1 -0
- package/dist/lib/controller/CameraController.js.map +1 -1
- package/dist/lib/controller/RemoteController.js +2 -2
- package/dist/lib/controller/RemoteController.js.map +1 -1
- package/dist/lib/util/HAPHTTPError.d.ts +16 -0
- package/dist/lib/util/HAPHTTPError.d.ts.map +1 -0
- package/dist/lib/util/HAPHTTPError.js +26 -0
- package/dist/lib/util/HAPHTTPError.js.map +1 -0
- package/dist/lib/util/color-utils.d.ts +1 -1
- package/dist/lib/util/color-utils.js +1 -1
- package/dist/lib/util/eventedhttp.d.ts +18 -4
- package/dist/lib/util/eventedhttp.d.ts.map +1 -1
- package/dist/lib/util/eventedhttp.js +83 -88
- package/dist/lib/util/eventedhttp.js.map +1 -1
- package/dist/lib/util/hapCrypto.d.ts +3 -2
- package/dist/lib/util/hapCrypto.d.ts.map +1 -1
- package/dist/lib/util/hapCrypto.js.map +1 -1
- package/dist/lib/util/promise-utils.d.ts +4 -0
- package/dist/lib/util/promise-utils.d.ts.map +1 -1
- package/dist/lib/util/promise-utils.js +24 -1
- package/dist/lib/util/promise-utils.js.map +1 -1
- package/dist/lib/util/time.js +1 -1
- package/dist/lib/util/tlv.d.ts +63 -4
- package/dist/lib/util/tlv.d.ts.map +1 -1
- package/dist/lib/util/tlv.js +61 -16
- package/dist/lib/util/tlv.js.map +1 -1
- package/dist/lib/util/tlvError.d.ts +14 -0
- package/dist/lib/util/tlvError.d.ts.map +1 -0
- package/dist/lib/util/tlvError.js +24 -0
- package/dist/lib/util/tlvError.js.map +1 -0
- package/package.json +7 -5
package/dist/lib/HAPServer.js
CHANGED
|
@@ -14,51 +14,6 @@ var hapCrypto = (0, tslib_1.__importStar)(require("./util/hapCrypto"));
|
|
|
14
14
|
var once_1 = require("./util/once");
|
|
15
15
|
var tlv = (0, tslib_1.__importStar)(require("./util/tlv"));
|
|
16
16
|
var debug = (0, debug_1.default)("HAP-NodeJS:HAPServer");
|
|
17
|
-
var TLVValues;
|
|
18
|
-
(function (TLVValues) {
|
|
19
|
-
// noinspection JSUnusedGlobalSymbols
|
|
20
|
-
TLVValues[TLVValues["REQUEST_TYPE"] = 0] = "REQUEST_TYPE";
|
|
21
|
-
TLVValues[TLVValues["METHOD"] = 0] = "METHOD";
|
|
22
|
-
TLVValues[TLVValues["USERNAME"] = 1] = "USERNAME";
|
|
23
|
-
TLVValues[TLVValues["IDENTIFIER"] = 1] = "IDENTIFIER";
|
|
24
|
-
TLVValues[TLVValues["SALT"] = 2] = "SALT";
|
|
25
|
-
TLVValues[TLVValues["PUBLIC_KEY"] = 3] = "PUBLIC_KEY";
|
|
26
|
-
TLVValues[TLVValues["PASSWORD_PROOF"] = 4] = "PASSWORD_PROOF";
|
|
27
|
-
TLVValues[TLVValues["ENCRYPTED_DATA"] = 5] = "ENCRYPTED_DATA";
|
|
28
|
-
TLVValues[TLVValues["SEQUENCE_NUM"] = 6] = "SEQUENCE_NUM";
|
|
29
|
-
TLVValues[TLVValues["STATE"] = 6] = "STATE";
|
|
30
|
-
TLVValues[TLVValues["ERROR_CODE"] = 7] = "ERROR_CODE";
|
|
31
|
-
TLVValues[TLVValues["RETRY_DELAY"] = 8] = "RETRY_DELAY";
|
|
32
|
-
TLVValues[TLVValues["CERTIFICATE"] = 9] = "CERTIFICATE";
|
|
33
|
-
TLVValues[TLVValues["PROOF"] = 10] = "PROOF";
|
|
34
|
-
TLVValues[TLVValues["SIGNATURE"] = 10] = "SIGNATURE";
|
|
35
|
-
TLVValues[TLVValues["PERMISSIONS"] = 11] = "PERMISSIONS";
|
|
36
|
-
TLVValues[TLVValues["FRAGMENT_DATA"] = 12] = "FRAGMENT_DATA";
|
|
37
|
-
TLVValues[TLVValues["FRAGMENT_LAST"] = 13] = "FRAGMENT_LAST";
|
|
38
|
-
TLVValues[TLVValues["SEPARATOR"] = 255] = "SEPARATOR"; // Zero-length TLV that separates different TLVs in a list.
|
|
39
|
-
})(TLVValues || (TLVValues = {}));
|
|
40
|
-
var PairMethods;
|
|
41
|
-
(function (PairMethods) {
|
|
42
|
-
// noinspection JSUnusedGlobalSymbols
|
|
43
|
-
PairMethods[PairMethods["PAIR_SETUP"] = 0] = "PAIR_SETUP";
|
|
44
|
-
PairMethods[PairMethods["PAIR_SETUP_WITH_AUTH"] = 1] = "PAIR_SETUP_WITH_AUTH";
|
|
45
|
-
PairMethods[PairMethods["PAIR_VERIFY"] = 2] = "PAIR_VERIFY";
|
|
46
|
-
PairMethods[PairMethods["ADD_PAIRING"] = 3] = "ADD_PAIRING";
|
|
47
|
-
PairMethods[PairMethods["REMOVE_PAIRING"] = 4] = "REMOVE_PAIRING";
|
|
48
|
-
PairMethods[PairMethods["LIST_PAIRINGS"] = 5] = "LIST_PAIRINGS";
|
|
49
|
-
})(PairMethods || (PairMethods = {}));
|
|
50
|
-
/**
|
|
51
|
-
* Pairing states (pair-setup or pair-verify). Encoded in {@link TLVValues.SEQUENCE_NUM}.
|
|
52
|
-
*/
|
|
53
|
-
var PairingStates;
|
|
54
|
-
(function (PairingStates) {
|
|
55
|
-
PairingStates[PairingStates["M1"] = 1] = "M1";
|
|
56
|
-
PairingStates[PairingStates["M2"] = 2] = "M2";
|
|
57
|
-
PairingStates[PairingStates["M3"] = 3] = "M3";
|
|
58
|
-
PairingStates[PairingStates["M4"] = 4] = "M4";
|
|
59
|
-
PairingStates[PairingStates["M5"] = 5] = "M5";
|
|
60
|
-
PairingStates[PairingStates["M6"] = 6] = "M6";
|
|
61
|
-
})(PairingStates || (PairingStates = {}));
|
|
62
17
|
/**
|
|
63
18
|
* TLV error codes for the {@link TLVValues.ERROR_CODE} field.
|
|
64
19
|
*/
|
|
@@ -77,18 +32,57 @@ var TLVErrorCode;
|
|
|
77
32
|
var HAPStatus;
|
|
78
33
|
(function (HAPStatus) {
|
|
79
34
|
// noinspection JSUnusedGlobalSymbols
|
|
35
|
+
/**
|
|
36
|
+
* Success of the request.
|
|
37
|
+
*/
|
|
80
38
|
HAPStatus[HAPStatus["SUCCESS"] = 0] = "SUCCESS";
|
|
39
|
+
/**
|
|
40
|
+
* The request was rejected due to insufficient privileges.
|
|
41
|
+
*/
|
|
81
42
|
HAPStatus[HAPStatus["INSUFFICIENT_PRIVILEGES"] = -70401] = "INSUFFICIENT_PRIVILEGES";
|
|
43
|
+
/**
|
|
44
|
+
* Operation failed due to some communication failure with the characteristic.
|
|
45
|
+
*/
|
|
82
46
|
HAPStatus[HAPStatus["SERVICE_COMMUNICATION_FAILURE"] = -70402] = "SERVICE_COMMUNICATION_FAILURE";
|
|
47
|
+
/**
|
|
48
|
+
* The resource is busy. Try again.
|
|
49
|
+
*/
|
|
83
50
|
HAPStatus[HAPStatus["RESOURCE_BUSY"] = -70403] = "RESOURCE_BUSY";
|
|
51
|
+
/**
|
|
52
|
+
* Cannot write a read-only characteristic ({@see Perms.PAIRED_WRITE} not defined).
|
|
53
|
+
*/
|
|
84
54
|
HAPStatus[HAPStatus["READ_ONLY_CHARACTERISTIC"] = -70404] = "READ_ONLY_CHARACTERISTIC";
|
|
55
|
+
/**
|
|
56
|
+
* Cannot read from a write-only characteristic ({@link Perms.PAIRED_READ} not defined).
|
|
57
|
+
*/
|
|
85
58
|
HAPStatus[HAPStatus["WRITE_ONLY_CHARACTERISTIC"] = -70405] = "WRITE_ONLY_CHARACTERISTIC";
|
|
59
|
+
/**
|
|
60
|
+
* Event notifications are not supported for the requested characteristic ({@link Perms.NOTIFY} not defined).
|
|
61
|
+
*/
|
|
86
62
|
HAPStatus[HAPStatus["NOTIFICATION_NOT_SUPPORTED"] = -70406] = "NOTIFICATION_NOT_SUPPORTED";
|
|
63
|
+
/**
|
|
64
|
+
* The device is out of resources to process the request.
|
|
65
|
+
*/
|
|
87
66
|
HAPStatus[HAPStatus["OUT_OF_RESOURCE"] = -70407] = "OUT_OF_RESOURCE";
|
|
67
|
+
/**
|
|
68
|
+
* The operation timed out.
|
|
69
|
+
*/
|
|
88
70
|
HAPStatus[HAPStatus["OPERATION_TIMED_OUT"] = -70408] = "OPERATION_TIMED_OUT";
|
|
71
|
+
/**
|
|
72
|
+
* The given resource does not exist.
|
|
73
|
+
*/
|
|
89
74
|
HAPStatus[HAPStatus["RESOURCE_DOES_NOT_EXIST"] = -70409] = "RESOURCE_DOES_NOT_EXIST";
|
|
75
|
+
/**
|
|
76
|
+
* Received an invalid value in the given request for the given characteristic.
|
|
77
|
+
*/
|
|
90
78
|
HAPStatus[HAPStatus["INVALID_VALUE_IN_REQUEST"] = -70410] = "INVALID_VALUE_IN_REQUEST";
|
|
79
|
+
/**
|
|
80
|
+
* Insufficient authorization.
|
|
81
|
+
*/
|
|
91
82
|
HAPStatus[HAPStatus["INSUFFICIENT_AUTHORIZATION"] = -70411] = "INSUFFICIENT_AUTHORIZATION";
|
|
83
|
+
/**
|
|
84
|
+
* Operation not allowed in the current state.
|
|
85
|
+
*/
|
|
92
86
|
HAPStatus[HAPStatus["NOT_ALLOWED_IN_CURRENT_STATE"] = -70412] = "NOT_ALLOWED_IN_CURRENT_STATE";
|
|
93
87
|
// when adding new status codes, remember to update bounds in IsKnownHAPStatusError below
|
|
94
88
|
})(HAPStatus = exports.HAPStatus || (exports.HAPStatus = {}));
|
|
@@ -231,7 +225,7 @@ var HAPServer = /** @class */ (function (_super) {
|
|
|
231
225
|
HAPServer.prototype.listen = function (port, host) {
|
|
232
226
|
if (port === void 0) { port = 0; }
|
|
233
227
|
if (host === "::") {
|
|
234
|
-
// this will
|
|
228
|
+
// this will work around "EAFNOSUPPORT: address family not supported" errors
|
|
235
229
|
// on systems where IPv6 is not supported/enabled, we just use the node default then by supplying undefined
|
|
236
230
|
host = undefined;
|
|
237
231
|
}
|
|
@@ -245,15 +239,15 @@ var HAPServer = /** @class */ (function (_super) {
|
|
|
245
239
|
this.removeAllListeners();
|
|
246
240
|
};
|
|
247
241
|
/**
|
|
248
|
-
* Send
|
|
242
|
+
* Send an even notification for given characteristic and changed value to all connected clients.
|
|
249
243
|
* If {@param originator} is specified, the given {@link HAPConnection} will be excluded from the broadcast.
|
|
250
244
|
*
|
|
251
245
|
* @param aid - The accessory id of the updated characteristic.
|
|
252
246
|
* @param iid - The instance id of the updated characteristic.
|
|
253
247
|
* @param value - The newly set value of the characteristic.
|
|
254
|
-
* @param originator - If specified, the connection will not get
|
|
248
|
+
* @param originator - If specified, the connection will not get an event message.
|
|
255
249
|
* @param immediateDelivery - The HAP spec requires some characteristics to be delivery immediately.
|
|
256
|
-
* Namely for the {@link ButtonEvent} and the {@link ProgrammableSwitchEvent} characteristics.
|
|
250
|
+
* Namely, for the {@link ButtonEvent} and the {@link ProgrammableSwitchEvent} characteristics.
|
|
257
251
|
*/
|
|
258
252
|
HAPServer.prototype.sendEventNotifications = function (aid, iid, value, originator, immediateDelivery) {
|
|
259
253
|
try {
|
|
@@ -274,10 +268,10 @@ var HAPServer = /** @class */ (function (_super) {
|
|
|
274
268
|
request.on("data", function (data) { return buffers.push(data); });
|
|
275
269
|
request.on("end", function () {
|
|
276
270
|
var url = new url_1.URL(request.url, "http://hap-nodejs.local"); // parse the url (query strings etc)
|
|
277
|
-
var handler = _this.getHandler(url);
|
|
271
|
+
var handler = _this.getHandler(url);
|
|
278
272
|
if (!handler) {
|
|
279
273
|
debug("[%s] WARNING: Handler for %s not implemented", _this.accessoryInfo.username, request.url);
|
|
280
|
-
response.writeHead(404 /* NOT_FOUND */, { "Content-Type": "application/hap+json" });
|
|
274
|
+
response.writeHead(404 /* NOT_FOUND */, { "Content-Type": "application/hap+json" /* HAP_JSON */ });
|
|
281
275
|
response.end(JSON.stringify({ status: -70409 /* RESOURCE_DOES_NOT_EXIST */ }));
|
|
282
276
|
}
|
|
283
277
|
else {
|
|
@@ -287,7 +281,7 @@ var HAPServer = /** @class */ (function (_super) {
|
|
|
287
281
|
}
|
|
288
282
|
catch (error) {
|
|
289
283
|
debug("[%s] Error executing route handler: %s", _this.accessoryInfo.username, error.stack);
|
|
290
|
-
response.writeHead(500 /* INTERNAL_SERVER_ERROR */, { "Content-Type": "application/hap+json" });
|
|
284
|
+
response.writeHead(500 /* INTERNAL_SERVER_ERROR */, { "Content-Type": "application/hap+json" /* HAP_JSON */ });
|
|
291
285
|
response.end(JSON.stringify({ status: -70403 /* RESOURCE_BUSY */ })); // resource busy try again, does somehow fit?
|
|
292
286
|
}
|
|
293
287
|
}
|
|
@@ -324,8 +318,8 @@ var HAPServer = /** @class */ (function (_super) {
|
|
|
324
318
|
HAPServer.prototype.handleIdentifyRequest = function (connection, url, request, data, response) {
|
|
325
319
|
var _this = this;
|
|
326
320
|
// POST body is empty
|
|
327
|
-
if (
|
|
328
|
-
response.writeHead(400 /* BAD_REQUEST */, { "Content-Type": "application/hap+json" });
|
|
321
|
+
if (this.accessoryInfo.paired() && !this.allowInsecureRequest) {
|
|
322
|
+
response.writeHead(400 /* BAD_REQUEST */, { "Content-Type": "application/hap+json" /* HAP_JSON */ });
|
|
329
323
|
response.end(JSON.stringify({ status: -70401 /* INSUFFICIENT_PRIVILEGES */ }));
|
|
330
324
|
return;
|
|
331
325
|
}
|
|
@@ -337,7 +331,7 @@ var HAPServer = /** @class */ (function (_super) {
|
|
|
337
331
|
}
|
|
338
332
|
else {
|
|
339
333
|
debug("[%s] Identification error: %s", _this.accessoryInfo.username, err.message);
|
|
340
|
-
response.writeHead(500 /* INTERNAL_SERVER_ERROR */, { "Content-Type": "application/hap+json" });
|
|
334
|
+
response.writeHead(500 /* INTERNAL_SERVER_ERROR */, { "Content-Type": "application/hap+json" /* HAP_JSON */ });
|
|
341
335
|
response.end(JSON.stringify({ status: -70403 /* RESOURCE_BUSY */ }));
|
|
342
336
|
}
|
|
343
337
|
}));
|
|
@@ -504,7 +498,7 @@ var HAPServer = /** @class */ (function (_super) {
|
|
|
504
498
|
this.handlePairVerifyM1(connection, request, response, tlvData);
|
|
505
499
|
}
|
|
506
500
|
else if (sequence === 3 /* M3 */ && connection._pairVerifyState === 2 /* M2 */) {
|
|
507
|
-
this.
|
|
501
|
+
this.handlePairVerifyM3(connection, request, response, tlvData);
|
|
508
502
|
}
|
|
509
503
|
else {
|
|
510
504
|
// Invalid state/sequence number
|
|
@@ -536,7 +530,7 @@ var HAPServer = /** @class */ (function (_super) {
|
|
|
536
530
|
response.end(tlv.encode(6 /* SEQUENCE_NUM */, 2 /* M2 */, 5 /* ENCRYPTED_DATA */, Buffer.concat([encrypted.ciphertext, encrypted.authTag]), 3 /* PUBLIC_KEY */, publicKey));
|
|
537
531
|
connection._pairVerifyState = 2 /* M2 */;
|
|
538
532
|
};
|
|
539
|
-
HAPServer.prototype.
|
|
533
|
+
HAPServer.prototype.handlePairVerifyM3 = function (connection, request, response, objects) {
|
|
540
534
|
debug("[%s] Pair verify step 2/2", this.accessoryInfo.username);
|
|
541
535
|
var encryptedData = objects[5 /* ENCRYPTED_DATA */];
|
|
542
536
|
var messageData = Buffer.alloc(encryptedData.length - 16);
|
|
@@ -562,7 +556,7 @@ var HAPServer = /** @class */ (function (_super) {
|
|
|
562
556
|
var material = Buffer.concat([enc.clientPublicKey, clientUsername, enc.publicKey]);
|
|
563
557
|
// since we're paired, we should have the public key stored for this client
|
|
564
558
|
var clientPublicKey = this.accessoryInfo.getClientPublicKey(clientUsername.toString());
|
|
565
|
-
// if we're not actually paired, then there's nothing to verify - this client thinks it's paired with us but we
|
|
559
|
+
// if we're not actually paired, then there's nothing to verify - this client thinks it's paired with us, but we
|
|
566
560
|
// disagree. Respond with invalid request (seems to match HomeKit Accessory Simulator behavior)
|
|
567
561
|
if (!clientPublicKey) {
|
|
568
562
|
debug("[%s] Client %s attempting to verify, but we are not paired; rejecting client", this.accessoryInfo.username, clientUsername);
|
|
@@ -597,7 +591,7 @@ var HAPServer = /** @class */ (function (_super) {
|
|
|
597
591
|
var _this = this;
|
|
598
592
|
// Only accept /pairing request if there is a secure session
|
|
599
593
|
if (!this.allowInsecureRequest && !connection.isAuthenticated()) {
|
|
600
|
-
response.writeHead(470 /* CONNECTION_AUTHORIZATION_REQUIRED */, { "Content-Type": "application/hap+json" });
|
|
594
|
+
response.writeHead(470 /* CONNECTION_AUTHORIZATION_REQUIRED */, { "Content-Type": "application/hap+json" /* HAP_JSON */ });
|
|
601
595
|
response.end(JSON.stringify({ status: -70401 /* INSUFFICIENT_PRIVILEGES */ }));
|
|
602
596
|
return;
|
|
603
597
|
}
|
|
@@ -654,7 +648,7 @@ var HAPServer = /** @class */ (function (_super) {
|
|
|
654
648
|
tlvList.push(1 /* IDENTIFIER */, value.username, 3 /* PUBLIC_KEY */, value.publicKey, 11 /* PERMISSIONS */, value.permission);
|
|
655
649
|
});
|
|
656
650
|
var list = tlv.encode.apply(tlv, (0, tslib_1.__spreadArray)([6 /* STATE */, 2 /* M2 */], (0, tslib_1.__read)(tlvList), false));
|
|
657
|
-
response.writeHead(200 /* OK */, { "Content-Type": "application/pairing+tlv8" });
|
|
651
|
+
response.writeHead(200 /* OK */, { "Content-Type": "application/pairing+tlv8" /* PAIRING_TLV8 */ });
|
|
658
652
|
response.end(list);
|
|
659
653
|
debug("[%s] Pairings: successfully executed LIST_PAIRINGS", _this.accessoryInfo.username);
|
|
660
654
|
}));
|
|
@@ -662,18 +656,18 @@ var HAPServer = /** @class */ (function (_super) {
|
|
|
662
656
|
};
|
|
663
657
|
HAPServer.prototype.handleAccessories = function (connection, url, request, data, response) {
|
|
664
658
|
if (!this.allowInsecureRequest && !connection.isAuthenticated()) {
|
|
665
|
-
response.writeHead(470 /* CONNECTION_AUTHORIZATION_REQUIRED */, { "Content-Type": "application/hap+json" });
|
|
659
|
+
response.writeHead(470 /* CONNECTION_AUTHORIZATION_REQUIRED */, { "Content-Type": "application/hap+json" /* HAP_JSON */ });
|
|
666
660
|
response.end(JSON.stringify({ status: -70401 /* INSUFFICIENT_PRIVILEGES */ }));
|
|
667
661
|
return;
|
|
668
662
|
}
|
|
669
663
|
// call out to listeners to retrieve the latest accessories JSON
|
|
670
664
|
this.emit("accessories" /* ACCESSORIES */, connection, (0, once_1.once)(function (error, result) {
|
|
671
665
|
if (error) {
|
|
672
|
-
response.writeHead(error.httpCode, { "Content-Type": "application/hap+json" });
|
|
666
|
+
response.writeHead(error.httpCode, { "Content-Type": "application/hap+json" /* HAP_JSON */ });
|
|
673
667
|
response.end(JSON.stringify({ status: error.status }));
|
|
674
668
|
}
|
|
675
669
|
else {
|
|
676
|
-
response.writeHead(200 /* OK */, { "Content-Type": "application/hap+json" });
|
|
670
|
+
response.writeHead(200 /* OK */, { "Content-Type": "application/hap+json" /* HAP_JSON */ });
|
|
677
671
|
response.end(JSON.stringify(result));
|
|
678
672
|
}
|
|
679
673
|
}));
|
|
@@ -681,7 +675,7 @@ var HAPServer = /** @class */ (function (_super) {
|
|
|
681
675
|
HAPServer.prototype.handleCharacteristics = function (connection, url, request, data, response) {
|
|
682
676
|
var e_1, _a;
|
|
683
677
|
if (!this.allowInsecureRequest && !connection.isAuthenticated()) {
|
|
684
|
-
response.writeHead(470 /* CONNECTION_AUTHORIZATION_REQUIRED */, { "Content-Type": "application/hap+json" });
|
|
678
|
+
response.writeHead(470 /* CONNECTION_AUTHORIZATION_REQUIRED */, { "Content-Type": "application/hap+json" /* HAP_JSON */ });
|
|
685
679
|
response.end(JSON.stringify({ status: -70401 /* INSUFFICIENT_PRIVILEGES */ }));
|
|
686
680
|
return;
|
|
687
681
|
}
|
|
@@ -689,7 +683,7 @@ var HAPServer = /** @class */ (function (_super) {
|
|
|
689
683
|
var searchParams = url.searchParams;
|
|
690
684
|
var idParam = searchParams.get("id");
|
|
691
685
|
if (!idParam) {
|
|
692
|
-
response.writeHead(400 /* BAD_REQUEST */, { "Content-Type": "application/hap+json" });
|
|
686
|
+
response.writeHead(400 /* BAD_REQUEST */, { "Content-Type": "application/hap+json" /* HAP_JSON */ });
|
|
693
687
|
response.end(JSON.stringify({ status: -70410 /* INVALID_VALUE_IN_REQUEST */ }));
|
|
694
688
|
return;
|
|
695
689
|
}
|
|
@@ -700,7 +694,7 @@ var HAPServer = /** @class */ (function (_super) {
|
|
|
700
694
|
var split = entry.split("."); // ["1","9"]
|
|
701
695
|
ids.push({
|
|
702
696
|
aid: parseInt(split[0], 10),
|
|
703
|
-
iid: parseInt(split[1], 10), // (characteristic) instance
|
|
697
|
+
iid: parseInt(split[1], 10), // (characteristic) instance id
|
|
704
698
|
});
|
|
705
699
|
}
|
|
706
700
|
}
|
|
@@ -721,11 +715,10 @@ var HAPServer = /** @class */ (function (_super) {
|
|
|
721
715
|
this.emit("get-characteristics" /* GET_CHARACTERISTICS */, connection, readRequest, (0, once_1.once)(function (error, readResponse) {
|
|
722
716
|
var e_2, _a, e_3, _b;
|
|
723
717
|
if (error) {
|
|
724
|
-
response.writeHead(error.httpCode, { "Content-Type": "application/hap+json" });
|
|
718
|
+
response.writeHead(error.httpCode, { "Content-Type": "application/hap+json" /* HAP_JSON */ });
|
|
725
719
|
response.end(JSON.stringify({ status: error.status }));
|
|
726
720
|
return;
|
|
727
721
|
}
|
|
728
|
-
// typescript can't type that this exists if error doesnt
|
|
729
722
|
var characteristics = readResponse.characteristics;
|
|
730
723
|
var errorOccurred = false; // determine if we send a 207 Multi-Status
|
|
731
724
|
try {
|
|
@@ -762,32 +755,31 @@ var HAPServer = /** @class */ (function (_super) {
|
|
|
762
755
|
}
|
|
763
756
|
}
|
|
764
757
|
// 207 "multi-status" is returned when an error occurs reading a characteristic. otherwise 200 is returned
|
|
765
|
-
response.writeHead(errorOccurred ? 207 /* MULTI_STATUS */ : 200 /* OK */, { "Content-Type": "application/hap+json" });
|
|
758
|
+
response.writeHead(errorOccurred ? 207 /* MULTI_STATUS */ : 200 /* OK */, { "Content-Type": "application/hap+json" /* HAP_JSON */ });
|
|
766
759
|
response.end(JSON.stringify({ characteristics: characteristics }));
|
|
767
760
|
}));
|
|
768
761
|
}
|
|
769
762
|
else if (request.method === "PUT") {
|
|
770
763
|
if (!connection.isAuthenticated()) {
|
|
771
764
|
if (!request.headers || (request.headers && request.headers.authorization !== this.accessoryInfo.pincode)) {
|
|
772
|
-
response.writeHead(470 /* CONNECTION_AUTHORIZATION_REQUIRED */, { "Content-Type": "application/hap+json" });
|
|
765
|
+
response.writeHead(470 /* CONNECTION_AUTHORIZATION_REQUIRED */, { "Content-Type": "application/hap+json" /* HAP_JSON */ });
|
|
773
766
|
response.end(JSON.stringify({ status: -70401 /* INSUFFICIENT_PRIVILEGES */ }));
|
|
774
767
|
return;
|
|
775
768
|
}
|
|
776
769
|
}
|
|
777
770
|
if (data.length === 0) {
|
|
778
|
-
response.writeHead(400
|
|
771
|
+
response.writeHead(400 /* BAD_REQUEST */, { "Content-Type": "application/hap+json" /* HAP_JSON */ });
|
|
779
772
|
response.end(JSON.stringify({ status: -70410 /* INVALID_VALUE_IN_REQUEST */ }));
|
|
780
773
|
return;
|
|
781
774
|
}
|
|
782
775
|
var writeRequest = JSON.parse(data.toString("utf8"));
|
|
783
776
|
this.emit("set-characteristics" /* SET_CHARACTERISTICS */, connection, writeRequest, (0, once_1.once)(function (error, writeResponse) {
|
|
784
|
-
var e_4, _a
|
|
777
|
+
var e_4, _a;
|
|
785
778
|
if (error) {
|
|
786
|
-
response.writeHead(error.httpCode, { "Content-Type": "application/hap+json" });
|
|
779
|
+
response.writeHead(error.httpCode, { "Content-Type": "application/hap+json" /* HAP_JSON */ });
|
|
787
780
|
response.end(JSON.stringify({ status: error.status }));
|
|
788
781
|
return;
|
|
789
782
|
}
|
|
790
|
-
// typescript can't type that this exists if error doesnt
|
|
791
783
|
var characteristics = writeResponse.characteristics;
|
|
792
784
|
var multiStatus = false;
|
|
793
785
|
try {
|
|
@@ -808,23 +800,8 @@ var HAPServer = /** @class */ (function (_super) {
|
|
|
808
800
|
finally { if (e_4) throw e_4.error; }
|
|
809
801
|
}
|
|
810
802
|
if (multiStatus) {
|
|
811
|
-
try {
|
|
812
|
-
for (var characteristics_4 = (0, tslib_1.__values)(characteristics), characteristics_4_1 = characteristics_4.next(); !characteristics_4_1.done; characteristics_4_1 = characteristics_4.next()) { // on a 207 Multi-Status EVERY characteristic MUST include a status property
|
|
813
|
-
var data_4 = characteristics_4_1.value;
|
|
814
|
-
if (data_4.status === undefined) {
|
|
815
|
-
data_4.status = 0 /* SUCCESS */;
|
|
816
|
-
}
|
|
817
|
-
}
|
|
818
|
-
}
|
|
819
|
-
catch (e_5_1) { e_5 = { error: e_5_1 }; }
|
|
820
|
-
finally {
|
|
821
|
-
try {
|
|
822
|
-
if (characteristics_4_1 && !characteristics_4_1.done && (_b = characteristics_4.return)) _b.call(characteristics_4);
|
|
823
|
-
}
|
|
824
|
-
finally { if (e_5) throw e_5.error; }
|
|
825
|
-
}
|
|
826
803
|
// 207 is "multi-status" since HomeKit may be setting multiple things and any one can fail independently
|
|
827
|
-
response.writeHead(207 /* MULTI_STATUS */, { "Content-Type": "application/hap+json" });
|
|
804
|
+
response.writeHead(207 /* MULTI_STATUS */, { "Content-Type": "application/hap+json" /* HAP_JSON */ });
|
|
828
805
|
response.end(JSON.stringify({ characteristics: characteristics }));
|
|
829
806
|
}
|
|
830
807
|
else {
|
|
@@ -835,20 +812,20 @@ var HAPServer = /** @class */ (function (_super) {
|
|
|
835
812
|
}));
|
|
836
813
|
}
|
|
837
814
|
else {
|
|
838
|
-
response.writeHead(400 /* BAD_REQUEST */, { "Content-Type": "application/hap+json" }); // method not allowed
|
|
815
|
+
response.writeHead(400 /* BAD_REQUEST */, { "Content-Type": "application/hap+json" /* HAP_JSON */ }); // method not allowed
|
|
839
816
|
response.end(JSON.stringify({ status: -70410 /* INVALID_VALUE_IN_REQUEST */ }));
|
|
840
817
|
}
|
|
841
818
|
};
|
|
842
819
|
HAPServer.prototype.handlePrepareWrite = function (connection, url, request, data, response) {
|
|
843
820
|
var _this = this;
|
|
844
821
|
if (!this.allowInsecureRequest && !connection.isAuthenticated()) {
|
|
845
|
-
response.writeHead(470 /* CONNECTION_AUTHORIZATION_REQUIRED */, { "Content-Type": "application/hap+json" });
|
|
822
|
+
response.writeHead(470 /* CONNECTION_AUTHORIZATION_REQUIRED */, { "Content-Type": "application/hap+json" /* HAP_JSON */ });
|
|
846
823
|
response.end(JSON.stringify({ status: -70401 /* INSUFFICIENT_PRIVILEGES */ }));
|
|
847
824
|
return;
|
|
848
825
|
}
|
|
849
826
|
if (request.method === "PUT") {
|
|
850
827
|
if (data.length === 0) {
|
|
851
|
-
response.writeHead(400 /* BAD_REQUEST */, { "Content-Type": "application/hap+json" });
|
|
828
|
+
response.writeHead(400 /* BAD_REQUEST */, { "Content-Type": "application/hap+json" /* HAP_JSON */ });
|
|
852
829
|
response.end(JSON.stringify({ status: -70410 /* INVALID_VALUE_IN_REQUEST */ }));
|
|
853
830
|
return;
|
|
854
831
|
}
|
|
@@ -864,31 +841,31 @@ var HAPServer = /** @class */ (function (_super) {
|
|
|
864
841
|
connection.timedWritePid = undefined;
|
|
865
842
|
connection.timedWriteTimeout = undefined;
|
|
866
843
|
}, prepareRequest_1.ttl);
|
|
867
|
-
response.writeHead(200 /* OK */, { "Content-Type": "application/hap+json" });
|
|
844
|
+
response.writeHead(200 /* OK */, { "Content-Type": "application/hap+json" /* HAP_JSON */ });
|
|
868
845
|
response.end(JSON.stringify({ status: 0 /* SUCCESS */ }));
|
|
869
846
|
return;
|
|
870
847
|
}
|
|
871
848
|
else {
|
|
872
|
-
response.writeHead(400 /* BAD_REQUEST */, { "Content-Type": "application/hap+json" });
|
|
849
|
+
response.writeHead(400 /* BAD_REQUEST */, { "Content-Type": "application/hap+json" /* HAP_JSON */ });
|
|
873
850
|
response.end(JSON.stringify({ status: -70410 /* INVALID_VALUE_IN_REQUEST */ }));
|
|
874
851
|
}
|
|
875
852
|
}
|
|
876
853
|
else {
|
|
877
|
-
response.writeHead(400 /* BAD_REQUEST */, { "Content-Type": "application/hap+json" });
|
|
854
|
+
response.writeHead(400 /* BAD_REQUEST */, { "Content-Type": "application/hap+json" /* HAP_JSON */ });
|
|
878
855
|
response.end(JSON.stringify({ status: -70410 /* INVALID_VALUE_IN_REQUEST */ }));
|
|
879
856
|
}
|
|
880
857
|
};
|
|
881
858
|
HAPServer.prototype.handleResource = function (connection, url, request, data, response) {
|
|
882
859
|
if (!connection.isAuthenticated()) {
|
|
883
860
|
if (!(this.allowInsecureRequest && request.headers && request.headers.authorization === this.accessoryInfo.pincode)) {
|
|
884
|
-
response.writeHead(470 /* CONNECTION_AUTHORIZATION_REQUIRED */, { "Content-Type": "application/hap+json" });
|
|
861
|
+
response.writeHead(470 /* CONNECTION_AUTHORIZATION_REQUIRED */, { "Content-Type": "application/hap+json" /* HAP_JSON */ });
|
|
885
862
|
response.end(JSON.stringify({ status: -70401 /* INSUFFICIENT_PRIVILEGES */ }));
|
|
886
863
|
return;
|
|
887
864
|
}
|
|
888
865
|
}
|
|
889
866
|
if (request.method === "POST") {
|
|
890
867
|
if (data.length === 0) {
|
|
891
|
-
response.writeHead(400 /* BAD_REQUEST */, { "Content-Type": "application/hap+json" });
|
|
868
|
+
response.writeHead(400 /* BAD_REQUEST */, { "Content-Type": "application/hap+json" /* HAP_JSON */ });
|
|
892
869
|
response.end(JSON.stringify({ status: -70410 /* INVALID_VALUE_IN_REQUEST */ }));
|
|
893
870
|
return;
|
|
894
871
|
}
|
|
@@ -896,17 +873,17 @@ var HAPServer = /** @class */ (function (_super) {
|
|
|
896
873
|
// call out to listeners to retrieve the resource, snapshot only right now
|
|
897
874
|
this.emit("request-resource" /* REQUEST_RESOURCE */, resourceRequest, (0, once_1.once)(function (error, resource) {
|
|
898
875
|
if (error) {
|
|
899
|
-
response.writeHead(error.httpCode, { "Content-Type": "application/hap+json" });
|
|
876
|
+
response.writeHead(error.httpCode, { "Content-Type": "application/hap+json" /* HAP_JSON */ });
|
|
900
877
|
response.end(JSON.stringify({ status: error.status }));
|
|
901
878
|
}
|
|
902
879
|
else {
|
|
903
|
-
response.writeHead(200 /* OK */, { "Content-Type": "image/jpeg" });
|
|
880
|
+
response.writeHead(200 /* OK */, { "Content-Type": "image/jpeg" /* IMAGE_JPEG */ });
|
|
904
881
|
response.end(resource);
|
|
905
882
|
}
|
|
906
883
|
}));
|
|
907
884
|
}
|
|
908
885
|
else {
|
|
909
|
-
response.writeHead(400 /* BAD_REQUEST */, { "Content-Type": "application/hap+json" }); // method not allowed
|
|
886
|
+
response.writeHead(400 /* BAD_REQUEST */, { "Content-Type": "application/hap+json" /* HAP_JSON */ }); // method not allowed
|
|
910
887
|
response.end(JSON.stringify({ status: -70410 /* INVALID_VALUE_IN_REQUEST */ }));
|
|
911
888
|
}
|
|
912
889
|
};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"HAPServer.js","sourceRoot":"","sources":["../../src/lib/HAPServer.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"HAPServer.js","sourceRoot":"","sources":["../../src/lib/HAPServer.ts"],"names":[],"mappings":"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"}
|
package/dist/lib/Service.d.ts
CHANGED
|
@@ -4,7 +4,7 @@ import { ServiceJsonObject } from "../internal-types";
|
|
|
4
4
|
import { CharacteristicValue, Nullable, WithUUID } from "../types";
|
|
5
5
|
import { CharacteristicWarning } from "./Accessory";
|
|
6
6
|
import { Characteristic, CharacteristicChange, SerializedCharacteristic } from "./Characteristic";
|
|
7
|
-
import { AccessCode, AccessControl, AccessoryInformation, AccessoryMetrics, AccessoryRuntimeInformation, AirPurifier, AirQualitySensor, AssetUpdate, Assistant, AudioStreamManagement, Battery, BridgeConfiguration, BridgingState, CameraControl, CameraOperatingMode, CameraRecordingManagement, CameraRTPStreamManagement, CarbonDioxideSensor, CarbonMonoxideSensor, CloudRelay, ContactSensor, DataStreamTransportManagement, Diagnostics, Door, Doorbell, Fan, Fanv2, Faucet, FilterMaintenance, FirmwareUpdate, GarageDoorOpener, HeaterCooler, HumidifierDehumidifier, HumiditySensor, InputSource, IrrigationSystem, LeakSensor, Lightbulb, LightSensor, LockManagement, LockMechanism, Microphone, MotionSensor, NFCAccess, OccupancySensor, Outlet, Pairing, PowerManagement, ProtocolInformation, SecuritySystem, ServiceLabel, Siri, SiriEndpoint, Slats, SmartSpeaker, SmokeSensor, Speaker, StatefulProgrammableSwitch, StatelessProgrammableSwitch, Switch, TapManagement, TargetControl, TargetControlManagement, Television, TelevisionSpeaker, TemperatureSensor, Thermostat, ThreadTransport, TimeInformation, TransferTransportManagement, Tunnel, Valve, WiFiRouter, WiFiSatellite, WiFiTransport, Window, WindowCovering } from "./definitions";
|
|
7
|
+
import type { AccessCode, AccessControl, AccessoryInformation, AccessoryMetrics, AccessoryRuntimeInformation, AirPurifier, AirQualitySensor, AssetUpdate, Assistant, AudioStreamManagement, Battery, BridgeConfiguration, BridgingState, CameraControl, CameraOperatingMode, CameraRecordingManagement, CameraRTPStreamManagement, CarbonDioxideSensor, CarbonMonoxideSensor, CloudRelay, ContactSensor, DataStreamTransportManagement, Diagnostics, Door, Doorbell, Fan, Fanv2, Faucet, FilterMaintenance, FirmwareUpdate, GarageDoorOpener, HeaterCooler, HumidifierDehumidifier, HumiditySensor, InputSource, IrrigationSystem, LeakSensor, Lightbulb, LightSensor, LockManagement, LockMechanism, Microphone, MotionSensor, NFCAccess, OccupancySensor, Outlet, Pairing, PowerManagement, ProtocolInformation, SecuritySystem, ServiceLabel, Siri, SiriEndpoint, Slats, SmartSpeaker, SmokeSensor, Speaker, StatefulProgrammableSwitch, StatelessProgrammableSwitch, Switch, TapManagement, TargetControl, TargetControlManagement, Television, TelevisionSpeaker, TemperatureSensor, Thermostat, ThreadTransport, TimeInformation, TransferTransportManagement, Tunnel, Valve, WiFiRouter, WiFiSatellite, WiFiTransport, Window, WindowCovering } from "./definitions";
|
|
8
8
|
import { IdentifierCache } from "./model/IdentifierCache";
|
|
9
9
|
import { HAPConnection } from "./util/eventedhttp";
|
|
10
10
|
import { HapStatusError } from "./util/hapStatusError";
|
|
@@ -361,4 +361,5 @@ export declare class Service extends EventEmitter {
|
|
|
361
361
|
*/
|
|
362
362
|
static deserialize(json: SerializedService): Service;
|
|
363
363
|
}
|
|
364
|
+
import "./definitions/ServiceDefinitions";
|
|
364
365
|
//# sourceMappingURL=Service.d.ts.map
|