@powerhousedao/ph-cli 0.40.85-dev.2 → 0.40.85-dev.4

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/dist/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@powerhousedao/ph-cli",
3
- "version": "0.40.85-dev.2",
3
+ "version": "0.40.85-dev.4",
4
4
  "description": "",
5
5
  "license": "AGPL-3.0-only",
6
6
  "type": "module",
@@ -0,0 +1,164 @@
1
+ #!/usr/bin/env bash
2
+
3
+ # =============================================================================
4
+ # Configuration
5
+ # =============================================================================
6
+ PROJECT_NAME=${1:-"global"}
7
+ ACTION=${2:-"status"}
8
+
9
+ # =============================================================================
10
+ # OS Detection and Windows Handling
11
+ # =============================================================================
12
+ if [[ "$OSTYPE" == "msys" || "$OSTYPE" == "win32" ]]; then
13
+ if [ -f "$0.ps1" ]; then
14
+ powershell -ExecutionPolicy Bypass -File "$0.ps1" -PROJECT_NAME "$PROJECT_NAME" -ACTION "$ACTION"
15
+ else
16
+ echo "Error: Windows management script (manage-environment.ps1) not found"
17
+ exit 1
18
+ fi
19
+ else
20
+ # =============================================================================
21
+ # Service Management
22
+ # =============================================================================
23
+ echo "━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━"
24
+ echo " Managing project: $PROJECT_NAME"
25
+ echo "━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━"
26
+
27
+ # Function to check if service is properly set up
28
+ check_setup() {
29
+ local project_name=$1
30
+ local error=0
31
+
32
+ # Check if project directory exists
33
+ if [ ! -d "$project_name" ]; then
34
+ echo "Error: Project directory '$project_name' not found"
35
+ error=1
36
+ fi
37
+
38
+ # Check if .env file exists
39
+ if [ ! -f "$project_name/.env" ]; then
40
+ echo "Error: .env file not found in project directory"
41
+ error=1
42
+ fi
43
+
44
+ # Check if Nginx configuration exists
45
+ if [ ! -f "/etc/nginx/sites-available/$project_name" ]; then
46
+ echo "Error: Nginx configuration not found"
47
+ error=1
48
+ fi
49
+
50
+ # Check if database is configured
51
+ if ! grep -q "DATABASE_URL" "$project_name/.env"; then
52
+ echo "Error: Database configuration not found in .env file"
53
+ error=1
54
+ fi
55
+
56
+ if [ $error -eq 1 ]; then
57
+ echo "Please run 'ph setup-environment' first to set up the service"
58
+ exit 1
59
+ fi
60
+ }
61
+
62
+ # Function to enable/disable Nginx site
63
+ manage_nginx_site() {
64
+ local action=$1
65
+ local site_path="/etc/nginx/sites-available/$PROJECT_NAME"
66
+ local enabled_path="/etc/nginx/sites-enabled/$PROJECT_NAME"
67
+
68
+ if [ ! -f "$site_path" ]; then
69
+ echo "Error: Nginx site configuration for $PROJECT_NAME not found"
70
+ return 1
71
+ fi
72
+
73
+ case "$action" in
74
+ "enable")
75
+ if [ ! -L "$enabled_path" ]; then
76
+ sudo ln -sf "$site_path" "$enabled_path"
77
+ sudo nginx -t && sudo nginx -s reload
78
+ fi
79
+ ;;
80
+ "disable")
81
+ if [ -L "$enabled_path" ]; then
82
+ sudo rm -f "$enabled_path"
83
+ sudo nginx -t && sudo nginx -s reload
84
+ fi
85
+ ;;
86
+ esac
87
+ }
88
+
89
+ case "$ACTION" in
90
+ "start")
91
+ check_setup "$PROJECT_NAME"
92
+ echo "Starting services..."
93
+ # Build Connect
94
+ echo "Building Connect..."
95
+ ph connect build
96
+
97
+ # Enable Nginx site
98
+ manage_nginx_site "enable"
99
+
100
+ # Start Switchboard via PM2
101
+ if ! pm2 list | grep -q "switchboard_${PROJECT_NAME}"; then
102
+ cd $PROJECT_NAME
103
+ pm2 start "pnpm switchboard" --name "switchboard_${PROJECT_NAME}"
104
+ pm2 save
105
+ else
106
+ pm2 start "switchboard_${PROJECT_NAME}"
107
+ fi
108
+ ;;
109
+
110
+ "stop")
111
+ check_setup "$PROJECT_NAME"
112
+ echo "Stopping services..."
113
+ # Stop Switchboard via PM2
114
+ if pm2 list | grep -q "switchboard_${PROJECT_NAME}"; then
115
+ pm2 stop "switchboard_${PROJECT_NAME}"
116
+ fi
117
+
118
+ # Disable Nginx site
119
+ manage_nginx_site "disable"
120
+ ;;
121
+
122
+ "restart")
123
+ check_setup "$PROJECT_NAME"
124
+ echo "Restarting services..."
125
+ # Build Connect
126
+ echo "Building Connect..."
127
+ ph connect build
128
+
129
+ # Restart Nginx site
130
+ manage_nginx_site "disable"
131
+ manage_nginx_site "enable"
132
+
133
+ # Restart Switchboard via PM2
134
+ if pm2 list | grep -q "switchboard_${PROJECT_NAME}"; then
135
+ pm2 restart "switchboard_${PROJECT_NAME}"
136
+ else
137
+ cd $PROJECT_NAME
138
+ pm2 start "pnpm switchboard" --name "switchboard_${PROJECT_NAME}"
139
+ pm2 save
140
+ fi
141
+ ;;
142
+
143
+ "status")
144
+ check_setup "$PROJECT_NAME"
145
+ echo "Checking service status..."
146
+ echo "Nginx site status:"
147
+ if [ -L "/etc/nginx/sites-enabled/$PROJECT_NAME" ]; then
148
+ echo "Site is enabled"
149
+ else
150
+ echo "Site is disabled"
151
+ fi
152
+
153
+ echo -e "\nSwitchboard status:"
154
+ pm2 list | grep "switchboard_${PROJECT_NAME}"
155
+ ;;
156
+
157
+ *)
158
+ echo "Usage: $0 [project_name] {start|stop|restart|status}"
159
+ echo "Default project_name: global"
160
+ echo "Default action: status"
161
+ exit 1
162
+ ;;
163
+ esac
164
+ fi
@@ -4,6 +4,7 @@
4
4
  # Configuration
