Commit Graph

55 Commits

Author SHA1 Message Date
071ded9c41 style: configure deno fmt to use single quotes
All checks were successful
CI / Build All Platforms (Tag/Main only) (push) Has been skipped
CI / Type Check & Lint (push) Successful in 6s
CI / Build Test (Current Platform) (push) Successful in 6s
- Add singleQuote: true to deno.json fmt configuration
- Reformat all files with single quotes using deno fmt
2025-10-19 13:14:18 +00:00
dff0ea610b fix types
All checks were successful
CI / Build All Platforms (Tag/Main only) (push) Has been skipped
CI / Type Check & Lint (push) Successful in 7s
CI / Build Test (Current Platform) (push) Successful in 7s
2025-10-19 12:57:17 +00:00
c2d39cc19a fix: resolve all TypeScript type errors across codebase for Deno strict mode
Comprehensive type safety improvements across all CLI handlers and daemon:

**Error handling type fixes:**
- Add 'error instanceof Error' checks before accessing error.message throughout
- Fix all error/retryError/stdError/upsError type assertions
- Replace direct error.message with proper type guards

**Switch case improvements:**
- Wrap case block declarations in braces to satisfy deno-lint
- Fix no-case-declarations warnings in CLI command handlers

**Null/undefined safety:**
- Add checks for config.snmp and config.thresholds before access
- Fix IUpsStatus lastStatusChange to handle undefined with default value
- Add proper null checks in legacy configuration paths

**Type annotations:**
- Add explicit type annotations to lambda parameters (groupId, updateAvailable, etc.)
- Add TUpsModel type cast for 'cyberpower' default
- Import and use INupstConfig type where needed

**Parameter type fixes:**
- Fix implicit 'any' type errors in array callbacks
- Add type annotations to filter/find/map parameters

Files modified:
- ts/cli.ts: config.snmp/thresholds null checks, unused error variable fixes
- ts/cli/group-handler.ts: 4 error.message fixes + 2 parameter type annotations
- ts/cli/service-handler.ts: 3 error.message fixes
- ts/cli/ups-handler.ts: 5 error.message fixes + config checks + TUpsModel import
- ts/daemon.ts: 8 error.message fixes + IUpsStatus lastStatusChange fix + updateAvailable type
- ts/nupst.ts: 1 error.message fix
- ts/systemd.ts: 5 error.message fixes + parameter type annotation

All tests passing (3/3 SNMP tests + 10/10 logger tests)
Type check: ✓ No errors
2025-10-18 21:07:57 +00:00
9ccbbbdc37 fix(snmp): resolve TypeScript type errors for Deno strict mode
- Add Buffer import from node:buffer to manager.ts and types.ts
- Fix error handling type assertions (error/retryError/stdError as unknown)
- Add explicit type annotation to byte parameter in isPrintableAscii check
- All tests now passing (3 SNMP tests + 10 logger tests)
2025-10-18 16:17:01 +00:00
9efcc4b437 Phase 3: Reorganize CLI with subcommand structure
Major Changes:
- Reorganized commands into logical groups (service, ups, group)
- Added new subcommand structure:
  - nupst service <enable|disable|start|stop|restart|status|logs|start-daemon>
  - nupst ups <add|edit|remove|list|test>
  - nupst group <add|edit|remove|list>
  - nupst config [show]
- Added --version/-v flag support
- Added restart subcommand for service
- Added command aliases (ls, rm)
- Renamed delete() to remove() in handlers
- Maintained backward compatibility with deprecation warnings
- Updated all help messages to reflect new structure
- Added showVersion(), showServiceHelp(), showUpsHelp() methods
- Fixed readline imports to use node:readline

