@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.
Files changed (129) hide show
  1. package/.prettierignore/342/200/216 +8 -0
  2. package/.prettierrc +11 -0
  3. package/LICENSE +21 -0
  4. package/README.md +970 -0
  5. package/build/error.d.ts +138 -0
  6. package/build/error.js +190 -0
  7. package/build/error.js.map +1 -0
  8. package/build/eufysecurity.d.ts +180 -0
  9. package/build/eufysecurity.js +3148 -0
  10. package/build/eufysecurity.js.map +1 -0
  11. package/build/http/api.d.ts +119 -0
  12. package/build/http/api.js +1877 -0
  13. package/build/http/api.js.map +1 -0
  14. package/build/http/cache.d.ts +8 -0
  15. package/build/http/cache.js +34 -0
  16. package/build/http/cache.js.map +1 -0
  17. package/build/http/const.d.ts +8 -0
  18. package/build/http/const.js +3054 -0
  19. package/build/http/const.js.map +1 -0
  20. package/build/http/device.d.ts +490 -0
  21. package/build/http/device.js +5256 -0
  22. package/build/http/device.js.map +1 -0
  23. package/build/http/error.d.ts +73 -0
  24. package/build/http/error.js +101 -0
  25. package/build/http/error.js.map +1 -0
  26. package/build/http/index.d.ts +10 -0
  27. package/build/http/index.js +30 -0
  28. package/build/http/index.js.map +1 -0
  29. package/build/http/interfaces.d.ts +248 -0
  30. package/build/http/interfaces.js +3 -0
  31. package/build/http/interfaces.js.map +1 -0
  32. package/build/http/models.d.ts +608 -0
  33. package/build/http/models.js +3 -0
  34. package/build/http/models.js.map +1 -0
  35. package/build/http/parameter.d.ts +7 -0
  36. package/build/http/parameter.js +119 -0
  37. package/build/http/parameter.js.map +1 -0
  38. package/build/http/station.d.ts +382 -0
  39. package/build/http/station.js +15735 -0
  40. package/build/http/station.js.map +1 -0
  41. package/build/http/types.d.ts +1358 -0
  42. package/build/http/types.js +10333 -0
  43. package/build/http/types.js.map +1 -0
  44. package/build/http/utils.d.ts +89 -0
  45. package/build/http/utils.js +916 -0
  46. package/build/http/utils.js.map +1 -0
  47. package/build/index.d.ts +8 -0
  48. package/build/index.js +29 -0
  49. package/build/index.js.map +1 -0
  50. package/build/interfaces.d.ts +147 -0
  51. package/build/interfaces.js +7 -0
  52. package/build/interfaces.js.map +1 -0
  53. package/build/logging.d.ts +36 -0
  54. package/build/logging.js +119 -0
  55. package/build/logging.js.map +1 -0
  56. package/build/mqtt/interface.d.ts +6 -0
  57. package/build/mqtt/interface.js +3 -0
  58. package/build/mqtt/interface.js.map +1 -0
  59. package/build/mqtt/model.d.ts +24 -0
  60. package/build/mqtt/model.js +3 -0
  61. package/build/mqtt/model.js.map +1 -0
  62. package/build/mqtt/mqtt-eufy.crt +79 -0
  63. package/build/mqtt/proto/lock.proto +33 -0
  64. package/build/mqtt/service.d.ts +28 -0
  65. package/build/mqtt/service.js +196 -0
  66. package/build/mqtt/service.js.map +1 -0
  67. package/build/p2p/ble.d.ts +59 -0
  68. package/build/p2p/ble.js +281 -0
  69. package/build/p2p/ble.js.map +1 -0
  70. package/build/p2p/error.d.ts +49 -0
  71. package/build/p2p/error.js +69 -0
  72. package/build/p2p/error.js.map +1 -0
  73. package/build/p2p/index.d.ts +8 -0
  74. package/build/p2p/index.js +28 -0
  75. package/build/p2p/index.js.map +1 -0
  76. package/build/p2p/interfaces.d.ts +423 -0
  77. package/build/p2p/interfaces.js +3 -0
  78. package/build/p2p/interfaces.js.map +1 -0
  79. package/build/p2p/models.d.ts +295 -0
  80. package/build/p2p/models.js +3 -0
  81. package/build/p2p/models.js.map +1 -0
  82. package/build/p2p/session.d.ts +186 -0
  83. package/build/p2p/session.js +3737 -0
  84. package/build/p2p/session.js.map +1 -0
  85. package/build/p2p/talkback.d.ts +8 -0
  86. package/build/p2p/talkback.js +23 -0
  87. package/build/p2p/talkback.js.map +1 -0
  88. package/build/p2p/types.d.ts +1164 -0
  89. package/build/p2p/types.js +1219 -0
  90. package/build/p2p/types.js.map +1 -0
  91. package/build/p2p/utils.d.ts +72 -0
  92. package/build/p2p/utils.js +865 -0
  93. package/build/p2p/utils.js.map +1 -0
  94. package/build/push/client.d.ts +49 -0
  95. package/build/push/client.js +344 -0
  96. package/build/push/client.js.map +1 -0
  97. package/build/push/error.d.ts +73 -0
  98. package/build/push/error.js +101 -0
  99. package/build/push/error.js.map +1 -0
  100. package/build/push/index.d.ts +6 -0
  101. package/build/push/index.js +26 -0
  102. package/build/push/index.js.map +1 -0
  103. package/build/push/interfaces.d.ts +19 -0
  104. package/build/push/interfaces.js +3 -0
  105. package/build/push/interfaces.js.map +1 -0
  106. package/build/push/models.d.ts +328 -0
  107. package/build/push/models.js +38 -0
  108. package/build/push/models.js.map +1 -0
  109. package/build/push/parser.d.ts +25 -0
  110. package/build/push/parser.js +231 -0
  111. package/build/push/parser.js.map +1 -0
  112. package/build/push/proto/checkin.proto +266 -0
  113. package/build/push/proto/mcs.proto +328 -0
  114. package/build/push/service.d.ts +46 -0
  115. package/build/push/service.js +965 -0
  116. package/build/push/service.js.map +1 -0
  117. package/build/push/types.d.ts +220 -0
  118. package/build/push/types.js +244 -0
  119. package/build/push/types.js.map +1 -0
  120. package/build/push/utils.d.ts +7 -0
  121. package/build/push/utils.js +116 -0
  122. package/build/push/utils.js.map +1 -0
  123. package/build/utils.d.ts +115 -0
  124. package/build/utils.js +438 -0
  125. package/build/utils.js.map +1 -0
  126. package/eslint.config.mts +68 -0
  127. package/jest.config.js +14 -0
  128. package/package.json +85 -0
  129. package/scripts/cut_release.sh +31 -0