5
5
  # =============================================================================
6
6
  TARGET_TAG=${1:-"latest"}
7
+ PROJECT_NAME=${2:-"global"}
7
8
 
8
9
  # =============================================================================
9
10
  # OS Detection and Windows Handling
@@ -22,17 +23,15 @@ else
22
23
  sudo apt install -y postgresql postgresql-contrib nginx
23
24
 
24
25
  # =============================================================================
25
- # Global Project Setup
26
+ # Project Setup
26
27
  # =============================================================================
27
28
  echo "━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━"
28
- echo " Setting up global project"
29
+ echo " Setting up project: $PROJECT_NAME"
29
30
  echo "━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━"
30
31
 
31
- sudo mkdir -p /var/www
32
- cd /var/www
33
-
34
- ph init powerhouse --$TARGET_TAG
35
- cd powerhouse
32
+ ph init $PROJECT_NAME --$TARGET_TAG
33
+ cd $PROJECT_NAME
34
+ ph use $TARGET_TAG
36
35
 
37
36
  # =============================================================================
38
37
  # Interactive Package Installation
@@ -70,11 +69,30 @@ else
70
69
  # Generate database credentials
71
70
  DB_PASSWORD="powerhouse"
72
71
  DB_USER="powerhouse"
73
- DB_NAME="powerhouse"
72
+ DB_NAME="powerhouse_${PROJECT_NAME}"
73
+
74
+ # Check if database already exists
75
+ if sudo -u postgres psql -lqt | cut -d \| -f 1 | grep -qw $DB_NAME; then
76
+ echo "Database $DB_NAME already exists"
77
+ read -p "Do you want to recreate it? (y/n): " recreate_db
78
+ if [ "$recreate_db" = "y" ]; then
79
+ sudo -u postgres psql -c "DROP DATABASE $DB_NAME;"
80
+ else
81
+ echo "Using existing database"
82
+ fi
83
+ fi
74
84
 
75
- # Create database and user
85
+ # Create database and user if they don't exist
76
86
  sudo -u postgres psql << EOF
77
- CREATE USER $DB_USER WITH PASSWORD '$DB_PASSWORD';
87
+ DO
88
+ \$do\$
89
+ BEGIN
90
+ IF NOT EXISTS (SELECT FROM pg_catalog.pg_roles WHERE rolname = '$DB_USER') THEN
91
+ CREATE USER $DB_USER WITH PASSWORD '$DB_PASSWORD';
92
+ END IF;
93
+ END
94
+ \$do\$;
95
+
78
96
  CREATE DATABASE $DB_NAME OWNER $DB_USER;
