stashes 0.1.22 → 0.1.24

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/cli.js CHANGED
@@ -2564,8 +2564,8 @@ async function setupCommand(options) {
2564
2564
  }
2565
2565
 
2566
2566
  // src/commands/update.ts
2567
- import { spawn as spawn5, execSync } from "child_process";
2568
- import { writeFileSync as writeFileSync3, chmodSync, readFileSync as readFileSync8 } from "fs";
2567
+ import { execFileSync, execSync } from "child_process";
2568
+ import { writeFileSync as writeFileSync3, unlinkSync, chmodSync, readFileSync as readFileSync8 } from "fs";
2569
2569
  import { tmpdir } from "os";
2570
2570
  import { join as join11, dirname as dirname4 } from "path";
2571
2571
  import { fileURLToPath as fileURLToPath2 } from "url";
@@ -2586,7 +2586,7 @@ function fetchLatestVersion() {
2586
2586
  return null;
2587
2587
  }
2588
2588
  }
2589
- function buildUpdateScript(scriptPath) {
2589
+ function buildUpdateScript() {
2590
2590
  return [
2591
2591
  "#!/bin/bash",
2592
2592
  "set -e",
@@ -2602,12 +2602,8 @@ function buildUpdateScript(scriptPath) {
2602
2602
  'echo "Re-registering with AI tools..."',
2603
2603
  "stashes setup",
2604
2604
  "",
2605
- "NEW_VERSION=$(stashes --version)",
2606
2605
  'echo ""',
2607
- 'echo "\u2713 Updated to stashes v${NEW_VERSION}"',
2608
- "",
2609
- "# Self-cleanup",
2610
- `rm -f "${scriptPath}"`
2606
+ 'echo "\u2713 Update complete!"'
2611
2607
  ].join(`
2612
2608
  `);
2613
2609
  }
@@ -2655,15 +2651,20 @@ async function updateCommand() {
2655
2651
  s.stop(`Removed from ${configuredTools.length} tool${configuredTools.length === 1 ? "" : "s"}`);
2656
2652
  }
2657
2653
  const scriptPath = join11(tmpdir(), `stashes-update-${Date.now()}.sh`);
2658
- writeFileSync3(scriptPath, buildUpdateScript(scriptPath), "utf-8");
2654
+ writeFileSync3(scriptPath, buildUpdateScript(), "utf-8");
2659
2655
  chmodSync(scriptPath, 493);
2660
- p2.outro("Handing off to updater...");
2661
- const child = spawn5("bash", [scriptPath], {
2662
- detached: true,
2663
- stdio: "inherit"
2664
- });
2665
- child.unref();
2666
- process.exit(0);
2656
+ try {
2657
+ execFileSync("bash", [scriptPath], { stdio: "inherit" });
2658
+ } catch {
2659
+ console.error(`
2660
+ Update failed. Try manually:`);
2661
+ console.error(" npm install -g stashes@latest && stashes setup");
2662
+ process.exitCode = 1;
2663
+ } finally {
2664
+ try {
2665
+ unlinkSync(scriptPath);
2666
+ } catch {}
2667
+ }
2667
2668
  }
2668
2669
 
2669
2670
  // src/index.ts
@@ -1 +1 @@
1
- {"version":3,"file":"update.d.ts","sourceRoot":"","sources":["../../src/commands/update.ts"],"names":[],"mappings":"AAuDA,wBAAsB,aAAa,IAAI,OAAO,CAAC,IAAI,CAAC,CA6EnD"}
1
+ {"version":3,"file":"update.d.ts","sourceRoot":"","sources":["../../src/commands/update.ts"],"names":[],"mappings":"AAmDA,wBAAsB,aAAa,IAAI,OAAO,CAAC,IAAI,CAAC,CAmFnD"}
@@ -1,5 +1,5 @@
1
- import { spawn, execSync } from 'node:child_process';
2
- import { writeFileSync, chmodSync, readFileSync } from 'node:fs';
1
+ import { execFileSync, execSync } from 'node:child_process';
2
+ import { writeFileSync, unlinkSync, chmodSync, readFileSync } from 'node:fs';
3
3
  import { tmpdir } from 'node:os';
4
4
  import { join, dirname } from 'node:path';
5
5
  import { fileURLToPath } from 'node:url';
@@ -23,7 +23,7 @@ function fetchLatestVersion() {
23
23
  return null;
24
24
  }
25
25
  }
26
- function buildUpdateScript(scriptPath) {
26
+ function buildUpdateScript() {
27
27
  return [
28
28
  '#!/bin/bash',
29
29
  'set -e',
@@ -39,12 +39,8 @@ function buildUpdateScript(scriptPath) {
39
39
  'echo "Re-registering with AI tools..."',
40
40
  'stashes setup',
41
41
  '',
42
- 'NEW_VERSION=$(stashes --version)',
43
42
  'echo ""',
44
- 'echo "✓ Updated to stashes v${NEW_VERSION}"',
45
- '',
46
- '# Self-cleanup',
47
- `rm -f "${scriptPath}"`,
43
+ 'echo "✓ Update complete!"',
48
44
  ].join('\n');
49
45
  }
50
46
  // ── Command ─────────────────────────────────────────────────────────────────────
@@ -98,18 +94,29 @@ export async function updateCommand() {
98
94
  }
99
95
  s.stop(`Removed from ${configuredTools.length} tool${configuredTools.length === 1 ? '' : 's'}`);
100
96
  }
101
- // Write a detached shell script to handle uninstall install → setup.
102
- // This avoids the self-destruct problem: the current Node process exits
103
- // cleanly before npm removes the binary from disk.
97
+ // Run uninstall install setup via a synchronous shell script.
98
+ // Safe on Unix: npm uninstall deletes the binary on disk, but the OS keeps
99
+ // the inode alive for this running process (all code is already in memory).
100
+ // The parent blocks until the script finishes, then exits cleanly — no
101
+ // shell prompt interleaving, no dangling background process.
104
102
  const scriptPath = join(tmpdir(), `stashes-update-${Date.now()}.sh`);
105
- writeFileSync(scriptPath, buildUpdateScript(scriptPath), 'utf-8');
103
+ writeFileSync(scriptPath, buildUpdateScript(), 'utf-8');
106
104
  chmodSync(scriptPath, 0o755);
107
- p.outro('Handing off to updater...');
108
- const child = spawn('bash', [scriptPath], {
109
- detached: true,
110
- stdio: 'inherit',
111
- });
112
- child.unref();
113
- process.exit(0);
105
+ try {
106
+ execFileSync('bash', [scriptPath], { stdio: 'inherit' });
107
+ }
108
+ catch {
109
+ console.error('\nUpdate failed. Try manually:');
110
+ console.error(' npm install -g stashes@latest && stashes setup');
111
+ process.exitCode = 1;
112
+ }
113
+ finally {
114
+ try {
115
+ unlinkSync(scriptPath);
116
+ }
117
+ catch {
118
+ // Script may already be gone
119
+ }
120
+ }
114
121
  }
115
122
  //# sourceMappingURL=update.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"update.js","sourceRoot":"","sources":["../../src/commands/update.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"update.js","sourceRoot":"","sources":["../../src/commands/update.ts"],"names":[],"mappings":"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"}