@@ -0,0 +1,101 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.MCSProtocolMessageTagError = exports.MCSProtocolProcessingStateError = exports.MCSProtocolVersionError = exports.FidGenerationError = exports.BuildHeartbeatAckRequestError = exports.BuildHeartbeatPingRequestError = exports.BuildLoginRequestError = exports.RegisterGcmError = exports.ExecuteCheckInError = exports.RenewFidTokenFailedError = exports.FidRegistrationFailedError = exports.UnknownExpiryFormaError = void 0;
4
+ const error_1 = require("../error");
5
+ class UnknownExpiryFormaError extends error_1.BaseError {
6
+ constructor(message, options = {}) {
7
+ super(message, options);
8
+ Object.setPrototypeOf(this, new.target.prototype);
9
+ this.name = UnknownExpiryFormaError.name;
10
+ }
11
+ }
12
+ exports.UnknownExpiryFormaError = UnknownExpiryFormaError;
13
+ class FidRegistrationFailedError extends error_1.BaseError {
14
+ constructor(message, options = {}) {
15
+ super(message, options);
16
+ Object.setPrototypeOf(this, new.target.prototype);
17
+ this.name = FidRegistrationFailedError.name;
18
+ }
19
+ }
20
+ exports.FidRegistrationFailedError = FidRegistrationFailedError;
21
+ class RenewFidTokenFailedError extends error_1.BaseError {
22
+ constructor(message, options = {}) {
23
+ super(message, options);
24
+ Object.setPrototypeOf(this, new.target.prototype);
25
+ this.name = RenewFidTokenFailedError.name;
26
+ }
27
+ }
28
+ exports.RenewFidTokenFailedError = RenewFidTokenFailedError;
29
+ class ExecuteCheckInError extends error_1.BaseError {
30
+ constructor(message, options = {}) {
31
+ super(message, options);
32
+ Object.setPrototypeOf(this, new.target.prototype);
33
+ this.name = ExecuteCheckInError.name;
34
+ }
35
+ }
36
+ exports.ExecuteCheckInError = ExecuteCheckInError;
37
+ class RegisterGcmError extends error_1.BaseError {
38
+ constructor(message, options = {}) {
39
+ super(message, options);
40
+ Object.setPrototypeOf(this, new.target.prototype);
41
+ this.name = RegisterGcmError.name;
42
+ }
43
+ }
44
+ exports.RegisterGcmError = RegisterGcmError;
45
+ class BuildLoginRequestError extends error_1.BaseError {
46
+ constructor(message, options = {}) {
47
+ super(message, options);
48
+ Object.setPrototypeOf(this, new.target.prototype);
49
+ this.name = BuildLoginRequestError.name;
50
+ }
51
+ }
52
+ exports.BuildLoginRequestError = BuildLoginRequestError;
53
+ class BuildHeartbeatPingRequestError extends error_1.BaseError {
54
+ constructor(message, options = {}) {
55
+ super(message, options);
56
+ Object.setPrototypeOf(this, new.target.prototype);
57
+ this.name = BuildHeartbeatPingRequestError.name;
58
+ }
59
+ }
60
+ exports.BuildHeartbeatPingRequestError = BuildHeartbeatPingRequestError;
61
+ class BuildHeartbeatAckRequestError extends error_1.BaseError {
62
+ constructor(message, options = {}) {
63
+ super(message, options);
64
+ Object.setPrototypeOf(this, new.target.prototype);
65
+ this.name = BuildHeartbeatAckRequestError.name;
66
+ }
67
+ }
68
+ exports.BuildHeartbeatAckRequestError = BuildHeartbeatAckRequestError;
69
+ class FidGenerationError extends error_1.BaseError {
70
+ constructor(message, options = {}) {
71
+ super(message, options);
72
+ Object.setPrototypeOf(this, new.target.prototype);
73
+ this.name = FidGenerationError.name;
74
+ }
75
+ }
76
+ exports.FidGenerationError = FidGenerationError;
77
+ class MCSProtocolVersionError extends error_1.BaseError {
78
+ constructor(message, options = {}) {
79
+ super(message, options);
80
+ Object.setPrototypeOf(this, new.target.prototype);
81
+ this.name = MCSProtocolVersionError.name;
82
+ }
83
+ }
84
+ exports.MCSProtocolVersionError = MCSProtocolVersionError;
85
+ class MCSProtocolProcessingStateError extends error_1.BaseError {
86
+ constructor(message, options = {}) {
87
+ super(message, options);
88
+ Object.setPrototypeOf(this, new.target.prototype);
89
+ this.name = MCSProtocolProcessingStateError.name;
90
+ }
91
+ }
92
+ exports.MCSProtocolProcessingStateError = MCSProtocolProcessingStateError;
93
+ class MCSProtocolMessageTagError extends error_1.BaseError {
94
+ constructor(message, options = {}) {
95
+ super(message, options);
96
+ Object.setPrototypeOf(this, new.target.prototype);
97
+ this.name = MCSProtocolMessageTagError.name;
98
+ }
99
+ }
100
+ exports.MCSProtocolMessageTagError = MCSProtocolMessageTagError;
101
+ //# sourceMappingURL=error.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"error.js","sourceRoot":"","sources":["../../src/push/error.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,6 @@
1
+ export * from "./models";
2
+ export * from "./interfaces";
3
+ export * from "./service";
4
+ export * from "./types";
5
+ export * from "./error";
6
+ export { sleep, convertTimestampMs } from "./utils";
@@ -0,0 +1,26 @@
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.convertTimestampMs = exports.sleep = void 0;
18
+ __exportStar(require("./models"), exports);
19
+ __exportStar(require("./interfaces"), exports);
20
+ __exportStar(require("./service"), exports);
21
+ __exportStar(require("./types"), exports);
22
+ __exportStar(require("./error"), exports);
23
+ var utils_1 = require("./utils");
24
+ Object.defineProperty(exports, "sleep", { enumerable: true, get: function () { return utils_1.sleep; } });
25
+ Object.defineProperty(exports, "convertTimestampMs", { enumerable: true, get: function () { return utils_1.convertTimestampMs; } });
26
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/push/index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;AAAA,2CAAyB;AACzB,+CAA6B;AAC7B,4CAA0B;AAC1B,0CAAwB;AACxB,0CAAwB;AACxB,iCAAoD;AAA3C,8FAAA,KAAK,OAAA;AAAE,2GAAA,kBAAkB,OAAA"}
@@ -0,0 +1,19 @@
1
+ import { Credentials, RawPushMessage, PushMessage } from "./models";
2
+ export interface PushNotificationServiceEvents {
3
+ credential: (credentials: Credentials) => void;
4
+ connect: (token: string) => void;
5
+ close: () => void;
6
+ "raw message": (message: RawPushMessage) => void;
7
+ message: (message: PushMessage) => void;
8
+ }
9
+ export interface PushClientEvents {
10
+ connect: () => void;
11
+ close: () => void;
12
+ message: (message: RawPushMessage) => void;
13
+ }
14
+ export interface PushClientParserEvents {
15
+ message: (message: {
16
+ tag: number;
17
+ object: any;
18
+ }) => void;
19
+ }
@@ -0,0 +1,3 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ //# sourceMappingURL=interfaces.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"interfaces.js","sourceRoot":"","sources":["../../src/push/interfaces.ts"],"names":[],"mappings":""}
@@ -0,0 +1,328 @@
1
+ import { UserType } from "../http/types";
2
+ import { AlarmAction } from "./types";
3
+ export interface CusPushData {
4
+ a?: number;
5
+ alarm?: number;
6
+ alarm_delay?: number;
7
+ alarm_type?: number;
8
+ arming?: number;
9
+ automation_id?: number;
10
+ batt_powered?: number;
11
+ c?: number;
12
+ channel?: number;
13
+ click_action?: string;
14
+ create_time?: number;
15
+ device_name?: string;
16
+ e?: string;
17
+ event_time?: number;
18
+ event_type?: number;
19
+ f?: string;
20
+ i?: string;
21
+ j?: number;
22
+ k?: number;
23
+ cipher?: number;
24
+ m?: number;
25
+ mode?: number;
26
+ n?: string;
27
+ name?: string;
28
+ news_id?: number;
29
+ nick_name?: string;
30
+ notification_style?: number;
31
+ p?: string;
32
+ file_path?: string;
33
+ pic_url?: string;
34
+ push_count?: number;
35
+ s: string;
36
+ session_id?: string;
37
+ short_user_id?: string;
38
+ storage_type?: number;
39
+ t?: string;
40
+ tfcard?: number;
41
+ type?: number;
42
+ unique_id?: string;
43
+ user?: UserType;
44
+ user_id?: string;
45
+ user_name?: string;
46
+ bat_low?: string;
47
+ msg_type: number;
48
+ r?: string;
49
+ u?: string;
50
+ }
51
+ export interface EufyPushMessage {
52
+ content: string;
53
+ device_sn: string;
54
+ event_time: string;
55
+ payload?: CusPushData | IndoorPushData | ServerPushData | BatteryDoorbellPushData | LockPushData | SmartSafePushData | GarageDoorPushData | AlarmPushData;
56
+ push_time: string;
57
+ station_sn: string;
58
+ title: string;
59
+ type: string;
60
+ doorbell?: string;
61
+ "google.c.sender.id": string;
62
+ }
63
+ export interface SmartSafeEventValueDetail {
64
+ type: number;
65
+ action: number;
66
+ figure_id: number;
67
+ user_id: number;
68
+ name?: string;
69
+ }
70
+ export interface SmartSafePushData {
71
+ dev_name: string;
72
+ event_type: number;
73
+ event_time: number;
74
+ event_value: number | SmartSafeEventValueDetail;
75
+ }
76
+ export interface LockPushData {
77
+ event_type: number;
78
+ event_time: number;
79
+ short_user_id: string;
80
+ nick_name: string;
81
+ user_id: string;
82
+ device_name: string;
83
+ device_sn: string;
84
+ }
85
+ export interface GarageDoorPushData {
86
+ a: number;
87
+ msg_type: number;
88
+ event_type: number;
89
+ door_id: number;
90
+ user_name: string;
91
+ door_name: string;
92
+ pic_url: string;
93
+ file_path: string;
94
+ storage_type: number;
95
+ unique_id: string;
96
+ power?: number;
97
+ }
98
+ export interface BatteryDoorbellPushData {
99
+ name: string;
100
+ channel: number;
101
+ cipher: number;
102
+ create_time: number;
103
+ device_sn: string;
104
+ session_id: string;
105
+ event_type: number;
106
+ file_path: string;
107
+ pic_url: string;
108
+ push_count: number;
109
+ notification_style: number;
110
+ objects?: DoorbellPeopleNames;
111
+ nick_name?: string;
112
+ }
113
+ export interface DoorbellPeopleNames {
114
+ names: string[];
115
+ }
116
+ export interface RawPushMessage {
117
+ id: string;
118
+ from: string;
119
+ to: string;
120
+ category: string;
121
+ persistentId: string;
122
+ ttl: number;
123
+ sent: string;
124
+ payload: EufyPushMessage;
125
+ }
126
+ export interface FidTokenResponse {
127
+ token: string;
128
+ expiresIn: string;
129
+ expiresAt: number;
130
+ }
131
+ export interface FidInstallationResponse {
132
+ name: string;
133
+ fid: string;
134
+ refreshToken: string;
135
+ authToken: FidTokenResponse;
136
+ }
137
+ export interface CheckinResponse {
138
+ statsOk: boolean;
139
+ timeMs: string;
140
+ androidId: string;
141
+ securityToken: string;
142
+ versionInfo: string;
143
+ deviceDataVersionInfo: string;
144
+ }
145
+ export interface GcmRegisterResponse {
146
+ token: string;
147
+ }
148
+ export interface Message {
149
+ tag: number;
150
+ object: any;
151
+ }
152
+ export declare enum ProcessingState {
153
+ MCS_VERSION_TAG_AND_SIZE = 0,
154
+ MCS_TAG_AND_SIZE = 1,
155
+ MCS_SIZE = 2,
156
+ MCS_PROTO_BYTES = 3
157
+ }
158
+ export declare enum MessageTag {
159
+ HeartbeatPing = 0,
160
+ HeartbeatAck = 1,
161
+ LoginRequest = 2,
162
+ LoginResponse = 3,
163
+ Close = 4,
164
+ MessageStanza = 5,
165
+ PresenceStanza = 6,
166
+ IqStanza = 7,
167
+ DataMessageStanza = 8,
168
+ BatchPresenceStanza = 9,
169
+ StreamErrorStanza = 10,
170
+ HttpRequest = 11,
171
+ HttpResponse = 12,
172
+ BindAccountRequest = 13,
173
+ BindAccountResponse = 14,
174
+ TalkMetadata = 15,
175
+ NumProtoTypes = 16
176
+ }
177
+ export interface Credentials {
178
+ fidResponse: FidInstallationResponse;
179
+ checkinResponse: CheckinResponse;
180
+ gcmResponse: GcmRegisterResponse;
181
+ }
182
+ export interface DoorbellPushData {
183
+ campaign_name: string;
184
+ channel: number;
185
+ cipher: number;
186
+ content: string;
187
+ create_time: number;
188
+ device_sn: string;
189
+ event_session: string;
190
+ event_time: number;
191
+ event_type: number;
192
+ file_path: string;
193
+ person_name?: string;
194
+ outer_body: string;
195
+ outer_title: string;
196
+ pic_url: string;
197
+ push_count: number;
198
+ station_sn: string;
199
+ title: string;
200
+ url: string;
201
+ url_ex: string;
202
+ video_url: string;
203
+ }
204
+ export interface IndoorPushData {
205
+ a: number;
206
+ channel: number;
207
+ cipher: number;
208
+ create_time: number;
209
+ trigger_time: number;
210
+ device_sn: string;
211
+ event_type: number;
212
+ file_path: string;
213
+ msg_type: number;
214
+ name: string;
215
+ notification_style: number;
216
+ pic_url: string;
217
+ push_count: number;
218
+ session_id: string;
219
+ storage_type: number;
220
+ t: number;
221
+ tfcard_status: number;
222
+ timeout: number;
223
+ unique_id: string;
224
+ }
225
+ export interface ServerPushData {
226
+ email: string;
227
+ nick_name: string;
228
+ verify_code: string;
229
+ }
230
+ export interface PushMessage {
231
+ name: string;
232
+ event_time: number;
233
+ type: number;
234
+ station_sn: string;
235
+ device_sn: string;
236
+ title?: string;
237
+ content?: string;
238
+ push_time?: number;
239
+ channel?: number;
240
+ cipher?: number;
241
+ event_session?: string;
242
+ event_type?: number;
243
+ file_path?: string;
244
+ pic_url?: string;
245
+ push_count?: number;
246
+ notification_style?: number;
247
+ tfcard_status?: number;
248
+ alarm_delay_type?: number;
249
+ alarm_delay?: number;
250
+ alarm_type?: number;
251
+ sound_alarm?: boolean;
252
+ user_name?: string;
253
+ user_type?: number;
254
+ user_id?: string;
255
+ short_user_id?: string;
256
+ station_guard_mode?: number;
257
+ station_current_mode?: number;
258
+ person_name?: string;
259
+ sensor_open?: boolean;
260
+ device_online?: boolean;
261
+ fetch_id?: number;
262
+ sense_id?: number;
263
+ battery_powered?: boolean;
264
+ battery_low?: number;
265
+ storage_type?: number;
266
+ unique_id?: string;
267
+ automation_id?: number;
268
+ click_action?: string;
269
+ news_id?: number;
270
+ doorbell_url?: string;
271
+ doorbell_url_ex?: string;
272
+ doorbell_video_url?: string;
273
+ msg_type?: number;
274
+ timeout?: number;
275
+ event_value?: number | SmartSafeEventValueDetail;
276
+ person_id?: number;
277
+ door_id?: number;
278
+ power?: number;
279
+ email?: string;
280
+ verify_code?: string;
281
+ alarm_status?: string;
282
+ alarm_action?: AlarmAction;
283
+ open?: number;
284
+ openType?: number;
285
+ pin?: string;
286
+ }
287
+ export interface PlatformPushMode {
288
+ a: number;
289
+ alarm: number;
290
+ arming: number;
291
+ channel: number;
292
+ cipher: number;
293
+ create_time: number;
294
+ device_sn: string;
295
+ event_type: number;
296
+ face_id: number;
297
+ file_path: string;
298
+ mode: number;
299
+ msg_type: number;
300
+ name: string;
301
+ nick_name: string;
302
+ notification_style: number;
303
+ parted_status: number;
304
+ pic_url: string;
305
+ push_count: number;
306
+ record_id: number;
307
+ s: string;
308
+ session_id: string;
309
+ storage_type: number;
310
+ t: number;
311
+ tfcard_status: number;
312
+ timeout: number;
313
+ unique_id: string;
314
+ user: number;
315
+ user_name: string;
316
+ pic_filepath: string;
317
+ trigger_time: number;
318
+ alarm_delay: number;
319
+ person_id: number;
320
+ }
321
+ export interface AlarmPushData {
322
+ alarm_action_channel: AlarmAction;
323
+ alarm_id: string;
324
+ alarm_status: string;
325
+ alert_time: number;
326
+ device_sn: string;
327
+ station_sn: string;
328
+ }
@@ -0,0 +1,38 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.MessageTag = exports.ProcessingState = void 0;
4
+ var ProcessingState;
5
+ (function (ProcessingState) {
6
+ // Processing the version, tag, and size packets (assuming minimum length
7
+ // size packet). Only used during the login handshake.
8
+ ProcessingState[ProcessingState["MCS_VERSION_TAG_AND_SIZE"] = 0] = "MCS_VERSION_TAG_AND_SIZE";
9
+ // Processing the tag and size packets (assuming minimum length size
10
+ // packet). Used for normal messages.
11
+ ProcessingState[ProcessingState["MCS_TAG_AND_SIZE"] = 1] = "MCS_TAG_AND_SIZE";
12
+ // Processing the size packet alone.
13
+ ProcessingState[ProcessingState["MCS_SIZE"] = 2] = "MCS_SIZE";
14
+ // Processing the protocol buffer bytes (for those messages with non-zero
15
+ // sizes).
16
+ ProcessingState[ProcessingState["MCS_PROTO_BYTES"] = 3] = "MCS_PROTO_BYTES";
17
+ })(ProcessingState || (exports.ProcessingState = ProcessingState = {}));
18
+ var MessageTag;
19
+ (function (MessageTag) {
20
+ MessageTag[MessageTag["HeartbeatPing"] = 0] = "HeartbeatPing";
21
+ MessageTag[MessageTag["HeartbeatAck"] = 1] = "HeartbeatAck";
22
+ MessageTag[MessageTag["LoginRequest"] = 2] = "LoginRequest";
23
+ MessageTag[MessageTag["LoginResponse"] = 3] = "LoginResponse";
24
+ MessageTag[MessageTag["Close"] = 4] = "Close";
25
+ MessageTag[MessageTag["MessageStanza"] = 5] = "MessageStanza";
26
+ MessageTag[MessageTag["PresenceStanza"] = 6] = "PresenceStanza";
27
+ MessageTag[MessageTag["IqStanza"] = 7] = "IqStanza";
28
+ MessageTag[MessageTag["DataMessageStanza"] = 8] = "DataMessageStanza";
29
+ MessageTag[MessageTag["BatchPresenceStanza"] = 9] = "BatchPresenceStanza";
30
+ MessageTag[MessageTag["StreamErrorStanza"] = 10] = "StreamErrorStanza";
31
+ MessageTag[MessageTag["HttpRequest"] = 11] = "HttpRequest";
32
+ MessageTag[MessageTag["HttpResponse"] = 12] = "HttpResponse";
33
+ MessageTag[MessageTag["BindAccountRequest"] = 13] = "BindAccountRequest";
34
+ MessageTag[MessageTag["BindAccountResponse"] = 14] = "BindAccountResponse";
35
+ MessageTag[MessageTag["TalkMetadata"] = 15] = "TalkMetadata";
36
+ MessageTag[MessageTag["NumProtoTypes"] = 16] = "NumProtoTypes";
37
+ })(MessageTag || (exports.MessageTag = MessageTag = {}));
38
+ //# sourceMappingURL=models.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"models.js","sourceRoot":"","sources":["../../src/push/models.ts"],"names":[],"mappings":";;;AA8KA,IAAY,eAYX;AAZD,WAAY,eAAe;IACzB,yEAAyE;IACzE,sDAAsD;IACtD,6FAA4B,CAAA;IAC5B,oEAAoE;IACpE,qCAAqC;IACrC,6EAAoB,CAAA;IACpB,oCAAoC;IACpC,6DAAY,CAAA;IACZ,yEAAyE;IACzE,UAAU;IACV,2EAAmB,CAAA;AACrB,CAAC,EAZW,eAAe,+BAAf,eAAe,QAY1B;AAED,IAAY,UAkBX;AAlBD,WAAY,UAAU;IACpB,6DAAiB,CAAA;IACjB,2DAAgB,CAAA;IAChB,2DAAgB,CAAA;IAChB,6DAAiB,CAAA;IACjB,6CAAS,CAAA;IACT,6DAAiB,CAAA;IACjB,+DAAkB,CAAA;IAClB,mDAAY,CAAA;IACZ,qEAAqB,CAAA;IACrB,yEAAuB,CAAA;IACvB,sEAAsB,CAAA;IACtB,0DAAgB,CAAA;IAChB,4DAAiB,CAAA;IACjB,wEAAuB,CAAA;IACvB,0EAAwB,CAAA;IACxB,4DAAiB,CAAA;IACjB,8DAAkB,CAAA;AACpB,CAAC,EAlBW,UAAU,0BAAV,UAAU,QAkBrB"}
@@ -0,0 +1,25 @@
1
+ import { TypedEmitter } from "tiny-typed-emitter";
2
+ import { PushClientParserEvents } from "./interfaces";
3
+ export declare class PushClientParser extends TypedEmitter<PushClientParserEvents> {
4
+ private static proto;
5
+ private state;
6
+ private data;
7
+ private isWaitingForData;
8
+ private sizePacketSoFar;
9
+ private messageSize;
10
+ private messageTag;
11
+ private handshakeComplete;
12
+ private constructor();
13
+ resetState(): void;
14
+ static init(): Promise<PushClientParser>;
15
+ handleData(newData: Buffer): void;
16
+ private waitForData;
17
+ private handleFullMessage;
18
+ private onGotVersion;
19
+ private onGotMessageTag;
20
+ private onGotMessageSize;
21
+ private onGotMessageBytes;
22
+ private getNextMessage;
23
+ private getMinBytesNeeded;
24
+ private buildProtobufFromTag;
25
+ }