79
97
  GRANT ALL PRIVILEGES ON DATABASE $DB_NAME TO $DB_USER;
80
98
  EOF
@@ -95,7 +113,7 @@ EOF
95
113
  fi
96
114
 
97
115
  # Save DATABASE_URL to .env file
98
- echo "DATABASE_URL=$DATABASE_URL" | sudo tee -a /var/www/powerhouse/.env
116
+ echo "DATABASE_URL=$DATABASE_URL" | sudo tee -a .env
99
117
 
100
118
  # =============================================================================
101
119
  # SSL Configuration
@@ -118,17 +136,8 @@ EOF
118
136
  echo "━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━"
119
137
  echo " Domain Setup"
120
138
  echo "━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━"
121
- read -p "Enter base domain (e.g. powerhouse.xyz): " base_domain
122
- read -p "Enter subdomain for Connect service (default: connect): " connect_subdomain
123
- read -p "Enter subdomain for Switchboard service (default: switchboard): " switchboard_subdomain
124
-
125
- # Set default subdomains
126
- connect_subdomain=${connect_subdomain:-connect}
127
- switchboard_subdomain=${switchboard_subdomain:-switchboard}
128
-
129
- # Construct full domains
130
- connect_domain="${connect_subdomain}.${base_domain}"
131
- switchboard_domain="${switchboard_subdomain}.${base_domain}"
139
+ read -p "Enter Connect domain (e.g. connect.google.com): " connect_domain
140
+ read -p "Enter Switchboard domain (e.g. switchboard.google.com): " switchboard_domain
132
141
 
133
142
  echo "Using domains:"
134
143
  echo "Connect: $connect_domain"
@@ -140,12 +149,87 @@ EOF
140
149
  sudo openssl req -x509 -nodes -days 1 -newkey rsa:2048 \
141
150
  -keyout /etc/nginx/ssl/temp.key \
142
151
  -out /etc/nginx/ssl/temp.crt \
143
- -subj "/CN=$base_domain" \
152
+ -subj "/CN=$connect_domain" \
144
153
  -addext "subjectAltName = DNS:$connect_domain,DNS:$switchboard_domain"
145
154
 
146
- # Create Nginx configuration for domains
147
- echo "Creating Nginx configuration..."
148
- sudo tee /etc/nginx/sites-available/powerhouse > /dev/null << EOF
155
+ # Check if Nginx configuration already exists
156
+ if [ -f "/etc/nginx/sites-available/$PROJECT_NAME" ]; then
157
+ echo "Nginx configuration for $PROJECT_NAME already exists"
158
+ read -p "Do you want to overwrite it? (y/n): " overwrite_nginx
159
+ if [ "$overwrite_nginx" != "y" ]; then
160
+ echo "Keeping existing Nginx configuration"
161
+ else
162
+ # Create Nginx configuration for domains
163
+ echo "Creating Nginx configuration..."
164
+ sudo tee /etc/nginx/sites-available/$PROJECT_NAME > /dev/null << EOF
165
+ # Security headers
166
+ add_header Strict-Transport-Security "max-age=63072000" always;
167
+ add_header X-Frame-Options DENY;
168
+ add_header X-Content-Type-Options nosniff;
169
+ add_header X-XSS-Protection "1; mode=block";
170
+
171
+ server {
172
+ listen 80;
173
+ server_name $connect_domain $switchboard_domain;
174
+ return 301 https://\$host\$request_uri;
175
+ }
176
+
177
+ server {
178
+ listen 443 ssl http2;
179
+ server_name $connect_domain;
180
+
181
+ ssl_certificate /etc/nginx/ssl/temp.crt;
182
+ ssl_certificate_key /etc/nginx/ssl/temp.key;
183
+
184
+ # SSL configuration
185
+ ssl_protocols TLSv1.2 TLSv1.3;
186
+ ssl_ciphers ECDHE-ECDSA-AES128-GCM-SHA256:ECDHE-RSA-AES128-GCM-SHA256:ECDHE-ECDSA-AES256-GCM-SHA384:ECDHE-RSA-AES256-GCM-SHA384:ECDHE-ECDSA-CHACHA20-POLY1305:ECDHE-RSA-CHACHA20-POLY1305:DHE-RSA-AES128-GCM-SHA256:DHE-RSA-AES256-GCM-SHA384;
187
+ ssl_prefer_server_ciphers off;
188
+ ssl_session_timeout 1d;
189
+ ssl_session_cache shared:SSL:50m;
190
+ ssl_session_tickets off;
191
+ ssl_stapling on;
192
+ ssl_stapling_verify on;
193
+
194
+ if (\$http_x_forwarded_proto = "http") {
195
+ return 301 https://\$server_name\$request_uri;
196
+ }
197
+
198
+ location / {
199
+ root /var/www/powerhouse/.ph/connect-build/dist;
200
+ try_files \$uri \$uri/ /index.html;
201
+ add_header Cache-Control "no-cache";
202
+ add_header X-Forwarded-Proto \$scheme;
203
+ add_header X-Forwarded-Host \$host;
204
+ add_header X-Forwarded-Port \$server_port;
205
+ }
206
+ }
207
+
208
+ server {
209
+ listen 443 ssl http2;
210
+ server_name $switchboard_domain;
211
+
212
+ ssl_certificate /etc/nginx/ssl/temp.crt;
213
+ ssl_certificate_key /etc/nginx/ssl/temp.key;
214
+
215
+ location / {
216
+ proxy_pass http://localhost:4001;
217
+ proxy_http_version 1.1;
218
+ proxy_set_header Upgrade \$http_upgrade;
219
+ proxy_set_header Connection 'upgrade';
220
+ proxy_set_header Host \$host;
221
+ proxy_cache_bypass \$http_upgrade;
222
+ proxy_set_header X-Real-IP \$remote_addr;
223
+ proxy_set_header X-Forwarded-For \$proxy_add_x_forwarded_for;
224
+ proxy_set_header X-Forwarded-Proto \$scheme;
225
+ }
226
+ }
227
+ EOF
228
+ fi
229
+ else
230
+ # Create Nginx configuration for domains
231
+ echo "Creating Nginx configuration..."
232
+ sudo tee /etc/nginx/sites-available/$PROJECT_NAME > /dev/null << EOF
149
233
  # Security headers
