bs9 1.0.0 → 1.3.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.
@@ -0,0 +1,181 @@
1
+ #!/usr/bin/env bun
2
+
3
+ import { Command } from "commander";
4
+ import { startCommand } from "../src/commands/start.js";
5
+ import { stopCommand } from "../src/commands/stop.js";
6
+ import { restartCommand } from "../src/commands/restart.js";
7
+ import { statusCommand } from "../src/commands/status.js";
8
+ import { logsCommand } from "../src/commands/logs.js";
9
+ import { monitCommand } from "../src/commands/monit.js";
10
+ import { webCommand } from "../src/commands/web.js";
11
+ import { alertCommand } from "../src/commands/alert.js";
12
+ import { exportCommand } from "../src/commands/export.js";
13
+ import { depsCommand } from "../src/commands/deps.js";
14
+ import { profileCommand } from "../src/commands/profile.js";
15
+ import { loadbalancerCommand } from "../src/loadbalancer/manager.js";
16
+ import { windowsCommand } from "../src/windows/service.js";
17
+ import { launchdCommand } from "../src/macos/launchd.js";
18
+ import { updateCommand } from "../src/commands/update.js";
19
+ import { dbpoolCommand } from "../src/database/pool.js";
20
+ import { advancedMonitoringCommand } from "../src/monitoring/advanced.js";
21
+ import { consulCommand } from "../src/discovery/consul.js";
22
+
23
+ const program = new Command();
24
+
25
+ program
26
+ .name("bs9")
27
+ .description("BS9 (Bun Sentinel 9) — Mission-critical process manager CLI")
28
+ .version("1.0.0");
29
+
30
+ program
31
+ .command("start")
32
+ .description("Start a process with hardened systemd unit")
33
+ .argument("<file>", "Application file to start")
34
+ .option("-n, --name <name>", "Service name")
35
+ .option("-p, --port <port>", "Port number", "3000")
36
+ .option("-h, --host <host>", "Host address", "localhost")
37
+ .option("--https", "Use HTTPS protocol")
38
+ .option("-e, --env <env>", "Environment variables (can be used multiple times)", (value, previous) => [...(previous || []), value])
39
+ .option("--otel", "Enable OpenTelemetry instrumentation", true)
40
+ .option("--prometheus", "Enable Prometheus metrics", true)
41
+ .option("--build", "Build TypeScript to JavaScript before starting")
42
+ .action(startCommand);
43
+
44
+ program
45
+ .command("stop")
46
+ .description("Stop a managed service")
47
+ .argument("<name>", "Service name")
48
+ .action(stopCommand);
49
+
50
+ program
51
+ .command("restart")
52
+ .description("Restart a managed service")
53
+ .argument("<name>", "Service name")
54
+ .action(restartCommand);
55
+
56
+ program
57
+ .command("status")
58
+ .description("Show status and SRE metrics for all services")
59
+ .option("-w, --watch", "Watch mode (refresh every 2s)")
60
+ .action(statusCommand);
61
+
62
+ program
63
+ .command("logs")
64
+ .description("Show logs for a service (via journalctl)")
65
+ .argument("<name>", "Service name")
66
+ .option("-f, --follow", "Follow logs")
67
+ .option("-n, --lines <number>", "Number of lines", "50")
68
+ .action(logsCommand);
69
+
70
+ program
71
+ .command("monit")
72
+ .description("Real-time terminal dashboard for all services")
73
+ .option("-r, --refresh <seconds>", "Refresh interval in seconds", "2")
74
+ .action(monitCommand);
75
+
76
+ program
77
+ .command("web")
78
+ .description("Start web-based monitoring dashboard")
79
+ .option("-p, --port <port>", "Port for web dashboard", "8080")
80
+ .option("-d, --detach", "Run in background")
81
+ .action(webCommand);
82
+
83
+ program
84
+ .command("alert")
85
+ .description("Configure alert thresholds and webhooks")
86
+ .option("--enable", "Enable alerts")
87
+ .option("--disable", "Disable alerts")
88
+ .option("--webhook <url>", "Set webhook URL for alerts")
89
+ .option("--cpu <percentage>", "CPU threshold percentage")
90
+ .option("--memory <percentage>", "Memory threshold percentage")
91
+ .option("--errorRate <percentage>", "Error rate threshold percentage")
92
+ .option("--uptime <percentage>", "Uptime threshold percentage")
93
+ .option("--cooldown <seconds>", "Alert cooldown period in seconds")
94
+ .option("--service <name>", "Configure alerts for specific service")
95
+ .option("--list", "List current alert configuration")
96
+ .option("--test", "Test webhook connectivity")
97
+ .action(alertCommand);
98
+
99
+ program
100
+ .command("export")
101
+ .description("Export historical metrics data")
102
+ .option("-f, --format <format>", "Export format (json|csv)", "json")
103
+ .option("-h, --hours <hours>", "Hours of data to export", "24")
104
+ .option("-o, --output <file>", "Output file path")
105
+ .option("-s, --service <name>", "Export specific service metrics")
106
+ .action(exportCommand);
107
+
108
+ program
109
+ .command("deps")
110
+ .description("Visualize service dependencies")
111
+ .option("-f, --format <format>", "Output format (text|dot|json)", "text")
112
+ .option("-o, --output <file>", "Output file path")
113
+ .action(depsCommand);
114
+
115
+ program
116
+ .command("profile")
117
+ .description("Performance profiling for services")
118
+ .option("-d, --duration <seconds>", "Profiling duration", "60")
119
+ .option("-i, --interval <ms>", "Sampling interval", "1000")
120
+ .option("-s, --service <name>", "Service name to profile")
121
+ .option("-o, --output <file>", "Output file path")
122
+ .action(profileCommand);
123
+
124
+ program
125
+ .command("loadbalancer")
126
+ .description("Load balancer management")
127
+ .argument("<action>", "Action to perform")
128
+ .option("-p, --port <port>", "Load balancer port", "8080")
129
+ .option("-a, --algorithm <type>", "Load balancing algorithm", "round-robin")
130
+ .option("-b, --backends <list>", "Backend servers (host:port,host:port)")
131
+ .option("--health-check", "Enable health checking", true)
132
+ .option("--health-path <path>", "Health check path", "/healthz")
133
+ .option("--health-interval <ms>", "Health check interval", "10000")
134
+ .action(loadbalancerCommand);
135
+
136
+ program
137
+ .command("dbpool")
138
+ .description("Database connection pool management")
139
+ .argument("<action>", "Action to perform")
140
+ .option("--host <host>", "Database host", "localhost")
141
+ .option("--port <port>", "Database port", "5432")
142
+ .option("--database <name>", "Database name", "testdb")
143
+ .option("--username <user>", "Database username", "user")
144
+ .option("--password <pass>", "Database password", "password")
145
+ .option("--max-connections <num>", "Maximum connections", "10")
146
+ .option("--min-connections <num>", "Minimum connections", "2")
147
+ .option("--concurrency <num>", "Test concurrency", "10")
148
+ .option("--iterations <num>", "Test iterations", "100")
149
+ .action(dbpoolCommand);
150
+
151
+ program
152
+ .command("update")
153
+ .description("Update BS9 to latest version")
154
+ .option("--check", "Check for updates without installing")
155
+ .option("--force", "Force update even if already latest")
156
+ .option("--rollback", "Rollback to previous version")
157
+ .option("--version <version>", "Update to specific version")
158
+ .action(updateCommand);
159
+
160
+ program
161
+ .command("advanced")
162
+ .description("Advanced monitoring dashboard")
163
+ .option("--port <port>", "Dashboard port", "8090")
164
+ .action(advancedMonitoringCommand);
165
+
166
+ program
167
+ .command("consul")
168
+ .description("Consul service discovery")
169
+ .argument("<action>", "Action to perform")
170
+ .option("--consul-url <url>", "Consul URL", "http://localhost:8500")
171
+ .option("--name <name>", "Service name")
172
+ .option("--id <id>", "Service ID")
173
+ .option("--address <address>", "Service address")
174
+ .option("--port <port>", "Service port")
175
+ .option("--tags <tags>", "Service tags (comma-separated)")
176
+ .option("--health-check <url>", "Health check URL")
177
+ .option("--meta <json>", "Service metadata (JSON)")
178
+ .option("--service <service>", "Service name for discovery")
179
+ .action(consulCommand);
180
+
181
+ program.parse();
@@ -0,0 +1,197 @@
1
+ #!/usr/bin/env bun
2
+
3
+ import { Command } from "commander";
4
+ import { startCommand } from "../src/commands/start.js";
5
+ import { stopCommand } from "../src/commands/stop.js";
6
+ import { restartCommand } from "../src/commands/restart.js";
7
+ import { statusCommand } from "../src/commands/status.js";
8
+ import { logsCommand } from "../src/commands/logs.js";
9
+ import { monitCommand } from "../src/commands/monit.js";
10
+ import { webCommand } from "../src/commands/web.js";
11
+ import { alertCommand } from "../src/commands/alert.js";
12
+ import { exportCommand } from "../src/commands/export.js";
13
+ import { depsCommand } from "../src/commands/deps.js";
14
+ import { profileCommand } from "../src/commands/profile.js";
15
+ import { loadbalancerCommand } from "../src/loadbalancer/manager.js";
16
+ import { windowsCommand } from "../src/windows/service.js";
17
+ import { launchdCommand } from "../src/macos/launchd.js";
18
+ import { dbpoolCommand } from "../src/database/pool.js";
19
+
20
+ const program = new Command();
21
+
22
+ program
23
+ .name("bs9")
24
+ .description("BS9 (Bun Sentinel 9) — Mission-critical process manager CLI")
25
+ .version("1.0.0");
26
+
27
+ program
28
+ .command("start")
29
+ .description("Start a process with hardened systemd unit")
30
+ .argument("<file>", "Script or executable to run")
31
+ .option("-n, --name <name>", "Service name (defaults to filename)")
32
+ .option("-p, --port <port>", "Port to expose (for metrics/health)", "3000")
33
+ .option("--env <env...>", "Environment variables (KEY=VALUE)")
34
+ .option("--no-otel", "Disable automatic OpenTelemetry injection")
35
+ .option("--no-prometheus", "Disable automatic Prometheus metrics")
36
+ .option("--build", "Build TypeScript to optimized JavaScript for production (AOT)")
37
+ .action(startCommand);
38
+
39
+ program
40
+ .command("stop")
41
+ .description("Stop a managed service")
42
+ .argument("<name>", "Service name")
43
+ .action(stopCommand);
44
+
45
+ program
46
+ .command("restart")
47
+ .description("Restart a managed service")
48
+ .argument("<name>", "Service name")
49
+ .action(restartCommand);
50
+
51
+ program
52
+ .command("status")
53
+ .description("Show status and SRE metrics for all services")
54
+ .option("-w, --watch", "Watch mode (refresh every 2s)")
55
+ .action(statusCommand);
56
+
57
+ program
58
+ .command("logs")
59
+ .description("Show logs for a service (via journalctl)")
60
+ .argument("<name>", "Service name")
61
+ .option("-f, --follow", "Follow logs")
62
+ .option("-n, --lines <number>", "Number of lines", "50")
63
+ .action(logsCommand);
64
+
65
+ program
66
+ .command("monit")
67
+ .description("Real-time terminal dashboard for all services")
68
+ .option("-r, --refresh <seconds>", "Refresh interval in seconds", "2")
69
+ .action(monitCommand);
70
+
71
+ program
72
+ .command("web")
73
+ .description("Start web-based monitoring dashboard")
74
+ .option("-p, --port <port>", "Port for web dashboard", "8080")
75
+ .option("-d, --detach", "Run in background")
76
+ .action(webCommand);
77
+
78
+ program
79
+ .command("alert")
80
+ .description("Configure alert thresholds and webhooks")
81
+ .option("--enable", "Enable alerts")
82
+ .option("--disable", "Disable alerts")
83
+ .option("--webhook <url>", "Set webhook URL for alerts")
84
+ .option("--cpu <percentage>", "CPU threshold percentage")
85
+ .option("--memory <percentage>", "Memory threshold percentage")
86
+ .option("--errorRate <percentage>", "Error rate threshold percentage")
87
+ .option("--uptime <percentage>", "Uptime threshold percentage")
88
+ .option("--cooldown <seconds>", "Alert cooldown period in seconds")
89
+ .option("--service <name>", "Configure alerts for specific service")
90
+ .option("--list", "List current alert configuration")
91
+ .option("--test", "Test webhook connectivity")
92
+ .action(alertCommand);
93
+
94
+ program
95
+ .command("export")
96
+ .description("Export historical metrics data")
97
+ .option("-f, --format <format>", "Export format (json|csv)", "json")
98
+ .option("-h, --hours <hours>", "Hours of data to export", "24")
99
+ .option("-o, --output <file>", "Output file path")
100
+ .option("-s, --service <name>", "Export specific service metrics")
101
+ .action(exportCommand);
102
+
103
+ program
104
+ .command("deps")
105
+ .description("Visualize service dependencies")
106
+ .option("-f, --format <format>", "Output format (text|dot|json)", "text")
107
+ .option("-o, --output <file>", "Output file path")
108
+ .action(depsCommand);
109
+
110
+ program
111
+ .command("profile")
112
+ .description("Performance profiling for services")
113
+ .option("-d, --duration <seconds>", "Profiling duration", "60")
114
+ .option("-i, --interval <ms>", "Sampling interval", "1000")
115
+ .option("-s, --service <name>", "Service name to profile")
116
+ .option("-o, --output <file>", "Output file path")
117
+ .action(profileCommand);
118
+
119
+ program
120
+ .command("loadbalancer")
121
+ .description("Load balancer management")
122
+ .argument("<action>", "Action to perform")
123
+ .option("-p, --port <port>", "Load balancer port", "8080")
124
+ .option("-a, --algorithm <type>", "Load balancing algorithm", "round-robin")
125
+ .option("-b, --backends <list>", "Backend servers (host:port,host:port)")
126
+ .option("--health-check", "Enable health checking", true)
127
+ .option("--health-path <path>", "Health check path", "/healthz")
128
+ .option("--health-interval <ms>", "Health check interval", "10000")
129
+ .action(loadbalancerCommand);
130
+
131
+ program
132
+ .command("dbpool")
133
+ .description("Database connection pool management")
134
+ .argument("<action>", "Action to perform")
135
+ .option("--host <host>", "Database host", "localhost")
136
+ .option("--port <port>", "Database port", "5432")
137
+ .option("--database <name>", "Database name", "testdb")
138
+ .option("--username <user>", "Database username", "user")
139
+ .option("--password <pass>", "Database password", "password")
140
+ .option("--max-connections <num>", "Maximum connections", "10")
141
+ .option("--min-connections <num>", "Minimum connections", "2")
142
+ .option("--concurrency <num>", "Test concurrency", "10")
143
+ .option("--iterations <num>", "Test iterations", "100")
144
+ .action(dbpoolCommand);
145
+
146
+ // Platform-specific commands
147
+ const platform = process.platform;
148
+
149
+ if (platform === 'win32') {
150
+ program
151
+ .command("windows")
152
+ .description("Windows service management")
153
+ .argument("<action>", "Action to perform")
154
+ .option("--name <name>", "Service name")
155
+ .option("--file <path>", "Executable file path")
156
+ .option("--displayName <name>", "Display name")
157
+ .option("--description <desc>", "Service description")
158
+ .option("--workingDir <path>", "Working directory")
159
+ .option("--args <args>", "Command line arguments (JSON array)")
160
+ .option("--env <env>", "Environment variables (JSON object)")
161
+ .action(windowsCommand);
162
+ } else if (platform === 'darwin') {
163
+ program
164
+ .command("macos")
165
+ .description("macOS launchd service management")
166
+ .argument("<action>", "Action to perform")
167
+ .option("--name <name>", "Service name")
168
+ .option("--file <path>", "Executable file path")
169
+ .option("--workingDir <path>", "Working directory")
170
+ .option("--args <args>", "Command line arguments (JSON array)")
171
+ .option("--env <env>", "Environment variables (JSON object)")
172
+ .option("--autoStart", "Start service at load")
173
+ .option("--keepAlive", "Keep service alive")
174
+ .option("--logOut <path>", "Standard output log path")
175
+ .option("--logErr <path>", "Standard error log path")
176
+ .action(launchdCommand);
177
+ }
178
+
179
+ // Add platform info command
180
+ program
181
+ .command("platform")
182
+ .description("Show platform information")
183
+ .action(() => {
184
+ const { getPlatformInfo, getPlatformHelp } = require("../src/platform/detect.js");
185
+ const info = getPlatformInfo();
186
+ console.log('🖥️ BS9 Platform Information');
187
+ console.log('='.repeat(50));
188
+ console.log(`Platform: ${info.platform}`);
189
+ console.log(`Service Manager: ${info.serviceManager}`);
190
+ console.log(`Config Directory: ${info.configDir}`);
191
+ console.log(`Log Directory: ${info.logDir}`);
192
+ console.log(`Service Directory: ${info.serviceDir}`);
193
+ console.log('');
194
+ console.log(getPlatformHelp());
195
+ });
196
+
197
+ program.parse();
@@ -0,0 +1,156 @@
1
+ #!/usr/bin/env bun
2
+
3
+ import { Command } from "commander";
4
+ import { startCommand } from "../src/commands/start.js";
5
+ import { stopCommand } from "../src/commands/stop.js";
6
+ import { restartCommand } from "../src/commands/restart.js";
7
+ import { statusCommand } from "../src/commands/status.js";
8
+ import { logsCommand } from "../src/commands/logs.js";
9
+ import { monitCommand } from "../src/commands/monit.js";
10
+ import { webCommand } from "../src/commands/web.js";
11
+ import { alertCommand } from "../src/commands/alert.js";
12
+ import { exportCommand } from "../src/commands/export.js";
13
+ import { depsCommand } from "../src/commands/deps.js";
14
+ import { profileCommand } from "../src/commands/profile.js";
15
+ import { windowsCommand } from "../src/windows/service.js";
16
+ import { loadbalancerCommand } from "../src/loadbalancer/manager.js";
17
+ import { dbpoolCommand } from "../src/database/pool.js";
18
+
19
+ const program = new Command();
20
+
21
+ program
22
+ .name("bs9")
23
+ .description("BS9 (Bun Sentinel 9) — Mission-critical process manager CLI")
24
+ .version("1.0.0");
25
+
26
+ program
27
+ .command("start")
28
+ .description("Start a process with hardened systemd unit")
29
+ .argument("<file>", "Script or executable to run")
30
+ .option("-n, --name <name>", "Service name (defaults to filename)")
31
+ .option("-p, --port <port>", "Port to expose (for metrics/health)", "3000")
32
+ .option("--env <env...>", "Environment variables (KEY=VALUE)")
33
+ .option("--no-otel", "Disable automatic OpenTelemetry injection")
34
+ .option("--no-prometheus", "Disable automatic Prometheus metrics")
35
+ .option("--build", "Build TypeScript to optimized JavaScript for production (AOT)")
36
+ .action(startCommand);
37
+
38
+ program
39
+ .command("stop")
40
+ .description("Stop a managed service")
41
+ .argument("<name>", "Service name")
42
+ .action(stopCommand);
43
+
44
+ program
45
+ .command("restart")
46
+ .description("Restart a managed service")
47
+ .argument("<name>", "Service name")
48
+ .action(restartCommand);
49
+
50
+ program
51
+ .command("status")
52
+ .description("Show status and SRE metrics for all services")
53
+ .option("-w, --watch", "Watch mode (refresh every 2s)")
54
+ .action(statusCommand);
55
+
56
+ program
57
+ .command("logs")
58
+ .description("Show logs for a service (via journalctl)")
59
+ .argument("<name>", "Service name")
60
+ .option("-f, --follow", "Follow logs")
61
+ .option("-n, --lines <number>", "Number of lines", "50")
62
+ .action(logsCommand);
63
+
64
+ program
65
+ .command("monit")
66
+ .description("Real-time terminal dashboard for all services")
67
+ .option("-r, --refresh <seconds>", "Refresh interval in seconds", "2")
68
+ .action(monitCommand);
69
+
70
+ program
71
+ .command("web")
72
+ .description("Start web-based monitoring dashboard")
73
+ .option("-p, --port <port>", "Port for web dashboard", "8080")
74
+ .option("-d, --detach", "Run in background")
75
+ .action(webCommand);
76
+
77
+ program
78
+ .command("alert")
79
+ .description("Configure alert thresholds and webhooks")
80
+ .option("--enable", "Enable alerts")
81
+ .option("--disable", "Disable alerts")
82
+ .option("--webhook <url>", "Set webhook URL for alerts")
83
+ .option("--cpu <percentage>", "CPU threshold percentage")
84
+ .option("--memory <percentage>", "Memory threshold percentage")
85
+ .option("--errorRate <percentage>", "Error rate threshold percentage")
86
+ .option("--uptime <percentage>", "Uptime threshold percentage")
87
+ .option("--cooldown <seconds>", "Alert cooldown period in seconds")
88
+ .option("--service <name>", "Configure alerts for specific service")
89
+ .option("--list", "List current alert configuration")
90
+ .option("--test", "Test webhook connectivity")
91
+ .action(alertCommand);
92
+
93
+ program
94
+ .command("export")
95
+ .description("Export historical metrics data")
96
+ .option("-f, --format <format>", "Export format (json|csv)", "json")
97
+ .option("-h, --hours <hours>", "Hours of data to export", "24")
98
+ .option("-o, --output <file>", "Output file path")
99
+ .option("-s, --service <name>", "Export specific service metrics")
100
+ .action(exportCommand);
101
+
102
+ program
103
+ .command("deps")
104
+ .description("Visualize service dependencies")
105
+ .option("-f, --format <format>", "Output format (text|dot|json)", "text")
106
+ .option("-o, --output <file>", "Output file path")
107
+ .action(depsCommand);
108
+
109
+ program
110
+ .command("profile")
111
+ .description("Performance profiling for services")
112
+ .option("-d, --duration <seconds>", "Profiling duration", "60")
113
+ .option("-i, --interval <ms>", "Sampling interval", "1000")
114
+ .option("-s, --service <name>", "Service name to profile")
115
+ .option("-o, --output <file>", "Output file path")
116
+ .action(profileCommand);
117
+
118
+ program
119
+ .command("windows")
120
+ .description("Windows service management")
121
+ .argument("<action>", "Action to perform", "create|start|stop|delete|status")
122
+ .argument("[name]", "Service name")
123
+ .option("--file <path>", "Service file path")
124
+ .option("--start-type <type>", "Start type (auto|demand|disabled)", "auto")
125
+ .option("--auto-start", "Auto-start service", true)
126
+ .option("--env <key=value>", "Environment variables")
127
+ .action(windowsCommand);
128
+
129
+ program
130
+ .command("loadbalancer")
131
+ .description("Load balancer management")
132
+ .argument("<action>", "Action to perform", "start|status|config")
133
+ .option("-p, --port <port>", "Load balancer port", "8080")
134
+ .option("-a, --algorithm <type>", "Load balancing algorithm", "round-robin")
135
+ .option("-b, --backends <list>", "Backend servers (host:port,host:port)")
136
+ .option("--health-check", "Enable health checking", true)
137
+ .option("--health-path <path>", "Health check path", "/healthz")
138
+ .option("--health-interval <ms>", "Health check interval", "10000")
139
+ .action(loadbalancerCommand);
140
+
141
+ program
142
+ .command("dbpool")
143
+ .description("Database connection pool management")
144
+ .argument("<action>", "Action to perform", "start|test|stats")
145
+ .option("--host <host>", "Database host", "localhost")
146
+ .option("--port <port>", "Database port", "5432")
147
+ .option("--database <name>", "Database name", "testdb")
148
+ .option("--username <user>", "Database username", "user")
149
+ .option("--password <pass>", "Database password", "password")
150
+ .option("--max-connections <num>", "Maximum connections", "10")
151
+ .option("--min-connections <num>", "Minimum connections", "2")
152
+ .option("--concurrency <num>", "Test concurrency", "10")
153
+ .option("--iterations <num>", "Test iterations", "100")
154
+ .action(dbpoolCommand);
155
+
156
+ program.parse();
package/dist/bs9.js ADDED
@@ -0,0 +1,2 @@
1
+ // @bun
2
+ var e="./bs9-33vcpmb9.";export{e as default};
package/package.json CHANGED
@@ -1,12 +1,11 @@
1
1
  {
2
2
  "name": "bs9",
3
- "version": "1.0.0",
3
+ "version": "1.3.0",
4
4
  "description": "Bun Sentinel 9 - High-performance, non-root process manager for Bun",
5
5
  "type": "module",
6
6
  "main": "src/index.ts",
7
7
  "bin": {
8
- "bs9": "./bin/bs9",
9
- "bsn": "./bin/bs9"
8
+ "bs9": "./bin/bs9"
10
9
  },
11
10
  "files": [
12
11
  "bin",
@@ -36,7 +35,7 @@
36
35
  "@opentelemetry/resources": "^1.23.0",
37
36
  "@opentelemetry/sdk-node": "^0.50.0",
38
37
  "@opentelemetry/semantic-conventions": "^1.23.0",
39
- "commander": "^12.0.0",
38
+ "commander": "^14.0.2",
40
39
  "pg": "^8.12.0",
41
40
  "pino": "^9.3.1",
42
41
  "prom-client": "^15.1.2"