@girardmedia/bootspring 2.1.3 → 2.2.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.
package/cli/update.js DELETED
@@ -1,132 +0,0 @@
1
- /**
2
- * Bootspring Update Command
3
- * Check for updates and manage versions.
4
- */
5
-
6
- const utils = require('../core/utils');
7
- const selfUpdate = require('../core/self-update');
8
-
9
- function printCheckResult(result) {
10
- if (!result.latest) {
11
- console.log(`${utils.COLORS.dim}Current version: ${result.current}${utils.COLORS.reset}`);
12
- console.log(`${utils.COLORS.dim}Could not fetch the latest npm version.${utils.COLORS.reset}`);
13
- return;
14
- }
15
-
16
- if (result.updateAvailable) {
17
- console.log(`${utils.COLORS.green}Update available:${utils.COLORS.reset} ${result.current} -> ${result.latest}`);
18
- console.log(`${utils.COLORS.dim}Run: bootspring update apply${utils.COLORS.reset}`);
19
- return;
20
- }
21
-
22
- if (selfUpdate.compareVersions(result.current, result.latest) === 0) {
23
- console.log(`${utils.COLORS.green}Already on the latest version:${utils.COLORS.reset} ${result.current}`);
24
- return;
25
- }
26
-
27
- console.log(`${utils.COLORS.dim}Running a development version (${result.current}). npm latest is ${result.latest}.${utils.COLORS.reset}`);
28
- }
29
-
30
- async function checkForUpdates() {
31
- console.log(`\n${utils.COLORS.cyan}${utils.COLORS.bold}⚡ Bootspring Update Check${utils.COLORS.reset}\n`);
32
- const spinner = utils.createSpinner('Checking npm for the latest release').start();
33
- const result = selfUpdate.checkForUpdates();
34
-
35
- if (!result.latest) {
36
- spinner.warn('Could not fetch the latest version');
37
- } else if (result.updateAvailable) {
38
- spinner.succeed(`Update available: ${result.current} -> ${result.latest}`);
39
- } else {
40
- spinner.succeed(`Current version: ${result.current}`);
41
- }
42
-
43
- printCheckResult(result);
44
- }
45
-
46
- async function applyUpdate() {
47
- console.log(`\n${utils.COLORS.cyan}${utils.COLORS.bold}⚡ Bootspring Update${utils.COLORS.reset}\n`);
48
-
49
- const result = selfUpdate.checkForUpdates();
50
- if (!result.updateAvailable || !result.latest) {
51
- printCheckResult(result);
52
- return;
53
- }
54
-
55
- const context = selfUpdate.getInstallContext();
56
- const target = context.mode === 'local'
57
- ? context.projectRoot || process.cwd()
58
- : 'global install';
59
- const spinner = utils.createSpinner(`Updating ${target}`).start();
60
-
61
- try {
62
- selfUpdate.applyUpdate(context);
63
- spinner.succeed(`Updated to ${result.latest}`);
64
- console.log(`${utils.COLORS.dim}Restart any running MCP clients so they pick up the new binary.${utils.COLORS.reset}`);
65
- } catch (error) {
66
- spinner.fail('Update failed');
67
- console.log(`${utils.COLORS.red}${error.message}${utils.COLORS.reset}`);
68
- }
69
- }
70
-
71
- function showVersion() {
72
- const result = selfUpdate.checkForUpdates();
73
- const context = selfUpdate.getInstallContext();
74
-
75
- console.log(`
76
- ${utils.COLORS.cyan}${utils.COLORS.bold}⚡ Bootspring${utils.COLORS.reset}
77
-
78
- ${utils.COLORS.bold}Version${utils.COLORS.reset}
79
- Installed: ${utils.COLORS.cyan}${selfUpdate.CURRENT_VERSION}${utils.COLORS.reset}
80
- Latest: ${utils.COLORS.cyan}${result.latest || 'unknown'}${utils.COLORS.reset}
81
- Install: ${context.mode}
82
- `);
83
- }
84
-
85
- function showHelp() {
86
- console.log(`
87
- ${utils.COLORS.cyan}${utils.COLORS.bold}⚡ Bootspring Update${utils.COLORS.reset}
88
-
89
- ${utils.COLORS.bold}Usage:${utils.COLORS.reset}
90
- bootspring update check
91
- bootspring update apply
92
- bootspring update version
93
- `);
94
- }
95
-
96
- async function run(args) {
97
- const parsedArgs = utils.parseArgs(args);
98
- const subcommand = parsedArgs._[0] || 'check';
99
-
100
- switch (subcommand) {
101
- case 'check':
102
- await checkForUpdates();
103
- break;
104
- case 'apply':
105
- case 'upgrade':
106
- case 'install':
107
- await applyUpdate();
108
- break;
109
- case 'version':
110
- case '-v':
111
- case '--version':
112
- showVersion();
113
- break;
114
- case 'help':
115
- case '-h':
116
- case '--help':
117
- showHelp();
118
- break;
119
- default:
120
- utils.print.error(`Unknown subcommand: ${subcommand}`);
121
- showHelp();
122
- }
123
- }
124
-
125
- module.exports = {
126
- run,
127
- checkForUpdates,
128
- applyUpdate,
129
- getCurrentVersion: () => selfUpdate.CURRENT_VERSION,
130
- getLatestVersion: selfUpdate.getLatestVersion,
131
- compareVersions: selfUpdate.compareVersions
132
- };