150
234
  add_header Strict-Transport-Security "max-age=63072000" always;
151
235
  add_header X-Frame-Options DENY;
@@ -209,18 +293,18 @@ server {
209
293
  }
210
294
  }
211
295
  EOF
296
+ fi
212
297
 
213
298
  # Enable the site
214
- sudo ln -sf /etc/nginx/sites-available/powerhouse /etc/nginx/sites-enabled/
299
+ sudo ln -sf /etc/nginx/sites-available/$PROJECT_NAME /etc/nginx/sites-enabled/
215
300
  sudo rm -f /etc/nginx/sites-enabled/default
216
301
 
217
- # Test and restart Nginx
302
+ # Test Nginx configuration
218
303
  sudo nginx -t
219
- sudo systemctl restart nginx
220
304
 
221
305
  # Obtain SSL certificates
222
306
  echo "Obtaining SSL certificates..."
223
- sudo certbot --nginx -d $connect_domain -d $switchboard_domain --non-interactive --agree-tos --email admin@$base_domain
307
+ sudo certbot --nginx -d $connect_domain -d $switchboard_domain --non-interactive --agree-tos --email admin@$connect_domain
224
308
 
225
309
  # Remove temporary certificates
226
310
  sudo rm -f /etc/nginx/ssl/temp.*
@@ -239,7 +323,7 @@ EOF
239
323
 
240
324
  # Create Nginx configuration for self-signed
241
325
  echo "Creating Nginx configuration..."
242
- sudo tee /etc/nginx/sites-available/powerhouse > /dev/null << EOF
326
+ sudo tee /etc/nginx/sites-available/$PROJECT_NAME > /dev/null << EOF
243
327
  # Security headers
244
328
  add_header Strict-Transport-Security "max-age=63072000" always;
245
329
  add_header X-Frame-Options DENY;