Breaking Changes:
- Old command format (e.g. 'nupst add') is deprecated
- Users should migrate to new format (e.g. 'nupst ups add')
- Backward compatibility maintained with warnings for now
2025-10-18 12:36:35 +00:00
a649c598ad Phase 1-2: Migrate to Deno with npm: and node: specifiers
- Created deno.json configuration
- Updated all imports to use npm:net-snmp@3.20.0
- Changed all Node.js built-in imports to node: specifiers
- Updated all .js extensions to .ts in imports
- Created mod.ts as Deno entry point
- Ready for Phase 3: CLI simplification
2025-10-18 11:59:55 +00:00
88e353eec6 fix(cli/ups-handler): Improve UPS device listing table formatting for better column alignment 2025-03-28 22:30:01 +00:00
1075335497 fix(cli): Improve table header formatting in group and UPS listings 2025-03-28 22:27:21 +00:00
9969e0f703 feat(cli): Refactor CLI commands to use dedicated handlers for UPS, group, and service management 2025-03-28 22:12:01 +00:00
c593d76ead fix(cli): Simplify UPS ID generation by removing the redundant promptForUniqueUpsId function in the CLI module and replacing it with the shortId helper. 2025-03-28 16:32:08 +00:00
0e55f22dad BREAKING CHANGE(core): Add multi-UPS support and group management; update CLI, configuration and documentation to support multiple UPS devices with group modes 2025-03-28 16:19:43 +00:00
456351ca34 fix(logger): Preserve logbox width after logBoxEnd so that subsequent logBoxLine calls continue using the set width. 2025-03-26 22:43:18 +00:00
45ee8208b5 fix(cli): Improve CLI logging consistency by replacing direct console output with unified logger calls. 2025-03-26 22:38:24 +00:00
f3de3f0618 fix(logger): Replace direct console logging with unified logger interface for consistent formatting 2025-03-26 22:28:38 +00:00
03056d279d update 2025-03-26 22:19:24 +00:00
fa4516de3b fix(systemd): Shorten closing log divider in systemd service installation output for consistent formatting. 2025-03-26 18:15:17 +00:00
6eb92959ec fix(cli): Fix CLI update output box formatting 2025-03-26 18:13:12 +00:00
f7e12cdcbb fix(systemd): Adjust logging border in systemd service installation output 2025-03-26 18:10:49 +00:00
459911fe5f fix(cli, systemd): Adjust log formatting for consistent output in CLI and systemd commands 2025-03-26 18:08:43 +00:00
65444b6d25 fix(daemon): Adjust console log box formatting for consistent output in daemon status messages 2025-03-26 18:04:12 +00:00
1123a99aea fix(cli): Improve console output formatting for status banners and logging messages 2025-03-26 18:00:54 +00:00
588aeabf4b fix(cli): Improve CLI formatting, refine debug option filtering, and remove unused dgram import in SNMP manager 2025-03-26 17:49:50 +00:00
f799c2ee66 fix(setup.sh): Clarify net-snmp dependency installation message in setup.sh 2025-03-26 15:56:31 +00:00
5b756dd223 fix(setup.sh): Improve setup script to detect and execute npm-cli.js directly using the Node.js binary 2025-03-26 15:53:38 +00:00
be6a7314c3 fix(daemon, setup): Improve shutdown command detection and fallback logic; update setup script to use absolute Node/npm paths 2025-03-26 15:49:54 +00:00
22ab472e58 fix(setup): Improve installation process in setup script by cleaning up package files and ensuring a minimal net-snmp dependency installation. 2025-03-26 14:09:01 +00:00
ceff285ff5 fix(setup): Update setup script to install only net-snmp dependency and create a minimal package-lock.json for better dependency control. 2025-03-26 14:05:44 +00:00
3e6b883b38 fix(setup/readme): Improve force update instructions and dependency installation process in setup.sh and readme.md 2025-03-26 13:54:49 +00:00
5951638967 fix(setup): Update setup.sh to temporarily add vendor Node.js binary to PATH for dependency installation, log Node and npm versions, and restore the original PATH afterwards. 2025-03-26 13:51:45 +00:00
cc1cfe894c feat(setup): Add --force update flag to setup script and update installation instructions 2025-03-26 13:49:47 +00:00
4de6081a74 fix(installer): Improve Node.js binary detection, dependency management, and SNMPv3 fallback logic 2025-03-26 13:27:47 +00:00
5a13e49803 update to use net-snmp 2025-03-26 13:13:01 +00:00
896233914f fix(snmp): Fix Eaton UPS support by updating power status OID and adjusting battery runtime conversion. 2025-03-25 14:47:57 +00:00
ae8219acf7 feat(cli): Automatically restart running NUPST service after configuration changes in interactive setup 2025-03-25 13:26:27 +00:00
65a9d1c798 fix(installer): Improve Git dependency handling and repository cloning in install.sh 2025-03-25 13:20:36 +00:00
9d893a97b6 fix(readme): Update installation instructions to combine download and execution into a single command for clarity 2025-03-25 13:17:28 +00:00
623b7ee51f fix(installer): Improve installation instructions for interactive and non-interactive setups 2025-03-25 13:15:48 +00:00
ed78db20e2 fix(install): Improve interactive terminal detection and update installation instructions 2025-03-25 13:12:38 +00:00
55c040df82 fix(install): Improve interactive mode detection and non-interactive installation handling in install.sh 2025-03-25 13:08:28 +00:00
89a5d23d2f fix(readme): Update Quick Install command syntax in readme for auto-yes installation 2025-03-25 12:57:12 +00:00
e47f316d0a fix(daemon): Refactor shutdown initiation logic in daemon by moving the initiateShutdown and monitorDuringShutdown methods from the SNMP manager to the daemon, and update calls accordingly 2025-03-25 11:49:50 +00:00
dc4fd5afba fix(docs): Update readme with detailed legal and trademark guidance 2025-03-25 11:36:11 +00:00
9b9e009523 feat(installer): Add auto-yes flag to installer and update installation documentation 2025-03-25 11:31:24 +00:00
bd5b85f6b0 feat(installer/cli): Add OS detection and git auto-installation support to install.sh and improve service setup prompt in CLI 2025-03-25 11:25:03 +00:00
bbb8f4a22c feat(cli): Add config command to display current configuration and update CLI help 2025-03-25 11:17:10 +00:00
0a459f9cd0 feat(cli): Add uninstall command to CLI and update shutdown delay for graceful VM shutdown 2025-03-25 11:05:58 +00:00
edce110c8a fix(cli/systemd): Fix status command to pass debug flag and improve systemd status logging output 2025-03-25 10:27:08 +00:00
ecfd171f97 BREAKING CHANGE(snmp): refactor: update SNMP type definitions and interface names for consistency 2025-03-25 10:21:21 +00:00
7ef38cf961 fix(systemd/readme): Improve README documentation and fix UPS status retrieval in systemd service 2025-03-25 09:49:30 +00:00
8ee21ea92b feat(core): Add update checking and version logging across startup components 2025-03-25 09:27:44 +00:00