@bobfrankston/lxlan 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/.hintrc +20 -0
- package/README.md +159 -0
- package/client.d.ts +0 -3
- package/client.js +19 -4
- package/device.d.ts +16 -0
- package/device.js +44 -3
- package/index.d.ts +1 -1
- package/package.json +10 -5
- package/protocol.d.ts +23 -21
- package/protocol.js +118 -62
- package/release-all.ps1 +168 -0
- package/transport.d.ts +4 -27
- package/transport.js +2 -5
- package/types.d.ts +23 -6
- package/.gitattributes +0 -5
- package/client.d.ts.map +0 -1
- package/client.js.map +0 -1
- package/device.d.ts.map +0 -1
- package/device.js.map +0 -1
- package/events.d.ts.map +0 -1
- package/events.js.map +0 -1
- package/index.d.ts.map +0 -1
- package/index.js.map +0 -1
- package/protocol.d.ts.map +0 -1
- package/protocol.js.map +0 -1
- package/transport.d.ts.map +0 -1
- package/transport.js.map +0 -1
- package/types.d.ts.map +0 -1
- package/types.js.map +0 -1
package/.hintrc
ADDED
package/README.md
ADDED
|
@@ -0,0 +1,159 @@
|
|
|
1
|
+
# @bobfrankston/lxlan
|
|
2
|
+
|
|
3
|
+
Core LIFX LAN protocol library. Transport-agnostic implementation of the LIFX LAN protocol for controlling LIFX devices over local networks.
|
|
4
|
+
|
|
5
|
+
## Purpose
|
|
6
|
+
|
|
7
|
+
This package provides the **protocol-level implementation** for LIFX device control. It knows:
|
|
8
|
+
- ✅ LIFX protocol messages (SetPower, SetColor, GetState, etc.)
|
|
9
|
+
- ✅ Message encoding/decoding (binary packet format)
|
|
10
|
+
- ✅ Device state management (power, color, label, etc.)
|
|
11
|
+
- ✅ Event emission patterns (device discovery, state updates)
|
|
12
|
+
|
|
13
|
+
It does **NOT** know:
|
|
14
|
+
- ❌ How to send UDP packets (no Node.js dgram)
|
|
15
|
+
- ❌ How to open WebSockets (no browser APIs)
|
|
16
|
+
- ❌ Any specific transport implementation
|
|
17
|
+
|
|
18
|
+
## Architecture Factoring
|
|
19
|
+
|
|
20
|
+
```
|
|
21
|
+
┌─────────────────────────────────────────────────┐
|
|
22
|
+
│ Application (your code) │
|
|
23
|
+
├─────────────────────────────────────────────────┤
|
|
24
|
+
│ @bobfrankston/lxlan (this package) │
|
|
25
|
+
│ • LxClient - device discovery & management │
|
|
26
|
+
│ • LxDevice - individual device control │
|
|
27
|
+
│ • LxProtocol - message encode/decode │
|
|
28
|
+
│ • LxTransport - INTERFACE ONLY │
|
|
29
|
+
├─────────────────────────────────────────────────┤
|
|
30
|
+
│ Transport Implementation (pick one): │
|
|
31
|
+
│ • @bobfrankston/lxlan-node → rmfudp │
|
|
32
|
+
│ • @bobfrankston/lxlan-browser → httpudp-client│
|
|
33
|
+
└─────────────────────────────────────────────────┘
|
|
34
|
+
```
|
|
35
|
+
|
|
36
|
+
## Transport Abstraction
|
|
37
|
+
|
|
38
|
+
The package exports `LxTransport` interface that must be implemented by transport layers:
|
|
39
|
+
|
|
40
|
+
```typescript
|
|
41
|
+
export interface LxTransport {
|
|
42
|
+
bind(): Promise<void>;
|
|
43
|
+
close(): void;
|
|
44
|
+
send(ip: string, port: number, data: Buffer): void;
|
|
45
|
+
broadcast(data: Buffer, port: number, addresses: string[]): void;
|
|
46
|
+
onMessage(handler: (data: Buffer, rinfo: RemoteInfo) => void): void;
|
|
47
|
+
onError(handler: (err: Error) => void): void;
|
|
48
|
+
}
|
|
49
|
+
```
|
|
50
|
+
|
|
51
|
+
**Implementations:**
|
|
52
|
+
- **Node.js**: `@bobfrankston/lxlan-node` provides `rmfudp`-based transport
|
|
53
|
+
- **Browser**: `@bobfrankston/lxlan-browser` provides `httpudp-client`-based transport
|
|
54
|
+
|
|
55
|
+
## Installation
|
|
56
|
+
|
|
57
|
+
This package is typically installed as a dependency of the platform-specific wrappers:
|
|
58
|
+
|
|
59
|
+
```bash
|
|
60
|
+
# For Node.js projects
|
|
61
|
+
npm install @bobfrankston/lxlan-node
|
|
62
|
+
|
|
63
|
+
# For browser projects
|
|
64
|
+
npm install @bobfrankston/lxlan-browser
|
|
65
|
+
```
|
|
66
|
+
|
|
67
|
+
Direct usage (if providing your own transport):
|
|
68
|
+
|
|
69
|
+
```bash
|
|
70
|
+
npm install @bobfrankston/lxlan
|
|
71
|
+
```
|
|
72
|
+
|
|
73
|
+
## Direct Usage (Advanced)
|
|
74
|
+
|
|
75
|
+
If you're implementing your own transport:
|
|
76
|
+
|
|
77
|
+
```typescript
|
|
78
|
+
import { LxClient } from '@bobfrankston/lxlan';
|
|
79
|
+
import { MyCustomTransport } from './my-transport';
|
|
80
|
+
|
|
81
|
+
const transport = new MyCustomTransport();
|
|
82
|
+
const client = new LxClient({ transport });
|
|
83
|
+
|
|
84
|
+
await client.start();
|
|
85
|
+
|
|
86
|
+
client.on('device', (device) => {
|
|
87
|
+
console.log('Found:', device.label);
|
|
88
|
+
device.setPower(true);
|
|
89
|
+
device.setColor({ h: 120, s: 100, b: 50 });
|
|
90
|
+
});
|
|
91
|
+
```
|
|
92
|
+
|
|
93
|
+
## Features
|
|
94
|
+
|
|
95
|
+
- 🎯 Full LIFX LAN protocol support
|
|
96
|
+
- 🔍 Automatic device discovery
|
|
97
|
+
- 🎨 Color control (HSB, RGB, Kelvin)
|
|
98
|
+
- 💡 Power control
|
|
99
|
+
- 📊 Device state caching
|
|
100
|
+
- 📡 Event-driven architecture
|
|
101
|
+
- 🔄 Automatic retry with configurable timeouts
|
|
102
|
+
- 📝 Comprehensive device info (firmware, WiFi, uptime)
|
|
103
|
+
|
|
104
|
+
## Device Control
|
|
105
|
+
|
|
106
|
+
```typescript
|
|
107
|
+
// Power control
|
|
108
|
+
device.setPower(true);
|
|
109
|
+
device.setPower(false);
|
|
110
|
+
|
|
111
|
+
// Color control
|
|
112
|
+
device.setColor({ h: 180, s: 100, b: 75 }); // HSB
|
|
113
|
+
device.setColor({ r: 255, g: 0, b: 0 }); // RGB
|
|
114
|
+
device.setColor({ kelvin: 3500 }); // White temperature
|
|
115
|
+
|
|
116
|
+
// Get comprehensive device info
|
|
117
|
+
device.getDeviceInfo(); // Triggers 'deviceInfo' event
|
|
118
|
+
|
|
119
|
+
// State queries
|
|
120
|
+
console.log(device.label, device.power, device.color);
|
|
121
|
+
```
|
|
122
|
+
|
|
123
|
+
## Events
|
|
124
|
+
|
|
125
|
+
```typescript
|
|
126
|
+
client.on('device', (device) => {
|
|
127
|
+
// New device discovered
|
|
128
|
+
});
|
|
129
|
+
|
|
130
|
+
client.on('state', (device) => {
|
|
131
|
+
// Device state updated
|
|
132
|
+
});
|
|
133
|
+
|
|
134
|
+
client.on('deviceInfo', (device) => {
|
|
135
|
+
// Complete device info received (firmware, signal, uptime)
|
|
136
|
+
console.log(device.firmwareVersion, device.signal, device.uptime);
|
|
137
|
+
});
|
|
138
|
+
```
|
|
139
|
+
|
|
140
|
+
## Dependencies
|
|
141
|
+
|
|
142
|
+
- `@bobfrankston/colorlib` - Color space conversions (HSB ↔ RGB ↔ Kelvin)
|
|
143
|
+
|
|
144
|
+
## Related Packages
|
|
145
|
+
|
|
146
|
+
- **[@bobfrankston/lxlan-node](../lxlan-node)** - Node.js transport wrapper
|
|
147
|
+
- **[@bobfrankston/lxlan-browser](../lxlan-browser)** - Browser transport wrapper
|
|
148
|
+
- **[@bobfrankston/rmfudp](../../../../utils/udp/rmfudp)** - Node.js UDP transport
|
|
149
|
+
- **[@bobfrankston/httpudp-client](../../../../utils/udp/httpudp-client)** - Browser WebSocket UDP client
|
|
150
|
+
- **[@bobfrankston/httpudp](../../../../utils/udp/httpudp)** - WebSocket-to-UDP proxy server
|
|
151
|
+
- **[@bobfrankston/colorlib](../../../../utils/colorlib)** - Color utilities
|
|
152
|
+
|
|
153
|
+
## TypeScript Configuration
|
|
154
|
+
|
|
155
|
+
This package uses `strictNullChecks: false` - undefined is treated as a first-class value throughout the codebase.
|
|
156
|
+
|
|
157
|
+
## License
|
|
158
|
+
|
|
159
|
+
MIT
|
package/client.d.ts
CHANGED
|
@@ -7,8 +7,6 @@ import { LxDevice } from './device.js';
|
|
|
7
7
|
export interface LxClientOptions {
|
|
8
8
|
/** Transport layer implementation (required) */
|
|
9
9
|
transport: LxTransport;
|
|
10
|
-
/** Broadcast addresses for discovery */
|
|
11
|
-
broadcastAddresses: string[];
|
|
12
10
|
/** Event emitter implementation (required - use Node EventEmitter or browser equivalent) */
|
|
13
11
|
eventEmitter: LxEventEmitter;
|
|
14
12
|
/** LIFX port (default 56700) */
|
|
@@ -40,7 +38,6 @@ export declare class LxClient {
|
|
|
40
38
|
private emitter;
|
|
41
39
|
private transport;
|
|
42
40
|
private port;
|
|
43
|
-
private broadcastAddresses;
|
|
44
41
|
private discoveryTimer?;
|
|
45
42
|
/** Cached devices by MAC address (lowercase) */
|
|
46
43
|
devices: Map<string, LxDevice>;
|
package/client.js
CHANGED
|
@@ -26,7 +26,6 @@ export class LxClient {
|
|
|
26
26
|
emitter;
|
|
27
27
|
transport;
|
|
28
28
|
port;
|
|
29
|
-
broadcastAddresses;
|
|
30
29
|
discoveryTimer; // NodeJS.Timeout in Node, number in browser
|
|
31
30
|
/** Cached devices by MAC address (lowercase) */
|
|
32
31
|
devices = new Map();
|
|
@@ -34,9 +33,10 @@ export class LxClient {
|
|
|
34
33
|
this.emitter = options.eventEmitter;
|
|
35
34
|
this.transport = options.transport;
|
|
36
35
|
this.port = options.port ?? LIFX_PORT;
|
|
37
|
-
this.broadcastAddresses = options.broadcastAddresses;
|
|
38
36
|
this.transport.onMessage((data, rinfo) => {
|
|
39
|
-
|
|
37
|
+
// Ensure data is Uint8Array for protocol decoder
|
|
38
|
+
const buf = data instanceof Uint8Array ? data : new Uint8Array(data);
|
|
39
|
+
this.handleMessage(buf, rinfo.address, rinfo.port);
|
|
40
40
|
});
|
|
41
41
|
this.transport.onError((err) => {
|
|
42
42
|
this.emitter.emit('error', err);
|
|
@@ -80,7 +80,7 @@ export class LxClient {
|
|
|
80
80
|
type: MessageType.GetService,
|
|
81
81
|
tagged: true
|
|
82
82
|
});
|
|
83
|
-
this.transport.broadcast(msg, this.port
|
|
83
|
+
this.transport.broadcast(msg, this.port);
|
|
84
84
|
}
|
|
85
85
|
/**
|
|
86
86
|
* Get device by MAC address
|
|
@@ -152,6 +152,7 @@ export class LxClient {
|
|
|
152
152
|
case MessageType.StateService: {
|
|
153
153
|
const info = decodeStateService(msg.payload);
|
|
154
154
|
device.port = info.port;
|
|
155
|
+
device.markResponseReceived(MessageType.GetService);
|
|
155
156
|
break;
|
|
156
157
|
}
|
|
157
158
|
case MessageType.State: {
|
|
@@ -159,16 +160,23 @@ export class LxClient {
|
|
|
159
160
|
device.color = hsbk16ToHsbk(state.hsbk);
|
|
160
161
|
device.power = state.power > 0;
|
|
161
162
|
device.label = state.label;
|
|
163
|
+
device.markResponseReceived(MessageType.Get);
|
|
164
|
+
// State messages also respond to SetPower and SetColor
|
|
165
|
+
device.markResponseReceived(MessageType.SetPower);
|
|
166
|
+
device.markResponseReceived(MessageType.SetColor);
|
|
162
167
|
this.emit('state', device);
|
|
163
168
|
break;
|
|
164
169
|
}
|
|
165
170
|
case MessageType.StatePower: {
|
|
166
171
|
device.power = decodeStatePower(msg.payload);
|
|
172
|
+
device.markResponseReceived(MessageType.GetPower);
|
|
173
|
+
device.markResponseReceived(MessageType.SetPower);
|
|
167
174
|
this.emit('power', device);
|
|
168
175
|
break;
|
|
169
176
|
}
|
|
170
177
|
case MessageType.StateLabel: {
|
|
171
178
|
device.label = decodeStateLabel(msg.payload);
|
|
179
|
+
device.markResponseReceived(MessageType.GetLabel);
|
|
172
180
|
this.emit('label', device);
|
|
173
181
|
break;
|
|
174
182
|
}
|
|
@@ -176,16 +184,19 @@ export class LxClient {
|
|
|
176
184
|
const ver = decodeStateVersion(msg.payload);
|
|
177
185
|
device.vendor = ver.vendor;
|
|
178
186
|
device.product = ver.product;
|
|
187
|
+
device.markResponseReceived(MessageType.GetVersion);
|
|
179
188
|
this.emit('version', device);
|
|
180
189
|
break;
|
|
181
190
|
}
|
|
182
191
|
case MessageType.StateGroup: {
|
|
183
192
|
device.group = decodeStateGroup(msg.payload);
|
|
193
|
+
device.markResponseReceived(MessageType.GetGroup);
|
|
184
194
|
this.emit('group', device);
|
|
185
195
|
break;
|
|
186
196
|
}
|
|
187
197
|
case MessageType.StateLocation: {
|
|
188
198
|
device.location = decodeStateGroup(msg.payload);
|
|
199
|
+
device.markResponseReceived(MessageType.GetLocation);
|
|
189
200
|
this.emit('location', device);
|
|
190
201
|
break;
|
|
191
202
|
}
|
|
@@ -193,6 +204,7 @@ export class LxClient {
|
|
|
193
204
|
const info = decodeStateHostInfo(msg.payload);
|
|
194
205
|
device.signal = info.signal;
|
|
195
206
|
device.rssi = Math.round(10 * Math.log10(info.signal));
|
|
207
|
+
device.markResponseReceived(MessageType.GetHostInfo);
|
|
196
208
|
this.emit('hostInfo', device);
|
|
197
209
|
this.checkDeviceInfoComplete(device);
|
|
198
210
|
break;
|
|
@@ -200,6 +212,7 @@ export class LxClient {
|
|
|
200
212
|
case MessageType.StateHostFirmware: {
|
|
201
213
|
const fw = decodeStateHostFirmware(msg.payload);
|
|
202
214
|
device.firmwareVersion = fw.version;
|
|
215
|
+
device.markResponseReceived(MessageType.GetHostFirmware);
|
|
203
216
|
this.emit('hostFirmware', device);
|
|
204
217
|
this.checkDeviceInfoComplete(device);
|
|
205
218
|
break;
|
|
@@ -208,6 +221,7 @@ export class LxClient {
|
|
|
208
221
|
const info = decodeStateWifiInfo(msg.payload);
|
|
209
222
|
device.signal = info.signal;
|
|
210
223
|
device.rssi = Math.round(10 * Math.log10(info.signal));
|
|
224
|
+
device.markResponseReceived(MessageType.GetWifiInfo);
|
|
211
225
|
this.emit('wifiInfo', device);
|
|
212
226
|
this.checkDeviceInfoComplete(device);
|
|
213
227
|
break;
|
|
@@ -216,6 +230,7 @@ export class LxClient {
|
|
|
216
230
|
const info = decodeStateInfo(msg.payload);
|
|
217
231
|
device.uptime = info.uptime;
|
|
218
232
|
device.downtime = info.downtime;
|
|
233
|
+
device.markResponseReceived(MessageType.GetInfo);
|
|
219
234
|
this.emit('info', device);
|
|
220
235
|
this.checkDeviceInfoComplete(device);
|
|
221
236
|
break;
|
package/device.d.ts
CHANGED
|
@@ -47,6 +47,10 @@ export declare class LxDevice {
|
|
|
47
47
|
/** Recent message sequences for deduplication (sequence -> timestamp) */
|
|
48
48
|
private recentSequences;
|
|
49
49
|
private transport?;
|
|
50
|
+
/** Pending requests awaiting responses (message type -> timeout) */
|
|
51
|
+
private pendingRequests;
|
|
52
|
+
/** Default timeout for requests in milliseconds */
|
|
53
|
+
private requestTimeout;
|
|
50
54
|
/**
|
|
51
55
|
* Create a LIFX device
|
|
52
56
|
*
|
|
@@ -69,8 +73,18 @@ export declare class LxDevice {
|
|
|
69
73
|
setTransport(transport: LxTransport): void;
|
|
70
74
|
/** Send raw message to device */
|
|
71
75
|
send(type: number, payload?: Buffer): void;
|
|
76
|
+
/** Start tracking a request with timeout */
|
|
77
|
+
private startRequestTimeout;
|
|
78
|
+
/** Clear request timeout when response received */
|
|
79
|
+
private clearRequestTimeout;
|
|
72
80
|
/** Set power on/off */
|
|
73
81
|
setPower(on: boolean): void;
|
|
82
|
+
/**
|
|
83
|
+
* Set brightness while keeping current color
|
|
84
|
+
* @param brightness - Brightness 0-100
|
|
85
|
+
* @param duration - Transition time in milliseconds (default 0)
|
|
86
|
+
*/
|
|
87
|
+
setBrightness(brightness: number, duration?: number): void;
|
|
74
88
|
/**
|
|
75
89
|
* Set color - accepts flexible input formats
|
|
76
90
|
* @param color - Color as hex "#ff0000", RGB {r,g,b}, HSL {h,s,l}, HSB {h,s,b}, HSBK {h,s,b,k}, or Kelvin number
|
|
@@ -118,6 +132,8 @@ export declare class LxDevice {
|
|
|
118
132
|
getDeviceInfo(): void;
|
|
119
133
|
/** Update last seen timestamp and online status */
|
|
120
134
|
markSeen(): void;
|
|
135
|
+
/** Notify that a response was received for a message type */
|
|
136
|
+
markResponseReceived(messageType: number): void;
|
|
121
137
|
/**
|
|
122
138
|
* Check if message is a duplicate based on sequence number.
|
|
123
139
|
* LIFX devices sometimes send duplicate responses.
|
package/device.js
CHANGED
|
@@ -47,6 +47,10 @@ export class LxDevice {
|
|
|
47
47
|
/** Recent message sequences for deduplication (sequence -> timestamp) */
|
|
48
48
|
recentSequences = new Map();
|
|
49
49
|
transport;
|
|
50
|
+
/** Pending requests awaiting responses (message type -> timeout) */
|
|
51
|
+
pendingRequests = new Map();
|
|
52
|
+
/** Default timeout for requests in milliseconds */
|
|
53
|
+
requestTimeout = 1000;
|
|
50
54
|
/**
|
|
51
55
|
* Create a LIFX device
|
|
52
56
|
*
|
|
@@ -92,6 +96,27 @@ export class LxDevice {
|
|
|
92
96
|
resRequired: true
|
|
93
97
|
});
|
|
94
98
|
this.transport.send(this.ip, this.port, msg);
|
|
99
|
+
// Track this request with a timeout
|
|
100
|
+
this.startRequestTimeout(type);
|
|
101
|
+
}
|
|
102
|
+
/** Start tracking a request with timeout */
|
|
103
|
+
startRequestTimeout(messageType) {
|
|
104
|
+
// Clear any existing timeout for this message type
|
|
105
|
+
this.clearRequestTimeout(messageType);
|
|
106
|
+
// Set new timeout
|
|
107
|
+
const timeout = setTimeout(() => {
|
|
108
|
+
this.online = false;
|
|
109
|
+
this.pendingRequests.delete(messageType);
|
|
110
|
+
}, this.requestTimeout);
|
|
111
|
+
this.pendingRequests.set(messageType, timeout);
|
|
112
|
+
}
|
|
113
|
+
/** Clear request timeout when response received */
|
|
114
|
+
clearRequestTimeout(messageType) {
|
|
115
|
+
const timeout = this.pendingRequests.get(messageType);
|
|
116
|
+
if (timeout) {
|
|
117
|
+
clearTimeout(timeout);
|
|
118
|
+
this.pendingRequests.delete(messageType);
|
|
119
|
+
}
|
|
95
120
|
}
|
|
96
121
|
/** Set power on/off */
|
|
97
122
|
setPower(on) {
|
|
@@ -103,6 +128,19 @@ export class LxDevice {
|
|
|
103
128
|
ackRequired: true
|
|
104
129
|
});
|
|
105
130
|
this.transport.send(this.ip, this.port, msg);
|
|
131
|
+
// Track this request with a timeout
|
|
132
|
+
this.startRequestTimeout(MessageType.SetPower);
|
|
133
|
+
}
|
|
134
|
+
/**
|
|
135
|
+
* Set brightness while keeping current color
|
|
136
|
+
* @param brightness - Brightness 0-100
|
|
137
|
+
* @param duration - Transition time in milliseconds (default 0)
|
|
138
|
+
*/
|
|
139
|
+
setBrightness(brightness, duration = 0) {
|
|
140
|
+
this.requireTransport();
|
|
141
|
+
// Keep current hue/saturation/kelvin, just change brightness
|
|
142
|
+
const newColor = { ...this.color, b: brightness };
|
|
143
|
+
this.setColor(newColor, duration);
|
|
106
144
|
}
|
|
107
145
|
/**
|
|
108
146
|
* Set color - accepts flexible input formats
|
|
@@ -120,6 +158,8 @@ export class LxDevice {
|
|
|
120
158
|
ackRequired: true
|
|
121
159
|
});
|
|
122
160
|
this.transport.send(this.ip, this.port, msg);
|
|
161
|
+
// Track this request with a timeout
|
|
162
|
+
this.startRequestTimeout(MessageType.SetColor);
|
|
123
163
|
}
|
|
124
164
|
/**
|
|
125
165
|
* Set white color temperature
|
|
@@ -140,7 +180,6 @@ export class LxDevice {
|
|
|
140
180
|
}
|
|
141
181
|
/** Set label */
|
|
142
182
|
setLabel(label) {
|
|
143
|
-
this.requireTransport();
|
|
144
183
|
const msg = encodeMessage({
|
|
145
184
|
type: MessageType.SetLabel,
|
|
146
185
|
target: this.mac,
|
|
@@ -155,7 +194,6 @@ export class LxDevice {
|
|
|
155
194
|
}
|
|
156
195
|
/** Set group */
|
|
157
196
|
setGroup(id, label) {
|
|
158
|
-
this.requireTransport();
|
|
159
197
|
const msg = encodeMessage({
|
|
160
198
|
type: MessageType.SetGroup,
|
|
161
199
|
target: this.mac,
|
|
@@ -170,7 +208,6 @@ export class LxDevice {
|
|
|
170
208
|
}
|
|
171
209
|
/** Set location */
|
|
172
210
|
setLocation(id, label) {
|
|
173
|
-
this.requireTransport();
|
|
174
211
|
const msg = encodeMessage({
|
|
175
212
|
type: MessageType.SetLocation,
|
|
176
213
|
target: this.mac,
|
|
@@ -223,6 +260,10 @@ export class LxDevice {
|
|
|
223
260
|
this.lastSeen = Date.now();
|
|
224
261
|
this.online = true;
|
|
225
262
|
}
|
|
263
|
+
/** Notify that a response was received for a message type */
|
|
264
|
+
markResponseReceived(messageType) {
|
|
265
|
+
this.clearRequestTimeout(messageType);
|
|
266
|
+
}
|
|
226
267
|
/**
|
|
227
268
|
* Check if message is a duplicate based on sequence number.
|
|
228
269
|
* LIFX devices sometimes send duplicate responses.
|
package/index.d.ts
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
export * from './types.js';
|
|
2
2
|
export { LxDevice } from './device.js';
|
|
3
3
|
export { LxClient, LxClientOptions } from './client.js';
|
|
4
|
-
export { LxTransport, RemoteInfo } from './transport.js';
|
|
4
|
+
export { UdpTransport, LxTransport, RemoteInfo } from './transport.js';
|
|
5
5
|
export { LxEventEmitter, LxEventEmitterBase } from './events.js';
|
|
6
6
|
export { encodeMessage, decodeMessage } from './protocol.js';
|
|
7
7
|
//# sourceMappingURL=index.d.ts.map
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@bobfrankston/lxlan",
|
|
3
|
-
"version": "0.1.
|
|
3
|
+
"version": "0.1.9",
|
|
4
4
|
"description": "LIFX LAN protocol library for device control via UDP",
|
|
5
5
|
"type": "module",
|
|
6
6
|
"main": "index.js",
|
|
@@ -15,8 +15,8 @@
|
|
|
15
15
|
"build": "tsc",
|
|
16
16
|
"watch": "tsc -w",
|
|
17
17
|
"preversion": "npm run build",
|
|
18
|
-
"
|
|
19
|
-
"
|
|
18
|
+
"release": "git add -A && git diff-index --quiet HEAD || git commit -m 'Build for release' && npm version patch",
|
|
19
|
+
"postversion": "git push && git push --tags && npm publish --loglevel=error"
|
|
20
20
|
},
|
|
21
21
|
"keywords": [
|
|
22
22
|
"lifx",
|
|
@@ -31,9 +31,14 @@
|
|
|
31
31
|
"url": "https://github.com/BobFrankston/lxlan.git"
|
|
32
32
|
},
|
|
33
33
|
"dependencies": {
|
|
34
|
-
"@bobfrankston/colorlib": "
|
|
34
|
+
"@bobfrankston/colorlib": "^0.1.6",
|
|
35
|
+
"@bobfrankston/udp-transport": "^1.0.0"
|
|
35
36
|
},
|
|
36
37
|
"devDependencies": {
|
|
37
|
-
"@types/node": "^25.0.
|
|
38
|
+
"@types/node": "^25.0.9"
|
|
39
|
+
},
|
|
40
|
+
".dependencies": {
|
|
41
|
+
"@bobfrankston/colorlib": "file:../../../../utils/colorlib",
|
|
42
|
+
"@bobfrankston/udp-transport": "file:../../../../utils/udp/udp-transport"
|
|
38
43
|
}
|
|
39
44
|
}
|
package/protocol.d.ts
CHANGED
|
@@ -4,76 +4,78 @@ import { LxMessage } from './types.js';
|
|
|
4
4
|
export declare function nextSequence(): number;
|
|
5
5
|
/** Get global source ID */
|
|
6
6
|
export declare function getSource(): number;
|
|
7
|
-
/** Encode LIFX message to
|
|
7
|
+
/** Encode LIFX message to Uint8Array */
|
|
8
8
|
export declare function encodeMessage(options: {
|
|
9
9
|
type: number;
|
|
10
|
-
target?: string;
|
|
11
|
-
payload?:
|
|
10
|
+
target?: string;
|
|
11
|
+
payload?: Uint8Array;
|
|
12
12
|
tagged?: boolean;
|
|
13
13
|
ackRequired?: boolean;
|
|
14
14
|
resRequired?: boolean;
|
|
15
15
|
sequence?: number;
|
|
16
|
-
}):
|
|
17
|
-
/** Decode LIFX message from
|
|
18
|
-
export declare function decodeMessage(buf:
|
|
16
|
+
}): Uint8Array;
|
|
17
|
+
/** Decode LIFX message from Uint8Array */
|
|
18
|
+
export declare function decodeMessage(buf: Uint8Array): LxMessage;
|
|
19
19
|
/** Encode SetPower payload */
|
|
20
|
-
export declare function encodeSetPower(
|
|
20
|
+
export declare function encodeSetPower(level: boolean): Uint8Array;
|
|
21
21
|
/** Encode SetColor payload */
|
|
22
|
-
export declare function encodeSetColor(hsbk: HSBK16, duration?: number):
|
|
22
|
+
export declare function encodeSetColor(hsbk: HSBK16, duration?: number): Uint8Array;
|
|
23
23
|
/** Encode SetLabel payload */
|
|
24
|
-
export declare function encodeSetLabel(label: string):
|
|
24
|
+
export declare function encodeSetLabel(label: string): Uint8Array;
|
|
25
25
|
/** Encode SetGroup payload */
|
|
26
|
-
export declare function encodeSetGroup(id: string, label: string):
|
|
26
|
+
export declare function encodeSetGroup(id: string, label: string): Uint8Array;
|
|
27
27
|
/** Encode SetLocation payload (same format as SetGroup) */
|
|
28
|
-
export declare function encodeSetLocation(id: string, label: string):
|
|
28
|
+
export declare function encodeSetLocation(id: string, label: string): Uint8Array;
|
|
29
29
|
/** Decode State (107) payload - light state */
|
|
30
|
-
export declare function decodeState(payload:
|
|
30
|
+
export declare function decodeState(payload: Uint8Array): {
|
|
31
31
|
hsbk: HSBK16;
|
|
32
32
|
power: number;
|
|
33
33
|
label: string;
|
|
34
34
|
};
|
|
35
35
|
/** Decode StatePower (22) payload */
|
|
36
|
-
export declare function decodeStatePower(payload:
|
|
36
|
+
export declare function decodeStatePower(payload: Uint8Array): boolean;
|
|
37
37
|
/** Decode StateLabel (25) payload */
|
|
38
|
-
export declare function decodeStateLabel(payload:
|
|
38
|
+
export declare function decodeStateLabel(payload: Uint8Array): string;
|
|
39
39
|
/** Decode StateVersion (33) payload */
|
|
40
|
-
export declare function decodeStateVersion(payload:
|
|
40
|
+
export declare function decodeStateVersion(payload: Uint8Array): {
|
|
41
41
|
vendor: number;
|
|
42
42
|
product: number;
|
|
43
43
|
version: number;
|
|
44
44
|
};
|
|
45
45
|
/** Decode StateGroup (53) or StateLocation (50) payload */
|
|
46
|
-
export declare function decodeStateGroup(payload:
|
|
46
|
+
export declare function decodeStateGroup(payload: Uint8Array): {
|
|
47
47
|
id: string;
|
|
48
48
|
label: string;
|
|
49
49
|
updatedAt: number;
|
|
50
50
|
};
|
|
51
51
|
/** Decode StateService (3) payload */
|
|
52
|
-
export declare function decodeStateService(payload:
|
|
52
|
+
export declare function decodeStateService(payload: Uint8Array): {
|
|
53
53
|
service: number;
|
|
54
54
|
port: number;
|
|
55
55
|
};
|
|
56
56
|
/** Decode StateHostInfo (13) payload */
|
|
57
|
-
export declare function decodeStateHostInfo(payload:
|
|
57
|
+
export declare function decodeStateHostInfo(payload: Uint8Array): {
|
|
58
58
|
signal: number;
|
|
59
59
|
tx: number;
|
|
60
60
|
rx: number;
|
|
61
61
|
};
|
|
62
62
|
/** Decode StateHostFirmware (15) payload */
|
|
63
|
-
export declare function decodeStateHostFirmware(payload:
|
|
63
|
+
export declare function decodeStateHostFirmware(payload: Uint8Array): {
|
|
64
64
|
build: number;
|
|
65
65
|
version: number;
|
|
66
66
|
};
|
|
67
67
|
/** Decode StateWifiInfo (17) payload - same format as StateHostInfo */
|
|
68
|
-
export declare function decodeStateWifiInfo(payload:
|
|
68
|
+
export declare function decodeStateWifiInfo(payload: Uint8Array): {
|
|
69
69
|
signal: number;
|
|
70
70
|
tx: number;
|
|
71
71
|
rx: number;
|
|
72
72
|
};
|
|
73
73
|
/** Decode StateInfo (35) payload */
|
|
74
|
-
export declare function decodeStateInfo(payload:
|
|
74
|
+
export declare function decodeStateInfo(payload: Uint8Array): {
|
|
75
75
|
time: number;
|
|
76
76
|
uptime: number;
|
|
77
77
|
downtime: number;
|
|
78
78
|
};
|
|
79
|
+
/** Encode GetService payload (empty) */
|
|
80
|
+
export declare function encodeGetService(): Uint8Array;
|
|
79
81
|
//# sourceMappingURL=protocol.d.ts.map
|
package/protocol.js
CHANGED
|
@@ -10,9 +10,9 @@ export function nextSequence() {
|
|
|
10
10
|
export function getSource() {
|
|
11
11
|
return globalSource;
|
|
12
12
|
}
|
|
13
|
-
/** MAC string to 8-byte
|
|
13
|
+
/** MAC string to 8-byte Uint8Array (6 bytes MAC + 2 padding) */
|
|
14
14
|
function macToBuffer(mac) {
|
|
15
|
-
const buf =
|
|
15
|
+
const buf = new Uint8Array(8);
|
|
16
16
|
if (mac && mac !== '00:00:00:00:00:00') {
|
|
17
17
|
const bytes = mac.split(':').map(b => parseInt(b, 16));
|
|
18
18
|
for (let i = 0; i < 6; i++)
|
|
@@ -20,7 +20,7 @@ function macToBuffer(mac) {
|
|
|
20
20
|
}
|
|
21
21
|
return buf;
|
|
22
22
|
}
|
|
23
|
-
/**
|
|
23
|
+
/** Uint8Array to MAC string */
|
|
24
24
|
function bufferToMac(buf, offset = 0) {
|
|
25
25
|
const parts = [];
|
|
26
26
|
for (let i = 0; i < 6; i++) {
|
|
@@ -28,51 +28,90 @@ function bufferToMac(buf, offset = 0) {
|
|
|
28
28
|
}
|
|
29
29
|
return parts.join(':');
|
|
30
30
|
}
|
|
31
|
-
|
|
31
|
+
// Helper for writing values to Uint8Array
|
|
32
|
+
function writeUInt16LE(buf, value, offset) {
|
|
33
|
+
buf[offset] = value & 0xFF;
|
|
34
|
+
buf[offset + 1] = (value >> 8) & 0xFF;
|
|
35
|
+
}
|
|
36
|
+
function writeUInt32LE(buf, value, offset) {
|
|
37
|
+
buf[offset] = value & 0xFF;
|
|
38
|
+
buf[offset + 1] = (value >> 8) & 0xFF;
|
|
39
|
+
buf[offset + 2] = (value >> 16) & 0xFF;
|
|
40
|
+
buf[offset + 3] = (value >> 24) & 0xFF;
|
|
41
|
+
}
|
|
42
|
+
function writeBigUInt64LE(buf, value, offset) {
|
|
43
|
+
for (let i = 0; i < 8; i++) {
|
|
44
|
+
buf[offset + i] = Number((value >> BigInt(i * 8)) & BigInt(0xFF));
|
|
45
|
+
}
|
|
46
|
+
}
|
|
47
|
+
function readUInt16LE(buf, offset) {
|
|
48
|
+
return buf[offset] | (buf[offset + 1] << 8);
|
|
49
|
+
}
|
|
50
|
+
function readUInt32LE(buf, offset) {
|
|
51
|
+
return (buf[offset] | (buf[offset + 1] << 8) | (buf[offset + 2] << 16) | (buf[offset + 3] << 24)) >>> 0;
|
|
52
|
+
}
|
|
53
|
+
function readBigUInt64LE(buf, offset) {
|
|
54
|
+
let result = BigInt(0);
|
|
55
|
+
for (let i = 0; i < 8; i++) {
|
|
56
|
+
result |= BigInt(buf[offset + i]) << BigInt(i * 8);
|
|
57
|
+
}
|
|
58
|
+
return result;
|
|
59
|
+
}
|
|
60
|
+
function readFloatLE(buf, offset) {
|
|
61
|
+
const view = new DataView(buf.buffer, buf.byteOffset + offset, 4);
|
|
62
|
+
return view.getFloat32(0, true);
|
|
63
|
+
}
|
|
64
|
+
function utf8Decode(buf, start, end) {
|
|
65
|
+
const decoder = new TextDecoder('utf-8');
|
|
66
|
+
return decoder.decode(buf.subarray(start, end)).replace(/\0+$/, '');
|
|
67
|
+
}
|
|
68
|
+
function utf8Encode(str, buf, offset, maxLen) {
|
|
69
|
+
const encoder = new TextEncoder();
|
|
70
|
+
const encoded = encoder.encode(str.substring(0, maxLen));
|
|
71
|
+
buf.set(encoded, offset);
|
|
72
|
+
}
|
|
73
|
+
/** Encode LIFX message to Uint8Array */
|
|
32
74
|
export function encodeMessage(options) {
|
|
33
|
-
const payload = options.payload ??
|
|
75
|
+
const payload = options.payload ?? new Uint8Array(0);
|
|
34
76
|
const size = HEADER_SIZE + payload.length;
|
|
35
|
-
const buf =
|
|
77
|
+
const buf = new Uint8Array(size);
|
|
36
78
|
const tagged = options.tagged ?? !options.target;
|
|
37
79
|
const target = options.target ?? '00:00:00:00:00:00';
|
|
38
80
|
const sequence = options.sequence ?? nextSequence();
|
|
39
81
|
// Frame (8 bytes)
|
|
40
|
-
|
|
41
|
-
const protocol = 1024 | (tagged ? 0x2000 : 0) | 0x1000;
|
|
42
|
-
|
|
43
|
-
|
|
82
|
+
writeUInt16LE(buf, size, 0);
|
|
83
|
+
const protocol = 1024 | (tagged ? 0x2000 : 0) | 0x1000;
|
|
84
|
+
writeUInt16LE(buf, protocol, 2);
|
|
85
|
+
writeUInt32LE(buf, globalSource, 4);
|
|
44
86
|
// Frame Address (16 bytes)
|
|
45
|
-
macToBuffer(target)
|
|
46
|
-
// reserved (6 bytes at offset 16)
|
|
87
|
+
buf.set(macToBuffer(target), 8);
|
|
47
88
|
const flags = (options.resRequired ? 0x01 : 0) | (options.ackRequired ? 0x02 : 0);
|
|
48
89
|
buf[22] = flags;
|
|
49
90
|
buf[23] = sequence;
|
|
50
91
|
// Protocol Header (12 bytes)
|
|
51
|
-
|
|
52
|
-
buf.writeUInt16LE(options.type, 32); // type
|
|
53
|
-
// reserved (2 bytes at offset 34)
|
|
92
|
+
writeUInt16LE(buf, options.type, 32);
|
|
54
93
|
// Payload
|
|
55
94
|
if (payload.length > 0) {
|
|
56
|
-
|
|
95
|
+
buf.set(payload, HEADER_SIZE);
|
|
57
96
|
}
|
|
58
97
|
return buf;
|
|
59
98
|
}
|
|
60
|
-
/** Decode LIFX message from
|
|
99
|
+
/** Decode LIFX message from Uint8Array */
|
|
61
100
|
export function decodeMessage(buf) {
|
|
62
101
|
if (buf.length < HEADER_SIZE) {
|
|
63
102
|
throw new Error(`Buffer too small: ${buf.length} < ${HEADER_SIZE}`);
|
|
64
103
|
}
|
|
65
|
-
const size =
|
|
66
|
-
const protocolBits =
|
|
104
|
+
const size = readUInt16LE(buf, 0);
|
|
105
|
+
const protocolBits = readUInt16LE(buf, 2);
|
|
67
106
|
const tagged = (protocolBits & 0x2000) !== 0;
|
|
68
107
|
const addressable = (protocolBits & 0x1000) !== 0;
|
|
69
108
|
const protocol = protocolBits & 0xFFF;
|
|
70
|
-
const source =
|
|
109
|
+
const source = readUInt32LE(buf, 4);
|
|
71
110
|
const target = bufferToMac(buf, 8);
|
|
72
111
|
const flags = buf[22];
|
|
73
112
|
const sequence = buf[23];
|
|
74
|
-
const type =
|
|
75
|
-
const payload = buf.length > HEADER_SIZE ? buf.subarray(HEADER_SIZE) :
|
|
113
|
+
const type = readUInt16LE(buf, 32);
|
|
114
|
+
const payload = buf.length > HEADER_SIZE ? buf.subarray(HEADER_SIZE) : new Uint8Array(0);
|
|
76
115
|
return {
|
|
77
116
|
size,
|
|
78
117
|
protocol,
|
|
@@ -88,39 +127,43 @@ export function decodeMessage(buf) {
|
|
|
88
127
|
};
|
|
89
128
|
}
|
|
90
129
|
/** Encode SetPower payload */
|
|
91
|
-
export function encodeSetPower(
|
|
92
|
-
const buf =
|
|
93
|
-
|
|
130
|
+
export function encodeSetPower(level) {
|
|
131
|
+
const buf = new Uint8Array(2);
|
|
132
|
+
writeUInt16LE(buf, level ? 0xFFFF : 0, 0);
|
|
94
133
|
return buf;
|
|
95
134
|
}
|
|
96
135
|
/** Encode SetColor payload */
|
|
97
136
|
export function encodeSetColor(hsbk, duration = 0) {
|
|
98
|
-
const buf =
|
|
99
|
-
buf[0] = 0;
|
|
100
|
-
|
|
101
|
-
|
|
102
|
-
|
|
103
|
-
|
|
104
|
-
|
|
137
|
+
const buf = new Uint8Array(13);
|
|
138
|
+
buf[0] = 0;
|
|
139
|
+
writeUInt16LE(buf, hsbk.h, 1);
|
|
140
|
+
writeUInt16LE(buf, hsbk.s, 3);
|
|
141
|
+
writeUInt16LE(buf, hsbk.b, 5);
|
|
142
|
+
writeUInt16LE(buf, hsbk.k, 7);
|
|
143
|
+
writeUInt32LE(buf, duration, 9);
|
|
105
144
|
return buf;
|
|
106
145
|
}
|
|
107
146
|
/** Encode SetLabel payload */
|
|
108
147
|
export function encodeSetLabel(label) {
|
|
109
|
-
const buf =
|
|
110
|
-
|
|
148
|
+
const buf = new Uint8Array(32);
|
|
149
|
+
utf8Encode(label, buf, 0, 32);
|
|
111
150
|
return buf;
|
|
112
151
|
}
|
|
113
152
|
/** Encode SetGroup payload */
|
|
114
153
|
export function encodeSetGroup(id, label) {
|
|
115
|
-
const buf =
|
|
154
|
+
const buf = new Uint8Array(56);
|
|
116
155
|
// 16-byte group ID
|
|
117
|
-
const idBytes =
|
|
118
|
-
|
|
156
|
+
const idBytes = new Uint8Array(16);
|
|
157
|
+
const hexId = id.replace(/-/g, '');
|
|
158
|
+
for (let i = 0; i < Math.min(16, hexId.length / 2); i++) {
|
|
159
|
+
idBytes[i] = parseInt(hexId.substr(i * 2, 2), 16);
|
|
160
|
+
}
|
|
161
|
+
buf.set(idBytes, 0);
|
|
119
162
|
// 32-byte label
|
|
120
|
-
|
|
163
|
+
utf8Encode(label, buf, 16, 32);
|
|
121
164
|
// 8-byte updated_at timestamp (ns since epoch)
|
|
122
165
|
const now = BigInt(Date.now()) * BigInt(1000000);
|
|
123
|
-
|
|
166
|
+
writeBigUInt64LE(buf, now, 48);
|
|
124
167
|
return buf;
|
|
125
168
|
}
|
|
126
169
|
/** Encode SetLocation payload (same format as SetGroup) */
|
|
@@ -131,59 +174,59 @@ export function encodeSetLocation(id, label) {
|
|
|
131
174
|
export function decodeState(payload) {
|
|
132
175
|
return {
|
|
133
176
|
hsbk: {
|
|
134
|
-
h:
|
|
135
|
-
s:
|
|
136
|
-
b:
|
|
137
|
-
k:
|
|
177
|
+
h: readUInt16LE(payload, 0),
|
|
178
|
+
s: readUInt16LE(payload, 2),
|
|
179
|
+
b: readUInt16LE(payload, 4),
|
|
180
|
+
k: readUInt16LE(payload, 6)
|
|
138
181
|
},
|
|
139
|
-
power:
|
|
140
|
-
label: payload
|
|
182
|
+
power: readUInt16LE(payload, 10),
|
|
183
|
+
label: utf8Decode(payload, 12, 44)
|
|
141
184
|
};
|
|
142
185
|
}
|
|
143
186
|
/** Decode StatePower (22) payload */
|
|
144
187
|
export function decodeStatePower(payload) {
|
|
145
|
-
return
|
|
188
|
+
return readUInt16LE(payload, 0) > 0;
|
|
146
189
|
}
|
|
147
190
|
/** Decode StateLabel (25) payload */
|
|
148
191
|
export function decodeStateLabel(payload) {
|
|
149
|
-
return payload
|
|
192
|
+
return utf8Decode(payload, 0, 32);
|
|
150
193
|
}
|
|
151
194
|
/** Decode StateVersion (33) payload */
|
|
152
195
|
export function decodeStateVersion(payload) {
|
|
153
196
|
return {
|
|
154
|
-
vendor:
|
|
155
|
-
product:
|
|
156
|
-
version:
|
|
197
|
+
vendor: readUInt32LE(payload, 0),
|
|
198
|
+
product: readUInt32LE(payload, 4),
|
|
199
|
+
version: readUInt32LE(payload, 8)
|
|
157
200
|
};
|
|
158
201
|
}
|
|
159
202
|
/** Decode StateGroup (53) or StateLocation (50) payload */
|
|
160
203
|
export function decodeStateGroup(payload) {
|
|
161
204
|
const idBytes = payload.subarray(0, 16);
|
|
162
|
-
const id = idBytes.toString('
|
|
163
|
-
const label = payload
|
|
164
|
-
const updatedAt = Number(
|
|
205
|
+
const id = Array.from(idBytes).map(b => b.toString(16).padStart(2, '0')).join('');
|
|
206
|
+
const label = utf8Decode(payload, 16, 48);
|
|
207
|
+
const updatedAt = Number(readBigUInt64LE(payload, 48) / BigInt(1000000));
|
|
165
208
|
return { id, label, updatedAt };
|
|
166
209
|
}
|
|
167
210
|
/** Decode StateService (3) payload */
|
|
168
211
|
export function decodeStateService(payload) {
|
|
169
212
|
return {
|
|
170
213
|
service: payload[0],
|
|
171
|
-
port:
|
|
214
|
+
port: readUInt32LE(payload, 1)
|
|
172
215
|
};
|
|
173
216
|
}
|
|
174
217
|
/** Decode StateHostInfo (13) payload */
|
|
175
218
|
export function decodeStateHostInfo(payload) {
|
|
176
219
|
return {
|
|
177
|
-
signal:
|
|
178
|
-
tx:
|
|
179
|
-
rx:
|
|
220
|
+
signal: readFloatLE(payload, 0),
|
|
221
|
+
tx: readUInt32LE(payload, 4),
|
|
222
|
+
rx: readUInt32LE(payload, 8)
|
|
180
223
|
};
|
|
181
224
|
}
|
|
182
225
|
/** Decode StateHostFirmware (15) payload */
|
|
183
226
|
export function decodeStateHostFirmware(payload) {
|
|
184
227
|
return {
|
|
185
|
-
build: Number(
|
|
186
|
-
version:
|
|
228
|
+
build: Number(readBigUInt64LE(payload, 0)),
|
|
229
|
+
version: readUInt32LE(payload, 8)
|
|
187
230
|
};
|
|
188
231
|
}
|
|
189
232
|
/** Decode StateWifiInfo (17) payload - same format as StateHostInfo */
|
|
@@ -193,9 +236,22 @@ export function decodeStateWifiInfo(payload) {
|
|
|
193
236
|
/** Decode StateInfo (35) payload */
|
|
194
237
|
export function decodeStateInfo(payload) {
|
|
195
238
|
return {
|
|
196
|
-
time: Number(
|
|
197
|
-
uptime: Number(
|
|
198
|
-
downtime: Number(
|
|
239
|
+
time: Number(readBigUInt64LE(payload, 0) / BigInt(1000000)),
|
|
240
|
+
uptime: Number(readBigUInt64LE(payload, 8) / BigInt(1000000)),
|
|
241
|
+
downtime: Number(readBigUInt64LE(payload, 16) / BigInt(1000000))
|
|
199
242
|
};
|
|
200
243
|
}
|
|
244
|
+
/** Encode GetService payload (empty) */
|
|
245
|
+
export function encodeGetService() {
|
|
246
|
+
return new Uint8Array(0);
|
|
247
|
+
}
|
|
248
|
+
// Buffer compatibility helper
|
|
249
|
+
const BufferImpl = typeof Buffer !== 'undefined' ? Buffer : class {
|
|
250
|
+
static alloc(size) {
|
|
251
|
+
return new Uint8Array(size);
|
|
252
|
+
}
|
|
253
|
+
static from(data) {
|
|
254
|
+
return new Uint8Array(data);
|
|
255
|
+
}
|
|
256
|
+
};
|
|
201
257
|
//# sourceMappingURL=protocol.js.map
|
package/release-all.ps1
ADDED
|
@@ -0,0 +1,168 @@
|
|
|
1
|
+
#!/usr/bin/env pwsh
|
|
2
|
+
# Release all LIFX packages in dependency order
|
|
3
|
+
# Automatically handles missing git remotes and GitHub repositories
|
|
4
|
+
|
|
5
|
+
$ErrorActionPreference = "Stop"
|
|
6
|
+
|
|
7
|
+
# Suppress npm color output
|
|
8
|
+
$env:NO_COLOR = "1"
|
|
9
|
+
$env:FORCE_COLOR = "0"
|
|
10
|
+
$env:NPM_CONFIG_COLOR = "false"
|
|
11
|
+
|
|
12
|
+
# Function to ensure git remote and GitHub repo exist
|
|
13
|
+
function Initialize-GitRemote {
|
|
14
|
+
param(
|
|
15
|
+
[string]$RepoPath,
|
|
16
|
+
[string]$RepoName,
|
|
17
|
+
[string]$Owner = "BobFrankston"
|
|
18
|
+
)
|
|
19
|
+
|
|
20
|
+
Push-Location $RepoPath
|
|
21
|
+
|
|
22
|
+
# Check if remote exists
|
|
23
|
+
$remote = git remote 2>$null
|
|
24
|
+
|
|
25
|
+
if (-not $remote -or $remote -notcontains "origin") {
|
|
26
|
+
Write-Host " → Setting up git remote..." -ForegroundColor Yellow
|
|
27
|
+
$remoteUrl = "https://github.com/$Owner/$RepoName.git"
|
|
28
|
+
git remote add origin $remoteUrl 2>$null
|
|
29
|
+
Write-Host " ✓ Added remote: $remoteUrl" -ForegroundColor Green
|
|
30
|
+
}
|
|
31
|
+
|
|
32
|
+
# Check if GitHub repo exists, create if needed
|
|
33
|
+
gh repo view "$Owner/$RepoName" 2>$null | Out-Null
|
|
34
|
+
if ($LASTEXITCODE -ne 0) {
|
|
35
|
+
Write-Host " → Creating GitHub repository..." -ForegroundColor Yellow
|
|
36
|
+
$desc = "Part of LIFX LAN control suite"
|
|
37
|
+
gh repo create "$Owner/$RepoName" --public --description $desc
|
|
38
|
+
if ($LASTEXITCODE -eq 0) {
|
|
39
|
+
Write-Host " ✓ Repository created!" -ForegroundColor Green
|
|
40
|
+
} else {
|
|
41
|
+
Write-Host " ✗ Failed to create repository" -ForegroundColor Red
|
|
42
|
+
Pop-Location
|
|
43
|
+
exit 1
|
|
44
|
+
}
|
|
45
|
+
}
|
|
46
|
+
|
|
47
|
+
# Check if upstream is set
|
|
48
|
+
$upstreamBranch = git rev-parse --abbrev-ref --symbolic-full-name '@{u}' 2>$null
|
|
49
|
+
if (-not $upstreamBranch) {
|
|
50
|
+
Write-Host " → Setting upstream branch..." -ForegroundColor Yellow
|
|
51
|
+
git push --set-upstream origin master 2>&1 | Out-Null
|
|
52
|
+
if ($LASTEXITCODE -eq 0) {
|
|
53
|
+
Write-Host " ✓ Upstream branch set" -ForegroundColor Green
|
|
54
|
+
}
|
|
55
|
+
}
|
|
56
|
+
|
|
57
|
+
Pop-Location
|
|
58
|
+
}
|
|
59
|
+
|
|
60
|
+
Write-Host ""
|
|
61
|
+
Write-Host "=== Releasing LIFX Packages ===" -ForegroundColor Cyan
|
|
62
|
+
Write-Host ""
|
|
63
|
+
|
|
64
|
+
# Base packages (no dependencies on each other)
|
|
65
|
+
Write-Host ">>> Releasing hlib..." -ForegroundColor Yellow
|
|
66
|
+
Initialize-GitRemote -RepoPath "y:\dev\homecontrol\utils\hlib" -RepoName "hlib"
|
|
67
|
+
Set-Location "y:\dev\homecontrol\utils\hlib"
|
|
68
|
+
npm run release
|
|
69
|
+
if ($LASTEXITCODE -ne 0) {
|
|
70
|
+
Write-Host "ERROR: hlib release failed" -ForegroundColor Red
|
|
71
|
+
exit 1
|
|
72
|
+
}
|
|
73
|
+
Write-Host ""
|
|
74
|
+
|
|
75
|
+
Write-Host ">>> Releasing rmfudp..." -ForegroundColor Yellow
|
|
76
|
+
Initialize-GitRemote -RepoPath "y:\dev\homecontrol\utils\rmfudp" -RepoName "rmfudp"
|
|
77
|
+
Set-Location "y:\dev\homecontrol\utils\rmfudp"
|
|
78
|
+
npm run release
|
|
79
|
+
if ($LASTEXITCODE -ne 0) {
|
|
80
|
+
Write-Host "ERROR: rmfudp release failed" -ForegroundColor Red
|
|
81
|
+
exit 1
|
|
82
|
+
}
|
|
83
|
+
Write-Host ""
|
|
84
|
+
|
|
85
|
+
Write-Host ">>> Releasing colorlib..." -ForegroundColor Yellow
|
|
86
|
+
Initialize-GitRemote -RepoPath "y:\dev\homecontrol\utils\colorlib" -RepoName "colorlib"
|
|
87
|
+
Set-Location "y:\dev\homecontrol\utils\colorlib"
|
|
88
|
+
npm run release
|
|
89
|
+
if ($LASTEXITCODE -ne 0) {
|
|
90
|
+
Write-Host "ERROR: colorlib release failed" -ForegroundColor Red
|
|
91
|
+
exit 1
|
|
92
|
+
}
|
|
93
|
+
Write-Host ""
|
|
94
|
+
|
|
95
|
+
Write-Host ">>> Releasing lxlan..." -ForegroundColor Yellow
|
|
96
|
+
Initialize-GitRemote -RepoPath "y:\dev\homecontrol\Others\LifX\Apps\lxlan" -RepoName "lxlan"
|
|
97
|
+
Set-Location "y:\dev\homecontrol\Others\LifX\Apps\lxlan"
|
|
98
|
+
npm run release
|
|
99
|
+
if ($LASTEXITCODE -ne 0) {
|
|
100
|
+
Write-Host "ERROR: lxlan release failed" -ForegroundColor Red
|
|
101
|
+
exit 1
|
|
102
|
+
}
|
|
103
|
+
Write-Host ""
|
|
104
|
+
|
|
105
|
+
# Update dependencies after base packages
|
|
106
|
+
Write-Host ">>> Updating lxlan-node dependencies..." -ForegroundColor Yellow
|
|
107
|
+
Initialize-GitRemote -RepoPath "y:\dev\homecontrol\Others\LifX\Apps\lxlan-node" -RepoName "lxlan-node"
|
|
108
|
+
Set-Location "y:\dev\homecontrol\Others\LifX\Apps\lxlan-node"
|
|
109
|
+
npm install
|
|
110
|
+
if ($LASTEXITCODE -ne 0) {
|
|
111
|
+
Write-Host "ERROR: lxlan-node npm install failed" -ForegroundColor Red
|
|
112
|
+
exit 1
|
|
113
|
+
}
|
|
114
|
+
|
|
115
|
+
Write-Host ">>> Releasing lxlan-node..." -ForegroundColor Yellow
|
|
116
|
+
npm run release
|
|
117
|
+
if ($LASTEXITCODE -ne 0) {
|
|
118
|
+
Write-Host "ERROR: lxlan-node release failed" -ForegroundColor Red
|
|
119
|
+
exit 1
|
|
120
|
+
}
|
|
121
|
+
Write-Host ""
|
|
122
|
+
|
|
123
|
+
# Update lifxer dependencies
|
|
124
|
+
Write-Host ">>> Updating lifxer dependencies..." -ForegroundColor Yellow
|
|
125
|
+
Initialize-GitRemote -RepoPath "y:\dev\homecontrol\Others\LifX\Apps\lifxer" -RepoName "lifxer"
|
|
126
|
+
Set-Location "y:\dev\homecontrol\Others\LifX\Apps\lifxer"
|
|
127
|
+
npm install
|
|
128
|
+
if ($LASTEXITCODE -ne 0) {
|
|
129
|
+
Write-Host "ERROR: lifxer npm install failed" -ForegroundColor Red
|
|
130
|
+
exit 1
|
|
131
|
+
}
|
|
132
|
+
|
|
133
|
+
Write-Host ">>> Releasing lifxer..." -ForegroundColor Yellow
|
|
134
|
+
npm run release
|
|
135
|
+
if ($LASTEXITCODE -ne 0) {
|
|
136
|
+
Write-Host "ERROR: lifxer release failed" -ForegroundColor Red
|
|
137
|
+
exit 1
|
|
138
|
+
}
|
|
139
|
+
Write-Host ""
|
|
140
|
+
|
|
141
|
+
# lxtest
|
|
142
|
+
Write-Host ">>> Updating lxtest dependencies..." -ForegroundColor Yellow
|
|
143
|
+
Initialize-GitRemote -RepoPath "y:\dev\homecontrol\Others\LifX\Apps\lxtest" -RepoName "lxtest"
|
|
144
|
+
Set-Location "y:\dev\homecontrol\Others\LifX\Apps\lxtest"
|
|
145
|
+
npm install
|
|
146
|
+
if ($LASTEXITCODE -ne 0) {
|
|
147
|
+
Write-Host "ERROR: lxtest npm install failed" -ForegroundColor Red
|
|
148
|
+
exit 1
|
|
149
|
+
}
|
|
150
|
+
|
|
151
|
+
Write-Host ">>> Releasing lxtest..." -ForegroundColor Yellow
|
|
152
|
+
npm run release
|
|
153
|
+
if ($LASTEXITCODE -ne 0) {
|
|
154
|
+
Write-Host "ERROR: lxtest release failed" -ForegroundColor Red
|
|
155
|
+
exit 1
|
|
156
|
+
}
|
|
157
|
+
Write-Host ""
|
|
158
|
+
|
|
159
|
+
Write-Host "=== All releases completed successfully! ===" -ForegroundColor Green
|
|
160
|
+
Write-Host ""
|
|
161
|
+
Write-Host "Released packages:"
|
|
162
|
+
Write-Host " - @bobfrankston/hlib"
|
|
163
|
+
Write-Host " - @bobfrankston/rmfudp"
|
|
164
|
+
Write-Host " - @bobfrankston/colorlib"
|
|
165
|
+
Write-Host " - @bobfrankston/lxlan"
|
|
166
|
+
Write-Host " - @bobfrankston/lxlan-node"
|
|
167
|
+
Write-Host " - @bobfrankston/lifxer"
|
|
168
|
+
Write-Host " - lxtest"
|
package/transport.d.ts
CHANGED
|
@@ -1,30 +1,7 @@
|
|
|
1
1
|
/**
|
|
2
|
-
*
|
|
3
|
-
*
|
|
4
|
-
* - UDP (current: rmfudp)
|
|
5
|
-
* - HTTP (future: for web/browser support)
|
|
6
|
-
* - WebSocket (future: bidirectional web support)
|
|
2
|
+
* Re-export UDP transport interfaces from @bobfrankston/udp-transport
|
|
3
|
+
* LxTransport is kept as an alias for backwards compatibility
|
|
7
4
|
*/
|
|
8
|
-
|
|
9
|
-
export
|
|
10
|
-
address: string;
|
|
11
|
-
port: number;
|
|
12
|
-
}
|
|
13
|
-
/** Transport layer interface */
|
|
14
|
-
export interface LxTransport {
|
|
15
|
-
/** Bind/start the transport */
|
|
16
|
-
bind(): Promise<void>;
|
|
17
|
-
/** Close/stop the transport */
|
|
18
|
-
close(): void;
|
|
19
|
-
/** Send data to specific address */
|
|
20
|
-
send(ip: string, port: number, data: Buffer): void;
|
|
21
|
-
/** Broadcast data to all addresses */
|
|
22
|
-
broadcast(data: Buffer, port: number, addresses: string[]): void;
|
|
23
|
-
/** Register message handler */
|
|
24
|
-
onMessage(handler: (data: Buffer, rinfo: RemoteInfo) => void): void;
|
|
25
|
-
/** Register error handler */
|
|
26
|
-
onError(handler: (err: Error) => void): void;
|
|
27
|
-
/** Register close handler */
|
|
28
|
-
onClose(handler: () => void): void;
|
|
29
|
-
}
|
|
5
|
+
export { UdpTransport, RemoteInfo } from '@bobfrankston/udp-transport';
|
|
6
|
+
export { UdpTransport as LxTransport } from '@bobfrankston/udp-transport';
|
|
30
7
|
//# sourceMappingURL=transport.d.ts.map
|
package/transport.js
CHANGED
|
@@ -1,9 +1,6 @@
|
|
|
1
1
|
/**
|
|
2
|
-
*
|
|
3
|
-
*
|
|
4
|
-
* - UDP (current: rmfudp)
|
|
5
|
-
* - HTTP (future: for web/browser support)
|
|
6
|
-
* - WebSocket (future: bidirectional web support)
|
|
2
|
+
* Re-export UDP transport interfaces from @bobfrankston/udp-transport
|
|
3
|
+
* LxTransport is kept as an alias for backwards compatibility
|
|
7
4
|
*/
|
|
8
5
|
export {};
|
|
9
6
|
//# sourceMappingURL=transport.js.map
|
package/types.d.ts
CHANGED
|
@@ -1,4 +1,11 @@
|
|
|
1
1
|
import { HSBK } from '@bobfrankston/colorlib';
|
|
2
|
+
/** EventEmitter interface for cross-platform compatibility */
|
|
3
|
+
export interface LxEventEmitter {
|
|
4
|
+
on(event: string, listener: (...args: any[]) => void): this;
|
|
5
|
+
once(event: string, listener: (...args: any[]) => void): this;
|
|
6
|
+
off(event: string, listener: (...args: any[]) => void): this;
|
|
7
|
+
emit(event: string, ...args: any[]): boolean;
|
|
8
|
+
}
|
|
2
9
|
/** LIFX message types */
|
|
3
10
|
export declare const MessageType: {
|
|
4
11
|
readonly GetService: 2;
|
|
@@ -30,22 +37,32 @@ export declare const MessageType: {
|
|
|
30
37
|
readonly State: 107;
|
|
31
38
|
};
|
|
32
39
|
export type MessageTypeValue = typeof MessageType[keyof typeof MessageType];
|
|
33
|
-
/** LIFX
|
|
34
|
-
export interface
|
|
40
|
+
/** LIFX message structure */
|
|
41
|
+
export interface LxMessage {
|
|
35
42
|
size: number;
|
|
36
43
|
protocol: number;
|
|
37
44
|
addressable: boolean;
|
|
38
45
|
tagged: boolean;
|
|
39
46
|
source: number;
|
|
40
|
-
target: string;
|
|
47
|
+
target: string;
|
|
41
48
|
resRequired: boolean;
|
|
42
49
|
ackRequired: boolean;
|
|
43
50
|
sequence: number;
|
|
44
51
|
type: number;
|
|
52
|
+
payload: Uint8Array;
|
|
45
53
|
}
|
|
46
|
-
/**
|
|
47
|
-
export interface
|
|
48
|
-
|
|
54
|
+
/** LIFX message header */
|
|
55
|
+
export interface LxHeader {
|
|
56
|
+
size: number;
|
|
57
|
+
protocol: number;
|
|
58
|
+
addressable: boolean;
|
|
59
|
+
tagged: boolean;
|
|
60
|
+
source: number;
|
|
61
|
+
target: string;
|
|
62
|
+
resRequired: boolean;
|
|
63
|
+
ackRequired: boolean;
|
|
64
|
+
sequence: number;
|
|
65
|
+
type: number;
|
|
49
66
|
}
|
|
50
67
|
/** Group/Location info */
|
|
51
68
|
export interface GroupInfo {
|
package/.gitattributes
DELETED
package/client.d.ts.map
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"client.d.ts","sourceRoot":"","sources":["client.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,WAAW,EAAE,MAAM,gBAAgB,CAAC;AAC7C,OAAO,EAAE,cAAc,EAAE,MAAM,aAAa,CAAC;AAC7C,OAAO,EAAE,QAAQ,EAAE,MAAM,aAAa,CAAC;AAiBvC;;GAEG;AACH,MAAM,WAAW,eAAe;IAC5B,gDAAgD;IAChD,SAAS,EAAE,WAAW,CAAC;IACvB,wCAAwC;IACxC,kBAAkB,EAAE,MAAM,EAAE,CAAC;IAC7B,4FAA4F;IAC5F,YAAY,EAAE,cAAc,CAAC;IAC7B,gCAAgC;IAChC,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,iEAAiE;IACjE,iBAAiB,CAAC,EAAE,MAAM,CAAC;CAC9B;AAED;;;;;;;;;;;;;;;;;;;GAmBG;AACH,qBAAa,QAAQ;IACjB,OAAO,CAAC,OAAO,CAAiB;IAChC,OAAO,CAAC,SAAS,CAAc;IAC/B,OAAO,CAAC,IAAI,CAAS;IACrB,OAAO,CAAC,kBAAkB,CAAW;IACrC,OAAO,CAAC,cAAc,CAAC,CAAM;IAE7B,gDAAgD;IAChD,OAAO,EAAE,GAAG,CAAC,MAAM,EAAE,QAAQ,CAAC,CAAa;gBAE/B,OAAO,EAAE,eAAe;IAmBpC,8BAA8B;IAC9B,EAAE,CAAC,KAAK,EAAE,MAAM,EAAE,QAAQ,EAAE,CAAC,GAAG,IAAI,EAAE,GAAG,EAAE,KAAK,IAAI,GAAG,IAAI;IAK3D,uCAAuC;IACvC,IAAI,CAAC,KAAK,EAAE,MAAM,EAAE,QAAQ,EAAE,CAAC,GAAG,IAAI,EAAE,GAAG,EAAE,KAAK,IAAI,GAAG,IAAI;IAK7D,4BAA4B;IAC5B,GAAG,CAAC,KAAK,EAAE,MAAM,EAAE,QAAQ,EAAE,CAAC,GAAG,IAAI,EAAE,GAAG,EAAE,KAAK,IAAI,GAAG,IAAI;IAK5D,iBAAiB;IACjB,OAAO,CAAC,IAAI;IAIZ,sBAAsB;IAChB,KAAK,IAAI,OAAO,CAAC,IAAI,CAAC;IAI5B,uBAAuB;IACvB,IAAI,IAAI,IAAI;IAKZ,4CAA4C;IAC5C,QAAQ,IAAI,IAAI;IAShB;;;;OAIG;IACH,SAAS,CAAC,GAAG,EAAE,MAAM,GAAG,QAAQ,GAAG,SAAS;IAI5C;;;;;;;;OAQG;IACH,SAAS,CAAC,GAAG,EAAE,MAAM,EAAE,EAAE,CAAC,EAAE,MAAM,EAAE,IAAI,GAAE,MAAkB,GAAG,QAAQ;IAkBvE,8BAA8B;IAC9B,OAAO,CAAC,aAAa;IA0HrB,iEAAiE;IACjE,OAAO,CAAC,uBAAuB;CAMlC"}
|
package/client.js.map
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"client.js","sourceRoot":"","sources":["client.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,YAAY,EAAE,MAAM,wBAAwB,CAAC;AAGtD,OAAO,EAAE,QAAQ,EAAE,MAAM,aAAa,CAAC;AACvC,OAAO,EAAa,WAAW,EAAE,SAAS,EAAE,MAAM,YAAY,CAAC;AAC/D,OAAO,EACH,aAAa,EACb,aAAa,EACb,WAAW,EACX,gBAAgB,EAChB,gBAAgB,EAChB,kBAAkB,EAClB,gBAAgB,EAChB,kBAAkB,EAClB,mBAAmB,EACnB,uBAAuB,EACvB,mBAAmB,EACnB,eAAe,EAClB,MAAM,eAAe,CAAC;AAkBvB;;;;;;;;;;;;;;;;;;;GAmBG;AACH,MAAM,OAAO,QAAQ;IACT,OAAO,CAAiB;IACxB,SAAS,CAAc;IACvB,IAAI,CAAS;IACb,kBAAkB,CAAW;IAC7B,cAAc,CAAO,CAAE,4CAA4C;IAE3E,gDAAgD;IAChD,OAAO,GAA0B,IAAI,GAAG,EAAE,CAAC;IAE3C,YAAY,OAAwB;QAChC,IAAI,CAAC,OAAO,GAAG,OAAO,CAAC,YAAY,CAAC;QACpC,IAAI,CAAC,SAAS,GAAG,OAAO,CAAC,SAAS,CAAC;QACnC,IAAI,CAAC,IAAI,GAAG,OAAO,CAAC,IAAI,IAAI,SAAS,CAAC;QACtC,IAAI,CAAC,kBAAkB,GAAG,OAAO,CAAC,kBAAkB,CAAC;QAErD,IAAI,CAAC,SAAS,CAAC,SAAS,CAAC,CAAC,IAAI,EAAE,KAAK,EAAE,EAAE;YACrC,IAAI,CAAC,aAAa,CAAC,IAAI,EAAE,KAAK,CAAC,OAAO,EAAE,KAAK,CAAC,IAAI,CAAC,CAAC;QACxD,CAAC,CAAC,CAAC;QAEH,IAAI,CAAC,SAAS,CAAC,OAAO,CAAC,CAAC,GAAG,EAAE,EAAE;YAC3B,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,OAAO,EAAE,GAAG,CAAC,CAAC;QACpC,CAAC,CAAC,CAAC;QAEH,IAAI,OAAO,CAAC,iBAAiB,IAAI,OAAO,CAAC,iBAAiB,GAAG,CAAC,EAAE,CAAC;YAC7D,IAAI,CAAC,cAAc,GAAG,WAAW,CAAC,GAAG,EAAE,CAAC,IAAI,CAAC,QAAQ,EAAE,EAAE,OAAO,CAAC,iBAAiB,CAAC,CAAC;QACxF,CAAC;IACL,CAAC;IAED,8BAA8B;IAC9B,EAAE,CAAC,KAAa,EAAE,QAAkC;QAChD,IAAI,CAAC,OAAO,CAAC,EAAE,CAAC,KAAK,EAAE,QAAQ,CAAC,CAAC;QACjC,OAAO,IAAI,CAAC;IAChB,CAAC;IAED,uCAAuC;IACvC,IAAI,CAAC,KAAa,EAAE,QAAkC;QAClD,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,KAAK,EAAE,QAAQ,CAAC,CAAC;QACnC,OAAO,IAAI,CAAC;IAChB,CAAC;IAED,4BAA4B;IAC5B,GAAG,CAAC,KAAa,EAAE,QAAkC;QACjD,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,KAAK,EAAE,QAAQ,CAAC,CAAC;QAClC,OAAO,IAAI,CAAC;IAChB,CAAC;IAED,iBAAiB;IACT,IAAI,CAAC,KAAa,EAAE,GAAG,IAAW;QACtC,OAAO,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,KAAK,EAAE,GAAG,IAAI,CAAC,CAAC;IAC7C,CAAC;IAED,sBAAsB;IACtB,KAAK,CAAC,KAAK;QACP,MAAM,IAAI,CAAC,SAAS,CAAC,IAAI,EAAE,CAAC;IAChC,CAAC;IAED,uBAAuB;IACvB,IAAI;QACA,IAAI,IAAI,CAAC,cAAc;YAAE,aAAa,CAAC,IAAI,CAAC,cAAc,CAAC,CAAC;QAC5D,IAAI,CAAC,SAAS,CAAC,KAAK,EAAE,CAAC;IAC3B,CAAC;IAED,4CAA4C;IAC5C,QAAQ;QACJ,MAAM,GAAG,GAAG,aAAa,CAAC;YACtB,IAAI,EAAE,WAAW,CAAC,UAAU;YAC5B,MAAM,EAAE,IAAI;SACf,CAAC,CAAC;QAEH,IAAI,CAAC,SAAS,CAAC,SAAS,CAAC,GAAG,EAAE,IAAI,CAAC,IAAI,EAAE,IAAI,CAAC,kBAAkB,CAAC,CAAC;IACtE,CAAC;IAED;;;;OAIG;IACH,SAAS,CAAC,GAAW;QACjB,OAAO,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,GAAG,CAAC,WAAW,EAAE,CAAC,CAAC;IAC/C,CAAC;IAED;;;;;;;;OAQG;IACH,SAAS,CAAC,GAAW,EAAE,EAAW,EAAE,OAAe,SAAS;QACxD,MAAM,aAAa,GAAG,GAAG,CAAC,WAAW,EAAE,CAAC;QACxC,IAAI,MAAM,GAAG,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,aAAa,CAAC,CAAC;QAE7C,IAAI,CAAC,MAAM,EAAE,CAAC;YACV,MAAM,GAAG,IAAI,QAAQ,CAAC,aAAa,EAAE,EAAE,CAAC,CAAC;YACzC,MAAM,CAAC,YAAY,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC;YACpC,MAAM,CAAC,IAAI,GAAG,IAAI,CAAC;YACnB,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,aAAa,EAAE,MAAM,CAAC,CAAC;YACxC,IAAI,CAAC,IAAI,CAAC,QAAQ,EAAE,MAAM,CAAC,CAAC;QAChC,CAAC;aAAM,CAAC;YACJ,IAAI,EAAE;gBAAE,MAAM,CAAC,EAAE,GAAG,EAAE,CAAC;YACvB,MAAM,CAAC,IAAI,GAAG,IAAI,CAAC;QACvB,CAAC;QAED,OAAO,MAAM,CAAC;IAClB,CAAC;IAED,8BAA8B;IACtB,aAAa,CAAC,IAAY,EAAE,MAAc,EAAE,QAAgB;QAChE,IAAI,GAAc,CAAC;QACnB,IAAI,CAAC;YACD,GAAG,GAAG,aAAa,CAAC,IAAI,CAAC,CAAC;QAC9B,CAAC;QAAC,OAAO,CAAM,EAAE,CAAC;YACd,IAAI,CAAC,IAAI,CAAC,OAAO,EAAE,IAAI,KAAK,CAAC,iBAAiB,CAAC,CAAC,OAAO,EAAE,CAAC,CAAC,CAAC;YAC5D,OAAO;QACX,CAAC;QAED,MAAM,GAAG,GAAG,GAAG,CAAC,MAAM,CAAC;QACvB,IAAI,GAAG,KAAK,mBAAmB;YAAE,OAAO,CAAE,wCAAwC;QAElF,IAAI,MAAM,GAAG,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC;QACnC,MAAM,KAAK,GAAG,CAAC,MAAM,CAAC;QAEtB,IAAI,CAAC,MAAM,EAAE,CAAC;YACV,MAAM,GAAG,IAAI,QAAQ,CAAC,GAAG,EAAE,MAAM,CAAC,CAAC;YACnC,MAAM,CAAC,YAAY,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC;YACpC,MAAM,CAAC,IAAI,GAAG,QAAQ,CAAC;YACvB,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,GAAG,EAAE,MAAM,CAAC,CAAC;QAClC,CAAC;QAED,MAAM,CAAC,EAAE,GAAG,MAAM,CAAC;QACnB,MAAM,CAAC,IAAI,GAAG,QAAQ,CAAC;QACvB,MAAM,CAAC,QAAQ,EAAE,CAAC;QAElB,uEAAuE;QACvE,IAAI,MAAM,CAAC,WAAW,CAAC,GAAG,CAAC,QAAQ,CAAC,EAAE,CAAC;YACnC,OAAO,CAAE,mBAAmB;QAChC,CAAC;QAED,IAAI,KAAK,EAAE,CAAC;YACR,IAAI,CAAC,IAAI,CAAC,QAAQ,EAAE,MAAM,CAAC,CAAC;QAChC,CAAC;QAED,IAAI,CAAC,IAAI,CAAC,SAAS,EAAE,MAAM,EAAE,GAAG,CAAC,CAAC;QAElC,QAAQ,GAAG,CAAC,IAAI,EAAE,CAAC;YACf,KAAK,WAAW,CAAC,YAAY,CAAC,CAAC,CAAC;gBAC5B,MAAM,IAAI,GAAG,kBAAkB,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC;gBAC7C,MAAM,CAAC,IAAI,GAAG,IAAI,CAAC,IAAI,CAAC;gBACxB,MAAM;YACV,CAAC;YAED,KAAK,WAAW,CAAC,KAAK,CAAC,CAAC,CAAC;gBACrB,MAAM,KAAK,GAAG,WAAW,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC;gBACvC,MAAM,CAAC,KAAK,GAAG,YAAY,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;gBACxC,MAAM,CAAC,KAAK,GAAG,KAAK,CAAC,KAAK,GAAG,CAAC,CAAC;gBAC/B,MAAM,CAAC,KAAK,GAAG,KAAK,CAAC,KAAK,CAAC;gBAC3B,IAAI,CAAC,IAAI,CAAC,OAAO,EAAE,MAAM,CAAC,CAAC;gBAC3B,MAAM;YACV,CAAC;YAED,KAAK,WAAW,CAAC,UAAU,CAAC,CAAC,CAAC;gBAC1B,MAAM,CAAC,KAAK,GAAG,gBAAgB,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC;gBAC7C,IAAI,CAAC,IAAI,CAAC,OAAO,EAAE,MAAM,CAAC,CAAC;gBAC3B,MAAM;YACV,CAAC;YAED,KAAK,WAAW,CAAC,UAAU,CAAC,CAAC,CAAC;gBAC1B,MAAM,CAAC,KAAK,GAAG,gBAAgB,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC;gBAC7C,IAAI,CAAC,IAAI,CAAC,OAAO,EAAE,MAAM,CAAC,CAAC;gBAC3B,MAAM;YACV,CAAC;YAED,KAAK,WAAW,CAAC,YAAY,CAAC,CAAC,CAAC;gBAC5B,MAAM,GAAG,GAAG,kBAAkB,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC;gBAC5C,MAAM,CAAC,MAAM,GAAG,GAAG,CAAC,MAAM,CAAC;gBAC3B,MAAM,CAAC,OAAO,GAAG,GAAG,CAAC,OAAO,CAAC;gBAC7B,IAAI,CAAC,IAAI,CAAC,SAAS,EAAE,MAAM,CAAC,CAAC;gBAC7B,MAAM;YACV,CAAC;YAED,KAAK,WAAW,CAAC,UAAU,CAAC,CAAC,CAAC;gBAC1B,MAAM,CAAC,KAAK,GAAG,gBAAgB,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC;gBAC7C,IAAI,CAAC,IAAI,CAAC,OAAO,EAAE,MAAM,CAAC,CAAC;gBAC3B,MAAM;YACV,CAAC;YAED,KAAK,WAAW,CAAC,aAAa,CAAC,CAAC,CAAC;gBAC7B,MAAM,CAAC,QAAQ,GAAG,gBAAgB,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC;gBAChD,IAAI,CAAC,IAAI,CAAC,UAAU,EAAE,MAAM,CAAC,CAAC;gBAC9B,MAAM;YACV,CAAC;YAED,KAAK,WAAW,CAAC,aAAa,CAAC,CAAC,CAAC;gBAC7B,MAAM,IAAI,GAAG,mBAAmB,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC;gBAC9C,MAAM,CAAC,MAAM,GAAG,IAAI,CAAC,MAAM,CAAC;gBAC5B,MAAM,CAAC,IAAI,GAAG,IAAI,CAAC,KAAK,CAAC,EAAE,GAAG,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC;gBACvD,IAAI,CAAC,IAAI,CAAC,UAAU,EAAE,MAAM,CAAC,CAAC;gBAC9B,IAAI,CAAC,uBAAuB,CAAC,MAAM,CAAC,CAAC;gBACrC,MAAM;YACV,CAAC;YAED,KAAK,WAAW,CAAC,iBAAiB,CAAC,CAAC,CAAC;gBACjC,MAAM,EAAE,GAAG,uBAAuB,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC;gBAChD,MAAM,CAAC,eAAe,GAAG,EAAE,CAAC,OAAO,CAAC;gBACpC,IAAI,CAAC,IAAI,CAAC,cAAc,EAAE,MAAM,CAAC,CAAC;gBAClC,IAAI,CAAC,uBAAuB,CAAC,MAAM,CAAC,CAAC;gBACrC,MAAM;YACV,CAAC;YAED,KAAK,WAAW,CAAC,aAAa,CAAC,CAAC,CAAC;gBAC7B,MAAM,IAAI,GAAG,mBAAmB,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC;gBAC9C,MAAM,CAAC,MAAM,GAAG,IAAI,CAAC,MAAM,CAAC;gBAC5B,MAAM,CAAC,IAAI,GAAG,IAAI,CAAC,KAAK,CAAC,EAAE,GAAG,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC;gBACvD,IAAI,CAAC,IAAI,CAAC,UAAU,EAAE,MAAM,CAAC,CAAC;gBAC9B,IAAI,CAAC,uBAAuB,CAAC,MAAM,CAAC,CAAC;gBACrC,MAAM;YACV,CAAC;YAED,KAAK,WAAW,CAAC,SAAS,CAAC,CAAC,CAAC;gBACzB,MAAM,IAAI,GAAG,eAAe,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC;gBAC1C,MAAM,CAAC,MAAM,GAAG,IAAI,CAAC,MAAM,CAAC;gBAC5B,MAAM,CAAC,QAAQ,GAAG,IAAI,CAAC,QAAQ,CAAC;gBAChC,IAAI,CAAC,IAAI,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;gBAC1B,IAAI,CAAC,uBAAuB,CAAC,MAAM,CAAC,CAAC;gBACrC,MAAM;YACV,CAAC;QACL,CAAC;IACL,CAAC;IAED,iEAAiE;IACzD,uBAAuB,CAAC,MAAgB;QAC5C,8DAA8D;QAC9D,IAAI,MAAM,CAAC,MAAM,IAAI,MAAM,CAAC,KAAK,IAAI,MAAM,CAAC,eAAe,IAAI,MAAM,CAAC,MAAM,KAAK,SAAS,EAAE,CAAC;YACzF,IAAI,CAAC,IAAI,CAAC,YAAY,EAAE,MAAM,CAAC,CAAC;QACpC,CAAC;IACL,CAAC;CACJ"}
|
package/device.d.ts.map
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"device.d.ts","sourceRoot":"","sources":["device.ts"],"names":[],"mappings":"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"}
|
package/device.js.map
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"device.js","sourceRoot":"","sources":["device.ts"],"names":[],"mappings":"AAAA,OAAO,EAAoB,UAAU,EAAE,QAAQ,EAAE,MAAM,wBAAwB,CAAC;AAEhF,OAAO,EAAa,WAAW,EAAE,QAAQ,EAAE,SAAS,EAAE,MAAM,YAAY,CAAC;AACzE,OAAO,EAAE,aAAa,EAAE,cAAc,EAAE,cAAc,EAAE,cAAc,EAAE,cAAc,EAAE,iBAAiB,EAAE,MAAM,eAAe,CAAC;AAEjI;;;;;;;GAOG;AACH,MAAM,OAAO,QAAQ;IACjB,+CAA+C;IACtC,GAAG,CAAS;IACrB,yBAAyB;IACzB,EAAE,CAAS;IACX,2CAA2C;IAC3C,IAAI,GAAW,SAAS,CAAC;IAEzB,8BAA8B;IAC9B,KAAK,GAAY,KAAK,CAAC;IACvB,mCAAmC;IACnC,KAAK,GAAS,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC;IAC5C,wCAAwC;IACxC,KAAK,GAAW,EAAE,CAAC;IACnB,mCAAmC;IACnC,MAAM,GAAY,KAAK,CAAC;IACxB,0CAA0C;IAC1C,QAAQ,GAAW,CAAC,CAAC;IAErB,2BAA2B;IAC3B,MAAM,GAAW,CAAC,CAAC;IACnB,sCAAsC;IACtC,OAAO,GAAW,CAAC,CAAC;IACpB,+CAA+C;IAC/C,eAAe,CAAU;IACzB,wCAAwC;IACxC,MAAM,CAAU;IAChB,2CAA2C;IAC3C,IAAI,CAAU;IACd,oCAAoC;IACpC,MAAM,CAAU;IAChB,sCAAsC;IACtC,QAAQ,CAAU;IAElB,uBAAuB;IACvB,KAAK,GAAc,EAAE,EAAE,EAAE,EAAE,EAAE,KAAK,EAAE,EAAE,EAAE,SAAS,EAAE,CAAC,EAAE,CAAC;IACvD,0BAA0B;IAC1B,QAAQ,GAAc,EAAE,EAAE,EAAE,EAAE,EAAE,KAAK,EAAE,EAAE,EAAE,SAAS,EAAE,CAAC,EAAE,CAAC;IAE1D,yEAAyE;IACjE,eAAe,GAAwB,IAAI,GAAG,EAAE,CAAC;IACjD,SAAS,CAAe;IAEhC;;;;;;;;;;OAUG;IACH,YAAY,GAAW,EAAE,EAAW;QAChC,IAAI,CAAC,GAAG,GAAG,GAAG,CAAC,WAAW,EAAE,CAAC;QAC7B,IAAI,CAAC,EAAE,GAAG,EAAE,IAAI,EAAE,CAAC;IACvB,CAAC;IAED,0CAA0C;IAClC,gBAAgB;QACpB,IAAI,CAAC,IAAI,CAAC,SAAS;YAAE,MAAM,IAAI,KAAK,CAAC,UAAU,IAAI,CAAC,GAAG,oEAAoE,CAAC,CAAC;IACjI,CAAC;IAED,2CAA2C;IACnC,SAAS;QACb,IAAI,CAAC,IAAI,CAAC,EAAE;YAAE,MAAM,IAAI,KAAK,CAAC,UAAU,IAAI,CAAC,GAAG,4GAA4G,CAAC,CAAC;IAClK,CAAC;IAED,uCAAuC;IACvC,IAAI,WAAW;QACX,OAAO,QAAQ,CAAC,IAAI,CAAC,OAAO,CAAC,IAAI,YAAY,IAAI,CAAC,OAAO,GAAG,CAAC;IACjE,CAAC;IAED,iEAAiE;IACjE,YAAY,CAAC,SAAsB;QAC/B,IAAI,CAAC,SAAS,GAAG,SAAS,CAAC;IAC/B,CAAC;IAED,iCAAiC;IACjC,IAAI,CAAC,IAAY,EAAE,OAAgB;QAC/B,IAAI,CAAC,gBAAgB,EAAE,CAAC;QACxB,IAAI,CAAC,SAAS,EAAE,CAAC;QAEjB,MAAM,GAAG,GAAG,aAAa,CAAC;YACtB,IAAI;YACJ,MAAM,EAAE,IAAI,CAAC,GAAG;YAChB,OAAO;YACP,WAAW,EAAE,KAAK;YAClB,WAAW,EAAE,IAAI;SACpB,CAAC,CAAC;QACH,IAAI,CAAC,SAAU,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,EAAE,IAAI,CAAC,IAAI,EAAE,GAAG,CAAC,CAAC;IAClD,CAAC;IAED,uBAAuB;IACvB,QAAQ,CAAC,EAAW;QAChB,IAAI,CAAC,gBAAgB,EAAE,CAAC;QACxB,MAAM,GAAG,GAAG,aAAa,CAAC;YACtB,IAAI,EAAE,WAAW,CAAC,QAAQ;YAC1B,MAAM,EAAE,IAAI,CAAC,GAAG;YAChB,OAAO,EAAE,cAAc,CAAC,EAAE,CAAC;YAC3B,WAAW,EAAE,IAAI;SACpB,CAAC,CAAC;QACH,IAAI,CAAC,SAAU,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,EAAE,IAAI,CAAC,IAAI,EAAE,GAAG,CAAC,CAAC;IAClD,CAAC;IAED;;;;OAIG;IACH,QAAQ,CAAC,KAAiB,EAAE,WAAmB,CAAC;QAC5C,IAAI,CAAC,gBAAgB,EAAE,CAAC;QACxB,MAAM,IAAI,GAAG,UAAU,CAAC,KAAK,CAAC,CAAC;QAC/B,MAAM,MAAM,GAAG,QAAQ,CAAC,IAAI,CAAC,CAAC;QAC9B,MAAM,GAAG,GAAG,aAAa,CAAC;YACtB,IAAI,EAAE,WAAW,CAAC,QAAQ;YAC1B,MAAM,EAAE,IAAI,CAAC,GAAG;YAChB,OAAO,EAAE,cAAc,CAAC,MAAM,EAAE,QAAQ,CAAC;YACzC,WAAW,EAAE,IAAI;SACpB,CAAC,CAAC;QACH,IAAI,CAAC,SAAU,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,EAAE,IAAI,CAAC,IAAI,EAAE,GAAG,CAAC,CAAC;IAClD,CAAC;IAED;;;;;OAKG;IACH,QAAQ,CAAC,MAAc,EAAE,aAAqB,GAAG,EAAE,WAAmB,CAAC;QACnE,IAAI,CAAC,QAAQ,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,UAAU,EAAE,CAAC,EAAE,MAAM,EAAE,EAAE,QAAQ,CAAC,CAAC;IACtE,CAAC;IAED,uBAAuB;IACvB,QAAQ;QACJ,IAAI,CAAC,IAAI,CAAC,WAAW,CAAC,GAAG,CAAC,CAAC;IAC/B,CAAC;IAED,wBAAwB;IACxB,QAAQ;QACJ,IAAI,CAAC,IAAI,CAAC,WAAW,CAAC,QAAQ,CAAC,CAAC;IACpC,CAAC;IAED,gBAAgB;IAChB,QAAQ,CAAC,KAAa;QAClB,IAAI,CAAC,gBAAgB,EAAE,CAAC;QACxB,MAAM,GAAG,GAAG,aAAa,CAAC;YACtB,IAAI,EAAE,WAAW,CAAC,QAAQ;YAC1B,MAAM,EAAE,IAAI,CAAC,GAAG;YAChB,OAAO,EAAE,cAAc,CAAC,KAAK,CAAC;YAC9B,WAAW,EAAE,IAAI;SACpB,CAAC,CAAC;QACH,IAAI,CAAC,SAAU,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,EAAE,IAAI,CAAC,IAAI,EAAE,GAAG,CAAC,CAAC;IAClD,CAAC;IAED,kBAAkB;IAClB,QAAQ;QACJ,IAAI,CAAC,IAAI,CAAC,WAAW,CAAC,QAAQ,CAAC,CAAC;IACpC,CAAC;IAED,gBAAgB;IAChB,QAAQ,CAAC,EAAU,EAAE,KAAa;QAC9B,IAAI,CAAC,gBAAgB,EAAE,CAAC;QACxB,MAAM,GAAG,GAAG,aAAa,CAAC;YACtB,IAAI,EAAE,WAAW,CAAC,QAAQ;YAC1B,MAAM,EAAE,IAAI,CAAC,GAAG;YAChB,OAAO,EAAE,cAAc,CAAC,EAAE,EAAE,KAAK,CAAC;YAClC,WAAW,EAAE,IAAI;SACpB,CAAC,CAAC;QACH,IAAI,CAAC,SAAU,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,EAAE,IAAI,CAAC,IAAI,EAAE,GAAG,CAAC,CAAC;IAClD,CAAC;IAED,kBAAkB;IAClB,QAAQ;QACJ,IAAI,CAAC,IAAI,CAAC,WAAW,CAAC,QAAQ,CAAC,CAAC;IACpC,CAAC;IAED,mBAAmB;IACnB,WAAW,CAAC,EAAU,EAAE,KAAa;QACjC,IAAI,CAAC,gBAAgB,EAAE,CAAC;QACxB,MAAM,GAAG,GAAG,aAAa,CAAC;YACtB,IAAI,EAAE,WAAW,CAAC,WAAW;YAC7B,MAAM,EAAE,IAAI,CAAC,GAAG;YAChB,OAAO,EAAE,iBAAiB,CAAC,EAAE,EAAE,KAAK,CAAC;YACrC,WAAW,EAAE,IAAI;SACpB,CAAC,CAAC;QACH,IAAI,CAAC,SAAU,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,EAAE,IAAI,CAAC,IAAI,EAAE,GAAG,CAAC,CAAC;IAClD,CAAC;IAED,qBAAqB;IACrB,WAAW;QACP,IAAI,CAAC,IAAI,CAAC,WAAW,CAAC,WAAW,CAAC,CAAC;IACvC,CAAC;IAED,oBAAoB;IACpB,UAAU;QACN,IAAI,CAAC,IAAI,CAAC,WAAW,CAAC,UAAU,CAAC,CAAC;IACtC,CAAC;IAED,uCAAuC;IACvC,WAAW;QACP,IAAI,CAAC,IAAI,CAAC,WAAW,CAAC,WAAW,CAAC,CAAC;IACvC,CAAC;IAED,0BAA0B;IAC1B,eAAe;QACX,IAAI,CAAC,IAAI,CAAC,WAAW,CAAC,eAAe,CAAC,CAAC;IAC3C,CAAC;IAED,sBAAsB;IACtB,WAAW;QACP,IAAI,CAAC,IAAI,CAAC,WAAW,CAAC,WAAW,CAAC,CAAC;IACvC,CAAC;IAED,2CAA2C;IAC3C,OAAO;QACH,IAAI,CAAC,IAAI,CAAC,WAAW,CAAC,OAAO,CAAC,CAAC;IACnC,CAAC;IAED;;;;OAIG;IACH,aAAa;QACT,IAAI,CAAC,UAAU,EAAE,CAAC;QAClB,IAAI,CAAC,QAAQ,EAAE,CAAC;QAChB,IAAI,CAAC,QAAQ,EAAE,CAAC;QAChB,IAAI,CAAC,WAAW,EAAE,CAAC;QACnB,IAAI,CAAC,eAAe,EAAE,CAAC;QACvB,IAAI,CAAC,WAAW,EAAE,CAAC;QACnB,IAAI,CAAC,OAAO,EAAE,CAAC;QACf,IAAI,CAAC,QAAQ,EAAE,CAAC;IACpB,CAAC;IAED,mDAAmD;IACnD,QAAQ;QACJ,IAAI,CAAC,QAAQ,GAAG,IAAI,CAAC,GAAG,EAAE,CAAC;QAC3B,IAAI,CAAC,MAAM,GAAG,IAAI,CAAC;IACvB,CAAC;IAED;;;;;OAKG;IACH,WAAW,CAAC,QAAgB;QACxB,MAAM,GAAG,GAAG,IAAI,CAAC,GAAG,EAAE,CAAC;QACvB,MAAM,mBAAmB,GAAG,IAAI,CAAC,CAAE,kBAAkB;QAErD,oBAAoB;QACpB,KAAK,MAAM,CAAC,GAAG,EAAE,SAAS,CAAC,IAAI,IAAI,CAAC,eAAe,CAAC,OAAO,EAAE,EAAE,CAAC;YAC5D,IAAI,GAAG,GAAG,SAAS,GAAG,mBAAmB,EAAE,CAAC;gBACxC,IAAI,CAAC,eAAe,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC;YACrC,CAAC;QACL,CAAC;QAED,6CAA6C;QAC7C,IAAI,IAAI,CAAC,eAAe,CAAC,GAAG,CAAC,QAAQ,CAAC,EAAE,CAAC;YACrC,OAAO,IAAI,CAAC;QAChB,CAAC;QAED,IAAI,CAAC,eAAe,CAAC,GAAG,CAAC,QAAQ,EAAE,GAAG,CAAC,CAAC;QACxC,OAAO,KAAK,CAAC;IACjB,CAAC;CACJ"}
|
package/events.d.ts.map
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"events.d.ts","sourceRoot":"","sources":["events.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AACH,MAAM,WAAW,cAAc;IAC3B,EAAE,CAAC,KAAK,EAAE,MAAM,EAAE,QAAQ,EAAE,CAAC,GAAG,IAAI,EAAE,GAAG,EAAE,KAAK,IAAI,GAAG,IAAI,CAAC;IAC5D,IAAI,CAAC,KAAK,EAAE,MAAM,EAAE,QAAQ,EAAE,CAAC,GAAG,IAAI,EAAE,GAAG,EAAE,KAAK,IAAI,GAAG,IAAI,CAAC;IAC9D,GAAG,CAAC,KAAK,EAAE,MAAM,EAAE,QAAQ,EAAE,CAAC,GAAG,IAAI,EAAE,GAAG,EAAE,KAAK,IAAI,GAAG,IAAI,CAAC;IAC7D,IAAI,CAAC,KAAK,EAAE,MAAM,EAAE,GAAG,IAAI,EAAE,GAAG,EAAE,GAAG,OAAO,CAAC;IAC7C,kBAAkB,CAAC,KAAK,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;CAC5C;AAED;;;GAGG;AACH,8BAAsB,kBAAmB,YAAW,cAAc;IAC9D,QAAQ,CAAC,EAAE,CAAC,KAAK,EAAE,MAAM,EAAE,QAAQ,EAAE,CAAC,GAAG,IAAI,EAAE,GAAG,EAAE,KAAK,IAAI,GAAG,IAAI;IACpE,QAAQ,CAAC,IAAI,CAAC,KAAK,EAAE,MAAM,EAAE,QAAQ,EAAE,CAAC,GAAG,IAAI,EAAE,GAAG,EAAE,KAAK,IAAI,GAAG,IAAI;IACtE,QAAQ,CAAC,GAAG,CAAC,KAAK,EAAE,MAAM,EAAE,QAAQ,EAAE,CAAC,GAAG,IAAI,EAAE,GAAG,EAAE,KAAK,IAAI,GAAG,IAAI;IACrE,QAAQ,CAAC,IAAI,CAAC,KAAK,EAAE,MAAM,EAAE,GAAG,IAAI,EAAE,GAAG,EAAE,GAAG,OAAO;IACrD,QAAQ,CAAC,kBAAkB,CAAC,KAAK,CAAC,EAAE,MAAM,GAAG,IAAI;CACpD"}
|
package/events.js.map
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"events.js","sourceRoot":"","sources":["events.ts"],"names":[],"mappings":"AAaA;;;GAGG;AACH,MAAM,OAAgB,kBAAkB;CAMvC"}
|
package/index.d.ts.map
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["index.ts"],"names":[],"mappings":"AAAA,cAAc,YAAY,CAAC;AAC3B,OAAO,EAAE,QAAQ,EAAE,MAAM,aAAa,CAAC;AACvC,OAAO,EAAE,QAAQ,EAAE,eAAe,EAAE,MAAM,aAAa,CAAC;AACxD,OAAO,EAAE,WAAW,EAAE,UAAU,EAAE,MAAM,gBAAgB,CAAC;AACzD,OAAO,EAAE,cAAc,EAAE,kBAAkB,EAAE,MAAM,aAAa,CAAC;AACjE,OAAO,EAAE,aAAa,EAAE,aAAa,EAAE,MAAM,eAAe,CAAC"}
|
package/index.js.map
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["index.ts"],"names":[],"mappings":"AAAA,cAAc,YAAY,CAAC;AAC3B,OAAO,EAAE,QAAQ,EAAE,MAAM,aAAa,CAAC;AACvC,OAAO,EAAE,QAAQ,EAAmB,MAAM,aAAa,CAAC;AAExD,OAAO,EAAkB,kBAAkB,EAAE,MAAM,aAAa,CAAC;AACjE,OAAO,EAAE,aAAa,EAAE,aAAa,EAAE,MAAM,eAAe,CAAC"}
|
package/protocol.d.ts.map
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"protocol.d.ts","sourceRoot":"","sources":["protocol.ts"],"names":[],"mappings":"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"}
|
package/protocol.js.map
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"protocol.js","sourceRoot":"","sources":["protocol.ts"],"names":[],"mappings":"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"}
|
package/transport.d.ts.map
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"transport.d.ts","sourceRoot":"","sources":["transport.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAEH,kCAAkC;AAClC,MAAM,WAAW,UAAU;IACvB,OAAO,EAAE,MAAM,CAAC;IAChB,IAAI,EAAE,MAAM,CAAC;CAChB;AAED,gCAAgC;AAChC,MAAM,WAAW,WAAW;IACxB,+BAA+B;IAC/B,IAAI,IAAI,OAAO,CAAC,IAAI,CAAC,CAAC;IAEtB,+BAA+B;IAC/B,KAAK,IAAI,IAAI,CAAC;IAEd,oCAAoC;IACpC,IAAI,CAAC,EAAE,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,GAAG,IAAI,CAAC;IAEnD,sCAAsC;IACtC,SAAS,CAAC,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,EAAE,SAAS,EAAE,MAAM,EAAE,GAAG,IAAI,CAAC;IAEjE,+BAA+B;IAC/B,SAAS,CAAC,OAAO,EAAE,CAAC,IAAI,EAAE,MAAM,EAAE,KAAK,EAAE,UAAU,KAAK,IAAI,GAAG,IAAI,CAAC;IAEpE,6BAA6B;IAC7B,OAAO,CAAC,OAAO,EAAE,CAAC,GAAG,EAAE,KAAK,KAAK,IAAI,GAAG,IAAI,CAAC;IAE7C,6BAA6B;IAC7B,OAAO,CAAC,OAAO,EAAE,MAAM,IAAI,GAAG,IAAI,CAAC;CACtC"}
|
package/transport.js.map
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"transport.js","sourceRoot":"","sources":["transport.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG"}
|
package/types.d.ts.map
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["types.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,IAAI,EAAE,MAAM,wBAAwB,CAAC;AAE9C,yBAAyB;AACzB,eAAO,MAAM,WAAW;;;;;;;;;;;;;;;;;;;;;;;;;;;;CA4Bd,CAAC;AAEX,MAAM,MAAM,gBAAgB,GAAG,OAAO,WAAW,CAAC,MAAM,OAAO,WAAW,CAAC,CAAC;AAE5E,2BAA2B;AAC3B,MAAM,WAAW,QAAQ;IACrB,IAAI,EAAE,MAAM,CAAC;IACb,QAAQ,EAAE,MAAM,CAAC;IACjB,WAAW,EAAE,OAAO,CAAC;IACrB,MAAM,EAAE,OAAO,CAAC;IAChB,MAAM,EAAE,MAAM,CAAC;IACf,MAAM,EAAE,MAAM,CAAC,CAAE,gCAAgC;IACjD,WAAW,EAAE,OAAO,CAAC;IACrB,WAAW,EAAE,OAAO,CAAC;IACrB,QAAQ,EAAE,MAAM,CAAC;IACjB,IAAI,EAAE,MAAM,CAAC;CAChB;AAED,wBAAwB;AACxB,MAAM,WAAW,SAAU,SAAQ,QAAQ;IACvC,OAAO,EAAE,MAAM,CAAC;CACnB;AAED,0BAA0B;AAC1B,MAAM,WAAW,SAAS;IACtB,EAAE,EAAE,MAAM,CAAC,CAAE,0BAA0B;IACvC,KAAK,EAAE,MAAM,CAAC;IACd,SAAS,EAAE,MAAM,CAAC,CAAE,gBAAgB;CACvC;AAED,+BAA+B;AAC/B,MAAM,WAAW,WAAW;IACxB,KAAK,EAAE,OAAO,CAAC;IACf,KAAK,EAAE,IAAI,CAAC;IACZ,KAAK,EAAE,MAAM,CAAC;IACd,KAAK,EAAE,SAAS,CAAC;IACjB,QAAQ,EAAE,SAAS,CAAC;IACpB,MAAM,EAAE,MAAM,CAAC;IACf,OAAO,EAAE,MAAM,CAAC;IAChB,eAAe,CAAC,EAAE,MAAM,CAAC;IACzB,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,QAAQ,CAAC,EAAE,MAAM,CAAC;CACrB;AAED,gBAAgB;AAChB,eAAO,MAAM,SAAS,QAAQ,CAAC;AAE/B,kBAAkB;AAClB,eAAO,MAAM,WAAW,KAAK,CAAC;AAE9B,0CAA0C;AAC1C,eAAO,MAAM,QAAQ,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAyD3C,CAAC"}
|
package/types.js.map
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"types.js","sourceRoot":"","sources":["types.ts"],"names":[],"mappings":"AAEA,yBAAyB;AACzB,MAAM,CAAC,MAAM,WAAW,GAAG;IACvB,UAAU,EAAE,CAAC;IACb,YAAY,EAAE,CAAC;IACf,WAAW,EAAE,EAAE;IACf,aAAa,EAAE,EAAE;IACjB,eAAe,EAAE,EAAE;IACnB,iBAAiB,EAAE,EAAE;IACrB,WAAW,EAAE,EAAE;IACf,aAAa,EAAE,EAAE;IACjB,QAAQ,EAAE,EAAE;IACZ,QAAQ,EAAE,EAAE;IACZ,UAAU,EAAE,EAAE;IACd,QAAQ,EAAE,EAAE;IACZ,QAAQ,EAAE,EAAE;IACZ,UAAU,EAAE,EAAE;IACd,UAAU,EAAE,EAAE;IACd,YAAY,EAAE,EAAE;IAChB,OAAO,EAAE,EAAE;IACX,SAAS,EAAE,EAAE;IACb,WAAW,EAAE,EAAE;IACf,WAAW,EAAE,EAAE;IACf,aAAa,EAAE,EAAE;IACjB,QAAQ,EAAE,EAAE;IACZ,QAAQ,EAAE,EAAE;IACZ,UAAU,EAAE,EAAE;IACd,GAAG,EAAE,GAAG,EAAG,eAAe;IAC1B,QAAQ,EAAE,GAAG;IACb,KAAK,EAAE,GAAG,EAAG,iBAAiB;CACxB,CAAC;AA8CX,gBAAgB;AAChB,MAAM,CAAC,MAAM,SAAS,GAAG,KAAK,CAAC;AAE/B,kBAAkB;AAClB,MAAM,CAAC,MAAM,WAAW,GAAG,EAAE,CAAC;AAE9B,0CAA0C;AAC1C,MAAM,CAAC,MAAM,QAAQ,GAA2B;IAC5C,CAAC,EAAE,oBAAoB;IACvB,CAAC,EAAE,gBAAgB;IACnB,EAAE,EAAE,8BAA8B;IAClC,EAAE,EAAE,+BAA+B;IACnC,EAAE,EAAE,mCAAmC;IACvC,EAAE,EAAE,sBAAsB;IAC1B,EAAE,EAAE,iBAAiB;IACrB,EAAE,EAAE,UAAU;IACd,EAAE,EAAE,WAAW;IACf,EAAE,EAAE,uBAAuB;IAC3B,EAAE,EAAE,wBAAwB;IAC5B,EAAE,EAAE,QAAQ;IACZ,EAAE,EAAE,UAAU;IACd,EAAE,EAAE,gBAAgB;IACpB,EAAE,EAAE,gBAAgB;IACpB,EAAE,EAAE,WAAW;IACf,EAAE,EAAE,UAAU;IACd,EAAE,EAAE,WAAW;IACf,EAAE,EAAE,uBAAuB;IAC3B,EAAE,EAAE,wBAAwB;IAC5B,EAAE,EAAE,WAAW;IACf,EAAE,EAAE,wBAAwB;IAC5B,EAAE,EAAE,iBAAiB;IACrB,EAAE,EAAE,WAAW;IACf,EAAE,EAAE,WAAW;IACf,EAAE,EAAE,aAAa;IACjB,EAAE,EAAE,iBAAiB;IACrB,EAAE,EAAE,wBAAwB;IAC5B,EAAE,EAAE,iBAAiB;IACrB,EAAE,EAAE,UAAU;IACd,EAAE,EAAE,WAAW;IACf,EAAE,EAAE,uBAAuB;IAC3B,EAAE,EAAE,wBAAwB;IAC5B,EAAE,EAAE,iBAAiB;IACrB,EAAE,EAAE,aAAa;IACjB,EAAE,EAAE,2BAA2B;IAC/B,EAAE,EAAE,qBAAqB;IACzB,EAAE,EAAE,qBAAqB;IACzB,EAAE,EAAE,iBAAiB;IACrB,EAAE,EAAE,iBAAiB;IACrB,EAAE,EAAE,aAAa;IACjB,EAAE,EAAE,YAAY;IAChB,EAAE,EAAE,YAAY;IAChB,EAAE,EAAE,YAAY;IAChB,EAAE,EAAE,aAAa;IACjB,EAAE,EAAE,WAAW;IACf,EAAE,EAAE,2BAA2B;IAC/B,EAAE,EAAE,UAAU;IACd,EAAE,EAAE,WAAW;IACf,EAAE,EAAE,YAAY;IAChB,GAAG,EAAE,qBAAqB;IAC1B,GAAG,EAAE,qBAAqB;IAC1B,GAAG,EAAE,uBAAuB;IAC5B,GAAG,EAAE,wBAAwB;IAC7B,GAAG,EAAE,4BAA4B;IACjC,GAAG,EAAE,6BAA6B;CACrC,CAAC"}
|