@@ -286,35 +370,20 @@ server {
286
370
  EOF
287
371
 
288
372
  # Enable the site
289
- sudo ln -sf /etc/nginx/sites-available/powerhouse /etc/nginx/sites-enabled/
373
+ sudo ln -sf /etc/nginx/sites-available/$PROJECT_NAME /etc/nginx/sites-enabled/
290
374
  sudo rm -f /etc/nginx/sites-enabled/default
291
375
 
292
- # Test and restart Nginx
376
+ # Test Nginx configuration
293
377
  sudo nginx -t
294
- sudo systemctl restart nginx
295
378
  fi
296
379
 
297
380
  # =============================================================================
298
- # Service Setup
381
+ # Database Schema Setup
299
382
  # =============================================================================
300
- # Install PM2 globally if not already installed
301
- if ! command -v pm2 &> /dev/null; then
302
- pnpm install -g pm2
303
- fi
304
-
305
383
  pnpm prisma db push --schema node_modules/document-drive/dist/prisma/schema.prisma
306
384
 
307
- # Start services with PM2
308
- echo "Starting services with PM2..."
309
- if [ "$ssl_choice" = "2" ]; then
310
- # Self-signed certificate - use base paths
311
- pm2 start pnpm switchboard --name "switchboard" -- --base-path /switchboard
312
- else
313
- # Let's Encrypt - no base paths needed
314
- pm2 start "pnpm switchboard" --name "switchboard"
315
- fi
316
-
317
- # Save PM2 process list and setup startup script
318
- pm2 save
319
- pm2 startup
385
+ echo "━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━"
386
+ echo " Environment setup complete!"
387
+ echo " Use 'ph service start' to start services"
388
+ echo "━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━"
320
389
  fi
@@ -33,10 +33,8 @@ if (-not (Test-Path $installPath)) {
33
33
  Set-Location $installPath
34
34
 
35
35
  # Initialize Powerhouse project
36
- ph init powerhouse
36
+ ph init powerhouse --$TARGET_TAG
37
37
  Set-Location powerhouse
38
- ph use $TARGET_TAG
39
- ph connect build
40
38
 
41
39
  # Interactive package installation loop
42
40
  Write-Host "━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━"
@@ -50,6 +48,9 @@ while ($true) {
50
48
  ph install $package_name
51
49
  }
52
50
 
51
+ # Build Connect
52
+ ph connect build
53
+
53
54
  # Database Configuration
54
55
  Write-Host "━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━"
55
56
  Write-Host " Database Configuration"
@@ -296,7 +297,6 @@ if (-not (Get-Command pm2 -ErrorAction SilentlyContinue)) {
296
297
 
297
298
  # Run database migrations
298
299
  pnpm prisma db push --schema node_modules/document-drive/dist/prisma/schema.prisma
299
- pnpm add @powerhousedao/switchboard@dev
300
300
 
301
301
  # Start services with PM2
302
302
  Write-Host "Starting services with PM2..."
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/commands/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,OAAO,EAAE,MAAM,WAAW,CAAC;AACzC,OAAO,EAAE,cAAc,EAAE,MAAM,cAAc,CAAC;AAa9C,eAAO,MAAM,QAAQ,2BAapB,CAAC;AAEF,MAAM,CAAC,OAAO,UAAU,gBAAgB,CAAC,OAAO,EAAE,OAAO,QAExD"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/commands/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,OAAO,EAAE,MAAM,WAAW,CAAC;AACzC,OAAO,EAAE,cAAc,EAAE,MAAM,cAAc,CAAC;AAY9C,eAAO,MAAM,QAAQ,2BAYpB,CAAC;AAEF,MAAM,CAAC,OAAO,UAAU,gBAAgB,CAAC,OAAO,EAAE,OAAO,QAExD"}
@@ -7,7 +7,6 @@ import { installCommand } from "./install.js";
7
7
  import { listCommand } from "./list.js";
8
8
  import { reactorCommand } from "./reactor.js";
9
9
  import { serviceCommand } from "./service.js";
10
- import { setupServiceCommand } from "./setup-service.js";
11
10
  import { switchboardCommand } from "./switchboard.js";
12
11
  import { uninstallCommand } from "./uninstall.js";
13
12
  export const commands = [
@@ -22,7 +21,6 @@ export const commands = [
22
21
  listCommand,
23
22
  inspectCommand,
24
23
  switchboardCommand,
25
- setupServiceCommand,
26
24
  ];
27
25
  export default function registerCommands(program) {
28
26
  commands.forEach((command) => command(program));
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/commands/index.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,cAAc,EAAE,MAAM,cAAc,CAAC;AAC9C,yCAAyC;AACzC,OAAO,EAAE,eAAe,EAAE,MAAM,eAAe,CAAC;AAChD,OAAO,EAAE,WAAW,EAAE,MAAM,WAAW,CAAC;AACxC,OAAO,EAAE,cAAc,EAAE,MAAM,cAAc,CAAC;AAC9C,OAAO,EAAE,cAAc,EAAE,MAAM,cAAc,CAAC;AAC9C,OAAO,EAAE,WAAW,EAAE,MAAM,WAAW,CAAC;AACxC,OAAO,EAAE,cAAc,EAAE,MAAM,cAAc,CAAC;AAC9C,OAAO,EAAE,cAAc,EAAE,MAAM,cAAc,CAAC;AAC9C,OAAO,EAAE,mBAAmB,EAAE,MAAM,oBAAoB,CAAC;AACzD,OAAO,EAAE,kBAAkB,EAAE,MAAM,kBAAkB,CAAC;AACtD,OAAO,EAAE,gBAAgB,EAAE,MAAM,gBAAgB,CAAC;AAElD,MAAM,CAAC,MAAM,QAAQ,GAAG;IACtB,cAAc;IACd,cAAc;IACd,eAAe;IACf,cAAc;IACd,WAAW;IACX,cAAc;IACd,gBAAgB;IAChB,cAAc;IACd,WAAW;IACX,cAAc;IACd,kBAAkB;IAClB,mBAAmB;CACpB,CAAC;AAEF,MAAM,CAAC,OAAO,UAAU,gBAAgB,CAAC,OAAgB;IACvD,QAAQ,CAAC,OAAO,CAAC,CAAC,OAAO,EAAE,EAAE,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC,CAAC;AAClD,CAAC"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/commands/index.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,cAAc,EAAE,MAAM,cAAc,CAAC;AAC9C,yCAAyC;AACzC,OAAO,EAAE,eAAe,EAAE,MAAM,eAAe,CAAC;AAChD,OAAO,EAAE,WAAW,EAAE,MAAM,WAAW,CAAC;AACxC,OAAO,EAAE,cAAc,EAAE,MAAM,cAAc,CAAC;AAC9C,OAAO,EAAE,cAAc,EAAE,MAAM,cAAc,CAAC;AAC9C,OAAO,EAAE,WAAW,EAAE,MAAM,WAAW,CAAC;AACxC,OAAO,EAAE,cAAc,EAAE,MAAM,cAAc,CAAC;AAC9C,OAAO,EAAE,cAAc,EAAE,MAAM,cAAc,CAAC;AAC9C,OAAO,EAAE,kBAAkB,EAAE,MAAM,kBAAkB,CAAC;AACtD,OAAO,EAAE,gBAAgB,EAAE,MAAM,gBAAgB,CAAC;AAElD,MAAM,CAAC,MAAM,QAAQ,GAAG;IACtB,cAAc;IACd,cAAc;IACd,eAAe;IACf,cAAc;IACd,WAAW;IACX,cAAc;IACd,gBAAgB;IAChB,cAAc;IACd,WAAW;IACX,cAAc;IACd,kBAAkB;CACnB,CAAC;AAEF,MAAM,CAAC,OAAO,UAAU,gBAAgB,CAAC,OAAgB;IACvD,QAAQ,CAAC,OAAO,CAAC,CAAC,OAAO,EAAE,EAAE,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC,CAAC;AAClD,CAAC"}
@@ -1,5 +1,5 @@
1
1
  import { type Command } from "commander";
2
2
  import { type CommandActionType } from "../types.js";
3
- export declare const manageService: CommandActionType<[string, string]>;
3
+ export declare const manageService: CommandActionType<[string]>;
4
4
  export declare function serviceCommand(program: Command): void;
5
5
  //# sourceMappingURL=service.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"service.d.ts","sourceRoot":"","sources":["../../../src/commands/service.ts"],"names":[],"mappings":"AACA,OAAO,EAAY,KAAK,OAAO,EAAE,MAAM,WAAW,CAAC;AAMnD,OAAO,EAAE,KAAK,iBAAiB,EAAE,MAAM,aAAa,CAAC;AAQrD,eAAO,MAAM,aAAa,EAAE,iBAAiB,CAAC,CAAC,MAAM,EAAE,MAAM,CAAC,CAmC7D,CAAC;AAEF,wBAAgB,cAAc,CAAC,OAAO,EAAE,OAAO,QAW9C"}
1
+ {"version":3,"file":"service.d.ts","sourceRoot":"","sources":["../../../src/commands/service.ts"],"names":[],"mappings":"AAAA,OAAO,EAAY,KAAK,OAAO,EAAE,MAAM,WAAW,CAAC;AAMnD,OAAO,EAAE,KAAK,iBAAiB,EAAE,MAAM,aAAa,CAAC;AAWrD,eAAO,MAAM,aAAa,EAAE,iBAAiB,CAAC,CAAC,MAAM,CAAC,CA4DrD,CAAC;AAEF,wBAAgB,cAAc,CAAC,OAAO,EAAE,OAAO,QAQ9C"}