homebridge-cync-app 0.1.1 → 0.1.3
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 +16 -0
- package/README.md +1 -0
- package/config.schema.json +8 -2
- package/dist/cync/config-client.d.ts +0 -4
- package/dist/cync/config-client.js +0 -1
- package/dist/cync/config-client.js.map +1 -1
- package/dist/cync/cync-client.js +2 -0
- package/dist/cync/cync-client.js.map +1 -1
- package/dist/cync/tcp-client.d.ts +8 -2
- package/dist/cync/tcp-client.js +64 -12
- package/dist/cync/tcp-client.js.map +1 -1
- package/dist/cync/token-store.d.ts +4 -0
- package/dist/cync/token-store.js +10 -2
- package/dist/cync/token-store.js.map +1 -1
- package/eslint.config.js +5 -1
- package/homebridge-ui/public/icon.png +0 -0
- package/homebridge-ui/public/index.html +121 -0
- package/homebridge-ui/server.js +97 -0
- package/package.json +5 -3
- package/src/cync/config-client.ts +1 -6
- package/src/cync/cync-client.ts +4 -0
- package/src/cync/tcp-client.ts +88 -18
- package/src/cync/token-store.ts +11 -2
package/CHANGELOG.md
CHANGED
|
@@ -1,5 +1,21 @@
|
|
|
1
1
|
# Changelog
|
|
2
2
|
|
|
3
|
+
## 0.1.2 – 2025-11-26
|
|
4
|
+
|
|
5
|
+
### Fixes
|
|
6
|
+
|
|
7
|
+
- Improve reliability when HomeKit scenes toggle multiple Cync plugs at once.
|
|
8
|
+
- Serialize LAN power commands through a send queue so multiple `On.set` calls share a single TCP session instead of opening parallel connections.
|
|
9
|
+
- Reuse an existing LAN socket for burst traffic and pace packets slightly to avoid race conditions with the Cync bridge.
|
|
10
|
+
- Ensure per-device LAN updates are consistently received for both outlets after scene execution.
|
|
11
|
+
|
|
12
|
+
### Internal
|
|
13
|
+
|
|
14
|
+
- Add a queued send path to `TcpClient` with a `flushQueue()` helper that writes packets in order over one socket.
|
|
15
|
+
- Guard `ensureConnected()` with a shared `connecting` promise so concurrent calls don’t race separate `establishSocket()` attempts.
|
|
16
|
+
- Make the socket `close` handler only null out `this.socket` when it corresponds to the active instance (avoids stray listeners from older sockets).
|
|
17
|
+
|
|
18
|
+
|
|
3
19
|
## 0.1.0 – LAN Control Preview
|
|
4
20
|
|
|
5
21
|
- Implemented TCP client for Cync LAN bridge using the cloud-provided login code.
|
package/README.md
CHANGED
|
@@ -68,3 +68,4 @@ Add a platform entry to your Homebridge `config.json`:
|
|
|
68
68
|
- Switch states update independently and stay in sync between the Cync app and HomeKit.
|
|
69
69
|
- Cloud config is still used for login + topology, but ongoing control is via TCP.
|
|
70
70
|
|
|
71
|
+
**This plugin is an unofficial integration and is not affiliated with GE or Cync.**
|
package/config.schema.json
CHANGED
|
@@ -1,7 +1,8 @@
|
|
|
1
1
|
{
|
|
2
2
|
"pluginAlias": "CyncAppPlatform",
|
|
3
3
|
"pluginType": "platform",
|
|
4
|
-
|
|
4
|
+
"singular": true,
|
|
5
|
+
"customUi": true,
|
|
5
6
|
"schema": {
|
|
6
7
|
"type": "object",
|
|
7
8
|
"properties": {
|
|
@@ -15,19 +16,24 @@
|
|
|
15
16
|
"title": "Cync Email",
|
|
16
17
|
"type": "string",
|
|
17
18
|
"format": "email",
|
|
19
|
+
"required": true,
|
|
20
|
+
"default": "",
|
|
18
21
|
"description": "Email address you use to sign in to the Cync app."
|
|
19
22
|
},
|
|
20
23
|
"password": {
|
|
21
24
|
"title": "Cync Password",
|
|
22
25
|
"type": "string",
|
|
23
26
|
"format": "password",
|
|
27
|
+
"required": true,
|
|
28
|
+
"default": "",
|
|
24
29
|
"description": "Password for your Cync account."
|
|
25
30
|
},
|
|
26
31
|
"twoFactor": {
|
|
27
32
|
"title": "Two-Factor Code (OTP)",
|
|
28
33
|
"type": "string",
|
|
29
34
|
"pattern": "^[0-9]{6}$",
|
|
30
|
-
"
|
|
35
|
+
"default": "",
|
|
36
|
+
"description": "Temporary 6-digit code emailed by Cync when you sign in."
|
|
31
37
|
}
|
|
32
38
|
},
|
|
33
39
|
"required": [
|
|
@@ -29,10 +29,6 @@ export interface CyncDeviceMesh {
|
|
|
29
29
|
export interface CyncCloudConfig {
|
|
30
30
|
meshes: CyncDeviceMesh[];
|
|
31
31
|
}
|
|
32
|
-
/**
|
|
33
|
-
* Very small logger interface so we can accept either the Homebridge log
|
|
34
|
-
* object or console.* functions in tests.
|
|
35
|
-
*/
|
|
36
32
|
export interface CyncLogger {
|
|
37
33
|
debug(message: string, ...args: unknown[]): void;
|
|
38
34
|
info(message: string, ...args: unknown[]): void;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"config-client.js","sourceRoot":"","sources":["../../src/cync/config-client.ts"],"names":[],"mappings":"AAAA,4BAA4B;AAC5B,2CAA2C;AAC3C,qFAAqF;AACrF,EAAE;AACF,+EAA+E;AAC/E,wEAAwE;AAExE,MAAM,aAAa,GAAG,gCAAgC,CAAC;AACvD,MAAM,OAAO,GAAG,kBAAkB,CAAC;
|
|
1
|
+
{"version":3,"file":"config-client.js","sourceRoot":"","sources":["../../src/cync/config-client.ts"],"names":[],"mappings":"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"}
|
package/dist/cync/cync-client.js
CHANGED
|
@@ -125,6 +125,8 @@ export class CyncClient {
|
|
|
125
125
|
// Hydrate ConfigClient + session snapshot from the freshly obtained token.
|
|
126
126
|
this.applyAccessToken(tokenData);
|
|
127
127
|
this.log.info('Cync login successful; userId=%s (token stored)', tokenData.userId);
|
|
128
|
+
this.log.info('Cync: 2FA login complete and a token has been stored. You may now clear the "twoFactor" code from the plugin config; ' +
|
|
129
|
+
'it will only be needed again if the stored token expires or is removed.');
|
|
128
130
|
return true;
|
|
129
131
|
}
|
|
130
132
|
/**
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"cync-client.js","sourceRoot":"","sources":["../../src/cync/cync-client.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"cync-client.js","sourceRoot":"","sources":["../../src/cync/cync-client.ts"],"names":[],"mappings":"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"}
|
|
@@ -19,6 +19,9 @@ export declare class TcpClient {
|
|
|
19
19
|
private heartbeatTimer;
|
|
20
20
|
private rawFrameListeners;
|
|
21
21
|
private controllerToDevice;
|
|
22
|
+
private connecting;
|
|
23
|
+
private readonly sendQueue;
|
|
24
|
+
private sending;
|
|
22
25
|
private parseSwitchStateFrame;
|
|
23
26
|
private parseLanSwitchUpdate;
|
|
24
27
|
constructor(logger?: CyncLogger);
|
|
@@ -36,7 +39,8 @@ export declare class TcpClient {
|
|
|
36
39
|
}): void;
|
|
37
40
|
/**
|
|
38
41
|
* Ensure we have an open, logged-in socket.
|
|
39
|
-
* If
|
|
42
|
+
* If multiple callers invoke this concurrently, they will share a single
|
|
43
|
+
* connection attempt via `this.connecting`.
|
|
40
44
|
*/
|
|
41
45
|
private ensureConnected;
|
|
42
46
|
/**
|
|
@@ -48,6 +52,7 @@ export declare class TcpClient {
|
|
|
48
52
|
private openTcpSocket;
|
|
49
53
|
private startHeartbeat;
|
|
50
54
|
private nextSeq;
|
|
55
|
+
private flushQueue;
|
|
51
56
|
private buildPowerPacket;
|
|
52
57
|
disconnect(): Promise<void>;
|
|
53
58
|
onDeviceUpdate(cb: DeviceUpdateCallback): void;
|
|
@@ -57,7 +62,8 @@ export declare class TcpClient {
|
|
|
57
62
|
onRawFrame(listener: RawFrameListener): void;
|
|
58
63
|
/**
|
|
59
64
|
* High-level API to change switch state.
|
|
60
|
-
*
|
|
65
|
+
* Now enqueues a power packet so multiple HomeKit scene writes are
|
|
66
|
+
* serialized over a single TCP session.
|
|
61
67
|
*/
|
|
62
68
|
setSwitchState(deviceId: string, params: {
|
|
63
69
|
on: boolean;
|
package/dist/cync/tcp-client.js
CHANGED
|
@@ -30,6 +30,9 @@ export class TcpClient {
|
|
|
30
30
|
heartbeatTimer = null;
|
|
31
31
|
rawFrameListeners = [];
|
|
32
32
|
controllerToDevice = new Map();
|
|
33
|
+
connecting = null;
|
|
34
|
+
sendQueue = [];
|
|
35
|
+
sending = false;
|
|
33
36
|
parseSwitchStateFrame(frame) {
|
|
34
37
|
if (frame.length < 16) {
|
|
35
38
|
return null;
|
|
@@ -120,7 +123,8 @@ export class TcpClient {
|
|
|
120
123
|
}
|
|
121
124
|
/**
|
|
122
125
|
* Ensure we have an open, logged-in socket.
|
|
123
|
-
* If
|
|
126
|
+
* If multiple callers invoke this concurrently, they will share a single
|
|
127
|
+
* connection attempt via `this.connecting`.
|
|
124
128
|
*/
|
|
125
129
|
async ensureConnected() {
|
|
126
130
|
if (this.socket && !this.socket.destroyed) {
|
|
@@ -130,8 +134,22 @@ export class TcpClient {
|
|
|
130
134
|
this.log.warn('[Cync TCP] ensureConnected() called without loginCode/config; cannot open socket.');
|
|
131
135
|
return false;
|
|
132
136
|
}
|
|
133
|
-
|
|
134
|
-
|
|
137
|
+
if (!this.connecting) {
|
|
138
|
+
this.connecting = (async () => {
|
|
139
|
+
await this.establishSocket();
|
|
140
|
+
const ok = !!(this.socket && !this.socket.destroyed);
|
|
141
|
+
if (!ok) {
|
|
142
|
+
this.log.warn('[Cync TCP] establishSocket() completed but socket is not usable.');
|
|
143
|
+
}
|
|
144
|
+
this.connecting = null;
|
|
145
|
+
return ok;
|
|
146
|
+
})().catch((err) => {
|
|
147
|
+
this.log.error('[Cync TCP] ensureConnected() connect attempt failed: %s', String(err));
|
|
148
|
+
this.connecting = null;
|
|
149
|
+
return false;
|
|
150
|
+
});
|
|
151
|
+
}
|
|
152
|
+
return this.connecting;
|
|
135
153
|
}
|
|
136
154
|
/**
|
|
137
155
|
* Open a new socket to cm.gelighting.com and send the loginCode,
|
|
@@ -218,6 +236,33 @@ export class TcpClient {
|
|
|
218
236
|
}
|
|
219
237
|
return this.seq;
|
|
220
238
|
}
|
|
239
|
+
async flushQueue() {
|
|
240
|
+
if (this.sending) {
|
|
241
|
+
return;
|
|
242
|
+
}
|
|
243
|
+
this.sending = true;
|
|
244
|
+
try {
|
|
245
|
+
while (this.sendQueue.length > 0) {
|
|
246
|
+
const item = this.sendQueue.shift();
|
|
247
|
+
if (!item) {
|
|
248
|
+
break;
|
|
249
|
+
}
|
|
250
|
+
const connected = await this.ensureConnected();
|
|
251
|
+
if (!connected || !this.socket || this.socket.destroyed) {
|
|
252
|
+
this.log.warn('[Cync TCP] Socket not available while flushing queue; dropping remaining %d packets.', this.sendQueue.length + 1);
|
|
253
|
+
this.sendQueue.length = 0;
|
|
254
|
+
break;
|
|
255
|
+
}
|
|
256
|
+
this.socket.write(item.packet);
|
|
257
|
+
this.log.info('[Cync TCP] Sent power packet: device=%s on=%s seq=%d', item.deviceId, String(item.on), item.seq);
|
|
258
|
+
// Small delay so we don't hammer the bridge/device with a burst
|
|
259
|
+
await new Promise((resolve) => setTimeout(resolve, 50));
|
|
260
|
+
}
|
|
261
|
+
}
|
|
262
|
+
finally {
|
|
263
|
+
this.sending = false;
|
|
264
|
+
}
|
|
265
|
+
}
|
|
221
266
|
buildPowerPacket(controllerId, meshId, on, seq) {
|
|
222
267
|
const header = Buffer.from('730000001f', 'hex');
|
|
223
268
|
const switchBytes = Buffer.alloc(4);
|
|
@@ -253,6 +298,9 @@ export class TcpClient {
|
|
|
253
298
|
this.socket.destroy();
|
|
254
299
|
this.socket = null;
|
|
255
300
|
}
|
|
301
|
+
this.sendQueue.length = 0;
|
|
302
|
+
this.sending = false;
|
|
303
|
+
this.connecting = null;
|
|
256
304
|
}
|
|
257
305
|
onDeviceUpdate(cb) {
|
|
258
306
|
this.log.info('[Cync TCP] device update subscriber registered.');
|
|
@@ -272,18 +320,14 @@ export class TcpClient {
|
|
|
272
320
|
}
|
|
273
321
|
/**
|
|
274
322
|
* High-level API to change switch state.
|
|
275
|
-
*
|
|
323
|
+
* Now enqueues a power packet so multiple HomeKit scene writes are
|
|
324
|
+
* serialized over a single TCP session.
|
|
276
325
|
*/
|
|
277
326
|
async setSwitchState(deviceId, params) {
|
|
278
327
|
if (!this.config) {
|
|
279
328
|
this.log.warn('[Cync TCP] No config available.');
|
|
280
329
|
return;
|
|
281
330
|
}
|
|
282
|
-
const connected = await this.ensureConnected();
|
|
283
|
-
if (!connected || !this.socket || this.socket.destroyed) {
|
|
284
|
-
this.log.warn('[Cync TCP] Cannot send, socket not ready even after reconnect attempt.');
|
|
285
|
-
return;
|
|
286
|
-
}
|
|
287
331
|
const device = this.findDevice(deviceId);
|
|
288
332
|
if (!device) {
|
|
289
333
|
this.log.warn('[Cync TCP] Unknown deviceId=%s', deviceId);
|
|
@@ -297,8 +341,14 @@ export class TcpClient {
|
|
|
297
341
|
}
|
|
298
342
|
const seq = this.nextSeq();
|
|
299
343
|
const packet = this.buildPowerPacket(controllerId, meshIndex, params.on, seq);
|
|
300
|
-
this.
|
|
301
|
-
|
|
344
|
+
this.sendQueue.push({
|
|
345
|
+
deviceId,
|
|
346
|
+
on: params.on,
|
|
347
|
+
seq,
|
|
348
|
+
packet,
|
|
349
|
+
});
|
|
350
|
+
// Async fire-and-forget; actual sends are serialized in flushQueue()
|
|
351
|
+
void this.flushQueue();
|
|
302
352
|
}
|
|
303
353
|
findDevice(deviceId) {
|
|
304
354
|
for (const mesh of this.config?.meshes ?? []) {
|
|
@@ -325,7 +375,9 @@ export class TcpClient {
|
|
|
325
375
|
});
|
|
326
376
|
socket.on('close', () => {
|
|
327
377
|
this.log.warn('[Cync TCP] Socket closed.');
|
|
328
|
-
this.socket
|
|
378
|
+
if (this.socket === socket) {
|
|
379
|
+
this.socket = null;
|
|
380
|
+
}
|
|
329
381
|
});
|
|
330
382
|
socket.on('error', (err) => {
|
|
331
383
|
this.log.error('[Cync TCP] Socket error:', String(err));
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"tcp-client.js","sourceRoot":"","sources":["../../src/cync/tcp-client.ts"],"names":[],"mappings":"AAAA,yBAAyB;AAGzB,OAAO,GAAG,MAAM,KAAK,CAAC;AACtB,OAAO,GAAG,MAAM,KAAK,CAAC;AAEtB,MAAM,aAAa,GAAe;IACjC,KAAK,EAAE,CAAC,GAAG,IAAe,EAAE,EAAE,CAAC,OAAO,CAAC,KAAK,CAAC,YAAY,EAAE,GAAG,IAAI,CAAC;IACnE,IAAI,EAAE,CAAC,GAAG,IAAe,EAAE,EAAE,CAAC,OAAO,CAAC,IAAI,CAAC,YAAY,EAAE,GAAG,IAAI,CAAC;IACjE,IAAI,EAAE,CAAC,GAAG,IAAe,EAAE,EAAE,CAAC,OAAO,CAAC,IAAI,CAAC,YAAY,EAAE,GAAG,IAAI,CAAC;IACjE,KAAK,EAAE,CAAC,GAAG,IAAe,EAAE,EAAE,CAAC,OAAO,CAAC,KAAK,CAAC,YAAY,EAAE,GAAG,IAAI,CAAC;CACnE,CAAC;AAKF,MAAM,OAAO,SAAS;IACd,qBAAqB,CAAC,YAAoB,EAAE,QAAgB;QAClE,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC,YAAY,CAAC,EAAE,CAAC;YACpC,OAAO;QACR,CAAC;QACD,IAAI,CAAC,kBAAkB,CAAC,GAAG,CAAC,YAAY,EAAE,QAAQ,CAAC,CAAC;IACrD,CAAC;IACO,WAAW,GAA6B,EAAE,CAAC;IAC3C,gBAAgB,GAAG,IAAI,GAAG,EAAkB,CAAC;IACpC,GAAG,CAAa;IACzB,SAAS,GAAsB,IAAI,CAAC;IACpC,MAAM,GAA2B,IAAI,CAAC;IACtC,WAAW,GAAG,IAAI,GAAG,EAAsB,CAAC;IAC5C,cAAc,GAAgC,IAAI,CAAC;IACnD,YAAY,GAAgC,IAAI,CAAC;IACjD,cAAc,GAAgC,IAAI,CAAC;IACnD,eAAe,GAAgC,IAAI,CAAC;IACpD,MAAM,GAAsB,IAAI,CAAC;IACjC,GAAG,GAAG,CAAC,CAAC;IACR,UAAU,GAAG,MAAM,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC;IAC7B,cAAc,GAA0B,IAAI,CAAC;IAC7C,iBAAiB,GAAuB,EAAE,CAAC;IAC3C,kBAAkB,GAAG,IAAI,GAAG,EAAkB,CAAC;IAC/C,qBAAqB,CAAC,KAAa;QAC1C,IAAI,KAAK,CAAC,MAAM,GAAG,EAAE,EAAE,CAAC;YACvB,OAAO,IAAI,CAAC;QACb,CAAC;QAED,mDAAmD;QACnD,MAAM,YAAY,GAAG,KAAK,CAAC,YAAY,CAAC,CAAC,CAAC,CAAC;QAE3C,2CAA2C;QAC3C,MAAM,MAAM,GAAG,MAAM,CAAC,IAAI,CAAC,UAAU,EAAE,KAAK,CAAC,CAAC;QAC9C,MAAM,GAAG,GAAG,KAAK,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC;QAElC,IAAI,GAAG,KAAK,CAAC,CAAC,EAAE,CAAC;YAChB,OAAO,IAAI,CAAC;QACb,CAAC;QAED,kEAAkE;QAClE,MAAM,OAAO,GAAG,GAAG,GAAG,MAAM,CAAC,MAAM,CAAC;QACpC,MAAM,UAAU,GAAG,OAAO,GAAG,CAAC,CAAC;QAE/B,IAAI,UAAU,IAAI,KAAK,CAAC,MAAM,EAAE,CAAC;YAChC,OAAO,IAAI,CAAC;QACb,CAAC;QAED,MAAM,MAAM,GAAG,KAAK,CAAC,OAAO,CAAC,CAAC;QAC9B,MAAM,KAAK,GAAG,KAAK,CAAC,UAAU,CAAC,CAAC;QAEhC,MAAM,EAAE,GAAG,MAAM,KAAK,IAAI,IAAI,KAAK,GAAG,CAAC,CAAC;QAExC,OAAO,EAAE,YAAY,EAAE,EAAE,EAAE,KAAK,EAAE,CAAC;IACpC,CAAC;IAEO,oBAAoB,CAAC,KAAa;QAMzC,gDAAgD;QAChD,6EAA6E;QAC7E,IAAI,KAAK,CAAC,MAAM,GAAG,EAAE,EAAE,CAAC;YACvB,OAAO,IAAI,CAAC;QACb,CAAC;QAED,MAAM,YAAY,GAAG,KAAK,CAAC,YAAY,CAAC,CAAC,CAAC,CAAC;QAE3C,MAAM,MAAM,GAAG,IAAI,CAAC,gBAAgB,CAAC,GAAG,CAAC,YAAY,CAAC,CAAC;QACvD,IAAI,CAAC,MAAM,EAAE,CAAC;YACb,OAAO,IAAI,CAAC;QACb,CAAC;QAED,MAAM,OAAO,GAAG,IAAI,CAAC,WAAW,CAAC,MAAM,CAAC,CAAC;QACzC,IAAI,CAAC,OAAO,IAAI,OAAO,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;YACtC,OAAO,IAAI,CAAC;QACb,CAAC;QAED,8DAA8D;QAC9D,MAAM,QAAQ,GAAG,KAAK,CAAC,EAAE,CAAC,CAAC;QAC3B,IAAI,QAAQ,KAAK,IAAI,EAAE,CAAC;YACvB,OAAO,IAAI,CAAC;QACb,CAAC;QAED,MAAM,WAAW,GAAG,KAAK,CAAC,EAAE,CAAC,CAAC;QAC9B,MAAM,SAAS,GAAG,KAAK,CAAC,EAAE,CAAC,CAAC;QAC5B,MAAM,SAAS,GAAG,KAAK,CAAC,EAAE,CAAC,CAAC;QAE5B,MAAM,EAAE,GAAG,SAAS,GAAG,CAAC,CAAC;QACzB,MAAM,KAAK,GAAG,EAAE,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,CAAC;QAEjC,MAAM,QAAQ,GAAG,WAAW,GAAG,OAAO,CAAC,MAAM,CAAC,CAAC,CAAC,OAAO,CAAC,WAAW,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC;QAEjF,OAAO;YACN,YAAY;YACZ,QAAQ;YACR,EAAE;YACF,KAAK;SACL,CAAC;IACH,CAAC;IAED,YAAY,MAAmB;QAC9B,IAAI,CAAC,GAAG,GAAG,MAAM,IAAI,aAAa,CAAC;IACpC,CAAC;IAED;;;;;;OAMG;IACI,KAAK,CAAC,OAAO,CACnB,SAAqB,EACrB,MAAuB;QAEvB,IAAI,CAAC,SAAS,GAAG,SAAS,CAAC;QAC3B,IAAI,CAAC,MAAM,GAAG,MAAM,CAAC;QAErB,IAAI,CAAC,SAAS,CAAC,MAAM,EAAE,CAAC;YACvB,IAAI,CAAC,GAAG,CAAC,IAAI,CACZ,qFAAqF,CACrF,CAAC;YACF,OAAO;QACR,CAAC;QAED,qEAAqE;QACrE,qDAAqD;QACrD,MAAM,IAAI,CAAC,eAAe,EAAE,CAAC;IAC9B,CAAC;IAGM,gBAAgB,CAAC,QAGvB;QACA,IAAI,CAAC,WAAW,GAAG,QAAQ,CAAC,WAAW,IAAI,EAAE,CAAC;QAE9C,IAAI,CAAC,gBAAgB,GAAG,IAAI,GAAG,EAAkB,CAAC;QAClD,KAAK,MAAM,CAAC,GAAG,EAAE,MAAM,CAAC,IAAI,MAAM,CAAC,OAAO,CAAC,QAAQ,CAAC,gBAAgB,IAAI,EAAE,CAAC,EAAE,CAAC;YAC7E,MAAM,GAAG,GAAG,MAAM,CAAC,GAAG,CAAC,CAAC;YACxB,IAAI,MAAM,CAAC,QAAQ,CAAC,GAAG,CAAC,EAAE,CAAC;gBAC1B,IAAI,CAAC,gBAAgB,CAAC,GAAG,CAAC,GAAG,EAAE,MAAM,CAAC,CAAC;YACxC,CAAC;QACF,CAAC;QAED,IAAI,CAAC,GAAG,CAAC,IAAI,CACZ,0DAA0D,EAC1D,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC,MAAM,EACpC,IAAI,CAAC,gBAAgB,CAAC,IAAI,CAC1B,CAAC;IACH,CAAC;IAED;;;OAGG;IACK,KAAK,CAAC,eAAe;QAC5B,IAAI,IAAI,CAAC,MAAM,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,SAAS,EAAE,CAAC;YAC3C,OAAO,IAAI,CAAC;QACb,CAAC;QAED,IAAI,CAAC,IAAI,CAAC,SAAS,IAAI,CAAC,IAAI,CAAC,SAAS,CAAC,MAAM,IAAI,CAAC,IAAI,CAAC,MAAM,EAAE,CAAC;YAC/D,IAAI,CAAC,GAAG,CAAC,IAAI,CACZ,mFAAmF,CACnF,CAAC;YACF,OAAO,KAAK,CAAC;QACd,CAAC;QAED,MAAM,IAAI,CAAC,eAAe,EAAE,CAAC;QAC7B,OAAO,CAAC,CAAC,CAAC,IAAI,CAAC,MAAM,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,SAAS,CAAC,CAAC;IAClD,CAAC;IAED;;;OAGG;IACK,KAAK,CAAC,eAAe;QAC5B,MAAM,IAAI,GAAG,mBAAmB,CAAC;QACjC,MAAM,OAAO,GAAG,KAAK,CAAC;QACtB,MAAM,OAAO,GAAG,KAAK,CAAC;QAEtB,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,8BAA8B,EAAE,IAAI,CAAC,CAAC;QAEpD,IAAI,MAAM,GAAsB,IAAI,CAAC;QAErC,IAAI,CAAC;YACJ,oBAAoB;YACpB,IAAI,CAAC;gBACJ,MAAM,GAAG,MAAM,IAAI,CAAC,aAAa,CAAC,IAAI,EAAE,OAAO,EAAE,IAAI,CAAC,CAAC;YACxD,CAAC;YAAC,OAAO,EAAE,EAAE,CAAC;gBACb,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,mDAAmD,CAAC,CAAC;gBACnE,IAAI,CAAC;oBACJ,MAAM,GAAG,MAAM,IAAI,CAAC,aAAa,CAAC,IAAI,EAAE,OAAO,EAAE,KAAK,CAAC,CAAC;gBACzD,CAAC;gBAAC,OAAO,EAAE,EAAE,CAAC;oBACb,IAAI,CAAC,GAAG,CAAC,IAAI,CACZ,2DAA2D,CAC3D,CAAC;oBACF,MAAM,GAAG,MAAM,IAAI,CAAC,aAAa,CAAC,IAAI,EAAE,OAAO,CAAC,CAAC;gBAClD,CAAC;YACF,CAAC;QACF,CAAC;QAAC,OAAO,GAAG,EAAE,CAAC;YACd,IAAI,CAAC,GAAG,CAAC,KAAK,CACb,wCAAwC,EACxC,IAAI,EACJ,MAAM,CAAC,GAAG,CAAC,CACX,CAAC;YACF,IAAI,CAAC,MAAM,GAAG,IAAI,CAAC;YACnB,OAAO;QACR,CAAC;QAED,IAAI,CAAC,MAAM,EAAE,CAAC;YACb,IAAI,CAAC,GAAG,CAAC,KAAK,CAAC,mDAAmD,CAAC,CAAC;YACpE,IAAI,CAAC,MAAM,GAAG,IAAI,CAAC;YACnB,OAAO;QACR,CAAC;QAED,IAAI,CAAC,MAAM,GAAG,MAAM,CAAC;QACrB,IAAI,CAAC,qBAAqB,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;QAExC,0CAA0C;QAC1C,IAAI,IAAI,CAAC,SAAS,IAAI,IAAI,CAAC,SAAS,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;YACjD,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC,CAAC;YAC/C,IAAI,CAAC,GAAG,CAAC,IAAI,CACZ,wCAAwC,EACxC,IAAI,CAAC,SAAS,CAAC,MAAM,CACrB,CAAC;QACH,CAAC;aAAM,CAAC;YACP,IAAI,CAAC,GAAG,CAAC,IAAI,CACZ,8EAA8E,CAC9E,CAAC;QACH,CAAC;QAED,yDAAyD;QACzD,IAAI,CAAC,cAAc,EAAE,CAAC;IACvB,CAAC;IAEO,aAAa,CAAC,IAAY,EAAE,IAAY,EAAE,MAAe;QAChE,OAAO,IAAI,OAAO,CAAC,CAAC,OAAO,EAAE,MAAM,EAAE,EAAE;YACtC,MAAM,IAAI,GAAG,GAAG,CAAC,OAAO,CACvB;gBACC,IAAI;gBACJ,IAAI;gBACJ,kBAAkB,EAAE,MAAM;aAC1B,EACD,GAAG,EAAE,CAAC,OAAO,CAAC,IAAI,CAAC,CACnB,CAAC;YACF,IAAI,CAAC,IAAI,CAAC,OAAO,EAAE,MAAM,CAAC,CAAC;QAC5B,CAAC,CAAC,CAAC;IACJ,CAAC;IAEO,aAAa,CAAC,IAAY,EAAE,IAAY;QAC/C,OAAO,IAAI,OAAO,CAAC,CAAC,OAAO,EAAE,MAAM,EAAE,EAAE;YACtC,MAAM,IAAI,GAAG,GAAG,CAAC,gBAAgB,CAAC,EAAE,IAAI,EAAE,IAAI,EAAE,EAAE,GAAG,EAAE,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC;YACvE,IAAI,CAAC,IAAI,CAAC,OAAO,EAAE,MAAM,CAAC,CAAC;QAC5B,CAAC,CAAC,CAAC;IACJ,CAAC;IAEO,cAAc;QACrB,IAAI,IAAI,CAAC,cAAc,EAAE,CAAC;YACzB,aAAa,CAAC,IAAI,CAAC,cAAc,CAAC,CAAC;QACpC,CAAC;QACD,IAAI,CAAC,cAAc,GAAG,WAAW,CAAC,GAAG,EAAE;YACtC,IAAI,CAAC,IAAI,CAAC,MAAM,IAAI,IAAI,CAAC,MAAM,CAAC,SAAS,EAAE,CAAC;gBAC3C,OAAO;YACR,CAAC;YACD,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,MAAM,CAAC,IAAI,CAAC,YAAY,EAAE,KAAK,CAAC,CAAC,CAAC;QACrD,CAAC,EAAE,OAAO,CAAC,CAAC;IACb,CAAC;IAEO,OAAO;QACd,IAAI,IAAI,CAAC,GAAG,KAAK,KAAK,EAAE,CAAC;YACxB,IAAI,CAAC,GAAG,GAAG,CAAC,CAAC;QACd,CAAC;aAAM,CAAC;YACP,IAAI,CAAC,GAAG,EAAE,CAAC;QACZ,CAAC;QACD,OAAO,IAAI,CAAC,GAAG,CAAC;IACjB,CAAC;IAEO,gBAAgB,CACvB,YAAoB,EACpB,MAAc,EACd,EAAW,EACX,GAAW;QAEX,MAAM,MAAM,GAAG,MAAM,CAAC,IAAI,CAAC,YAAY,EAAE,KAAK,CAAC,CAAC;QAEhD,MAAM,WAAW,GAAG,MAAM,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC;QACpC,WAAW,CAAC,aAAa,CAAC,YAAY,EAAE,CAAC,CAAC,CAAC;QAE3C,MAAM,QAAQ,GAAG,MAAM,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC;QACjC,QAAQ,CAAC,aAAa,CAAC,GAAG,EAAE,CAAC,CAAC,CAAC;QAE/B,MAAM,MAAM,GAAG,MAAM,CAAC,IAAI,CAAC,gCAAgC,EAAE,KAAK,CAAC,CAAC;QAEpE,MAAM,SAAS,GAAG,MAAM,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC;QAClC,SAAS,CAAC,aAAa,CAAC,MAAM,EAAE,CAAC,CAAC,CAAC;QAEnC,MAAM,IAAI,GAAG,MAAM,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,CAAC,cAAc,CAAC,CAAC,CAAC,cAAc,EAAE,KAAK,CAAC,CAAC;QAEtE,MAAM,YAAY,GAAG,EAAE,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG,CAAC;QACpC,MAAM,YAAY,GACjB,CAAC,YAAY,GAAG,SAAS,CAAC,CAAC,CAAC,GAAG,SAAS,CAAC,CAAC,CAAC,CAAC,GAAG,IAAI,CAAC;QACrD,MAAM,QAAQ,GAAG,MAAM,CAAC,IAAI,CAAC,CAAC,YAAY,CAAC,CAAC,CAAC;QAE7C,MAAM,GAAG,GAAG,MAAM,CAAC,IAAI,CAAC,IAAI,EAAE,KAAK,CAAC,CAAC;QAErC,OAAO,MAAM,CAAC,MAAM,CAAC;YACpB,MAAM;YACN,WAAW;YACX,QAAQ;YACR,MAAM;YACN,SAAS;YACT,IAAI;YACJ,QAAQ;YACR,GAAG;SACH,CAAC,CAAC;IACJ,CAAC;IAEM,KAAK,CAAC,UAAU;QACtB,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,iCAAiC,CAAC,CAAC;QACjD,IAAI,IAAI,CAAC,cAAc,EAAE,CAAC;YACzB,aAAa,CAAC,IAAI,CAAC,cAAc,CAAC,CAAC;YACnC,IAAI,CAAC,cAAc,GAAG,IAAI,CAAC;QAC5B,CAAC;QACD,IAAI,IAAI,CAAC,MAAM,EAAE,CAAC;YACjB,IAAI,CAAC,MAAM,CAAC,OAAO,EAAE,CAAC;YACtB,IAAI,CAAC,MAAM,GAAG,IAAI,CAAC;QACpB,CAAC;IACF,CAAC;IAEM,cAAc,CAAC,EAAwB;QAC7C,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,iDAAiD,CAAC,CAAC;QACjE,IAAI,CAAC,cAAc,GAAG,EAAE,CAAC;IAC1B,CAAC;IAEM,YAAY,CAAC,EAAwB;QAC3C,IAAI,CAAC,YAAY,GAAG,EAAE,CAAC;IACxB,CAAC;IAEM,cAAc,CAAC,EAAwB;QAC7C,IAAI,CAAC,cAAc,GAAG,EAAE,CAAC;IAC1B,CAAC;IAEM,eAAe,CAAC,EAAwB;QAC9C,IAAI,CAAC,eAAe,GAAG,EAAE,CAAC;IAC3B,CAAC;IAEM,UAAU,CAAC,QAA0B;QAC3C,IAAI,CAAC,iBAAiB,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;IACvC,CAAC;IAED;;;OAGG;IACI,KAAK,CAAC,cAAc,CAC1B,QAAgB,EAChB,MAAuB;QAEvB,IAAI,CAAC,IAAI,CAAC,MAAM,EAAE,CAAC;YAClB,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,iCAAiC,CAAC,CAAC;YACjD,OAAO;QACR,CAAC;QAED,MAAM,SAAS,GAAG,MAAM,IAAI,CAAC,eAAe,EAAE,CAAC;QAC/C,IAAI,CAAC,SAAS,IAAI,CAAC,IAAI,CAAC,MAAM,IAAI,IAAI,CAAC,MAAM,CAAC,SAAS,EAAE,CAAC;YACzD,IAAI,CAAC,GAAG,CAAC,IAAI,CACZ,wEAAwE,CACxE,CAAC;YACF,OAAO;QACR,CAAC;QAED,MAAM,MAAM,GAAG,IAAI,CAAC,UAAU,CAAC,QAAQ,CAAC,CAAC;QACzC,IAAI,CAAC,MAAM,EAAE,CAAC;YACb,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,gCAAgC,EAAE,QAAQ,CAAC,CAAC;YAC1D,OAAO;QACR,CAAC;QAED,MAAM,YAAY,GAAG,MAAM,CAAE,MAAkC,CAAC,iBAAiB,CAAC,CAAC;QACnF,MAAM,SAAS,GAAG,MAAM,CAAE,MAAkC,CAAC,OAAO,CAAC,CAAC;QAEtE,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC,YAAY,CAAC,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC,SAAS,CAAC,EAAE,CAAC;YACnE,IAAI,CAAC,GAAG,CAAC,IAAI,CACZ,8EAA8E,EAC9E,QAAQ,EACP,MAAkC,CAAC,iBAAiB,EACpD,MAAkC,CAAC,OAAO,CAC3C,CAAC;YACF,OAAO;QACR,CAAC;QAED,MAAM,GAAG,GAAG,IAAI,CAAC,OAAO,EAAE,CAAC;QAC3B,MAAM,MAAM,GAAG,IAAI,CAAC,gBAAgB,CAAC,YAAY,EAAE,SAAS,EAAE,MAAM,CAAC,EAAE,EAAE,GAAG,CAAC,CAAC;QAE9E,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC;QAC1B,IAAI,CAAC,GAAG,CAAC,IAAI,CACZ,sDAAsD,EACtD,QAAQ,EACR,MAAM,CAAC,MAAM,CAAC,EAAE,CAAC,EACjB,GAAG,CACH,CAAC;IACH,CAAC;IAEO,UAAU,CAAC,QAAgB;QAClC,KAAK,MAAM,IAAI,IAAI,IAAI,CAAC,MAAM,EAAE,MAAM,IAAI,EAAE,EAAE,CAAC;YAC9C,KAAK,MAAM,GAAG,IAAI,IAAI,CAAC,OAAO,IAAI,EAAE,EAAE,CAAC;gBACtC,MAAM,MAAM,GAAG,GAA8B,CAAC;gBAC9C,MAAM,WAAW,GAAG,MAAM,CAAC,SAAS,KAAK,SAAS,IAAI,MAAM,CAAC,SAAS,KAAK,IAAI;oBAC9E,CAAC,CAAC,MAAM,CAAC,MAAM,CAAC,SAAS,CAAC;oBAC1B,CAAC,CAAC,SAAS,CAAC;gBACb,MAAM,KAAK,GAAG,MAAM,CAAC,EAAE,KAAK,SAAS,IAAI,MAAM,CAAC,EAAE,KAAK,IAAI;oBAC1D,CAAC,CAAC,MAAM,CAAC,MAAM,CAAC,EAAE,CAAC;oBACnB,CAAC,CAAC,SAAS,CAAC;gBAEb,IAAI,WAAW,KAAK,QAAQ,IAAI,KAAK,KAAK,QAAQ,EAAE,CAAC;oBACpD,OAAO,GAAG,CAAC;gBACZ,CAAC;YACF,CAAC;QACF,CAAC;QACD,OAAO,IAAI,CAAC;IACb,CAAC;IAEO,qBAAqB,CAAC,MAAkB;QAC/C,MAAM,CAAC,EAAE,CAAC,MAAM,EAAE,CAAC,KAAK,EAAE,EAAE;YAC3B,IAAI,CAAC,GAAG,CAAC,KAAK,CAAC,0CAA0C,EAAE,KAAK,CAAC,UAAU,CAAC,CAAC;YAC7E,IAAI,CAAC,UAAU,GAAG,MAAM,CAAC,MAAM,CAAC,CAAC,IAAI,CAAC,UAAU,EAAE,KAAK,CAAC,CAAC,CAAC;YAC1D,IAAI,CAAC,eAAe,EAAE,CAAC;QACxB,CAAC,CAAC,CAAC;QAEH,MAAM,CAAC,EAAE,CAAC,OAAO,EAAE,GAAG,EAAE;YACvB,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,2BAA2B,CAAC,CAAC;YAC3C,IAAI,CAAC,MAAM,GAAG,IAAI,CAAC;QACpB,CAAC,CAAC,CAAC;QAEH,MAAM,CAAC,EAAE,CAAC,OAAO,EAAE,CAAC,GAAG,EAAE,EAAE;YAC1B,IAAI,CAAC,GAAG,CAAC,KAAK,CAAC,0BAA0B,EAAE,MAAM,CAAC,GAAG,CAAC,CAAC,CAAC;QACzD,CAAC,CAAC,CAAC;IACJ,CAAC;IAEO,eAAe;QACtB,OAAO,IAAI,CAAC,UAAU,CAAC,MAAM,IAAI,CAAC,EAAE,CAAC;YACpC,MAAM,IAAI,GAAG,IAAI,CAAC,UAAU,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC;YAC1C,MAAM,GAAG,GAAG,IAAI,CAAC,UAAU,CAAC,YAAY,CAAC,CAAC,CAAC,CAAC;YAC5C,MAAM,KAAK,GAAG,CAAC,GAAG,GAAG,CAAC;YAEtB,IAAI,IAAI,CAAC,UAAU,CAAC,MAAM,GAAG,KAAK,EAAE,CAAC;gBACpC,OAAO;YACR,CAAC;YAED,MAAM,IAAI,GAAG,IAAI,CAAC,UAAU,CAAC,QAAQ,CAAC,CAAC,EAAE,KAAK,CAAC,CAAC;YAEhD,uEAAuE;YACvE,IAAI,CAAC,GAAG,CAAC,KAAK,CACb,2CAA2C,EAC3C,IAAI,CAAC,QAAQ,CAAC,EAAE,CAAC,CAAC,QAAQ,CAAC,CAAC,EAAE,GAAG,CAAC,EAClC,GAAG,EACH,IAAI,CAAC,QAAQ,CAAC,KAAK,CAAC,CACpB,CAAC;YAEF,IAAI,IAAI,KAAK,IAAI,IAAI,IAAI,CAAC,MAAM,IAAI,CAAC,EAAE,CAAC;gBACvC,MAAM,GAAG,GAAG,IAAI,CAAC,YAAY,CAAC,CAAC,CAAC,CAAC;gBACjC,IAAI,CAAC,GAAG,CAAC,KAAK,CAAC,2BAA2B,EAAE,GAAG,CAAC,CAAC;YAClD,CAAC;iBAAM,CAAC;gBACP,IAAI,CAAC,mBAAmB,CAAC,IAAI,EAAE,IAAI,CAAC,CAAC;YACtC,CAAC;YAED,IAAI,CAAC,UAAU,GAAG,IAAI,CAAC,UAAU,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC;QACnD,CAAC;IACF,CAAC;IAEO,KAAK,CAAC,cAAc,CAC3B,QAAgB,EAChB,OAAe,EACf,MAA+B;QAE/B,IAAI,CAAC,IAAI,CAAC,MAAM,IAAI,CAAC,IAAI,CAAC,SAAS,EAAE,CAAC;YACrC,IAAI,CAAC,GAAG,CAAC,IAAI,CACZ,sFAAsF,EACtF,QAAQ,EACR,OAAO,EACP,MAAM,CACN,CAAC;YACF,OAAO;QACR,CAAC;QAED,IAAI,CAAC,GAAG,CAAC,IAAI,CACZ,mEAAmE,EACnE,QAAQ,EACR,OAAO,EACP,MAAM,CACN,CAAC;IACH,CAAC;IAED,+EAA+E;IACvE,mBAAmB,CAAC,KAAa,EAAE,IAAY;QACtD,gEAAgE;QAChE,KAAK,MAAM,QAAQ,IAAI,IAAI,CAAC,iBAAiB,EAAE,CAAC;YAC/C,IAAI,CAAC;gBACJ,QAAQ,CAAC,KAAK,CAAC,CAAC;YACjB,CAAC;YAAC,OAAO,GAAG,EAAE,CAAC;gBACd,IAAI,CAAC,GAAG,CAAC,KAAK,CACb,yCAAyC,EACzC,MAAM,CAAC,GAAG,CAAC,CACX,CAAC;YACH,CAAC;QACF,CAAC;QAED,mCAAmC;QACnC,IAAI,OAAO,GAAY,KAAK,CAAC;QAE7B,IAAI,IAAI,KAAK,IAAI,EAAE,CAAC;YACnB,mFAAmF;YACnF,MAAM,SAAS,GAAG,IAAI,CAAC,oBAAoB,CAAC,KAAK,CAAC,CAAC;YACnD,IAAI,SAAS,EAAE,CAAC;gBACf,OAAO,GAAG,SAAS,CAAC;YACrB,CAAC;iBAAM,CAAC;gBACP,8CAA8C;gBAC9C,MAAM,MAAM,GAAG,IAAI,CAAC,qBAAqB,CAAC,KAAK,CAAC,CAAC;gBACjD,IAAI,MAAM,EAAE,CAAC;oBACZ,MAAM,QAAQ,GAAG,IAAI,CAAC,kBAAkB,CAAC,GAAG,CAAC,MAAM,CAAC,YAAY,CAAC,CAAC;oBAClE,OAAO,GAAG;wBACT,GAAG,MAAM;wBACT,QAAQ;qBACR,CAAC;gBACH,CAAC;YACF,CAAC;QACF,CAAC;QAED,IAAI,IAAI,CAAC,cAAc,EAAE,CAAC;YACzB,IAAI,CAAC,cAAc,CAAC,OAAO,CAAC,CAAC;QAC9B,CAAC;aAAM,CAAC;YACP,IAAI,CAAC,GAAG,CAAC,KAAK,CACb,0DAA0D,CAC1D,CAAC;QACH,CAAC;IACF,CAAC;CACD"}
|
|
1
|
+
{"version":3,"file":"tcp-client.js","sourceRoot":"","sources":["../../src/cync/tcp-client.ts"],"names":[],"mappings":"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"}
|
|
@@ -8,8 +8,12 @@ export interface CyncTokenData {
|
|
|
8
8
|
}
|
|
9
9
|
/**
|
|
10
10
|
* Simple JSON token store under the Homebridge storage path.
|
|
11
|
+
*
|
|
12
|
+
* Files are stored at:
|
|
13
|
+
* <storagePath>/homebridge-cync-app/cync-tokens.json
|
|
11
14
|
*/
|
|
12
15
|
export declare class CyncTokenStore {
|
|
16
|
+
private readonly dirPath;
|
|
13
17
|
private readonly filePath;
|
|
14
18
|
constructor(storagePath: string);
|
|
15
19
|
load(): Promise<CyncTokenData | null>;
|
package/dist/cync/token-store.js
CHANGED
|
@@ -3,11 +3,16 @@ import { promises as fs } from 'node:fs';
|
|
|
3
3
|
import * as path from 'node:path';
|
|
4
4
|
/**
|
|
5
5
|
* Simple JSON token store under the Homebridge storage path.
|
|
6
|
+
*
|
|
7
|
+
* Files are stored at:
|
|
8
|
+
* <storagePath>/homebridge-cync-app/cync-tokens.json
|
|
6
9
|
*/
|
|
7
10
|
export class CyncTokenStore {
|
|
11
|
+
dirPath;
|
|
8
12
|
filePath;
|
|
9
13
|
constructor(storagePath) {
|
|
10
|
-
this.
|
|
14
|
+
this.dirPath = path.join(storagePath, 'homebridge-cync-app');
|
|
15
|
+
this.filePath = path.join(this.dirPath, 'cync-tokens.json');
|
|
11
16
|
}
|
|
12
17
|
async load() {
|
|
13
18
|
try {
|
|
@@ -20,11 +25,14 @@ export class CyncTokenStore {
|
|
|
20
25
|
return data;
|
|
21
26
|
}
|
|
22
27
|
catch {
|
|
28
|
+
// file missing or unreadable → treat as no token
|
|
23
29
|
return null;
|
|
24
30
|
}
|
|
25
31
|
}
|
|
26
32
|
async save(data) {
|
|
27
33
|
const json = JSON.stringify(data, null, 2);
|
|
34
|
+
// Ensure directory exists before writing
|
|
35
|
+
await fs.mkdir(this.dirPath, { recursive: true });
|
|
28
36
|
await fs.writeFile(this.filePath, json, 'utf8');
|
|
29
37
|
}
|
|
30
38
|
async clear() {
|
|
@@ -32,7 +40,7 @@ export class CyncTokenStore {
|
|
|
32
40
|
await fs.unlink(this.filePath);
|
|
33
41
|
}
|
|
34
42
|
catch {
|
|
35
|
-
// ignore if missing
|
|
43
|
+
// ignore if missing or already removed
|
|
36
44
|
}
|
|
37
45
|
}
|
|
38
46
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"token-store.js","sourceRoot":"","sources":["../../src/cync/token-store.ts"],"names":[],"mappings":"AAAA,0BAA0B;AAC1B,OAAO,EAAE,QAAQ,IAAI,EAAE,EAAE,MAAM,SAAS,CAAC;AACzC,OAAO,KAAK,IAAI,MAAM,WAAW,CAAC;AAWlC
|
|
1
|
+
{"version":3,"file":"token-store.js","sourceRoot":"","sources":["../../src/cync/token-store.ts"],"names":[],"mappings":"AAAA,0BAA0B;AAC1B,OAAO,EAAE,QAAQ,IAAI,EAAE,EAAE,MAAM,SAAS,CAAC;AACzC,OAAO,KAAK,IAAI,MAAM,WAAW,CAAC;AAWlC;;;;;GAKG;AACH,MAAM,OAAO,cAAc;IACT,OAAO,CAAS;IAChB,QAAQ,CAAS;IAElC,YAAmB,WAAmB;QACrC,IAAI,CAAC,OAAO,GAAG,IAAI,CAAC,IAAI,CAAC,WAAW,EAAE,qBAAqB,CAAC,CAAC;QAC7D,IAAI,CAAC,QAAQ,GAAG,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,OAAO,EAAE,kBAAkB,CAAC,CAAC;IAC7D,CAAC;IAEM,KAAK,CAAC,IAAI;QAChB,IAAI,CAAC;YACJ,MAAM,GAAG,GAAG,MAAM,EAAE,CAAC,QAAQ,CAAC,IAAI,CAAC,QAAQ,EAAE,MAAM,CAAC,CAAC;YACrD,MAAM,IAAI,GAAG,IAAI,CAAC,KAAK,CAAC,GAAG,CAAkB,CAAC;YAE9C,wDAAwD;YACxD,IAAI,IAAI,CAAC,SAAS,IAAI,IAAI,CAAC,SAAS,IAAI,IAAI,CAAC,GAAG,EAAE,EAAE,CAAC;gBACpD,OAAO,IAAI,CAAC;YACb,CAAC;YAED,OAAO,IAAI,CAAC;QACb,CAAC;QAAC,MAAM,CAAC;YACR,iDAAiD;YACjD,OAAO,IAAI,CAAC;QACb,CAAC;IACF,CAAC;IAEM,KAAK,CAAC,IAAI,CAAC,IAAmB;QACpC,MAAM,IAAI,GAAG,IAAI,CAAC,SAAS,CAAC,IAAI,EAAE,IAAI,EAAE,CAAC,CAAC,CAAC;QAE3C,yCAAyC;QACzC,MAAM,EAAE,CAAC,KAAK,CAAC,IAAI,CAAC,OAAO,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC,CAAC;QAClD,MAAM,EAAE,CAAC,SAAS,CAAC,IAAI,CAAC,QAAQ,EAAE,IAAI,EAAE,MAAM,CAAC,CAAC;IACjD,CAAC;IAEM,KAAK,CAAC,KAAK;QACjB,IAAI,CAAC;YACJ,MAAM,EAAE,CAAC,MAAM,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;QAChC,CAAC;QAAC,MAAM,CAAC;YACR,uCAAuC;QACxC,CAAC;IACF,CAAC;CACD"}
|
package/eslint.config.js
CHANGED
|
Binary file
|
|
@@ -0,0 +1,121 @@
|
|
|
1
|
+
<!-- homebridge-ui/public/index.html -->
|
|
2
|
+
<div class="text-center mb-3">
|
|
3
|
+
<img
|
|
4
|
+
src="icon.png"
|
|
5
|
+
alt="Cync App Icon"
|
|
6
|
+
style="width: 96px; height: 96px; border-radius: 5px;"
|
|
7
|
+
/>
|
|
8
|
+
</div>
|
|
9
|
+
<div class="card card-body">
|
|
10
|
+
<div id="options" class="card-body my-3 w-75 mx-auto">
|
|
11
|
+
<div class="alert alert-warning" role="alert">
|
|
12
|
+
It is recommended to create a second Cync account and share your home
|
|
13
|
+
between accounts to avoid issues with Cync servers and the official Cync App.
|
|
14
|
+
</div>
|
|
15
|
+
|
|
16
|
+
<form id="authForm" class="form-horizontal">
|
|
17
|
+
<div id="codeDiv" class="card-body my-3 w-75 mx-auto">
|
|
18
|
+
<div class="mb-3">
|
|
19
|
+
<label class="form-label" for="emailAddress">Cync Email Address</label>
|
|
20
|
+
<input class="form-control" type="email" id="emailAddress" placeholder="name@example.com" />
|
|
21
|
+
</div>
|
|
22
|
+
|
|
23
|
+
<button type="button" class="btn btn-secondary text-center" id="requestCode">
|
|
24
|
+
Request 2FA Code
|
|
25
|
+
</button>
|
|
26
|
+
</div>
|
|
27
|
+
|
|
28
|
+
<div id="authDiv" class="card-body my-3 w-75 mx-auto">
|
|
29
|
+
<div class="mb-3">
|
|
30
|
+
<label class="form-label" for="password">Cync Password</label>
|
|
31
|
+
<input class="form-control" type="password" id="password" />
|
|
32
|
+
</div>
|
|
33
|
+
|
|
34
|
+
<div class="mb-3">
|
|
35
|
+
<label class="form-label" for="mfaCode">2FA Code</label>
|
|
36
|
+
<input class="form-control" type="text" id="mfaCode" />
|
|
37
|
+
</div>
|
|
38
|
+
|
|
39
|
+
<button type="button" class="btn btn-primary text-center" id="login">
|
|
40
|
+
Login
|
|
41
|
+
</button>
|
|
42
|
+
</div>
|
|
43
|
+
</form>
|
|
44
|
+
</div>
|
|
45
|
+
</div>
|
|
46
|
+
|
|
47
|
+
<script>
|
|
48
|
+
homebridge.addEventListener('ready', async () => {
|
|
49
|
+
const pluginConfig = await homebridge.getPluginConfig();
|
|
50
|
+
|
|
51
|
+
if (pluginConfig[0]) {
|
|
52
|
+
const cfg = pluginConfig[0];
|
|
53
|
+
document.getElementById('emailAddress').value =
|
|
54
|
+
cfg.username || cfg.email || '';
|
|
55
|
+
}
|
|
56
|
+
|
|
57
|
+
document
|
|
58
|
+
.getElementById('requestCode')
|
|
59
|
+
.addEventListener('click', () => {
|
|
60
|
+
document.getElementById('mfaCode').value = '';
|
|
61
|
+
|
|
62
|
+
const emailAddress =
|
|
63
|
+
document.getElementById('emailAddress').value || '';
|
|
64
|
+
if (!emailAddress) {
|
|
65
|
+
homebridge.toast.error('Please enter your Cync email address.');
|
|
66
|
+
return;
|
|
67
|
+
}
|
|
68
|
+
|
|
69
|
+
homebridge
|
|
70
|
+
.request('/requestCode', { emailAddress })
|
|
71
|
+
.then(() => {
|
|
72
|
+
homebridge.toast.info(
|
|
73
|
+
`Please check your ${emailAddress} inbox for your 2FA code.`,
|
|
74
|
+
);
|
|
75
|
+
})
|
|
76
|
+
.catch((err) => {
|
|
77
|
+
homebridge.toast.error(
|
|
78
|
+
`Failed to request 2FA code: ${String(err)}`,
|
|
79
|
+
);
|
|
80
|
+
});
|
|
81
|
+
});
|
|
82
|
+
|
|
83
|
+
document.getElementById('login').addEventListener('click', () => {
|
|
84
|
+
const payload = {
|
|
85
|
+
emailAddress: document.getElementById('emailAddress').value || '',
|
|
86
|
+
password: document.getElementById('password').value || '',
|
|
87
|
+
mfaCode: document.getElementById('mfaCode').value || '',
|
|
88
|
+
};
|
|
89
|
+
|
|
90
|
+
if (!payload.emailAddress || !payload.password || !payload.mfaCode) {
|
|
91
|
+
homebridge.toast.error(
|
|
92
|
+
'Please enter email, password, and 2FA code.',
|
|
93
|
+
);
|
|
94
|
+
return;
|
|
95
|
+
}
|
|
96
|
+
|
|
97
|
+
homebridge
|
|
98
|
+
.request('/login', payload)
|
|
99
|
+
.then(async (config) => {
|
|
100
|
+
if (config && config.error) {
|
|
101
|
+
homebridge.toast.error(config.error);
|
|
102
|
+
document.getElementById('password').value = '';
|
|
103
|
+
document.getElementById('mfaCode').value = '';
|
|
104
|
+
return;
|
|
105
|
+
}
|
|
106
|
+
|
|
107
|
+
await homebridge.updatePluginConfig([config]);
|
|
108
|
+
homebridge.toast.success(
|
|
109
|
+
'You have successfully authenticated with Cync!',
|
|
110
|
+
);
|
|
111
|
+
await homebridge.savePluginConfig();
|
|
112
|
+
homebridge.closeSettings();
|
|
113
|
+
})
|
|
114
|
+
.catch((err) => {
|
|
115
|
+
homebridge.toast.error(
|
|
116
|
+
`Login failed: ${String(err)}`,
|
|
117
|
+
);
|
|
118
|
+
});
|
|
119
|
+
});
|
|
120
|
+
});
|
|
121
|
+
</script>
|
|
@@ -0,0 +1,97 @@
|
|
|
1
|
+
// homebridge-ui/server.js
|
|
2
|
+
import { HomebridgePluginUiServer } from '@homebridge/plugin-ui-utils';
|
|
3
|
+
import fetch from 'node-fetch';
|
|
4
|
+
|
|
5
|
+
class PluginUiServer extends HomebridgePluginUiServer {
|
|
6
|
+
constructor() {
|
|
7
|
+
super();
|
|
8
|
+
|
|
9
|
+
this.onRequest('/requestCode', this.handleRequestCode.bind(this));
|
|
10
|
+
this.onRequest('/login', this.handleLogin.bind(this));
|
|
11
|
+
|
|
12
|
+
// Tell Homebridge UI that we’re ready
|
|
13
|
+
this.ready();
|
|
14
|
+
}
|
|
15
|
+
|
|
16
|
+
// Request a 2FA code via email
|
|
17
|
+
async handleRequestCode(payload) {
|
|
18
|
+
const email = (payload?.emailAddress || '').trim();
|
|
19
|
+
if (!email) {
|
|
20
|
+
throw new Error('Email address is required to request a 2FA code.');
|
|
21
|
+
}
|
|
22
|
+
|
|
23
|
+
const requestBody = {
|
|
24
|
+
corp_id: '1007d2ad150c4000',
|
|
25
|
+
email,
|
|
26
|
+
local_lang: 'en-us',
|
|
27
|
+
};
|
|
28
|
+
|
|
29
|
+
await fetch(
|
|
30
|
+
'https://api.gelighting.com/v2/two_factor/email/verifycode',
|
|
31
|
+
{
|
|
32
|
+
method: 'POST',
|
|
33
|
+
body: JSON.stringify(requestBody),
|
|
34
|
+
headers: { 'Content-Type': 'application/json' },
|
|
35
|
+
},
|
|
36
|
+
);
|
|
37
|
+
}
|
|
38
|
+
|
|
39
|
+
// Validate email + password + 2FA against Cync and return platform config
|
|
40
|
+
async handleLogin(payload) {
|
|
41
|
+
const email = (payload?.emailAddress || '').trim();
|
|
42
|
+
const password = (payload?.password || '').trim();
|
|
43
|
+
const mfaCode = (payload?.mfaCode || '').trim();
|
|
44
|
+
|
|
45
|
+
if (!email || !password || !mfaCode) {
|
|
46
|
+
return {
|
|
47
|
+
error: 'Email, password, and 2FA code are required.',
|
|
48
|
+
};
|
|
49
|
+
}
|
|
50
|
+
|
|
51
|
+
const requestBody = {
|
|
52
|
+
corp_id: '1007d2ad150c4000',
|
|
53
|
+
email,
|
|
54
|
+
password,
|
|
55
|
+
two_factor: mfaCode,
|
|
56
|
+
resource: 'abcdefghijk',
|
|
57
|
+
};
|
|
58
|
+
|
|
59
|
+
try {
|
|
60
|
+
const response = await fetch(
|
|
61
|
+
'https://api.gelighting.com/v2/user_auth/two_factor',
|
|
62
|
+
{
|
|
63
|
+
method: 'POST',
|
|
64
|
+
body: JSON.stringify(requestBody),
|
|
65
|
+
headers: { 'Content-Type': 'application/json' },
|
|
66
|
+
},
|
|
67
|
+
);
|
|
68
|
+
|
|
69
|
+
const data = await response.json();
|
|
70
|
+
if (data && data.error) {
|
|
71
|
+
return {
|
|
72
|
+
error:
|
|
73
|
+
'Login failed. Please check your password and 2FA code.',
|
|
74
|
+
};
|
|
75
|
+
}
|
|
76
|
+
} catch (err) {
|
|
77
|
+
console.error('[cync-ui] Login request failed:', err);
|
|
78
|
+
return {
|
|
79
|
+
error:
|
|
80
|
+
'Login failed due to a network or server error. Please try again.',
|
|
81
|
+
};
|
|
82
|
+
}
|
|
83
|
+
|
|
84
|
+
// At this point, Cync accepted the credentials.
|
|
85
|
+
// Return the platform config that your platform.ts expects.
|
|
86
|
+
return {
|
|
87
|
+
platform: 'CyncAppPlatform',
|
|
88
|
+
name: 'Cync App',
|
|
89
|
+
username: email,
|
|
90
|
+
password,
|
|
91
|
+
twoFactor: mfaCode,
|
|
92
|
+
};
|
|
93
|
+
}
|
|
94
|
+
}
|
|
95
|
+
|
|
96
|
+
// Start the instance
|
|
97
|
+
(() => new PluginUiServer())();
|
package/package.json
CHANGED
|
@@ -2,7 +2,7 @@
|
|
|
2
2
|
"name": "homebridge-cync-app",
|
|
3
3
|
"displayName": "Homebridge Cync App",
|
|
4
4
|
"type": "module",
|
|
5
|
-
"version": "0.1.
|
|
5
|
+
"version": "0.1.3",
|
|
6
6
|
"private": false,
|
|
7
7
|
"description": "Homebridge plugin that integrates your GE Cync account (via the Cync app/API) and exposes all supported devices: plugs, lights, switches, etc",
|
|
8
8
|
"author": "Dustin Newell",
|
|
@@ -28,7 +28,7 @@
|
|
|
28
28
|
],
|
|
29
29
|
"main": "dist/index.js",
|
|
30
30
|
"publishConfig": {
|
|
31
|
-
|
|
31
|
+
"access": "public"
|
|
32
32
|
},
|
|
33
33
|
"homebridge": {
|
|
34
34
|
"pluginType": "platform",
|
|
@@ -45,7 +45,9 @@
|
|
|
45
45
|
"watch": "npm run build && npm link && nodemon"
|
|
46
46
|
},
|
|
47
47
|
"dependencies": {
|
|
48
|
-
"homebridge-lib": "^7.1.12"
|
|
48
|
+
"homebridge-lib": "^7.1.12",
|
|
49
|
+
"node-fetch": "^3.3.2",
|
|
50
|
+
"@homebridge/plugin-ui-utils": "^1.0.0"
|
|
49
51
|
},
|
|
50
52
|
"devDependencies": {
|
|
51
53
|
"@eslint/js": "^9.39.1",
|
|
@@ -8,7 +8,6 @@
|
|
|
8
8
|
const CYNC_API_BASE = 'https://api.gelighting.com/v2/';
|
|
9
9
|
const CORP_ID = '1007d2ad150c4000';
|
|
10
10
|
|
|
11
|
-
// Minimal fetch/response typing for Node 18+, without depending on DOM lib types.
|
|
12
11
|
type FetchLike = (input: unknown, init?: unknown) => Promise<unknown>;
|
|
13
12
|
|
|
14
13
|
declare const fetch: FetchLike;
|
|
@@ -65,10 +64,7 @@ export interface CyncCloudConfig {
|
|
|
65
64
|
meshes: CyncDeviceMesh[];
|
|
66
65
|
}
|
|
67
66
|
|
|
68
|
-
|
|
69
|
-
* Very small logger interface so we can accept either the Homebridge log
|
|
70
|
-
* object or console.* functions in tests.
|
|
71
|
-
*/
|
|
67
|
+
|
|
72
68
|
export interface CyncLogger {
|
|
73
69
|
debug(message: string, ...args: unknown[]): void;
|
|
74
70
|
info(message: string, ...args: unknown[]): void;
|
|
@@ -151,7 +147,6 @@ export class ConfigClient {
|
|
|
151
147
|
email,
|
|
152
148
|
password,
|
|
153
149
|
two_factor: otpCode,
|
|
154
|
-
// Matches the reference implementations: random 16-char string.
|
|
155
150
|
resource: ConfigClient.randomLoginResource(),
|
|
156
151
|
};
|
|
157
152
|
|
package/src/cync/cync-client.ts
CHANGED
|
@@ -191,6 +191,10 @@ export class CyncClient {
|
|
|
191
191
|
this.applyAccessToken(tokenData);
|
|
192
192
|
|
|
193
193
|
this.log.info('Cync login successful; userId=%s (token stored)', tokenData.userId);
|
|
194
|
+
this.log.info(
|
|
195
|
+
'Cync: 2FA login complete and a token has been stored. You may now clear the "twoFactor" code from the plugin config; ' +
|
|
196
|
+
'it will only be needed again if the stored token expires or is removed.',
|
|
197
|
+
);
|
|
194
198
|
return true;
|
|
195
199
|
}
|
|
196
200
|
|
package/src/cync/tcp-client.ts
CHANGED
|
@@ -14,6 +14,13 @@ const defaultLogger: CyncLogger = {
|
|
|
14
14
|
export type DeviceUpdateCallback = (payload: unknown) => void;
|
|
15
15
|
export type RawFrameListener = (frame: Buffer) => void;
|
|
16
16
|
|
|
17
|
+
interface QueuedPowerPacket {
|
|
18
|
+
deviceId: string;
|
|
19
|
+
on: boolean;
|
|
20
|
+
seq: number;
|
|
21
|
+
packet: Buffer;
|
|
22
|
+
}
|
|
23
|
+
|
|
17
24
|
export class TcpClient {
|
|
18
25
|
public registerSwitchMapping(controllerId: number, deviceId: string): void {
|
|
19
26
|
if (!Number.isFinite(controllerId)) {
|
|
@@ -37,6 +44,9 @@ export class TcpClient {
|
|
|
37
44
|
private heartbeatTimer: NodeJS.Timeout | null = null;
|
|
38
45
|
private rawFrameListeners: RawFrameListener[] = [];
|
|
39
46
|
private controllerToDevice = new Map<number, string>();
|
|
47
|
+
private connecting: Promise<boolean> | null = null;
|
|
48
|
+
private readonly sendQueue: QueuedPowerPacket[] = [];
|
|
49
|
+
private sending = false;
|
|
40
50
|
private parseSwitchStateFrame(frame: Buffer): { controllerId: number; on: boolean; level: number } | null {
|
|
41
51
|
if (frame.length < 16) {
|
|
42
52
|
return null;
|
|
@@ -170,7 +180,8 @@ export class TcpClient {
|
|
|
170
180
|
|
|
171
181
|
/**
|
|
172
182
|
* Ensure we have an open, logged-in socket.
|
|
173
|
-
* If
|
|
183
|
+
* If multiple callers invoke this concurrently, they will share a single
|
|
184
|
+
* connection attempt via `this.connecting`.
|
|
174
185
|
*/
|
|
175
186
|
private async ensureConnected(): Promise<boolean> {
|
|
176
187
|
if (this.socket && !this.socket.destroyed) {
|
|
@@ -184,8 +195,28 @@ export class TcpClient {
|
|
|
184
195
|
return false;
|
|
185
196
|
}
|
|
186
197
|
|
|
187
|
-
|
|
188
|
-
|
|
198
|
+
if (!this.connecting) {
|
|
199
|
+
this.connecting = (async () => {
|
|
200
|
+
await this.establishSocket();
|
|
201
|
+
const ok = !!(this.socket && !this.socket.destroyed);
|
|
202
|
+
if (!ok) {
|
|
203
|
+
this.log.warn(
|
|
204
|
+
'[Cync TCP] establishSocket() completed but socket is not usable.',
|
|
205
|
+
);
|
|
206
|
+
}
|
|
207
|
+
this.connecting = null;
|
|
208
|
+
return ok;
|
|
209
|
+
})().catch((err) => {
|
|
210
|
+
this.log.error(
|
|
211
|
+
'[Cync TCP] ensureConnected() connect attempt failed: %s',
|
|
212
|
+
String(err),
|
|
213
|
+
);
|
|
214
|
+
this.connecting = null;
|
|
215
|
+
return false;
|
|
216
|
+
});
|
|
217
|
+
}
|
|
218
|
+
|
|
219
|
+
return this.connecting;
|
|
189
220
|
}
|
|
190
221
|
|
|
191
222
|
/**
|
|
@@ -294,6 +325,45 @@ export class TcpClient {
|
|
|
294
325
|
return this.seq;
|
|
295
326
|
}
|
|
296
327
|
|
|
328
|
+
private async flushQueue(): Promise<void> {
|
|
329
|
+
if (this.sending) {
|
|
330
|
+
return;
|
|
331
|
+
}
|
|
332
|
+
this.sending = true;
|
|
333
|
+
|
|
334
|
+
try {
|
|
335
|
+
while (this.sendQueue.length > 0) {
|
|
336
|
+
const item = this.sendQueue.shift();
|
|
337
|
+
if (!item) {
|
|
338
|
+
break;
|
|
339
|
+
}
|
|
340
|
+
|
|
341
|
+
const connected = await this.ensureConnected();
|
|
342
|
+
if (!connected || !this.socket || this.socket.destroyed) {
|
|
343
|
+
this.log.warn(
|
|
344
|
+
'[Cync TCP] Socket not available while flushing queue; dropping remaining %d packets.',
|
|
345
|
+
this.sendQueue.length + 1,
|
|
346
|
+
);
|
|
347
|
+
this.sendQueue.length = 0;
|
|
348
|
+
break;
|
|
349
|
+
}
|
|
350
|
+
|
|
351
|
+
this.socket.write(item.packet);
|
|
352
|
+
this.log.info(
|
|
353
|
+
'[Cync TCP] Sent power packet: device=%s on=%s seq=%d',
|
|
354
|
+
item.deviceId,
|
|
355
|
+
String(item.on),
|
|
356
|
+
item.seq,
|
|
357
|
+
);
|
|
358
|
+
|
|
359
|
+
// Small delay so we don't hammer the bridge/device with a burst
|
|
360
|
+
await new Promise((resolve) => setTimeout(resolve, 50));
|
|
361
|
+
}
|
|
362
|
+
} finally {
|
|
363
|
+
this.sending = false;
|
|
364
|
+
}
|
|
365
|
+
}
|
|
366
|
+
|
|
297
367
|
private buildPowerPacket(
|
|
298
368
|
controllerId: number,
|
|
299
369
|
meshId: number,
|
|
@@ -344,6 +414,9 @@ export class TcpClient {
|
|
|
344
414
|
this.socket.destroy();
|
|
345
415
|
this.socket = null;
|
|
346
416
|
}
|
|
417
|
+
this.sendQueue.length = 0;
|
|
418
|
+
this.sending = false;
|
|
419
|
+
this.connecting = null;
|
|
347
420
|
}
|
|
348
421
|
|
|
349
422
|
public onDeviceUpdate(cb: DeviceUpdateCallback): void {
|
|
@@ -369,7 +442,8 @@ export class TcpClient {
|
|
|
369
442
|
|
|
370
443
|
/**
|
|
371
444
|
* High-level API to change switch state.
|
|
372
|
-
*
|
|
445
|
+
* Now enqueues a power packet so multiple HomeKit scene writes are
|
|
446
|
+
* serialized over a single TCP session.
|
|
373
447
|
*/
|
|
374
448
|
public async setSwitchState(
|
|
375
449
|
deviceId: string,
|
|
@@ -380,14 +454,6 @@ export class TcpClient {
|
|
|
380
454
|
return;
|
|
381
455
|
}
|
|
382
456
|
|
|
383
|
-
const connected = await this.ensureConnected();
|
|
384
|
-
if (!connected || !this.socket || this.socket.destroyed) {
|
|
385
|
-
this.log.warn(
|
|
386
|
-
'[Cync TCP] Cannot send, socket not ready even after reconnect attempt.',
|
|
387
|
-
);
|
|
388
|
-
return;
|
|
389
|
-
}
|
|
390
|
-
|
|
391
457
|
const device = this.findDevice(deviceId);
|
|
392
458
|
if (!device) {
|
|
393
459
|
this.log.warn('[Cync TCP] Unknown deviceId=%s', deviceId);
|
|
@@ -410,13 +476,15 @@ export class TcpClient {
|
|
|
410
476
|
const seq = this.nextSeq();
|
|
411
477
|
const packet = this.buildPowerPacket(controllerId, meshIndex, params.on, seq);
|
|
412
478
|
|
|
413
|
-
this.
|
|
414
|
-
this.log.info(
|
|
415
|
-
'[Cync TCP] Sent power packet: device=%s on=%s seq=%d',
|
|
479
|
+
this.sendQueue.push({
|
|
416
480
|
deviceId,
|
|
417
|
-
|
|
481
|
+
on: params.on,
|
|
418
482
|
seq,
|
|
419
|
-
|
|
483
|
+
packet,
|
|
484
|
+
});
|
|
485
|
+
|
|
486
|
+
// Async fire-and-forget; actual sends are serialized in flushQueue()
|
|
487
|
+
void this.flushQueue();
|
|
420
488
|
}
|
|
421
489
|
|
|
422
490
|
private findDevice(deviceId: string) {
|
|
@@ -447,7 +515,9 @@ export class TcpClient {
|
|
|
447
515
|
|
|
448
516
|
socket.on('close', () => {
|
|
449
517
|
this.log.warn('[Cync TCP] Socket closed.');
|
|
450
|
-
this.socket
|
|
518
|
+
if (this.socket === socket) {
|
|
519
|
+
this.socket = null;
|
|
520
|
+
}
|
|
451
521
|
});
|
|
452
522
|
|
|
453
523
|
socket.on('error', (err) => {
|
package/src/cync/token-store.ts
CHANGED
|
@@ -13,12 +13,17 @@ export interface CyncTokenData {
|
|
|
13
13
|
|
|
14
14
|
/**
|
|
15
15
|
* Simple JSON token store under the Homebridge storage path.
|
|
16
|
+
*
|
|
17
|
+
* Files are stored at:
|
|
18
|
+
* <storagePath>/homebridge-cync-app/cync-tokens.json
|
|
16
19
|
*/
|
|
17
20
|
export class CyncTokenStore {
|
|
21
|
+
private readonly dirPath: string;
|
|
18
22
|
private readonly filePath: string;
|
|
19
23
|
|
|
20
24
|
public constructor(storagePath: string) {
|
|
21
|
-
this.
|
|
25
|
+
this.dirPath = path.join(storagePath, 'homebridge-cync-app');
|
|
26
|
+
this.filePath = path.join(this.dirPath, 'cync-tokens.json');
|
|
22
27
|
}
|
|
23
28
|
|
|
24
29
|
public async load(): Promise<CyncTokenData | null> {
|
|
@@ -33,12 +38,16 @@ export class CyncTokenStore {
|
|
|
33
38
|
|
|
34
39
|
return data;
|
|
35
40
|
} catch {
|
|
41
|
+
// file missing or unreadable → treat as no token
|
|
36
42
|
return null;
|
|
37
43
|
}
|
|
38
44
|
}
|
|
39
45
|
|
|
40
46
|
public async save(data: CyncTokenData): Promise<void> {
|
|
41
47
|
const json = JSON.stringify(data, null, 2);
|
|
48
|
+
|
|
49
|
+
// Ensure directory exists before writing
|
|
50
|
+
await fs.mkdir(this.dirPath, { recursive: true });
|
|
42
51
|
await fs.writeFile(this.filePath, json, 'utf8');
|
|
43
52
|
}
|
|
44
53
|
|
|
@@ -46,7 +55,7 @@ export class CyncTokenStore {
|
|
|
46
55
|
try {
|
|
47
56
|
await fs.unlink(this.filePath);
|
|
48
57
|
} catch {
|
|
49
|
-
// ignore if missing
|
|
58
|
+
// ignore if missing or already removed
|
|
50
59
|
}
|
|
51
60
|
}
|
|
52
61
|
}
|