@helloworlkd/pam-cli 0.1.18 → 0.1.19

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.
@@ -1 +1 @@
1
- {"version":3,"file":"upgrade.d.ts","sourceRoot":"","sources":["../../src/commands/upgrade.ts"],"names":[],"mappings":"AAGA,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAA;AAkBnC,wBAAgB,sBAAsB,CAAC,OAAO,EAAE,OAAO,QAsEtD"}
1
+ {"version":3,"file":"upgrade.d.ts","sourceRoot":"","sources":["../../src/commands/upgrade.ts"],"names":[],"mappings":"AAKA,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAA;AAmBnC,wBAAgB,sBAAsB,CAAC,OAAO,EAAE,OAAO,QAmFtD"}
@@ -1,5 +1,7 @@
1
1
  import { spawn } from 'node:child_process';
2
+ import { existsSync, readFileSync } from 'node:fs';
2
3
  import { dirname, join } from 'node:path';
4
+ import { setTimeout as delay } from 'node:timers/promises';
3
5
  import { fileURLToPath } from 'node:url';
4
6
  import { appendUpgradeLog, formatUpgradeStatus, getUpgradeStatePaths, readUpgradeStatus, writeUpgradeStatus, } from './upgrade-state.js';
5
7
  const CLI_DIST_DIR = dirname(fileURLToPath(import.meta.url));
@@ -9,8 +11,9 @@ export function registerUpgradeCommand(program) {
9
11
  .description('Update the global PAM CLI without leaving running services locked')
10
12
  .option('--package <spec>', 'Package spec to install', '@helloworlkd/pam-cli@latest')
11
13
  .option('--npm <command>', 'npm executable to use')
14
+ .option('--background', 'Start the upgrade in the background and print log paths')
12
15
  .option('--dry-run', 'Show the update steps without installing')
13
- .action((options) => {
16
+ .action(async (options) => {
14
17
  const runId = `upgrade-${Date.now()}`;
15
18
  const startedAt = new Date().toISOString();
16
19
  const paths = getUpgradeStatePaths(runId);
@@ -24,7 +27,7 @@ export function registerUpgradeCommand(program) {
24
27
  const child = spawn(process.execPath, args, {
25
28
  detached: !options.dryRun,
26
29
  stdio: options.dryRun ? 'inherit' : 'ignore',
27
- windowsHide: false,
30
+ windowsHide: true,
28
31
  });
29
32
  if (options.dryRun) {
30
33
  child.on('exit', (code) => {
@@ -45,11 +48,19 @@ export function registerUpgradeCommand(program) {
45
48
  writeUpgradeStatus(status);
46
49
  appendUpgradeLog(paths.logPath, `[${startedAt}] queued: ${status.message}\n`);
47
50
  child.unref();
48
- console.log(`PAM upgrade started in the background (${runId}).`);
51
+ console.log(`PAM upgrade started (${runId}).`);
49
52
  console.log('Progress: queued -> stopping services -> npm install -> done.');
50
53
  console.log(`Status file: ${paths.statusPath}`);
51
54
  console.log(`Log file: ${paths.logPath}`);
52
- console.log(`Follow live: ${formatLogFollowCommand(paths.logPath)}`);
55
+ if (options.background) {
56
+ console.log(`Follow live: ${formatLogFollowCommand(paths.logPath)}`);
57
+ return;
58
+ }
59
+ console.log('Following progress in this terminal. Press Ctrl+C to stop watching; the upgrade will continue.');
60
+ const finalStatus = await followUpgradeProgress(runId, paths.logPath);
61
+ if (finalStatus?.phase === 'failed') {
62
+ process.exit(finalStatus.exitCode ?? 1);
63
+ }
53
64
  });
54
65
  upgrade
55
66
  .command('status')
@@ -75,4 +86,25 @@ function formatLogFollowCommand(logPath) {
75
86
  }
76
87
  return `tail -f "${logPath}"`;
77
88
  }
89
+ async function followUpgradeProgress(runId, logPath) {
90
+ let offset = 0;
91
+ for (;;) {
92
+ offset = printNewLogContent(logPath, offset);
93
+ const status = readUpgradeStatus(runId);
94
+ if (status?.phase === 'succeeded' || status?.phase === 'failed') {
95
+ offset = printNewLogContent(logPath, offset);
96
+ return status;
97
+ }
98
+ await delay(300);
99
+ }
100
+ }
101
+ function printNewLogContent(logPath, offset) {
102
+ if (!existsSync(logPath))
103
+ return offset;
104
+ const content = readFileSync(logPath, 'utf-8');
105
+ if (content.length <= offset)
106
+ return offset;
107
+ process.stdout.write(content.slice(offset));
108
+ return content.length;
109
+ }
78
110
  //# sourceMappingURL=upgrade.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"upgrade.js","sourceRoot":"","sources":["../../src/commands/upgrade.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"upgrade.js","sourceRoot":"","sources":["../../src/commands/upgrade.ts"],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@helloworlkd/pam-cli",
3
- "version": "0.1.18",
3
+ "version": "0.1.19",
4
4
  "description": "PAM CLI - Command line interface for PAM",
5
5
  "type": "module",
6
6
  "license": "MIT",
@@ -46,8 +46,8 @@
46
46
  "commander": "^15.0.0",
47
47
  "zod": "^4.4.3",
48
48
  "@helloworlkd/pam-core": "^0.1.10",
49
- "@helloworlkd/pam-protocol": "^0.1.10",
50
- "@helloworlkd/pam-api": "^0.1.17"
49
+ "@helloworlkd/pam-api": "^0.1.17",
50
+ "@helloworlkd/pam-protocol": "^0.1.10"
51
51
  },
52
52
  "devDependencies": {
53
53
  "@types/node": "^25.9.3"