amaran-light-cli 1.0.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/LICENSE +22 -0
- package/README.md +374 -0
- package/dist/__tests__/autoCct.test.d.ts +2 -0
- package/dist/__tests__/autoCct.test.d.ts.map +1 -0
- package/dist/__tests__/autoCct.test.js +65 -0
- package/dist/__tests__/autoCct.test.js.map +1 -0
- package/dist/__tests__/cctUtil.test.d.ts +2 -0
- package/dist/__tests__/cctUtil.test.d.ts.map +1 -0
- package/dist/__tests__/cctUtil.test.js +195 -0
- package/dist/__tests__/cctUtil.test.js.map +1 -0
- package/dist/__tests__/cli.smoke.test.d.ts +2 -0
- package/dist/__tests__/cli.smoke.test.d.ts.map +1 -0
- package/dist/__tests__/cli.smoke.test.js +18 -0
- package/dist/__tests__/cli.smoke.test.js.map +1 -0
- package/dist/__tests__/intensityApi.test.d.ts +2 -0
- package/dist/__tests__/intensityApi.test.d.ts.map +1 -0
- package/dist/__tests__/intensityApi.test.js +105 -0
- package/dist/__tests__/intensityApi.test.js.map +1 -0
- package/dist/__tests__/lightControl.test.d.ts +2 -0
- package/dist/__tests__/lightControl.test.d.ts.map +1 -0
- package/dist/__tests__/lightControl.test.js +185 -0
- package/dist/__tests__/lightControl.test.js.map +1 -0
- package/dist/cctUtil.d.ts +26 -0
- package/dist/cctUtil.d.ts.map +1 -0
- package/dist/cctUtil.js +93 -0
- package/dist/cctUtil.js.map +1 -0
- package/dist/cli.d.ts +10 -0
- package/dist/cli.d.ts.map +1 -0
- package/dist/cli.js +274 -0
- package/dist/cli.js.map +1 -0
- package/dist/commands/autoCct.d.ts +5 -0
- package/dist/commands/autoCct.d.ts.map +1 -0
- package/dist/commands/autoCct.js +270 -0
- package/dist/commands/autoCct.js.map +1 -0
- package/dist/commands/cct.d.ts +5 -0
- package/dist/commands/cct.d.ts.map +1 -0
- package/dist/commands/cct.js +68 -0
- package/dist/commands/cct.js.map +1 -0
- package/dist/commands/color.d.ts +5 -0
- package/dist/commands/color.d.ts.map +1 -0
- package/dist/commands/color.js +63 -0
- package/dist/commands/color.js.map +1 -0
- package/dist/commands/discover.d.ts +5 -0
- package/dist/commands/discover.d.ts.map +1 -0
- package/dist/commands/discover.js +30 -0
- package/dist/commands/discover.js.map +1 -0
- package/dist/commands/hsi.d.ts +5 -0
- package/dist/commands/hsi.d.ts.map +1 -0
- package/dist/commands/hsi.js +65 -0
- package/dist/commands/hsi.js.map +1 -0
- package/dist/commands/intensity.d.ts +5 -0
- package/dist/commands/intensity.d.ts.map +1 -0
- package/dist/commands/intensity.js +56 -0
- package/dist/commands/intensity.js.map +1 -0
- package/dist/commands/list.d.ts +5 -0
- package/dist/commands/list.d.ts.map +1 -0
- package/dist/commands/list.js +36 -0
- package/dist/commands/list.js.map +1 -0
- package/dist/commands/power.d.ts +5 -0
- package/dist/commands/power.d.ts.map +1 -0
- package/dist/commands/power.js +126 -0
- package/dist/commands/power.js.map +1 -0
- package/dist/commands/schedule.d.ts +5 -0
- package/dist/commands/schedule.d.ts.map +1 -0
- package/dist/commands/schedule.js +188 -0
- package/dist/commands/schedule.js.map +1 -0
- package/dist/commands/service.d.ts +5 -0
- package/dist/commands/service.d.ts.map +1 -0
- package/dist/commands/service.js +350 -0
- package/dist/commands/service.js.map +1 -0
- package/dist/commands/status.d.ts +5 -0
- package/dist/commands/status.d.ts.map +1 -0
- package/dist/commands/status.js +54 -0
- package/dist/commands/status.js.map +1 -0
- package/dist/commands.d.ts +5 -0
- package/dist/commands.d.ts.map +1 -0
- package/dist/commands.js +31 -0
- package/dist/commands.js.map +1 -0
- package/dist/discovery.d.ts +13 -0
- package/dist/discovery.d.ts.map +1 -0
- package/dist/discovery.js +130 -0
- package/dist/discovery.js.map +1 -0
- package/dist/geoipUtil.d.ts +8 -0
- package/dist/geoipUtil.d.ts.map +1 -0
- package/dist/geoipUtil.js +26 -0
- package/dist/geoipUtil.js.map +1 -0
- package/dist/lightControl.d.ts +114 -0
- package/dist/lightControl.d.ts.map +1 -0
- package/dist/lightControl.js +385 -0
- package/dist/lightControl.js.map +1 -0
- package/dist/types.d.ts +37 -0
- package/dist/types.d.ts.map +1 -0
- package/dist/types.js +3 -0
- package/dist/types.js.map +1 -0
- package/package.json +75 -0
- package/scripts/create-launchd-service.sh +114 -0
- package/scripts/run-auto-cct.sh +43 -0
|
@@ -0,0 +1,68 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
3
|
+
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
4
|
+
};
|
|
5
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
6
|
+
exports.registerCct = registerCct;
|
|
7
|
+
const chalk_1 = __importDefault(require("chalk"));
|
|
8
|
+
function registerCct(program, deps) {
|
|
9
|
+
const { createController, findDevice, asyncCommand } = deps;
|
|
10
|
+
program
|
|
11
|
+
.command('cct <temperature> [device]')
|
|
12
|
+
.description('Set color temperature in Kelvin (2000-6500). Omit device or use "all" to set all lights.')
|
|
13
|
+
.option('-i, --intensity <value>', 'Also set intensity (0-100)')
|
|
14
|
+
.option('-u, --url <url>', 'WebSocket URL')
|
|
15
|
+
.option('-c, --client-id <id>', 'Client ID')
|
|
16
|
+
.option('-d, --debug', 'Enable debug mode')
|
|
17
|
+
.action(asyncCommand(async (tempStr, deviceQuery, options) => {
|
|
18
|
+
const temperature = parseInt(tempStr, 10);
|
|
19
|
+
if (Number.isNaN(temperature) || temperature < 2000 || temperature > 6500) {
|
|
20
|
+
console.error(chalk_1.default.red('Temperature must be between 2000K and 6500K'));
|
|
21
|
+
process.exit(1);
|
|
22
|
+
}
|
|
23
|
+
let intensity;
|
|
24
|
+
if (options.intensity) {
|
|
25
|
+
intensity = parseInt(options.intensity, 10);
|
|
26
|
+
if (Number.isNaN(intensity) || intensity < 0 || intensity > 100) {
|
|
27
|
+
console.error(chalk_1.default.red('Intensity must be a number between 0 and 100'));
|
|
28
|
+
process.exit(1);
|
|
29
|
+
}
|
|
30
|
+
intensity = intensity * 10;
|
|
31
|
+
}
|
|
32
|
+
const controller = await createController(options.url, options.clientId, options.debug);
|
|
33
|
+
if (!deviceQuery || deviceQuery.toLowerCase() === 'all') {
|
|
34
|
+
await controller.setCCTAndIntensityForAllLights(temperature, intensity, (success, message) => {
|
|
35
|
+
if (!success) {
|
|
36
|
+
console.error(chalk_1.default.red(`✗ Failed to set temperature: ${message}`));
|
|
37
|
+
}
|
|
38
|
+
});
|
|
39
|
+
await controller.disconnect();
|
|
40
|
+
return;
|
|
41
|
+
}
|
|
42
|
+
const device = findDevice(controller, deviceQuery);
|
|
43
|
+
if (!device) {
|
|
44
|
+
console.error(chalk_1.default.red(`Device "${deviceQuery}" not found`));
|
|
45
|
+
process.exit(1);
|
|
46
|
+
}
|
|
47
|
+
if (!device.node_id) {
|
|
48
|
+
console.error(chalk_1.default.red(`Device "${deviceQuery}" has no node_id`));
|
|
49
|
+
process.exit(1);
|
|
50
|
+
}
|
|
51
|
+
controller.setCCT(device.node_id, temperature, intensity, (success, message) => {
|
|
52
|
+
if (success) {
|
|
53
|
+
const displayName = device.device_name || device.name || device.id || device.node_id || 'Unknown';
|
|
54
|
+
let msg = `✓ ${displayName} temperature set to ${temperature}K`;
|
|
55
|
+
if (intensity !== undefined) {
|
|
56
|
+
msg += ` at ${intensity / 10}% intensity`;
|
|
57
|
+
}
|
|
58
|
+
console.log(chalk_1.default.green(msg));
|
|
59
|
+
}
|
|
60
|
+
else {
|
|
61
|
+
console.error(chalk_1.default.red(`✗ Failed to set temperature: ${message}`));
|
|
62
|
+
}
|
|
63
|
+
controller.disconnect();
|
|
64
|
+
});
|
|
65
|
+
}));
|
|
66
|
+
}
|
|
67
|
+
exports.default = registerCct;
|
|
68
|
+
//# sourceMappingURL=cct.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"cct.js","sourceRoot":"","sources":["../../src/commands/cct.ts"],"names":[],"mappings":";;;;;AAIA,kCAgFC;AApFD,kDAA0B;AAI1B,SAAgB,WAAW,CAAC,OAAgB,EAAE,IAAiB;IAC7D,MAAM,EAAE,gBAAgB,EAAE,UAAU,EAAE,YAAY,EAAE,GAAG,IAAI,CAAC;IAE5D,OAAO;SACJ,OAAO,CAAC,4BAA4B,CAAC;SACrC,WAAW,CACV,0FAA0F,CAC3F;SACA,MAAM,CAAC,yBAAyB,EAAE,4BAA4B,CAAC;SAC/D,MAAM,CAAC,iBAAiB,EAAE,eAAe,CAAC;SAC1C,MAAM,CAAC,sBAAsB,EAAE,WAAW,CAAC;SAC3C,MAAM,CAAC,aAAa,EAAE,mBAAmB,CAAC;SAC1C,MAAM,CACL,YAAY,CACV,KAAK,EAAE,OAAe,EAAE,WAA+B,EAAE,OAAuB,EAAE,EAAE;QAClF,MAAM,WAAW,GAAG,QAAQ,CAAC,OAAO,EAAE,EAAE,CAAC,CAAC;QAC1C,IAAI,MAAM,CAAC,KAAK,CAAC,WAAW,CAAC,IAAI,WAAW,GAAG,IAAI,IAAI,WAAW,GAAG,IAAI,EAAE,CAAC;YAC1E,OAAO,CAAC,KAAK,CAAC,eAAK,CAAC,GAAG,CAAC,6CAA6C,CAAC,CAAC,CAAC;YACxE,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;QAClB,CAAC;QAED,IAAI,SAA6B,CAAC;QAClC,IAAI,OAAO,CAAC,SAAS,EAAE,CAAC;YACtB,SAAS,GAAG,QAAQ,CAAC,OAAO,CAAC,SAAS,EAAE,EAAE,CAAC,CAAC;YAC5C,IAAI,MAAM,CAAC,KAAK,CAAC,SAAS,CAAC,IAAI,SAAS,GAAG,CAAC,IAAI,SAAS,GAAG,GAAG,EAAE,CAAC;gBAChE,OAAO,CAAC,KAAK,CAAC,eAAK,CAAC,GAAG,CAAC,8CAA8C,CAAC,CAAC,CAAC;gBACzE,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;YAClB,CAAC;YACD,SAAS,GAAG,SAAS,GAAG,EAAE,CAAC;QAC7B,CAAC;QAED,MAAM,UAAU,GAAG,MAAM,gBAAgB,CAAC,OAAO,CAAC,GAAG,EAAE,OAAO,CAAC,QAAQ,EAAE,OAAO,CAAC,KAAK,CAAC,CAAC;QAExF,IAAI,CAAC,WAAW,IAAI,WAAW,CAAC,WAAW,EAAE,KAAK,KAAK,EAAE,CAAC;YACxD,MAAM,UAAU,CAAC,8BAA8B,CAC7C,WAAW,EACX,SAAS,EACT,CAAC,OAAgB,EAAE,OAAe,EAAE,EAAE;gBACpC,IAAI,CAAC,OAAO,EAAE,CAAC;oBACb,OAAO,CAAC,KAAK,CAAC,eAAK,CAAC,GAAG,CAAC,gCAAgC,OAAO,EAAE,CAAC,CAAC,CAAC;gBACtE,CAAC;YACH,CAAC,CACF,CAAC;YACF,MAAM,UAAU,CAAC,UAAU,EAAE,CAAC;YAC9B,OAAO;QACT,CAAC;QAED,MAAM,MAAM,GAAG,UAAU,CAAC,UAAU,EAAE,WAAW,CAAC,CAAC;QACnD,IAAI,CAAC,MAAM,EAAE,CAAC;YACZ,OAAO,CAAC,KAAK,CAAC,eAAK,CAAC,GAAG,CAAC,WAAW,WAAW,aAAa,CAAC,CAAC,CAAC;YAC9D,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;QAClB,CAAC;QAED,IAAI,CAAC,MAAM,CAAC,OAAO,EAAE,CAAC;YACpB,OAAO,CAAC,KAAK,CAAC,eAAK,CAAC,GAAG,CAAC,WAAW,WAAW,kBAAkB,CAAC,CAAC,CAAC;YACnE,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;QAClB,CAAC;QAED,UAAU,CAAC,MAAM,CACf,MAAM,CAAC,OAAO,EACd,WAAW,EACX,SAAS,EACT,CAAC,OAAgB,EAAE,OAAe,EAAE,EAAE;YACpC,IAAI,OAAO,EAAE,CAAC;gBACZ,MAAM,WAAW,GACf,MAAM,CAAC,WAAW,IAAI,MAAM,CAAC,IAAI,IAAI,MAAM,CAAC,EAAE,IAAI,MAAM,CAAC,OAAO,IAAI,SAAS,CAAC;gBAChF,IAAI,GAAG,GAAG,KAAK,WAAW,uBAAuB,WAAW,GAAG,CAAC;gBAChE,IAAI,SAAS,KAAK,SAAS,EAAE,CAAC;oBAC5B,GAAG,IAAI,OAAO,SAAS,GAAG,EAAE,aAAa,CAAC;gBAC5C,CAAC;gBACD,OAAO,CAAC,GAAG,CAAC,eAAK,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC;YAChC,CAAC;iBAAM,CAAC;gBACN,OAAO,CAAC,KAAK,CAAC,eAAK,CAAC,GAAG,CAAC,gCAAgC,OAAO,EAAE,CAAC,CAAC,CAAC;YACtE,CAAC;YACD,UAAU,CAAC,UAAU,EAAE,CAAC;QAC1B,CAAC,CACF,CAAC;IACJ,CAAC,CACF,CACF,CAAC;AACN,CAAC;AAED,kBAAe,WAAW,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"color.d.ts","sourceRoot":"","sources":["../../src/commands/color.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AACzC,OAAO,KAAK,EAAE,WAAW,EAAkB,MAAM,UAAU,CAAC;AAE5D,wBAAgB,aAAa,CAAC,OAAO,EAAE,OAAO,EAAE,IAAI,EAAE,WAAW,QA0EhE;AAED,eAAe,aAAa,CAAC"}
|
|
@@ -0,0 +1,63 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
3
|
+
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
4
|
+
};
|
|
5
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
6
|
+
exports.registerColor = registerColor;
|
|
7
|
+
const chalk_1 = __importDefault(require("chalk"));
|
|
8
|
+
function registerColor(program, deps) {
|
|
9
|
+
const { createController, findDevice, asyncCommand } = deps;
|
|
10
|
+
program
|
|
11
|
+
.command('color <color> [device]')
|
|
12
|
+
.description('Set color by name or hex code (e.g., "red", "#ff0000"). Omit device or use "all" to set all lights.')
|
|
13
|
+
.option('-i, --intensity <value>', 'Set intensity (0-100)')
|
|
14
|
+
.option('-u, --url <url>', 'WebSocket URL')
|
|
15
|
+
.option('-c, --client-id <id>', 'Client ID')
|
|
16
|
+
.option('-d, --debug', 'Enable debug mode')
|
|
17
|
+
.action(asyncCommand(async (color, deviceQuery, options) => {
|
|
18
|
+
let intensity;
|
|
19
|
+
if (options.intensity) {
|
|
20
|
+
intensity = parseInt(options.intensity, 10);
|
|
21
|
+
if (Number.isNaN(intensity) || intensity < 0 || intensity > 100) {
|
|
22
|
+
console.error(chalk_1.default.red('Intensity must be a number between 0 and 100'));
|
|
23
|
+
process.exit(1);
|
|
24
|
+
}
|
|
25
|
+
intensity = intensity * 10;
|
|
26
|
+
}
|
|
27
|
+
const controller = await createController(options.url, options.clientId, options.debug);
|
|
28
|
+
if (!deviceQuery || deviceQuery.toLowerCase() === 'all') {
|
|
29
|
+
await controller.setColorForAllLights(color, intensity, (success, message) => {
|
|
30
|
+
if (!success) {
|
|
31
|
+
console.error(chalk_1.default.red(`✗ Failed to set color: ${message}`));
|
|
32
|
+
}
|
|
33
|
+
});
|
|
34
|
+
await controller.disconnect();
|
|
35
|
+
return;
|
|
36
|
+
}
|
|
37
|
+
const device = findDevice(controller, deviceQuery);
|
|
38
|
+
if (!device) {
|
|
39
|
+
console.error(chalk_1.default.red(`Device "${deviceQuery}" not found`));
|
|
40
|
+
process.exit(1);
|
|
41
|
+
}
|
|
42
|
+
if (!device.node_id) {
|
|
43
|
+
console.error(chalk_1.default.red(`Device "${deviceQuery}" has no node_id`));
|
|
44
|
+
process.exit(1);
|
|
45
|
+
}
|
|
46
|
+
controller.setColor(device.node_id, color, intensity, (success, message) => {
|
|
47
|
+
if (success) {
|
|
48
|
+
const displayName = device.device_name || device.name || device.id || device.node_id || 'Unknown';
|
|
49
|
+
let msg = `✓ ${displayName} color set to ${color}`;
|
|
50
|
+
if (intensity !== undefined) {
|
|
51
|
+
msg += ` at ${intensity / 10}% intensity`;
|
|
52
|
+
}
|
|
53
|
+
console.log(chalk_1.default.green(msg));
|
|
54
|
+
}
|
|
55
|
+
else {
|
|
56
|
+
console.error(chalk_1.default.red(`✗ Failed to set color: ${message}`));
|
|
57
|
+
}
|
|
58
|
+
controller.disconnect();
|
|
59
|
+
});
|
|
60
|
+
}));
|
|
61
|
+
}
|
|
62
|
+
exports.default = registerColor;
|
|
63
|
+
//# sourceMappingURL=color.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"color.js","sourceRoot":"","sources":["../../src/commands/color.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"discover.d.ts","sourceRoot":"","sources":["../../src/commands/discover.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AAEzC,OAAO,KAAK,EAAE,WAAW,EAAkB,MAAM,UAAU,CAAC;AAE5D,wBAAgB,gBAAgB,CAAC,OAAO,EAAE,OAAO,EAAE,IAAI,EAAE,WAAW,QAqBnE;AAED,eAAe,gBAAgB,CAAC"}
|
|
@@ -0,0 +1,30 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
3
|
+
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
4
|
+
};
|
|
5
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
6
|
+
exports.registerDiscover = registerDiscover;
|
|
7
|
+
const chalk_1 = __importDefault(require("chalk"));
|
|
8
|
+
const discovery_1 = require("../discovery");
|
|
9
|
+
function registerDiscover(program, deps) {
|
|
10
|
+
const { asyncCommand, saveWsUrl } = deps;
|
|
11
|
+
program
|
|
12
|
+
.command('discover')
|
|
13
|
+
.description('Discover local Amaran WebSocket endpoint')
|
|
14
|
+
.option('-d, --debug', 'Enable debug output')
|
|
15
|
+
.action(asyncCommand(async (options) => {
|
|
16
|
+
const res = await (0, discovery_1.discoverLocalWebSocket)('127.0.0.1', !!options.debug);
|
|
17
|
+
if (res) {
|
|
18
|
+
console.log(chalk_1.default.green(`Found WebSocket: ${res.url} (process: ${res.process})`));
|
|
19
|
+
if (saveWsUrl) {
|
|
20
|
+
saveWsUrl(res.url);
|
|
21
|
+
console.log(chalk_1.default.green('Saved to configuration.'));
|
|
22
|
+
}
|
|
23
|
+
}
|
|
24
|
+
else {
|
|
25
|
+
console.log(chalk_1.default.yellow('No local Amaran WebSocket found via lsof'));
|
|
26
|
+
}
|
|
27
|
+
}));
|
|
28
|
+
}
|
|
29
|
+
exports.default = registerDiscover;
|
|
30
|
+
//# sourceMappingURL=discover.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"discover.js","sourceRoot":"","sources":["../../src/commands/discover.ts"],"names":[],"mappings":";;;;;AAKA,4CAqBC;AA1BD,kDAA0B;AAE1B,4CAAsD;AAGtD,SAAgB,gBAAgB,CAAC,OAAgB,EAAE,IAAiB;IAClE,MAAM,EAAE,YAAY,EAAE,SAAS,EAAE,GAAG,IAAI,CAAC;IAEzC,OAAO;SACJ,OAAO,CAAC,UAAU,CAAC;SACnB,WAAW,CAAC,0CAA0C,CAAC;SACvD,MAAM,CAAC,aAAa,EAAE,qBAAqB,CAAC;SAC5C,MAAM,CACL,YAAY,CAAC,KAAK,EAAE,OAAuB,EAAE,EAAE;QAC7C,MAAM,GAAG,GAAG,MAAM,IAAA,kCAAsB,EAAC,WAAW,EAAE,CAAC,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC;QACvE,IAAI,GAAG,EAAE,CAAC;YACR,OAAO,CAAC,GAAG,CAAC,eAAK,CAAC,KAAK,CAAC,oBAAoB,GAAG,CAAC,GAAG,cAAc,GAAG,CAAC,OAAO,GAAG,CAAC,CAAC,CAAC;YAClF,IAAI,SAAS,EAAE,CAAC;gBACd,SAAS,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC;gBACnB,OAAO,CAAC,GAAG,CAAC,eAAK,CAAC,KAAK,CAAC,yBAAyB,CAAC,CAAC,CAAC;YACtD,CAAC;QACH,CAAC;aAAM,CAAC;YACN,OAAO,CAAC,GAAG,CAAC,eAAK,CAAC,MAAM,CAAC,0CAA0C,CAAC,CAAC,CAAC;QACxE,CAAC;IACH,CAAC,CAAC,CACH,CAAC;AACN,CAAC;AAED,kBAAe,gBAAgB,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"hsi.d.ts","sourceRoot":"","sources":["../../src/commands/hsi.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AACzC,OAAO,KAAK,EAAE,WAAW,EAAkB,MAAM,UAAU,CAAC;AAE5D,wBAAgB,WAAW,CAAC,OAAO,EAAE,OAAO,EAAE,IAAI,EAAE,WAAW,QA8F9D;AAED,eAAe,WAAW,CAAC"}
|
|
@@ -0,0 +1,65 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
3
|
+
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
4
|
+
};
|
|
5
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
6
|
+
exports.registerHsi = registerHsi;
|
|
7
|
+
const chalk_1 = __importDefault(require("chalk"));
|
|
8
|
+
function registerHsi(program, deps) {
|
|
9
|
+
const { createController, findDevice, asyncCommand } = deps;
|
|
10
|
+
program
|
|
11
|
+
.command('hsi <hue> <saturation> <intensity> [device]')
|
|
12
|
+
.description('Set HSI color (hue: 0-360, saturation: 0-100, intensity: 0-100). Omit device or use "all" to set all lights.')
|
|
13
|
+
.option('-u, --url <url>', 'WebSocket URL')
|
|
14
|
+
.option('-c, --client-id <id>', 'Client ID')
|
|
15
|
+
.option('-d, --debug', 'Enable debug mode')
|
|
16
|
+
.action(asyncCommand(async (hueStr, satStr, intStr, deviceQuery, options) => {
|
|
17
|
+
const hue = parseInt(hueStr, 10);
|
|
18
|
+
const saturation = parseInt(satStr, 10);
|
|
19
|
+
const intensity = parseInt(intStr, 10);
|
|
20
|
+
if (Number.isNaN(hue) || hue < 0 || hue > 360) {
|
|
21
|
+
console.error(chalk_1.default.red('Hue must be between 0 and 360'));
|
|
22
|
+
process.exit(1);
|
|
23
|
+
}
|
|
24
|
+
if (Number.isNaN(saturation) || saturation < 0 || saturation > 100) {
|
|
25
|
+
console.error(chalk_1.default.red('Saturation must be between 0 and 100'));
|
|
26
|
+
process.exit(1);
|
|
27
|
+
}
|
|
28
|
+
if (Number.isNaN(intensity) || intensity < 0 || intensity > 100) {
|
|
29
|
+
console.error(chalk_1.default.red('Intensity must be between 0 and 100'));
|
|
30
|
+
process.exit(1);
|
|
31
|
+
}
|
|
32
|
+
const apiIntensity = intensity * 10;
|
|
33
|
+
const controller = await createController(options.url, options.clientId, options.debug);
|
|
34
|
+
if (!deviceQuery || deviceQuery.toLowerCase() === 'all') {
|
|
35
|
+
await controller.setHSIForAllLights(hue, saturation, apiIntensity, undefined, undefined, (success, message) => {
|
|
36
|
+
if (!success) {
|
|
37
|
+
console.error(chalk_1.default.red(`✗ Failed to set HSI color: ${message}`));
|
|
38
|
+
}
|
|
39
|
+
});
|
|
40
|
+
await controller.disconnect();
|
|
41
|
+
return;
|
|
42
|
+
}
|
|
43
|
+
const device = findDevice(controller, deviceQuery);
|
|
44
|
+
if (!device) {
|
|
45
|
+
console.error(chalk_1.default.red(`Device "${deviceQuery}" not found`));
|
|
46
|
+
process.exit(1);
|
|
47
|
+
}
|
|
48
|
+
if (!device.node_id) {
|
|
49
|
+
console.error(chalk_1.default.red(`Device "${deviceQuery}" has no node_id`));
|
|
50
|
+
process.exit(1);
|
|
51
|
+
}
|
|
52
|
+
controller.setHSI(device.node_id, hue, saturation, apiIntensity, undefined, undefined, (success, message) => {
|
|
53
|
+
if (success) {
|
|
54
|
+
const displayName = device.device_name || device.name || device.id || device.node_id || 'Unknown';
|
|
55
|
+
console.log(chalk_1.default.green(`✓ ${displayName} color set to H:${hue} S:${saturation} I:${intensity}`));
|
|
56
|
+
}
|
|
57
|
+
else {
|
|
58
|
+
console.error(chalk_1.default.red(`✗ Failed to set HSI color: ${message}`));
|
|
59
|
+
}
|
|
60
|
+
controller.disconnect();
|
|
61
|
+
});
|
|
62
|
+
}));
|
|
63
|
+
}
|
|
64
|
+
exports.default = registerHsi;
|
|
65
|
+
//# sourceMappingURL=hsi.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"hsi.js","sourceRoot":"","sources":["../../src/commands/hsi.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"intensity.d.ts","sourceRoot":"","sources":["../../src/commands/intensity.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AACzC,OAAO,KAAK,EAAE,WAAW,EAAkB,MAAM,UAAU,CAAC;AAE5D,wBAAgB,iBAAiB,CAAC,OAAO,EAAE,OAAO,EAAE,IAAI,EAAE,WAAW,QAgEpE;AAED,eAAe,iBAAiB,CAAC"}
|
|
@@ -0,0 +1,56 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
3
|
+
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
4
|
+
};
|
|
5
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
6
|
+
exports.registerIntensity = registerIntensity;
|
|
7
|
+
const chalk_1 = __importDefault(require("chalk"));
|
|
8
|
+
function registerIntensity(program, deps) {
|
|
9
|
+
const { createController, findDevice, asyncCommand } = deps;
|
|
10
|
+
program
|
|
11
|
+
.command('intensity <value> [device]')
|
|
12
|
+
.description('Set light intensity (0-100). Omit device or use "all" to set all lights.')
|
|
13
|
+
.option('-u, --url <url>', 'WebSocket URL')
|
|
14
|
+
.option('-c, --client-id <id>', 'Client ID')
|
|
15
|
+
.option('-d, --debug', 'Enable debug mode')
|
|
16
|
+
.action(asyncCommand(async (intensityStr, deviceQuery, options) => {
|
|
17
|
+
const intensity = parseInt(intensityStr, 10);
|
|
18
|
+
if (Number.isNaN(intensity) || intensity < 0 || intensity > 100) {
|
|
19
|
+
console.error(chalk_1.default.red('Intensity must be a number between 0 and 100'));
|
|
20
|
+
process.exit(1);
|
|
21
|
+
}
|
|
22
|
+
const controller = await createController(options.url, options.clientId, options.debug);
|
|
23
|
+
// Convert 0-100 user input to 0-1000 API range
|
|
24
|
+
const apiIntensity = intensity * 10;
|
|
25
|
+
if (!deviceQuery || deviceQuery.toLowerCase() === 'all') {
|
|
26
|
+
await controller.setIntensityForAllLights(apiIntensity, (success, message) => {
|
|
27
|
+
if (!success) {
|
|
28
|
+
console.error(chalk_1.default.red(`✗ Failed to set intensity: ${message}`));
|
|
29
|
+
}
|
|
30
|
+
});
|
|
31
|
+
await controller.disconnect();
|
|
32
|
+
return;
|
|
33
|
+
}
|
|
34
|
+
const device = findDevice(controller, deviceQuery);
|
|
35
|
+
if (!device) {
|
|
36
|
+
console.error(chalk_1.default.red(`Device "${deviceQuery}" not found`));
|
|
37
|
+
process.exit(1);
|
|
38
|
+
}
|
|
39
|
+
if (!device.node_id) {
|
|
40
|
+
console.error(chalk_1.default.red(`Device "${deviceQuery}" has no node_id`));
|
|
41
|
+
process.exit(1);
|
|
42
|
+
}
|
|
43
|
+
controller.setIntensity(device.node_id, apiIntensity, (success, message) => {
|
|
44
|
+
if (success) {
|
|
45
|
+
const displayName = device.device_name || device.name || device.id || device.node_id || 'Unknown';
|
|
46
|
+
console.log(chalk_1.default.green(`✓ ${displayName} intensity set to ${intensity}%`));
|
|
47
|
+
}
|
|
48
|
+
else {
|
|
49
|
+
console.error(chalk_1.default.red(`✗ Failed to set intensity: ${message}`));
|
|
50
|
+
}
|
|
51
|
+
controller.disconnect();
|
|
52
|
+
});
|
|
53
|
+
}));
|
|
54
|
+
}
|
|
55
|
+
exports.default = registerIntensity;
|
|
56
|
+
//# sourceMappingURL=intensity.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"intensity.js","sourceRoot":"","sources":["../../src/commands/intensity.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"list.d.ts","sourceRoot":"","sources":["../../src/commands/list.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AACzC,OAAO,KAAK,EAAE,WAAW,EAAkB,MAAM,UAAU,CAAC;AAE5D,wBAAgB,YAAY,CAAC,OAAO,EAAE,OAAO,EAAE,IAAI,EAAE,WAAW,QAoC/D;AAED,eAAe,YAAY,CAAC"}
|
|
@@ -0,0 +1,36 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
3
|
+
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
4
|
+
};
|
|
5
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
6
|
+
exports.registerList = registerList;
|
|
7
|
+
const chalk_1 = __importDefault(require("chalk"));
|
|
8
|
+
function registerList(program, deps) {
|
|
9
|
+
const { createController, asyncCommand } = deps;
|
|
10
|
+
program
|
|
11
|
+
.command('list')
|
|
12
|
+
.alias('ls')
|
|
13
|
+
.description('List all available lights')
|
|
14
|
+
.option('-u, --url <url>', 'WebSocket URL')
|
|
15
|
+
.option('-c, --client-id <id>', 'Client ID')
|
|
16
|
+
.option('-d, --debug', 'Enable debug mode')
|
|
17
|
+
.action(asyncCommand(async (options) => {
|
|
18
|
+
const controller = await createController(options.url, options.clientId, options.debug);
|
|
19
|
+
const devices = controller.getDevices();
|
|
20
|
+
if (devices.length === 0) {
|
|
21
|
+
console.log(chalk_1.default.yellow('No devices found'));
|
|
22
|
+
return;
|
|
23
|
+
}
|
|
24
|
+
console.log(chalk_1.default.blue('Available lights:'));
|
|
25
|
+
devices.forEach((device, index) => {
|
|
26
|
+
const displayName = device.device_name || device.name || device.id || device.node_id || 'Unknown';
|
|
27
|
+
console.log(`${index + 1}. ${chalk_1.default.green(displayName)} (${chalk_1.default.gray(device.node_id || device.id || '?')})`);
|
|
28
|
+
if (device.device_type) {
|
|
29
|
+
console.log(` Type: ${device.device_type}`);
|
|
30
|
+
}
|
|
31
|
+
});
|
|
32
|
+
await controller.disconnect();
|
|
33
|
+
}));
|
|
34
|
+
}
|
|
35
|
+
exports.default = registerList;
|
|
36
|
+
//# sourceMappingURL=list.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"list.js","sourceRoot":"","sources":["../../src/commands/list.ts"],"names":[],"mappings":";;;;;AAIA,oCAoCC;AAxCD,kDAA0B;AAI1B,SAAgB,YAAY,CAAC,OAAgB,EAAE,IAAiB;IAC9D,MAAM,EAAE,gBAAgB,EAAE,YAAY,EAAE,GAAG,IAAI,CAAC;IAEhD,OAAO;SACJ,OAAO,CAAC,MAAM,CAAC;SACf,KAAK,CAAC,IAAI,CAAC;SACX,WAAW,CAAC,2BAA2B,CAAC;SACxC,MAAM,CAAC,iBAAiB,EAAE,eAAe,CAAC;SAC1C,MAAM,CAAC,sBAAsB,EAAE,WAAW,CAAC;SAC3C,MAAM,CAAC,aAAa,EAAE,mBAAmB,CAAC;SAC1C,MAAM,CACL,YAAY,CAAC,KAAK,EAAE,OAAuB,EAAE,EAAE;QAC7C,MAAM,UAAU,GAAG,MAAM,gBAAgB,CAAC,OAAO,CAAC,GAAG,EAAE,OAAO,CAAC,QAAQ,EAAE,OAAO,CAAC,KAAK,CAAC,CAAC;QAExF,MAAM,OAAO,GAAG,UAAU,CAAC,UAAU,EAAE,CAAC;QAExC,IAAI,OAAO,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;YACzB,OAAO,CAAC,GAAG,CAAC,eAAK,CAAC,MAAM,CAAC,kBAAkB,CAAC,CAAC,CAAC;YAC9C,OAAO;QACT,CAAC;QAED,OAAO,CAAC,GAAG,CAAC,eAAK,CAAC,IAAI,CAAC,mBAAmB,CAAC,CAAC,CAAC;QAC7C,OAAO,CAAC,OAAO,CAAC,CAAC,MAAM,EAAE,KAAa,EAAE,EAAE;YACxC,MAAM,WAAW,GACf,MAAM,CAAC,WAAW,IAAI,MAAM,CAAC,IAAI,IAAI,MAAM,CAAC,EAAE,IAAI,MAAM,CAAC,OAAO,IAAI,SAAS,CAAC;YAChF,OAAO,CAAC,GAAG,CACT,GAAG,KAAK,GAAG,CAAC,KAAK,eAAK,CAAC,KAAK,CAAC,WAAW,CAAC,KAAK,eAAK,CAAC,IAAI,CAAC,MAAM,CAAC,OAAO,IAAI,MAAM,CAAC,EAAE,IAAI,GAAG,CAAC,GAAG,CAChG,CAAC;YACF,IAAI,MAAM,CAAC,WAAW,EAAE,CAAC;gBACvB,OAAO,CAAC,GAAG,CAAC,YAAY,MAAM,CAAC,WAAW,EAAE,CAAC,CAAC;YAChD,CAAC;QACH,CAAC,CAAC,CAAC;QAEH,MAAM,UAAU,CAAC,UAAU,EAAE,CAAC;IAChC,CAAC,CAAC,CACH,CAAC;AACN,CAAC;AAED,kBAAe,YAAY,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"power.d.ts","sourceRoot":"","sources":["../../src/commands/power.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AACzC,OAAO,KAAK,EAAE,WAAW,EAAkB,MAAM,UAAU,CAAC;AAE5D,wBAAgB,aAAa,CAAC,OAAO,EAAE,OAAO,EAAE,IAAI,EAAE,WAAW,QAyIhE;AAED,eAAe,aAAa,CAAC"}
|
|
@@ -0,0 +1,126 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
3
|
+
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
4
|
+
};
|
|
5
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
6
|
+
exports.registerPower = registerPower;
|
|
7
|
+
const chalk_1 = __importDefault(require("chalk"));
|
|
8
|
+
function registerPower(program, deps) {
|
|
9
|
+
const { createController, findDevice, asyncCommand } = deps;
|
|
10
|
+
// on
|
|
11
|
+
program
|
|
12
|
+
.command('on [device]')
|
|
13
|
+
.description('Turn a light on (or all lights if no device specified)')
|
|
14
|
+
.option('-u, --url <url>', 'WebSocket URL')
|
|
15
|
+
.option('-c, --client-id <id>', 'Client ID')
|
|
16
|
+
.option('-d, --debug', 'Enable debug mode')
|
|
17
|
+
.action(asyncCommand(async (deviceQuery, options) => {
|
|
18
|
+
const controller = await createController(options.url, options.clientId, options.debug);
|
|
19
|
+
if (!deviceQuery || deviceQuery.toLowerCase() === 'all') {
|
|
20
|
+
await controller.turnOnAllLights((success, message) => {
|
|
21
|
+
if (!success) {
|
|
22
|
+
console.error(chalk_1.default.red(`✗ Failed to turn on light: ${message}`));
|
|
23
|
+
}
|
|
24
|
+
});
|
|
25
|
+
await controller.disconnect();
|
|
26
|
+
return;
|
|
27
|
+
}
|
|
28
|
+
const device = findDevice(controller, deviceQuery);
|
|
29
|
+
if (!device) {
|
|
30
|
+
console.error(chalk_1.default.red(`Device "${deviceQuery}" not found`));
|
|
31
|
+
process.exit(1);
|
|
32
|
+
}
|
|
33
|
+
if (!device.node_id) {
|
|
34
|
+
console.error(chalk_1.default.red(`Device "${deviceQuery}" has no node_id`));
|
|
35
|
+
process.exit(1);
|
|
36
|
+
}
|
|
37
|
+
controller.turnLightOn(device.node_id, (success, message) => {
|
|
38
|
+
if (success) {
|
|
39
|
+
const displayName = device.device_name || device.name || device.id || device.node_id || 'Unknown';
|
|
40
|
+
console.log(chalk_1.default.green(`✓ ${displayName} turned on`));
|
|
41
|
+
}
|
|
42
|
+
else {
|
|
43
|
+
console.error(chalk_1.default.red(`✗ Failed to turn on light: ${message}`));
|
|
44
|
+
}
|
|
45
|
+
controller.disconnect();
|
|
46
|
+
});
|
|
47
|
+
}));
|
|
48
|
+
// off
|
|
49
|
+
program
|
|
50
|
+
.command('off [device]')
|
|
51
|
+
.description('Turn a light off (or all lights if no device specified)')
|
|
52
|
+
.option('-u, --url <url>', 'WebSocket URL')
|
|
53
|
+
.option('-c, --client-id <id>', 'Client ID')
|
|
54
|
+
.option('-d, --debug', 'Enable debug mode')
|
|
55
|
+
.action(asyncCommand(async (deviceQuery, options) => {
|
|
56
|
+
const controller = await createController(options.url, options.clientId, options.debug);
|
|
57
|
+
if (!deviceQuery || deviceQuery.toLowerCase() === 'all') {
|
|
58
|
+
await controller.turnOffAllLights((success, message) => {
|
|
59
|
+
if (!success) {
|
|
60
|
+
console.error(chalk_1.default.red(`✗ Failed to turn off light: ${message}`));
|
|
61
|
+
}
|
|
62
|
+
});
|
|
63
|
+
await controller.disconnect();
|
|
64
|
+
return;
|
|
65
|
+
}
|
|
66
|
+
const device = findDevice(controller, deviceQuery);
|
|
67
|
+
if (!device) {
|
|
68
|
+
console.error(chalk_1.default.red(`Device "${deviceQuery}" not found`));
|
|
69
|
+
process.exit(1);
|
|
70
|
+
}
|
|
71
|
+
if (!device.node_id) {
|
|
72
|
+
console.error(chalk_1.default.red(`Device "${deviceQuery}" has no node_id`));
|
|
73
|
+
process.exit(1);
|
|
74
|
+
}
|
|
75
|
+
controller.turnLightOff(device.node_id, (success, message) => {
|
|
76
|
+
if (success) {
|
|
77
|
+
const displayName = device.device_name || device.name || device.id || device.node_id || 'Unknown';
|
|
78
|
+
console.log(chalk_1.default.green(`✓ ${displayName} turned off`));
|
|
79
|
+
}
|
|
80
|
+
else {
|
|
81
|
+
console.error(chalk_1.default.red(`✗ Failed to turn off light: ${message}`));
|
|
82
|
+
}
|
|
83
|
+
controller.disconnect();
|
|
84
|
+
});
|
|
85
|
+
}));
|
|
86
|
+
// toggle
|
|
87
|
+
program
|
|
88
|
+
.command('toggle [device]')
|
|
89
|
+
.description('Toggle a light on/off (or all lights if no device specified)')
|
|
90
|
+
.option('-u, --url <url>', 'WebSocket URL')
|
|
91
|
+
.option('-c, --client-id <id>', 'Client ID')
|
|
92
|
+
.option('-d, --debug', 'Enable debug mode')
|
|
93
|
+
.action(asyncCommand(async (deviceQuery, options) => {
|
|
94
|
+
const controller = await createController(options.url, options.clientId, options.debug);
|
|
95
|
+
if (!deviceQuery || deviceQuery.toLowerCase() === 'all') {
|
|
96
|
+
await controller.toggleAllLights((success, message) => {
|
|
97
|
+
if (!success) {
|
|
98
|
+
console.error(chalk_1.default.red(`✗ Failed to toggle light: ${message}`));
|
|
99
|
+
}
|
|
100
|
+
});
|
|
101
|
+
await controller.disconnect();
|
|
102
|
+
return;
|
|
103
|
+
}
|
|
104
|
+
const device = findDevice(controller, deviceQuery);
|
|
105
|
+
if (!device) {
|
|
106
|
+
console.error(chalk_1.default.red(`Device "${deviceQuery}" not found`));
|
|
107
|
+
process.exit(1);
|
|
108
|
+
}
|
|
109
|
+
if (!device.node_id) {
|
|
110
|
+
console.error(chalk_1.default.red(`Device "${deviceQuery}" has no node_id`));
|
|
111
|
+
process.exit(1);
|
|
112
|
+
}
|
|
113
|
+
controller.toggleLight(device.node_id, (success, message) => {
|
|
114
|
+
if (success) {
|
|
115
|
+
const displayName = device.device_name || device.name || device.id || device.node_id || 'Unknown';
|
|
116
|
+
console.log(chalk_1.default.green(`✓ ${displayName} toggled`));
|
|
117
|
+
}
|
|
118
|
+
else {
|
|
119
|
+
console.error(chalk_1.default.red(`✗ Failed to toggle light: ${message}`));
|
|
120
|
+
}
|
|
121
|
+
controller.disconnect();
|
|
122
|
+
});
|
|
123
|
+
}));
|
|
124
|
+
}
|
|
125
|
+
exports.default = registerPower;
|
|
126
|
+
//# sourceMappingURL=power.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"power.js","sourceRoot":"","sources":["../../src/commands/power.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"schedule.d.ts","sourceRoot":"","sources":["../../src/commands/schedule.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AACzC,OAAO,KAAK,EAAE,WAAW,EAAkB,MAAM,UAAU,CAAC;AAE5D,wBAAgB,gBAAgB,CAAC,OAAO,EAAE,OAAO,EAAE,IAAI,EAAE,WAAW,QAkMnE;AAED,eAAe,gBAAgB,CAAC"}
|