hap-nodejs 1.0.0-beta.2 → 1.0.0-beta.3
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/@types/bonjour-hap.d.ts +4 -3
- package/@types/simple-plist.d.ts +2 -1
- package/README.md +2 -1
- package/dist/BridgedCore.js +7 -5
- package/dist/BridgedCore.js.map +1 -1
- package/dist/Core.js +14 -8
- package/dist/Core.js.map +1 -1
- package/dist/accessories/AirConditioner_accessory.d.ts +2 -0
- package/dist/accessories/AirConditioner_accessory.d.ts.map +1 -0
- package/dist/accessories/AirConditioner_accessory.js +128 -0
- package/dist/accessories/AirConditioner_accessory.js.map +1 -0
- package/dist/accessories/AppleTVRemote_accessory.d.ts +2 -0
- package/dist/accessories/AppleTVRemote_accessory.d.ts.map +1 -0
- package/dist/accessories/AppleTVRemote_accessory.js +159 -0
- package/dist/accessories/AppleTVRemote_accessory.js.map +1 -0
- package/dist/accessories/Camera_accessory.d.ts +2 -0
- package/dist/accessories/Camera_accessory.d.ts.map +1 -0
- package/dist/accessories/Camera_accessory.js +630 -0
- package/dist/accessories/Camera_accessory.js.map +1 -0
- package/dist/accessories/Fan_accessory.d.ts +2 -0
- package/dist/accessories/Fan_accessory.d.ts.map +1 -0
- package/dist/accessories/Fan_accessory.js +80 -0
- package/dist/accessories/Fan_accessory.js.map +1 -0
- package/dist/accessories/GarageDoorOpener_accessory.d.ts +2 -0
- package/dist/accessories/GarageDoorOpener_accessory.d.ts.map +1 -0
- package/dist/accessories/GarageDoorOpener_accessory.js +78 -0
- package/dist/accessories/GarageDoorOpener_accessory.js.map +1 -0
- package/dist/accessories/Light-AdaptiveLighting_accessory.d.ts +2 -0
- package/dist/accessories/Light-AdaptiveLighting_accessory.d.ts.map +1 -0
- package/dist/accessories/Light-AdaptiveLighting_accessory.js +96 -0
- package/dist/accessories/Light-AdaptiveLighting_accessory.js.map +1 -0
- package/dist/accessories/Light_accessory.d.ts +2 -0
- package/dist/accessories/Light_accessory.d.ts.map +1 -0
- package/dist/accessories/Light_accessory.js +148 -0
- package/dist/accessories/Light_accessory.js.map +1 -0
- package/dist/accessories/Lock_accessory.d.ts +2 -0
- package/dist/accessories/Lock_accessory.d.ts.map +1 -0
- package/dist/accessories/Lock_accessory.js +76 -0
- package/dist/accessories/Lock_accessory.js.map +1 -0
- package/dist/accessories/MotionSensor_accessory.d.ts +2 -0
- package/dist/accessories/MotionSensor_accessory.d.ts.map +1 -0
- package/dist/accessories/MotionSensor_accessory.js +45 -0
- package/dist/accessories/MotionSensor_accessory.js.map +1 -0
- package/dist/accessories/Outlet_accessory.d.ts +2 -0
- package/dist/accessories/Outlet_accessory.d.ts.map +1 -0
- package/dist/accessories/Outlet_accessory.js +79 -0
- package/dist/accessories/Outlet_accessory.js.map +1 -0
- package/dist/accessories/SmartSpeaker_accessory.d.ts +2 -0
- package/dist/accessories/SmartSpeaker_accessory.d.ts.map +1 -0
- package/dist/accessories/SmartSpeaker_accessory.js +44 -0
- package/dist/accessories/SmartSpeaker_accessory.js.map +1 -0
- package/dist/accessories/Sprinkler_accessory.d.ts +2 -0
- package/dist/accessories/Sprinkler_accessory.d.ts.map +1 -0
- package/dist/accessories/Sprinkler_accessory.js +128 -0
- package/dist/accessories/Sprinkler_accessory.js.map +1 -0
- package/dist/accessories/TV_accessory.d.ts +2 -0
- package/dist/accessories/TV_accessory.d.ts.map +1 -0
- package/dist/accessories/TV_accessory.js +101 -0
- package/dist/accessories/TV_accessory.js.map +1 -0
- package/dist/accessories/TemperatureSensor_accessory.d.ts +2 -0
- package/dist/accessories/TemperatureSensor_accessory.d.ts.map +1 -0
- package/dist/accessories/TemperatureSensor_accessory.js +44 -0
- package/dist/accessories/TemperatureSensor_accessory.js.map +1 -0
- package/dist/accessories/Wi-FiRouter_accessory.d.ts +3 -0
- package/dist/accessories/Wi-FiRouter_accessory.d.ts.map +1 -0
- package/dist/accessories/Wi-FiRouter_accessory.js +17 -0
- package/dist/accessories/Wi-FiRouter_accessory.js.map +1 -0
- package/dist/accessories/Wi-FiSatellite_accessory.d.ts +3 -0
- package/dist/accessories/Wi-FiSatellite_accessory.d.ts.map +1 -0
- package/dist/accessories/Wi-FiSatellite_accessory.js +19 -0
- package/dist/accessories/Wi-FiSatellite_accessory.js.map +1 -0
- package/dist/accessories/gstreamer-audioProducer.d.ts +25 -0
- package/dist/accessories/gstreamer-audioProducer.d.ts.map +1 -0
- package/dist/accessories/gstreamer-audioProducer.js +155 -0
- package/dist/accessories/gstreamer-audioProducer.js.map +1 -0
- package/dist/accessories/types.d.ts +78 -0
- package/dist/accessories/types.d.ts.map +1 -0
- package/dist/accessories/types.js +88 -0
- package/dist/accessories/types.js.map +1 -0
- package/dist/index.d.ts +54 -27
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +34 -11
- package/dist/index.js.map +1 -1
- package/dist/internal-types.d.ts +65 -124
- package/dist/internal-types.d.ts.map +1 -1
- package/dist/internal-types.js +66 -5
- package/dist/internal-types.js.map +1 -1
- package/dist/lib/Accessory.d.ts +147 -60
- package/dist/lib/Accessory.d.ts.map +1 -1
- package/dist/lib/Accessory.js +566 -475
- package/dist/lib/Accessory.js.map +1 -1
- package/dist/lib/AccessoryLoader.d.ts +20 -8
- package/dist/lib/AccessoryLoader.d.ts.map +1 -1
- package/dist/lib/AccessoryLoader.js +115 -93
- package/dist/lib/AccessoryLoader.js.map +1 -1
- package/dist/lib/Advertiser.d.ts +99 -5
- package/dist/lib/Advertiser.d.ts.map +1 -1
- package/dist/lib/Advertiser.js +564 -22
- package/dist/lib/Advertiser.js.map +1 -1
- package/dist/lib/Bridge.d.ts +3 -1
- package/dist/lib/Bridge.d.ts.map +1 -1
- package/dist/lib/Bridge.js +2 -0
- package/dist/lib/Bridge.js.map +1 -1
- package/dist/lib/Characteristic.d.ts +918 -59
- package/dist/lib/Characteristic.d.ts.map +1 -1
- package/dist/lib/Characteristic.js +308 -257
- package/dist/lib/Characteristic.js.map +1 -1
- package/dist/lib/HAPServer.d.ts +114 -43
- package/dist/lib/HAPServer.d.ts.map +1 -1
- package/dist/lib/HAPServer.js +269 -405
- package/dist/lib/HAPServer.js.map +1 -1
- package/dist/lib/Service.d.ts +339 -15
- package/dist/lib/Service.d.ts.map +1 -1
- package/dist/lib/Service.js +59 -50
- package/dist/lib/Service.js.map +1 -1
- package/dist/lib/camera/Camera.d.ts +15 -6
- package/dist/lib/camera/Camera.d.ts.map +1 -1
- package/dist/lib/camera/Camera.js +6 -3
- package/dist/lib/camera/Camera.js.map +1 -1
- package/dist/lib/camera/RTPProxy.d.ts +24 -19
- package/dist/lib/camera/RTPProxy.d.ts.map +1 -1
- package/dist/lib/camera/RTPProxy.js +230 -207
- package/dist/lib/camera/RTPProxy.js.map +1 -1
- package/dist/lib/camera/RTPStreamManagement.d.ts +202 -43
- package/dist/lib/camera/RTPStreamManagement.d.ts.map +1 -1
- package/dist/lib/camera/RTPStreamManagement.js +303 -189
- package/dist/lib/camera/RTPStreamManagement.js.map +1 -1
- package/dist/lib/camera/RecordingManagement.d.ts +326 -0
- package/dist/lib/camera/RecordingManagement.d.ts.map +1 -0
- package/dist/lib/camera/RecordingManagement.js +833 -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 +1 -0
- package/dist/lib/camera/index.js.map +1 -1
- package/dist/lib/controller/AdaptiveLightingController.d.ts +37 -11
- package/dist/lib/controller/AdaptiveLightingController.d.ts.map +1 -1
- package/dist/lib/controller/AdaptiveLightingController.js +101 -86
- package/dist/lib/controller/AdaptiveLightingController.js.map +1 -1
- package/dist/lib/controller/CameraController.d.ts +290 -12
- package/dist/lib/controller/CameraController.d.ts.map +1 -1
- package/dist/lib/controller/CameraController.js +403 -47
- package/dist/lib/controller/CameraController.js.map +1 -1
- package/dist/lib/controller/Controller.d.ts +31 -10
- package/dist/lib/controller/Controller.d.ts.map +1 -1
- package/dist/lib/controller/Controller.js +7 -0
- package/dist/lib/controller/Controller.js.map +1 -1
- package/dist/lib/controller/DoorbellController.d.ts +47 -1
- package/dist/lib/controller/DoorbellController.d.ts.map +1 -1
- package/dist/lib/controller/DoorbellController.js +65 -11
- package/dist/lib/controller/DoorbellController.js.map +1 -1
- package/dist/lib/controller/RemoteController.d.ts +111 -42
- package/dist/lib/controller/RemoteController.d.ts.map +1 -1
- package/dist/lib/controller/RemoteController.js +228 -203
- package/dist/lib/controller/RemoteController.js.map +1 -1
- package/dist/lib/controller/index.d.ts +4 -4
- package/dist/lib/datastream/DataStreamManagement.d.ts +25 -19
- package/dist/lib/datastream/DataStreamManagement.d.ts.map +1 -1
- package/dist/lib/datastream/DataStreamManagement.js +42 -35
- package/dist/lib/datastream/DataStreamManagement.js.map +1 -1
- package/dist/lib/datastream/DataStreamParser.d.ts +63 -24
- package/dist/lib/datastream/DataStreamParser.d.ts.map +1 -1
- package/dist/lib/datastream/DataStreamParser.js +132 -86
- package/dist/lib/datastream/DataStreamParser.js.map +1 -1
- package/dist/lib/datastream/DataStreamServer.d.ts +154 -50
- package/dist/lib/datastream/DataStreamServer.d.ts.map +1 -1
- package/dist/lib/datastream/DataStreamServer.js +242 -147
- package/dist/lib/datastream/DataStreamServer.js.map +1 -1
- package/dist/lib/datastream/index.d.ts +3 -3
- package/dist/lib/definitions/CharacteristicDefinitions.d.ts +181 -0
- package/dist/lib/definitions/CharacteristicDefinitions.d.ts.map +1 -1
- package/dist/lib/definitions/CharacteristicDefinitions.js +968 -499
- package/dist/lib/definitions/CharacteristicDefinitions.js.map +1 -1
- package/dist/lib/definitions/ServiceDefinitions.d.ts +58 -0
- package/dist/lib/definitions/ServiceDefinitions.d.ts.map +1 -1
- package/dist/lib/definitions/ServiceDefinitions.js +173 -6
- package/dist/lib/definitions/ServiceDefinitions.js.map +1 -1
- package/dist/lib/definitions/generate-definitions.d.ts +1 -0
- package/dist/lib/definitions/generate-definitions.d.ts.map +1 -1
- package/dist/lib/definitions/generate-definitions.js +29 -21
- 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 +62 -29
- package/dist/lib/definitions/generator-configuration.js.map +1 -1
- package/dist/lib/model/AccessoryInfo.d.ts +16 -13
- package/dist/lib/model/AccessoryInfo.d.ts.map +1 -1
- package/dist/lib/model/AccessoryInfo.js +88 -83
- package/dist/lib/model/AccessoryInfo.js.map +1 -1
- package/dist/lib/model/ControllerStorage.d.ts +3 -0
- package/dist/lib/model/ControllerStorage.d.ts.map +1 -1
- package/dist/lib/model/ControllerStorage.js +7 -4
- package/dist/lib/model/ControllerStorage.js.map +1 -1
- package/dist/lib/model/HAPStorage.d.ts +3 -0
- package/dist/lib/model/HAPStorage.d.ts.map +1 -1
- package/dist/lib/model/HAPStorage.js +4 -0
- package/dist/lib/model/HAPStorage.js.map +1 -1
- package/dist/lib/model/IdentifierCache.d.ts +12 -11
- package/dist/lib/model/IdentifierCache.d.ts.map +1 -1
- package/dist/lib/model/IdentifierCache.js +68 -65
- package/dist/lib/model/IdentifierCache.js.map +1 -1
- package/dist/lib/tv/AccessControlManagement.d.ts +12 -1
- package/dist/lib/tv/AccessControlManagement.d.ts.map +1 -1
- package/dist/lib/tv/AccessControlManagement.js +13 -5
- package/dist/lib/tv/AccessControlManagement.js.map +1 -1
- package/dist/lib/util/clone.d.ts +2 -1
- package/dist/lib/util/clone.d.ts.map +1 -1
- package/dist/lib/util/clone.js +2 -0
- package/dist/lib/util/clone.js.map +1 -1
- package/dist/lib/util/color-utils.d.ts +4 -1
- package/dist/lib/util/color-utils.d.ts.map +1 -1
- package/dist/lib/util/color-utils.js +5 -2
- package/dist/lib/util/color-utils.js.map +1 -1
- package/dist/lib/util/eventedhttp.d.ts +62 -22
- package/dist/lib/util/eventedhttp.d.ts.map +1 -1
- package/dist/lib/util/eventedhttp.js +236 -180
- package/dist/lib/util/eventedhttp.js.map +1 -1
- package/dist/lib/util/hapCrypto.d.ts +35 -7
- package/dist/lib/util/hapCrypto.d.ts.map +1 -1
- package/dist/lib/util/hapCrypto.js +86 -78
- package/dist/lib/util/hapCrypto.js.map +1 -1
- package/dist/lib/util/hapStatusError.d.ts +2 -0
- package/dist/lib/util/hapStatusError.d.ts.map +1 -1
- package/dist/lib/util/hapStatusError.js +5 -3
- package/dist/lib/util/hapStatusError.js.map +1 -1
- package/dist/lib/util/net-utils.d.ts +7 -0
- package/dist/lib/util/net-utils.d.ts.map +1 -1
- package/dist/lib/util/net-utils.js +11 -4
- package/dist/lib/util/net-utils.js.map +1 -1
- package/dist/lib/util/once.d.ts +6 -1
- package/dist/lib/util/once.d.ts.map +1 -1
- package/dist/lib/util/once.js +9 -3
- package/dist/lib/util/once.js.map +1 -1
- package/dist/lib/util/promise-utils.d.ts +15 -0
- package/dist/lib/util/promise-utils.d.ts.map +1 -0
- package/dist/lib/util/promise-utils.js +36 -0
- package/dist/lib/util/promise-utils.js.map +1 -0
- package/dist/lib/util/request-util.d.ts +16 -0
- package/dist/lib/util/request-util.d.ts.map +1 -1
- package/dist/lib/util/request-util.js +43 -27
- package/dist/lib/util/request-util.js.map +1 -1
- package/dist/lib/util/time.d.ts +7 -1
- package/dist/lib/util/time.d.ts.map +1 -1
- package/dist/lib/util/time.js +13 -7
- package/dist/lib/util/time.js.map +1 -1
- package/dist/lib/util/tlv.d.ts +95 -5
- package/dist/lib/util/tlv.d.ts.map +1 -1
- package/dist/lib/util/tlv.js +96 -24
- package/dist/lib/util/tlv.js.map +1 -1
- package/dist/lib/util/uuid.d.ts +2 -3
- package/dist/lib/util/uuid.d.ts.map +1 -1
- package/dist/lib/util/uuid.js +25 -19
- package/dist/lib/util/uuid.js.map +1 -1
- package/dist/types.d.ts +271 -18
- package/dist/types.d.ts.map +1 -1
- package/dist/types.js +8 -0
- package/dist/types.js.map +1 -1
- package/package.json +28 -27
- package/dist/lib/util/setupcode.d.ts +0 -5
- package/dist/lib/util/setupcode.d.ts.map +0 -1
- package/dist/lib/util/setupcode.js +0 -49
- package/dist/lib/util/setupcode.js.map +0 -1
- package/dist/lib/util/setupid.d.ts +0 -5
- package/dist/lib/util/setupid.d.ts.map +0 -1
- package/dist/lib/util/setupid.js +0 -52
- package/dist/lib/util/setupid.js.map +0 -1
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"DataStreamParser.d.ts","sourceRoot":"","sources":["../../../src/lib/datastream/DataStreamParser.ts"],"names":[],"mappings":";AAcA,qBAAa,YAAY,CAAC,CAAC;
|
|
1
|
+
{"version":3,"file":"DataStreamParser.d.ts","sourceRoot":"","sources":["../../../src/lib/datastream/DataStreamParser.ts"],"names":[],"mappings":"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"}
|
|
@@ -7,14 +7,17 @@ var hapCrypto = tslib_1.__importStar(require("../util/hapCrypto"));
|
|
|
7
7
|
var assert_1 = tslib_1.__importDefault(require("assert"));
|
|
8
8
|
var debug_1 = tslib_1.__importDefault(require("debug"));
|
|
9
9
|
// welcome to hell :)
|
|
10
|
-
// in this file lies madness and frustration. and
|
|
11
|
-
var debug = debug_1.default("HAP-NodeJS:DataStream:Parser");
|
|
10
|
+
// in this file lies madness and frustration. and It's not only about HDS. Also, JavaScript is hell
|
|
11
|
+
var debug = (0, debug_1.default)("HAP-NodeJS:DataStream:Parser");
|
|
12
12
|
var Magics = /** @class */ (function () {
|
|
13
13
|
function Magics() {
|
|
14
14
|
}
|
|
15
15
|
Magics.TERMINATOR = { type: "terminator" };
|
|
16
16
|
return Magics;
|
|
17
17
|
}());
|
|
18
|
+
/**
|
|
19
|
+
* @group HomeKit Data Streams (HDS)
|
|
20
|
+
*/
|
|
18
21
|
var ValueWrapper = /** @class */ (function () {
|
|
19
22
|
function ValueWrapper(value) {
|
|
20
23
|
this.value = value;
|
|
@@ -25,6 +28,9 @@ var ValueWrapper = /** @class */ (function () {
|
|
|
25
28
|
return ValueWrapper;
|
|
26
29
|
}());
|
|
27
30
|
exports.ValueWrapper = ValueWrapper;
|
|
31
|
+
/**
|
|
32
|
+
* @group HomeKit Data Streams (HDS)
|
|
33
|
+
*/
|
|
28
34
|
var Int8 = /** @class */ (function (_super) {
|
|
29
35
|
tslib_1.__extends(Int8, _super);
|
|
30
36
|
function Int8() {
|
|
@@ -33,6 +39,9 @@ var Int8 = /** @class */ (function (_super) {
|
|
|
33
39
|
return Int8;
|
|
34
40
|
}(ValueWrapper));
|
|
35
41
|
exports.Int8 = Int8;
|
|
42
|
+
/**
|
|
43
|
+
* @group HomeKit Data Streams (HDS)
|
|
44
|
+
*/
|
|
36
45
|
var Int16 = /** @class */ (function (_super) {
|
|
37
46
|
tslib_1.__extends(Int16, _super);
|
|
38
47
|
function Int16() {
|
|
@@ -41,6 +50,9 @@ var Int16 = /** @class */ (function (_super) {
|
|
|
41
50
|
return Int16;
|
|
42
51
|
}(ValueWrapper));
|
|
43
52
|
exports.Int16 = Int16;
|
|
53
|
+
/**
|
|
54
|
+
* @group HomeKit Data Streams (HDS)
|
|
55
|
+
*/
|
|
44
56
|
var Int32 = /** @class */ (function (_super) {
|
|
45
57
|
tslib_1.__extends(Int32, _super);
|
|
46
58
|
function Int32() {
|
|
@@ -49,6 +61,9 @@ var Int32 = /** @class */ (function (_super) {
|
|
|
49
61
|
return Int32;
|
|
50
62
|
}(ValueWrapper));
|
|
51
63
|
exports.Int32 = Int32;
|
|
64
|
+
/**
|
|
65
|
+
* @group HomeKit Data Streams (HDS)
|
|
66
|
+
*/
|
|
52
67
|
var Int64 = /** @class */ (function (_super) {
|
|
53
68
|
tslib_1.__extends(Int64, _super);
|
|
54
69
|
function Int64() {
|
|
@@ -57,6 +72,9 @@ var Int64 = /** @class */ (function (_super) {
|
|
|
57
72
|
return Int64;
|
|
58
73
|
}(ValueWrapper));
|
|
59
74
|
exports.Int64 = Int64;
|
|
75
|
+
/**
|
|
76
|
+
* @group HomeKit Data Streams (HDS)
|
|
77
|
+
*/
|
|
60
78
|
var Float32 = /** @class */ (function (_super) {
|
|
61
79
|
tslib_1.__extends(Float32, _super);
|
|
62
80
|
function Float32() {
|
|
@@ -65,6 +83,9 @@ var Float32 = /** @class */ (function (_super) {
|
|
|
65
83
|
return Float32;
|
|
66
84
|
}(ValueWrapper));
|
|
67
85
|
exports.Float32 = Float32;
|
|
86
|
+
/**
|
|
87
|
+
* @group HomeKit Data Streams (HDS)
|
|
88
|
+
*/
|
|
68
89
|
var Float64 = /** @class */ (function (_super) {
|
|
69
90
|
tslib_1.__extends(Float64, _super);
|
|
70
91
|
function Float64() {
|
|
@@ -73,6 +94,9 @@ var Float64 = /** @class */ (function (_super) {
|
|
|
73
94
|
return Float64;
|
|
74
95
|
}(ValueWrapper));
|
|
75
96
|
exports.Float64 = Float64;
|
|
97
|
+
/**
|
|
98
|
+
* @group HomeKit Data Streams (HDS)
|
|
99
|
+
*/
|
|
76
100
|
var SecondsSince2001 = /** @class */ (function (_super) {
|
|
77
101
|
tslib_1.__extends(SecondsSince2001, _super);
|
|
78
102
|
function SecondsSince2001() {
|
|
@@ -81,17 +105,21 @@ var SecondsSince2001 = /** @class */ (function (_super) {
|
|
|
81
105
|
return SecondsSince2001;
|
|
82
106
|
}(ValueWrapper));
|
|
83
107
|
exports.SecondsSince2001 = SecondsSince2001;
|
|
108
|
+
/**
|
|
109
|
+
* @group HomeKit Data Streams (HDS)
|
|
110
|
+
*/
|
|
84
111
|
var UUID = /** @class */ (function (_super) {
|
|
85
112
|
tslib_1.__extends(UUID, _super);
|
|
86
113
|
function UUID(value) {
|
|
87
|
-
|
|
88
|
-
|
|
89
|
-
_this = _super.call(this, value) || this;
|
|
90
|
-
return _this;
|
|
114
|
+
(0, assert_1.default)(uuid.isValid(value), "invalid uuid format");
|
|
115
|
+
return _super.call(this, value) || this;
|
|
91
116
|
}
|
|
92
117
|
return UUID;
|
|
93
118
|
}(ValueWrapper));
|
|
94
119
|
exports.UUID = UUID;
|
|
120
|
+
/**
|
|
121
|
+
* @group HomeKit Data Streams (HDS)
|
|
122
|
+
*/
|
|
95
123
|
var DataFormatTags;
|
|
96
124
|
(function (DataFormatTags) {
|
|
97
125
|
DataFormatTags[DataFormatTags["INVALID"] = 0] = "INVALID";
|
|
@@ -133,116 +161,121 @@ var DataFormatTags;
|
|
|
133
161
|
DataFormatTags[DataFormatTags["DICTIONARY_LENGTH_STOP"] = 238] = "DICTIONARY_LENGTH_STOP";
|
|
134
162
|
DataFormatTags[DataFormatTags["DICTIONARY_TERMINATED"] = 239] = "DICTIONARY_TERMINATED";
|
|
135
163
|
})(DataFormatTags = exports.DataFormatTags || (exports.DataFormatTags = {}));
|
|
164
|
+
/**
|
|
165
|
+
* @group HomeKit Data Streams (HDS)
|
|
166
|
+
*/
|
|
136
167
|
var DataStreamParser = /** @class */ (function () {
|
|
137
168
|
function DataStreamParser() {
|
|
138
169
|
}
|
|
170
|
+
// eslint-disable-next-line @typescript-eslint/no-explicit-any
|
|
139
171
|
DataStreamParser.decode = function (buffer) {
|
|
140
172
|
var tag = buffer.readTag();
|
|
141
|
-
if (tag === 0 /* INVALID */) {
|
|
173
|
+
if (tag === 0 /* DataFormatTags.INVALID */) {
|
|
142
174
|
throw new Error("HDSDecoder: zero tag detected on index " + buffer.readerIndex);
|
|
143
175
|
}
|
|
144
|
-
else if (tag === 1 /* TRUE */) {
|
|
176
|
+
else if (tag === 1 /* DataFormatTags.TRUE */) {
|
|
145
177
|
return buffer.readTrue();
|
|
146
178
|
}
|
|
147
|
-
else if (tag === 2 /* FALSE */) {
|
|
179
|
+
else if (tag === 2 /* DataFormatTags.FALSE */) {
|
|
148
180
|
return buffer.readFalse();
|
|
149
181
|
}
|
|
150
|
-
else if (tag === 3 /* TERMINATOR */) {
|
|
182
|
+
else if (tag === 3 /* DataFormatTags.TERMINATOR */) {
|
|
151
183
|
return Magics.TERMINATOR;
|
|
152
184
|
}
|
|
153
|
-
else if (tag === 4 /* NULL */) {
|
|
185
|
+
else if (tag === 4 /* DataFormatTags.NULL */) {
|
|
154
186
|
return null;
|
|
155
187
|
}
|
|
156
|
-
else if (tag === 5 /* UUID */) {
|
|
188
|
+
else if (tag === 5 /* DataFormatTags.UUID */) {
|
|
157
189
|
return buffer.readUUID();
|
|
158
190
|
}
|
|
159
|
-
else if (tag === 6 /* DATE */) {
|
|
191
|
+
else if (tag === 6 /* DataFormatTags.DATE */) {
|
|
160
192
|
return buffer.readSecondsSince2001_01_01();
|
|
161
193
|
}
|
|
162
|
-
else if (tag === 7 /* INTEGER_MINUS_ONE */) {
|
|
194
|
+
else if (tag === 7 /* DataFormatTags.INTEGER_MINUS_ONE */) {
|
|
163
195
|
return buffer.readNegOne();
|
|
164
196
|
}
|
|
165
|
-
else if (tag >= 8 /* INTEGER_RANGE_START_0 */ && tag <= 46 /* INTEGER_RANGE_STOP_39 */) {
|
|
197
|
+
else if (tag >= 8 /* DataFormatTags.INTEGER_RANGE_START_0 */ && tag <= 46 /* DataFormatTags.INTEGER_RANGE_STOP_39 */) {
|
|
166
198
|
return buffer.readIntRange(tag); // integer values from 0-39
|
|
167
199
|
}
|
|
168
|
-
else if (tag === 48 /* INT8 */) {
|
|
200
|
+
else if (tag === 48 /* DataFormatTags.INT8 */) {
|
|
169
201
|
return buffer.readInt8();
|
|
170
202
|
}
|
|
171
|
-
else if (tag === 49 /* INT16LE */) {
|
|
203
|
+
else if (tag === 49 /* DataFormatTags.INT16LE */) {
|
|
172
204
|
return buffer.readInt16LE();
|
|
173
205
|
}
|
|
174
|
-
else if (tag === 50 /* INT32LE */) {
|
|
206
|
+
else if (tag === 50 /* DataFormatTags.INT32LE */) {
|
|
175
207
|
return buffer.readInt32LE();
|
|
176
208
|
}
|
|
177
|
-
else if (tag === 51 /* INT64LE */) {
|
|
209
|
+
else if (tag === 51 /* DataFormatTags.INT64LE */) {
|
|
178
210
|
return buffer.readInt64LE();
|
|
179
211
|
}
|
|
180
|
-
else if (tag === 53 /* FLOAT32LE */) {
|
|
212
|
+
else if (tag === 53 /* DataFormatTags.FLOAT32LE */) {
|
|
181
213
|
return buffer.readFloat32LE();
|
|
182
214
|
}
|
|
183
|
-
else if (tag === 54 /* FLOAT64LE */) {
|
|
215
|
+
else if (tag === 54 /* DataFormatTags.FLOAT64LE */) {
|
|
184
216
|
return buffer.readFloat64LE();
|
|
185
217
|
}
|
|
186
|
-
else if (tag >= 64 /* UTF8_LENGTH_START */ && tag <= 96 /* UTF8_LENGTH_STOP */) {
|
|
187
|
-
var length = tag - 64 /* UTF8_LENGTH_START */;
|
|
218
|
+
else if (tag >= 64 /* DataFormatTags.UTF8_LENGTH_START */ && tag <= 96 /* DataFormatTags.UTF8_LENGTH_STOP */) {
|
|
219
|
+
var length = tag - 64 /* DataFormatTags.UTF8_LENGTH_START */;
|
|
188
220
|
return buffer.readUTF8(length);
|
|
189
221
|
}
|
|
190
|
-
else if (tag === 97 /* UTF8_LENGTH8 */) {
|
|
222
|
+
else if (tag === 97 /* DataFormatTags.UTF8_LENGTH8 */) {
|
|
191
223
|
return buffer.readUTF8_Length8();
|
|
192
224
|
}
|
|
193
|
-
else if (tag === 98 /* UTF8_LENGTH16LE */) {
|
|
225
|
+
else if (tag === 98 /* DataFormatTags.UTF8_LENGTH16LE */) {
|
|
194
226
|
return buffer.readUTF8_Length16LE();
|
|
195
227
|
}
|
|
196
|
-
else if (tag === 99 /* UTF8_LENGTH32LE */) {
|
|
228
|
+
else if (tag === 99 /* DataFormatTags.UTF8_LENGTH32LE */) {
|
|
197
229
|
return buffer.readUTF8_Length32LE();
|
|
198
230
|
}
|
|
199
|
-
else if (tag === 100 /* UTF8_LENGTH64LE */) {
|
|
231
|
+
else if (tag === 100 /* DataFormatTags.UTF8_LENGTH64LE */) {
|
|
200
232
|
return buffer.readUTF8_Length64LE();
|
|
201
233
|
}
|
|
202
|
-
else if (tag === 111 /* UTF8_NULL_TERMINATED */) {
|
|
234
|
+
else if (tag === 111 /* DataFormatTags.UTF8_NULL_TERMINATED */) {
|
|
203
235
|
return buffer.readUTF8_NULL_terminated();
|
|
204
236
|
}
|
|
205
|
-
else if (tag >= 112 /* DATA_LENGTH_START */ && tag <= 144 /* DATA_LENGTH_STOP */) {
|
|
206
|
-
var length = tag - 112 /* DATA_LENGTH_START */;
|
|
237
|
+
else if (tag >= 112 /* DataFormatTags.DATA_LENGTH_START */ && tag <= 144 /* DataFormatTags.DATA_LENGTH_STOP */) {
|
|
238
|
+
var length = tag - 112 /* DataFormatTags.DATA_LENGTH_START */;
|
|
207
239
|
buffer.readData(length);
|
|
208
240
|
}
|
|
209
|
-
else if (tag === 145 /* DATA_LENGTH8 */) {
|
|
241
|
+
else if (tag === 145 /* DataFormatTags.DATA_LENGTH8 */) {
|
|
210
242
|
return buffer.readData_Length8();
|
|
211
243
|
}
|
|
212
|
-
else if (tag === 146 /* DATA_LENGTH16LE */) {
|
|
244
|
+
else if (tag === 146 /* DataFormatTags.DATA_LENGTH16LE */) {
|
|
213
245
|
return buffer.readData_Length16LE();
|
|
214
246
|
}
|
|
215
|
-
else if (tag === 147 /* DATA_LENGTH32LE */) {
|
|
247
|
+
else if (tag === 147 /* DataFormatTags.DATA_LENGTH32LE */) {
|
|
216
248
|
return buffer.readData_Length32LE();
|
|
217
249
|
}
|
|
218
|
-
else if (tag === 148 /* DATA_LENGTH64LE */) {
|
|
250
|
+
else if (tag === 148 /* DataFormatTags.DATA_LENGTH64LE */) {
|
|
219
251
|
return buffer.readData_Length64LE();
|
|
220
252
|
}
|
|
221
|
-
else if (tag === 159 /* DATA_TERMINATED */) {
|
|
253
|
+
else if (tag === 159 /* DataFormatTags.DATA_TERMINATED */) {
|
|
222
254
|
return buffer.readData_terminated();
|
|
223
255
|
}
|
|
224
|
-
else if (tag >= 160 /* COMPRESSION_START */ && tag <= 207 /* COMPRESSION_STOP */) {
|
|
225
|
-
var index = tag - 160 /* COMPRESSION_START */;
|
|
256
|
+
else if (tag >= 160 /* DataFormatTags.COMPRESSION_START */ && tag <= 207 /* DataFormatTags.COMPRESSION_STOP */) {
|
|
257
|
+
var index = tag - 160 /* DataFormatTags.COMPRESSION_START */;
|
|
226
258
|
return buffer.decompressData(index);
|
|
227
259
|
}
|
|
228
|
-
else if (tag >= 208 /* ARRAY_LENGTH_START */ && tag <= 222 /* ARRAY_LENGTH_STOP */) {
|
|
229
|
-
var length = tag - 208 /* ARRAY_LENGTH_START */;
|
|
260
|
+
else if (tag >= 208 /* DataFormatTags.ARRAY_LENGTH_START */ && tag <= 222 /* DataFormatTags.ARRAY_LENGTH_STOP */) {
|
|
261
|
+
var length = tag - 208 /* DataFormatTags.ARRAY_LENGTH_START */;
|
|
230
262
|
var array = [];
|
|
231
263
|
for (var i = 0; i < length; i++) {
|
|
232
264
|
array.push(this.decode(buffer));
|
|
233
265
|
}
|
|
234
266
|
return array;
|
|
235
267
|
}
|
|
236
|
-
else if (tag === 223 /* ARRAY_TERMINATED */) {
|
|
268
|
+
else if (tag === 223 /* DataFormatTags.ARRAY_TERMINATED */) {
|
|
237
269
|
var array = [];
|
|
238
270
|
var element = void 0;
|
|
239
|
-
while ((element = this.decode(buffer))
|
|
271
|
+
while ((element = this.decode(buffer)) !== Magics.TERMINATOR) {
|
|
240
272
|
array.push(element);
|
|
241
273
|
}
|
|
242
274
|
return array;
|
|
243
275
|
}
|
|
244
|
-
else if (tag >= 224 /* DICTIONARY_LENGTH_START */ && tag <= 238 /* DICTIONARY_LENGTH_STOP */) {
|
|
245
|
-
var length = tag - 224 /* DICTIONARY_LENGTH_START */;
|
|
276
|
+
else if (tag >= 224 /* DataFormatTags.DICTIONARY_LENGTH_START */ && tag <= 238 /* DataFormatTags.DICTIONARY_LENGTH_STOP */) {
|
|
277
|
+
var length = tag - 224 /* DataFormatTags.DICTIONARY_LENGTH_START */;
|
|
278
|
+
// eslint-disable-next-line @typescript-eslint/no-explicit-any
|
|
246
279
|
var dictionary = {};
|
|
247
280
|
for (var i = 0; i < length; i++) {
|
|
248
281
|
var key = this.decode(buffer);
|
|
@@ -250,10 +283,11 @@ var DataStreamParser = /** @class */ (function () {
|
|
|
250
283
|
}
|
|
251
284
|
return dictionary;
|
|
252
285
|
}
|
|
253
|
-
else if (tag === 239 /* DICTIONARY_TERMINATED */) {
|
|
286
|
+
else if (tag === 239 /* DataFormatTags.DICTIONARY_TERMINATED */) {
|
|
287
|
+
// eslint-disable-next-line @typescript-eslint/no-explicit-any
|
|
254
288
|
var dictionary = {};
|
|
255
289
|
var key = void 0;
|
|
256
|
-
while ((key = this.decode(buffer))
|
|
290
|
+
while ((key = this.decode(buffer)) !== Magics.TERMINATOR) {
|
|
257
291
|
dictionary[key] = this.decode(buffer); // decode value
|
|
258
292
|
}
|
|
259
293
|
return dictionary;
|
|
@@ -262,13 +296,14 @@ var DataStreamParser = /** @class */ (function () {
|
|
|
262
296
|
throw new Error("HDSDecoder: encountered unknown tag on index " + buffer.readerIndex + ": " + tag.toString(16));
|
|
263
297
|
}
|
|
264
298
|
};
|
|
299
|
+
// eslint-disable-next-line @typescript-eslint/explicit-module-boundary-types,@typescript-eslint/no-explicit-any
|
|
265
300
|
DataStreamParser.encode = function (data, buffer) {
|
|
266
301
|
var _this = this;
|
|
267
302
|
if (data === undefined) {
|
|
268
303
|
throw new Error("HDSEncoder: cannot encode undefined");
|
|
269
304
|
}
|
|
270
305
|
if (data === null) {
|
|
271
|
-
buffer.writeTag(4 /* NULL */);
|
|
306
|
+
buffer.writeTag(4 /* DataFormatTags.NULL */);
|
|
272
307
|
return;
|
|
273
308
|
}
|
|
274
309
|
switch (typeof data) {
|
|
@@ -295,16 +330,16 @@ var DataStreamParser = /** @class */ (function () {
|
|
|
295
330
|
if (Array.isArray(data)) {
|
|
296
331
|
var length = data.length;
|
|
297
332
|
if (length <= 12) {
|
|
298
|
-
buffer.writeTag(208 /* ARRAY_LENGTH_START */ + length);
|
|
333
|
+
buffer.writeTag(208 /* DataFormatTags.ARRAY_LENGTH_START */ + length);
|
|
299
334
|
}
|
|
300
335
|
else {
|
|
301
|
-
buffer.writeTag(223 /* ARRAY_TERMINATED */);
|
|
336
|
+
buffer.writeTag(223 /* DataFormatTags.ARRAY_TERMINATED */);
|
|
302
337
|
}
|
|
303
338
|
data.forEach(function (element) {
|
|
304
339
|
_this.encode(element, buffer);
|
|
305
340
|
});
|
|
306
341
|
if (length > 12) {
|
|
307
|
-
buffer.writeTag(3 /* TERMINATOR */);
|
|
342
|
+
buffer.writeTag(3 /* DataFormatTags.TERMINATOR */);
|
|
308
343
|
}
|
|
309
344
|
}
|
|
310
345
|
else if (data instanceof ValueWrapper) {
|
|
@@ -340,19 +375,20 @@ var DataStreamParser = /** @class */ (function () {
|
|
|
340
375
|
buffer.writeData(data);
|
|
341
376
|
}
|
|
342
377
|
else { // object is treated as dictionary
|
|
343
|
-
var entries = Object.entries(data)
|
|
378
|
+
var entries = Object.entries(data)
|
|
379
|
+
.filter(function (entry) { return entry[1] !== undefined; }); // explicitly setting undefined will result in an entry here
|
|
344
380
|
if (entries.length <= 14) {
|
|
345
|
-
buffer.writeTag(224 /* DICTIONARY_LENGTH_START */ + entries.length);
|
|
381
|
+
buffer.writeTag(224 /* DataFormatTags.DICTIONARY_LENGTH_START */ + entries.length);
|
|
346
382
|
}
|
|
347
383
|
else {
|
|
348
|
-
buffer.writeTag(239 /* DICTIONARY_TERMINATED */);
|
|
384
|
+
buffer.writeTag(239 /* DataFormatTags.DICTIONARY_TERMINATED */);
|
|
349
385
|
}
|
|
350
386
|
entries.forEach(function (entry) {
|
|
351
387
|
_this.encode(entry[0], buffer); // encode key
|
|
352
388
|
_this.encode(entry[1], buffer); // encode value
|
|
353
389
|
});
|
|
354
390
|
if (entries.length > 14) {
|
|
355
|
-
buffer.writeTag(3 /* TERMINATOR */);
|
|
391
|
+
buffer.writeTag(3 /* DataFormatTags.TERMINATOR */);
|
|
356
392
|
}
|
|
357
393
|
}
|
|
358
394
|
break;
|
|
@@ -363,8 +399,12 @@ var DataStreamParser = /** @class */ (function () {
|
|
|
363
399
|
return DataStreamParser;
|
|
364
400
|
}());
|
|
365
401
|
exports.DataStreamParser = DataStreamParser;
|
|
402
|
+
/**
|
|
403
|
+
* @group HomeKit Data Streams (HDS)
|
|
404
|
+
*/
|
|
366
405
|
var DataStreamReader = /** @class */ (function () {
|
|
367
406
|
function DataStreamReader(data) {
|
|
407
|
+
// eslint-disable-next-line @typescript-eslint/no-explicit-any
|
|
368
408
|
this.trackedCompressedData = [];
|
|
369
409
|
this.data = data;
|
|
370
410
|
this.readerIndex = 0;
|
|
@@ -375,9 +415,11 @@ var DataStreamReader = /** @class */ (function () {
|
|
|
375
415
|
debug("WARNING Finished reading HDS stream, but there are still %d bytes remaining () %s", this.data.length - this.readerIndex, remainingHex);
|
|
376
416
|
}
|
|
377
417
|
};
|
|
418
|
+
// eslint-disable-next-line @typescript-eslint/no-explicit-any
|
|
378
419
|
DataStreamReader.prototype.decompressData = function (index) {
|
|
379
420
|
if (index >= this.trackedCompressedData.length) {
|
|
380
|
-
throw new Error("HDSDecoder: Tried decompression of data for an index out of range (index " + index +
|
|
421
|
+
throw new Error("HDSDecoder: Tried decompression of data for an index out of range (index " + index +
|
|
422
|
+
" and got " + this.trackedCompressedData.length + " elements)");
|
|
381
423
|
}
|
|
382
424
|
return this.trackedCompressedData[index];
|
|
383
425
|
};
|
|
@@ -405,7 +447,7 @@ var DataStreamReader = /** @class */ (function () {
|
|
|
405
447
|
return this.trackData(-1);
|
|
406
448
|
};
|
|
407
449
|
DataStreamReader.prototype.readIntRange = function (tag) {
|
|
408
|
-
return this.trackData(tag - 8 /* INTEGER_RANGE_START_0 */); // integer values from 0-39
|
|
450
|
+
return this.trackData(tag - 8 /* DataFormatTags.INTEGER_RANGE_START_0 */); // integer values from 0-39
|
|
409
451
|
};
|
|
410
452
|
DataStreamReader.prototype.readInt8 = function () {
|
|
411
453
|
this.ensureLength(1);
|
|
@@ -469,7 +511,7 @@ var DataStreamReader = /** @class */ (function () {
|
|
|
469
511
|
};
|
|
470
512
|
DataStreamReader.prototype.readUTF8 = function (length) {
|
|
471
513
|
this.ensureLength(length);
|
|
472
|
-
var value = this.data.toString(
|
|
514
|
+
var value = this.data.toString("utf8", this.readerIndex, this.readerIndex + length);
|
|
473
515
|
this.readerIndex += length;
|
|
474
516
|
return this.trackData(value);
|
|
475
517
|
};
|
|
@@ -504,7 +546,7 @@ var DataStreamReader = /** @class */ (function () {
|
|
|
504
546
|
offset++;
|
|
505
547
|
}
|
|
506
548
|
}
|
|
507
|
-
var value = this.data.toString(
|
|
549
|
+
var value = this.data.toString("utf8", this.readerIndex, offset);
|
|
508
550
|
this.readerIndex = offset + 1;
|
|
509
551
|
return this.trackData(value);
|
|
510
552
|
};
|
|
@@ -538,7 +580,7 @@ var DataStreamReader = /** @class */ (function () {
|
|
|
538
580
|
if (nextByte === undefined) {
|
|
539
581
|
throw new Error("HDSDecoder: Reached end of data stream while reading terminated data!");
|
|
540
582
|
}
|
|
541
|
-
else if (nextByte === 3 /* TERMINATOR */) {
|
|
583
|
+
else if (nextByte === 3 /* DataFormatTags.TERMINATOR */) {
|
|
542
584
|
break;
|
|
543
585
|
}
|
|
544
586
|
else {
|
|
@@ -564,6 +606,7 @@ var DataStreamReader = /** @class */ (function () {
|
|
|
564
606
|
exports.DataStreamReader = DataStreamReader;
|
|
565
607
|
var WrittenDataList = /** @class */ (function () {
|
|
566
608
|
function WrittenDataList() {
|
|
609
|
+
// eslint-disable-next-line @typescript-eslint/no-explicit-any
|
|
567
610
|
this.writtenData = [];
|
|
568
611
|
}
|
|
569
612
|
WrittenDataList.prototype.push = function (data) {
|
|
@@ -585,6 +628,9 @@ var WrittenDataList = /** @class */ (function () {
|
|
|
585
628
|
};
|
|
586
629
|
return WrittenDataList;
|
|
587
630
|
}());
|
|
631
|
+
/**
|
|
632
|
+
* @group HomeKit Data Streams (HDS)
|
|
633
|
+
*/
|
|
588
634
|
var DataStreamWriter = /** @class */ (function () {
|
|
589
635
|
function DataStreamWriter() {
|
|
590
636
|
this.writtenData = new WrittenDataList();
|
|
@@ -613,9 +659,9 @@ var DataStreamWriter = /** @class */ (function () {
|
|
|
613
659
|
this.writtenData.push(data);
|
|
614
660
|
return false;
|
|
615
661
|
}
|
|
616
|
-
else if (index <= 207 /* COMPRESSION_STOP */ - 160 /* COMPRESSION_START */) {
|
|
662
|
+
else if (index <= 207 /* DataFormatTags.COMPRESSION_STOP */ - 160 /* DataFormatTags.COMPRESSION_START */) {
|
|
617
663
|
// data was already written and the index is in the applicable range => shorten the payload
|
|
618
|
-
this.writeTag(160 /* COMPRESSION_START */ + index);
|
|
664
|
+
this.writeTag(160 /* DataFormatTags.COMPRESSION_START */ + index);
|
|
619
665
|
return true;
|
|
620
666
|
}
|
|
621
667
|
return false;
|
|
@@ -625,17 +671,17 @@ var DataStreamWriter = /** @class */ (function () {
|
|
|
625
671
|
this.data.writeUInt8(tag, this.writerIndex++);
|
|
626
672
|
};
|
|
627
673
|
DataStreamWriter.prototype.writeTrue = function () {
|
|
628
|
-
this.writeTag(1 /* TRUE */);
|
|
674
|
+
this.writeTag(1 /* DataFormatTags.TRUE */);
|
|
629
675
|
};
|
|
630
676
|
DataStreamWriter.prototype.writeFalse = function () {
|
|
631
|
-
this.writeTag(2 /* FALSE */);
|
|
677
|
+
this.writeTag(2 /* DataFormatTags.FALSE */);
|
|
632
678
|
};
|
|
633
679
|
DataStreamWriter.prototype.writeNumber = function (number) {
|
|
634
680
|
if (number === -1) {
|
|
635
|
-
this.writeTag(7 /* INTEGER_MINUS_ONE */);
|
|
681
|
+
this.writeTag(7 /* DataFormatTags.INTEGER_MINUS_ONE */);
|
|
636
682
|
}
|
|
637
683
|
else if (number >= 0 && number <= 39) {
|
|
638
|
-
this.writeTag(8 /* INTEGER_RANGE_START_0 */ + number);
|
|
684
|
+
this.writeTag(8 /* DataFormatTags.INTEGER_RANGE_START_0 */ + number);
|
|
639
685
|
}
|
|
640
686
|
else if (number >= -128 && number <= 127) {
|
|
641
687
|
this.writeInt8(new Int8(number));
|
|
@@ -658,7 +704,7 @@ var DataStreamWriter = /** @class */ (function () {
|
|
|
658
704
|
return;
|
|
659
705
|
}
|
|
660
706
|
this.ensureLength(2);
|
|
661
|
-
this.writeTag(48 /* INT8 */);
|
|
707
|
+
this.writeTag(48 /* DataFormatTags.INT8 */);
|
|
662
708
|
this.data.writeInt8(int8.value, this.writerIndex++);
|
|
663
709
|
};
|
|
664
710
|
DataStreamWriter.prototype.writeInt16LE = function (int16) {
|
|
@@ -666,7 +712,7 @@ var DataStreamWriter = /** @class */ (function () {
|
|
|
666
712
|
return;
|
|
667
713
|
}
|
|
668
714
|
this.ensureLength(3);
|
|
669
|
-
this.writeTag(49 /* INT16LE */);
|
|
715
|
+
this.writeTag(49 /* DataFormatTags.INT16LE */);
|
|
670
716
|
this.data.writeInt16LE(int16.value, this.writerIndex);
|
|
671
717
|
this.writerIndex += 2;
|
|
672
718
|
};
|
|
@@ -675,7 +721,7 @@ var DataStreamWriter = /** @class */ (function () {
|
|
|
675
721
|
return;
|
|
676
722
|
}
|
|
677
723
|
this.ensureLength(5);
|
|
678
|
-
this.writeTag(50 /* INT32LE */);
|
|
724
|
+
this.writeTag(50 /* DataFormatTags.INT32LE */);
|
|
679
725
|
this.data.writeInt32LE(int32.value, this.writerIndex);
|
|
680
726
|
this.writerIndex += 4;
|
|
681
727
|
};
|
|
@@ -684,7 +730,7 @@ var DataStreamWriter = /** @class */ (function () {
|
|
|
684
730
|
return;
|
|
685
731
|
}
|
|
686
732
|
this.ensureLength(9);
|
|
687
|
-
this.writeTag(51 /* INT64LE */);
|
|
733
|
+
this.writeTag(51 /* DataFormatTags.INT64LE */);
|
|
688
734
|
this.data.writeUInt32LE(int64.value, this.writerIndex); // TODO correctly implement int64; currently it's basically an int32
|
|
689
735
|
this.data.writeUInt32LE(0, this.writerIndex + 4);
|
|
690
736
|
this.writerIndex += 8;
|
|
@@ -694,7 +740,7 @@ var DataStreamWriter = /** @class */ (function () {
|
|
|
694
740
|
return;
|
|
695
741
|
}
|
|
696
742
|
this.ensureLength(5);
|
|
697
|
-
this.writeTag(53 /* FLOAT32LE */);
|
|
743
|
+
this.writeTag(53 /* DataFormatTags.FLOAT32LE */);
|
|
698
744
|
this.data.writeFloatLE(float32.value, this.writerIndex);
|
|
699
745
|
this.writerIndex += 4;
|
|
700
746
|
};
|
|
@@ -703,7 +749,7 @@ var DataStreamWriter = /** @class */ (function () {
|
|
|
703
749
|
return;
|
|
704
750
|
}
|
|
705
751
|
this.ensureLength(9);
|
|
706
|
-
this.writeTag(54 /* FLOAT64LE */);
|
|
752
|
+
this.writeTag(54 /* DataFormatTags.FLOAT64LE */);
|
|
707
753
|
this.data.writeDoubleLE(float64.value, this.writerIndex);
|
|
708
754
|
this.writerIndex += 8;
|
|
709
755
|
};
|
|
@@ -733,7 +779,7 @@ var DataStreamWriter = /** @class */ (function () {
|
|
|
733
779
|
var length = Buffer.byteLength(utf8);
|
|
734
780
|
if (length <= 32) {
|
|
735
781
|
this.ensureLength(1 + length);
|
|
736
|
-
this.writeTag(64 /* UTF8_LENGTH_START */ + utf8.length);
|
|
782
|
+
this.writeTag(64 /* DataFormatTags.UTF8_LENGTH_START */ + utf8.length);
|
|
737
783
|
this._writeUTF8(utf8);
|
|
738
784
|
}
|
|
739
785
|
else if (length <= 255) {
|
|
@@ -761,34 +807,34 @@ var DataStreamWriter = /** @class */ (function () {
|
|
|
761
807
|
DataStreamWriter.prototype.writeUTF8_Length8 = function (utf8) {
|
|
762
808
|
var length = Buffer.byteLength(utf8);
|
|
763
809
|
this.ensureLength(2 + length);
|
|
764
|
-
this.writeTag(97 /* UTF8_LENGTH8 */);
|
|
810
|
+
this.writeTag(97 /* DataFormatTags.UTF8_LENGTH8 */);
|
|
765
811
|
this.writeLength8(length);
|
|
766
812
|
this._writeUTF8(utf8);
|
|
767
813
|
};
|
|
768
814
|
DataStreamWriter.prototype.writeUTF8_Length16LE = function (utf8) {
|
|
769
815
|
var length = Buffer.byteLength(utf8);
|
|
770
816
|
this.ensureLength(3 + length);
|
|
771
|
-
this.writeTag(98 /* UTF8_LENGTH16LE */);
|
|
817
|
+
this.writeTag(98 /* DataFormatTags.UTF8_LENGTH16LE */);
|
|
772
818
|
this.writeLength16LE(length);
|
|
773
819
|
this._writeUTF8(utf8);
|
|
774
820
|
};
|
|
775
821
|
DataStreamWriter.prototype.writeUTF8_Length32LE = function (utf8) {
|
|
776
822
|
var length = Buffer.byteLength(utf8);
|
|
777
823
|
this.ensureLength(5 + length);
|
|
778
|
-
this.writeTag(99 /* UTF8_LENGTH32LE */);
|
|
824
|
+
this.writeTag(99 /* DataFormatTags.UTF8_LENGTH32LE */);
|
|
779
825
|
this.writeLength32LE(length);
|
|
780
826
|
this._writeUTF8(utf8);
|
|
781
827
|
};
|
|
782
828
|
DataStreamWriter.prototype.writeUTF8_Length64LE = function (utf8) {
|
|
783
829
|
var length = Buffer.byteLength(utf8);
|
|
784
830
|
this.ensureLength(9 + length);
|
|
785
|
-
this.writeTag(100 /* UTF8_LENGTH64LE */);
|
|
831
|
+
this.writeTag(100 /* DataFormatTags.UTF8_LENGTH64LE */);
|
|
786
832
|
this.writeLength64LE(length);
|
|
787
833
|
this._writeUTF8(utf8);
|
|
788
834
|
};
|
|
789
835
|
DataStreamWriter.prototype.writeUTF8_NULL_terminated = function (utf8) {
|
|
790
836
|
this.ensureLength(1 + Buffer.byteLength(utf8) + 1);
|
|
791
|
-
this.writeTag(111 /* UTF8_NULL_TERMINATED */);
|
|
837
|
+
this.writeTag(111 /* DataFormatTags.UTF8_NULL_TERMINATED */);
|
|
792
838
|
this._writeUTF8(utf8);
|
|
793
839
|
this.data.writeUInt8(0, this.writerIndex++);
|
|
794
840
|
};
|
|
@@ -797,7 +843,7 @@ var DataStreamWriter = /** @class */ (function () {
|
|
|
797
843
|
return;
|
|
798
844
|
}
|
|
799
845
|
if (data.length <= 32) {
|
|
800
|
-
this.writeTag(112 /* DATA_LENGTH_START */ + data.length);
|
|
846
|
+
this.writeTag(112 /* DataFormatTags.DATA_LENGTH_START */ + data.length);
|
|
801
847
|
this._writeData(data);
|
|
802
848
|
}
|
|
803
849
|
else if (data.length <= 255) {
|
|
@@ -824,50 +870,50 @@ var DataStreamWriter = /** @class */ (function () {
|
|
|
824
870
|
};
|
|
825
871
|
DataStreamWriter.prototype.writeData_Length8 = function (data) {
|
|
826
872
|
this.ensureLength(2 + data.length);
|
|
827
|
-
this.writeTag(145 /* DATA_LENGTH8 */);
|
|
873
|
+
this.writeTag(145 /* DataFormatTags.DATA_LENGTH8 */);
|
|
828
874
|
this.writeLength8(data.length);
|
|
829
875
|
this._writeData(data);
|
|
830
876
|
};
|
|
831
877
|
DataStreamWriter.prototype.writeData_Length16LE = function (data) {
|
|
832
878
|
this.ensureLength(3 + data.length);
|
|
833
|
-
this.writeTag(146 /* DATA_LENGTH16LE */);
|
|
879
|
+
this.writeTag(146 /* DataFormatTags.DATA_LENGTH16LE */);
|
|
834
880
|
this.writeLength16LE(data.length);
|
|
835
881
|
this._writeData(data);
|
|
836
882
|
};
|
|
837
883
|
DataStreamWriter.prototype.writeData_Length32LE = function (data) {
|
|
838
884
|
this.ensureLength(5 + data.length);
|
|
839
|
-
this.writeTag(147 /* DATA_LENGTH32LE */);
|
|
885
|
+
this.writeTag(147 /* DataFormatTags.DATA_LENGTH32LE */);
|
|
840
886
|
this.writeLength32LE(data.length);
|
|
841
887
|
this._writeData(data);
|
|
842
888
|
};
|
|
843
889
|
DataStreamWriter.prototype.writeData_Length64LE = function (data) {
|
|
844
890
|
this.ensureLength(9 + data.length);
|
|
845
|
-
this.writeTag(148 /* DATA_LENGTH64LE */);
|
|
891
|
+
this.writeTag(148 /* DataFormatTags.DATA_LENGTH64LE */);
|
|
846
892
|
this.writeLength64LE(data.length);
|
|
847
893
|
this._writeData(data);
|
|
848
894
|
};
|
|
849
895
|
DataStreamWriter.prototype.writeData_terminated = function (data) {
|
|
850
896
|
this.ensureLength(1 + data.length + 1);
|
|
851
|
-
this.writeTag(159 /* DATA_TERMINATED */);
|
|
897
|
+
this.writeTag(159 /* DataFormatTags.DATA_TERMINATED */);
|
|
852
898
|
this._writeData(data);
|
|
853
|
-
this.writeTag(3 /* TERMINATOR */);
|
|
899
|
+
this.writeTag(3 /* DataFormatTags.TERMINATOR */);
|
|
854
900
|
};
|
|
855
901
|
DataStreamWriter.prototype.writeSecondsSince2001_01_01 = function (seconds) {
|
|
856
902
|
if (this.compressDataIfPossible(seconds)) {
|
|
857
903
|
return;
|
|
858
904
|
}
|
|
859
905
|
this.ensureLength(9);
|
|
860
|
-
this.writeTag(6 /* DATE */);
|
|
906
|
+
this.writeTag(6 /* DataFormatTags.DATE */);
|
|
861
907
|
this.data.writeDoubleLE(seconds.value, this.writerIndex);
|
|
862
908
|
this.writerIndex += 8;
|
|
863
909
|
};
|
|
864
910
|
DataStreamWriter.prototype.writeUUID = function (uuid_string) {
|
|
865
|
-
assert_1.default(uuid.isValid(uuid_string), "supplied uuid is invalid");
|
|
911
|
+
(0, assert_1.default)(uuid.isValid(uuid_string), "supplied uuid is invalid");
|
|
866
912
|
if (this.compressDataIfPossible(new UUID(uuid_string))) {
|
|
867
913
|
return;
|
|
868
914
|
}
|
|
869
915
|
this.ensureLength(17);
|
|
870
|
-
this.writeTag(5 /* UUID */);
|
|
916
|
+
this.writeTag(5 /* DataFormatTags.UUID */);
|
|
871
917
|
uuid.write(uuid_string, this.data, this.writerIndex);
|
|
872
918
|
this.writerIndex += 16;
|
|
873
919
|
};
|