amaran-light-cli 1.4.0 → 1.5.0

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.
Files changed (203) hide show
  1. package/README.md +13 -18
  2. package/dist/__tests__/autoCct.test.js +2 -2
  3. package/dist/__tests__/autoCct.test.js.map +1 -1
  4. package/dist/__tests__/autostart.test.js +1 -1
  5. package/dist/__tests__/autostart.test.js.map +1 -1
  6. package/dist/__tests__/cctUtil.test.js +2 -2
  7. package/dist/__tests__/cctUtil.test.js.map +1 -1
  8. package/dist/__tests__/intensityApi.test.js +4 -1
  9. package/dist/__tests__/intensityApi.test.js.map +1 -1
  10. package/dist/__tests__/lightControl.test.js +1 -1
  11. package/dist/__tests__/lightControl.test.js.map +1 -1
  12. package/dist/__tests__/simulateSchedule.test.js +2 -2
  13. package/dist/__tests__/simulateSchedule.test.js.map +1 -1
  14. package/dist/cli.d.ts +2 -2
  15. package/dist/cli.d.ts.map +1 -1
  16. package/dist/cli.js +4 -4
  17. package/dist/cli.js.map +1 -1
  18. package/dist/commands/__tests__/integration.test.js +1 -1
  19. package/dist/commands/__tests__/integration.test.js.map +1 -1
  20. package/dist/commands/cmdUtils.d.ts +23 -0
  21. package/dist/commands/cmdUtils.d.ts.map +1 -0
  22. package/dist/commands/cmdUtils.js +43 -0
  23. package/dist/commands/cmdUtils.js.map +1 -0
  24. package/dist/commands/daylightSimulation/autoCct.d.ts +5 -0
  25. package/dist/commands/daylightSimulation/autoCct.d.ts.map +1 -0
  26. package/dist/commands/{autoCct.js → daylightSimulation/autoCct.js} +12 -13
  27. package/dist/commands/daylightSimulation/autoCct.js.map +1 -0
  28. package/dist/commands/{graphSchedule.d.ts → daylightSimulation/graphSchedule.d.ts} +1 -1
  29. package/dist/commands/daylightSimulation/graphSchedule.d.ts.map +1 -0
  30. package/dist/commands/daylightSimulation/graphSchedule.js +65 -0
  31. package/dist/commands/daylightSimulation/graphSchedule.js.map +1 -0
  32. package/dist/commands/daylightSimulation/printSchedule.d.ts +5 -0
  33. package/dist/commands/daylightSimulation/printSchedule.d.ts.map +1 -0
  34. package/dist/commands/daylightSimulation/printSchedule.js +65 -0
  35. package/dist/commands/daylightSimulation/printSchedule.js.map +1 -0
  36. package/dist/commands/{service.d.ts → daylightSimulation/service.d.ts} +1 -1
  37. package/dist/commands/daylightSimulation/service.d.ts.map +1 -0
  38. package/dist/commands/{service.js → daylightSimulation/service.js} +47 -35
  39. package/dist/commands/daylightSimulation/service.js.map +1 -0
  40. package/dist/commands/{simulateSchedule.d.ts → daylightSimulation/simulateSchedule.d.ts} +1 -1
  41. package/dist/commands/daylightSimulation/simulateSchedule.d.ts.map +1 -0
  42. package/dist/commands/daylightSimulation/simulateSchedule.js +123 -0
  43. package/dist/commands/daylightSimulation/simulateSchedule.js.map +1 -0
  44. package/dist/commands/{cct.d.ts → deviceControl/cct.d.ts} +1 -1
  45. package/dist/commands/deviceControl/cct.d.ts.map +1 -0
  46. package/dist/commands/{cct.js → deviceControl/cct.js} +31 -36
  47. package/dist/commands/deviceControl/cct.js.map +1 -0
  48. package/dist/commands/{color.d.ts → deviceControl/color.d.ts} +1 -1
  49. package/dist/commands/deviceControl/color.d.ts.map +1 -0
  50. package/dist/commands/deviceControl/color.js +52 -0
  51. package/dist/commands/deviceControl/color.js.map +1 -0
  52. package/dist/commands/{config.d.ts → deviceControl/config.d.ts} +1 -1
  53. package/dist/commands/deviceControl/config.d.ts.map +1 -0
  54. package/dist/commands/{config.js → deviceControl/config.js} +11 -7
  55. package/dist/commands/deviceControl/config.js.map +1 -0
  56. package/dist/commands/{discover.d.ts → deviceControl/discover.d.ts} +1 -1
  57. package/dist/commands/deviceControl/discover.d.ts.map +1 -0
  58. package/dist/commands/{discover.js → deviceControl/discover.js} +8 -4
  59. package/dist/commands/deviceControl/discover.js.map +1 -0
  60. package/dist/commands/{hsi.d.ts → deviceControl/hsi.d.ts} +1 -1
  61. package/dist/commands/deviceControl/hsi.d.ts.map +1 -0
  62. package/dist/commands/deviceControl/hsi.js +50 -0
  63. package/dist/commands/deviceControl/hsi.js.map +1 -0
  64. package/dist/commands/{intensity.d.ts → deviceControl/intensity.d.ts} +1 -1
  65. package/dist/commands/deviceControl/intensity.d.ts.map +1 -0
  66. package/dist/commands/deviceControl/intensity.js +41 -0
  67. package/dist/commands/deviceControl/intensity.js.map +1 -0
  68. package/dist/commands/{list.d.ts → deviceControl/list.d.ts} +1 -1
  69. package/dist/commands/deviceControl/list.d.ts.map +1 -0
  70. package/dist/commands/{list.js → deviceControl/list.js} +7 -3
  71. package/dist/commands/deviceControl/list.js.map +1 -0
  72. package/dist/commands/{power.d.ts → deviceControl/power.d.ts} +1 -1
  73. package/dist/commands/deviceControl/power.d.ts.map +1 -0
  74. package/dist/commands/deviceControl/power.js +78 -0
  75. package/dist/commands/deviceControl/power.js.map +1 -0
  76. package/dist/commands/{status.d.ts → deviceControl/status.d.ts} +1 -1
  77. package/dist/commands/deviceControl/status.d.ts.map +1 -0
  78. package/dist/commands/deviceControl/status.js +48 -0
  79. package/dist/commands/deviceControl/status.js.map +1 -0
  80. package/dist/commands.d.ts +1 -1
  81. package/dist/commands.d.ts.map +1 -1
  82. package/dist/commands.js +17 -43
  83. package/dist/commands.js.map +1 -1
  84. package/dist/daylightSimulation/cctUtil.d.ts +5 -0
  85. package/dist/daylightSimulation/cctUtil.d.ts.map +1 -0
  86. package/dist/daylightSimulation/cctUtil.js +163 -0
  87. package/dist/daylightSimulation/cctUtil.js.map +1 -0
  88. package/dist/{constants.d.ts → daylightSimulation/constants.d.ts} +0 -18
  89. package/dist/daylightSimulation/constants.d.ts.map +1 -0
  90. package/dist/{constants.js → daylightSimulation/constants.js} +0 -13
  91. package/dist/daylightSimulation/constants.js.map +1 -0
  92. package/dist/daylightSimulation/curves/approximations.d.ts +19 -0
  93. package/dist/daylightSimulation/curves/approximations.d.ts.map +1 -0
  94. package/dist/daylightSimulation/curves/approximations.js +27 -0
  95. package/dist/daylightSimulation/curves/approximations.js.map +1 -0
  96. package/dist/daylightSimulation/curves/index.d.ts +15 -0
  97. package/dist/daylightSimulation/curves/index.d.ts.map +1 -0
  98. package/dist/daylightSimulation/curves/index.js +56 -0
  99. package/dist/daylightSimulation/curves/index.js.map +1 -0
  100. package/dist/daylightSimulation/curves/mathematical.d.ts +15 -0
  101. package/dist/daylightSimulation/curves/mathematical.d.ts.map +1 -0
  102. package/dist/daylightSimulation/curves/mathematical.js +33 -0
  103. package/dist/daylightSimulation/curves/mathematical.js.map +1 -0
  104. package/dist/daylightSimulation/curves/realistic.d.ts +43 -0
  105. package/dist/daylightSimulation/curves/realistic.d.ts.map +1 -0
  106. package/dist/daylightSimulation/curves/realistic.js +259 -0
  107. package/dist/daylightSimulation/curves/realistic.js.map +1 -0
  108. package/dist/daylightSimulation/geoipUtil.d.ts.map +1 -0
  109. package/dist/daylightSimulation/geoipUtil.js.map +1 -0
  110. package/dist/daylightSimulation/graphSchedule.d.ts +8 -0
  111. package/dist/daylightSimulation/graphSchedule.d.ts.map +1 -0
  112. package/dist/daylightSimulation/graphSchedule.js +94 -0
  113. package/dist/daylightSimulation/graphSchedule.js.map +1 -0
  114. package/dist/daylightSimulation/scheduleMaker.d.ts +36 -0
  115. package/dist/daylightSimulation/scheduleMaker.d.ts.map +1 -0
  116. package/dist/daylightSimulation/scheduleMaker.js +192 -0
  117. package/dist/daylightSimulation/scheduleMaker.js.map +1 -0
  118. package/dist/daylightSimulation/textSchedule.d.ts +9 -0
  119. package/dist/daylightSimulation/textSchedule.d.ts.map +1 -0
  120. package/dist/daylightSimulation/textSchedule.js +172 -0
  121. package/dist/daylightSimulation/textSchedule.js.map +1 -0
  122. package/dist/{cctUtil.d.ts → daylightSimulation/types.d.ts} +6 -5
  123. package/dist/daylightSimulation/types.d.ts.map +1 -0
  124. package/dist/daylightSimulation/types.js +16 -0
  125. package/dist/daylightSimulation/types.js.map +1 -0
  126. package/dist/deviceControl/autostart.d.ts.map +1 -0
  127. package/dist/deviceControl/autostart.js.map +1 -0
  128. package/dist/deviceControl/constants.d.ts +23 -0
  129. package/dist/deviceControl/constants.d.ts.map +1 -0
  130. package/dist/deviceControl/constants.js +20 -0
  131. package/dist/deviceControl/constants.js.map +1 -0
  132. package/dist/deviceControl/discovery.d.ts.map +1 -0
  133. package/dist/deviceControl/discovery.js.map +1 -0
  134. package/dist/deviceControl/lightControl.d.ts.map +1 -0
  135. package/dist/deviceControl/lightControl.js.map +1 -0
  136. package/dist/deviceControl/types.d.ts.map +1 -0
  137. package/dist/deviceControl/types.js.map +1 -0
  138. package/package.json +4 -1
  139. package/scripts/release.js +2 -2
  140. package/CHANGELOG.md +0 -67
  141. package/dist/autostart.d.ts.map +0 -1
  142. package/dist/autostart.js.map +0 -1
  143. package/dist/cctUtil.d.ts.map +0 -1
  144. package/dist/cctUtil.js +0 -435
  145. package/dist/cctUtil.js.map +0 -1
  146. package/dist/commands/autoCct.d.ts +0 -5
  147. package/dist/commands/autoCct.d.ts.map +0 -1
  148. package/dist/commands/autoCct.js.map +0 -1
  149. package/dist/commands/cct.d.ts.map +0 -1
  150. package/dist/commands/cct.js.map +0 -1
  151. package/dist/commands/color.d.ts.map +0 -1
  152. package/dist/commands/color.js +0 -57
  153. package/dist/commands/color.js.map +0 -1
  154. package/dist/commands/config.d.ts.map +0 -1
  155. package/dist/commands/config.js.map +0 -1
  156. package/dist/commands/discover.d.ts.map +0 -1
  157. package/dist/commands/discover.js.map +0 -1
  158. package/dist/commands/graphSchedule.d.ts.map +0 -1
  159. package/dist/commands/graphSchedule.js +0 -293
  160. package/dist/commands/graphSchedule.js.map +0 -1
  161. package/dist/commands/hsi.d.ts.map +0 -1
  162. package/dist/commands/hsi.js +0 -59
  163. package/dist/commands/hsi.js.map +0 -1
  164. package/dist/commands/intensity.d.ts.map +0 -1
  165. package/dist/commands/intensity.js +0 -50
  166. package/dist/commands/intensity.js.map +0 -1
  167. package/dist/commands/list.d.ts.map +0 -1
  168. package/dist/commands/list.js.map +0 -1
  169. package/dist/commands/power.d.ts.map +0 -1
  170. package/dist/commands/power.js +0 -120
  171. package/dist/commands/power.js.map +0 -1
  172. package/dist/commands/printSchedule.d.ts +0 -5
  173. package/dist/commands/printSchedule.d.ts.map +0 -1
  174. package/dist/commands/printSchedule.js +0 -452
  175. package/dist/commands/printSchedule.js.map +0 -1
  176. package/dist/commands/service.d.ts.map +0 -1
  177. package/dist/commands/service.js.map +0 -1
  178. package/dist/commands/simulateSchedule.d.ts.map +0 -1
  179. package/dist/commands/simulateSchedule.js +0 -199
  180. package/dist/commands/simulateSchedule.js.map +0 -1
  181. package/dist/commands/status.d.ts.map +0 -1
  182. package/dist/commands/status.js +0 -48
  183. package/dist/commands/status.js.map +0 -1
  184. package/dist/constants.d.ts.map +0 -1
  185. package/dist/constants.js.map +0 -1
  186. package/dist/discovery.d.ts.map +0 -1
  187. package/dist/discovery.js.map +0 -1
  188. package/dist/geoipUtil.d.ts.map +0 -1
  189. package/dist/geoipUtil.js.map +0 -1
  190. package/dist/lightControl.d.ts.map +0 -1
  191. package/dist/lightControl.js.map +0 -1
  192. package/dist/types.d.ts.map +0 -1
  193. package/dist/types.js.map +0 -1
  194. /package/dist/{geoipUtil.d.ts → daylightSimulation/geoipUtil.d.ts} +0 -0
  195. /package/dist/{geoipUtil.js → daylightSimulation/geoipUtil.js} +0 -0
  196. /package/dist/{autostart.d.ts → deviceControl/autostart.d.ts} +0 -0
  197. /package/dist/{autostart.js → deviceControl/autostart.js} +0 -0
  198. /package/dist/{discovery.d.ts → deviceControl/discovery.d.ts} +0 -0
  199. /package/dist/{discovery.js → deviceControl/discovery.js} +0 -0
  200. /package/dist/{lightControl.d.ts → deviceControl/lightControl.d.ts} +0 -0
  201. /package/dist/{lightControl.js → deviceControl/lightControl.js} +0 -0
  202. /package/dist/{types.d.ts → deviceControl/types.d.ts} +0 -0
  203. /package/dist/{types.js → deviceControl/types.js} +0 -0
