hap-nodejs 0.10.0-beta.1 → 0.10.0-beta.13
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/@types/bonjour-hap.d.ts +4 -3
- package/@types/simple-plist.d.ts +2 -1
- package/README.md +1 -1
- package/dist/BridgedCore.js +7 -6
- package/dist/BridgedCore.js.map +1 -1
- package/dist/Core.js +14 -12
- package/dist/Core.js.map +1 -1
- package/dist/accessories/AirConditioner_accessory.js +9 -9
- package/dist/accessories/AirConditioner_accessory.js.map +1 -1
- package/dist/accessories/AppleTVRemote_accessory.js +17 -16
- package/dist/accessories/AppleTVRemote_accessory.js.map +1 -1
- package/dist/accessories/Camera_accessory.js +415 -36
- package/dist/accessories/Camera_accessory.js.map +1 -1
- package/dist/accessories/Fan_accessory.js +10 -15
- package/dist/accessories/Fan_accessory.js.map +1 -1
- package/dist/accessories/GarageDoorOpener_accessory.js +7 -8
- package/dist/accessories/GarageDoorOpener_accessory.js.map +1 -1
- package/dist/accessories/Light-AdaptiveLighting_accessory.js +3 -4
- package/dist/accessories/Light-AdaptiveLighting_accessory.js.map +1 -1
- package/dist/accessories/Light_accessory.js +23 -14
- package/dist/accessories/Light_accessory.js.map +1 -1
- package/dist/accessories/Lock_accessory.js +7 -8
- package/dist/accessories/Lock_accessory.js.map +1 -1
- package/dist/accessories/MotionSensor_accessory.js +5 -6
- package/dist/accessories/MotionSensor_accessory.js.map +1 -1
- package/dist/accessories/Outlet_accessory.js +5 -6
- package/dist/accessories/Outlet_accessory.js.map +1 -1
- package/dist/accessories/SmartSpeaker_accessory.js +6 -6
- package/dist/accessories/SmartSpeaker_accessory.js.map +1 -1
- package/dist/accessories/Sprinkler_accessory.js +12 -13
- package/dist/accessories/Sprinkler_accessory.js.map +1 -1
- package/dist/accessories/TV_accessory.js +4 -5
- package/dist/accessories/TV_accessory.js.map +1 -1
- package/dist/accessories/TemperatureSensor_accessory.js +5 -6
- package/dist/accessories/TemperatureSensor_accessory.js.map +1 -1
- package/dist/accessories/Wi-FiRouter_accessory.d.ts +1 -1
- package/dist/accessories/Wi-FiRouter_accessory.d.ts.map +1 -1
- package/dist/accessories/Wi-FiRouter_accessory.js +7 -8
- package/dist/accessories/Wi-FiRouter_accessory.js.map +1 -1
- package/dist/accessories/Wi-FiSatellite_accessory.d.ts +1 -1
- package/dist/accessories/Wi-FiSatellite_accessory.d.ts.map +1 -1
- package/dist/accessories/Wi-FiSatellite_accessory.js +6 -7
- package/dist/accessories/Wi-FiSatellite_accessory.js.map +1 -1
- package/dist/accessories/gstreamer-audioProducer.d.ts.map +1 -1
- package/dist/accessories/gstreamer-audioProducer.js +21 -22
- package/dist/accessories/gstreamer-audioProducer.js.map +1 -1
- package/dist/index.d.ts +27 -22
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +35 -24
- package/dist/index.js.map +1 -1
- package/dist/internal-types.d.ts +2 -0
- package/dist/internal-types.d.ts.map +1 -1
- package/dist/internal-types.js.map +1 -1
- package/dist/lib/Accessory.d.ts +38 -17
- package/dist/lib/Accessory.d.ts.map +1 -1
- package/dist/lib/Accessory.js +345 -273
- package/dist/lib/Accessory.js.map +1 -1
- package/dist/lib/AccessoryLoader.d.ts +10 -10
- package/dist/lib/AccessoryLoader.d.ts.map +1 -1
- package/dist/lib/AccessoryLoader.js +109 -99
- package/dist/lib/AccessoryLoader.js.map +1 -1
- package/dist/lib/Advertiser.d.ts +26 -6
- package/dist/lib/Advertiser.d.ts.map +1 -1
- package/dist/lib/Advertiser.js +242 -29
- package/dist/lib/Advertiser.js.map +1 -1
- package/dist/lib/Bridge.d.ts +1 -1
- package/dist/lib/Bridge.d.ts.map +1 -1
- package/dist/lib/Bridge.js +1 -1
- package/dist/lib/Bridge.js.map +1 -1
- package/dist/lib/Characteristic.d.ts +23 -22
- package/dist/lib/Characteristic.d.ts.map +1 -1
- package/dist/lib/Characteristic.js +148 -145
- package/dist/lib/Characteristic.js.map +1 -1
- package/dist/lib/HAPServer.d.ts +2 -2
- package/dist/lib/HAPServer.d.ts.map +1 -1
- package/dist/lib/HAPServer.js +43 -39
- package/dist/lib/HAPServer.js.map +1 -1
- package/dist/lib/Service.d.ts +3 -3
- package/dist/lib/Service.d.ts.map +1 -1
- package/dist/lib/Service.js +51 -47
- package/dist/lib/Service.js.map +1 -1
- package/dist/lib/camera/Camera.d.ts +2 -2
- package/dist/lib/camera/Camera.d.ts.map +1 -1
- package/dist/lib/camera/Camera.js +3 -3
- package/dist/lib/camera/Camera.js.map +1 -1
- package/dist/lib/camera/RTPProxy.d.ts +19 -19
- package/dist/lib/camera/RTPProxy.d.ts.map +1 -1
- package/dist/lib/camera/RTPProxy.js +230 -208
- package/dist/lib/camera/RTPProxy.js.map +1 -1
- package/dist/lib/camera/RTPStreamManagement.d.ts +46 -10
- package/dist/lib/camera/RTPStreamManagement.d.ts.map +1 -1
- package/dist/lib/camera/RTPStreamManagement.js +124 -49
- package/dist/lib/camera/RTPStreamManagement.js.map +1 -1
- package/dist/lib/camera/RecordingManagement.d.ts +267 -0
- package/dist/lib/camera/RecordingManagement.d.ts.map +1 -0
- package/dist/lib/camera/RecordingManagement.js +750 -0
- package/dist/lib/camera/RecordingManagement.js.map +1 -0
- package/dist/lib/camera/index.d.ts +4 -3
- package/dist/lib/camera/index.d.ts.map +1 -1
- package/dist/lib/camera/index.js +4 -3
- package/dist/lib/camera/index.js.map +1 -1
- package/dist/lib/controller/AdaptiveLightingController.d.ts +9 -9
- package/dist/lib/controller/AdaptiveLightingController.d.ts.map +1 -1
- package/dist/lib/controller/AdaptiveLightingController.js +37 -31
- package/dist/lib/controller/AdaptiveLightingController.js.map +1 -1
- package/dist/lib/controller/CameraController.d.ts +254 -7
- package/dist/lib/controller/CameraController.d.ts.map +1 -1
- package/dist/lib/controller/CameraController.js +382 -35
- package/dist/lib/controller/CameraController.js.map +1 -1
- package/dist/lib/controller/Controller.d.ts +3 -3
- package/dist/lib/controller/Controller.d.ts.map +1 -1
- package/dist/lib/controller/Controller.js.map +1 -1
- package/dist/lib/controller/DoorbellController.d.ts +43 -1
- package/dist/lib/controller/DoorbellController.d.ts.map +1 -1
- package/dist/lib/controller/DoorbellController.js +64 -12
- package/dist/lib/controller/DoorbellController.js.map +1 -1
- package/dist/lib/controller/RemoteController.d.ts +4 -4
- package/dist/lib/controller/RemoteController.d.ts.map +1 -1
- package/dist/lib/controller/RemoteController.js +79 -69
- package/dist/lib/controller/RemoteController.js.map +1 -1
- package/dist/lib/controller/index.d.ts +4 -4
- package/dist/lib/controller/index.js +5 -5
- package/dist/lib/controller/index.js.map +1 -1
- package/dist/lib/datastream/DataStreamManagement.d.ts.map +1 -1
- package/dist/lib/datastream/DataStreamManagement.js +12 -11
- package/dist/lib/datastream/DataStreamManagement.js.map +1 -1
- package/dist/lib/datastream/DataStreamParser.d.ts +24 -24
- package/dist/lib/datastream/DataStreamParser.d.ts.map +1 -1
- package/dist/lib/datastream/DataStreamParser.js +31 -22
- package/dist/lib/datastream/DataStreamParser.js.map +1 -1
- package/dist/lib/datastream/DataStreamServer.d.ts +24 -5
- package/dist/lib/datastream/DataStreamServer.d.ts.map +1 -1
- package/dist/lib/datastream/DataStreamServer.js +109 -68
- package/dist/lib/datastream/DataStreamServer.js.map +1 -1
- package/dist/lib/datastream/index.d.ts +3 -3
- package/dist/lib/datastream/index.js +3 -3
- package/dist/lib/datastream/index.js.map +1 -1
- package/dist/lib/definitions/CharacteristicDefinitions.js +249 -249
- package/dist/lib/definitions/CharacteristicDefinitions.js.map +1 -1
- package/dist/lib/definitions/ServiceDefinitions.js +75 -75
- package/dist/lib/definitions/ServiceDefinitions.js.map +1 -1
- package/dist/lib/definitions/generate-definitions.d.ts.map +1 -1
- package/dist/lib/definitions/generate-definitions.js +76 -72
- package/dist/lib/definitions/generate-definitions.js.map +1 -1
- package/dist/lib/definitions/generator-configuration.d.ts.map +1 -1
- package/dist/lib/definitions/generator-configuration.js +34 -16
- package/dist/lib/definitions/generator-configuration.js.map +1 -1
- package/dist/lib/definitions/index.js +2 -2
- package/dist/lib/definitions/index.js.map +1 -1
- package/dist/lib/model/AccessoryInfo.d.ts +6 -6
- package/dist/lib/model/AccessoryInfo.d.ts.map +1 -1
- package/dist/lib/model/AccessoryInfo.js +86 -76
- package/dist/lib/model/AccessoryInfo.js.map +1 -1
- package/dist/lib/model/ControllerStorage.d.ts.map +1 -1
- package/dist/lib/model/ControllerStorage.js +9 -9
- package/dist/lib/model/ControllerStorage.js.map +1 -1
- package/dist/lib/model/HAPStorage.d.ts.map +1 -1
- package/dist/lib/model/HAPStorage.js +2 -1
- package/dist/lib/model/HAPStorage.js.map +1 -1
- package/dist/lib/model/IdentifierCache.d.ts +11 -11
- package/dist/lib/model/IdentifierCache.d.ts.map +1 -1
- package/dist/lib/model/IdentifierCache.js +69 -67
- package/dist/lib/model/IdentifierCache.js.map +1 -1
- package/dist/lib/tv/AccessControlManagement.d.ts +1 -1
- package/dist/lib/tv/AccessControlManagement.d.ts.map +1 -1
- package/dist/lib/tv/AccessControlManagement.js +2 -2
- package/dist/lib/tv/AccessControlManagement.js.map +1 -1
- package/dist/lib/util/clone.js +5 -4
- package/dist/lib/util/clone.js.map +1 -1
- package/dist/lib/util/color-utils.d.ts.map +1 -1
- package/dist/lib/util/color-utils.js +2 -2
- package/dist/lib/util/color-utils.js.map +1 -1
- package/dist/lib/util/eventedhttp.d.ts +8 -8
- package/dist/lib/util/eventedhttp.d.ts.map +1 -1
- package/dist/lib/util/eventedhttp.js +100 -84
- package/dist/lib/util/eventedhttp.js.map +1 -1
- package/dist/lib/util/hapCrypto.d.ts +5 -5
- package/dist/lib/util/hapCrypto.d.ts.map +1 -1
- package/dist/lib/util/hapCrypto.js +66 -82
- package/dist/lib/util/hapCrypto.js.map +1 -1
- package/dist/lib/util/hapStatusError.js +3 -3
- package/dist/lib/util/hapStatusError.js.map +1 -1
- package/dist/lib/util/net-utils.d.ts.map +1 -1
- package/dist/lib/util/net-utils.js +4 -6
- package/dist/lib/util/net-utils.js.map +1 -1
- package/dist/lib/util/once.d.ts +1 -1
- package/dist/lib/util/once.d.ts.map +1 -1
- package/dist/lib/util/once.js +2 -1
- package/dist/lib/util/once.js.map +1 -1
- package/dist/lib/util/promise-utils.d.ts +2 -0
- package/dist/lib/util/promise-utils.d.ts.map +1 -0
- package/dist/lib/util/promise-utils.js +10 -0
- package/dist/lib/util/promise-utils.js.map +1 -0
- package/dist/lib/util/request-util.d.ts.map +1 -1
- package/dist/lib/util/request-util.js +1 -0
- package/dist/lib/util/request-util.js.map +1 -1
- package/dist/lib/util/time.d.ts +1 -1
- package/dist/lib/util/time.d.ts.map +1 -1
- package/dist/lib/util/time.js +8 -8
- package/dist/lib/util/time.js.map +1 -1
- package/dist/lib/util/tlv.d.ts.map +1 -1
- package/dist/lib/util/tlv.js +15 -12
- package/dist/lib/util/tlv.js.map +1 -1
- package/dist/lib/util/uuid.d.ts.map +1 -1
- package/dist/lib/util/uuid.js +26 -20
- package/dist/lib/util/uuid.js.map +1 -1
- package/dist/types.d.ts +0 -1
- package/dist/types.d.ts.map +1 -1
- package/package.json +22 -19
|
@@ -1,9 +1,9 @@
|
|
|
1
1
|
/// <reference types="node" />
|
|
2
2
|
import { EventEmitter } from "events";
|
|
3
3
|
import { SrpServer } from "fast-srp-hap";
|
|
4
|
-
import { IncomingMessage, ServerResponse } from
|
|
5
|
-
import { Socket } from
|
|
6
|
-
import { CharacteristicValue, Nullable, SessionIdentifier } from
|
|
4
|
+
import { IncomingMessage, ServerResponse } from "http";
|
|
5
|
+
import { Socket } from "net";
|
|
6
|
+
import { CharacteristicValue, Nullable, SessionIdentifier } from "../../types";
|
|
7
7
|
export declare type HAPUsername = string;
|
|
8
8
|
export declare type EventName = string;
|
|
9
9
|
/**
|
|
@@ -44,7 +44,7 @@ export declare interface EventedHTTPServer {
|
|
|
44
44
|
* Implementation
|
|
45
45
|
* --------------
|
|
46
46
|
* In order to implement the "custom HTTP" server required by the HAP protocol (see HAPServer.js) without completely
|
|
47
|
-
* reinventing the wheel, we create both a generic TCP socket server
|
|
47
|
+
* reinventing the wheel, we create both a generic TCP socket server and a standard Node HTTP server.
|
|
48
48
|
* The TCP socket server acts as a proxy, allowing users of this class to transform data (for encryption) as necessary
|
|
49
49
|
* and passing through bytes directly to the HTTP server for processing. This way we get Node to do all
|
|
50
50
|
* the "heavy lifting" of HTTP like parsing headers and formatting responses.
|
|
@@ -75,15 +75,15 @@ export declare class EventedHTTPServer extends EventEmitter {
|
|
|
75
75
|
stop(): void;
|
|
76
76
|
destroy(): void;
|
|
77
77
|
/**
|
|
78
|
-
* Send
|
|
78
|
+
* Send an event notification for given characteristic and changed value to all connected clients.
|
|
79
79
|
* If {@param originator} is specified, the given {@link HAPConnection} will be excluded from the broadcast.
|
|
80
80
|
*
|
|
81
81
|
* @param aid - The accessory id of the updated characteristic.
|
|
82
82
|
* @param iid - The instance id of the updated characteristic.
|
|
83
83
|
* @param value - The newly set value of the characteristic.
|
|
84
|
-
* @param originator - If specified, the connection will not get
|
|
84
|
+
* @param originator - If specified, the connection will not get an event message.
|
|
85
85
|
* @param immediateDelivery - The HAP spec requires some characteristics to be delivery immediately.
|
|
86
|
-
* Namely for the {@link ButtonEvent} and the {@link ProgrammableSwitchEvent} characteristics.
|
|
86
|
+
* Namely, for the {@link ButtonEvent} and the {@link ProgrammableSwitchEvent} characteristics.
|
|
87
87
|
*/
|
|
88
88
|
broadcastEvent(aid: number, iid: number, value: Nullable<CharacteristicValue>, originator?: HAPConnection, immediateDelivery?: boolean): void;
|
|
89
89
|
private onConnection;
|
|
@@ -164,7 +164,7 @@ export declare class HAPConnection extends EventEmitter {
|
|
|
164
164
|
private writeQueuedEventNotifications;
|
|
165
165
|
/**
|
|
166
166
|
* This will create an EVENT/1.0 notification header with the provided event notification.
|
|
167
|
-
* If currently
|
|
167
|
+
* If currently an HTTP request is in progress the assembled packet will be
|
|
168
168
|
* added to the pending events list.
|
|
169
169
|
*
|
|
170
170
|
* @param notification - The event which should be sent out
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"eventedhttp.d.ts","sourceRoot":"","sources":["../../../src/lib/util/eventedhttp.ts"],"names":[],"mappings":";AAGA,OAAO,EAAE,YAAY,EAAE,MAAM,QAAQ,CAAC;AACtC,OAAO,EAAE,SAAS,EAAE,MAAM,cAAc,CAAC;AACzC,OAAa,EAAE,eAAe,EAAE,cAAc,EAAE,MAAM,MAAM,CAAC;AAC7D,OAAY,EAAe,MAAM,EAAE,MAAM,KAAK,CAAC;AAG/C,OAAO,EAAE,mBAAmB,EAAE,QAAQ,EAAE,iBAAiB,EAAE,MAAM,aAAa,CAAC;AAS/E,oBAAY,WAAW,GAAG,MAAM,CAAC;AACjC,oBAAY,SAAS,GAAG,MAAM,CAAC;AAE/B;;GAEG;AAEH,qBAAa,aAAa;IAExB,QAAQ,CAAC,eAAe,EAAE,MAAM,CAAC;IACjC,QAAQ,CAAC,SAAS,EAAE,MAAM,CAAC;IAC3B,QAAQ,CAAC,SAAS,EAAE,MAAM,CAAC;IAC3B,QAAQ,CAAC,YAAY,EAAE,MAAM,CAAC;IAC9B,QAAQ,CAAC,qBAAqB,EAAE,MAAM,CAAC;IAEvC,0BAA0B,
|
|
1
|
+
{"version":3,"file":"eventedhttp.d.ts","sourceRoot":"","sources":["../../../src/lib/util/eventedhttp.ts"],"names":[],"mappings":"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"}
|
|
@@ -3,17 +3,17 @@ Object.defineProperty(exports, "__esModule", { value: true });
|
|
|
3
3
|
exports.HAPConnection = exports.HAPConnectionEvent = exports.HAPConnectionState = exports.EventedHTTPServer = exports.EventedHTTPServerEvent = exports.HAPEncryption = void 0;
|
|
4
4
|
var tslib_1 = require("tslib");
|
|
5
5
|
var domain_formatter_1 = require("@homebridge/ciao/lib/util/domain-formatter");
|
|
6
|
-
var assert_1 = tslib_1.__importDefault(require("assert"));
|
|
7
|
-
var debug_1 = tslib_1.__importDefault(require("debug"));
|
|
6
|
+
var assert_1 = (0, tslib_1.__importDefault)(require("assert"));
|
|
7
|
+
var debug_1 = (0, tslib_1.__importDefault)(require("debug"));
|
|
8
8
|
var events_1 = require("events");
|
|
9
|
-
var http_1 = tslib_1.__importDefault(require("http"));
|
|
10
|
-
var net_1 = tslib_1.__importDefault(require("net"));
|
|
11
|
-
var os_1 = tslib_1.__importDefault(require("os"));
|
|
12
|
-
var hapCrypto = tslib_1.__importStar(require("./hapCrypto"));
|
|
9
|
+
var http_1 = (0, tslib_1.__importDefault)(require("http"));
|
|
10
|
+
var net_1 = (0, tslib_1.__importDefault)(require("net"));
|
|
11
|
+
var os_1 = (0, tslib_1.__importDefault)(require("os"));
|
|
12
|
+
var hapCrypto = (0, tslib_1.__importStar)(require("./hapCrypto"));
|
|
13
13
|
var net_utils_1 = require("./net-utils");
|
|
14
|
-
var uuid = tslib_1.__importStar(require("./uuid"));
|
|
15
|
-
var debug = debug_1.default(
|
|
16
|
-
var debugCon = debug_1.default("HAP-NodeJS:EventedHTTPServer:Connection");
|
|
14
|
+
var uuid = (0, tslib_1.__importStar)(require("./uuid"));
|
|
15
|
+
var debug = (0, debug_1.default)("HAP-NodeJS:EventedHTTPServer");
|
|
16
|
+
var debugCon = (0, debug_1.default)("HAP-NodeJS:EventedHTTPServer:Connection");
|
|
17
17
|
/**
|
|
18
18
|
* Simple struct to hold vars needed to support HAP encryption.
|
|
19
19
|
*/
|
|
@@ -45,7 +45,7 @@ var EventedHTTPServerEvent;
|
|
|
45
45
|
* Implementation
|
|
46
46
|
* --------------
|
|
47
47
|
* In order to implement the "custom HTTP" server required by the HAP protocol (see HAPServer.js) without completely
|
|
48
|
-
* reinventing the wheel, we create both a generic TCP socket server
|
|
48
|
+
* reinventing the wheel, we create both a generic TCP socket server and a standard Node HTTP server.
|
|
49
49
|
* The TCP socket server acts as a proxy, allowing users of this class to transform data (for encryption) as necessary
|
|
50
50
|
* and passing through bytes directly to the HTTP server for processing. This way we get Node to do all
|
|
51
51
|
* the "heavy lifting" of HTTP like parsing headers and formatting responses.
|
|
@@ -57,7 +57,7 @@ var EventedHTTPServerEvent;
|
|
|
57
57
|
* for safe event insertion.
|
|
58
58
|
*/
|
|
59
59
|
var EventedHTTPServer = /** @class */ (function (_super) {
|
|
60
|
-
tslib_1.__extends(EventedHTTPServer, _super);
|
|
60
|
+
(0, tslib_1.__extends)(EventedHTTPServer, _super);
|
|
61
61
|
function EventedHTTPServer() {
|
|
62
62
|
var _this = _super.call(this) || this;
|
|
63
63
|
/**
|
|
@@ -74,7 +74,7 @@ var EventedHTTPServer = /** @class */ (function (_super) {
|
|
|
74
74
|
var e_1, _a;
|
|
75
75
|
var connectionString = "";
|
|
76
76
|
try {
|
|
77
|
-
for (var _b = tslib_1.__values(_this.connections), _c = _b.next(); !_c.done; _c = _b.next()) {
|
|
77
|
+
for (var _b = (0, tslib_1.__values)(_this.connections), _c = _b.next(); !_c.done; _c = _b.next()) {
|
|
78
78
|
var connection = _c.value;
|
|
79
79
|
if (connectionString) {
|
|
80
80
|
connectionString += ", ";
|
|
@@ -104,7 +104,7 @@ var EventedHTTPServer = /** @class */ (function (_super) {
|
|
|
104
104
|
var currentTime = new Date().getTime();
|
|
105
105
|
var nextTimeout = -1;
|
|
106
106
|
try {
|
|
107
|
-
for (var _b = tslib_1.__values(this.connections), _c = _b.next(); !_c.done; _c = _b.next()) {
|
|
107
|
+
for (var _b = (0, tslib_1.__values)(this.connections), _c = _b.next(); !_c.done; _c = _b.next()) {
|
|
108
108
|
var connection = _c.value;
|
|
109
109
|
var timeDelta = currentTime - connection.lastSocketOperation;
|
|
110
110
|
if (timeDelta >= EventedHTTPServer.MAX_CONNECTION_IDLE_TIME) {
|
|
@@ -131,7 +131,7 @@ var EventedHTTPServer = /** @class */ (function (_super) {
|
|
|
131
131
|
var _this = this;
|
|
132
132
|
this.tcpServer.listen(targetPort, hostname, function () {
|
|
133
133
|
var address = _this.tcpServer.address(); // address() is only a string when listening to unix domain sockets
|
|
134
|
-
debug("Server listening on %s:%s", address.family === "IPv6" ? "["
|
|
134
|
+
debug("Server listening on %s:%s", address.family === "IPv6" ? "[".concat(address.address, "]") : address.address, address.port);
|
|
135
135
|
_this.emit("listening" /* LISTENING */, address.port, address.address);
|
|
136
136
|
});
|
|
137
137
|
this.tcpServer.on("connection", this.onConnection.bind(this));
|
|
@@ -140,7 +140,7 @@ var EventedHTTPServer = /** @class */ (function (_super) {
|
|
|
140
140
|
var e_3, _a;
|
|
141
141
|
this.tcpServer.close();
|
|
142
142
|
try {
|
|
143
|
-
for (var _b = tslib_1.__values(this.connections), _c = _b.next(); !_c.done; _c = _b.next()) {
|
|
143
|
+
for (var _b = (0, tslib_1.__values)(this.connections), _c = _b.next(); !_c.done; _c = _b.next()) {
|
|
144
144
|
var connection = _c.value;
|
|
145
145
|
connection.close();
|
|
146
146
|
}
|
|
@@ -158,20 +158,20 @@ var EventedHTTPServer = /** @class */ (function (_super) {
|
|
|
158
158
|
this.removeAllListeners();
|
|
159
159
|
};
|
|
160
160
|
/**
|
|
161
|
-
* Send
|
|
161
|
+
* Send an event notification for given characteristic and changed value to all connected clients.
|
|
162
162
|
* If {@param originator} is specified, the given {@link HAPConnection} will be excluded from the broadcast.
|
|
163
163
|
*
|
|
164
164
|
* @param aid - The accessory id of the updated characteristic.
|
|
165
165
|
* @param iid - The instance id of the updated characteristic.
|
|
166
166
|
* @param value - The newly set value of the characteristic.
|
|
167
|
-
* @param originator - If specified, the connection will not get
|
|
167
|
+
* @param originator - If specified, the connection will not get an event message.
|
|
168
168
|
* @param immediateDelivery - The HAP spec requires some characteristics to be delivery immediately.
|
|
169
|
-
* Namely for the {@link ButtonEvent} and the {@link ProgrammableSwitchEvent} characteristics.
|
|
169
|
+
* Namely, for the {@link ButtonEvent} and the {@link ProgrammableSwitchEvent} characteristics.
|
|
170
170
|
*/
|
|
171
171
|
EventedHTTPServer.prototype.broadcastEvent = function (aid, iid, value, originator, immediateDelivery) {
|
|
172
172
|
var e_4, _a;
|
|
173
173
|
try {
|
|
174
|
-
for (var _b = tslib_1.__values(this.connections), _c = _b.next(); !_c.done; _c = _b.next()) {
|
|
174
|
+
for (var _b = (0, tslib_1.__values)(this.connections), _c = _b.next(); !_c.done; _c = _b.next()) {
|
|
175
175
|
var connection = _c.value;
|
|
176
176
|
if (connection === originator) {
|
|
177
177
|
debug("[%s] Muting event '%s' notification for this connection since it originated here.", connection.remoteAddress, aid + "." + iid);
|
|
@@ -190,6 +190,7 @@ var EventedHTTPServer = /** @class */ (function (_super) {
|
|
|
190
190
|
};
|
|
191
191
|
EventedHTTPServer.prototype.onConnection = function (socket) {
|
|
192
192
|
var _this = this;
|
|
193
|
+
// eslint-disable-next-line @typescript-eslint/no-use-before-define
|
|
193
194
|
var connection = new HAPConnection(this, socket);
|
|
194
195
|
connection.on("request" /* REQUEST */, function (request, response) {
|
|
195
196
|
_this.emit("request" /* REQUEST */, connection, request, response);
|
|
@@ -233,7 +234,7 @@ var EventedHTTPServer = /** @class */ (function (_super) {
|
|
|
233
234
|
var connections = initiator.server.connectionsByUsername.get(username);
|
|
234
235
|
if (connections) {
|
|
235
236
|
try {
|
|
236
|
-
for (var connections_1 = tslib_1.__values(connections), connections_1_1 = connections_1.next(); !connections_1_1.done; connections_1_1 = connections_1.next()) {
|
|
237
|
+
for (var connections_1 = (0, tslib_1.__values)(connections), connections_1_1 = connections_1.next(); !connections_1_1.done; connections_1_1 = connections_1.next()) {
|
|
237
238
|
var connection = connections_1_1.value;
|
|
238
239
|
connection.closeConnectionAsOfUnpair(initiator);
|
|
239
240
|
}
|
|
@@ -260,7 +261,7 @@ var HAPConnectionState;
|
|
|
260
261
|
HAPConnectionState[HAPConnectionState["CONNECTING"] = 0] = "CONNECTING";
|
|
261
262
|
HAPConnectionState[HAPConnectionState["FULLY_SET_UP"] = 1] = "FULLY_SET_UP";
|
|
262
263
|
HAPConnectionState[HAPConnectionState["AUTHENTICATED"] = 2] = "AUTHENTICATED";
|
|
263
|
-
// above signals
|
|
264
|
+
// above signals represent an alive connection
|
|
264
265
|
// below states are considered "closed or soon closed"
|
|
265
266
|
HAPConnectionState[HAPConnectionState["TO_BE_TEARED_DOWN"] = 3] = "TO_BE_TEARED_DOWN";
|
|
266
267
|
HAPConnectionState[HAPConnectionState["CLOSING"] = 4] = "CLOSING";
|
|
@@ -277,7 +278,7 @@ var HAPConnectionEvent;
|
|
|
277
278
|
* @private
|
|
278
279
|
*/
|
|
279
280
|
var HAPConnection = /** @class */ (function (_super) {
|
|
280
|
-
tslib_1.__extends(HAPConnection, _super);
|
|
281
|
+
(0, tslib_1.__extends)(HAPConnection, _super);
|
|
281
282
|
function HAPConnection(server, clientSocket) {
|
|
282
283
|
var _this = _super.call(this) || this;
|
|
283
284
|
_this.state = 0 /* CONNECTING */;
|
|
@@ -285,31 +286,33 @@ var HAPConnection = /** @class */ (function (_super) {
|
|
|
285
286
|
_this.pendingClientSocketData = Buffer.alloc(0); // data received from client before HTTP proxy is fully setup
|
|
286
287
|
_this.handlingRequest = false; // true while we are composing an HTTP response (so events can wait)
|
|
287
288
|
_this.registeredEvents = new Set();
|
|
288
|
-
_this.queuedEvents =
|
|
289
|
-
|
|
289
|
+
_this.queuedEvents = [];
|
|
290
|
+
// queue of unencrypted event data waiting to be sent until after an in-progress HTTP response is being written
|
|
291
|
+
_this.pendingEventData = [];
|
|
290
292
|
_this.server = server;
|
|
291
|
-
_this.sessionID = uuid.generate(clientSocket.remoteAddress +
|
|
293
|
+
_this.sessionID = uuid.generate(clientSocket.remoteAddress + ":" + clientSocket.remotePort);
|
|
292
294
|
_this.localAddress = clientSocket.localAddress;
|
|
293
295
|
_this.remoteAddress = clientSocket.remoteAddress; // cache because it becomes undefined in 'onClientSocketClose'
|
|
294
296
|
_this.remotePort = clientSocket.remotePort;
|
|
295
297
|
_this.networkInterface = HAPConnection.getLocalNetworkInterface(clientSocket);
|
|
296
298
|
// clientSocket is the socket connected to the actual iOS device
|
|
297
299
|
_this.tcpSocket = clientSocket;
|
|
298
|
-
_this.tcpSocket.on(
|
|
299
|
-
_this.tcpSocket.on(
|
|
300
|
-
|
|
300
|
+
_this.tcpSocket.on("data", _this.onTCPSocketData.bind(_this));
|
|
301
|
+
_this.tcpSocket.on("close", _this.onTCPSocketClose.bind(_this));
|
|
302
|
+
// we MUST register for this event, otherwise the error will bubble up to the top and crash the node process entirely.
|
|
303
|
+
_this.tcpSocket.on("error", _this.onTCPSocketError.bind(_this));
|
|
301
304
|
_this.tcpSocket.setNoDelay(true); // disable Nagle algorithm
|
|
302
305
|
// "HAP accessory servers must not use keepalive messages, which periodically wake up iOS devices".
|
|
303
|
-
// Thus we don't configure any tcp keepalive
|
|
306
|
+
// Thus, we don't configure any tcp keepalive
|
|
304
307
|
// create our internal HTTP server for this connection that we will proxy data to and from
|
|
305
308
|
_this.internalHttpServer = http_1.default.createServer();
|
|
306
309
|
_this.internalHttpServer.timeout = 0; // clients expect to hold connections open as long as they want
|
|
307
310
|
_this.internalHttpServer.keepAliveTimeout = 0; // workaround for https://github.com/nodejs/node/issues/13391
|
|
308
311
|
_this.internalHttpServer.on("listening", _this.onHttpServerListening.bind(_this));
|
|
309
|
-
_this.internalHttpServer.on(
|
|
310
|
-
_this.internalHttpServer.on(
|
|
312
|
+
_this.internalHttpServer.on("request", _this.handleHttpServerRequest.bind(_this));
|
|
313
|
+
_this.internalHttpServer.on("error", _this.onHttpServerError.bind(_this));
|
|
311
314
|
// close event is added later on the "connect" event as possible listen retries would throw unnecessary close events
|
|
312
|
-
_this.internalHttpServer.listen(0, _this.internalHttpServerAddress = net_utils_1.getOSLoopbackAddressIfAvailable());
|
|
315
|
+
_this.internalHttpServer.listen(0, _this.internalHttpServerAddress = (0, net_utils_1.getOSLoopbackAddressIfAvailable)());
|
|
313
316
|
return _this;
|
|
314
317
|
}
|
|
315
318
|
/**
|
|
@@ -346,35 +349,46 @@ var HAPConnection = /** @class */ (function (_super) {
|
|
|
346
349
|
}
|
|
347
350
|
};
|
|
348
351
|
HAPConnection.prototype.sendEvent = function (aid, iid, value, immediateDelivery) {
|
|
349
|
-
assert_1.default(aid !=
|
|
350
|
-
assert_1.default(iid !=
|
|
352
|
+
(0, assert_1.default)(aid != null, "HAPConnection.sendEvent: aid must be defined!");
|
|
353
|
+
(0, assert_1.default)(iid != null, "HAPConnection.sendEvent: iid must be defined!");
|
|
351
354
|
var eventName = aid + "." + iid;
|
|
352
355
|
if (!this.registeredEvents.has(eventName)) {
|
|
353
356
|
return;
|
|
354
357
|
}
|
|
358
|
+
var event = {
|
|
359
|
+
aid: aid,
|
|
360
|
+
iid: iid,
|
|
361
|
+
value: value,
|
|
362
|
+
};
|
|
355
363
|
if (immediateDelivery) {
|
|
356
364
|
// some characteristics are required to deliver notifications immediately
|
|
357
|
-
|
|
358
|
-
|
|
359
|
-
|
|
360
|
-
|
|
361
|
-
|
|
362
|
-
|
|
363
|
-
|
|
365
|
+
// we will flush all other events too, on that occasion.
|
|
366
|
+
this.queuedEvents.push(event);
|
|
367
|
+
if (this.eventsTimer) {
|
|
368
|
+
clearTimeout(this.eventsTimer);
|
|
369
|
+
}
|
|
370
|
+
this.handleEventsTimeout();
|
|
371
|
+
return;
|
|
364
372
|
}
|
|
365
|
-
|
|
366
|
-
|
|
367
|
-
|
|
368
|
-
|
|
369
|
-
|
|
370
|
-
|
|
371
|
-
value
|
|
372
|
-
|
|
373
|
-
|
|
374
|
-
|
|
375
|
-
this.eventsTimer.unref();
|
|
373
|
+
// we search the list of queued events in reverse order.
|
|
374
|
+
// if the last element with the same aid and iid has the same value we don't want to send the event notification twice.
|
|
375
|
+
// BUT, we do not want to override previous event notifications which have a different value. Automations must be executed!
|
|
376
|
+
for (var i = this.queuedEvents.length - 1; i >= 0; i--) {
|
|
377
|
+
var queuedEvent = this.queuedEvents[i];
|
|
378
|
+
if (queuedEvent.aid === aid && queuedEvent.iid === iid) {
|
|
379
|
+
if (queuedEvent.value === value) {
|
|
380
|
+
return; // the same event was already queued. do not add it again!
|
|
381
|
+
}
|
|
382
|
+
break; // we break in any case
|
|
376
383
|
}
|
|
377
384
|
}
|
|
385
|
+
this.queuedEvents.push(event);
|
|
386
|
+
// if we are handling a request or there is already a timer running we just add it in the queue.
|
|
387
|
+
// remember: we flush the event queue after we send out the response.
|
|
388
|
+
if (!this.handlingRequest && !this.eventsTimer) {
|
|
389
|
+
this.eventsTimer = setTimeout(this.handleEventsTimeout.bind(this), 250);
|
|
390
|
+
this.eventsTimer.unref();
|
|
391
|
+
}
|
|
378
392
|
};
|
|
379
393
|
HAPConnection.prototype.handleEventsTimeout = function () {
|
|
380
394
|
this.eventsTimer = undefined;
|
|
@@ -388,7 +402,7 @@ var HAPConnection = /** @class */ (function (_super) {
|
|
|
388
402
|
HAPConnection.prototype.writePendingEventNotifications = function () {
|
|
389
403
|
var e_6, _a;
|
|
390
404
|
try {
|
|
391
|
-
for (var _b = tslib_1.__values(this.pendingEventData), _c = _b.next(); !_c.done; _c = _b.next()) {
|
|
405
|
+
for (var _b = (0, tslib_1.__values)(this.pendingEventData), _c = _b.next(); !_c.done; _c = _b.next()) {
|
|
392
406
|
var buffer = _c.value;
|
|
393
407
|
this.tcpSocket.write(this.encrypt(buffer));
|
|
394
408
|
}
|
|
@@ -404,17 +418,19 @@ var HAPConnection = /** @class */ (function (_super) {
|
|
|
404
418
|
};
|
|
405
419
|
HAPConnection.prototype.writeQueuedEventNotifications = function () {
|
|
406
420
|
var e_7, _a;
|
|
407
|
-
if (this.queuedEvents.
|
|
421
|
+
if (this.queuedEvents.length === 0 || this.eventsTimer) {
|
|
408
422
|
return; // don't send empty event notifications or if there is a timeout running
|
|
409
423
|
}
|
|
410
|
-
var eventData = {
|
|
424
|
+
var eventData = {
|
|
425
|
+
characteristics: [],
|
|
426
|
+
};
|
|
411
427
|
try {
|
|
412
|
-
for (var _b = tslib_1.__values(this.queuedEvents), _c = _b.next(); !_c.done; _c = _b.next()) {
|
|
413
|
-
var
|
|
414
|
-
if (!this.registeredEvents.has(
|
|
415
|
-
continue;
|
|
428
|
+
for (var _b = (0, tslib_1.__values)(this.queuedEvents), _c = _b.next(); !_c.done; _c = _b.next()) {
|
|
429
|
+
var queuedEvent = _c.value;
|
|
430
|
+
if (!this.registeredEvents.has(queuedEvent.aid + "." + queuedEvent.iid)) {
|
|
431
|
+
continue; // client unregistered that event in the meantime
|
|
416
432
|
}
|
|
417
|
-
eventData.characteristics.push(
|
|
433
|
+
eventData.characteristics.push(queuedEvent);
|
|
418
434
|
}
|
|
419
435
|
}
|
|
420
436
|
catch (e_7_1) { e_7 = { error: e_7_1 }; }
|
|
@@ -424,12 +440,12 @@ var HAPConnection = /** @class */ (function (_super) {
|
|
|
424
440
|
}
|
|
425
441
|
finally { if (e_7) throw e_7.error; }
|
|
426
442
|
}
|
|
427
|
-
this.queuedEvents.
|
|
443
|
+
this.queuedEvents.splice(0, this.queuedEvents.length);
|
|
428
444
|
this.writeEventNotification(eventData);
|
|
429
445
|
};
|
|
430
446
|
/**
|
|
431
447
|
* This will create an EVENT/1.0 notification header with the provided event notification.
|
|
432
|
-
* If currently
|
|
448
|
+
* If currently an HTTP request is in progress the assembled packet will be
|
|
433
449
|
* added to the pending events list.
|
|
434
450
|
*
|
|
435
451
|
* @param notification - The event which should be sent out
|
|
@@ -440,8 +456,7 @@ var HAPConnection = /** @class */ (function (_super) {
|
|
|
440
456
|
var header = Buffer.from("EVENT/1.0 200 OK\r\n" +
|
|
441
457
|
"Content-Type: application/hap+json\r\n" +
|
|
442
458
|
"Content-Length: " + dataBuffer.length + "\r\n" +
|
|
443
|
-
"\r\n", "utf8"
|
|
444
|
-
);
|
|
459
|
+
"\r\n", "utf8");
|
|
445
460
|
var buffer = Buffer.concat([header, dataBuffer]);
|
|
446
461
|
if (this.handlingRequest) {
|
|
447
462
|
// it is important that we not encrypt the pending event data. This would increment the nonce used in encryption
|
|
@@ -474,29 +489,30 @@ var HAPConnection = /** @class */ (function (_super) {
|
|
|
474
489
|
if (this.encryption && this.encryption.accessoryToControllerKey.length > 0 && this.encryption.controllerToAccessoryCount > 0) {
|
|
475
490
|
return hapCrypto.layerEncrypt(data, this.encryption);
|
|
476
491
|
}
|
|
477
|
-
return data; // otherwise we don't encrypt and return plaintext
|
|
492
|
+
return data; // otherwise, we don't encrypt and return plaintext
|
|
478
493
|
};
|
|
479
494
|
HAPConnection.prototype.decrypt = function (data) {
|
|
480
495
|
if (this.encryption && this.encryption.controllerToAccessoryKey.length > 0) {
|
|
481
496
|
// below call may throw an error if decryption failed
|
|
482
497
|
return hapCrypto.layerDecrypt(data, this.encryption);
|
|
483
498
|
}
|
|
484
|
-
return data; // otherwise we don't decrypt and return plaintext
|
|
499
|
+
return data; // otherwise, we don't decrypt and return plaintext
|
|
485
500
|
};
|
|
486
501
|
HAPConnection.prototype.onHttpServerListening = function () {
|
|
487
502
|
var _this = this;
|
|
488
503
|
var addressInfo = this.internalHttpServer.address(); // address() is only a string when listening to unix domain sockets
|
|
489
|
-
var addressString = addressInfo.family === "IPv6" ? "["
|
|
504
|
+
var addressString = addressInfo.family === "IPv6" ? "[".concat(addressInfo.address, "]") : addressInfo.address;
|
|
490
505
|
this.internalHttpServerPort = addressInfo.port;
|
|
491
506
|
debugCon("[%s] Internal HTTP server listening on %s:%s", this.remoteAddress, addressString, addressInfo.port);
|
|
492
|
-
this.internalHttpServer.on(
|
|
507
|
+
this.internalHttpServer.on("close", this.onHttpServerClose.bind(this));
|
|
493
508
|
// now we can establish a connection to this running HTTP server for proxying data
|
|
494
509
|
this.httpSocket = net_1.default.createConnection(this.internalHttpServerPort, this.internalHttpServerAddress); // previously we used addressInfo.address
|
|
495
510
|
this.httpSocket.setNoDelay(true); // disable Nagle algorithm
|
|
496
|
-
this.httpSocket.on(
|
|
497
|
-
|
|
498
|
-
this.httpSocket.on(
|
|
499
|
-
this.httpSocket.on(
|
|
511
|
+
this.httpSocket.on("data", this.handleHttpServerResponse.bind(this));
|
|
512
|
+
// we MUST register for this event, otherwise the error will bubble up to the top and crash the node process entirely.
|
|
513
|
+
this.httpSocket.on("error", this.onHttpSocketError.bind(this));
|
|
514
|
+
this.httpSocket.on("close", this.onHttpSocketClose.bind(this));
|
|
515
|
+
this.httpSocket.on("connect", function () {
|
|
500
516
|
// we are now fully set up:
|
|
501
517
|
// - clientSocket is connected to the iOS device
|
|
502
518
|
// - serverSocket is connected to the httpServer
|
|
@@ -589,10 +605,10 @@ var HAPConnection = /** @class */ (function (_super) {
|
|
|
589
605
|
};
|
|
590
606
|
HAPConnection.prototype.onHttpServerError = function (err) {
|
|
591
607
|
debugCon("[%s] HTTP server error: %s", this.remoteAddress, err.message);
|
|
592
|
-
if (err.code ===
|
|
608
|
+
if (err.code === "EADDRINUSE") {
|
|
593
609
|
this.internalHttpServerPort = undefined;
|
|
594
610
|
this.internalHttpServer.close();
|
|
595
|
-
this.internalHttpServer.listen(0, this.internalHttpServerAddress = net_utils_1.getOSLoopbackAddressIfAvailable());
|
|
611
|
+
this.internalHttpServer.listen(0, this.internalHttpServerAddress = (0, net_utils_1.getOSLoopbackAddressIfAvailable)());
|
|
596
612
|
}
|
|
597
613
|
};
|
|
598
614
|
HAPConnection.prototype.onHttpServerClose = function () {
|
|
@@ -615,7 +631,7 @@ var HAPConnection = /** @class */ (function (_super) {
|
|
|
615
631
|
var infos = os_1.default.networkInterfaces()[this.networkInterface];
|
|
616
632
|
if (ipVersion === "ipv4") {
|
|
617
633
|
try {
|
|
618
|
-
for (var infos_1 = tslib_1.__values(infos), infos_1_1 = infos_1.next(); !infos_1_1.done; infos_1_1 = infos_1.next()) {
|
|
634
|
+
for (var infos_1 = (0, tslib_1.__values)(infos), infos_1_1 = infos_1.next(); !infos_1_1.done; infos_1_1 = infos_1.next()) {
|
|
619
635
|
var info = infos_1_1.value;
|
|
620
636
|
if (info.family === "IPv4") {
|
|
621
637
|
return info.address;
|
|
@@ -634,7 +650,7 @@ var HAPConnection = /** @class */ (function (_super) {
|
|
|
634
650
|
else {
|
|
635
651
|
var localUniqueAddress = undefined;
|
|
636
652
|
try {
|
|
637
|
-
for (var infos_2 = tslib_1.__values(infos), infos_2_1 = infos_2.next(); !infos_2_1.done; infos_2_1 = infos_2.next()) {
|
|
653
|
+
for (var infos_2 = (0, tslib_1.__values)(infos), infos_2_1 = infos_2.next(); !infos_2_1.done; infos_2_1 = infos_2.next()) {
|
|
638
654
|
var info = infos_2_1.value;
|
|
639
655
|
if (info.family === "IPv6") {
|
|
640
656
|
if (!info.scopeid) {
|
|
@@ -673,10 +689,10 @@ var HAPConnection = /** @class */ (function (_super) {
|
|
|
673
689
|
}
|
|
674
690
|
var interfaces = os_1.default.networkInterfaces();
|
|
675
691
|
try {
|
|
676
|
-
for (var _e = tslib_1.__values(Object.entries(interfaces)), _f = _e.next(); !_f.done; _f = _e.next()) {
|
|
677
|
-
var _g = tslib_1.__read(_f.value, 2), name = _g[0], infos = _g[1];
|
|
692
|
+
for (var _e = (0, tslib_1.__values)(Object.entries(interfaces)), _f = _e.next(); !_f.done; _f = _e.next()) {
|
|
693
|
+
var _g = (0, tslib_1.__read)(_f.value, 2), name = _g[0], infos = _g[1];
|
|
678
694
|
try {
|
|
679
|
-
for (var infos_3 = (e_11 = void 0, tslib_1.__values(infos)), infos_3_1 = infos_3.next(); !infos_3_1.done; infos_3_1 = infos_3.next()) {
|
|
695
|
+
for (var infos_3 = (e_11 = void 0, (0, tslib_1.__values)(infos)), infos_3_1 = infos_3.next(); !infos_3_1.done; infos_3_1 = infos_3.next()) {
|
|
680
696
|
var info = infos_3_1.value;
|
|
681
697
|
if (info.address === localAddress) {
|
|
682
698
|
return name;
|
|
@@ -702,16 +718,16 @@ var HAPConnection = /** @class */ (function (_super) {
|
|
|
702
718
|
// we couldn't map the address from above, we try now to match subnets (see https://github.com/homebridge/HAP-NodeJS/issues/847)
|
|
703
719
|
var family = net_1.default.isIPv4(localAddress) ? "IPv4" : "IPv6";
|
|
704
720
|
try {
|
|
705
|
-
for (var _h = tslib_1.__values(Object.entries(interfaces)), _j = _h.next(); !_j.done; _j = _h.next()) {
|
|
706
|
-
var _k = tslib_1.__read(_j.value, 2), name = _k[0], infos = _k[1];
|
|
721
|
+
for (var _h = (0, tslib_1.__values)(Object.entries(interfaces)), _j = _h.next(); !_j.done; _j = _h.next()) {
|
|
722
|
+
var _k = (0, tslib_1.__read)(_j.value, 2), name = _k[0], infos = _k[1];
|
|
707
723
|
try {
|
|
708
|
-
for (var infos_4 = (e_13 = void 0, tslib_1.__values(infos)), infos_4_1 = infos_4.next(); !infos_4_1.done; infos_4_1 = infos_4.next()) {
|
|
724
|
+
for (var infos_4 = (e_13 = void 0, (0, tslib_1.__values)(infos)), infos_4_1 = infos_4.next(); !infos_4_1.done; infos_4_1 = infos_4.next()) {
|
|
709
725
|
var info = infos_4_1.value;
|
|
710
726
|
if (info.family !== family) {
|
|
711
727
|
continue;
|
|
712
728
|
}
|
|
713
729
|
// check if the localAddress is in the same subnet
|
|
714
|
-
if (domain_formatter_1.getNetAddress(localAddress, info.netmask) === domain_formatter_1.getNetAddress(info.address, info.netmask)) {
|
|
730
|
+
if ((0, domain_formatter_1.getNetAddress)(localAddress, info.netmask) === (0, domain_formatter_1.getNetAddress)(info.address, info.netmask)) {
|
|
715
731
|
return name;
|
|
716
732
|
}
|
|
717
733
|
}
|
|
@@ -732,7 +748,7 @@ var HAPConnection = /** @class */ (function (_super) {
|
|
|
732
748
|
}
|
|
733
749
|
finally { if (e_12) throw e_12.error; }
|
|
734
750
|
}
|
|
735
|
-
console.log("WARNING couldn't map socket coming from remote address "
|
|
751
|
+
console.log("WARNING couldn't map socket coming from remote address ".concat(socket.remoteAddress, ":").concat(socket.remotePort, " at local address ").concat(socket.localAddress, " to a interface!"));
|
|
736
752
|
return Object.keys(interfaces)[1]; // just use the first interface after the loopback interface as fallback
|
|
737
753
|
};
|
|
738
754
|
return HAPConnection;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"eventedhttp.js","sourceRoot":"","sources":["../../../src/lib/util/eventedhttp.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"eventedhttp.js","sourceRoot":"","sources":["../../../src/lib/util/eventedhttp.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,15 +1,15 @@
|
|
|
1
1
|
/// <reference types="node" />
|
|
2
|
-
import
|
|
2
|
+
import { BoxKeyPair } from "tweetnacl";
|
|
3
3
|
import { HAPEncryption } from "./eventedhttp";
|
|
4
|
-
export declare function generateCurve25519KeyPair():
|
|
4
|
+
export declare function generateCurve25519KeyPair(): BoxKeyPair;
|
|
5
5
|
export declare function generateCurve25519SharedSecKey(priKey: Uint8Array, pubKey: Uint8Array): Uint8Array;
|
|
6
6
|
export declare function HKDF(hashAlg: string, salt: Buffer, ikm: Buffer, info: Buffer, size: number): Buffer;
|
|
7
|
-
export declare function
|
|
8
|
-
export declare function layerDecrypt(packet: Buffer, encryption: HAPEncryption): Buffer;
|
|
7
|
+
export declare function writeUInt64LE(number: number, buffer: Buffer, offset?: number): void;
|
|
9
8
|
export declare function chacha20_poly1305_decryptAndVerify(key: Buffer, nonce: Buffer, aad: Buffer | null, ciphertext: Buffer, authTag: Buffer): Buffer;
|
|
10
9
|
export declare function chacha20_poly1305_encryptAndSeal(key: Buffer, nonce: Buffer, aad: Buffer | null, plaintext: Buffer): {
|
|
11
10
|
ciphertext: Buffer;
|
|
12
11
|
authTag: Buffer;
|
|
13
12
|
};
|
|
14
|
-
export declare function
|
|
13
|
+
export declare function layerEncrypt(data: Buffer, encryption: HAPEncryption): Buffer;
|
|
14
|
+
export declare function layerDecrypt(packet: Buffer, encryption: HAPEncryption): Buffer;
|
|
15
15
|
//# sourceMappingURL=hapCrypto.d.ts.map
|