hap-nodejs 1.1.0 → 1.1.1-alpha.1
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 +50 -53
- package/README.md +16 -19
- package/dist/accessories/AirConditioner_accessory.js +28 -30
- package/dist/accessories/AirConditioner_accessory.js.map +1 -1
- package/dist/accessories/AppleTVRemote_accessory.js +69 -81
- package/dist/accessories/AppleTVRemote_accessory.js.map +1 -1
- package/dist/accessories/Camera_accessory.js +159 -144
- package/dist/accessories/Camera_accessory.js.map +1 -1
- package/dist/accessories/Fan_accessory.js +18 -22
- package/dist/accessories/Fan_accessory.js.map +1 -1
- package/dist/accessories/GarageDoorOpener_accessory.js +33 -35
- package/dist/accessories/GarageDoorOpener_accessory.js.map +1 -1
- package/dist/accessories/Light-AdaptiveLighting_accessory.js +42 -44
- package/dist/accessories/Light-AdaptiveLighting_accessory.js.map +1 -1
- package/dist/accessories/Light_accessory.js +32 -34
- package/dist/accessories/Light_accessory.js.map +1 -1
- package/dist/accessories/Lock_accessory.js +25 -26
- package/dist/accessories/Lock_accessory.js.map +1 -1
- package/dist/accessories/MotionSensor_accessory.js +13 -16
- package/dist/accessories/MotionSensor_accessory.js.map +1 -1
- package/dist/accessories/Outlet_accessory.js +20 -22
- package/dist/accessories/Outlet_accessory.js.map +1 -1
- package/dist/accessories/SmartSpeaker_accessory.js +18 -20
- package/dist/accessories/SmartSpeaker_accessory.js.map +1 -1
- package/dist/accessories/Sprinkler_accessory.js +34 -37
- package/dist/accessories/Sprinkler_accessory.js.map +1 -1
- package/dist/accessories/TV_accessory.js +43 -45
- package/dist/accessories/TV_accessory.js.map +1 -1
- package/dist/accessories/TemperatureSensor_accessory.js +12 -15
- 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 +9 -12
- 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 +11 -14
- package/dist/accessories/Wi-FiSatellite_accessory.js.map +1 -1
- package/dist/accessories/gstreamer-audioProducer.d.ts +3 -3
- package/dist/accessories/gstreamer-audioProducer.d.ts.map +1 -1
- package/dist/accessories/gstreamer-audioProducer.js +45 -46
- package/dist/accessories/gstreamer-audioProducer.js.map +1 -1
- package/dist/accessories/types.d.ts +63 -63
- package/dist/accessories/types.d.ts.map +1 -1
- package/dist/accessories/types.js +83 -87
- package/dist/accessories/types.js.map +1 -1
- package/dist/index.d.ts +26 -28
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +40 -34
- package/dist/index.js.map +1 -1
- package/dist/internal-types.d.ts +1 -1
- package/dist/internal-types.d.ts.map +1 -1
- package/dist/internal-types.js +19 -21
- package/dist/internal-types.js.map +1 -1
- package/dist/lib/Accessory.d.ts +39 -38
- package/dist/lib/Accessory.d.ts.map +1 -1
- package/dist/lib/Accessory.js +313 -296
- package/dist/lib/Accessory.js.map +1 -1
- package/dist/lib/Advertiser.d.ts +16 -13
- package/dist/lib/Advertiser.d.ts.map +1 -1
- package/dist/lib/Advertiser.js +147 -153
- 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 +2 -6
- package/dist/lib/Bridge.js.map +1 -1
- package/dist/lib/Characteristic.d.ts +48 -69
- package/dist/lib/Characteristic.d.ts.map +1 -1
- package/dist/lib/Characteristic.js +212 -236
- package/dist/lib/Characteristic.js.map +1 -1
- package/dist/lib/HAPServer.d.ts +31 -30
- package/dist/lib/HAPServer.d.ts.map +1 -1
- package/dist/lib/HAPServer.js +220 -229
- package/dist/lib/HAPServer.js.map +1 -1
- package/dist/lib/Service.d.ts +22 -30
- package/dist/lib/Service.d.ts.map +1 -1
- package/dist/lib/Service.js +63 -75
- package/dist/lib/Service.js.map +1 -1
- package/dist/lib/camera/RTPProxy.d.ts +2 -1
- package/dist/lib/camera/RTPProxy.d.ts.map +1 -1
- package/dist/lib/camera/RTPProxy.js +28 -44
- package/dist/lib/camera/RTPProxy.js.map +1 -1
- package/dist/lib/camera/RTPStreamManagement.d.ts +34 -33
- package/dist/lib/camera/RTPStreamManagement.d.ts.map +1 -1
- package/dist/lib/camera/RTPStreamManagement.js +181 -149
- package/dist/lib/camera/RTPStreamManagement.js.map +1 -1
- package/dist/lib/camera/RecordingManagement.d.ts +19 -17
- package/dist/lib/camera/RecordingManagement.d.ts.map +1 -1
- package/dist/lib/camera/RecordingManagement.js +160 -151
- package/dist/lib/camera/RecordingManagement.js.map +1 -1
- package/dist/lib/camera/index.d.ts +3 -3
- package/dist/lib/camera/index.d.ts.map +1 -1
- package/dist/lib/camera/index.js +3 -6
- package/dist/lib/camera/index.js.map +1 -1
- package/dist/lib/controller/AdaptiveLightingController.d.ts +33 -33
- package/dist/lib/controller/AdaptiveLightingController.d.ts.map +1 -1
- package/dist/lib/controller/AdaptiveLightingController.js +152 -144
- package/dist/lib/controller/AdaptiveLightingController.js.map +1 -1
- package/dist/lib/controller/CameraController.d.ts +22 -20
- package/dist/lib/controller/CameraController.d.ts.map +1 -1
- package/dist/lib/controller/CameraController.js +74 -78
- package/dist/lib/controller/CameraController.js.map +1 -1
- package/dist/lib/controller/Controller.d.ts +4 -4
- package/dist/lib/controller/Controller.d.ts.map +1 -1
- package/dist/lib/controller/Controller.js +5 -8
- package/dist/lib/controller/Controller.js.map +1 -1
- package/dist/lib/controller/DoorbellController.d.ts +5 -4
- package/dist/lib/controller/DoorbellController.d.ts.map +1 -1
- package/dist/lib/controller/DoorbellController.js +9 -13
- package/dist/lib/controller/DoorbellController.js.map +1 -1
- package/dist/lib/controller/RemoteController.d.ts +39 -37
- package/dist/lib/controller/RemoteController.d.ts.map +1 -1
- package/dist/lib/controller/RemoteController.js +208 -197
- package/dist/lib/controller/RemoteController.js.map +1 -1
- package/dist/lib/controller/index.d.ts +5 -5
- package/dist/lib/controller/index.d.ts.map +1 -1
- package/dist/lib/controller/index.js +5 -8
- package/dist/lib/controller/index.js.map +1 -1
- package/dist/lib/datastream/DataStreamManagement.d.ts +2 -2
- package/dist/lib/datastream/DataStreamManagement.d.ts.map +1 -1
- package/dist/lib/datastream/DataStreamManagement.js +39 -39
- package/dist/lib/datastream/DataStreamManagement.js.map +1 -1
- package/dist/lib/datastream/DataStreamParser.d.ts +1 -0
- package/dist/lib/datastream/DataStreamParser.d.ts.map +1 -1
- package/dist/lib/datastream/DataStreamParser.js +57 -77
- package/dist/lib/datastream/DataStreamParser.js.map +1 -1
- package/dist/lib/datastream/DataStreamServer.d.ts +23 -22
- package/dist/lib/datastream/DataStreamServer.d.ts.map +1 -1
- package/dist/lib/datastream/DataStreamServer.js +154 -164
- package/dist/lib/datastream/DataStreamServer.js.map +1 -1
- package/dist/lib/datastream/index.d.ts +3 -3
- package/dist/lib/datastream/index.d.ts.map +1 -1
- package/dist/lib/datastream/index.js +3 -6
- package/dist/lib/datastream/index.js.map +1 -1
- package/dist/lib/definitions/CharacteristicDefinitions.d.ts +15 -60
- package/dist/lib/definitions/CharacteristicDefinitions.d.ts.map +1 -1
- package/dist/lib/definitions/CharacteristicDefinitions.js +978 -1317
- package/dist/lib/definitions/CharacteristicDefinitions.js.map +1 -1
- package/dist/lib/definitions/ServiceDefinitions.d.ts +1 -15
- package/dist/lib/definitions/ServiceDefinitions.d.ts.map +1 -1
- package/dist/lib/definitions/ServiceDefinitions.js +621 -726
- package/dist/lib/definitions/ServiceDefinitions.js.map +1 -1
- package/dist/lib/definitions/generate-definitions.d.ts +3 -3
- package/dist/lib/definitions/generate-definitions.d.ts.map +1 -1
- package/dist/lib/definitions/generate-definitions.js +246 -251
- package/dist/lib/definitions/generate-definitions.js.map +1 -1
- package/dist/lib/definitions/generator-configuration.d.ts +1 -1
- package/dist/lib/definitions/generator-configuration.d.ts.map +1 -1
- package/dist/lib/definitions/generator-configuration.js +160 -354
- package/dist/lib/definitions/generator-configuration.js.map +1 -1
- package/dist/lib/definitions/index.d.ts +2 -2
- package/dist/lib/definitions/index.d.ts.map +1 -1
- package/dist/lib/definitions/index.js +2 -5
- package/dist/lib/definitions/index.js.map +1 -1
- package/dist/lib/model/AccessoryInfo.d.ts +4 -3
- package/dist/lib/model/AccessoryInfo.d.ts.map +1 -1
- package/dist/lib/model/AccessoryInfo.js +50 -53
- package/dist/lib/model/AccessoryInfo.js.map +1 -1
- package/dist/lib/model/ControllerStorage.d.ts +3 -3
- package/dist/lib/model/ControllerStorage.d.ts.map +1 -1
- package/dist/lib/model/ControllerStorage.js +18 -23
- package/dist/lib/model/ControllerStorage.js.map +1 -1
- package/dist/lib/model/HAPStorage.d.ts +2 -2
- package/dist/lib/model/HAPStorage.d.ts.map +1 -1
- package/dist/lib/model/HAPStorage.js +4 -11
- package/dist/lib/model/HAPStorage.js.map +1 -1
- package/dist/lib/model/IdentifierCache.d.ts +1 -1
- package/dist/lib/model/IdentifierCache.d.ts.map +1 -1
- package/dist/lib/model/IdentifierCache.js +19 -27
- package/dist/lib/model/IdentifierCache.js.map +1 -1
- package/dist/lib/tv/AccessControlManagement.d.ts +9 -9
- package/dist/lib/tv/AccessControlManagement.d.ts.map +1 -1
- package/dist/lib/tv/AccessControlManagement.js +27 -29
- package/dist/lib/tv/AccessControlManagement.js.map +1 -1
- package/dist/lib/util/checkName.d.ts +2 -2
- package/dist/lib/util/checkName.d.ts.map +1 -1
- package/dist/lib/util/checkName.js +6 -9
- package/dist/lib/util/checkName.js.map +1 -1
- package/dist/lib/util/clone.d.ts.map +1 -1
- package/dist/lib/util/clone.js +1 -5
- package/dist/lib/util/clone.js.map +1 -1
- package/dist/lib/util/color-utils.d.ts +1 -1
- package/dist/lib/util/color-utils.d.ts.map +1 -1
- package/dist/lib/util/color-utils.js +4 -9
- package/dist/lib/util/color-utils.js.map +1 -1
- package/dist/lib/util/eventedhttp.d.ts +23 -22
- package/dist/lib/util/eventedhttp.d.ts.map +1 -1
- package/dist/lib/util/eventedhttp.js +109 -116
- 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 +31 -40
- package/dist/lib/util/hapCrypto.js.map +1 -1
- package/dist/lib/util/hapStatusError.d.ts +1 -1
- package/dist/lib/util/hapStatusError.d.ts.map +1 -1
- package/dist/lib/util/hapStatusError.js +4 -8
- package/dist/lib/util/hapStatusError.js.map +1 -1
- package/dist/lib/util/net-utils.d.ts +1 -1
- package/dist/lib/util/net-utils.js +17 -23
- package/dist/lib/util/net-utils.js.map +1 -1
- package/dist/lib/util/once.d.ts.map +1 -1
- package/dist/lib/util/once.js +2 -6
- package/dist/lib/util/once.js.map +1 -1
- package/dist/lib/util/promise-utils.d.ts +1 -1
- package/dist/lib/util/promise-utils.d.ts.map +1 -1
- package/dist/lib/util/promise-utils.js +3 -10
- package/dist/lib/util/promise-utils.js.map +1 -1
- package/dist/lib/util/request-util.d.ts +3 -2
- package/dist/lib/util/request-util.d.ts.map +1 -1
- package/dist/lib/util/request-util.js +11 -19
- package/dist/lib/util/request-util.js.map +1 -1
- package/dist/lib/util/time.d.ts +1 -0
- package/dist/lib/util/time.d.ts.map +1 -1
- package/dist/lib/util/time.js +6 -11
- package/dist/lib/util/time.js.map +1 -1
- package/dist/lib/util/tlv.d.ts +1 -0
- package/dist/lib/util/tlv.d.ts.map +1 -1
- package/dist/lib/util/tlv.js +28 -43
- package/dist/lib/util/tlv.js.map +1 -1
- package/dist/lib/util/uuid.d.ts +1 -0
- package/dist/lib/util/uuid.d.ts.map +1 -1
- package/dist/lib/util/uuid.js +26 -38
- package/dist/lib/util/uuid.js.map +1 -1
- package/dist/types.d.ts +24 -24
- package/dist/types.d.ts.map +1 -1
- package/dist/types.js +3 -5
- package/dist/types.js.map +1 -1
- package/package.json +49 -47
- package/@types/simple-plist.d.ts +0 -4
- package/dist/lib/gen/HomeKit.d.ts +0 -7
- package/dist/lib/gen/HomeKit.d.ts.map +0 -1
- package/dist/lib/gen/HomeKit.js +0 -8
- package/dist/lib/gen/HomeKit.js.map +0 -1
package/dist/lib/Service.js
CHANGED
|
@@ -1,14 +1,10 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
const
|
|
8
|
-
const Characteristic_1 = require("./Characteristic");
|
|
9
|
-
const uuid_1 = require("./util/uuid");
|
|
10
|
-
const checkName_1 = require("./util/checkName");
|
|
11
|
-
const debug = (0, debug_1.default)("HAP-NodeJS:Service");
|
|
1
|
+
import assert from 'node:assert';
|
|
2
|
+
import { EventEmitter } from 'node:events';
|
|
3
|
+
import createDebug from 'debug';
|
|
4
|
+
import { Characteristic } from './Characteristic.js';
|
|
5
|
+
import { checkName } from './util/checkName.js';
|
|
6
|
+
import { toShortForm } from './util/uuid.js';
|
|
7
|
+
const debug = createDebug('HAP-NodeJS:Service');
|
|
12
8
|
/**
|
|
13
9
|
* HAP spec allows a maximum of 100 characteristics per service!
|
|
14
10
|
*/
|
|
@@ -16,12 +12,13 @@ const MAX_CHARACTERISTICS = 100;
|
|
|
16
12
|
/**
|
|
17
13
|
* @group Service
|
|
18
14
|
*/
|
|
19
|
-
|
|
15
|
+
// eslint-disable-next-line no-restricted-syntax
|
|
16
|
+
export var ServiceEventTypes;
|
|
20
17
|
(function (ServiceEventTypes) {
|
|
21
18
|
ServiceEventTypes["CHARACTERISTIC_CHANGE"] = "characteristic-change";
|
|
22
19
|
ServiceEventTypes["SERVICE_CONFIGURATION_CHANGE"] = "service-configurationChange";
|
|
23
20
|
ServiceEventTypes["CHARACTERISTIC_WARNING"] = "characteristic-warning";
|
|
24
|
-
})(ServiceEventTypes || (
|
|
21
|
+
})(ServiceEventTypes || (ServiceEventTypes = {}));
|
|
25
22
|
/**
|
|
26
23
|
* Service represents a set of grouped values necessary to provide a logical function. For instance, a
|
|
27
24
|
* "Door Lock Mechanism" service might contain two values, one for the "desired lock state" and one for the
|
|
@@ -44,8 +41,8 @@ var ServiceEventTypes;
|
|
|
44
41
|
*
|
|
45
42
|
* @group Service
|
|
46
43
|
*/
|
|
47
|
-
// eslint-disable-next-line
|
|
48
|
-
class Service extends
|
|
44
|
+
// eslint-disable-next-line ts/no-unsafe-declaration-merging
|
|
45
|
+
export class Service extends EventEmitter {
|
|
49
46
|
// Service MUST NOT have any other static variables
|
|
50
47
|
// Pattern below is for automatic detection of the section of defined services. Used by the generator
|
|
51
48
|
// -=-=-=-=-=-=-=-=-=-=-=-=-=-=-
|
|
@@ -113,10 +110,6 @@ class Service extends events_1.EventEmitter {
|
|
|
113
110
|
* @group Service Definitions
|
|
114
111
|
*/
|
|
115
112
|
static CarbonMonoxideSensor;
|
|
116
|
-
/**
|
|
117
|
-
* @group Service Definitions
|
|
118
|
-
*/
|
|
119
|
-
static CloudRelay;
|
|
120
113
|
/**
|
|
121
114
|
* @group Service Definitions
|
|
122
115
|
*/
|
|
@@ -313,10 +306,6 @@ class Service extends events_1.EventEmitter {
|
|
|
313
306
|
* @group Service Definitions
|
|
314
307
|
*/
|
|
315
308
|
static TransferTransportManagement;
|
|
316
|
-
/**
|
|
317
|
-
* @group Service Definitions
|
|
318
|
-
*/
|
|
319
|
-
static Tunnel;
|
|
320
309
|
/**
|
|
321
310
|
* @group Service Definitions
|
|
322
311
|
*/
|
|
@@ -362,9 +351,9 @@ class Service extends events_1.EventEmitter {
|
|
|
362
351
|
* @private
|
|
363
352
|
*/
|
|
364
353
|
linkedServices = [];
|
|
365
|
-
constructor(displayName =
|
|
354
|
+
constructor(displayName = '', UUID, subtype) {
|
|
366
355
|
super();
|
|
367
|
-
(
|
|
356
|
+
assert(UUID, 'Services must be created with a valid UUID.');
|
|
368
357
|
this.displayName = displayName;
|
|
369
358
|
this.UUID = UUID;
|
|
370
359
|
this.subtype = subtype;
|
|
@@ -373,9 +362,9 @@ class Service extends events_1.EventEmitter {
|
|
|
373
362
|
// if you don't provide a display name, some HomeKit apps may choose to hide the device.
|
|
374
363
|
if (displayName) {
|
|
375
364
|
// create the characteristic if necessary
|
|
376
|
-
|
|
377
|
-
const nameCharacteristic = this.getCharacteristic(
|
|
378
|
-
this.addCharacteristic(
|
|
365
|
+
checkName(this.displayName, 'Name', displayName);
|
|
366
|
+
const nameCharacteristic = this.getCharacteristic(Characteristic.Name)
|
|
367
|
+
|| this.addCharacteristic(Characteristic.Name);
|
|
379
368
|
nameCharacteristic.updateValue(displayName);
|
|
380
369
|
}
|
|
381
370
|
}
|
|
@@ -387,24 +376,24 @@ class Service extends events_1.EventEmitter {
|
|
|
387
376
|
* @returns the serviceId
|
|
388
377
|
*/
|
|
389
378
|
getServiceId() {
|
|
390
|
-
return this.UUID + (this.subtype ||
|
|
379
|
+
return this.UUID + (this.subtype || '');
|
|
391
380
|
}
|
|
392
|
-
// eslint-disable-next-line @typescript-eslint/no-explicit-any
|
|
393
381
|
addCharacteristic(input, ...constructorArgs) {
|
|
394
382
|
// characteristic might be a constructor like `Characteristic.Brightness` instead of an instance of Characteristic. Coerce if necessary.
|
|
395
|
-
|
|
383
|
+
// eslint-disable-next-line new-cap
|
|
384
|
+
const characteristic = typeof input === 'function' ? new input(...constructorArgs) : input;
|
|
396
385
|
// check for UUID conflict
|
|
397
386
|
for (const existing of this.characteristics) {
|
|
398
387
|
if (existing.UUID === characteristic.UUID) {
|
|
399
|
-
if (characteristic.UUID ===
|
|
400
|
-
//This is a special workaround for the Firmware Revision characteristic.
|
|
388
|
+
if (characteristic.UUID === '00000052-0000-1000-8000-0026BB765291') {
|
|
389
|
+
// This is a special workaround for the Firmware Revision characteristic.
|
|
401
390
|
return existing;
|
|
402
391
|
}
|
|
403
|
-
throw new Error(
|
|
392
|
+
throw new Error(`Cannot add a Characteristic with the same UUID as another Characteristic in this Service: ${existing.UUID}`);
|
|
404
393
|
}
|
|
405
394
|
}
|
|
406
395
|
if (this.characteristics.length >= MAX_CHARACTERISTICS) {
|
|
407
|
-
throw new Error(
|
|
396
|
+
throw new Error(`Cannot add more than ${MAX_CHARACTERISTICS} characteristics to a single service!`);
|
|
408
397
|
}
|
|
409
398
|
this.setupCharacteristicEventHandlers(characteristic);
|
|
410
399
|
this.characteristics.push(characteristic);
|
|
@@ -439,7 +428,7 @@ class Service extends events_1.EventEmitter {
|
|
|
439
428
|
* @param service - The service this service should link to
|
|
440
429
|
*/
|
|
441
430
|
addLinkedService(service) {
|
|
442
|
-
//TODO: Add a check if the service is on the same accessory.
|
|
431
|
+
// TODO: Add a check if the service is on the same accessory.
|
|
443
432
|
if (!this.linkedServices.includes(service)) {
|
|
444
433
|
this.linkedServices.push(service);
|
|
445
434
|
}
|
|
@@ -451,7 +440,7 @@ class Service extends events_1.EventEmitter {
|
|
|
451
440
|
* @param service - Previously linked service
|
|
452
441
|
*/
|
|
453
442
|
removeLinkedService(service) {
|
|
454
|
-
//TODO: Add a check if the service is on the same accessory.
|
|
443
|
+
// TODO: Add a check if the service is on the same accessory.
|
|
455
444
|
const index = this.linkedServices.indexOf(service);
|
|
456
445
|
if (index !== -1) {
|
|
457
446
|
this.linkedServices.splice(index, 1);
|
|
@@ -471,17 +460,17 @@ class Service extends events_1.EventEmitter {
|
|
|
471
460
|
// If Service.prototype.getCharacteristic(Characteristic.Type) does not find the characteristic,
|
|
472
461
|
// but the type is in optionalCharacteristics, it adds the characteristic.type to the service and returns it.
|
|
473
462
|
for (const characteristic of this.characteristics) {
|
|
474
|
-
if (typeof name ===
|
|
463
|
+
if (typeof name === 'string' && characteristic.displayName === name) {
|
|
475
464
|
return characteristic;
|
|
476
465
|
}
|
|
477
466
|
else {
|
|
478
467
|
// @ts-expect-error ('UUID' does not exist on type 'never')
|
|
479
|
-
if (typeof name ===
|
|
468
|
+
if (typeof name === 'function' && ((characteristic instanceof name) || (name.UUID === characteristic.UUID))) {
|
|
480
469
|
return characteristic;
|
|
481
470
|
}
|
|
482
471
|
}
|
|
483
472
|
}
|
|
484
|
-
if (typeof name ===
|
|
473
|
+
if (typeof name === 'function') {
|
|
485
474
|
for (const characteristic of this.optionalCharacteristics) {
|
|
486
475
|
// @ts-expect-error ('UUID' does not exist on type 'never')
|
|
487
476
|
if ((characteristic instanceof name) || (name.UUID === characteristic.UUID)) {
|
|
@@ -490,8 +479,8 @@ class Service extends events_1.EventEmitter {
|
|
|
490
479
|
}
|
|
491
480
|
const instance = this.addCharacteristic(name);
|
|
492
481
|
// Not found in optional Characteristics. Adding anyway, but warning about it if it isn't the Name.
|
|
493
|
-
if (name.UUID !==
|
|
494
|
-
this.emitCharacteristicWarningEvent(instance, "warn-message" /* CharacteristicWarningType.WARN_MESSAGE */,
|
|
482
|
+
if (name.UUID !== Characteristic.Name.UUID) {
|
|
483
|
+
this.emitCharacteristicWarningEvent(instance, "warn-message" /* CharacteristicWarningType.WARN_MESSAGE */, `Characteristic not in required or optional characteristic section for service ${this.constructor.name}. Adding anyway.`);
|
|
495
484
|
}
|
|
496
485
|
return instance;
|
|
497
486
|
}
|
|
@@ -499,12 +488,12 @@ class Service extends events_1.EventEmitter {
|
|
|
499
488
|
testCharacteristic(name) {
|
|
500
489
|
// checks for the existence of a characteristic object in the service
|
|
501
490
|
for (const characteristic of this.characteristics) {
|
|
502
|
-
if (typeof name ===
|
|
491
|
+
if (typeof name === 'string' && characteristic.displayName === name) {
|
|
503
492
|
return true;
|
|
504
493
|
}
|
|
505
494
|
else {
|
|
506
495
|
// @ts-expect-error ('UUID' does not exist on type 'never')
|
|
507
|
-
if (typeof name ===
|
|
496
|
+
if (typeof name === 'function' && ((characteristic instanceof name) || (name.UUID === characteristic.UUID))) {
|
|
508
497
|
return true;
|
|
509
498
|
}
|
|
510
499
|
}
|
|
@@ -523,12 +512,11 @@ class Service extends events_1.EventEmitter {
|
|
|
523
512
|
addOptionalCharacteristic(characteristic) {
|
|
524
513
|
// characteristic might be a constructor like `Characteristic.Brightness` instead of an instance
|
|
525
514
|
// of Characteristic. Coerce if necessary.
|
|
526
|
-
if (typeof characteristic ===
|
|
527
|
-
characteristic = new characteristic();
|
|
515
|
+
if (typeof characteristic === 'function') {
|
|
516
|
+
characteristic = new characteristic(); // eslint-disable-line new-cap
|
|
528
517
|
}
|
|
529
518
|
this.optionalCharacteristics.push(characteristic);
|
|
530
519
|
}
|
|
531
|
-
// noinspection JSUnusedGlobalSymbols
|
|
532
520
|
/**
|
|
533
521
|
* This method was created to copy all characteristics from another service to this.
|
|
534
522
|
* It's only adopting is currently in homebridge to merge the AccessoryInformation service. So some things
|
|
@@ -537,7 +525,7 @@ class Service extends events_1.EventEmitter {
|
|
|
537
525
|
* It will not remove characteristics which are present currently but not added on the other characteristic.
|
|
538
526
|
* It will not replace the characteristic if the value is falsy (except of '0' or 'false')
|
|
539
527
|
* @param service
|
|
540
|
-
* @private
|
|
528
|
+
* @private
|
|
541
529
|
*/
|
|
542
530
|
replaceCharacteristicsFromService(service) {
|
|
543
531
|
if (this.UUID !== service.UUID) {
|
|
@@ -545,7 +533,7 @@ class Service extends events_1.EventEmitter {
|
|
|
545
533
|
}
|
|
546
534
|
const foreignCharacteristics = {}; // index foreign characteristics by UUID
|
|
547
535
|
service.characteristics.forEach(characteristic => foreignCharacteristics[characteristic.UUID] = characteristic);
|
|
548
|
-
this.characteristics.forEach(characteristic => {
|
|
536
|
+
this.characteristics.forEach((characteristic) => {
|
|
549
537
|
const foreignCharacteristic = foreignCharacteristics[characteristic.UUID];
|
|
550
538
|
if (foreignCharacteristic) {
|
|
551
539
|
delete foreignCharacteristics[characteristic.UUID];
|
|
@@ -573,7 +561,7 @@ class Service extends events_1.EventEmitter {
|
|
|
573
561
|
*/
|
|
574
562
|
_assignIDs(identifierCache, accessoryName, baseIID = 0) {
|
|
575
563
|
// the Accessory Information service must have a (reserved by IdentifierCache) ID of 1
|
|
576
|
-
if (this.UUID ===
|
|
564
|
+
if (this.UUID === '0000003E-0000-1000-8000-0026BB765291') {
|
|
577
565
|
this.iid = 1;
|
|
578
566
|
}
|
|
579
567
|
else {
|
|
@@ -587,14 +575,14 @@ class Service extends events_1.EventEmitter {
|
|
|
587
575
|
}
|
|
588
576
|
/**
|
|
589
577
|
* Returns a JSON representation of this service suitable for delivering to HAP clients.
|
|
590
|
-
* @private
|
|
578
|
+
* @private
|
|
591
579
|
*/
|
|
592
580
|
toHAP(connection, contactGetHandlers = true) {
|
|
593
|
-
return new Promise(resolve => {
|
|
594
|
-
(
|
|
595
|
-
(
|
|
581
|
+
return new Promise((resolve) => {
|
|
582
|
+
assert(this.iid, `iid cannot be undefined for service '${this.displayName}'`);
|
|
583
|
+
assert(this.characteristics.length, `service '${this.displayName}' does not have any characteristics!`);
|
|
596
584
|
const service = {
|
|
597
|
-
type:
|
|
585
|
+
type: toShortForm(this.UUID),
|
|
598
586
|
iid: this.iid,
|
|
599
587
|
characteristics: [],
|
|
600
588
|
hidden: this.isHiddenService ? true : undefined,
|
|
@@ -623,8 +611,7 @@ class Service extends events_1.EventEmitter {
|
|
|
623
611
|
timeout = setTimeout(() => {
|
|
624
612
|
timeout = undefined;
|
|
625
613
|
for (const characteristic of missingCharacteristics) {
|
|
626
|
-
this.emitCharacteristicWarningEvent(characteristic, "timeout-read" /* CharacteristicWarningType.TIMEOUT_READ */,
|
|
627
|
-
"' didn't respond at all!. Please check that you properly call the callback!");
|
|
614
|
+
this.emitCharacteristicWarningEvent(characteristic, "timeout-read" /* CharacteristicWarningType.TIMEOUT_READ */, `The read handler for the characteristic '${characteristic?.displayName}' didn't respond at all!. Please check that you properly call the callback!`);
|
|
628
615
|
service.characteristics.push(characteristic.internalHAPRepresentation()); // value is set to null
|
|
629
616
|
}
|
|
630
617
|
missingCharacteristics.clear();
|
|
@@ -633,7 +620,7 @@ class Service extends events_1.EventEmitter {
|
|
|
633
620
|
}, 3000);
|
|
634
621
|
for (const characteristic of this.characteristics) {
|
|
635
622
|
missingCharacteristics.add(characteristic);
|
|
636
|
-
characteristic.toHAP(connection, contactGetHandlers).then(value => {
|
|
623
|
+
characteristic.toHAP(connection, contactGetHandlers).then((value) => {
|
|
637
624
|
if (!timeout) {
|
|
638
625
|
return; // if timeout is undefined, response was already sent out
|
|
639
626
|
}
|
|
@@ -652,13 +639,13 @@ class Service extends events_1.EventEmitter {
|
|
|
652
639
|
}
|
|
653
640
|
/**
|
|
654
641
|
* Returns a JSON representation of this service without characteristic values.
|
|
655
|
-
* @private
|
|
642
|
+
* @private
|
|
656
643
|
*/
|
|
657
644
|
internalHAPRepresentation() {
|
|
658
|
-
(
|
|
659
|
-
(
|
|
645
|
+
assert(this.iid, `iid cannot be undefined for service '${this.displayName}'`);
|
|
646
|
+
assert(this.characteristics.length, `service '${this.displayName}' does not have any characteristics!`);
|
|
660
647
|
const service = {
|
|
661
|
-
type:
|
|
648
|
+
type: toShortForm(this.UUID),
|
|
662
649
|
iid: this.iid,
|
|
663
650
|
characteristics: this.characteristics.map(characteristic => characteristic.internalHAPRepresentation()),
|
|
664
651
|
hidden: this.isHiddenService ? true : undefined,
|
|
@@ -687,7 +674,7 @@ class Service extends events_1.EventEmitter {
|
|
|
687
674
|
setupCharacteristicEventHandlers(characteristic) {
|
|
688
675
|
// listen for changes in characteristics and bubble them up
|
|
689
676
|
characteristic.on("change" /* CharacteristicEventTypes.CHANGE */, (change) => {
|
|
690
|
-
this.emit("characteristic-change" /* ServiceEventTypes.CHARACTERISTIC_CHANGE */, { ...change, characteristic
|
|
677
|
+
this.emit("characteristic-change" /* ServiceEventTypes.CHARACTERISTIC_CHANGE */, { ...change, characteristic });
|
|
691
678
|
});
|
|
692
679
|
characteristic.on("characteristic-warning" /* CharacteristicEventTypes.CHARACTERISTIC_WARNING */, this.emitCharacteristicWarningEvent.bind(this, characteristic));
|
|
693
680
|
}
|
|
@@ -696,11 +683,11 @@ class Service extends events_1.EventEmitter {
|
|
|
696
683
|
*/
|
|
697
684
|
emitCharacteristicWarningEvent(characteristic, type, message, stack) {
|
|
698
685
|
this.emit("characteristic-warning" /* ServiceEventTypes.CHARACTERISTIC_WARNING */, {
|
|
699
|
-
characteristic
|
|
700
|
-
type
|
|
701
|
-
message
|
|
686
|
+
characteristic,
|
|
687
|
+
type,
|
|
688
|
+
message,
|
|
702
689
|
originatorChain: [this.displayName, characteristic.displayName],
|
|
703
|
-
stack
|
|
690
|
+
stack,
|
|
704
691
|
});
|
|
705
692
|
}
|
|
706
693
|
/**
|
|
@@ -717,18 +704,18 @@ class Service extends events_1.EventEmitter {
|
|
|
717
704
|
*/
|
|
718
705
|
static serialize(service) {
|
|
719
706
|
let constructorName;
|
|
720
|
-
if (service.constructor.name !==
|
|
707
|
+
if (service.constructor.name !== 'Service') {
|
|
721
708
|
constructorName = service.constructor.name;
|
|
722
709
|
}
|
|
723
710
|
return {
|
|
724
711
|
displayName: service.displayName,
|
|
725
712
|
UUID: service.UUID,
|
|
726
713
|
subtype: service.subtype,
|
|
727
|
-
constructorName
|
|
714
|
+
constructorName,
|
|
728
715
|
hiddenService: service.isHiddenService,
|
|
729
716
|
primaryService: service.isPrimaryService,
|
|
730
|
-
characteristics: service.characteristics.map(characteristic =>
|
|
731
|
-
optionalCharacteristics: service.optionalCharacteristics.map(characteristic =>
|
|
717
|
+
characteristics: service.characteristics.map(characteristic => Characteristic.serialize(characteristic)),
|
|
718
|
+
optionalCharacteristics: service.optionalCharacteristics.map(characteristic => Characteristic.serialize(characteristic)),
|
|
732
719
|
};
|
|
733
720
|
}
|
|
734
721
|
/**
|
|
@@ -746,17 +733,18 @@ class Service extends events_1.EventEmitter {
|
|
|
746
733
|
}
|
|
747
734
|
service.isHiddenService = !!json.hiddenService;
|
|
748
735
|
service.isPrimaryService = !!json.primaryService;
|
|
749
|
-
const characteristics = json.characteristics.map(serialized =>
|
|
736
|
+
const characteristics = json.characteristics.map(serialized => Characteristic.deserialize(serialized));
|
|
750
737
|
service._sideloadCharacteristics(characteristics);
|
|
751
738
|
if (json.optionalCharacteristics) {
|
|
752
|
-
service.optionalCharacteristics = json.optionalCharacteristics.map(serialized =>
|
|
739
|
+
service.optionalCharacteristics = json.optionalCharacteristics.map(serialized => Characteristic.deserialize(serialized));
|
|
753
740
|
}
|
|
754
741
|
return service;
|
|
755
742
|
}
|
|
756
743
|
}
|
|
757
|
-
exports.Service = Service;
|
|
758
744
|
// We have a cyclic dependency problem. Within this file we have the definitions of "./definitions" as
|
|
759
745
|
// type imports only (in order to define the static properties). Setting those properties is done outside
|
|
760
746
|
// this file, within the definition files. Therefore, we import it at the end of this file. Seems weird, but is important.
|
|
761
|
-
|
|
747
|
+
(async () => {
|
|
748
|
+
await import('./definitions/ServiceDefinitions.js');
|
|
749
|
+
})();
|
|
762
750
|
//# sourceMappingURL=Service.js.map
|
package/dist/lib/Service.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Service.js","sourceRoot":"","sources":["../../src/lib/Service.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"Service.js","sourceRoot":"","sources":["../../src/lib/Service.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"RTPProxy.d.ts","sourceRoot":"","sources":["../../../src/lib/camera/RTPProxy.ts"],"names":[],"mappings":"AAAA,
|
|
1
|
+
{"version":3,"file":"RTPProxy.d.ts","sourceRoot":"","sources":["../../../src/lib/camera/RTPProxy.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,MAAM,EAAE,UAAU,EAAE,MAAM,YAAY,CAAA;AAEpD,OAAO,EAAE,MAAM,EAAE,MAAM,aAAa,CAAA;AAGpC;;GAEG;AACH,MAAM,WAAW,eAAe;IAC9B,QAAQ,EAAE,OAAO,CAAA;IACjB,MAAM,CAAC,EAAE,OAAO,CAAA;IAChB,eAAe,EAAE,MAAM,CAAA;IACvB,YAAY,EAAE,MAAM,CAAA;IACpB,YAAY,EAAE,MAAM,CAAA;CACrB;AAED;;;;;;;;GAQG;AACH,MAAM,CAAC,OAAO,OAAO,QAAQ;IAkBR,OAAO,EAAE,eAAe;IAjB3C,YAAY,SAAQ;IACpB,IAAI,EAAE,UAAU,CAAA;IAChB,eAAe,EAAE,MAAM,CAAA;IACvB,YAAY,EAAE,MAAM,CAAA;IACpB,mBAAmB,EAAE,MAAM,CAAA;IAC3B,YAAY,EAAE,MAAM,CAAA;IACpB,YAAY,EAAE,MAAM,GAAG,IAAI,CAAA;IAC3B,mBAAmB,EAAE,MAAM,GAAG,IAAI,CAAA;IAClC,QAAQ,EAAE,OAAO,CAAA;IAEjB,iBAAiB,EAAG,MAAM,CAAA;IAC1B,kBAAkB,EAAG,MAAM,CAAA;IAC3B,cAAc,EAAG,MAAM,CAAA;IACvB,aAAa,CAAC,EAAE,MAAM,CAAA;IACtB,aAAa,CAAC,EAAE,MAAM,CAAA;IACtB,cAAc,CAAC,EAAE,MAAM,CAAA;gBAEJ,OAAO,EAAE,eAAe;IAcrC,KAAK,IAAI,OAAO,CAAC,IAAI,CAAC;IAQ5B,OAAO,IAAI,IAAI;IAcf,eAAe,IAAI,MAAM;IAKzB,gBAAgB,IAAI,MAAM;IAK1B,iBAAiB,IAAI,MAAM;IAK3B,gBAAgB,CAAC,OAAO,EAAE,MAAM,GAAG,IAAI;IAIvC,gBAAgB,CAAC,IAAI,EAAE,MAAM,GAAG,IAAI;IAIpC,iBAAiB,CAAC,IAAI,EAAE,MAAM,GAAG,IAAI;IAIrC,sBAAsB,CAAC,EAAE,EAAE,MAAM,GAAG,IAAI;IAIxC,sBAAsB,CAAC,EAAE,EAAE,MAAM,GAAG,IAAI;IAIxC,OAAO,CAAC,GAAG,EAAE,MAAM,GAAG,IAAI;IAS1B,QAAQ,CAAC,GAAG,EAAE,MAAM,GAAG,IAAI;IAS3B,OAAO,IAAI,IAAI;IAkBf,UAAU,CAAC,GAAG,EAAE,MAAM,GAAG,IAAI;IAsB7B,kBAAkB,CAAC,GAAG,EAAE,MAAM,EAAE,SAAS,EAAE,CAAC,EAAE,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,KAAK,MAAM,GAAG,MAAM,GAAG,IAAI;IA2BjG,WAAW,CAAC,GAAG,EAAE,MAAM,GAAG,IAAI;IAkB9B,SAAS,CAAC,GAAG,EAAE,MAAM,GAAG,IAAI;IAgB5B,YAAY,CAAC,IAAI,EAAE,UAAU,GAAG,OAAO,CAAC,MAAM,CAAC;IA6B/C,gBAAgB,CAAC,IAAI,EAAE,UAAU,GAAG,OAAO,CAAC,MAAM,EAAE,CAAC;CAwDtD"}
|
|
@@ -1,7 +1,5 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
3
|
-
const tslib_1 = require("tslib");
|
|
4
|
-
const dgram_1 = tslib_1.__importDefault(require("dgram"));
|
|
1
|
+
import { Buffer } from 'node:buffer';
|
|
2
|
+
import { createSocket } from 'node:dgram';
|
|
5
3
|
/**
|
|
6
4
|
* RTPProxy to proxy unencrypted RTP and RTCP
|
|
7
5
|
*
|
|
@@ -11,7 +9,7 @@ const dgram_1 = tslib_1.__importDefault(require("dgram"));
|
|
|
11
9
|
* with a custom HAP controller.
|
|
12
10
|
* @group Camera
|
|
13
11
|
*/
|
|
14
|
-
class RTPProxy {
|
|
12
|
+
export default class RTPProxy {
|
|
15
13
|
options;
|
|
16
14
|
startingPort = 10000;
|
|
17
15
|
type;
|
|
@@ -30,7 +28,7 @@ class RTPProxy {
|
|
|
30
28
|
serverRTCPPort;
|
|
31
29
|
constructor(options) {
|
|
32
30
|
this.options = options;
|
|
33
|
-
this.type = options.isIPV6 ?
|
|
31
|
+
this.type = options.isIPV6 ? 'udp6' : 'udp4';
|
|
34
32
|
this.startingPort = 10000;
|
|
35
33
|
this.outgoingAddress = options.outgoingAddress;
|
|
36
34
|
this.outgoingPort = options.outgoingPort;
|
|
@@ -40,16 +38,12 @@ class RTPProxy {
|
|
|
40
38
|
this.incomingSSRC = null;
|
|
41
39
|
this.outgoingPayloadType = null;
|
|
42
40
|
}
|
|
43
|
-
setup() {
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
|
|
48
|
-
|
|
49
|
-
}).then((socket) => {
|
|
50
|
-
this.outgoingSocket = socket;
|
|
51
|
-
this.onBound();
|
|
52
|
-
});
|
|
41
|
+
async setup() {
|
|
42
|
+
const sockets = await this.createSocketPair(this.type);
|
|
43
|
+
this.incomingRTPSocket = sockets[0];
|
|
44
|
+
this.incomingRTCPSocket = sockets[1];
|
|
45
|
+
this.outgoingSocket = await this.createSocket(this.type);
|
|
46
|
+
this.onBound();
|
|
53
47
|
}
|
|
54
48
|
destroy() {
|
|
55
49
|
if (this.incomingRTPSocket) {
|
|
@@ -64,24 +58,15 @@ class RTPProxy {
|
|
|
64
58
|
}
|
|
65
59
|
incomingRTPPort() {
|
|
66
60
|
const address = this.incomingRTPSocket.address();
|
|
67
|
-
|
|
68
|
-
return address.port;
|
|
69
|
-
}
|
|
70
|
-
throw new Error("Unsupported socket!");
|
|
61
|
+
return address.port;
|
|
71
62
|
}
|
|
72
63
|
incomingRTCPPort() {
|
|
73
64
|
const address = this.incomingRTCPSocket.address();
|
|
74
|
-
|
|
75
|
-
return address.port;
|
|
76
|
-
}
|
|
77
|
-
throw new Error("Unsupported socket!");
|
|
65
|
+
return address.port;
|
|
78
66
|
}
|
|
79
67
|
outgoingLocalPort() {
|
|
80
68
|
const address = this.outgoingSocket.address();
|
|
81
|
-
|
|
82
|
-
return address.port;
|
|
83
|
-
}
|
|
84
|
-
throw new Error("Unsupported socket!");
|
|
69
|
+
return address.port;
|
|
85
70
|
}
|
|
86
71
|
setServerAddress(address) {
|
|
87
72
|
this.serverAddress = address;
|
|
@@ -116,13 +101,13 @@ class RTPProxy {
|
|
|
116
101
|
if (this.disabled) {
|
|
117
102
|
return;
|
|
118
103
|
}
|
|
119
|
-
this.incomingRTPSocket.on(
|
|
104
|
+
this.incomingRTPSocket.on('message', (msg) => {
|
|
120
105
|
this.rtpMessage(msg);
|
|
121
106
|
});
|
|
122
|
-
this.incomingRTCPSocket.on(
|
|
107
|
+
this.incomingRTCPSocket.on('message', (msg) => {
|
|
123
108
|
this.rtcpMessage(msg);
|
|
124
109
|
});
|
|
125
|
-
this.outgoingSocket.on(
|
|
110
|
+
this.outgoingSocket.on('message', (msg) => {
|
|
126
111
|
this.rtcpReply(msg);
|
|
127
112
|
});
|
|
128
113
|
}
|
|
@@ -153,7 +138,7 @@ class RTPProxy {
|
|
|
153
138
|
if ((offset + 4 + len) > msg.length) {
|
|
154
139
|
break;
|
|
155
140
|
}
|
|
156
|
-
let packet = msg.
|
|
141
|
+
let packet = msg.subarray(offset, offset + 4 + len);
|
|
157
142
|
packet = transform(pt, packet);
|
|
158
143
|
if (packet) {
|
|
159
144
|
rtcpPackets.push(packet);
|
|
@@ -194,9 +179,9 @@ class RTPProxy {
|
|
|
194
179
|
}
|
|
195
180
|
}
|
|
196
181
|
createSocket(type) {
|
|
197
|
-
return new Promise(resolve => {
|
|
182
|
+
return new Promise((resolve) => {
|
|
198
183
|
const retry = () => {
|
|
199
|
-
const socket =
|
|
184
|
+
const socket = createSocket(type);
|
|
200
185
|
const bindErrorHandler = () => {
|
|
201
186
|
if (this.startingPort === 65535) {
|
|
202
187
|
this.startingPort = 10000;
|
|
@@ -207,8 +192,8 @@ class RTPProxy {
|
|
|
207
192
|
socket.close();
|
|
208
193
|
retry();
|
|
209
194
|
};
|
|
210
|
-
socket.once(
|
|
211
|
-
socket.on(
|
|
195
|
+
socket.once('error', bindErrorHandler);
|
|
196
|
+
socket.on('listening', () => {
|
|
212
197
|
resolve(socket);
|
|
213
198
|
});
|
|
214
199
|
socket.bind(this.startingPort);
|
|
@@ -217,10 +202,10 @@ class RTPProxy {
|
|
|
217
202
|
});
|
|
218
203
|
}
|
|
219
204
|
createSocketPair(type) {
|
|
220
|
-
return new Promise(resolve => {
|
|
205
|
+
return new Promise((resolve) => {
|
|
221
206
|
const retry = () => {
|
|
222
|
-
const socket1 =
|
|
223
|
-
const socket2 =
|
|
207
|
+
const socket1 = createSocket(type);
|
|
208
|
+
const socket2 = createSocket(type);
|
|
224
209
|
const state = { socket1: 0, socket2: 0 };
|
|
225
210
|
const recheck = () => {
|
|
226
211
|
if (state.socket1 === 0 || state.socket2 === 0) {
|
|
@@ -240,19 +225,19 @@ class RTPProxy {
|
|
|
240
225
|
socket2.close();
|
|
241
226
|
retry();
|
|
242
227
|
};
|
|
243
|
-
socket1.once(
|
|
228
|
+
socket1.once('error', () => {
|
|
244
229
|
state.socket1 = 1;
|
|
245
230
|
recheck();
|
|
246
231
|
});
|
|
247
|
-
socket2.once(
|
|
232
|
+
socket2.once('error', () => {
|
|
248
233
|
state.socket2 = 1;
|
|
249
234
|
recheck();
|
|
250
235
|
});
|
|
251
|
-
socket1.once(
|
|
236
|
+
socket1.once('listening', () => {
|
|
252
237
|
state.socket1 = 2;
|
|
253
238
|
recheck();
|
|
254
239
|
});
|
|
255
|
-
socket2.once(
|
|
240
|
+
socket2.once('listening', () => {
|
|
256
241
|
state.socket2 = 2;
|
|
257
242
|
recheck();
|
|
258
243
|
});
|
|
@@ -263,5 +248,4 @@ class RTPProxy {
|
|
|
263
248
|
});
|
|
264
249
|
}
|
|
265
250
|
}
|
|
266
|
-
exports.default = RTPProxy;
|
|
267
251
|
//# sourceMappingURL=RTPProxy.js.map
|