@bobfrankston/lxlan 0.1.0 → 0.1.2

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/device.js CHANGED
@@ -4,13 +4,17 @@ import { encodeMessage, encodeSetPower, encodeSetColor, encodeSetLabel, encodeSe
4
4
  /**
5
5
  * Represents a LIFX device on the LAN.
6
6
  * State is cached and updated via events from LxClient.
7
+ *
8
+ * **IMPORTANT:** Do not create devices directly with `new LxDevice()`.
9
+ * Always use `client.addDevice(mac, ip)` or obtain devices from `client.devices`.
10
+ * Directly instantiated devices will not have a transport and will fail at runtime.
7
11
  */
8
12
  export class LxDevice {
9
13
  /** MAC address (lowercase, colon-separated) */
10
14
  mac;
11
15
  /** Current IP address */
12
16
  ip;
13
- /** UDP port (default 56700) */
17
+ /** UDP port (default LIFX_PORT = 56700) */
14
18
  port = LIFX_PORT;
15
19
  /** Power state (true = on) */
16
20
  power = false;
@@ -26,22 +30,60 @@ export class LxDevice {
26
30
  vendor = 0;
27
31
  /** Product ID (see Products table) */
28
32
  product = 0;
33
+ /** Firmware version (encoded as 0x00RRMMPP) */
34
+ firmwareVersion;
35
+ /** WiFi signal strength (0.0 to 1.0) */
36
+ signal;
37
+ /** RSSI in dBm (calculated from signal) */
38
+ rssi;
39
+ /** Device uptime in milliseconds */
40
+ uptime;
41
+ /** Device downtime in milliseconds */
42
+ downtime;
29
43
  /** Group membership */
30
44
  group = { id: '', label: '', updatedAt: 0 };
31
45
  /** Location membership */
32
46
  location = { id: '', label: '', updatedAt: 0 };
33
- socket;
34
- constructor(mac, ip, socket) {
47
+ /** Recent message sequences for deduplication (sequence -> timestamp) */
48
+ recentSequences = new Map();
49
+ transport;
50
+ /**
51
+ * Create a LIFX device
52
+ *
53
+ * **WARNING:** This constructor is for internal use by LxClient.
54
+ * Do not call directly - use `client.addDevice(mac, ip)` instead.
55
+ * Devices created directly will not have a transport and will throw errors when used.
56
+ *
57
+ * @param mac - MAC address (will be normalized to lowercase)
58
+ * @param ip - IP address (optional, can be discovered)
59
+ * @internal
60
+ */
61
+ constructor(mac, ip) {
35
62
  this.mac = mac.toLowerCase();
36
- this.ip = ip;
37
- this.socket = socket;
63
+ this.ip = ip || '';
64
+ }
65
+ /** Throw error if transport is not set */
66
+ requireTransport() {
67
+ if (!this.transport)
68
+ throw new Error(`Device ${this.mac} has no UDP transport - cannot send. Use lxlan-node or lxlan-http.`);
69
+ }
70
+ /** Throw error if IP address is not set */
71
+ requireIP() {
72
+ if (!this.ip)
73
+ throw new Error(`Device ${this.mac} has no IP address - cannot send. Perform discovery or add device with IP using client.addDevice(mac, ip).`);
38
74
  }
39
75
  /** Get product name from product ID */
40
76
  get productName() {
41
77
  return Products[this.product] ?? `Unknown (${this.product})`;
42
78
  }
79
+ /** Set the transport (used by LxClient when managing devices) */
80
+ setTransport(transport) {
81
+ this.transport = transport;
82
+ }
43
83
  /** Send raw message to device */
44
84
  send(type, payload) {
85
+ this.requireTransport();
86
+ this.requireIP();
45
87
  const msg = encodeMessage({
46
88
  type,
47
89
  target: this.mac,
@@ -49,17 +91,18 @@ export class LxDevice {
49
91
  ackRequired: false,
50
92
  resRequired: true
51
93
  });
52
- this.socket.send(this.ip, this.port, msg);
94
+ this.transport.send(this.ip, this.port, msg);
53
95
  }
54
96
  /** Set power on/off */
55
97
  setPower(on) {
98
+ this.requireTransport();
56
99
  const msg = encodeMessage({
57
100
  type: MessageType.SetPower,
58
101
  target: this.mac,
59
102
  payload: encodeSetPower(on),
60
103
  ackRequired: true
61
104
  });
62
- this.socket.send(this.ip, this.port, msg);
105
+ this.transport.send(this.ip, this.port, msg);
63
106
  }
64
107
  /**
65
108
  * Set color - accepts flexible input formats
@@ -67,6 +110,7 @@ export class LxDevice {
67
110
  * @param duration - Transition time in milliseconds (default 0)
68
111
  */
69
112
  setColor(color, duration = 0) {
113
+ this.requireTransport();
70
114
  const hsbk = parseColor(color);
71
115
  const hsbk16 = hsbkTo16(hsbk);
72
116
  const msg = encodeMessage({
@@ -75,7 +119,7 @@ export class LxDevice {
75
119
  payload: encodeSetColor(hsbk16, duration),
76
120
  ackRequired: true
77
121
  });
78
- this.socket.send(this.ip, this.port, msg);
122
+ this.transport.send(this.ip, this.port, msg);
79
123
  }
80
124
  /**
81
125
  * Set white color temperature
@@ -96,13 +140,14 @@ export class LxDevice {
96
140
  }
97
141
  /** Set label */
98
142
  setLabel(label) {
143
+ this.requireTransport();
99
144
  const msg = encodeMessage({
100
145
  type: MessageType.SetLabel,
101
146
  target: this.mac,
102
147
  payload: encodeSetLabel(label),
103
148
  ackRequired: true
104
149
  });
105
- this.socket.send(this.ip, this.port, msg);
150
+ this.transport.send(this.ip, this.port, msg);
106
151
  }
107
152
  /** Query label */
108
153
  getLabel() {
@@ -110,13 +155,14 @@ export class LxDevice {
110
155
  }
111
156
  /** Set group */
112
157
  setGroup(id, label) {
158
+ this.requireTransport();
113
159
  const msg = encodeMessage({
114
160
  type: MessageType.SetGroup,
115
161
  target: this.mac,
116
162
  payload: encodeSetGroup(id, label),
117
163
  ackRequired: true
118
164
  });
119
- this.socket.send(this.ip, this.port, msg);
165
+ this.transport.send(this.ip, this.port, msg);
120
166
  }
121
167
  /** Query group */
122
168
  getGroup() {
@@ -124,13 +170,14 @@ export class LxDevice {
124
170
  }
125
171
  /** Set location */
126
172
  setLocation(id, label) {
173
+ this.requireTransport();
127
174
  const msg = encodeMessage({
128
175
  type: MessageType.SetLocation,
129
176
  target: this.mac,
130
177
  payload: encodeSetLocation(id, label),
131
178
  ackRequired: true
132
179
  });
133
- this.socket.send(this.ip, this.port, msg);
180
+ this.transport.send(this.ip, this.port, msg);
134
181
  }
135
182
  /** Query location */
136
183
  getLocation() {
@@ -140,10 +187,63 @@ export class LxDevice {
140
187
  getVersion() {
141
188
  this.send(MessageType.GetVersion);
142
189
  }
190
+ /** Query host info (signal, tx, rx) */
191
+ getHostInfo() {
192
+ this.send(MessageType.GetHostInfo);
193
+ }
194
+ /** Query host firmware */
195
+ getHostFirmware() {
196
+ this.send(MessageType.GetHostFirmware);
197
+ }
198
+ /** Query WiFi info */
199
+ getWifiInfo() {
200
+ this.send(MessageType.GetWifiInfo);
201
+ }
202
+ /** Query device info (uptime, downtime) */
203
+ getInfo() {
204
+ this.send(MessageType.GetInfo);
205
+ }
206
+ /**
207
+ * Query all device information
208
+ * Sends multiple requests to gather comprehensive device metadata.
209
+ * Listen for 'deviceInfo' event on client to get results.
210
+ */
211
+ getDeviceInfo() {
212
+ this.getVersion();
213
+ this.getLabel();
214
+ this.getGroup();
215
+ this.getLocation();
216
+ this.getHostFirmware();
217
+ this.getWifiInfo();
218
+ this.getInfo();
219
+ this.getState();
220
+ }
143
221
  /** Update last seen timestamp and online status */
144
222
  markSeen() {
145
223
  this.lastSeen = Date.now();
146
224
  this.online = true;
147
225
  }
226
+ /**
227
+ * Check if message is a duplicate based on sequence number.
228
+ * LIFX devices sometimes send duplicate responses.
229
+ * @param sequence - Message sequence number
230
+ * @returns true if duplicate (already seen recently)
231
+ */
232
+ isDuplicate(sequence) {
233
+ const now = Date.now();
234
+ const DUPLICATE_WINDOW_MS = 2000; // 2 second window
235
+ // Clean old entries
236
+ for (const [seq, timestamp] of this.recentSequences.entries()) {
237
+ if (now - timestamp > DUPLICATE_WINDOW_MS) {
238
+ this.recentSequences.delete(seq);
239
+ }
240
+ }
241
+ // Check if we've seen this sequence recently
242
+ if (this.recentSequences.has(sequence)) {
243
+ return true;
244
+ }
245
+ this.recentSequences.set(sequence, now);
246
+ return false;
247
+ }
148
248
  }
149
249
  //# sourceMappingURL=device.js.map
package/device.js.map CHANGED
@@ -1 +1 @@
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;;;GAGG;AACH,MAAM,OAAO,QAAQ;IACjB,+CAA+C;IACtC,GAAG,CAAS;IACrB,yBAAyB;IACzB,EAAE,CAAS;IACX,+BAA+B;IAC/B,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;IAEpB,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;IAElD,MAAM,CAAY;IAE1B,YAAY,GAAW,EAAE,EAAU,EAAE,MAAiB;QAClD,IAAI,CAAC,GAAG,GAAG,GAAG,CAAC,WAAW,EAAE,CAAC;QAC7B,IAAI,CAAC,EAAE,GAAG,EAAE,CAAC;QACb,IAAI,CAAC,MAAM,GAAG,MAAM,CAAC;IACzB,CAAC;IAED,uCAAuC;IACvC,IAAI,WAAW;QACX,OAAO,QAAQ,CAAC,IAAI,CAAC,OAAO,CAAC,IAAI,YAAY,IAAI,CAAC,OAAO,GAAG,CAAC;IACjE,CAAC;IAED,iCAAiC;IACjC,IAAI,CAAC,IAAY,EAAE,OAAgB;QAC/B,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,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,EAAE,IAAI,CAAC,IAAI,EAAE,GAAG,CAAC,CAAC;IAC9C,CAAC;IAED,uBAAuB;IACvB,QAAQ,CAAC,EAAW;QAChB,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,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,EAAE,IAAI,CAAC,IAAI,EAAE,GAAG,CAAC,CAAC;IAC9C,CAAC;IAED;;;;OAIG;IACH,QAAQ,CAAC,KAAiB,EAAE,WAAmB,CAAC;QAC5C,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,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,EAAE,IAAI,CAAC,IAAI,EAAE,GAAG,CAAC,CAAC;IAC9C,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,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,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,EAAE,IAAI,CAAC,IAAI,EAAE,GAAG,CAAC,CAAC;IAC9C,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,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,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,EAAE,IAAI,CAAC,IAAI,EAAE,GAAG,CAAC,CAAC;IAC9C,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,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,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,EAAE,IAAI,CAAC,IAAI,EAAE,GAAG,CAAC,CAAC;IAC9C,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,mDAAmD;IACnD,QAAQ;QACJ,IAAI,CAAC,QAAQ,GAAG,IAAI,CAAC,GAAG,EAAE,CAAC;QAC3B,IAAI,CAAC,MAAM,GAAG,IAAI,CAAC;IACvB,CAAC;CACJ"}
1
+ {"version":3,"file":"device.js","sourceRoot":"","sources":["device.ts"],"names":[],"mappings":"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"}
package/events.d.ts ADDED
@@ -0,0 +1,24 @@
1
+ /**
2
+ * Minimal EventEmitter interface for browser compatibility
3
+ * Node.js implementations can use node:events directly
4
+ * Browser implementations can provide their own or use a library
5
+ */
6
+ export interface LxEventEmitter {
7
+ on(event: string, listener: (...args: any[]) => void): this;
8
+ once(event: string, listener: (...args: any[]) => void): this;
9
+ off(event: string, listener: (...args: any[]) => void): this;
10
+ emit(event: string, ...args: any[]): boolean;
11
+ removeAllListeners(event?: string): this;
12
+ }
13
+ /**
14
+ * Base class for objects that emit events
15
+ * This is platform-agnostic and can be implemented for Node.js or browser
16
+ */
17
+ export declare abstract class LxEventEmitterBase implements LxEventEmitter {
18
+ abstract on(event: string, listener: (...args: any[]) => void): this;
19
+ abstract once(event: string, listener: (...args: any[]) => void): this;
20
+ abstract off(event: string, listener: (...args: any[]) => void): this;
21
+ abstract emit(event: string, ...args: any[]): boolean;
22
+ abstract removeAllListeners(event?: string): this;
23
+ }
24
+ //# sourceMappingURL=events.d.ts.map
@@ -0,0 +1 @@
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 ADDED
@@ -0,0 +1,7 @@
1
+ /**
2
+ * Base class for objects that emit events
3
+ * This is platform-agnostic and can be implemented for Node.js or browser
4
+ */
5
+ export class LxEventEmitterBase {
6
+ }
7
+ //# sourceMappingURL=events.js.map
package/events.js.map ADDED
@@ -0,0 +1 @@
1
+ {"version":3,"file":"events.js","sourceRoot":"","sources":["events.ts"],"names":[],"mappings":"AAaA;;;GAGG;AACH,MAAM,OAAgB,kBAAkB;CAMvC"}
package/index.d.ts CHANGED
@@ -1,5 +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';
5
+ export { LxEventEmitter, LxEventEmitterBase } from './events.js';
4
6
  export { encodeMessage, decodeMessage } from './protocol.js';
5
7
  //# sourceMappingURL=index.d.ts.map
package/index.d.ts.map CHANGED
@@ -1 +1 @@
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,aAAa,EAAE,aAAa,EAAE,MAAM,eAAe,CAAC"}
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 CHANGED
@@ -1,5 +1,6 @@
1
1
  export * from './types.js';
2
2
  export { LxDevice } from './device.js';
3
3
  export { LxClient } from './client.js';
4
+ export { LxEventEmitterBase } from './events.js';
4
5
  export { encodeMessage, decodeMessage } from './protocol.js';
5
6
  //# sourceMappingURL=index.js.map
package/index.js.map CHANGED
@@ -1 +1 @@
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;AACxD,OAAO,EAAE,aAAa,EAAE,aAAa,EAAE,MAAM,eAAe,CAAC"}
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/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@bobfrankston/lxlan",
3
- "version": "0.1.0",
3
+ "version": "0.1.2",
4
4
  "description": "LIFX LAN protocol library for device control via UDP",
5
5
  "type": "module",
6
6
  "main": "index.js",
@@ -13,19 +13,27 @@
13
13
  },
14
14
  "scripts": {
15
15
  "build": "tsc",
16
- "watch": "tsc -w"
16
+ "watch": "tsc -w",
17
+ "preversion": "npm run build",
18
+ "postversion": "git push && git push --tags && npm publish",
19
+ "release": "git add -A && git diff-index --quiet HEAD || git commit -m 'Build for release' && npm version patch"
17
20
  },
18
- "keywords": ["lifx", "lan", "udp", "smart-home", "lighting"],
21
+ "keywords": [
22
+ "lifx",
23
+ "lan",
24
+ "udp",
25
+ "smart-home",
26
+ "lighting"
27
+ ],
19
28
  "license": "MIT",
20
29
  "repository": {
21
30
  "type": "git",
22
31
  "url": "https://github.com/BobFrankston/lxlan.git"
23
32
  },
24
33
  "dependencies": {
25
- "@bobfrankston/colorlib": "^0.1.0",
26
- "@bobfrankston/lxudp": "^0.1.0"
34
+ "@bobfrankston/colorlib": "file:../../../../utils/colorlib"
27
35
  },
28
36
  "devDependencies": {
29
- "@types/node": "latest"
37
+ "@types/node": "^25.0.6"
30
38
  }
31
39
  }
package/protocol.d.ts CHANGED
@@ -53,4 +53,27 @@ export declare function decodeStateService(payload: Buffer): {
53
53
  service: number;
54
54
  port: number;
55
55
  };
56
+ /** Decode StateHostInfo (13) payload */
57
+ export declare function decodeStateHostInfo(payload: Buffer): {
58
+ signal: number;
59
+ tx: number;
60
+ rx: number;
61
+ };
62
+ /** Decode StateHostFirmware (15) payload */
63
+ export declare function decodeStateHostFirmware(payload: Buffer): {
64
+ build: number;
65
+ version: number;
66
+ };
67
+ /** Decode StateWifiInfo (17) payload - same format as StateHostInfo */
68
+ export declare function decodeStateWifiInfo(payload: Buffer): {
69
+ signal: number;
70
+ tx: number;
71
+ rx: number;
72
+ };
73
+ /** Decode StateInfo (35) payload */
74
+ export declare function decodeStateInfo(payload: Buffer): {
75
+ time: number;
76
+ uptime: number;
77
+ downtime: number;
78
+ };
56
79
  //# sourceMappingURL=protocol.d.ts.map
package/protocol.d.ts.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"protocol.d.ts","sourceRoot":"","sources":["protocol.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,EAAE,MAAM,wBAAwB,CAAC;AAChD,OAAO,EAAE,SAAS,EAAsC,MAAM,YAAY,CAAC;AAK3E,gDAAgD;AAChD,wBAAgB,YAAY,IAAI,MAAM,CAGrC;AAED,2BAA2B;AAC3B,wBAAgB,SAAS,IAAI,MAAM,CAElC;AAqBD,oCAAoC;AACpC,wBAAgB,aAAa,CAAC,OAAO,EAAE;IACnC,IAAI,EAAE,MAAM,CAAC;IACb,MAAM,CAAC,EAAE,MAAM,CAAC,CAAE,uCAAuC;IACzD,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,MAAM,CAAC,EAAE,OAAO,CAAC;IACjB,WAAW,CAAC,EAAE,OAAO,CAAC;IACtB,WAAW,CAAC,EAAE,OAAO,CAAC;IACtB,QAAQ,CAAC,EAAE,MAAM,CAAC;CACrB,GAAG,MAAM,CAiCT;AAED,sCAAsC;AACtC,wBAAgB,aAAa,CAAC,GAAG,EAAE,MAAM,GAAG,SAAS,CAgCpD;AAED,8BAA8B;AAC9B,wBAAgB,cAAc,CAAC,EAAE,EAAE,OAAO,GAAG,MAAM,CAIlD;AAED,8BAA8B;AAC9B,wBAAgB,cAAc,CAAC,IAAI,EAAE,MAAM,EAAE,QAAQ,GAAE,MAAU,GAAG,MAAM,CASzE;AAED,8BAA8B;AAC9B,wBAAgB,cAAc,CAAC,KAAK,EAAE,MAAM,GAAG,MAAM,CAIpD;AAED,8BAA8B;AAC9B,wBAAgB,cAAc,CAAC,EAAE,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,GAAG,MAAM,CAWhE;AAED,2DAA2D;AAC3D,wBAAgB,iBAAiB,CAAC,EAAE,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,GAAG,MAAM,CAEnE;AAED,+CAA+C;AAC/C,wBAAgB,WAAW,CAAC,OAAO,EAAE,MAAM,GAAG;IAAE,IAAI,EAAE,MAAM,CAAC;IAAC,KAAK,EAAE,MAAM,CAAC;IAAC,KAAK,EAAE,MAAM,CAAA;CAAE,CAW3F;AAED,qCAAqC;AACrC,wBAAgB,gBAAgB,CAAC,OAAO,EAAE,MAAM,GAAG,OAAO,CAEzD;AAED,qCAAqC;AACrC,wBAAgB,gBAAgB,CAAC,OAAO,EAAE,MAAM,GAAG,MAAM,CAExD;AAED,uCAAuC;AACvC,wBAAgB,kBAAkB,CAAC,OAAO,EAAE,MAAM,GAAG;IAAE,MAAM,EAAE,MAAM,CAAC;IAAC,OAAO,EAAE,MAAM,CAAC;IAAC,OAAO,EAAE,MAAM,CAAA;CAAE,CAMxG;AAED,2DAA2D;AAC3D,wBAAgB,gBAAgB,CAAC,OAAO,EAAE,MAAM,GAAG;IAAE,EAAE,EAAE,MAAM,CAAC;IAAC,KAAK,EAAE,MAAM,CAAC;IAAC,SAAS,EAAE,MAAM,CAAA;CAAE,CAMlG;AAED,sCAAsC;AACtC,wBAAgB,kBAAkB,CAAC,OAAO,EAAE,MAAM,GAAG;IAAE,OAAO,EAAE,MAAM,CAAC;IAAC,IAAI,EAAE,MAAM,CAAA;CAAE,CAKrF"}
1
+ {"version":3,"file":"protocol.d.ts","sourceRoot":"","sources":["protocol.ts"],"names":[],"mappings":"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"}
package/protocol.js CHANGED
@@ -171,4 +171,31 @@ export function decodeStateService(payload) {
171
171
  port: payload.readUInt32LE(1)
172
172
  };
173
173
  }
174
+ /** Decode StateHostInfo (13) payload */
175
+ export function decodeStateHostInfo(payload) {
176
+ return {
177
+ signal: payload.readFloatLE(0),
178
+ tx: payload.readUInt32LE(4),
179
+ rx: payload.readUInt32LE(8)
180
+ };
181
+ }
182
+ /** Decode StateHostFirmware (15) payload */
183
+ export function decodeStateHostFirmware(payload) {
184
+ return {
185
+ build: Number(payload.readBigUInt64LE(0)), // nanoseconds since epoch
186
+ version: payload.readUInt32LE(8) // encoded as hex: 0x00RRMMPP (major.minor.patch)
187
+ };
188
+ }
189
+ /** Decode StateWifiInfo (17) payload - same format as StateHostInfo */
190
+ export function decodeStateWifiInfo(payload) {
191
+ return decodeStateHostInfo(payload);
192
+ }
193
+ /** Decode StateInfo (35) payload */
194
+ export function decodeStateInfo(payload) {
195
+ return {
196
+ time: Number(payload.readBigUInt64LE(0) / BigInt(1000000)), // ns to ms
197
+ uptime: Number(payload.readBigUInt64LE(8) / BigInt(1000000)), // ns to ms
198
+ downtime: Number(payload.readBigUInt64LE(16) / BigInt(1000000)) // ns to ms
199
+ };
200
+ }
174
201
  //# sourceMappingURL=protocol.js.map
package/protocol.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"protocol.js","sourceRoot":"","sources":["protocol.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"protocol.js","sourceRoot":"","sources":["protocol.ts"],"names":[],"mappings":"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"}
package/transport.d.ts ADDED
@@ -0,0 +1,30 @@
1
+ /**
2
+ * Transport abstraction for LIFX LAN protocol
3
+ * Allows different implementations:
4
+ * - UDP (current: rmfudp)
5
+ * - HTTP (future: for web/browser support)
6
+ * - WebSocket (future: bidirectional web support)
7
+ */
8
+ /** Remote endpoint information */
9
+ export interface RemoteInfo {
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
+ }
30
+ //# sourceMappingURL=transport.d.ts.map
@@ -0,0 +1 @@
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 ADDED
@@ -0,0 +1,9 @@
1
+ /**
2
+ * Transport abstraction for LIFX LAN protocol
3
+ * Allows different implementations:
4
+ * - UDP (current: rmfudp)
5
+ * - HTTP (future: for web/browser support)
6
+ * - WebSocket (future: bidirectional web support)
7
+ */
8
+ export {};
9
+ //# sourceMappingURL=transport.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"transport.js","sourceRoot":"","sources":["transport.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG"}
package/types.d.ts CHANGED
@@ -3,6 +3,12 @@ import { HSBK } from '@bobfrankston/colorlib';
3
3
  export declare const MessageType: {
4
4
  readonly GetService: 2;
5
5
  readonly StateService: 3;
6
+ readonly GetHostInfo: 12;
7
+ readonly StateHostInfo: 13;
8
+ readonly GetHostFirmware: 14;
9
+ readonly StateHostFirmware: 15;
10
+ readonly GetWifiInfo: 16;
11
+ readonly StateWifiInfo: 17;
6
12
  readonly GetPower: 20;
7
13
  readonly SetPower: 21;
8
14
  readonly StatePower: 22;
@@ -11,6 +17,8 @@ export declare const MessageType: {
11
17
  readonly StateLabel: 25;
12
18
  readonly GetVersion: 32;
13
19
  readonly StateVersion: 33;
20
+ readonly GetInfo: 34;
21
+ readonly StateInfo: 35;
14
22
  readonly GetLocation: 48;
15
23
  readonly SetLocation: 49;
16
24
  readonly StateLocation: 50;
@@ -54,6 +62,11 @@ export interface DeviceState {
54
62
  location: GroupInfo;
55
63
  vendor: number;
56
64
  product: number;
65
+ firmwareVersion?: number;
66
+ signal?: number;
67
+ rssi?: number;
68
+ uptime?: number;
69
+ downtime?: number;
57
70
  }
58
71
  /** LIFX port */
59
72
  export declare const LIFX_PORT = 56700;
package/types.d.ts.map CHANGED
@@ -1 +1 @@
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;;;;;;;;;;;;;;;;;;;;CAoBd,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;CACnB;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"}
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 CHANGED
@@ -2,6 +2,12 @@
2
2
  export const MessageType = {
3
3
  GetService: 2,
4
4
  StateService: 3,
5
+ GetHostInfo: 12,
6
+ StateHostInfo: 13,
7
+ GetHostFirmware: 14,
8
+ StateHostFirmware: 15,
9
+ GetWifiInfo: 16,
10
+ StateWifiInfo: 17,
5
11
  GetPower: 20,
6
12
  SetPower: 21,
7
13
  StatePower: 22,
@@ -10,6 +16,8 @@ export const MessageType = {
10
16
  StateLabel: 25,
11
17
  GetVersion: 32,
12
18
  StateVersion: 33,
19
+ GetInfo: 34,
20
+ StateInfo: 35,
13
21
  GetLocation: 48,
14
22
  SetLocation: 49,
15
23
  StateLocation: 50,
package/types.js.map CHANGED
@@ -1 +1 @@
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,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,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;AAyCX,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"}
1
+ {"version":3,"file":"types.js","sourceRoot":"","sources":["types.ts"],"names":[],"mappings":"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"}
@@ -1,13 +0,0 @@
1
- {
2
- "permissions": {
3
- "allow": [
4
- "Bash(npm install:*)",
5
- "Bash(tsc:*)",
6
- "Bash(git init:*)",
7
- "Bash(git add:*)",
8
- "Bash(git commit:*)",
9
- "Bash(gh repo create:*)",
10
- "Bash(npm publish:*)"
11
- ]
12
- }
13
- }