@homebridge-eufy-security/eufy-security-client 3.7.2-dev.0
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/.prettierignore/342/200/216 +8 -0
- package/.prettierrc +11 -0
- package/LICENSE +21 -0
- package/README.md +970 -0
- package/build/error.d.ts +138 -0
- package/build/error.js +190 -0
- package/build/error.js.map +1 -0
- package/build/eufysecurity.d.ts +180 -0
- package/build/eufysecurity.js +3148 -0
- package/build/eufysecurity.js.map +1 -0
- package/build/http/api.d.ts +119 -0
- package/build/http/api.js +1877 -0
- package/build/http/api.js.map +1 -0
- package/build/http/cache.d.ts +8 -0
- package/build/http/cache.js +34 -0
- package/build/http/cache.js.map +1 -0
- package/build/http/const.d.ts +8 -0
- package/build/http/const.js +3054 -0
- package/build/http/const.js.map +1 -0
- package/build/http/device.d.ts +490 -0
- package/build/http/device.js +5256 -0
- package/build/http/device.js.map +1 -0
- package/build/http/error.d.ts +73 -0
- package/build/http/error.js +101 -0
- package/build/http/error.js.map +1 -0
- package/build/http/index.d.ts +10 -0
- package/build/http/index.js +30 -0
- package/build/http/index.js.map +1 -0
- package/build/http/interfaces.d.ts +248 -0
- package/build/http/interfaces.js +3 -0
- package/build/http/interfaces.js.map +1 -0
- package/build/http/models.d.ts +608 -0
- package/build/http/models.js +3 -0
- package/build/http/models.js.map +1 -0
- package/build/http/parameter.d.ts +7 -0
- package/build/http/parameter.js +119 -0
- package/build/http/parameter.js.map +1 -0
- package/build/http/station.d.ts +382 -0
- package/build/http/station.js +15735 -0
- package/build/http/station.js.map +1 -0
- package/build/http/types.d.ts +1358 -0
- package/build/http/types.js +10333 -0
- package/build/http/types.js.map +1 -0
- package/build/http/utils.d.ts +89 -0
- package/build/http/utils.js +916 -0
- package/build/http/utils.js.map +1 -0
- package/build/index.d.ts +8 -0
- package/build/index.js +29 -0
- package/build/index.js.map +1 -0
- package/build/interfaces.d.ts +147 -0
- package/build/interfaces.js +7 -0
- package/build/interfaces.js.map +1 -0
- package/build/logging.d.ts +36 -0
- package/build/logging.js +119 -0
- package/build/logging.js.map +1 -0
- package/build/mqtt/interface.d.ts +6 -0
- package/build/mqtt/interface.js +3 -0
- package/build/mqtt/interface.js.map +1 -0
- package/build/mqtt/model.d.ts +24 -0
- package/build/mqtt/model.js +3 -0
- package/build/mqtt/model.js.map +1 -0
- package/build/mqtt/mqtt-eufy.crt +79 -0
- package/build/mqtt/proto/lock.proto +33 -0
- package/build/mqtt/service.d.ts +28 -0
- package/build/mqtt/service.js +196 -0
- package/build/mqtt/service.js.map +1 -0
- package/build/p2p/ble.d.ts +59 -0
- package/build/p2p/ble.js +281 -0
- package/build/p2p/ble.js.map +1 -0
- package/build/p2p/error.d.ts +49 -0
- package/build/p2p/error.js +69 -0
- package/build/p2p/error.js.map +1 -0
- package/build/p2p/index.d.ts +8 -0
- package/build/p2p/index.js +28 -0
- package/build/p2p/index.js.map +1 -0
- package/build/p2p/interfaces.d.ts +423 -0
- package/build/p2p/interfaces.js +3 -0
- package/build/p2p/interfaces.js.map +1 -0
- package/build/p2p/models.d.ts +295 -0
- package/build/p2p/models.js +3 -0
- package/build/p2p/models.js.map +1 -0
- package/build/p2p/session.d.ts +186 -0
- package/build/p2p/session.js +3737 -0
- package/build/p2p/session.js.map +1 -0
- package/build/p2p/talkback.d.ts +8 -0
- package/build/p2p/talkback.js +23 -0
- package/build/p2p/talkback.js.map +1 -0
- package/build/p2p/types.d.ts +1164 -0
- package/build/p2p/types.js +1219 -0
- package/build/p2p/types.js.map +1 -0
- package/build/p2p/utils.d.ts +72 -0
- package/build/p2p/utils.js +865 -0
- package/build/p2p/utils.js.map +1 -0
- package/build/push/client.d.ts +49 -0
- package/build/push/client.js +344 -0
- package/build/push/client.js.map +1 -0
- package/build/push/error.d.ts +73 -0
- package/build/push/error.js +101 -0
- package/build/push/error.js.map +1 -0
- package/build/push/index.d.ts +6 -0
- package/build/push/index.js +26 -0
- package/build/push/index.js.map +1 -0
- package/build/push/interfaces.d.ts +19 -0
- package/build/push/interfaces.js +3 -0
- package/build/push/interfaces.js.map +1 -0
- package/build/push/models.d.ts +328 -0
- package/build/push/models.js +38 -0
- package/build/push/models.js.map +1 -0
- package/build/push/parser.d.ts +25 -0
- package/build/push/parser.js +231 -0
- package/build/push/parser.js.map +1 -0
- package/build/push/proto/checkin.proto +266 -0
- package/build/push/proto/mcs.proto +328 -0
- package/build/push/service.d.ts +46 -0
- package/build/push/service.js +965 -0
- package/build/push/service.js.map +1 -0
- package/build/push/types.d.ts +220 -0
- package/build/push/types.js +244 -0
- package/build/push/types.js.map +1 -0
- package/build/push/utils.d.ts +7 -0
- package/build/push/utils.js +116 -0
- package/build/push/utils.js.map +1 -0
- package/build/utils.d.ts +115 -0
- package/build/utils.js +438 -0
- package/build/utils.js.map +1 -0
- package/eslint.config.mts +68 -0
- package/jest.config.js +14 -0
- package/package.json +85 -0
- package/scripts/cut_release.sh +31 -0
|
@@ -0,0 +1,69 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.BleInvalidChecksumError = exports.BleInvalidDataHeaderError = exports.BleAdditionalDataSeparatorError = exports.BleAdditionalDataError = exports.BleDataError = exports.BleDataTypeError = exports.BleCommandCodeError = exports.BleVersionCodeError = void 0;
|
|
4
|
+
const error_1 = require("../error");
|
|
5
|
+
class BleVersionCodeError extends error_1.BaseError {
|
|
6
|
+
constructor(message, options = {}) {
|
|
7
|
+
super(message, options);
|
|
8
|
+
Object.setPrototypeOf(this, new.target.prototype);
|
|
9
|
+
this.name = BleVersionCodeError.name;
|
|
10
|
+
}
|
|
11
|
+
}
|
|
12
|
+
exports.BleVersionCodeError = BleVersionCodeError;
|
|
13
|
+
class BleCommandCodeError extends error_1.BaseError {
|
|
14
|
+
constructor(message, options = {}) {
|
|
15
|
+
super(message, options);
|
|
16
|
+
Object.setPrototypeOf(this, new.target.prototype);
|
|
17
|
+
this.name = BleCommandCodeError.name;
|
|
18
|
+
}
|
|
19
|
+
}
|
|
20
|
+
exports.BleCommandCodeError = BleCommandCodeError;
|
|
21
|
+
class BleDataTypeError extends error_1.BaseError {
|
|
22
|
+
constructor(message, options = {}) {
|
|
23
|
+
super(message, options);
|
|
24
|
+
Object.setPrototypeOf(this, new.target.prototype);
|
|
25
|
+
this.name = BleDataTypeError.name;
|
|
26
|
+
}
|
|
27
|
+
}
|
|
28
|
+
exports.BleDataTypeError = BleDataTypeError;
|
|
29
|
+
class BleDataError extends error_1.BaseError {
|
|
30
|
+
constructor(message, options = {}) {
|
|
31
|
+
super(message, options);
|
|
32
|
+
Object.setPrototypeOf(this, new.target.prototype);
|
|
33
|
+
this.name = BleDataError.name;
|
|
34
|
+
}
|
|
35
|
+
}
|
|
36
|
+
exports.BleDataError = BleDataError;
|
|
37
|
+
class BleAdditionalDataError extends error_1.BaseError {
|
|
38
|
+
constructor(message, options = {}) {
|
|
39
|
+
super(message, options);
|
|
40
|
+
Object.setPrototypeOf(this, new.target.prototype);
|
|
41
|
+
this.name = BleAdditionalDataError.name;
|
|
42
|
+
}
|
|
43
|
+
}
|
|
44
|
+
exports.BleAdditionalDataError = BleAdditionalDataError;
|
|
45
|
+
class BleAdditionalDataSeparatorError extends error_1.BaseError {
|
|
46
|
+
constructor(message, options = {}) {
|
|
47
|
+
super(message, options);
|
|
48
|
+
Object.setPrototypeOf(this, new.target.prototype);
|
|
49
|
+
this.name = BleAdditionalDataSeparatorError.name;
|
|
50
|
+
}
|
|
51
|
+
}
|
|
52
|
+
exports.BleAdditionalDataSeparatorError = BleAdditionalDataSeparatorError;
|
|
53
|
+
class BleInvalidDataHeaderError extends error_1.BaseError {
|
|
54
|
+
constructor(message, options = {}) {
|
|
55
|
+
super(message, options);
|
|
56
|
+
Object.setPrototypeOf(this, new.target.prototype);
|
|
57
|
+
this.name = BleInvalidDataHeaderError.name;
|
|
58
|
+
}
|
|
59
|
+
}
|
|
60
|
+
exports.BleInvalidDataHeaderError = BleInvalidDataHeaderError;
|
|
61
|
+
class BleInvalidChecksumError extends error_1.BaseError {
|
|
62
|
+
constructor(message, options = {}) {
|
|
63
|
+
super(message, options);
|
|
64
|
+
Object.setPrototypeOf(this, new.target.prototype);
|
|
65
|
+
this.name = BleInvalidChecksumError.name;
|
|
66
|
+
}
|
|
67
|
+
}
|
|
68
|
+
exports.BleInvalidChecksumError = BleInvalidChecksumError;
|
|
69
|
+
//# sourceMappingURL=error.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"error.js","sourceRoot":"","sources":["../../src/p2p/error.ts"],"names":[],"mappings":";;;AAAA,oCAA+C;AAC/C,MAAa,mBAAoB,SAAQ,iBAAS;IAChD,YAAY,OAAe,EAAE,UAAiD,EAAE;QAC9E,KAAK,CAAC,OAAO,EAAE,OAAO,CAAC,CAAC;QACxB,MAAM,CAAC,cAAc,CAAC,IAAI,EAAE,GAAG,CAAC,MAAM,CAAC,SAAS,CAAC,CAAC;QAClD,IAAI,CAAC,IAAI,GAAG,mBAAmB,CAAC,IAAI,CAAC;IACvC,CAAC;CACF;AAND,kDAMC;AAED,MAAa,mBAAoB,SAAQ,iBAAS;IAChD,YAAY,OAAe,EAAE,UAAiD,EAAE;QAC9E,KAAK,CAAC,OAAO,EAAE,OAAO,CAAC,CAAC;QACxB,MAAM,CAAC,cAAc,CAAC,IAAI,EAAE,GAAG,CAAC,MAAM,CAAC,SAAS,CAAC,CAAC;QAClD,IAAI,CAAC,IAAI,GAAG,mBAAmB,CAAC,IAAI,CAAC;IACvC,CAAC;CACF;AAND,kDAMC;AAED,MAAa,gBAAiB,SAAQ,iBAAS;IAC7C,YAAY,OAAe,EAAE,UAAiD,EAAE;QAC9E,KAAK,CAAC,OAAO,EAAE,OAAO,CAAC,CAAC;QACxB,MAAM,CAAC,cAAc,CAAC,IAAI,EAAE,GAAG,CAAC,MAAM,CAAC,SAAS,CAAC,CAAC;QAClD,IAAI,CAAC,IAAI,GAAG,gBAAgB,CAAC,IAAI,CAAC;IACpC,CAAC;CACF;AAND,4CAMC;AAED,MAAa,YAAa,SAAQ,iBAAS;IACzC,YAAY,OAAe,EAAE,UAAiD,EAAE;QAC9E,KAAK,CAAC,OAAO,EAAE,OAAO,CAAC,CAAC;QACxB,MAAM,CAAC,cAAc,CAAC,IAAI,EAAE,GAAG,CAAC,MAAM,CAAC,SAAS,CAAC,CAAC;QAClD,IAAI,CAAC,IAAI,GAAG,YAAY,CAAC,IAAI,CAAC;IAChC,CAAC;CACF;AAND,oCAMC;AAED,MAAa,sBAAuB,SAAQ,iBAAS;IACnD,YAAY,OAAe,EAAE,UAAiD,EAAE;QAC9E,KAAK,CAAC,OAAO,EAAE,OAAO,CAAC,CAAC;QACxB,MAAM,CAAC,cAAc,CAAC,IAAI,EAAE,GAAG,CAAC,MAAM,CAAC,SAAS,CAAC,CAAC;QAClD,IAAI,CAAC,IAAI,GAAG,sBAAsB,CAAC,IAAI,CAAC;IAC1C,CAAC;CACF;AAND,wDAMC;AAED,MAAa,+BAAgC,SAAQ,iBAAS;IAC5D,YAAY,OAAe,EAAE,UAAiD,EAAE;QAC9E,KAAK,CAAC,OAAO,EAAE,OAAO,CAAC,CAAC;QACxB,MAAM,CAAC,cAAc,CAAC,IAAI,EAAE,GAAG,CAAC,MAAM,CAAC,SAAS,CAAC,CAAC;QAClD,IAAI,CAAC,IAAI,GAAG,+BAA+B,CAAC,IAAI,CAAC;IACnD,CAAC;CACF;AAND,0EAMC;AAED,MAAa,yBAA0B,SAAQ,iBAAS;IACtD,YAAY,OAAe,EAAE,UAAiD,EAAE;QAC9E,KAAK,CAAC,OAAO,EAAE,OAAO,CAAC,CAAC;QACxB,MAAM,CAAC,cAAc,CAAC,IAAI,EAAE,GAAG,CAAC,MAAM,CAAC,SAAS,CAAC,CAAC;QAClD,IAAI,CAAC,IAAI,GAAG,yBAAyB,CAAC,IAAI,CAAC;IAC7C,CAAC;CACF;AAND,8DAMC;AAED,MAAa,uBAAwB,SAAQ,iBAAS;IACpD,YAAY,OAAe,EAAE,UAAiD,EAAE;QAC9E,KAAK,CAAC,OAAO,EAAE,OAAO,CAAC,CAAC;QACxB,MAAM,CAAC,cAAc,CAAC,IAAI,EAAE,GAAG,CAAC,MAAM,CAAC,SAAS,CAAC,CAAC;QAClD,IAAI,CAAC,IAAI,GAAG,uBAAuB,CAAC,IAAI,CAAC;IAC3C,CAAC;CACF;AAND,0DAMC"}
|
|
@@ -0,0 +1,28 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
|
|
3
|
+
if (k2 === undefined) k2 = k;
|
|
4
|
+
var desc = Object.getOwnPropertyDescriptor(m, k);
|
|
5
|
+
if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
|
|
6
|
+
desc = { enumerable: true, get: function() { return m[k]; } };
|
|
7
|
+
}
|
|
8
|
+
Object.defineProperty(o, k2, desc);
|
|
9
|
+
}) : (function(o, m, k, k2) {
|
|
10
|
+
if (k2 === undefined) k2 = k;
|
|
11
|
+
o[k2] = m[k];
|
|
12
|
+
}));
|
|
13
|
+
var __exportStar = (this && this.__exportStar) || function(m, exports) {
|
|
14
|
+
for (var p in m) if (p !== "default" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);
|
|
15
|
+
};
|
|
16
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
17
|
+
exports.getLocalIpAddress = exports.isPrivateIp = void 0;
|
|
18
|
+
__exportStar(require("./interfaces"), exports);
|
|
19
|
+
__exportStar(require("./models"), exports);
|
|
20
|
+
__exportStar(require("./session"), exports);
|
|
21
|
+
__exportStar(require("./types"), exports);
|
|
22
|
+
__exportStar(require("./talkback"), exports);
|
|
23
|
+
__exportStar(require("./ble"), exports);
|
|
24
|
+
__exportStar(require("./error"), exports);
|
|
25
|
+
var utils_1 = require("./utils");
|
|
26
|
+
Object.defineProperty(exports, "isPrivateIp", { enumerable: true, get: function () { return utils_1.isPrivateIp; } });
|
|
27
|
+
Object.defineProperty(exports, "getLocalIpAddress", { enumerable: true, get: function () { return utils_1.getLocalIpAddress; } });
|
|
28
|
+
//# sourceMappingURL=index.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/p2p/index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;AAAA,+CAA6B;AAC7B,2CAAyB;AACzB,4CAA0B;AAC1B,0CAAwB;AACxB,6CAA2B;AAC3B,wCAAsB;AACtB,0CAAwB;AACxB,iCAAyD;AAAhD,oGAAA,WAAW,OAAA;AAAE,0GAAA,iBAAiB,OAAA"}
|
|
@@ -0,0 +1,423 @@
|
|
|
1
|
+
import * as NodeRSA from "node-rsa";
|
|
2
|
+
import { Readable } from "stream";
|
|
3
|
+
import { SortedMap } from "sweet-collections";
|
|
4
|
+
import { AlarmMode, DeviceType, MicStatus, ParamType, TriggerType, VideoType } from "../http/types";
|
|
5
|
+
import { Address, CmdCameraInfoResponse, CommandResult, CustomData, StorageInfoBodyHB3 } from "./models";
|
|
6
|
+
import { TalkbackStream } from "./talkback";
|
|
7
|
+
import { AlarmEvent, AudioCodec, CommandType, DatabaseReturnCode, IndoorSoloSmartdropCommandType, P2PDataType, SmartSafeAlarm911Event, SmartSafeShakeAlarmEvent, P2PStorageType, TFCardStatus, VideoCodec, InternalP2PCommandType } from "./types";
|
|
8
|
+
export interface P2PClientProtocolEvents {
|
|
9
|
+
"alarm mode": (mode: AlarmMode) => void;
|
|
10
|
+
"camera info": (cameraInfo: CmdCameraInfoResponse) => void;
|
|
11
|
+
connect: (address: Address) => void;
|
|
12
|
+
close: () => void;
|
|
13
|
+
command: (result: CommandResult) => void;
|
|
14
|
+
"download started": (channel: number, metadata: StreamMetadata, videoStream: Readable, audioStream: Readable) => void;
|
|
15
|
+
"download finished": (channel: number) => void;
|
|
16
|
+
"livestream started": (channel: number, metadata: StreamMetadata, videoStream: Readable, audioStream: Readable) => void;
|
|
17
|
+
"livestream stopped": (channel: number) => void;
|
|
18
|
+
"livestream error": (channel: number, error: Error) => void;
|
|
19
|
+
"wifi rssi": (channel: number, rssi: number) => void;
|
|
20
|
+
"rtsp url": (channel: number, rtspUrl: string) => void;
|
|
21
|
+
parameter: (channel: number, param: number, value: string) => void;
|
|
22
|
+
timeout: () => void;
|
|
23
|
+
"runtime state": (channel: number, batteryLevel: number, temperature: number) => void;
|
|
24
|
+
"charging state": (channel: number, chargeType: number, batteryLevel: number) => void;
|
|
25
|
+
"rtsp livestream started": (channel: number) => void;
|
|
26
|
+
"rtsp livestream stopped": (channel: number) => void;
|
|
27
|
+
"floodlight manual switch": (channel: number, enabled: boolean) => void;
|
|
28
|
+
"alarm delay": (alarmDelayEvent: AlarmEvent, alarmDelay: number) => void;
|
|
29
|
+
"alarm armed": () => void;
|
|
30
|
+
"alarm event": (alarmEvent: AlarmEvent) => void;
|
|
31
|
+
"talkback started": (channel: number, talkbackStream: TalkbackStream) => void;
|
|
32
|
+
"talkback stopped": (channel: number) => void;
|
|
33
|
+
"talkback error": (channel: number, error: Error) => void;
|
|
34
|
+
"secondary command": (result: CommandResult) => void;
|
|
35
|
+
jammed: (channel: number) => void;
|
|
36
|
+
"low battery": (channel: number) => void;
|
|
37
|
+
"shake alarm": (channel: number, detail: SmartSafeShakeAlarmEvent) => void;
|
|
38
|
+
"911 alarm": (channel: number, detail: SmartSafeAlarm911Event) => void;
|
|
39
|
+
"wrong try-protect alarm": (channel: number) => void;
|
|
40
|
+
"sd info ex": (sdStatus: TFCardStatus, sdCapacity: number, sdCapacityAvailable: number) => void;
|
|
41
|
+
"image download": (file: string, image: Buffer) => void;
|
|
42
|
+
"tfcard status": (channel: number, status: TFCardStatus) => void;
|
|
43
|
+
"database query latest": (returnCode: DatabaseReturnCode, data: Array<DatabaseQueryLatestInfo>) => void;
|
|
44
|
+
"database query local": (returnCode: DatabaseReturnCode, data: Array<DatabaseQueryLocal>) => void;
|
|
45
|
+
"database query by date": (returnCode: DatabaseReturnCode, data: Array<DatabaseQueryByDate>) => void;
|
|
46
|
+
"database count by date": (returnCode: DatabaseReturnCode, data: Array<DatabaseCountByDate>) => void;
|
|
47
|
+
"database delete": (returnCode: DatabaseReturnCode, failedIds: Array<unknown>) => void;
|
|
48
|
+
"sensor status": (channel: number, status: number) => void;
|
|
49
|
+
"garage door status": (channel: number, doorId: number, status: number) => void;
|
|
50
|
+
"storage info hb3": (channel: number, storageInfo: StorageInfoBodyHB3) => void;
|
|
51
|
+
"sequence error": (channel: number, command: number, sequence: number, serialnumber: string) => void;
|
|
52
|
+
}
|
|
53
|
+
export interface P2PQueueMessage {
|
|
54
|
+
p2pCommandType: InternalP2PCommandType;
|
|
55
|
+
p2pCommand: P2PCommand;
|
|
56
|
+
nestedCommandType?: CommandType;
|
|
57
|
+
nestedCommandType2?: number;
|
|
58
|
+
timestamp: number;
|
|
59
|
+
customData?: CustomData;
|
|
60
|
+
}
|
|
61
|
+
export interface P2PMessageState {
|
|
62
|
+
sequence: number;
|
|
63
|
+
commandType: CommandType;
|
|
64
|
+
nestedCommandType?: CommandType | IndoorSoloSmartdropCommandType | ParamType;
|
|
65
|
+
nestedCommandType2?: number;
|
|
66
|
+
channel: number;
|
|
67
|
+
data: Buffer;
|
|
68
|
+
retries: number;
|
|
69
|
+
acknowledged: boolean;
|
|
70
|
+
returnCode?: number;
|
|
71
|
+
retryTimeout?: NodeJS.Timeout;
|
|
72
|
+
timeout?: NodeJS.Timeout;
|
|
73
|
+
customData?: CustomData;
|
|
74
|
+
}
|
|
75
|
+
export interface P2PMessageParts {
|
|
76
|
+
[index: number]: Buffer;
|
|
77
|
+
}
|
|
78
|
+
export interface P2PMessage {
|
|
79
|
+
bytesToRead: number;
|
|
80
|
+
type: P2PDataType;
|
|
81
|
+
seqNo: number;
|
|
82
|
+
data: Buffer;
|
|
83
|
+
}
|
|
84
|
+
export interface P2PDataHeader {
|
|
85
|
+
commandId: number;
|
|
86
|
+
bytesToRead: number;
|
|
87
|
+
channel: number;
|
|
88
|
+
signCode: number;
|
|
89
|
+
type: number;
|
|
90
|
+
}
|
|
91
|
+
export interface P2PDataMessage extends P2PDataHeader {
|
|
92
|
+
seqNo: number;
|
|
93
|
+
dataType: P2PDataType;
|
|
94
|
+
data: Buffer;
|
|
95
|
+
}
|
|
96
|
+
export interface P2PDataMessageBuilder {
|
|
97
|
+
header: P2PDataHeader;
|
|
98
|
+
bytesRead: number;
|
|
99
|
+
messages: P2PMessageParts;
|
|
100
|
+
}
|
|
101
|
+
export interface P2PDataMessageState {
|
|
102
|
+
leftoverData: Buffer;
|
|
103
|
+
queuedData: SortedMap<number, P2PMessage>;
|
|
104
|
+
rsaKey: NodeRSA | null;
|
|
105
|
+
videoStream: Readable | null;
|
|
106
|
+
audioStream: Readable | null;
|
|
107
|
+
invalidStream: boolean;
|
|
108
|
+
p2pStreaming: boolean;
|
|
109
|
+
p2pStreamNotStarted: boolean;
|
|
110
|
+
p2pStreamChannel: number;
|
|
111
|
+
p2pStreamFirstAudioDataReceived: boolean;
|
|
112
|
+
p2pStreamFirstVideoDataReceived: boolean;
|
|
113
|
+
p2pStreamMetadata: StreamMetadata;
|
|
114
|
+
p2pStreamingTimeout?: NodeJS.Timeout;
|
|
115
|
+
rtspStream: {
|
|
116
|
+
[index: number]: boolean;
|
|
117
|
+
};
|
|
118
|
+
rtspStreaming: {
|
|
119
|
+
[index: number]: boolean;
|
|
120
|
+
};
|
|
121
|
+
waitForSeqNoTimeout?: NodeJS.Timeout;
|
|
122
|
+
waitForAudioData?: NodeJS.Timeout;
|
|
123
|
+
receivedFirstIFrame: boolean;
|
|
124
|
+
preFrameVideoData: Buffer;
|
|
125
|
+
p2pTalkback: boolean;
|
|
126
|
+
p2pTalkbackChannel: number;
|
|
127
|
+
}
|
|
128
|
+
export interface P2PDataMessageVideo {
|
|
129
|
+
streamType: number;
|
|
130
|
+
videoSeqNo: number;
|
|
131
|
+
videoFPS: number;
|
|
132
|
+
videoWidth: number;
|
|
133
|
+
videoHeight: number;
|
|
134
|
+
videoTimestamp: number;
|
|
135
|
+
videoDataLength: number;
|
|
136
|
+
aesKey: string;
|
|
137
|
+
}
|
|
138
|
+
export interface P2PDataMessageAudio {
|
|
139
|
+
audioType: number;
|
|
140
|
+
audioSeqNo: number;
|
|
141
|
+
audioTimestamp: number;
|
|
142
|
+
audioDataLength: number;
|
|
143
|
+
}
|
|
144
|
+
export interface StreamMetadata {
|
|
145
|
+
videoCodec: VideoCodec;
|
|
146
|
+
videoFPS: number;
|
|
147
|
+
videoWidth: number;
|
|
148
|
+
videoHeight: number;
|
|
149
|
+
audioCodec: AudioCodec;
|
|
150
|
+
}
|
|
151
|
+
export interface DeviceSerial {
|
|
152
|
+
[index: number]: {
|
|
153
|
+
sn: string;
|
|
154
|
+
adminUserId: string;
|
|
155
|
+
};
|
|
156
|
+
}
|
|
157
|
+
export interface P2PCommand {
|
|
158
|
+
commandType: CommandType;
|
|
159
|
+
value?: number | string;
|
|
160
|
+
valueSub?: number;
|
|
161
|
+
strValue?: string;
|
|
162
|
+
strValueSub?: string;
|
|
163
|
+
channel?: number;
|
|
164
|
+
}
|
|
165
|
+
export interface P2PVideoMessageState {
|
|
166
|
+
sequence: number;
|
|
167
|
+
channel: number;
|
|
168
|
+
data: Buffer;
|
|
169
|
+
retries: number;
|
|
170
|
+
timeout?: NodeJS.Timeout;
|
|
171
|
+
}
|
|
172
|
+
export interface P2PDatabaseQueryLatestInfoResponse {
|
|
173
|
+
device_sn: string;
|
|
174
|
+
payload: {
|
|
175
|
+
event_count: number;
|
|
176
|
+
crop_hb3_path: string;
|
|
177
|
+
crop_cloud_path: string;
|
|
178
|
+
};
|
|
179
|
+
}
|
|
180
|
+
export interface P2PDatabaseCountByDateResponse {
|
|
181
|
+
days: string;
|
|
182
|
+
count: number;
|
|
183
|
+
}
|
|
184
|
+
export interface P2PDatabaseQueryLocalHistoryRecordInfo {
|
|
185
|
+
record_id: number;
|
|
186
|
+
account: string;
|
|
187
|
+
station_sn: string;
|
|
188
|
+
device_sn: string;
|
|
189
|
+
device_type: DeviceType;
|
|
190
|
+
start_time: string;
|
|
191
|
+
end_time: string;
|
|
192
|
+
frame_num: number;
|
|
193
|
+
storage_type: P2PStorageType;
|
|
194
|
+
storage_cloud: boolean;
|
|
195
|
+
cipher_id: number;
|
|
196
|
+
vision: number;
|
|
197
|
+
video_type: VideoType;
|
|
198
|
+
has_lock: boolean;
|
|
199
|
+
automation_id: number;
|
|
200
|
+
trigger_type: TriggerType;
|
|
201
|
+
push_mode: number;
|
|
202
|
+
mic_status: MicStatus;
|
|
203
|
+
res_change: number;
|
|
204
|
+
res_best_width: number;
|
|
205
|
+
res_best_height: number;
|
|
206
|
+
self_learning: number;
|
|
207
|
+
int_reserve: number;
|
|
208
|
+
int_extra: number;
|
|
209
|
+
storage_path: string;
|
|
210
|
+
thumb_path: string;
|
|
211
|
+
write_status: number;
|
|
212
|
+
str_extra: string;
|
|
213
|
+
cloud_path: string;
|
|
214
|
+
folder_size: number;
|
|
215
|
+
storage_status: number;
|
|
216
|
+
storage_label: string;
|
|
217
|
+
time_zone: string;
|
|
218
|
+
mp4_cloud: string;
|
|
219
|
+
snapshot_cloud: string;
|
|
220
|
+
table_version: string;
|
|
221
|
+
update_time: string;
|
|
222
|
+
}
|
|
223
|
+
export interface P2PDatabaseQueryLocalRecordCropPictureInfo {
|
|
224
|
+
picture_id: number;
|
|
225
|
+
record_id: number;
|
|
226
|
+
station_sn: string;
|
|
227
|
+
device_sn: string;
|
|
228
|
+
detection_type: number;
|
|
229
|
+
person_id: number;
|
|
230
|
+
crop_path: string;
|
|
231
|
+
event_time: string;
|
|
232
|
+
str_reserve: string;
|
|
233
|
+
person_recog_flag: boolean;
|
|
234
|
+
crop_pic_quality: number;
|
|
235
|
+
pic_marking_flag: boolean;
|
|
236
|
+
group_id: number;
|
|
237
|
+
int_reserve: number;
|
|
238
|
+
crop_id: number;
|
|
239
|
+
start_time: string;
|
|
240
|
+
reserve2_int: number;
|
|
241
|
+
reserve2_date: string;
|
|
242
|
+
reserve2_string: string;
|
|
243
|
+
storage_type: P2PStorageType;
|
|
244
|
+
storage_status: number;
|
|
245
|
+
storage_label: string;
|
|
246
|
+
table_version: string;
|
|
247
|
+
update_time: string;
|
|
248
|
+
}
|
|
249
|
+
export interface P2PDatabaseQueryLocalResponse {
|
|
250
|
+
payload: Array<P2PDatabaseQueryLocalHistoryRecordInfo> | Array<P2PDatabaseQueryLocalRecordCropPictureInfo>;
|
|
251
|
+
table_name: string;
|
|
252
|
+
}
|
|
253
|
+
export interface P2PDatabaseDeleteResponse {
|
|
254
|
+
failed_delete: Array<unknown>;
|
|
255
|
+
}
|
|
256
|
+
export interface P2PDatabaseQueryByDateRecord {
|
|
257
|
+
device_sn: string;
|
|
258
|
+
device_type: DeviceType;
|
|
259
|
+
start_time: string;
|
|
260
|
+
end_time: string;
|
|
261
|
+
storage_path: string;
|
|
262
|
+
thumb_path: string;
|
|
263
|
+
cipher_id: number;
|
|
264
|
+
folder_size: number;
|
|
265
|
+
frame_num: number;
|
|
266
|
+
trigger_type: TriggerType;
|
|
267
|
+
video_type: VideoType;
|
|
268
|
+
record_id: number;
|
|
269
|
+
station_sn: string;
|
|
270
|
+
storage_type: P2PStorageType;
|
|
271
|
+
storage_cloud: boolean;
|
|
272
|
+
}
|
|
273
|
+
export interface P2PDatabaseResponse {
|
|
274
|
+
data: Array<P2PDatabaseQueryLatestInfoResponse> | Array<P2PDatabaseCountByDateResponse> | Array<P2PDatabaseQueryLocalResponse> | P2PDatabaseDeleteResponse;
|
|
275
|
+
start_id?: number;
|
|
276
|
+
end_id?: number;
|
|
277
|
+
count?: number;
|
|
278
|
+
transaction: string;
|
|
279
|
+
table: string;
|
|
280
|
+
cmd: number;
|
|
281
|
+
mIntRet: DatabaseReturnCode;
|
|
282
|
+
version: string;
|
|
283
|
+
msg: string;
|
|
284
|
+
}
|
|
285
|
+
export interface DatabaseQueryLatestInfoBase {
|
|
286
|
+
device_sn: string;
|
|
287
|
+
event_count: number;
|
|
288
|
+
}
|
|
289
|
+
export interface DatabaseQueryLatestInfoCloud extends DatabaseQueryLatestInfoBase {
|
|
290
|
+
crop_cloud_path: string;
|
|
291
|
+
}
|
|
292
|
+
export interface DatabaseQueryLatestInfoLocal extends DatabaseQueryLatestInfoBase {
|
|
293
|
+
crop_local_path: string;
|
|
294
|
+
}
|
|
295
|
+
export type DatabaseQueryLatestInfo = DatabaseQueryLatestInfoCloud | DatabaseQueryLatestInfoLocal;
|
|
296
|
+
export interface DatabaseCountByDate {
|
|
297
|
+
day: Date;
|
|
298
|
+
count: number;
|
|
299
|
+
}
|
|
300
|
+
export interface HistoryRecordInfo {
|
|
301
|
+
device_type: DeviceType;
|
|
302
|
+
account: string;
|
|
303
|
+
start_time: Date;
|
|
304
|
+
end_time: Date;
|
|
305
|
+
frame_num: number;
|
|
306
|
+
storage_type: P2PStorageType;
|
|
307
|
+
storage_cloud: boolean;
|
|
308
|
+
cipher_id: number;
|
|
309
|
+
vision: number;
|
|
310
|
+
video_type: VideoType;
|
|
311
|
+
has_lock: boolean;
|
|
312
|
+
automation_id: number;
|
|
313
|
+
trigger_type: TriggerType;
|
|
314
|
+
push_mode: number;
|
|
315
|
+
mic_status: MicStatus;
|
|
316
|
+
res_change: number;
|
|
317
|
+
res_best_width: number;
|
|
318
|
+
res_best_height: number;
|
|
319
|
+
self_learning: number;
|
|
320
|
+
storage_path: string;
|
|
321
|
+
thumb_path: string;
|
|
322
|
+
write_status: number;
|
|
323
|
+
cloud_path: string;
|
|
324
|
+
folder_size: number;
|
|
325
|
+
storage_status: number;
|
|
326
|
+
storage_label: string;
|
|
327
|
+
time_zone: string;
|
|
328
|
+
mp4_cloud: string;
|
|
329
|
+
snapshot_cloud: string;
|
|
330
|
+
table_version: string;
|
|
331
|
+
}
|
|
332
|
+
export interface CropPictureInfo {
|
|
333
|
+
picture_id: number;
|
|
334
|
+
detection_type: number;
|
|
335
|
+
person_id: number;
|
|
336
|
+
crop_path: string;
|
|
337
|
+
event_time: Date | null;
|
|
338
|
+
person_recog_flag: boolean;
|
|
339
|
+
crop_pic_quality: number;
|
|
340
|
+
pic_marking_flag: boolean;
|
|
341
|
+
group_id: number;
|
|
342
|
+
crop_id: number;
|
|
343
|
+
start_time: Date;
|
|
344
|
+
storage_type: P2PStorageType;
|
|
345
|
+
storage_status: number;
|
|
346
|
+
storage_label: string;
|
|
347
|
+
table_version: string;
|
|
348
|
+
update_time: string;
|
|
349
|
+
}
|
|
350
|
+
export interface DatabaseQueryLocal {
|
|
351
|
+
record_id: number;
|
|
352
|
+
station_sn: string;
|
|
353
|
+
device_sn?: string;
|
|
354
|
+
history: HistoryRecordInfo;
|
|
355
|
+
picture: Array<CropPictureInfo>;
|
|
356
|
+
}
|
|
357
|
+
export interface DatabaseQueryByDate {
|
|
358
|
+
device_sn: string;
|
|
359
|
+
device_type: DeviceType;
|
|
360
|
+
start_time: Date;
|
|
361
|
+
end_time: Date;
|
|
362
|
+
storage_path: string;
|
|
363
|
+
thumb_path: string;
|
|
364
|
+
cipher_id: number;
|
|
365
|
+
folder_size: number;
|
|
366
|
+
frame_num: number;
|
|
367
|
+
trigger_type: TriggerType;
|
|
368
|
+
video_type: VideoType;
|
|
369
|
+
record_id: number;
|
|
370
|
+
station_sn: string;
|
|
371
|
+
storage_type: P2PStorageType;
|
|
372
|
+
storage_cloud: boolean;
|
|
373
|
+
}
|
|
374
|
+
export interface RGBColor {
|
|
375
|
+
red: number;
|
|
376
|
+
green: number;
|
|
377
|
+
blue: number;
|
|
378
|
+
}
|
|
379
|
+
export interface InternalColoredLighting {
|
|
380
|
+
color: number;
|
|
381
|
+
}
|
|
382
|
+
export interface DynamicLighting {
|
|
383
|
+
name: string;
|
|
384
|
+
mode: number;
|
|
385
|
+
speed: number;
|
|
386
|
+
colors: Array<RGBColor>;
|
|
387
|
+
}
|
|
388
|
+
export interface InternalDynamicLighting {
|
|
389
|
+
name: string;
|
|
390
|
+
mode: number;
|
|
391
|
+
id: number;
|
|
392
|
+
speed: number;
|
|
393
|
+
colors: Array<number>;
|
|
394
|
+
}
|
|
395
|
+
export interface MotionZonePoint {
|
|
396
|
+
x: number;
|
|
397
|
+
y: number;
|
|
398
|
+
}
|
|
399
|
+
export interface MotionZonePoints {
|
|
400
|
+
points: Array<MotionZonePoint>;
|
|
401
|
+
}
|
|
402
|
+
export interface MotionZone {
|
|
403
|
+
polygens: Array<MotionZonePoints>;
|
|
404
|
+
}
|
|
405
|
+
export interface VideoStreamingRecordingQuality {
|
|
406
|
+
mode_0: {
|
|
407
|
+
quality: number;
|
|
408
|
+
};
|
|
409
|
+
mode_1: {
|
|
410
|
+
quality: number;
|
|
411
|
+
};
|
|
412
|
+
cur_mode: number;
|
|
413
|
+
}
|
|
414
|
+
export interface CrossTrackingGroupEntry {
|
|
415
|
+
value: Array<string>;
|
|
416
|
+
}
|
|
417
|
+
export interface CustomDataType {
|
|
418
|
+
[index: number]: {
|
|
419
|
+
channel: number;
|
|
420
|
+
customData: CustomData;
|
|
421
|
+
timestamp: number;
|
|
422
|
+
};
|
|
423
|
+
}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"interfaces.js","sourceRoot":"","sources":["../../src/p2p/interfaces.ts"],"names":[],"mappings":""}
|