@@ -1,120 +0,0 @@
1
- import chalk from 'chalk';
2
- export function registerPower(program, deps) {
3
- const { createController, findDevice, asyncCommand } = deps;
4
- // on
5
- program
6
- .command('on [device]')
7
- .description('Turn a light on (or all lights if no device specified)')
8
- .option('-u, --url <url>', 'WebSocket URL')
9
- .option('-c, --client-id <id>', 'Client ID')
10
- .option('-d, --debug', 'Enable debug mode')
11
- .action(asyncCommand(async (deviceQuery, options) => {
12
- const controller = await createController(options.url, options.clientId, options.debug);
13
- if (!deviceQuery || deviceQuery.toLowerCase() === 'all') {
14
- await controller.turnOnAllLights((success, message) => {
15
- if (!success) {
16
- console.error(chalk.red(`✗ Failed to turn on light: ${message}`));
17
- }
18
- });
19
- await controller.disconnect();
20
- return;
21
- }
22
- const device = findDevice(controller, deviceQuery);
23
- if (!device) {
24
- console.error(chalk.red(`Device "${deviceQuery}" not found`));
25
- process.exit(1);
26
- }
27
- if (!device.node_id) {
28
- console.error(chalk.red(`Device "${deviceQuery}" has no node_id`));
29
- process.exit(1);
30
- }
31
- controller.turnLightOn(device.node_id, (success, message) => {
32
- if (success) {
33
- const displayName = device.device_name || device.name || device.id || device.node_id || 'Unknown';
34
- console.log(chalk.green(`✓ ${displayName} turned on`));
35
- }
36
- else {
37
- console.error(chalk.red(`✗ Failed to turn on light: ${message}`));
38
- }
39
- controller.disconnect();
40
- });
41
- }));
42
- // off
43
- program
44
- .command('off [device]')
45
- .description('Turn a light off (or all lights if no device specified)')
46
- .option('-u, --url <url>', 'WebSocket URL')
47
- .option('-c, --client-id <id>', 'Client ID')
48
- .option('-d, --debug', 'Enable debug mode')
49
- .action(asyncCommand(async (deviceQuery, options) => {
50
- const controller = await createController(options.url, options.clientId, options.debug);
51
- if (!deviceQuery || deviceQuery.toLowerCase() === 'all') {
52
- await controller.turnOffAllLights((success, message) => {
53
- if (!success) {
54
- console.error(chalk.red(`✗ Failed to turn off light: ${message}`));
55
- }
56
- });
57
- await controller.disconnect();
58
- return;
59
- }
60
- const device = findDevice(controller, deviceQuery);
61
- if (!device) {
62
- console.error(chalk.red(`Device "${deviceQuery}" not found`));
63
- process.exit(1);
64
- }
65
- if (!device.node_id) {
66
- console.error(chalk.red(`Device "${deviceQuery}" has no node_id`));
67
- process.exit(1);
68
- }
69
- controller.turnLightOff(device.node_id, (success, message) => {
70
- if (success) {
71
- const displayName = device.device_name || device.name || device.id || device.node_id || 'Unknown';
72
- console.log(chalk.green(`✓ ${displayName} turned off`));
73
- }
74
- else {
75
- console.error(chalk.red(`✗ Failed to turn off light: ${message}`));
76
- }
77
- controller.disconnect();
78
- });
79
- }));
80
- // toggle
81
- program
82
- .command('toggle [device]')
83
- .description('Toggle a light on/off (or all lights if no device specified)')
84
- .option('-u, --url <url>', 'WebSocket URL')
85
- .option('-c, --client-id <id>', 'Client ID')
86
- .option('-d, --debug', 'Enable debug mode')
87
- .action(asyncCommand(async (deviceQuery, options) => {
88
- const controller = await createController(options.url, options.clientId, options.debug);
89
- if (!deviceQuery || deviceQuery.toLowerCase() === 'all') {
90
- await controller.toggleAllLights((success, message) => {
91
- if (!success) {
92
- console.error(chalk.red(`✗ Failed to toggle light: ${message}`));
93
- }
94
- });
95
- await controller.disconnect();
96
- return;
97
- }
98
- const device = findDevice(controller, deviceQuery);
99
- if (!device) {
100
- console.error(chalk.red(`Device "${deviceQuery}" not found`));
101
- process.exit(1);
102
- }
103
- if (!device.node_id) {
104
- console.error(chalk.red(`Device "${deviceQuery}" has no node_id`));
105
- process.exit(1);
106
- }
107
- controller.toggleLight(device.node_id, (success, message) => {
108
- if (success) {
109
- const displayName = device.device_name || device.name || device.id || device.node_id || 'Unknown';
110
- console.log(chalk.green(`✓ ${displayName} toggled`));
111
- }
112
- else {
113
- console.error(chalk.red(`✗ Failed to toggle light: ${message}`));
114
- }
115
- controller.disconnect();
116
- });
117
- }));
118
- }
119
- export default registerPower;
120
- //# sourceMappingURL=power.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"power.js","sourceRoot":"","sources":["../../src/commands/power.ts"],"names":[],"mappings":"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"}
@@ -1,5 +0,0 @@
1
- import type { Command } from 'commander';
2
- import type { CommandDeps } from '../types.js';
3
- declare function registerPrintSchedule(program: Command, deps: CommandDeps): void;
4
- export default registerPrintSchedule;
5
- //# sourceMappingURL=printSchedule.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"printSchedule.d.ts","sourceRoot":"","sources":["../../src/commands/printSchedule.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AAEzC,OAAO,KAAK,EAAE,WAAW,EAAkB,MAAM,aAAa,CAAC;AA8E/D,iBAAS,qBAAqB,CAAC,OAAO,EAAE,OAAO,EAAE,IAAI,EAAE,WAAW,QA+bjE;AAED,eAAe,qBAAqB,CAAC"}
@@ -1,452 +0,0 @@
1
- import chalk from 'chalk';
2
- import { SPECIAL_TIME_CONFIG } from '../constants.js';
3
- // Helper function to get color and emoji for a special time
4
- function getSpecialTimeStyling(currentTime, times) {
5
- const isSpecialTime = (specialTime) => {
6
- if (!specialTime || Number.isNaN(specialTime.getTime()))
7
- return false;
8
- return Math.abs(currentTime.getTime() - specialTime.getTime()) < 30000; // 30 seconds
9
- };
10
- for (const config of SPECIAL_TIME_CONFIG) {
11
- if (isSpecialTime(times[config.key])) {
12
- return { color: config.color, emoji: config.emoji };
13
- }
14
- }
15
- return { color: chalk.white, emoji: '' };
16
- }
17
- // Helper function to display all special times
18
- function displayAllSpecialTimes(times) {
19
- const formatTitle = (key) => {
20
- return key
21
- .replace(/([A-Z])/g, ' $1') // Add space before capital letters
22
- .replace(/^([a-z])/, (c) => c.toUpperCase()) // Capitalize first letter
23
- .trim();
24
- };
25
- // Create array of all special times including nadir
26
- const allSpecialTimes = [
27
- ...SPECIAL_TIME_CONFIG.map((config) => ({
28
- key: config.key,
29
- emoji: config.emoji,
30
- color: config.color,
31
- time: times[config.key],
32
- })),
33
- {
34
- key: 'nadir',
35
- emoji: 'NA',
36
- color: chalk.blue,
37
- time: times.nadir,
38
- },
39
- ].filter((item) => item.time && !Number.isNaN(item.time.getTime()));
40
- // Display in 2 columns
41
- const halfLength = Math.ceil(allSpecialTimes.length / 2);
42
- for (let i = 0; i < halfLength; i++) {
43
- const left = allSpecialTimes[i];
44
- const right = allSpecialTimes[i + halfLength];
45
- let line = '';
46
- if (left?.time) {
47
- const timeStr = left.time.toLocaleTimeString(undefined, { hour: '2-digit', minute: '2-digit' });
48
- const label = `${left.emoji} ${formatTitle(left.key)}`.padEnd(20);
49
- line += left.color(`${label}: ${timeStr}`);
50
- }
51
- if (right?.time) {
52
- const timeStr = right.time.toLocaleTimeString(undefined, { hour: '2-digit', minute: '2-digit' });
53
- const label = `${right.emoji} ${formatTitle(right.key)}`.padEnd(20);
54
- line += ` ${right.color(`${label}: ${timeStr}`)}`;
55
- }
56
- console.log(line);
57
- }
58
- }
59
- function registerPrintSchedule(program, deps) {
60
- const { asyncCommand, loadConfig } = deps;
61
- program
62
- .command('print-schedule')
63
- .description('Preview auto-cct schedule from sunrise to sunset')
64
- .option('-y, --lat <latitude>', 'Manual latitude (-90 to 90)')
65
- .option('-x, --lon <longitude>', 'Manual longitude (-180 to 180)')
66
- .option('-d, --date <date>', 'Date to preview (ISO format, e.g., 2025-10-26)')
67
- .option('-i, --interval <minutes>', 'Minutes between schedule entries (default: 30)', '30')
68
- .option('-C, --curve <curve>', 'Curve type (comma-separated list, or "all"). Available: hann, wider-middle-small, wider-middle-medium, wider-middle-large, cie-daylight, sun-altitude, perez-daylight', 'all')
69
- .option('-p, --no-private', 'Show full IP address and precise coordinates', true)
70
- .action(asyncCommand(async (options) => {
71
- const { getLocationFromIP } = await import('../geoipUtil.js');
72
- const { calculateCCT, CurveType, parseCurveType } = await import('../cctUtil.js');
73
- const SunCalc = (await import('suncalc')).default;
74
- const { getTimes } = SunCalc;
75
- let lat;
76
- let lon;
77
- let date = new Date();
78
- let source = '';
79
- if (options.date) {
80
- date = new Date(options.date);
81
- if (Number.isNaN(date.getTime())) {
82
- console.error(chalk.red('Invalid date format. Use ISO format (e.g., 2025-10-26)'));
83
- process.exit(1);
84
- }
85
- }
86
- // Validate curve option
87
- let curveTypes = ['HANN'];
88
- const curveOption = options.curve?.toLowerCase() || '';
89
- const allCurveTypesOrdered = [
90
- 'HANN',
91
- 'WIDER_MIDDLE_SMALL',
92
- 'WIDER_MIDDLE_MEDIUM',
93
- 'WIDER_MIDDLE_LARGE',
94
- 'CIE_DAYLIGHT',
95
- 'SUN_ALTITUDE',
96
- 'PEREZ_DAYLIGHT',
97
- ];
98
- if (curveOption === 'all') {
99
- curveTypes = [...allCurveTypesOrdered];
100
- }
101
- else if (curveOption) {
102
- try {
103
- const parts = curveOption.split(',').map((s) => s.trim());
104
- const parsedList = [];
105
- for (const part of parts) {
106
- if (part === 'all') {
107
- parsedList.push(...allCurveTypesOrdered);
108
- }
109
- else {
110
- parsedList.push(parseCurveType(part));
111
- }
112
- }
113
- // Dedup and sort according to standard order
114
- const unique = new Set(parsedList);
115
- curveTypes = allCurveTypesOrdered.filter((c) => unique.has(c));
116
- }
117
- catch (error) {
118
- console.error(chalk.red(error.message));
119
- process.exit(1);
120
- }
121
- }
122
- else if (loadConfig) {
123
- const config = loadConfig();
124
- if (config?.defaultCurve) {
125
- try {
126
- const parsed = parseCurveType(config.defaultCurve);
127
- curveTypes = [parsed];
128
- }
129
- catch (_) {
130
- console.warn(chalk.yellow(`Warning: Invalid default curve in config: ${config.defaultCurve}. Showing all curves.`));
131
- curveTypes = [...allCurveTypesOrdered];
132
- }
133
- }
134
- else {
135
- curveTypes = [...allCurveTypesOrdered];
136
- }
137
- }
138
- else {
139
- curveTypes = [...allCurveTypesOrdered];
140
- }
141
- if (options.lat !== undefined && options.lon !== undefined) {
142
- lat = parseFloat(options.lat);
143
- lon = parseFloat(options.lon);
144
- if (Number.isNaN(lat) || lat < -90 || lat > 90) {
145
- console.error(chalk.red('Latitude must be between -90 and 90'));
146
- process.exit(1);
147
- }
148
- if (Number.isNaN(lon) || lon < -180 || lon > 180) {
149
- console.error(chalk.red('Longitude must be between -180 and 180'));
150
- process.exit(1);
151
- }
152
- source = 'manual';
153
- }
154
- else if (loadConfig) {
155
- const config = loadConfig();
156
- if (config && typeof config.latitude === 'number' && typeof config.longitude === 'number') {
157
- lat = config.latitude;
158
- lon = config.longitude;
159
- source = 'config';
160
- }
161
- }
162
- if (lat === undefined || lon === undefined) {
163
- try {
164
- const res = await fetch('https://api.ipify.org?format=json');
165
- const data = await res.json();
166
- const location = getLocationFromIP(data.ip);
167
- if (!location || !location.ll) {
168
- console.error(chalk.red('Could not determine location. Use --lat and --lon to specify manually.'));
169
- process.exit(1);
170
- }
171
- [lat, lon] = location.ll;
172
- source = `geoip (${data.ip})`;
173
- }
174
- catch (_err) {
175
- console.error(chalk.red('Could not determine location. Use --lat and --lon to specify manually.'));
176
- process.exit(1);
177
- }
178
- }
179
- const interval = parseInt(options.interval ?? '30', 10);
180
- if (Number.isNaN(interval) || interval < 1) {
181
- console.error(chalk.red('Interval must be a positive number of minutes'));
182
- process.exit(1);
183
- }
184
- const times = getTimes(date, lat, lon);
185
- const sunrise = times.sunrise;
186
- const sunset = times.sunset;
187
- const solarNoon = times.solarNoon;
188
- const dawn = times.dawn;
189
- const dusk = times.dusk;
190
- const nadir = times.nadir;
191
- const nauticalDawn = times.nauticalDawn;
192
- const nauticalDusk = times.nauticalDusk;
193
- const sunriseEnd = times.sunriseEnd;
194
- const sunsetStart = times.sunsetStart;
195
- const goldenHour = times.goldenHour;
196
- const goldenHourEnd = times.goldenHourEnd;
197
- const night = times.night;
198
- const nightEnd = times.nightEnd;
199
- if (!sunrise || !sunset || Number.isNaN(sunrise.getTime()) || Number.isNaN(sunset.getTime())) {
200
- console.error(chalk.red('Could not calculate sunrise/sunset for this location and date'));
201
- process.exit(1);
202
- }
203
- console.log(chalk.blue('\n═══════════════════════════════════════════════════════════'));
204
- console.log(chalk.blue(' Auto-CCT Schedule Preview'));
205
- console.log(chalk.blue('═══════════════════════════════════════════════════════════\n'));
206
- // Format location based on private mode
207
- const formatCoordinate = (coord, isPrivate) => {
208
- return isPrivate ? `${Math.round(coord)}.XXXX` : coord.toFixed(4);
209
- };
210
- const formatSource = (src, isPrivate) => {
211
- if (!isPrivate || !src.includes('('))
212
- return src;
213
- // Hide IP address parts
214
- const ipMatch = src.match(/(\d+\.\d+\.\d+\.\d+)/);
215
- if (ipMatch) {
216
- const ipParts = ipMatch[1].split('.');
217
- ipParts[0] = 'XXX';
218
- ipParts[1] = 'XXX';
219
- ipParts[2] = 'XXX';
220
- return src.replace(ipMatch[1], ipParts.join('.'));
221
- }
222
- return src;
223
- };
224
- console.log(chalk.cyan(`Location: ${formatCoordinate(lat, options.private)}°, ${formatCoordinate(lon, options.private)}° ` +
225
- `(${formatSource(source, options.private)})`));
226
- console.log(chalk.cyan(`Date: ${date.toLocaleDateString(undefined, { weekday: 'long', year: 'numeric', month: 'long', day: 'numeric' })}`));
227
- console.log(chalk.cyan(`Interval: Every ${interval} minute${interval !== 1 ? 's' : ''}`));
228
- if (curveTypes.length > 1) {
229
- console.log(chalk.cyan(`Curve: Multiple curves selected\n`));
230
- }
231
- else {
232
- console.log(chalk.cyan(`Curve: ${curveTypes[0].toLowerCase()}\n`));
233
- }
234
- // Display all special times
235
- const specialTimesObject = {
236
- nightEnd,
237
- nauticalDawn,
238
- dawn,
239
- sunrise,
240
- sunriseEnd,
241
- goldenHourEnd,
242
- solarNoon,
243
- goldenHour,
244
- sunsetStart,
245
- sunset,
246
- nauticalDusk,
247
- dusk,
248
- night,
249
- nadir,
250
- };
251
- displayAllSpecialTimes(specialTimesObject);
252
- console.log(chalk.blue('\n'));
253
- // Calculate time range - extend beyond special times
254
- const allSpecialTimes = [
255
- nightEnd,
256
- nauticalDawn,
257
- dawn,
258
- sunrise,
259
- sunriseEnd,
260
- goldenHourEnd,
261
- solarNoon,
262
- goldenHour,
263
- sunsetStart,
264
- sunset,
265
- nauticalDusk,
266
- dusk,
267
- night,
268
- ]
269
- .filter((time) => time && !Number.isNaN(time.getTime()))
270
- .map((time) => time?.getTime());
271
- if (allSpecialTimes.length === 0) {
272
- console.error(chalk.red('Could not calculate special times for this location and date'));
273
- process.exit(1);
274
- }
275
- const minTime = new Date(Math.min(...allSpecialTimes));
276
- const maxTime = new Date(Math.max(...allSpecialTimes));
277
- const bufferMs = interval * 60 * 1000; // 1 interval unit on each side
278
- const startTime = new Date(minTime.getTime() - bufferMs);
279
- const endTime = new Date(maxTime.getTime() + bufferMs);
280
- const intervalMs = interval * 60 * 1000;
281
- const _highlightThreshold = intervalMs / 2;
282
- // Create array of all times to display: regular intervals + special times
283
- const allTimes = [];
284
- // Add regular interval times
285
- let intervalTime = new Date(startTime);
286
- while (intervalTime <= endTime) {
287
- allTimes.push(new Date(intervalTime));
288
- intervalTime = new Date(intervalTime.getTime() + intervalMs);
289
- }
290
- // Add special times at their exact moments
291
- const specialTimes = [
292
- nightEnd,
293
- nauticalDawn,
294
- dawn,
295
- sunrise,
296
- sunriseEnd,
297
- goldenHourEnd,
298
- solarNoon,
299
- goldenHour,
300
- sunsetStart,
301
- sunset,
302
- nauticalDusk,
303
- dusk,
304
- night,
305
- ].filter((time) => time && !Number.isNaN(time.getTime()));
306
- allTimes.push(...specialTimes);
307
- // Sort all times and remove duplicates (within 1 minute tolerance)
308
- allTimes.sort((a, b) => a.getTime() - b.getTime());
309
- const uniqueTimes = [];
310
- const duplicateThresholdMs = 30 * 1000; // 30 seconds
311
- for (const time of allTimes) {
312
- if (uniqueTimes.length === 0 ||
313
- time.getTime() - uniqueTimes[uniqueTimes.length - 1].getTime() > duplicateThresholdMs) {
314
- uniqueTimes.push(time);
315
- }
316
- }
317
- // Respect user-configured bounds if provided
318
- const cfg = typeof loadConfig === 'function' ? (loadConfig() ?? {}) : {};
319
- const cctMinRaw = cfg.cctMin;
320
- const cctMaxRaw = cfg.cctMax;
321
- const iMinRaw = cfg.intensityMin;
322
- const iMaxRaw = cfg.intensityMax;
323
- const hasCctBounds = typeof cctMinRaw === 'number' || typeof cctMaxRaw === 'number';
324
- const hasIntensityBounds = typeof iMinRaw === 'number' || typeof iMaxRaw === 'number';
325
- // Calculate table widths
326
- const multiCurveColWidths = [13, 12, 12, 12, 12, 12, 12, 12];
327
- const _totalWidth = multiCurveColWidths.reduce((a, b) => a + b, 0);
328
- const singleCurveWidth = 13 + 18; // Time width + CCT/Intensity width
329
- if (curveTypes.length > 1) {
330
- // Show multiple curves in one table
331
- const headers = [
332
- 'Time',
333
- ...curveTypes.map((c) => {
334
- // Abbreviate headers if needed or just use names
335
- const name = c.replace(/_/g, ' ');
336
- if (name.length > 12) {
337
- if (c === 'WIDER_MIDDLE_SMALL')
338
- return 'WM_SMALL';
339
- if (c === 'WIDER_MIDDLE_MEDIUM')
340
- return 'WM_MEDIUM';
341
- if (c === 'WIDER_MIDDLE_LARGE')
342
- return 'WM_LARGE';
343
- if (c === 'CIE_DAYLIGHT')
344
- return 'CIE';
345
- if (c === 'SUN_ALTITUDE')
346
- return 'SUN_ALT';
347
- if (c === 'PEREZ_DAYLIGHT')
348
- return 'PEREZ';
349
- }
350
- return name;
351
- }),
352
- ];
353
- const colWidths = [13, ...curveTypes.map(() => 12)];
354
- const totalWidth = colWidths.reduce((a, b) => a + b, 0);
355
- // Print header
356
- let headerLine = '';
357
- headers.forEach((header, i) => {
358
- headerLine += header.padEnd(colWidths[i]);
359
- });
360
- console.log(chalk.blue('─'.repeat(totalWidth)));
361
- console.log(chalk.blue(headerLine));
362
- console.log(chalk.blue('─'.repeat(totalWidth)));
363
- for (const currentTime of uniqueTimes) {
364
- const timeStr = currentTime.toLocaleTimeString(undefined, {
365
- hour: '2-digit',
366
- minute: '2-digit',
367
- });
368
- // Create times object for helper function
369
- const times = {
370
- nightEnd,
371
- nauticalDawn,
372
- dawn,
373
- sunrise,
374
- sunriseEnd,
375
- goldenHourEnd,
376
- solarNoon,
377
- goldenHour,
378
- sunsetStart,
379
- sunset,
380
- nauticalDusk,
381
- dusk,
382
- night,
383
- };
384
- const { color, emoji } = getSpecialTimeStyling(currentTime, times);
385
- let rowLine = color(`${timeStr} ${emoji || ' '} `);
386
- curveTypes.forEach((curve, index) => {
387
- const result = hasCctBounds || hasIntensityBounds
388
- ? calculateCCT(lat, lon, currentTime, {
389
- cctMinK: typeof cctMinRaw === 'number' ? cctMinRaw : undefined,
390
- cctMaxK: typeof cctMaxRaw === 'number' ? cctMaxRaw : undefined,
391
- intensityMinPct: typeof iMinRaw === 'number' ? iMinRaw : undefined,
392
- intensityMaxPct: typeof iMaxRaw === 'number' ? iMaxRaw : undefined,
393
- }, CurveType[curve])
394
- : calculateCCT(lat, lon, currentTime, undefined, CurveType[curve]);
395
- const valueStr = `${result.cct}K/${(result.intensity / 10).toFixed(0)}%`;
396
- rowLine += color(valueStr.padEnd(colWidths[index + 1]));
397
- });
398
- console.log(rowLine);
399
- }
400
- }
401
- else {
402
- // Show single curve (original behavior)
403
- console.log(chalk.blue('─'.repeat(singleCurveWidth)));
404
- console.log(chalk.blue('Time CCT/Intensity'));
405
- console.log(chalk.blue('─'.repeat(singleCurveWidth)));
406
- for (const currentTime of uniqueTimes) {
407
- const result = hasCctBounds || hasIntensityBounds
408
- ? calculateCCT(lat, lon, currentTime, {
409
- cctMinK: typeof cctMinRaw === 'number' ? cctMinRaw : undefined,
410
- cctMaxK: typeof cctMaxRaw === 'number' ? cctMaxRaw : undefined,
411
- intensityMinPct: typeof iMinRaw === 'number' ? iMinRaw : undefined,
412
- intensityMaxPct: typeof iMaxRaw === 'number' ? iMaxRaw : undefined,
413
- }, CurveType[curveTypes[0]])
414
- : calculateCCT(lat, lon, currentTime, undefined, CurveType[curveTypes[0]]);
415
- const timeStr = currentTime.toLocaleTimeString(undefined, {
416
- hour: '2-digit',
417
- minute: '2-digit',
418
- });
419
- const valueStr = `${result.cct}K/${(result.intensity / 10).toFixed(0)}%`.padEnd(18);
420
- // Create times object for helper function
421
- const times = {
422
- nightEnd,
423
- nauticalDawn,
424
- dawn,
425
- sunrise,
426
- sunriseEnd,
427
- goldenHourEnd,
428
- solarNoon,
429
- goldenHour,
430
- sunsetStart,
431
- sunset,
432
- nauticalDusk,
433
- dusk,
434
- night,
435
- };
436
- const { color, emoji } = getSpecialTimeStyling(currentTime, times);
437
- console.log(color(`${timeStr} ${emoji || ' '} ${valueStr}`));
438
- }
439
- }
440
- if (curveTypes.length > 1) {
441
- // Recalculate totalWidth since it is block scoped above
442
- const colWidths = [13, ...curveTypes.map(() => 12)];
443
- const totalWidth = colWidths.reduce((a, b) => a + b, 0);
444
- console.log(chalk.blue(`${'─'.repeat(totalWidth)}\n`));
445
- }
446
- else {
447
- console.log(chalk.blue(`${'─'.repeat(singleCurveWidth)}\n`));
448
- }
449
- }));
450
- }
451
- export default registerPrintSchedule;
452
- //# sourceMappingURL=printSchedule.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"printSchedule.js","sourceRoot":"","sources":["../../src/commands/printSchedule.ts"],"names":[],"mappings":"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"}
@@ -1 +0,0 @@
1
- {"version":3,"file":"service.d.ts","sourceRoot":"","sources":["../../src/commands/service.ts"],"names":[],"mappings":"AAMA,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AAKzC,OAAO,KAAK,EAAE,WAAW,EAAkB,MAAM,aAAa,CAAC;AAE/D,wBAAgB,eAAe,CAAC,OAAO,EAAE,OAAO,EAAE,IAAI,EAAE,WAAW,QA6TlE;AA8CD,eAAe,eAAe,CAAC"}