amaran-light-cli 1.1.2 → 1.3.6
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/CHANGELOG.md +44 -5
- package/README.md +94 -70
- package/dist/__tests__/autoCct.test.js +89 -20
- package/dist/__tests__/autoCct.test.js.map +1 -1
- package/dist/__tests__/autostart.test.js +87 -41
- package/dist/__tests__/autostart.test.js.map +1 -1
- package/dist/__tests__/cctUtil.test.js +26 -27
- package/dist/__tests__/cctUtil.test.js.map +1 -1
- package/dist/__tests__/cli.smoke.test.js +18 -13
- package/dist/__tests__/cli.smoke.test.js.map +1 -1
- package/dist/__tests__/intensityApi.test.js +4 -9
- package/dist/__tests__/intensityApi.test.js.map +1 -1
- package/dist/__tests__/lightControl.test.js +79 -68
- package/dist/__tests__/lightControl.test.js.map +1 -1
- package/dist/__tests__/setupTests.js +9 -8
- package/dist/__tests__/setupTests.js.map +1 -1
- package/dist/__tests__/simulateSchedule.test.d.ts +2 -0
- package/dist/__tests__/simulateSchedule.test.d.ts.map +1 -0
- package/dist/__tests__/simulateSchedule.test.js +87 -0
- package/dist/__tests__/simulateSchedule.test.js.map +1 -0
- package/dist/autostart.js +19 -60
- package/dist/autostart.js.map +1 -1
- package/dist/cctUtil.d.ts.map +1 -1
- package/dist/cctUtil.js +16 -21
- package/dist/cctUtil.js.map +1 -1
- package/dist/cli.d.ts +2 -2
- package/dist/cli.d.ts.map +1 -1
- package/dist/cli.js +52 -231
- package/dist/cli.js.map +1 -1
- package/dist/commands/__tests__/integration.test.d.ts +2 -0
- package/dist/commands/__tests__/integration.test.d.ts.map +1 -0
- package/dist/commands/__tests__/integration.test.js +279 -0
- package/dist/commands/__tests__/integration.test.js.map +1 -0
- package/dist/commands/autoCct.d.ts +1 -1
- package/dist/commands/autoCct.d.ts.map +1 -1
- package/dist/commands/autoCct.js +90 -76
- package/dist/commands/autoCct.js.map +1 -1
- package/dist/commands/cct.d.ts +1 -1
- package/dist/commands/cct.d.ts.map +1 -1
- package/dist/commands/cct.js +17 -23
- package/dist/commands/cct.js.map +1 -1
- package/dist/commands/color.d.ts +1 -1
- package/dist/commands/color.d.ts.map +1 -1
- package/dist/commands/color.js +9 -15
- package/dist/commands/color.js.map +1 -1
- package/dist/commands/config.d.ts +4 -0
- package/dist/commands/config.d.ts.map +1 -0
- package/dist/commands/config.js +219 -0
- package/dist/commands/config.js.map +1 -0
- package/dist/commands/discover.d.ts +1 -1
- package/dist/commands/discover.d.ts.map +1 -1
- package/dist/commands/discover.js +8 -14
- package/dist/commands/discover.js.map +1 -1
- package/dist/commands/hsi.d.ts +1 -1
- package/dist/commands/hsi.d.ts.map +1 -1
- package/dist/commands/hsi.js +11 -17
- package/dist/commands/hsi.js.map +1 -1
- package/dist/commands/intensity.d.ts +1 -1
- package/dist/commands/intensity.d.ts.map +1 -1
- package/dist/commands/intensity.js +9 -15
- package/dist/commands/intensity.js.map +1 -1
- package/dist/commands/list.d.ts +1 -1
- package/dist/commands/list.d.ts.map +1 -1
- package/dist/commands/list.js +6 -12
- package/dist/commands/list.js.map +1 -1
- package/dist/commands/power.d.ts +1 -1
- package/dist/commands/power.d.ts.map +1 -1
- package/dist/commands/power.js +18 -24
- package/dist/commands/power.js.map +1 -1
- package/dist/commands/printSchedule.d.ts +5 -0
- package/dist/commands/printSchedule.d.ts.map +1 -0
- package/dist/commands/{schedule.js → printSchedule.js} +92 -84
- package/dist/commands/printSchedule.js.map +1 -0
- package/dist/commands/service.d.ts +1 -1
- package/dist/commands/service.d.ts.map +1 -1
- package/dist/commands/service.js +54 -88
- package/dist/commands/service.js.map +1 -1
- package/dist/commands/simulateSchedule.d.ts +1 -1
- package/dist/commands/simulateSchedule.d.ts.map +1 -1
- package/dist/commands/simulateSchedule.js +50 -70
- package/dist/commands/simulateSchedule.js.map +1 -1
- package/dist/commands/status.d.ts +1 -1
- package/dist/commands/status.d.ts.map +1 -1
- package/dist/commands/status.js +8 -14
- package/dist/commands/status.js.map +1 -1
- package/dist/commands.d.ts +1 -1
- package/dist/commands.d.ts.map +1 -1
- package/dist/commands.js +56 -33
- package/dist/commands.js.map +1 -1
- package/dist/constants.d.ts +13 -14
- package/dist/constants.d.ts.map +1 -1
- package/dist/constants.js +21 -27
- package/dist/constants.js.map +1 -1
- package/dist/discovery.js +8 -15
- package/dist/discovery.js.map +1 -1
- package/dist/geoipUtil.js +3 -9
- package/dist/geoipUtil.js.map +1 -1
- package/dist/lightControl.js +18 -20
- package/dist/lightControl.js.map +1 -1
- package/dist/test/MockLightServer.d.ts +13 -0
- package/dist/test/MockLightServer.d.ts.map +1 -0
- package/dist/test/MockLightServer.js +140 -0
- package/dist/test/MockLightServer.js.map +1 -0
- package/dist/types.d.ts +4 -1
- package/dist/types.d.ts.map +1 -1
- package/dist/types.js +1 -2
- package/package.json +16 -15
- package/scripts/release.js +112 -0
- package/scripts/test.sh +2 -5
- package/dist/commands/schedule.d.ts +0 -5
- package/dist/commands/schedule.d.ts.map +0 -1
- package/dist/commands/schedule.js.map +0 -1
package/dist/cctUtil.js
CHANGED
|
@@ -1,12 +1,7 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
exports.getAvailableCurves = getAvailableCurves;
|
|
6
|
-
exports.calculateCCT = calculateCCT;
|
|
7
|
-
const suncalc_1 = require("suncalc");
|
|
8
|
-
const constants_1 = require("./constants");
|
|
9
|
-
var CurveType;
|
|
1
|
+
import SunCalc from 'suncalc';
|
|
2
|
+
const { getPosition, getTimes } = SunCalc;
|
|
3
|
+
import { CCT_DEFAULTS } from './constants.js';
|
|
4
|
+
export var CurveType;
|
|
10
5
|
(function (CurveType) {
|
|
11
6
|
CurveType["HANN"] = "hann";
|
|
12
7
|
CurveType["WIDER_MIDDLE_SMALL"] = "wider-middle-small";
|
|
@@ -15,8 +10,8 @@ var CurveType;
|
|
|
15
10
|
CurveType["CIE_DAYLIGHT"] = "cie-daylight";
|
|
16
11
|
CurveType["SUN_ALTITUDE"] = "sun-altitude";
|
|
17
12
|
CurveType["PEREZ_DAYLIGHT"] = "perez-daylight";
|
|
18
|
-
})(CurveType || (
|
|
19
|
-
function parseCurveType(curve) {
|
|
13
|
+
})(CurveType || (CurveType = {}));
|
|
14
|
+
export function parseCurveType(curve) {
|
|
20
15
|
const normalizedCurve = curve.toLowerCase();
|
|
21
16
|
if (normalizedCurve === 'hann') {
|
|
22
17
|
return 'HANN';
|
|
@@ -46,7 +41,7 @@ function parseCurveType(curve) {
|
|
|
46
41
|
throw new Error('Invalid curve type. Use "hann", "wider-middle-small", "wider-middle-medium", "wider-middle-large", "cie-daylight", "sun-altitude", or "perez-daylight"');
|
|
47
42
|
}
|
|
48
43
|
}
|
|
49
|
-
function getAvailableCurves() {
|
|
44
|
+
export function getAvailableCurves() {
|
|
50
45
|
return Object.values(CurveType);
|
|
51
46
|
}
|
|
52
47
|
const CURVE_FUNCTIONS = {
|
|
@@ -285,7 +280,7 @@ function isValidSunTimes(sunrise, sunset, solarNoon) {
|
|
|
285
280
|
}
|
|
286
281
|
function calculateCCTCore(lat, lon, date, minK, maxK, minIntensity, maxIntensity, curveType) {
|
|
287
282
|
const curve = CURVE_FUNCTIONS[curveType];
|
|
288
|
-
const times =
|
|
283
|
+
const times = getTimes(date, lat, lon);
|
|
289
284
|
const sunrise = times.sunrise;
|
|
290
285
|
const sunset = times.sunset;
|
|
291
286
|
const _solarNoon = times.solarNoon;
|
|
@@ -322,10 +317,10 @@ function calculateCCTCore(lat, lon, date, minK, maxK, minIntensity, maxIntensity
|
|
|
322
317
|
return { cct: minK, intensity: minIntensity };
|
|
323
318
|
}
|
|
324
319
|
}
|
|
325
|
-
const pos =
|
|
320
|
+
const pos = getPosition(date, lat, lon);
|
|
326
321
|
const altitude = pos.altitude;
|
|
327
322
|
// Get maximum altitude for normalization (at solar noon on this day)
|
|
328
|
-
const noonPos =
|
|
323
|
+
const noonPos = getPosition(_solarNoon, lat, lon);
|
|
329
324
|
const maxAltitude = noonPos.altitude;
|
|
330
325
|
if (curveType === CurveType.SUN_ALTITUDE) {
|
|
331
326
|
// Realistic sun altitude-based calculations
|
|
@@ -403,7 +398,7 @@ function calculateCCTCore(lat, lon, date, minK, maxK, minIntensity, maxIntensity
|
|
|
403
398
|
}
|
|
404
399
|
// Fallback for empirical curves when night times are not available
|
|
405
400
|
try {
|
|
406
|
-
const pos =
|
|
401
|
+
const pos = getPosition(date, lat, lon);
|
|
407
402
|
const altitude = pos.altitude;
|
|
408
403
|
if (altitude <= 0)
|
|
409
404
|
return { cct: minK, intensity: minIntensity };
|
|
@@ -419,14 +414,14 @@ function calculateCCTCore(lat, lon, date, minK, maxK, minIntensity, maxIntensity
|
|
|
419
414
|
return { cct: minK, intensity: minIntensity };
|
|
420
415
|
}
|
|
421
416
|
}
|
|
422
|
-
function calculateCCT(lat, lon, date = new Date(), opts, curveType = CurveType.HANN) {
|
|
417
|
+
export function calculateCCT(lat, lon, date = new Date(), opts, curveType = CurveType.HANN) {
|
|
423
418
|
const clamp = (v, lo, hi) => Math.min(hi, Math.max(lo, v));
|
|
424
|
-
const cctMinK = clamp(opts?.cctMinK ??
|
|
425
|
-
const cctMaxK = clamp(opts?.cctMaxK ??
|
|
419
|
+
const cctMinK = clamp(opts?.cctMinK ?? CCT_DEFAULTS.cctMinK, 1000, 20000);
|
|
420
|
+
const cctMaxK = clamp(opts?.cctMaxK ?? CCT_DEFAULTS.cctMaxK, 1000, 20000);
|
|
426
421
|
const minK = Math.min(cctMinK, cctMaxK);
|
|
427
422
|
const maxK = Math.max(cctMinK, cctMaxK);
|
|
428
|
-
const intensityMinPct = clamp(opts?.intensityMinPct ??
|
|
429
|
-
const intensityMaxPct = clamp(opts?.intensityMaxPct ??
|
|
423
|
+
const intensityMinPct = clamp(opts?.intensityMinPct ?? CCT_DEFAULTS.intensityMinPct, 0, 100);
|
|
424
|
+
const intensityMaxPct = clamp(opts?.intensityMaxPct ?? CCT_DEFAULTS.intensityMaxPct, 0, 100);
|
|
430
425
|
const minPct = Math.min(intensityMinPct, intensityMaxPct);
|
|
431
426
|
const maxPct = Math.max(intensityMinPct, intensityMaxPct);
|
|
432
427
|
const minIntensity = Math.round(minPct * 10);
|
package/dist/cctUtil.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"cctUtil.js","sourceRoot":"","sources":["../src/cctUtil.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"cctUtil.js","sourceRoot":"","sources":["../src/cctUtil.ts"],"names":[],"mappings":"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"}
|
package/dist/cli.d.ts
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
#!/usr/bin/env node
|
|
2
2
|
import { Command } from 'commander';
|
|
3
|
-
import LightController from './lightControl';
|
|
4
|
-
import type { Device } from './types';
|
|
3
|
+
import LightController from './lightControl.js';
|
|
4
|
+
import type { Device } from './types.js';
|
|
5
5
|
declare const program: Command;
|
|
6
6
|
declare function createController(wsUrl?: string, clientId?: string, debug?: boolean): Promise<LightController>;
|
|
7
7
|
declare function asyncCommand<T extends unknown[]>(fn: (...args: T) => Promise<void>): (...args: T) => Promise<void>;
|
package/dist/cli.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"cli.d.ts","sourceRoot":"","sources":["../src/cli.ts"],"names":[],"mappings":";AAKA,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AAIpC,OAAO,eAAe,MAAM,
|
|
1
|
+
{"version":3,"file":"cli.d.ts","sourceRoot":"","sources":["../src/cli.ts"],"names":[],"mappings":";AAKA,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AAIpC,OAAO,eAAe,MAAM,mBAAmB,CAAC;AAChD,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,YAAY,CAAC;AAEzC,QAAA,MAAM,OAAO,SAAgB,CAAC;AA+K9B,iBAAe,gBAAgB,CAAC,KAAK,CAAC,EAAE,MAAM,EAAE,QAAQ,CAAC,EAAE,MAAM,EAAE,KAAK,CAAC,EAAE,OAAO,GAAG,OAAO,CAAC,eAAe,CAAC,CA2H5G;AAGD,iBAAS,YAAY,CAAC,CAAC,SAAS,OAAO,EAAE,EAAE,EAAE,EAAE,CAAC,GAAG,IAAI,EAAE,CAAC,KAAK,OAAO,CAAC,IAAI,CAAC,IAClE,GAAG,MAAM,CAAC,KAAG,OAAO,CAAC,IAAI,CAAC,CAMnC;AAGD,iBAAS,UAAU,CAAC,UAAU,EAAE,eAAe,EAAE,WAAW,EAAE,MAAM,GAAG,MAAM,GAAG,IAAI,CAgBnF;AAiBD,OAAO,EAAE,OAAO,EAAE,gBAAgB,EAAE,UAAU,EAAE,YAAY,EAAE,CAAC"}
|
package/dist/cli.js
CHANGED
|
@@ -1,60 +1,20 @@
|
|
|
1
1
|
#!/usr/bin/env node
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
if (k2 === undefined) k2 = k;
|
|
12
|
-
o[k2] = m[k];
|
|
13
|
-
}));
|
|
14
|
-
var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
|
|
15
|
-
Object.defineProperty(o, "default", { enumerable: true, value: v });
|
|
16
|
-
}) : function(o, v) {
|
|
17
|
-
o["default"] = v;
|
|
18
|
-
});
|
|
19
|
-
var __importStar = (this && this.__importStar) || (function () {
|
|
20
|
-
var ownKeys = function(o) {
|
|
21
|
-
ownKeys = Object.getOwnPropertyNames || function (o) {
|
|
22
|
-
var ar = [];
|
|
23
|
-
for (var k in o) if (Object.prototype.hasOwnProperty.call(o, k)) ar[ar.length] = k;
|
|
24
|
-
return ar;
|
|
25
|
-
};
|
|
26
|
-
return ownKeys(o);
|
|
27
|
-
};
|
|
28
|
-
return function (mod) {
|
|
29
|
-
if (mod && mod.__esModule) return mod;
|
|
30
|
-
var result = {};
|
|
31
|
-
if (mod != null) for (var k = ownKeys(mod), i = 0; i < k.length; i++) if (k[i] !== "default") __createBinding(result, mod, k[i]);
|
|
32
|
-
__setModuleDefault(result, mod);
|
|
33
|
-
return result;
|
|
34
|
-
};
|
|
35
|
-
})();
|
|
36
|
-
var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
37
|
-
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
38
|
-
};
|
|
39
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
40
|
-
exports.program = void 0;
|
|
41
|
-
exports.createController = createController;
|
|
42
|
-
exports.findDevice = findDevice;
|
|
43
|
-
exports.asyncCommand = asyncCommand;
|
|
44
|
-
const fs = __importStar(require("node:fs"));
|
|
45
|
-
const path = __importStar(require("node:path"));
|
|
46
|
-
const chalk_1 = __importDefault(require("chalk"));
|
|
47
|
-
const commander_1 = require("commander");
|
|
48
|
-
const autostart_1 = require("./autostart");
|
|
49
|
-
const commands_1 = __importDefault(require("./commands"));
|
|
50
|
-
const discovery_1 = require("./discovery");
|
|
51
|
-
const lightControl_1 = __importDefault(require("./lightControl"));
|
|
52
|
-
const program = new commander_1.Command();
|
|
53
|
-
exports.program = program;
|
|
2
|
+
import * as fs from 'node:fs';
|
|
3
|
+
import * as path from 'node:path';
|
|
4
|
+
import chalk from 'chalk';
|
|
5
|
+
import { Command } from 'commander';
|
|
6
|
+
import { handleAutostart } from './autostart.js';
|
|
7
|
+
import registerCommands from './commands.js';
|
|
8
|
+
import { discoverLocalWebSocket } from './discovery.js';
|
|
9
|
+
import LightController from './lightControl.js';
|
|
10
|
+
const program = new Command();
|
|
54
11
|
// Configure help output
|
|
12
|
+
import packageJson from '../package.json' with { type: 'json' };
|
|
13
|
+
const { version } = packageJson;
|
|
55
14
|
program
|
|
56
15
|
.name('amaran-cli')
|
|
57
16
|
.description('Command line tool for controlling Aputure Amaran lights via WebSocket')
|
|
17
|
+
.version(version, '-v, --version', 'output the current version')
|
|
58
18
|
.configureHelp({
|
|
59
19
|
sortSubcommands: true,
|
|
60
20
|
sortOptions: true,
|
|
@@ -71,24 +31,24 @@ program
|
|
|
71
31
|
const commandName = commandPath.join(' ');
|
|
72
32
|
const displayName = 'amaran-cli';
|
|
73
33
|
const sections = [
|
|
74
|
-
`${
|
|
34
|
+
`${chalk.blue('Amaran Light Control CLI')}`,
|
|
75
35
|
'',
|
|
76
|
-
`${
|
|
36
|
+
`${chalk.blue('Usage:')} ${displayName}${commandName ? ` ${commandName}` : ''} [options]${isRoot ? ' [command]' : ''}`,
|
|
77
37
|
'',
|
|
78
38
|
];
|
|
79
39
|
// Add command description if available
|
|
80
40
|
if (cmd.description()) {
|
|
81
|
-
sections.push(`${
|
|
41
|
+
sections.push(`${chalk.blue('Description:')} ${cmd.description()}`, '');
|
|
82
42
|
}
|
|
83
43
|
// Add command usage pattern if available
|
|
84
44
|
if (cmd.usage() && cmd.usage() !== '[options] [command]') {
|
|
85
45
|
const usage = cmd.usage().replace(/^\s*/, '');
|
|
86
|
-
sections.push(`${
|
|
46
|
+
sections.push(`${chalk.blue('Usage:')} ${cmd.name()} ${chalk.blue(usage)}`, '');
|
|
87
47
|
}
|
|
88
48
|
// Add options
|
|
89
49
|
const options = helper.visibleOptions(cmd);
|
|
90
50
|
if (options.length > 0) {
|
|
91
|
-
sections.push(
|
|
51
|
+
sections.push(chalk.blue('Options:'));
|
|
92
52
|
sections.push(...options.map((option) => {
|
|
93
53
|
// Split the flags and replace parameter placeholders with bright white
|
|
94
54
|
const formattedFlags = option.flags
|
|
@@ -101,8 +61,8 @@ program
|
|
|
101
61
|
const [_, flag, param] = match;
|
|
102
62
|
// Use blue for parameters and long options for better visibility in light mode
|
|
103
63
|
const isShortFlag = flag.startsWith('-') && !flag.startsWith('--');
|
|
104
|
-
const flagColor = isShortFlag ?
|
|
105
|
-
return param ? `${flagColor(flag)} ${
|
|
64
|
+
const flagColor = isShortFlag ? chalk.cyan : chalk.blue;
|
|
65
|
+
return param ? `${flagColor(flag)} ${chalk.blue(param)}` : flagColor(flag);
|
|
106
66
|
})
|
|
107
67
|
.join(' ');
|
|
108
68
|
return ` ${formattedFlags.padEnd(40)} ${option.description}`;
|
|
@@ -112,7 +72,7 @@ program
|
|
|
112
72
|
// Add commands
|
|
113
73
|
const commands = helper.visibleCommands(cmd);
|
|
114
74
|
if (commands.length > 0) {
|
|
115
|
-
sections.push(
|
|
75
|
+
sections.push(chalk.blue('Commands:'));
|
|
116
76
|
// Get the max command + usage length for alignment
|
|
117
77
|
const maxCommandWidth = Math.max(...commands.map((c) => {
|
|
118
78
|
const usage = c.usage() || '';
|
|
@@ -123,16 +83,16 @@ program
|
|
|
123
83
|
const name = cmd.name();
|
|
124
84
|
const usage = cmd.usage() || '';
|
|
125
85
|
const desc = cmd.description() || '';
|
|
126
|
-
const _commandPart = usage ? `${name} ${
|
|
127
|
-
return ` ${
|
|
86
|
+
const _commandPart = usage ? `${name} ${chalk.blue(usage)}` : name;
|
|
87
|
+
return ` ${chalk.green(name)} ${chalk.blue(usage || '').padEnd(maxCommandWidth - name.length - 1)} ${desc}`;
|
|
128
88
|
}));
|
|
129
89
|
sections.push('');
|
|
130
90
|
}
|
|
131
91
|
// Add examples for the root command
|
|
132
92
|
if (cmd.name() === 'amaran-cli') {
|
|
133
|
-
sections.push(
|
|
93
|
+
sections.push(chalk.blue('Examples:'), ' $ amaran-cli power on --all # Turn on all connected lights', ' $ amaran-cli cct 5000 --intensity 80 # Set color temperature to 5000K at 80%', ' $ amaran-cli color 255 100 50 # Set RGB color (R:255 G:100 B:50)', '');
|
|
134
94
|
}
|
|
135
|
-
sections.push(`Run ${
|
|
95
|
+
sections.push(`Run ${chalk.blue('amaran-cli <command> --help')} for more information about a command.`);
|
|
136
96
|
return sections.join('\n');
|
|
137
97
|
},
|
|
138
98
|
})
|
|
@@ -149,7 +109,7 @@ function loadConfig() {
|
|
|
149
109
|
return null;
|
|
150
110
|
}
|
|
151
111
|
catch (_error) {
|
|
152
|
-
console.warn(
|
|
112
|
+
console.warn(chalk.yellow('Warning: Could not load config file'));
|
|
153
113
|
return null;
|
|
154
114
|
}
|
|
155
115
|
}
|
|
@@ -158,17 +118,17 @@ function saveConfig(config, changes) {
|
|
|
158
118
|
try {
|
|
159
119
|
fs.writeFileSync(configPath, JSON.stringify(config, null, 2));
|
|
160
120
|
if (changes && changes.length > 0) {
|
|
161
|
-
console.log(
|
|
121
|
+
console.log(chalk.green('Configuration saved successfully:'));
|
|
162
122
|
changes.forEach((change) => {
|
|
163
|
-
console.log(
|
|
123
|
+
console.log(chalk.green(` • ${change}`));
|
|
164
124
|
});
|
|
165
125
|
}
|
|
166
126
|
else {
|
|
167
|
-
console.log(
|
|
127
|
+
console.log(chalk.green('Configuration saved successfully'));
|
|
168
128
|
}
|
|
169
129
|
}
|
|
170
130
|
catch (error) {
|
|
171
|
-
console.error(
|
|
131
|
+
console.error(chalk.red('Error saving configuration:'), error);
|
|
172
132
|
}
|
|
173
133
|
}
|
|
174
134
|
function saveWsUrl(url) {
|
|
@@ -189,7 +149,7 @@ async function createController(wsUrl, clientId, debug) {
|
|
|
189
149
|
}, 8000);
|
|
190
150
|
let hasResolved = false;
|
|
191
151
|
let hasRejected = false;
|
|
192
|
-
const controller = new
|
|
152
|
+
const controller = new LightController(candidateUrl, id, undefined, debugMode);
|
|
193
153
|
// Set up error handling on the WebSocket to catch connection errors
|
|
194
154
|
const ws = controller.getWebSocket();
|
|
195
155
|
ws.on('error', (error) => {
|
|
@@ -200,7 +160,7 @@ async function createController(wsUrl, clientId, debug) {
|
|
|
200
160
|
// Extract address and port from the error message for cleaner output
|
|
201
161
|
const addressMatch = error.message.match(/(\S+:\d+)/);
|
|
202
162
|
const addressPort = addressMatch ? addressMatch[1] : candidateUrl;
|
|
203
|
-
console.error(
|
|
163
|
+
console.error(chalk.red(`WebSocket connection failed to ${addressPort}`));
|
|
204
164
|
}
|
|
205
165
|
if (!hasResolved && !hasRejected) {
|
|
206
166
|
hasRejected = true;
|
|
@@ -223,7 +183,7 @@ async function createController(wsUrl, clientId, debug) {
|
|
|
223
183
|
if (!hasResolved) {
|
|
224
184
|
hasResolved = true;
|
|
225
185
|
if (debugMode) {
|
|
226
|
-
console.log(
|
|
186
|
+
console.log(chalk.green('✓ Connected (device list received)'));
|
|
227
187
|
}
|
|
228
188
|
resolve(controller);
|
|
229
189
|
}
|
|
@@ -232,18 +192,18 @@ async function createController(wsUrl, clientId, debug) {
|
|
|
232
192
|
};
|
|
233
193
|
// If no URL is known, try discovery first and persist
|
|
234
194
|
if (!url) {
|
|
235
|
-
const found = await
|
|
195
|
+
const found = await discoverLocalWebSocket('127.0.0.1', debugMode);
|
|
236
196
|
if (found) {
|
|
237
197
|
url = found.url;
|
|
238
198
|
if (debugMode) {
|
|
239
|
-
console.log(
|
|
199
|
+
console.log(chalk.green(`✓ Discovered WebSocket at ${url} (process: ${found.process})`));
|
|
240
200
|
}
|
|
241
201
|
saveWsUrl(url);
|
|
242
202
|
}
|
|
243
203
|
else {
|
|
244
204
|
url = 'ws://localhost:60124';
|
|
245
205
|
if (debugMode) {
|
|
246
|
-
console.log(
|
|
206
|
+
console.log(chalk.yellow(`⚠︎ Discovery failed, falling back to ${url}`));
|
|
247
207
|
}
|
|
248
208
|
}
|
|
249
209
|
}
|
|
@@ -255,39 +215,39 @@ async function createController(wsUrl, clientId, debug) {
|
|
|
255
215
|
const config = loadConfig();
|
|
256
216
|
const autoStartEnabled = config?.autoStartApp !== false; // Default to true
|
|
257
217
|
if (autoStartEnabled) {
|
|
258
|
-
console.log(
|
|
218
|
+
console.log(chalk.blue('🚀 Amaran desktop app not running, starting...'));
|
|
259
219
|
}
|
|
260
220
|
if (debugMode) {
|
|
261
|
-
console.log(
|
|
221
|
+
console.log(chalk.yellow(`Initial connection to ${url} failed; attempting autostart and discovery...`));
|
|
262
222
|
}
|
|
263
223
|
// Attempt to start the Amaran desktop app
|
|
264
|
-
const autostartSuccess = await
|
|
224
|
+
const autostartSuccess = await handleAutostart(debugMode);
|
|
265
225
|
if (autostartSuccess) {
|
|
266
226
|
// Give the app a moment to fully start up and begin listening
|
|
267
227
|
if (debugMode) {
|
|
268
|
-
console.log(
|
|
228
|
+
console.log(chalk.blue('Waiting for app to initialize...'));
|
|
269
229
|
}
|
|
270
230
|
await new Promise((resolve) => setTimeout(resolve, 3000));
|
|
271
231
|
}
|
|
272
232
|
// Try discovery again (in case the app started on a different port)
|
|
273
|
-
const found = await
|
|
233
|
+
const found = await discoverLocalWebSocket('127.0.0.1', debugMode);
|
|
274
234
|
if (found) {
|
|
275
235
|
if (debugMode) {
|
|
276
|
-
console.log(
|
|
236
|
+
console.log(chalk.green(`✓ Discovered fallback WebSocket at ${found.url}`));
|
|
277
237
|
}
|
|
278
238
|
saveWsUrl(found.url);
|
|
279
239
|
return await connectWithUrl(found.url);
|
|
280
240
|
}
|
|
281
241
|
// Provide appropriate error message based on what happened
|
|
282
242
|
if (!autoStartEnabled) {
|
|
283
|
-
console.log(
|
|
284
|
-
console.log(
|
|
243
|
+
console.log(chalk.yellow('Amaran desktop app is not running and autostart is disabled.'));
|
|
244
|
+
console.log(chalk.yellow('Enable autostart with: amaran config --auto-start-app true'));
|
|
285
245
|
}
|
|
286
246
|
else if (!autostartSuccess) {
|
|
287
|
-
console.log(
|
|
247
|
+
console.log(chalk.yellow('Could not start Amaran desktop app. Please ensure it is installed and try again.'));
|
|
288
248
|
}
|
|
289
249
|
else {
|
|
290
|
-
console.log(
|
|
250
|
+
console.log(chalk.yellow('Amaran desktop app started but connection still failed. Please try again.'));
|
|
291
251
|
}
|
|
292
252
|
throw e;
|
|
293
253
|
}
|
|
@@ -296,7 +256,7 @@ async function createController(wsUrl, clientId, debug) {
|
|
|
296
256
|
function asyncCommand(fn) {
|
|
297
257
|
return (...args) => {
|
|
298
258
|
return fn(...args).catch((error) => {
|
|
299
|
-
console.error(
|
|
259
|
+
console.error(chalk.red('Error:'), error.message);
|
|
300
260
|
process.exit(1);
|
|
301
261
|
});
|
|
302
262
|
};
|
|
@@ -316,154 +276,15 @@ function findDevice(controller, deviceQuery) {
|
|
|
316
276
|
}
|
|
317
277
|
return device || null;
|
|
318
278
|
}
|
|
319
|
-
//
|
|
320
|
-
program
|
|
321
|
-
.command('config')
|
|
322
|
-
.description('Configure WebSocket URL and other settings')
|
|
323
|
-
.option('-u, --url <url>', 'WebSocket URL (default: ws://localhost:60124)')
|
|
324
|
-
.option('-c, --client-id <id>', 'Client ID (default: amaran-cli)')
|
|
325
|
-
.option('-d, --debug <boolean>', 'Enable debug mode')
|
|
326
|
-
.option('--lat <latitude>', 'Default latitude for auto-cct (overrides geoip)')
|
|
327
|
-
.option('--lon <longitude>', 'Default longitude for auto-cct (overrides geoip)')
|
|
328
|
-
.option('--cct-min <kelvin>', 'Minimum CCT for auto-cct in Kelvin (default: 2000)')
|
|
329
|
-
.option('--cct-max <kelvin>', 'Maximum CCT for auto-cct in Kelvin (default: 6500)')
|
|
330
|
-
.option('--intensity-min <percent>', 'Minimum intensity for auto-cct in percent (default: 5)')
|
|
331
|
-
.option('--intensity-max <percent>', 'Maximum intensity for auto-cct in percent (default: 100)')
|
|
332
|
-
.option('--auto-start-app <boolean>', 'Automatically start Amaran desktop app on connection failure (default: true)')
|
|
333
|
-
.option('--show', 'Show current configuration')
|
|
334
|
-
.action((options) => {
|
|
335
|
-
if (options.show) {
|
|
336
|
-
const config = loadConfig();
|
|
337
|
-
console.log(chalk_1.default.blue('Current configuration:'));
|
|
338
|
-
console.log(JSON.stringify(config, null, 2));
|
|
339
|
-
return;
|
|
340
|
-
}
|
|
341
|
-
const config = loadConfig() || {};
|
|
342
|
-
const changes = [];
|
|
343
|
-
if (options.url) {
|
|
344
|
-
config.wsUrl = options.url;
|
|
345
|
-
changes.push(`WebSocket URL: ${options.url}`);
|
|
346
|
-
}
|
|
347
|
-
if (options.clientId) {
|
|
348
|
-
config.clientId = options.clientId;
|
|
349
|
-
changes.push(`Client ID: ${options.clientId}`);
|
|
350
|
-
}
|
|
351
|
-
if (options.debug !== undefined) {
|
|
352
|
-
const value = options.debug;
|
|
353
|
-
if (typeof value === 'boolean') {
|
|
354
|
-
config.debug = value;
|
|
355
|
-
}
|
|
356
|
-
else {
|
|
357
|
-
const lowerValue = value.toLowerCase().trim();
|
|
358
|
-
if (lowerValue === 'true' || lowerValue === '1' || lowerValue === 'yes' || lowerValue === 'on') {
|
|
359
|
-
config.debug = true;
|
|
360
|
-
}
|
|
361
|
-
else if (lowerValue === 'false' || lowerValue === '0' || lowerValue === 'no' || lowerValue === 'off') {
|
|
362
|
-
config.debug = false;
|
|
363
|
-
}
|
|
364
|
-
else {
|
|
365
|
-
console.error(chalk_1.default.red('debug must be true or false'));
|
|
366
|
-
process.exit(1);
|
|
367
|
-
}
|
|
368
|
-
}
|
|
369
|
-
changes.push(`Debug mode: ${config.debug ? 'enabled' : 'disabled'}`);
|
|
370
|
-
}
|
|
371
|
-
if (options.lat !== undefined) {
|
|
372
|
-
const lat = parseFloat(options.lat);
|
|
373
|
-
if (Number.isNaN(lat) || lat < -90 || lat > 90) {
|
|
374
|
-
console.error(chalk_1.default.red('Latitude must be between -90 and 90'));
|
|
375
|
-
process.exit(1);
|
|
376
|
-
}
|
|
377
|
-
config.latitude = lat;
|
|
378
|
-
changes.push(`Latitude: ${lat}`);
|
|
379
|
-
}
|
|
380
|
-
if (options.lon !== undefined) {
|
|
381
|
-
const lon = parseFloat(options.lon);
|
|
382
|
-
if (Number.isNaN(lon) || lon < -180 || lon > 180) {
|
|
383
|
-
console.error(chalk_1.default.red('Longitude must be between -180 and 180'));
|
|
384
|
-
process.exit(1);
|
|
385
|
-
}
|
|
386
|
-
config.longitude = lon;
|
|
387
|
-
changes.push(`Longitude: ${lon}`);
|
|
388
|
-
}
|
|
389
|
-
// Bounds validation helpers
|
|
390
|
-
const clamp = (v, lo, hi) => Math.min(hi, Math.max(lo, v));
|
|
391
|
-
if (options.cctMin !== undefined) {
|
|
392
|
-
const k = parseInt(options.cctMin, 10);
|
|
393
|
-
if (Number.isNaN(k)) {
|
|
394
|
-
console.error(chalk_1.default.red('cct-min must be a number (Kelvin)'));
|
|
395
|
-
process.exit(1);
|
|
396
|
-
}
|
|
397
|
-
config.cctMin = clamp(k, 1000, 20000);
|
|
398
|
-
changes.push(`CCT minimum: ${config.cctMin}K`);
|
|
399
|
-
}
|
|
400
|
-
if (options.cctMax !== undefined) {
|
|
401
|
-
const k = parseInt(options.cctMax, 10);
|
|
402
|
-
if (Number.isNaN(k)) {
|
|
403
|
-
console.error(chalk_1.default.red('cct-max must be a number (Kelvin)'));
|
|
404
|
-
process.exit(1);
|
|
405
|
-
}
|
|
406
|
-
config.cctMax = clamp(k, 1000, 20000);
|
|
407
|
-
changes.push(`CCT maximum: ${config.cctMax}K`);
|
|
408
|
-
}
|
|
409
|
-
if (options.intensityMin !== undefined) {
|
|
410
|
-
const p = parseFloat(options.intensityMin);
|
|
411
|
-
if (Number.isNaN(p)) {
|
|
412
|
-
console.error(chalk_1.default.red('intensity-min must be a number (percent)'));
|
|
413
|
-
process.exit(1);
|
|
414
|
-
}
|
|
415
|
-
config.intensityMin = clamp(p, 0, 100);
|
|
416
|
-
changes.push(`Intensity minimum: ${config.intensityMin}%`);
|
|
417
|
-
}
|
|
418
|
-
if (options.intensityMax !== undefined) {
|
|
419
|
-
const p = parseFloat(options.intensityMax);
|
|
420
|
-
if (Number.isNaN(p)) {
|
|
421
|
-
console.error(chalk_1.default.red('intensity-max must be a number (percent)'));
|
|
422
|
-
process.exit(1);
|
|
423
|
-
}
|
|
424
|
-
config.intensityMax = clamp(p, 0, 100);
|
|
425
|
-
changes.push(`Intensity maximum: ${config.intensityMax}%`);
|
|
426
|
-
}
|
|
427
|
-
// Handle auto-start-app option
|
|
428
|
-
if (options.autoStartApp !== undefined) {
|
|
429
|
-
const value = options.autoStartApp;
|
|
430
|
-
if (typeof value === 'boolean') {
|
|
431
|
-
config.autoStartApp = value;
|
|
432
|
-
}
|
|
433
|
-
else {
|
|
434
|
-
const lowerValue = value.toLowerCase().trim();
|
|
435
|
-
if (lowerValue === 'true' || lowerValue === '1' || lowerValue === 'yes' || lowerValue === 'on') {
|
|
436
|
-
config.autoStartApp = true;
|
|
437
|
-
}
|
|
438
|
-
else if (lowerValue === 'false' || lowerValue === '0' || lowerValue === 'no' || lowerValue === 'off') {
|
|
439
|
-
config.autoStartApp = false;
|
|
440
|
-
}
|
|
441
|
-
else {
|
|
442
|
-
console.error(chalk_1.default.red('auto-start-app must be true or false'));
|
|
443
|
-
process.exit(1);
|
|
444
|
-
}
|
|
445
|
-
}
|
|
446
|
-
changes.push(`Auto-start app: ${config.autoStartApp ? 'enabled' : 'disabled'}`);
|
|
447
|
-
}
|
|
448
|
-
// Ensure logical ordering if both sides provided
|
|
449
|
-
if (config.cctMin !== undefined && config.cctMax !== undefined && config.cctMin > config.cctMax) {
|
|
450
|
-
console.error(chalk_1.default.red('cct-min must be <= cct-max'));
|
|
451
|
-
process.exit(1);
|
|
452
|
-
}
|
|
453
|
-
if (config.intensityMin !== undefined &&
|
|
454
|
-
config.intensityMax !== undefined &&
|
|
455
|
-
config.intensityMin > config.intensityMax) {
|
|
456
|
-
console.error(chalk_1.default.red('intensity-min must be <= intensity-max'));
|
|
457
|
-
process.exit(1);
|
|
458
|
-
}
|
|
459
|
-
saveConfig(config, changes);
|
|
460
|
-
});
|
|
279
|
+
// (The 'config' command is registered centrally in src/commands/config.ts via registerCommands.)
|
|
461
280
|
// Register all commands
|
|
462
|
-
(
|
|
281
|
+
registerCommands(program, { createController, findDevice, asyncCommand, saveWsUrl, loadConfig, saveConfig });
|
|
463
282
|
// Add custom help command that preserves the formatting
|
|
464
283
|
program.addHelpCommand('help [command]', 'Display help for a specific command');
|
|
465
284
|
// If this file is run directly, parse the arguments
|
|
466
|
-
|
|
467
|
-
|
|
285
|
+
import { fileURLToPath } from 'node:url';
|
|
286
|
+
if (process.argv[1] === fileURLToPath(import.meta.url)) {
|
|
287
|
+
program.parse(process.argv);
|
|
468
288
|
}
|
|
289
|
+
export { program, createController, findDevice, asyncCommand };
|
|
469
290
|
//# sourceMappingURL=cli.js.map
|