homebridge-cync-app 0.1.7 → 0.1.9
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/CHANGELOG.md +13 -0
- package/dist/cync/config-client.d.ts +11 -0
- package/dist/cync/config-client.js +113 -6
- package/dist/cync/config-client.js.map +1 -1
- package/dist/cync/cync-accessory-helpers.d.ts +46 -0
- package/dist/cync/cync-accessory-helpers.js +140 -0
- package/dist/cync/cync-accessory-helpers.js.map +1 -0
- package/dist/cync/cync-client.d.ts +4 -0
- package/dist/cync/cync-client.js +150 -34
- package/dist/cync/cync-client.js.map +1 -1
- package/dist/cync/cync-light-accessory.d.ts +4 -0
- package/dist/cync/cync-light-accessory.js +190 -0
- package/dist/cync/cync-light-accessory.js.map +1 -0
- package/dist/cync/cync-switch-accessory.d.ts +4 -0
- package/dist/cync/cync-switch-accessory.js +64 -0
- package/dist/cync/cync-switch-accessory.js.map +1 -0
- package/dist/cync/device-catalog.js +9 -4
- package/dist/cync/device-catalog.js.map +1 -1
- package/dist/cync/tcp-client.d.ts +7 -0
- package/dist/cync/tcp-client.js +122 -30
- package/dist/cync/tcp-client.js.map +1 -1
- package/dist/cync/token-store.js +2 -2
- package/dist/cync/token-store.js.map +1 -1
- package/dist/platform.d.ts +1 -3
- package/dist/platform.js +18 -382
- package/dist/platform.js.map +1 -1
- package/package.json +1 -1
- package/src/cync/config-client.ts +175 -12
- package/src/cync/cync-accessory-helpers.ts +233 -0
- package/src/cync/cync-client.ts +231 -44
- package/src/cync/cync-light-accessory.ts +369 -0
- package/src/cync/cync-switch-accessory.ts +119 -0
- package/src/cync/device-catalog.ts +9 -4
- package/src/cync/tcp-client.ts +153 -53
- package/src/cync/token-store.ts +3 -2
- package/src/platform.ts +49 -661
package/CHANGELOG.md
CHANGED
|
@@ -1,5 +1,18 @@
|
|
|
1
1
|
# Changelog
|
|
2
2
|
|
|
3
|
+
## v0.1.8
|
|
4
|
+
|
|
5
|
+
**Release Date:** 2025-12-11
|
|
6
|
+
|
|
7
|
+
### Added
|
|
8
|
+
- Automatic background re-authentication using username/password when access tokens expire
|
|
9
|
+
- Support for password-based login fallback when refresh tokens are unavailable
|
|
10
|
+
- Improved handling of expired Cync cloud tokens without requiring Homebridge restarts
|
|
11
|
+
|
|
12
|
+
### Fixed
|
|
13
|
+
- Devices becoming unresponsive after Cync access token expiration
|
|
14
|
+
- Cloud login failures caused by non-refreshable legacy tokens
|
|
15
|
+
|
|
3
16
|
## 0.1.7 – Token refresh & accessory polling
|
|
4
17
|
|
|
5
18
|
**Release Date:** 2025-12-10
|
|
@@ -62,6 +62,17 @@ export declare class ConfigClient {
|
|
|
62
62
|
* The access token is used for subsequent getCloudConfig() / getDeviceProperties() calls.
|
|
63
63
|
*/
|
|
64
64
|
loginWithTwoFactor(email: string, password: string, otpCode: string): Promise<CyncLoginSession>;
|
|
65
|
+
/**
|
|
66
|
+
* Password-only login for background refresh.
|
|
67
|
+
*
|
|
68
|
+
* This uses the /user_auth endpoint (no two_factor) and is intended
|
|
69
|
+
* for automatic re-auth when the access token has expired, after an
|
|
70
|
+
* initial 2FA bootstrap has already been completed.
|
|
71
|
+
*/
|
|
72
|
+
loginWithPassword(email: string, password: string): Promise<CyncLoginSession & {
|
|
73
|
+
refreshToken?: string;
|
|
74
|
+
expiresAt?: number;
|
|
75
|
+
}>;
|
|
65
76
|
/**
|
|
66
77
|
* Refresh the access token using a stored refresh token.
|
|
67
78
|
*
|
|
@@ -6,6 +6,24 @@
|
|
|
6
6
|
// own an instance of this class and persist the resulting session info.
|
|
7
7
|
const CYNC_API_BASE = 'https://api.gelighting.com/v2/';
|
|
8
8
|
const CORP_ID = '1007d2ad150c4000';
|
|
9
|
+
function extractCyncError(body) {
|
|
10
|
+
if (!body || typeof body !== 'object') {
|
|
11
|
+
return {};
|
|
12
|
+
}
|
|
13
|
+
const obj = body;
|
|
14
|
+
const err = obj.error;
|
|
15
|
+
if (!err || typeof err !== 'object') {
|
|
16
|
+
return {};
|
|
17
|
+
}
|
|
18
|
+
const e = err;
|
|
19
|
+
const code = typeof e.code === 'number' ? e.code : undefined;
|
|
20
|
+
const msg = typeof e.msg === 'string' ? e.msg : undefined;
|
|
21
|
+
return { code, msg };
|
|
22
|
+
}
|
|
23
|
+
function isDevicePropertyNotExists(status, body) {
|
|
24
|
+
const { code, msg } = extractCyncError(body);
|
|
25
|
+
return status === 404 && (code === 4041009 || msg === 'device property not exists');
|
|
26
|
+
}
|
|
9
27
|
const defaultLogger = {
|
|
10
28
|
debug: (...args) => console.debug('[cync-config]', ...args),
|
|
11
29
|
info: (...args) => console.info('[cync-config]', ...args),
|
|
@@ -114,6 +132,84 @@ export class ConfigClient {
|
|
|
114
132
|
raw: json,
|
|
115
133
|
};
|
|
116
134
|
}
|
|
135
|
+
/**
|
|
136
|
+
* Password-only login for background refresh.
|
|
137
|
+
*
|
|
138
|
+
* This uses the /user_auth endpoint (no two_factor) and is intended
|
|
139
|
+
* for automatic re-auth when the access token has expired, after an
|
|
140
|
+
* initial 2FA bootstrap has already been completed.
|
|
141
|
+
*/
|
|
142
|
+
async loginWithPassword(email, password) {
|
|
143
|
+
const url = `${CYNC_API_BASE}user_auth`;
|
|
144
|
+
this.log.debug('Logging into Cync with password-only auth for %s…', email);
|
|
145
|
+
const body = {
|
|
146
|
+
corp_id: CORP_ID,
|
|
147
|
+
email,
|
|
148
|
+
password,
|
|
149
|
+
resource: ConfigClient.randomLoginResource(),
|
|
150
|
+
};
|
|
151
|
+
const res = (await fetch(url, {
|
|
152
|
+
method: 'POST',
|
|
153
|
+
headers: {
|
|
154
|
+
'Content-Type': 'application/json',
|
|
155
|
+
},
|
|
156
|
+
body: JSON.stringify(body),
|
|
157
|
+
}));
|
|
158
|
+
const json = await res.json().catch(async () => {
|
|
159
|
+
const text = await res.text().catch(() => '');
|
|
160
|
+
throw new Error(`Cync password login returned non-JSON payload: ${text}`);
|
|
161
|
+
});
|
|
162
|
+
if (!res.ok) {
|
|
163
|
+
this.log.error('Cync password login failed: HTTP %d %s %o', res.status, res.statusText, json);
|
|
164
|
+
const errBody = json;
|
|
165
|
+
throw new Error(errBody.error?.msg ??
|
|
166
|
+
`Cync password login failed with status ${res.status} ${res.statusText}`);
|
|
167
|
+
}
|
|
168
|
+
const obj = json;
|
|
169
|
+
this.log.debug('Cync password login response: keys=%o', Object.keys(obj));
|
|
170
|
+
const accessTokenRaw = obj.access_token ?? obj.accessToken;
|
|
171
|
+
const userIdRaw = obj.user_id ?? obj.userId;
|
|
172
|
+
const authorizeRaw = obj.authorize;
|
|
173
|
+
const refreshTokenRaw = obj.refresh_token ?? obj.refreshToken;
|
|
174
|
+
const expiresAtRaw = obj.expires_at ?? obj.expiresAt;
|
|
175
|
+
const accessToken = typeof accessTokenRaw === 'string' && accessTokenRaw.length > 0
|
|
176
|
+
? accessTokenRaw
|
|
177
|
+
: undefined;
|
|
178
|
+
const userId = userIdRaw !== undefined && userIdRaw !== null
|
|
179
|
+
? String(userIdRaw)
|
|
180
|
+
: undefined;
|
|
181
|
+
const authorize = typeof authorizeRaw === 'string' && authorizeRaw.length > 0
|
|
182
|
+
? authorizeRaw
|
|
183
|
+
: undefined;
|
|
184
|
+
if (!accessToken || !userId) {
|
|
185
|
+
this.log.error('Cync password login missing access_token or user_id: %o', json);
|
|
186
|
+
throw new Error('Cync password login response missing access_token or user_id');
|
|
187
|
+
}
|
|
188
|
+
let refreshToken;
|
|
189
|
+
if (typeof refreshTokenRaw === 'string' && refreshTokenRaw.length > 0) {
|
|
190
|
+
refreshToken = refreshTokenRaw;
|
|
191
|
+
}
|
|
192
|
+
let expiresAt;
|
|
193
|
+
if (typeof expiresAtRaw === 'number') {
|
|
194
|
+
expiresAt = expiresAtRaw;
|
|
195
|
+
}
|
|
196
|
+
this.accessToken = accessToken;
|
|
197
|
+
this.userId = userId;
|
|
198
|
+
this.authorize = authorize ?? null;
|
|
199
|
+
this.log.info('Cync password login successful; userId=%s', userId);
|
|
200
|
+
return {
|
|
201
|
+
accessToken,
|
|
202
|
+
userId,
|
|
203
|
+
authorize,
|
|
204
|
+
raw: {
|
|
205
|
+
...obj,
|
|
206
|
+
refreshToken,
|
|
207
|
+
expiresAt,
|
|
208
|
+
},
|
|
209
|
+
refreshToken,
|
|
210
|
+
expiresAt,
|
|
211
|
+
};
|
|
212
|
+
}
|
|
117
213
|
/**
|
|
118
214
|
* Refresh the access token using a stored refresh token.
|
|
119
215
|
*
|
|
@@ -247,12 +343,23 @@ export class ConfigClient {
|
|
|
247
343
|
throw new Error(`Cync properties returned non-JSON payload: ${text}`);
|
|
248
344
|
});
|
|
249
345
|
if (!res.ok) {
|
|
250
|
-
|
|
251
|
-
const
|
|
252
|
-
|
|
253
|
-
|
|
346
|
+
const { code, msg } = extractCyncError(json);
|
|
347
|
+
const outMsg = msg ?? `Cync properties failed with ${res.status}`;
|
|
348
|
+
if (isDevicePropertyNotExists(res.status, json)) {
|
|
349
|
+
this.log.debug('Cync properties call failed (expected): HTTP %d %s code=%s msg=%s', res.status, res.statusText, code !== undefined ? String(code) : 'unknown', outMsg);
|
|
350
|
+
}
|
|
351
|
+
else {
|
|
352
|
+
this.log.error('Cync properties call failed: HTTP %d %s %o', res.status, res.statusText, json);
|
|
353
|
+
}
|
|
354
|
+
const e = {
|
|
355
|
+
status: res.status,
|
|
356
|
+
statusText: res.statusText,
|
|
357
|
+
body: json,
|
|
358
|
+
code,
|
|
359
|
+
msg: outMsg,
|
|
360
|
+
};
|
|
361
|
+
throw e;
|
|
254
362
|
}
|
|
255
|
-
// We keep this as a loose record; callers can shape it as needed.
|
|
256
363
|
return json;
|
|
257
364
|
}
|
|
258
365
|
restoreSession(accessToken, userId) {
|
|
@@ -271,7 +378,7 @@ export class ConfigClient {
|
|
|
271
378
|
throw new Error('Cync session not initialised. Call loginWithTwoFactor() first.');
|
|
272
379
|
}
|
|
273
380
|
}
|
|
274
|
-
//
|
|
381
|
+
// LAN Login Blob Builder: Generates the auth_code payload used by Cync LAN TCP
|
|
275
382
|
static buildLanLoginCode(userId, authorize) {
|
|
276
383
|
const authBytes = Buffer.from(authorize, 'ascii');
|
|
277
384
|
const lengthByte = 10 + authBytes.length;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"config-client.js","sourceRoot":"","sources":["../../src/cync/config-client.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"config-client.js","sourceRoot":"","sources":["../../src/cync/config-client.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,46 @@
|
|
|
1
|
+
import type { API, Logger, PlatformAccessory } from 'homebridge';
|
|
2
|
+
import type { CyncDevice } from './config-client.js';
|
|
3
|
+
import type { TcpClient } from './tcp-client.js';
|
|
4
|
+
export interface CyncAccessoryContext {
|
|
5
|
+
cync?: {
|
|
6
|
+
meshId: string;
|
|
7
|
+
deviceId: string;
|
|
8
|
+
productId?: string;
|
|
9
|
+
on?: boolean;
|
|
10
|
+
brightness?: number;
|
|
11
|
+
hue?: number;
|
|
12
|
+
saturation?: number;
|
|
13
|
+
rgb?: {
|
|
14
|
+
r: number;
|
|
15
|
+
g: number;
|
|
16
|
+
b: number;
|
|
17
|
+
};
|
|
18
|
+
colorActive?: boolean;
|
|
19
|
+
};
|
|
20
|
+
[key: string]: unknown;
|
|
21
|
+
}
|
|
22
|
+
export interface CyncAccessoryEnv {
|
|
23
|
+
log: Logger;
|
|
24
|
+
api: API;
|
|
25
|
+
tcpClient: TcpClient;
|
|
26
|
+
isDeviceProbablyOffline(deviceId: string): boolean;
|
|
27
|
+
markDeviceSeen(deviceId: string): void;
|
|
28
|
+
startPollingDevice(deviceId: string): void;
|
|
29
|
+
registerAccessoryForDevice(deviceId: string, accessory: PlatformAccessory): void;
|
|
30
|
+
}
|
|
31
|
+
/**
|
|
32
|
+
* HSV (HomeKit style) → RGB helper used by color lights.
|
|
33
|
+
*/
|
|
34
|
+
export declare function hsvToRgb(hue: number, saturation: number, value: number): {
|
|
35
|
+
r: number;
|
|
36
|
+
g: number;
|
|
37
|
+
b: number;
|
|
38
|
+
};
|
|
39
|
+
/**
|
|
40
|
+
* Resolve the numeric device type from cloud + raw device shape.
|
|
41
|
+
*/
|
|
42
|
+
export declare function resolveDeviceType(device: CyncDevice): number | undefined;
|
|
43
|
+
/**
|
|
44
|
+
* Populate the standard Accessory Information service with Cync metadata.
|
|
45
|
+
*/
|
|
46
|
+
export declare function applyAccessoryInformationFromCyncDevice(api: API, accessory: PlatformAccessory, device: CyncDevice, deviceName: string, deviceId: string): void;
|
|
@@ -0,0 +1,140 @@
|
|
|
1
|
+
import { lookupDeviceModel } from './device-catalog.js';
|
|
2
|
+
/**
|
|
3
|
+
* HSV (HomeKit style) → RGB helper used by color lights.
|
|
4
|
+
*/
|
|
5
|
+
export function hsvToRgb(hue, saturation, value) {
|
|
6
|
+
const h = ((hue % 360) + 360) % 360;
|
|
7
|
+
const s = Math.max(0, Math.min(100, saturation)) / 100;
|
|
8
|
+
const v = Math.max(0, Math.min(100, value)) / 100;
|
|
9
|
+
if (s === 0) {
|
|
10
|
+
const grey = Math.round(v * 255);
|
|
11
|
+
return { r: grey, g: grey, b: grey };
|
|
12
|
+
}
|
|
13
|
+
const sector = h / 60;
|
|
14
|
+
const i = Math.floor(sector);
|
|
15
|
+
const f = sector - i;
|
|
16
|
+
const p = v * (1 - s);
|
|
17
|
+
const q = v * (1 - s * f);
|
|
18
|
+
const t = v * (1 - s * (1 - f));
|
|
19
|
+
let r = 0;
|
|
20
|
+
let g = 0;
|
|
21
|
+
let b = 0;
|
|
22
|
+
switch (i) {
|
|
23
|
+
case 0:
|
|
24
|
+
r = v;
|
|
25
|
+
g = t;
|
|
26
|
+
b = p;
|
|
27
|
+
break;
|
|
28
|
+
case 1:
|
|
29
|
+
r = q;
|
|
30
|
+
g = v;
|
|
31
|
+
b = p;
|
|
32
|
+
break;
|
|
33
|
+
case 2:
|
|
34
|
+
r = p;
|
|
35
|
+
g = v;
|
|
36
|
+
b = t;
|
|
37
|
+
break;
|
|
38
|
+
case 3:
|
|
39
|
+
r = p;
|
|
40
|
+
g = q;
|
|
41
|
+
b = v;
|
|
42
|
+
break;
|
|
43
|
+
case 4:
|
|
44
|
+
r = t;
|
|
45
|
+
g = p;
|
|
46
|
+
b = v;
|
|
47
|
+
break;
|
|
48
|
+
default:
|
|
49
|
+
r = v;
|
|
50
|
+
g = p;
|
|
51
|
+
b = q;
|
|
52
|
+
break;
|
|
53
|
+
}
|
|
54
|
+
return {
|
|
55
|
+
r: Math.round(r * 255),
|
|
56
|
+
g: Math.round(g * 255),
|
|
57
|
+
b: Math.round(b * 255),
|
|
58
|
+
};
|
|
59
|
+
}
|
|
60
|
+
/**
|
|
61
|
+
* Resolve the numeric device type from cloud + raw device shape.
|
|
62
|
+
*/
|
|
63
|
+
export function resolveDeviceType(device) {
|
|
64
|
+
const typedDevice = device;
|
|
65
|
+
if (typeof typedDevice.device_type === 'number') {
|
|
66
|
+
return typedDevice.device_type;
|
|
67
|
+
}
|
|
68
|
+
const rawType = typedDevice.raw?.deviceType;
|
|
69
|
+
if (typeof rawType === 'number') {
|
|
70
|
+
return rawType;
|
|
71
|
+
}
|
|
72
|
+
if (typeof rawType === 'string' && rawType.trim() !== '') {
|
|
73
|
+
const parsed = Number(rawType.trim());
|
|
74
|
+
if (!Number.isNaN(parsed)) {
|
|
75
|
+
return parsed;
|
|
76
|
+
}
|
|
77
|
+
}
|
|
78
|
+
return undefined;
|
|
79
|
+
}
|
|
80
|
+
/**
|
|
81
|
+
* Populate the standard Accessory Information service with Cync metadata.
|
|
82
|
+
*/
|
|
83
|
+
export function applyAccessoryInformationFromCyncDevice(api, accessory, device, deviceName, deviceId) {
|
|
84
|
+
const infoService = accessory.getService(api.hap.Service.AccessoryInformation);
|
|
85
|
+
if (!infoService) {
|
|
86
|
+
return;
|
|
87
|
+
}
|
|
88
|
+
const Characteristic = api.hap.Characteristic;
|
|
89
|
+
const deviceWithRaw = device;
|
|
90
|
+
const rawDevice = deviceWithRaw.raw ?? {};
|
|
91
|
+
// Name: keep in sync with how we present the accessory
|
|
92
|
+
const name = deviceName || accessory.displayName;
|
|
93
|
+
infoService.updateCharacteristic(Characteristic.Name, name);
|
|
94
|
+
// Manufacturer: fixed for all Cync devices
|
|
95
|
+
infoService.updateCharacteristic(Characteristic.Manufacturer, 'GE Lighting');
|
|
96
|
+
// Model: prefer catalog entry (Cync app-style model name), fall back to raw info
|
|
97
|
+
const resolvedType = resolveDeviceType(device);
|
|
98
|
+
const catalogEntry = typeof resolvedType === 'number'
|
|
99
|
+
? lookupDeviceModel(resolvedType)
|
|
100
|
+
: undefined;
|
|
101
|
+
let model;
|
|
102
|
+
if (catalogEntry) {
|
|
103
|
+
// Use the Cync app-style model name
|
|
104
|
+
model = catalogEntry.modelName;
|
|
105
|
+
// Persist for debugging / future use
|
|
106
|
+
const ctx = accessory.context;
|
|
107
|
+
ctx.deviceType = resolvedType;
|
|
108
|
+
ctx.modelName = catalogEntry.modelName;
|
|
109
|
+
if (catalogEntry.marketingName) {
|
|
110
|
+
ctx.marketingName = catalogEntry.marketingName;
|
|
111
|
+
}
|
|
112
|
+
}
|
|
113
|
+
else {
|
|
114
|
+
// Fallback: use device displayName + type
|
|
115
|
+
const modelBase = typeof rawDevice.displayName === 'string' && rawDevice.displayName.trim().length > 0
|
|
116
|
+
? rawDevice.displayName.trim()
|
|
117
|
+
: 'Cync Device';
|
|
118
|
+
const modelSuffix = typeof resolvedType === 'number'
|
|
119
|
+
? ` (Type ${resolvedType})`
|
|
120
|
+
: '';
|
|
121
|
+
model = modelBase + modelSuffix;
|
|
122
|
+
}
|
|
123
|
+
infoService.updateCharacteristic(Characteristic.Model, model);
|
|
124
|
+
// Serial: prefer wifiMac, then mac, then deviceID, then the string deviceId
|
|
125
|
+
const serial = (typeof rawDevice.wifiMac === 'string' && rawDevice.wifiMac.trim().length > 0)
|
|
126
|
+
? rawDevice.wifiMac.trim()
|
|
127
|
+
: (typeof rawDevice.mac === 'string' && rawDevice.mac.trim().length > 0)
|
|
128
|
+
? rawDevice.mac.trim()
|
|
129
|
+
: (rawDevice.deviceID !== undefined
|
|
130
|
+
? String(rawDevice.deviceID)
|
|
131
|
+
: deviceId);
|
|
132
|
+
infoService.updateCharacteristic(Characteristic.SerialNumber, serial);
|
|
133
|
+
// Firmware / Software revision
|
|
134
|
+
if (typeof rawDevice.firmwareVersion === 'string' && rawDevice.firmwareVersion.trim().length > 0) {
|
|
135
|
+
const rev = rawDevice.firmwareVersion.trim();
|
|
136
|
+
infoService.updateCharacteristic(Characteristic.FirmwareRevision, rev);
|
|
137
|
+
infoService.updateCharacteristic(Characteristic.SoftwareRevision, rev);
|
|
138
|
+
}
|
|
139
|
+
}
|
|
140
|
+
//# sourceMappingURL=cync-accessory-helpers.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"cync-accessory-helpers.js","sourceRoot":"","sources":["../../src/cync/cync-accessory-helpers.ts"],"names":[],"mappings":"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"}
|
|
@@ -4,8 +4,11 @@ export declare class CyncClient {
|
|
|
4
4
|
private readonly log;
|
|
5
5
|
private readonly configClient;
|
|
6
6
|
private readonly tcpClient;
|
|
7
|
+
private readonly unsupportedPropertiesProductIds;
|
|
7
8
|
private readonly tokenStore;
|
|
8
9
|
private tokenData;
|
|
10
|
+
private isDevicePropertyNotExistsError;
|
|
11
|
+
private formatMeshLabel;
|
|
9
12
|
private session;
|
|
10
13
|
private cloudConfig;
|
|
11
14
|
private homeDevices;
|
|
@@ -13,6 +16,7 @@ export declare class CyncClient {
|
|
|
13
16
|
private switchIdToHomeId;
|
|
14
17
|
private readonly loginConfig;
|
|
15
18
|
private lanUpdateHandler;
|
|
19
|
+
private loginWithPasswordForToken;
|
|
16
20
|
onLanDeviceUpdate(handler: (update: unknown) => void): void;
|
|
17
21
|
getLanLoginCode(): Uint8Array;
|
|
18
22
|
constructor(configClient: ConfigClient, tcpClient: TcpClient, loginConfig: {
|