@samanhappy/mcphub 0.0.17 → 0.0.18
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/bin/cli.js +43 -4
- package/dist/server.js +30 -14
- package/dist/server.js.map +1 -1
- package/package.json +1 -1
package/bin/cli.js
CHANGED
|
@@ -7,13 +7,52 @@ import fs from 'fs';
|
|
|
7
7
|
|
|
8
8
|
const __filename = fileURLToPath(import.meta.url);
|
|
9
9
|
const __dirname = path.dirname(__filename);
|
|
10
|
-
|
|
10
|
+
|
|
11
|
+
// Try to find the package root directory
|
|
12
|
+
function findPackageRoot() {
|
|
13
|
+
// Possible locations for the package root
|
|
14
|
+
const possibleRoots = [
|
|
15
|
+
// Local development
|
|
16
|
+
path.resolve(__dirname, '..'),
|
|
17
|
+
// When installed as dependency (node_modules/mcphub/bin)
|
|
18
|
+
path.resolve(__dirname, '..', '..', '..'),
|
|
19
|
+
// Global install or npx context
|
|
20
|
+
path.resolve(path.dirname(process.argv[1]), '..')
|
|
21
|
+
];
|
|
22
|
+
|
|
23
|
+
for (const root of possibleRoots) {
|
|
24
|
+
if (fs.existsSync(path.join(root, 'package.json'))) {
|
|
25
|
+
try {
|
|
26
|
+
const pkg = JSON.parse(fs.readFileSync(path.join(root, 'package.json'), 'utf8'));
|
|
27
|
+
if (pkg.name === 'mcphub') {
|
|
28
|
+
return root;
|
|
29
|
+
}
|
|
30
|
+
} catch (e) {
|
|
31
|
+
// Continue to the next potential root
|
|
32
|
+
}
|
|
33
|
+
}
|
|
34
|
+
}
|
|
35
|
+
|
|
36
|
+
// Default to the directory above this script
|
|
37
|
+
return path.resolve(__dirname, '..');
|
|
38
|
+
}
|
|
39
|
+
|
|
40
|
+
const projectRoot = findPackageRoot();
|
|
41
|
+
console.log(`📦 Using package root: ${projectRoot}`);
|
|
11
42
|
|
|
12
43
|
// Check if frontend dist exists, if not, build it
|
|
13
44
|
const frontendDistPath = path.join(projectRoot, 'frontend', 'dist');
|
|
14
|
-
if (!fs.existsSync(frontendDistPath)) {
|
|
15
|
-
console.log('📦
|
|
16
|
-
|
|
45
|
+
if (!fs.existsSync(frontendDistPath) || !fs.existsSync(path.join(frontendDistPath, 'index.html'))) {
|
|
46
|
+
console.log('📦 Frontend dist not found, building...');
|
|
47
|
+
try {
|
|
48
|
+
execSync('npm run frontend:build', { stdio: 'inherit', cwd: projectRoot });
|
|
49
|
+
console.log('✅ Frontend build successful');
|
|
50
|
+
} catch (error) {
|
|
51
|
+
console.error('❌ Failed to build frontend:', error);
|
|
52
|
+
console.log('⚠️ Will start server without frontend. Please build frontend manually.');
|
|
53
|
+
}
|
|
54
|
+
} else {
|
|
55
|
+
console.log('✅ Frontend dist found');
|
|
17
56
|
}
|
|
18
57
|
|
|
19
58
|
// Start the server
|
package/dist/server.js
CHANGED
|
@@ -44,9 +44,18 @@ export class AppServer {
|
|
|
44
44
|
throw error;
|
|
45
45
|
})
|
|
46
46
|
.finally(() => {
|
|
47
|
-
|
|
48
|
-
|
|
49
|
-
|
|
47
|
+
// Make sure frontend index.html exists before setting this route
|
|
48
|
+
if (fs.existsSync(path.join(this.getFrontendDistPath(), 'index.html'))) {
|
|
49
|
+
this.app.get('*', (_req, res) => {
|
|
50
|
+
res.sendFile(path.join(this.getFrontendDistPath(), 'index.html'));
|
|
51
|
+
});
|
|
52
|
+
}
|
|
53
|
+
else {
|
|
54
|
+
console.error('Frontend files not found. Please make sure the frontend is built correctly.');
|
|
55
|
+
this.app.get('*', (_req, res) => {
|
|
56
|
+
res.status(500).send('Frontend not found. Please run "npm run build" to build the project.');
|
|
57
|
+
});
|
|
58
|
+
}
|
|
50
59
|
});
|
|
51
60
|
}
|
|
52
61
|
catch (error) {
|
|
@@ -65,18 +74,25 @@ export class AppServer {
|
|
|
65
74
|
}
|
|
66
75
|
// Helper method to find frontend dist path in different environments
|
|
67
76
|
getFrontendDistPath() {
|
|
68
|
-
|
|
69
|
-
|
|
70
|
-
|
|
71
|
-
|
|
77
|
+
const possiblePaths = [
|
|
78
|
+
// 1. When running as npm package (from node_modules)
|
|
79
|
+
path.join(__dirname, '..', '..', 'frontend', 'dist'),
|
|
80
|
+
path.join(__dirname, '..', '..', '..', 'frontend', 'dist'),
|
|
81
|
+
// 2. When running in the package directory with node_modules/.bin/mcphub
|
|
82
|
+
path.join(__dirname, '..', '..', '..', '..', 'frontend', 'dist'),
|
|
83
|
+
// 3. When running in local development environment
|
|
84
|
+
path.join(process.cwd(), 'frontend', 'dist'),
|
|
85
|
+
// 4. When installed globally
|
|
86
|
+
path.join(__dirname, '..', '..', '..', '..', '..', 'frontend', 'dist'),
|
|
87
|
+
// 5. Check for npm package path resolution
|
|
88
|
+
path.join(path.dirname(path.dirname(process.argv[1])), 'frontend', 'dist')
|
|
89
|
+
];
|
|
90
|
+
for (const possiblePath of possiblePaths) {
|
|
91
|
+
if (fs.existsSync(possiblePath) && fs.existsSync(path.join(possiblePath, 'index.html'))) {
|
|
92
|
+
return possiblePath;
|
|
93
|
+
}
|
|
72
94
|
}
|
|
73
|
-
|
|
74
|
-
const npmPath = path.join(__dirname, '..', '..', 'frontend', 'dist');
|
|
75
|
-
if (fs.existsSync(npmPath)) {
|
|
76
|
-
return npmPath;
|
|
77
|
-
}
|
|
78
|
-
// Default fallback
|
|
79
|
-
console.warn('Could not find frontend dist folder, using default path');
|
|
95
|
+
console.warn('Could not find frontend dist folder in any of the expected locations');
|
|
80
96
|
return path.join(process.cwd(), 'frontend', 'dist');
|
|
81
97
|
}
|
|
82
98
|
}
|
package/dist/server.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"server.js","sourceRoot":"","sources":["../src/server.ts"],"names":[],"mappings":"AAAA,OAAO,OAAO,MAAM,SAAS,CAAC;AAC9B,OAAO,MAAM,MAAM,mBAAmB,CAAC;AACvC,OAAO,IAAI,MAAM,MAAM,CAAC;AACxB,OAAO,EAAE,aAAa,EAAE,MAAM,KAAK,CAAC;AACpC,OAAO,EAAE,MAAM,IAAI,CAAC;AACpB,OAAO,EAAE,aAAa,EAAE,MAAM,0BAA0B,CAAC;AACzD,OAAO,EAAE,eAAe,EAAE,MAAM,wBAAwB,CAAC;AACzD,OAAO,EAAE,UAAU,EAAE,MAAM,mBAAmB,CAAC;AAC/C,OAAO,EACL,mBAAmB,EACnB,gBAAgB,EAChB,oBAAoB,EACpB,qBAAqB,GACtB,MAAM,0BAA0B,CAAC;AAClC,OAAO,EAAE,eAAe,EAAE,MAAM,sBAAsB,CAAC;AACvD,OAAO,EAAE,qBAAqB,EAAE,MAAM,kBAAkB,CAAC;AAEzD,gCAAgC;AAChC,MAAM,UAAU,GAAG,aAAa,CAAC,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;AAClD,MAAM,SAAS,GAAG,IAAI,CAAC,OAAO,CAAC,UAAU,CAAC,CAAC;AAE3C,MAAM,OAAO,SAAS;IAIpB;QACE,IAAI,CAAC,GAAG,GAAG,OAAO,EAAE,CAAC;QACrB,IAAI,CAAC,IAAI,GAAG,MAAM,CAAC,IAAI,CAAC;IAC1B,CAAC;IAED,KAAK,CAAC,UAAU;QACd,IAAI,CAAC;YACH,mEAAmE;YACnE,eAAe,EAAE,CAAC;YAElB,kDAAkD;YAClD,MAAM,qBAAqB,EAAE,CAAC;YAE9B,eAAe,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;YAC1B,UAAU,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;YACrB,OAAO,CAAC,GAAG,CAAC,iCAAiC,CAAC,CAAC;YAE/C,8BAA8B;YAC9B,MAAM,gBAAgB,GAAG,IAAI,CAAC,mBAAmB,EAAE,CAAC;YACpD,OAAO,CAAC,GAAG,CAAC,0BAA0B,gBAAgB,EAAE,CAAC,CAAC;YAC1D,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,OAAO,CAAC,MAAM,CAAC,gBAAgB,CAAC,CAAC,CAAC;YAE/C,aAAa,CAAC,MAAM,CAAC,UAAU,EAAE,MAAM,CAAC,aAAa,CAAC;iBACnD,IAAI,CAAC,GAAG,EAAE;gBACT,OAAO,CAAC,GAAG,CAAC,qCAAqC,CAAC,CAAC;gBACnD,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,cAAc,EAAE,CAAC,GAAG,EAAE,GAAG,EAAE,EAAE,CAAC,mBAAmB,CAAC,GAAG,EAAE,GAAG,CAAC,CAAC,CAAC;gBAC1E,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,WAAW,EAAE,gBAAgB,CAAC,CAAC;gBAC7C,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,cAAc,EAAE,oBAAoB,CAAC,CAAC;gBACpD,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,cAAc,EAAE,qBAAqB,CAAC,CAAC;gBACpD,IAAI,CAAC,GAAG,CAAC,MAAM,CAAC,cAAc,EAAE,qBAAqB,CAAC,CAAC;YACzD,CAAC,CAAC;iBACD,KAAK,CAAC,CAAC,KAAK,EAAE,EAAE;gBACf,OAAO,CAAC,KAAK,CAAC,gCAAgC,EAAE,KAAK,CAAC,CAAC;gBACvD,MAAM,KAAK,CAAC;YACd,CAAC,CAAC;iBACD,OAAO,CAAC,GAAG,EAAE;gBACZ,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,EAAE,CAAC,IAAI,EAAE,GAAG,EAAE,EAAE;
|
|
1
|
+
{"version":3,"file":"server.js","sourceRoot":"","sources":["../src/server.ts"],"names":[],"mappings":"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"}
|