@ray-js/lock-sdk 1.0.0-beta-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/lib/api/index.d.ts +5 -0
- package/lib/api/index.js +18 -0
- package/lib/api/linkage.d.ts +161 -0
- package/lib/api/linkage.js +74 -0
- package/lib/api/lock.d.ts +195 -0
- package/lib/api/lock.js +129 -0
- package/lib/api/log.d.ts +166 -0
- package/lib/api/log.js +44 -0
- package/lib/api/setting.d.ts +14 -0
- package/lib/api/setting.js +36 -0
- package/lib/api/temp.d.ts +211 -0
- package/lib/api/temp.js +130 -0
- package/lib/api/user.d.ts +154 -0
- package/lib/api/user.js +59 -0
- package/lib/api/video.d.ts +9 -0
- package/lib/api/video.js +17 -0
- package/lib/config/dp-code/index.d.ts +175 -0
- package/lib/config/dp-code/index.js +224 -0
- package/lib/config/dp-map/common.d.ts +102 -0
- package/lib/config/dp-map/common.js +120 -0
- package/lib/config/dp-map/normal.d.ts +6 -0
- package/lib/config/dp-map/normal.js +51 -0
- package/lib/config/dp-map/open.d.ts +21 -0
- package/lib/config/dp-map/open.js +62 -0
- package/lib/config/dp-map/unlock-method-big.d.ts +559 -0
- package/lib/config/dp-map/unlock-method-big.js +237 -0
- package/lib/config/dp-map/unlock-method.d.ts +551 -0
- package/lib/config/dp-map/unlock-method.js +231 -0
- package/lib/config/index.d.ts +46 -0
- package/lib/config/index.js +56 -0
- package/lib/constant.d.ts +101 -0
- package/lib/constant.js +136 -0
- package/lib/dp-interface.d.ts +7 -0
- package/lib/dp-interface.js +1 -0
- package/lib/event.d.ts +8 -0
- package/lib/event.js +9 -0
- package/lib/index.d.ts +25 -0
- package/lib/index.js +92 -0
- package/lib/interface.d.ts +807 -0
- package/lib/interface.js +1 -0
- package/lib/linkage.d.ts +26 -0
- package/lib/linkage.js +175 -0
- package/lib/log.d.ts +91 -0
- package/lib/log.js +314 -0
- package/lib/media.d.ts +43 -0
- package/lib/media.js +80 -0
- package/lib/open.d.ts +48 -0
- package/lib/open.js +247 -0
- package/lib/other.d.ts +36 -0
- package/lib/other.js +178 -0
- package/lib/parse/index.d.ts +6 -0
- package/lib/parse/index.js +22 -0
- package/lib/signal.d.ts +26 -0
- package/lib/signal.js +38 -0
- package/lib/sleep.d.ts +61 -0
- package/lib/sleep.js +121 -0
- package/lib/state.d.ts +54 -0
- package/lib/state.js +429 -0
- package/lib/sync/remote-serect-key.d.ts +5 -0
- package/lib/sync/remote-serect-key.js +60 -0
- package/lib/sync/t0.d.ts +5 -0
- package/lib/sync/t0.js +33 -0
- package/lib/sync/temp.d.ts +7 -0
- package/lib/sync/temp.js +88 -0
- package/lib/sync/unlock-mothod.d.ts +5 -0
- package/lib/sync/unlock-mothod.js +54 -0
- package/lib/temporary.d.ts +226 -0
- package/lib/temporary.js +637 -0
- package/lib/unlock-method.d.ts +269 -0
- package/lib/unlock-method.js +723 -0
- package/lib/user.d.ts +108 -0
- package/lib/user.js +361 -0
- package/lib/utils/base64-to-hex.d.ts +1 -0
- package/lib/utils/base64-to-hex.js +12 -0
- package/lib/utils/byte.d.ts +19 -0
- package/lib/utils/byte.js +74 -0
- package/lib/utils/constant.d.ts +11 -0
- package/lib/utils/constant.js +17 -0
- package/lib/utils/device.d.ts +207 -0
- package/lib/utils/device.js +353 -0
- package/lib/utils/errors.d.ts +2 -0
- package/lib/utils/errors.js +125 -0
- package/lib/utils/event.d.ts +23 -0
- package/lib/utils/event.js +144 -0
- package/lib/utils/hex-to-base64.d.ts +1 -0
- package/lib/utils/hex-to-base64.js +8 -0
- package/lib/utils/hex-to-bytes.d.ts +6 -0
- package/lib/utils/hex-to-bytes.js +16 -0
- package/lib/utils/index.d.ts +169 -0
- package/lib/utils/index.js +419 -0
- package/lib/utils/log.d.ts +5 -0
- package/lib/utils/log.js +78 -0
- package/lib/utils/publishDps.d.ts +11 -0
- package/lib/utils/publishDps.js +91 -0
- package/package.json +37 -0
|
@@ -0,0 +1,807 @@
|
|
|
1
|
+
import { CommunicationType, LocalOperateCategory, LocalOperateUserType, ModuleType, RotateType, UserType, VedioStreamType, VedioType, VoiceType } from "./constant";
|
|
2
|
+
export type ParamType<T> = T extends (param: infer K) => any ? K : never;
|
|
3
|
+
export type DpValue = string | boolean | number;
|
|
4
|
+
export type DpData = Record<string, DpValue>;
|
|
5
|
+
export interface LockSDKOption {
|
|
6
|
+
/**
|
|
7
|
+
* 设备id
|
|
8
|
+
*/
|
|
9
|
+
deviceId?: string;
|
|
10
|
+
/**
|
|
11
|
+
* 设备信息
|
|
12
|
+
*/
|
|
13
|
+
devInfo?: any;
|
|
14
|
+
/**
|
|
15
|
+
* 是否严格模式
|
|
16
|
+
* 如果为 true,则 dp 数据进行严格校验,否则不进行严格校验
|
|
17
|
+
* 默认为 true
|
|
18
|
+
*/
|
|
19
|
+
strictMode?: boolean;
|
|
20
|
+
/**
|
|
21
|
+
* 密码支持的进制,只支持十以内的进制
|
|
22
|
+
* 默认为 十进制
|
|
23
|
+
*/
|
|
24
|
+
passwordDigitalBase?: number;
|
|
25
|
+
/**
|
|
26
|
+
* 密码是否支持 0
|
|
27
|
+
* 默认为 true
|
|
28
|
+
*/
|
|
29
|
+
passwordSupportZero?: boolean;
|
|
30
|
+
}
|
|
31
|
+
export interface ErrorData {
|
|
32
|
+
errorCode: number;
|
|
33
|
+
errorMsg: string;
|
|
34
|
+
}
|
|
35
|
+
/**
|
|
36
|
+
* 位状态
|
|
37
|
+
*/
|
|
38
|
+
export type BitStatus = 0 | 1;
|
|
39
|
+
/**
|
|
40
|
+
* 周数据, 0 表示不生效,1 表示生效
|
|
41
|
+
* 根据下标依次表示:
|
|
42
|
+
* 0 表示周日
|
|
43
|
+
* 1 表示周一
|
|
44
|
+
* 2 表示周二
|
|
45
|
+
* 3 表示周三
|
|
46
|
+
* 4 表示周四
|
|
47
|
+
* 5 表示周五
|
|
48
|
+
* 6 表示周六
|
|
49
|
+
*/
|
|
50
|
+
export type Week = [
|
|
51
|
+
BitStatus,
|
|
52
|
+
BitStatus,
|
|
53
|
+
BitStatus,
|
|
54
|
+
BitStatus,
|
|
55
|
+
BitStatus,
|
|
56
|
+
BitStatus,
|
|
57
|
+
BitStatus
|
|
58
|
+
];
|
|
59
|
+
/**
|
|
60
|
+
* 设备信息
|
|
61
|
+
*/
|
|
62
|
+
export interface DeviceInfo {
|
|
63
|
+
devId: string;
|
|
64
|
+
productId: string;
|
|
65
|
+
capability: number;
|
|
66
|
+
schema: DpSchema[];
|
|
67
|
+
dps: DpData;
|
|
68
|
+
isShare: boolean;
|
|
69
|
+
name: string;
|
|
70
|
+
isLocalOnline: boolean;
|
|
71
|
+
isCloudOnline: boolean;
|
|
72
|
+
isOnline: boolean;
|
|
73
|
+
panelConfig?: Record<string, any>;
|
|
74
|
+
meta?: Record<string, any>;
|
|
75
|
+
wifiEnableState?: number;
|
|
76
|
+
activeTime: number;
|
|
77
|
+
dpsTime: Record<string, string>;
|
|
78
|
+
}
|
|
79
|
+
/**
|
|
80
|
+
* DP 定义信息
|
|
81
|
+
*/
|
|
82
|
+
export interface DpSchema {
|
|
83
|
+
type: "raw" | "obj";
|
|
84
|
+
name: string;
|
|
85
|
+
code: string;
|
|
86
|
+
id: number;
|
|
87
|
+
property: {
|
|
88
|
+
type: "value" | "bool" | "enum" | "string" | "bitmap";
|
|
89
|
+
min: number;
|
|
90
|
+
max: number;
|
|
91
|
+
step: number;
|
|
92
|
+
scale: number;
|
|
93
|
+
unit: string;
|
|
94
|
+
range: string[];
|
|
95
|
+
labels: string[];
|
|
96
|
+
maxlen: number;
|
|
97
|
+
};
|
|
98
|
+
}
|
|
99
|
+
/**
|
|
100
|
+
* 设备能力信息
|
|
101
|
+
* 设备侧上报
|
|
102
|
+
*/
|
|
103
|
+
export interface CapabilityInfo {
|
|
104
|
+
type: ModuleType;
|
|
105
|
+
vedioType: VedioType;
|
|
106
|
+
voiceType: VoiceType;
|
|
107
|
+
streamType: VedioStreamType;
|
|
108
|
+
communicationType: CommunicationType;
|
|
109
|
+
rotateType: RotateType;
|
|
110
|
+
}
|
|
111
|
+
/**
|
|
112
|
+
* 当前登录用户的信息
|
|
113
|
+
*/
|
|
114
|
+
export interface CurrentUser {
|
|
115
|
+
/**
|
|
116
|
+
* 用户id
|
|
117
|
+
*/
|
|
118
|
+
userId: string;
|
|
119
|
+
/**
|
|
120
|
+
* 锁端用户id
|
|
121
|
+
*/
|
|
122
|
+
lockUserId: number;
|
|
123
|
+
/**
|
|
124
|
+
* 用户类型
|
|
125
|
+
*/
|
|
126
|
+
userType: UserType;
|
|
127
|
+
/**
|
|
128
|
+
* 支持的开锁 dp
|
|
129
|
+
*/
|
|
130
|
+
allOpenDps: string;
|
|
131
|
+
/**
|
|
132
|
+
* 支持的开锁类型
|
|
133
|
+
*/
|
|
134
|
+
allOpenType: number[];
|
|
135
|
+
/**
|
|
136
|
+
* 产品属性
|
|
137
|
+
*/
|
|
138
|
+
productAttribute: number;
|
|
139
|
+
phase: number;
|
|
140
|
+
/**
|
|
141
|
+
* 是否管理员
|
|
142
|
+
*/
|
|
143
|
+
admin: boolean;
|
|
144
|
+
/**
|
|
145
|
+
* 是否支持离线开锁
|
|
146
|
+
*/
|
|
147
|
+
offlineUnlock: boolean;
|
|
148
|
+
/**
|
|
149
|
+
* 是否永久有效
|
|
150
|
+
*/
|
|
151
|
+
permanent: boolean;
|
|
152
|
+
}
|
|
153
|
+
export interface UnlockMethodBaseInfo {
|
|
154
|
+
/**
|
|
155
|
+
* 开锁方式硬件id
|
|
156
|
+
*/
|
|
157
|
+
unlockId: string;
|
|
158
|
+
/**
|
|
159
|
+
* 开锁方式名称
|
|
160
|
+
*/
|
|
161
|
+
unlockName: string;
|
|
162
|
+
/**
|
|
163
|
+
* 是否为云端关联的开锁方式
|
|
164
|
+
* true - 关联的开锁方式
|
|
165
|
+
* false - 非关联的开锁方式
|
|
166
|
+
*/
|
|
167
|
+
isBound: boolean;
|
|
168
|
+
/**
|
|
169
|
+
* 开锁方式id
|
|
170
|
+
* 云端分配的开锁方式id
|
|
171
|
+
*/
|
|
172
|
+
id: number;
|
|
173
|
+
/**
|
|
174
|
+
* 是否为图片开锁方式
|
|
175
|
+
*/
|
|
176
|
+
photoUnlock: boolean;
|
|
177
|
+
/**
|
|
178
|
+
* 是否为特殊开锁方式
|
|
179
|
+
*/
|
|
180
|
+
isSpecial: boolean;
|
|
181
|
+
}
|
|
182
|
+
/**
|
|
183
|
+
* 开锁方式类型
|
|
184
|
+
* finger 表示 指纹开锁
|
|
185
|
+
* face 表示 人脸开锁
|
|
186
|
+
* password 表示 密码开锁
|
|
187
|
+
* card 表示 卡片开锁
|
|
188
|
+
* fingerVein 表示 指静脉开锁
|
|
189
|
+
* hand 表示 掌静脉开锁
|
|
190
|
+
* eye 表示 眼纹开锁
|
|
191
|
+
*/
|
|
192
|
+
export type UnlockMethodType = "finger" | "face" | "password" | "card" | "fingerVein" | "hand" | "eye";
|
|
193
|
+
/**
|
|
194
|
+
* 开锁方式配置
|
|
195
|
+
*/
|
|
196
|
+
export interface UnlockMethodConfig {
|
|
197
|
+
/**
|
|
198
|
+
* 开锁方式类型
|
|
199
|
+
*/
|
|
200
|
+
type: UnlockMethodType;
|
|
201
|
+
/**
|
|
202
|
+
* 开锁方式对应的 dp code
|
|
203
|
+
*/
|
|
204
|
+
code: string;
|
|
205
|
+
/**
|
|
206
|
+
* 开锁方式对应的协议 id
|
|
207
|
+
* 1 - 密码开锁
|
|
208
|
+
* 2 - 卡片开锁
|
|
209
|
+
* 3 - 指纹开锁
|
|
210
|
+
* 4 - 人脸开锁
|
|
211
|
+
* 5 - 掌静脉开锁
|
|
212
|
+
* 6 - 指静脉开锁
|
|
213
|
+
*/
|
|
214
|
+
id: number;
|
|
215
|
+
}
|
|
216
|
+
/**
|
|
217
|
+
* 门锁面板信息
|
|
218
|
+
*/
|
|
219
|
+
export interface UserInfo {
|
|
220
|
+
/**
|
|
221
|
+
* 用户id
|
|
222
|
+
*/
|
|
223
|
+
userId: string;
|
|
224
|
+
/**
|
|
225
|
+
* 锁端用户id
|
|
226
|
+
*/
|
|
227
|
+
lockUserId: number;
|
|
228
|
+
/**
|
|
229
|
+
* 用户头像
|
|
230
|
+
*/
|
|
231
|
+
avatarUrl: string;
|
|
232
|
+
backHomeNotifyAttr: number;
|
|
233
|
+
effectiveFlag: number;
|
|
234
|
+
/**
|
|
235
|
+
* 昵称
|
|
236
|
+
*/
|
|
237
|
+
nickName: string;
|
|
238
|
+
/**
|
|
239
|
+
* 是否支持离线开锁
|
|
240
|
+
*/
|
|
241
|
+
offlineUnlock: boolean;
|
|
242
|
+
/**
|
|
243
|
+
* 生效时间配置
|
|
244
|
+
*/
|
|
245
|
+
timeScheduleInfo: {
|
|
246
|
+
effectiveTime: number;
|
|
247
|
+
expiredTime: number;
|
|
248
|
+
/**
|
|
249
|
+
* 是否永久有效
|
|
250
|
+
*/
|
|
251
|
+
permanent: boolean;
|
|
252
|
+
/**
|
|
253
|
+
* 重复配置
|
|
254
|
+
* permanent 为 true 时,无此配置
|
|
255
|
+
*/
|
|
256
|
+
scheduleDetails?: {
|
|
257
|
+
/**
|
|
258
|
+
* 是否周重复
|
|
259
|
+
*/
|
|
260
|
+
repeat: boolean;
|
|
261
|
+
/**
|
|
262
|
+
* 每天的生效时间,单位分钟
|
|
263
|
+
*/
|
|
264
|
+
effectiveTime: number;
|
|
265
|
+
/**
|
|
266
|
+
* 每天的失效时间,单位分钟
|
|
267
|
+
*/
|
|
268
|
+
invalidTime: number;
|
|
269
|
+
/**
|
|
270
|
+
* 时区
|
|
271
|
+
*/
|
|
272
|
+
timeZoneId: string;
|
|
273
|
+
/**
|
|
274
|
+
* 周重复数据
|
|
275
|
+
*/
|
|
276
|
+
weeks: Week;
|
|
277
|
+
};
|
|
278
|
+
};
|
|
279
|
+
/**
|
|
280
|
+
* 开锁方式列表
|
|
281
|
+
*/
|
|
282
|
+
unlockDetails: {
|
|
283
|
+
/**
|
|
284
|
+
* 本类开锁方式的数量
|
|
285
|
+
*/
|
|
286
|
+
count: number;
|
|
287
|
+
/**
|
|
288
|
+
* 对应的开锁方式dp code
|
|
289
|
+
* 为开锁记录的 dp code
|
|
290
|
+
*/
|
|
291
|
+
dpCode: string;
|
|
292
|
+
/**
|
|
293
|
+
* 对应的开锁方式dp id
|
|
294
|
+
* 为开锁记录的 dp id
|
|
295
|
+
*/
|
|
296
|
+
dpId: number;
|
|
297
|
+
/**
|
|
298
|
+
* 本类开锁方式的类型
|
|
299
|
+
*/
|
|
300
|
+
type: UnlockMethodType;
|
|
301
|
+
/**
|
|
302
|
+
* 本类开锁方式详细列表
|
|
303
|
+
*/
|
|
304
|
+
unlockList: UnlockMethodBaseInfo[];
|
|
305
|
+
}[];
|
|
306
|
+
/**
|
|
307
|
+
* 用户账号
|
|
308
|
+
*/
|
|
309
|
+
userContact: string;
|
|
310
|
+
/**
|
|
311
|
+
* 用户类型
|
|
312
|
+
*/
|
|
313
|
+
userType: UserType;
|
|
314
|
+
/**
|
|
315
|
+
* 是否为账号用户
|
|
316
|
+
*/
|
|
317
|
+
isAccountUser: boolean;
|
|
318
|
+
}
|
|
319
|
+
type MapItem = {
|
|
320
|
+
readonly name: string;
|
|
321
|
+
readonly bytes?: number;
|
|
322
|
+
readonly type?: "number" | "signedNumber" | "string" | "enum" | "boolean" | "week" | "bit" | "bits" | "child" | "numberBySeparate" | "custom";
|
|
323
|
+
readonly childMap?: readonly MapItem[];
|
|
324
|
+
readonly condition?: any;
|
|
325
|
+
readonly loop?: boolean;
|
|
326
|
+
};
|
|
327
|
+
type DpMapType = readonly MapItem[];
|
|
328
|
+
type DPPropValueType<T extends MapItem> = T["type"] extends "boolean" ? boolean : T["type"] extends "week" ? Week : T["type"] extends "enum" ? number[] : T["type"] extends "bit" | "bits" ? BitStatus[] : T["type"] extends "string" ? string : T["type"] extends "custom" ? any : T["type"] extends "child" ? T["childMap"] extends DpMapType ? DpMapDataType<T["childMap"]> : any : number;
|
|
329
|
+
type DPConditionType<T extends MapItem> = T["condition"] extends undefined ? T["loop"] extends true ? DPPropValueType<T>[] : DPPropValueType<T> : T["loop"] extends true ? DPPropValueType<T>[] | undefined : DPPropValueType<T> | undefined;
|
|
330
|
+
export type DpMapDataType<T extends DpMapType> = {
|
|
331
|
+
[K in T[number]["name"]]: DPConditionType<Extract<T[number], {
|
|
332
|
+
name: K;
|
|
333
|
+
}>>;
|
|
334
|
+
};
|
|
335
|
+
export interface NotifyInfo {
|
|
336
|
+
/**
|
|
337
|
+
* 是否开启 App 消息通知
|
|
338
|
+
*/
|
|
339
|
+
appSend?: boolean;
|
|
340
|
+
/**
|
|
341
|
+
* 短信通知手机号,有手机号时,表示开启短信通知
|
|
342
|
+
*/
|
|
343
|
+
msgPhone?: string;
|
|
344
|
+
/**
|
|
345
|
+
* 短信通知国家码
|
|
346
|
+
*/
|
|
347
|
+
countryCode?: string;
|
|
348
|
+
}
|
|
349
|
+
/**
|
|
350
|
+
* 开锁方式详细信息
|
|
351
|
+
*/
|
|
352
|
+
export interface UnlockMethodDetail {
|
|
353
|
+
/**
|
|
354
|
+
* 是否为云端关联的开锁方式
|
|
355
|
+
*/
|
|
356
|
+
isBound: boolean;
|
|
357
|
+
/**
|
|
358
|
+
* 开锁方式状态
|
|
359
|
+
*/
|
|
360
|
+
phase: number;
|
|
361
|
+
/**
|
|
362
|
+
* 开锁方式对应的 dp id
|
|
363
|
+
*/
|
|
364
|
+
dpId: number;
|
|
365
|
+
/**
|
|
366
|
+
* 是否为特殊开锁方式
|
|
367
|
+
*/
|
|
368
|
+
isSpecial: boolean;
|
|
369
|
+
/**
|
|
370
|
+
* 开锁方式名称
|
|
371
|
+
*/
|
|
372
|
+
unlockName: string;
|
|
373
|
+
/**
|
|
374
|
+
* 所属用户 id
|
|
375
|
+
*/
|
|
376
|
+
userId: string;
|
|
377
|
+
/**
|
|
378
|
+
* 开锁方式硬件id
|
|
379
|
+
*/
|
|
380
|
+
unlockId: number;
|
|
381
|
+
/**
|
|
382
|
+
* 锁端用户 id
|
|
383
|
+
*/
|
|
384
|
+
lockUserId: number;
|
|
385
|
+
/**
|
|
386
|
+
* 开锁方式 id
|
|
387
|
+
*/
|
|
388
|
+
id: string;
|
|
389
|
+
/**
|
|
390
|
+
* 用户类型
|
|
391
|
+
*/
|
|
392
|
+
userType: number;
|
|
393
|
+
/**
|
|
394
|
+
* 开锁消息通知配置
|
|
395
|
+
* 当 isSpecial 为 true 时,值才有效
|
|
396
|
+
*/
|
|
397
|
+
notifyInfo: NotifyInfo;
|
|
398
|
+
}
|
|
399
|
+
/**
|
|
400
|
+
* 时效配置
|
|
401
|
+
*/
|
|
402
|
+
export interface EffectiveConfig {
|
|
403
|
+
/**
|
|
404
|
+
* 生效日期
|
|
405
|
+
* 单位为秒
|
|
406
|
+
*/
|
|
407
|
+
effectiveDate: number;
|
|
408
|
+
/**
|
|
409
|
+
* 失效日期
|
|
410
|
+
* 单位为秒
|
|
411
|
+
*/
|
|
412
|
+
expiredDate: number;
|
|
413
|
+
/**
|
|
414
|
+
* 重复类型
|
|
415
|
+
* 目前支持 none 和 week
|
|
416
|
+
* 默认为 none
|
|
417
|
+
*/
|
|
418
|
+
repeat?: "none" | "week";
|
|
419
|
+
/**
|
|
420
|
+
* 周重复配置
|
|
421
|
+
* 仅当 repeat 为 week 时生效
|
|
422
|
+
*/
|
|
423
|
+
weeks?: Week;
|
|
424
|
+
/**
|
|
425
|
+
* 生效时间,单位分钟
|
|
426
|
+
* 如生效时间为12:00,则值为 720
|
|
427
|
+
*/
|
|
428
|
+
effectiveTime?: number;
|
|
429
|
+
/**
|
|
430
|
+
* 失效时间,单位分钟
|
|
431
|
+
* 如生效时间为23:00,则值为 1380
|
|
432
|
+
*/
|
|
433
|
+
expiredTime?: number;
|
|
434
|
+
}
|
|
435
|
+
/**
|
|
436
|
+
* 远程权限
|
|
437
|
+
* everyOne 表示所有人都可以远程开关门
|
|
438
|
+
* adminsOnly 表示仅管理员可以远程开关门
|
|
439
|
+
* noOne 表示所有人都不可以远程开关门
|
|
440
|
+
*/
|
|
441
|
+
export type RemotePermission = "everyOne" | "adminsOnly" | "noOne";
|
|
442
|
+
export interface UnBindUnlockMethod {
|
|
443
|
+
dpId: number;
|
|
444
|
+
dpCode: string;
|
|
445
|
+
type: UnlockMethodType;
|
|
446
|
+
unlockId: number;
|
|
447
|
+
unlockName: string;
|
|
448
|
+
unlockSn: number;
|
|
449
|
+
id: number;
|
|
450
|
+
}
|
|
451
|
+
export interface UnBindUnlockMethodGroup {
|
|
452
|
+
type: UnlockMethodType;
|
|
453
|
+
list: UnBindUnlockMethod[];
|
|
454
|
+
}
|
|
455
|
+
/**
|
|
456
|
+
* 设备状态信息
|
|
457
|
+
*/
|
|
458
|
+
export interface DeviceStatus {
|
|
459
|
+
/**
|
|
460
|
+
* 设备状态
|
|
461
|
+
* online: 在线
|
|
462
|
+
* offline: 离线
|
|
463
|
+
* sleep: 休眠
|
|
464
|
+
*/
|
|
465
|
+
type: "offline" | "online" | "sleep";
|
|
466
|
+
/**
|
|
467
|
+
* 是否可手动连接设备
|
|
468
|
+
*/
|
|
469
|
+
connectEanble: boolean;
|
|
470
|
+
/**
|
|
471
|
+
* 在线类型
|
|
472
|
+
* 当 type 为 online 时有效
|
|
473
|
+
*/
|
|
474
|
+
onlineType: "local" | "cloud" | "ble" | "none" | "unknown";
|
|
475
|
+
/**
|
|
476
|
+
* 休眠时间段
|
|
477
|
+
* 仅当 type 为 sleep 时有效
|
|
478
|
+
*/
|
|
479
|
+
sleepPeriod?: {
|
|
480
|
+
start: number;
|
|
481
|
+
end: number;
|
|
482
|
+
};
|
|
483
|
+
}
|
|
484
|
+
export interface UnionUnlockInfo {
|
|
485
|
+
userId: string;
|
|
486
|
+
userName: string;
|
|
487
|
+
unlockName: string;
|
|
488
|
+
sn: number;
|
|
489
|
+
type: UnlockMethodType;
|
|
490
|
+
}
|
|
491
|
+
export interface LocalOperateRecordInfo {
|
|
492
|
+
/**
|
|
493
|
+
* 操作分类
|
|
494
|
+
* 开锁方式类:
|
|
495
|
+
* 0 表示 添加开锁方式
|
|
496
|
+
* 1 表示删除开锁方式
|
|
497
|
+
* 2 表示修改开锁方式
|
|
498
|
+
*
|
|
499
|
+
* 操作用户类:
|
|
500
|
+
* 16:添加用户
|
|
501
|
+
* 17:删除用户
|
|
502
|
+
*
|
|
503
|
+
* 本地设置类:
|
|
504
|
+
* 32 表示本地设备设置
|
|
505
|
+
*/
|
|
506
|
+
operClassify: LocalOperateCategory;
|
|
507
|
+
/**
|
|
508
|
+
* 操作人 id
|
|
509
|
+
*/
|
|
510
|
+
userId: number;
|
|
511
|
+
/**
|
|
512
|
+
* 操作人类型
|
|
513
|
+
*/
|
|
514
|
+
userType: LocalOperateUserType;
|
|
515
|
+
/**
|
|
516
|
+
* 操作类型
|
|
517
|
+
*/
|
|
518
|
+
operType: number;
|
|
519
|
+
/**
|
|
520
|
+
* 操作值
|
|
521
|
+
*/
|
|
522
|
+
operDetail: string;
|
|
523
|
+
/**
|
|
524
|
+
* 被操作人类型
|
|
525
|
+
*/
|
|
526
|
+
toUserType: LocalOperateUserType;
|
|
527
|
+
/**
|
|
528
|
+
* 被操作人 id
|
|
529
|
+
*/
|
|
530
|
+
toUserId: number;
|
|
531
|
+
}
|
|
532
|
+
interface LocalOperateBaseData {
|
|
533
|
+
userType: LocalOperateUserType;
|
|
534
|
+
userId: number;
|
|
535
|
+
toUserType: LocalOperateUserType;
|
|
536
|
+
toUserId: number;
|
|
537
|
+
}
|
|
538
|
+
/**
|
|
539
|
+
* 本地管理开锁方式记录
|
|
540
|
+
*/
|
|
541
|
+
export interface LocalUnlockMethodData extends LocalOperateBaseData {
|
|
542
|
+
category: LocalOperateCategory.ADD_UNLOCK_METHOD | LocalOperateCategory.DELETE_UNLOCK_METHOD | LocalOperateCategory.MODIFY_UNLOCK_METHOD;
|
|
543
|
+
unlockMethod: UnlockMethodType | "remoteControl";
|
|
544
|
+
/**
|
|
545
|
+
* 开锁方式 id
|
|
546
|
+
*/
|
|
547
|
+
unlockId: number;
|
|
548
|
+
/**
|
|
549
|
+
* 是否为删除所有开锁方式
|
|
550
|
+
*/
|
|
551
|
+
isRemoveAll: boolean;
|
|
552
|
+
}
|
|
553
|
+
/**
|
|
554
|
+
* 本地管理添加/删除用户记录
|
|
555
|
+
*/
|
|
556
|
+
export interface LocalAddUserData extends LocalOperateBaseData {
|
|
557
|
+
category: LocalOperateCategory.ADD_USER | LocalOperateCategory.DELETE_USER;
|
|
558
|
+
}
|
|
559
|
+
/**
|
|
560
|
+
* 本地管理设置记录
|
|
561
|
+
*/
|
|
562
|
+
export interface LocalSettingData extends LocalOperateBaseData {
|
|
563
|
+
category: LocalOperateCategory.SETTING;
|
|
564
|
+
/**
|
|
565
|
+
* 设置类型
|
|
566
|
+
*/
|
|
567
|
+
type: number;
|
|
568
|
+
data: number | Uint8Array;
|
|
569
|
+
/**
|
|
570
|
+
* 原始数据
|
|
571
|
+
*/
|
|
572
|
+
originData: Uint8Array;
|
|
573
|
+
}
|
|
574
|
+
/**
|
|
575
|
+
* 本地管理其他记录
|
|
576
|
+
*/
|
|
577
|
+
export interface LocalOperateOtherData extends LocalOperateBaseData {
|
|
578
|
+
/**
|
|
579
|
+
* 操作分类
|
|
580
|
+
*/
|
|
581
|
+
category: number;
|
|
582
|
+
/**
|
|
583
|
+
* 操作类型
|
|
584
|
+
*/
|
|
585
|
+
type: number;
|
|
586
|
+
/**
|
|
587
|
+
* 操作数据
|
|
588
|
+
*/
|
|
589
|
+
data: Uint8Array;
|
|
590
|
+
}
|
|
591
|
+
/**
|
|
592
|
+
* 设备本地操作记录
|
|
593
|
+
*/
|
|
594
|
+
export type LocalOperateData = LocalUnlockMethodData | LocalAddUserData | LocalSettingData | LocalOperateOtherData;
|
|
595
|
+
/**
|
|
596
|
+
* 多媒体信息
|
|
597
|
+
*/
|
|
598
|
+
export interface MediaInfo {
|
|
599
|
+
/**
|
|
600
|
+
* 媒体路径
|
|
601
|
+
*/
|
|
602
|
+
mediaPath: string;
|
|
603
|
+
/**
|
|
604
|
+
* 图片 key
|
|
605
|
+
*/
|
|
606
|
+
fileKey: string;
|
|
607
|
+
/**
|
|
608
|
+
* 图片 url
|
|
609
|
+
*/
|
|
610
|
+
fileUrl: string;
|
|
611
|
+
/**
|
|
612
|
+
* 媒体桶
|
|
613
|
+
*/
|
|
614
|
+
mediaBucket: string;
|
|
615
|
+
/**
|
|
616
|
+
* 媒体 key
|
|
617
|
+
*/
|
|
618
|
+
mediaKey: string;
|
|
619
|
+
}
|
|
620
|
+
/**
|
|
621
|
+
* 日志类型
|
|
622
|
+
* alarm_record 表示告警日志
|
|
623
|
+
* close_record 表示关锁日志
|
|
624
|
+
* unlock_record 表示开锁日志
|
|
625
|
+
* operation 操作类日志
|
|
626
|
+
* local_operation 设备本地操作日志
|
|
627
|
+
* dev_bind 设备绑定日志
|
|
628
|
+
*/
|
|
629
|
+
export type LogType = "alarm_record" | "close_record" | "unlock_record" | "operation" | "local_operation" | "dev_bind";
|
|
630
|
+
/**
|
|
631
|
+
* 关门记录值
|
|
632
|
+
* UNDEFINED: '未定义方式 关锁',
|
|
633
|
+
* VOICE_REMOTE: '远程语音 关锁',
|
|
634
|
+
* APP_REMOTE: '远程 关锁',
|
|
635
|
+
* AUTO: '自动 关锁',
|
|
636
|
+
* LOCAL_MANUAL: '本地手动 关锁',
|
|
637
|
+
* FITTINGS: '门锁配件 关锁',
|
|
638
|
+
* APP: '使用 手机蓝牙 关锁',
|
|
639
|
+
* GEO_FENCE: '使用 地理围栏 关锁',
|
|
640
|
+
*/
|
|
641
|
+
export type CloseValue = "UNDEFINED" | "VOICE_REMOTE" | "APP_REMOTE" | "AUTO" | "LOCAL_MANUAL" | "FITTINGS" | "APP" | "GEO_FENCE";
|
|
642
|
+
export interface LogData {
|
|
643
|
+
/**
|
|
644
|
+
* 日志id
|
|
645
|
+
*/
|
|
646
|
+
logId: string;
|
|
647
|
+
/**
|
|
648
|
+
* 日志生成时间戳,单位毫秒
|
|
649
|
+
*/
|
|
650
|
+
time: number;
|
|
651
|
+
/**
|
|
652
|
+
* 是否当前用户
|
|
653
|
+
*/
|
|
654
|
+
currentUser: boolean;
|
|
655
|
+
/**
|
|
656
|
+
* 日志类型
|
|
657
|
+
*/
|
|
658
|
+
type: LogType;
|
|
659
|
+
/**
|
|
660
|
+
* 与记录相关的用户id
|
|
661
|
+
*/
|
|
662
|
+
userId: string;
|
|
663
|
+
/**
|
|
664
|
+
* 相关dp id
|
|
665
|
+
*/
|
|
666
|
+
dpId: number;
|
|
667
|
+
/**
|
|
668
|
+
* 相关 dp code
|
|
669
|
+
*/
|
|
670
|
+
dpCode: string;
|
|
671
|
+
/**
|
|
672
|
+
* 记录对应的数据
|
|
673
|
+
* 如果是 dp 相关的,则值为 dp 的值
|
|
674
|
+
* 如果是其他类型的,则值为其他类型的数据
|
|
675
|
+
*/
|
|
676
|
+
data: any;
|
|
677
|
+
/**
|
|
678
|
+
* 与记录相关的用户昵称
|
|
679
|
+
*/
|
|
680
|
+
userName: string;
|
|
681
|
+
/**
|
|
682
|
+
* 是否未绑定,当 type 为 unlock_record 时值有意义
|
|
683
|
+
*/
|
|
684
|
+
bindable: boolean;
|
|
685
|
+
/**
|
|
686
|
+
* 开锁方式的名称,当 type 为 unlock_record 时,值有意义
|
|
687
|
+
* 如果开锁记录无对应的密码名称时,此值为空
|
|
688
|
+
*/
|
|
689
|
+
unlockName: string;
|
|
690
|
+
/**
|
|
691
|
+
* 日志对应的消息图片或视频
|
|
692
|
+
*/
|
|
693
|
+
mediaInfo?: MediaInfo[];
|
|
694
|
+
/**
|
|
695
|
+
* 组合开锁记录,当 type 为 unlock_record 时,可能有值
|
|
696
|
+
* 如果明确记录为开锁记录,但此字段无值的,则需要检查上报的数据是否有问题
|
|
697
|
+
*
|
|
698
|
+
*/
|
|
699
|
+
unionUnlockInfo?: UnionUnlockInfo[];
|
|
700
|
+
/**
|
|
701
|
+
* 关门记录值,当 type 为 close_record 时有值
|
|
702
|
+
* UNDEFINED: '未定义方式 关锁',
|
|
703
|
+
* VOICE_REMOTE: '远程语音 关锁',
|
|
704
|
+
* APP_REMOTE: '远程 关锁',
|
|
705
|
+
* AUTO: '自动 关锁',
|
|
706
|
+
* LOCAL_MANUAL: '本地手动 关锁',
|
|
707
|
+
* FITTINGS: '门锁配件 关锁',
|
|
708
|
+
* APP: '使用 手机蓝牙 关锁',
|
|
709
|
+
* GEO_FENCE: '使用 地理围栏 关锁',
|
|
710
|
+
*/
|
|
711
|
+
closeValue?: CloseValue;
|
|
712
|
+
/**
|
|
713
|
+
* 设备本地日志,当 type 为 local_operation 时,有值
|
|
714
|
+
*/
|
|
715
|
+
localRecord?: LocalOperateData;
|
|
716
|
+
/**
|
|
717
|
+
* 是否为劫持告警
|
|
718
|
+
*/
|
|
719
|
+
isHijack?: boolean;
|
|
720
|
+
/**
|
|
721
|
+
* 开锁方式类型,当 type 为 unlock_record 时,值有意义
|
|
722
|
+
*/
|
|
723
|
+
unlockMethod?: UnlockMethodType;
|
|
724
|
+
}
|
|
725
|
+
/**
|
|
726
|
+
* 临时密码类型
|
|
727
|
+
* custom 表示自定义密码
|
|
728
|
+
* once 表示一次性密码
|
|
729
|
+
* limit 表示限时密码
|
|
730
|
+
* clear 表示清除密码
|
|
731
|
+
* clearOne 表示清除单个密码
|
|
732
|
+
*/
|
|
733
|
+
export type TemporaryPasswordType = "custom" | "once" | "limit" | "clear" | "clearOne";
|
|
734
|
+
/**
|
|
735
|
+
* 临时密码结果
|
|
736
|
+
*/
|
|
737
|
+
export interface TempPasswordResult {
|
|
738
|
+
/**
|
|
739
|
+
* 临时密码类型
|
|
740
|
+
*/
|
|
741
|
+
type: TemporaryPasswordType | "dynamic";
|
|
742
|
+
/**
|
|
743
|
+
* 密码名称
|
|
744
|
+
*/
|
|
745
|
+
name: string;
|
|
746
|
+
/**
|
|
747
|
+
* 密码
|
|
748
|
+
*/
|
|
749
|
+
password: string;
|
|
750
|
+
/**
|
|
751
|
+
* 解锁绑定 ID
|
|
752
|
+
*/
|
|
753
|
+
unlockBindingId: string;
|
|
754
|
+
/**
|
|
755
|
+
* 时效配置
|
|
756
|
+
*/
|
|
757
|
+
effectiveConfig: EffectiveConfig;
|
|
758
|
+
}
|
|
759
|
+
export interface AlbumMessage extends MediaInfo {
|
|
760
|
+
/**
|
|
761
|
+
* id
|
|
762
|
+
*/
|
|
763
|
+
id: string;
|
|
764
|
+
/**
|
|
765
|
+
* AI 检测结果
|
|
766
|
+
*/
|
|
767
|
+
aiInfos: {
|
|
768
|
+
id: number;
|
|
769
|
+
/**
|
|
770
|
+
* 事件类型
|
|
771
|
+
*/
|
|
772
|
+
type: number;
|
|
773
|
+
/**
|
|
774
|
+
* 事件名称
|
|
775
|
+
*/
|
|
776
|
+
name: string;
|
|
777
|
+
/**
|
|
778
|
+
* 事件描述
|
|
779
|
+
*/
|
|
780
|
+
desc: string;
|
|
781
|
+
/**
|
|
782
|
+
* 发生时间,单位毫秒
|
|
783
|
+
*/
|
|
784
|
+
happenTime: number;
|
|
785
|
+
/**
|
|
786
|
+
* 是否已修正
|
|
787
|
+
*/
|
|
788
|
+
isCorrected: boolean;
|
|
789
|
+
}[];
|
|
790
|
+
/**
|
|
791
|
+
* AI 检测结果类型
|
|
792
|
+
*/
|
|
793
|
+
aiTypes: number[];
|
|
794
|
+
/**
|
|
795
|
+
* 消息描述
|
|
796
|
+
*/
|
|
797
|
+
describe: string;
|
|
798
|
+
/**
|
|
799
|
+
* 消息类型
|
|
800
|
+
*/
|
|
801
|
+
type: number;
|
|
802
|
+
/**
|
|
803
|
+
* 创建时间,单位毫秒
|
|
804
|
+
*/
|
|
805
|
+
createTime: number;
|
|
806
|
+
}
|
|
807
|
+
export {};
|