@samanhappy/mcphub 0.9.13 → 0.9.15

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.
@@ -24,7 +24,16 @@ export const loadOriginalSettings = () => {
24
24
  return settingsCache;
25
25
  }
26
26
  const settingsPath = getSettingsPath();
27
+ // check if file exists
28
+ if (!fs.existsSync(settingsPath)) {
29
+ console.warn(`Settings file not found at ${settingsPath}, using default settings.`);
30
+ const defaultSettings = { mcpServers: {}, users: [] };
31
+ // Cache default settings
32
+ settingsCache = defaultSettings;
33
+ return defaultSettings;
34
+ }
27
35
  try {
36
+ // Read and parse settings file
28
37
  const settingsData = fs.readFileSync(settingsPath, 'utf8');
29
38
  const settings = JSON.parse(settingsData);
30
39
  // Update cache
@@ -33,12 +42,7 @@ export const loadOriginalSettings = () => {
33
42
  return settings;
34
43
  }
35
44
  catch (error) {
36
- const errorMessage = error instanceof Error ? error.message : String(error);
37
- console.warn(`Failed to load settings from ${settingsPath}:`, errorMessage);
38
- const defaultSettings = { mcpServers: {}, users: [] };
39
- // Cache default settings
40
- settingsCache = defaultSettings;
41
- return defaultSettings;
45
+ throw new Error(`Failed to load settings from ${settingsPath}: ${error}`);
42
46
  }
43
47
  };
44
48
  export const loadSettings = (user) => {
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/config/index.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/config/index.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,143 @@
1
+ const REGISTRY_BASE_URL = 'https://registry.modelcontextprotocol.io/v0.1';
2
+ /**
3
+ * Get all MCP servers from the official registry
4
+ * Proxies the request to avoid CORS issues in the frontend
5
+ * Supports cursor-based pagination
6
+ */
7
+ export const getAllRegistryServers = async (req, res) => {
8
+ try {
9
+ const { cursor, limit, search } = req.query;
10
+ // Build URL with query parameters
11
+ const url = new URL(`${REGISTRY_BASE_URL}/servers`);
12
+ if (cursor && typeof cursor === 'string') {
13
+ url.searchParams.append('cursor', cursor);
14
+ }
15
+ if (limit && typeof limit === 'string') {
16
+ const limitNum = parseInt(limit, 10);
17
+ if (!isNaN(limitNum) && limitNum > 0) {
18
+ url.searchParams.append('limit', limit);
19
+ }
20
+ }
21
+ if (search && typeof search === 'string') {
22
+ url.searchParams.append('search', search);
23
+ }
24
+ const response = await fetch(url.toString(), {
25
+ headers: {
26
+ Accept: 'application/json, application/problem+json',
27
+ },
28
+ });
29
+ if (!response.ok) {
30
+ throw new Error(`HTTP error! status: ${response.status}`);
31
+ }
32
+ const data = await response.json();
33
+ const apiResponse = {
34
+ success: true,
35
+ data: data,
36
+ };
37
+ res.json(apiResponse);
38
+ }
39
+ catch (error) {
40
+ console.error('Error fetching registry servers:', error);
41
+ const errorMessage = error instanceof Error ? error.message : 'Failed to fetch registry servers';
42
+ res.status(500).json({
43
+ success: false,
44
+ message: errorMessage,
45
+ });
46
+ }
47
+ };
48
+ /**
49
+ * Get all versions of a specific MCP server
50
+ * Proxies the request to avoid CORS issues in the frontend
51
+ */
52
+ export const getRegistryServerVersions = async (req, res) => {
53
+ try {
54
+ const { serverName } = req.params;
55
+ if (!serverName) {
56
+ res.status(400).json({
57
+ success: false,
58
+ message: 'Server name is required',
59
+ });
60
+ return;
61
+ }
62
+ // URL encode the server name
63
+ const encodedName = encodeURIComponent(serverName);
64
+ const response = await fetch(`${REGISTRY_BASE_URL}/servers/${encodedName}/versions`, {
65
+ headers: {
66
+ Accept: 'application/json, application/problem+json',
67
+ },
68
+ });
69
+ if (!response.ok) {
70
+ if (response.status === 404) {
71
+ res.status(404).json({
72
+ success: false,
73
+ message: 'Server not found',
74
+ });
75
+ return;
76
+ }
77
+ throw new Error(`HTTP error! status: ${response.status}`);
78
+ }
79
+ const data = await response.json();
80
+ const apiResponse = {
81
+ success: true,
82
+ data: data,
83
+ };
84
+ res.json(apiResponse);
85
+ }
86
+ catch (error) {
87
+ console.error('Error fetching registry server versions:', error);
88
+ const errorMessage = error instanceof Error ? error.message : 'Failed to fetch registry server versions';
89
+ res.status(500).json({
90
+ success: false,
91
+ message: errorMessage,
92
+ });
93
+ }
94
+ };
95
+ /**
96
+ * Get a specific version of an MCP server
97
+ * Proxies the request to avoid CORS issues in the frontend
98
+ */
99
+ export const getRegistryServerVersion = async (req, res) => {
100
+ try {
101
+ const { serverName, version } = req.params;
102
+ if (!serverName || !version) {
103
+ res.status(400).json({
104
+ success: false,
105
+ message: 'Server name and version are required',
106
+ });
107
+ return;
108
+ }
109
+ // URL encode the server name and version
110
+ const encodedName = encodeURIComponent(serverName);
111
+ const encodedVersion = encodeURIComponent(version);
112
+ const response = await fetch(`${REGISTRY_BASE_URL}/servers/${encodedName}/versions/${encodedVersion}`, {
113
+ headers: {
114
+ Accept: 'application/json, application/problem+json',
115
+ },
116
+ });
117
+ if (!response.ok) {
118
+ if (response.status === 404) {
119
+ res.status(404).json({
120
+ success: false,
121
+ message: 'Server version not found',
122
+ });
123
+ return;
124
+ }
125
+ throw new Error(`HTTP error! status: ${response.status}`);
126
+ }
127
+ const data = await response.json();
128
+ const apiResponse = {
129
+ success: true,
130
+ data: data,
131
+ };
132
+ res.json(apiResponse);
133
+ }
134
+ catch (error) {
135
+ console.error('Error fetching registry server version:', error);
136
+ const errorMessage = error instanceof Error ? error.message : 'Failed to fetch registry server version';
137
+ res.status(500).json({
138
+ success: false,
139
+ message: errorMessage,
140
+ });
141
+ }
142
+ };
143
+ //# sourceMappingURL=registryController.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"registryController.js","sourceRoot":"","sources":["../../src/controllers/registryController.ts"],"names":[],"mappings":"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"}
@@ -6,9 +6,10 @@ import { getGroups, getGroup, createNewGroup, updateExistingGroup, deleteExistin
6
6
  import { getUsers, getUser, createUser, updateExistingUser, deleteExistingUser, getUserStats, } from '../controllers/userController.js';
7
7
  import { getAllMarketServers, getMarketServer, getAllMarketCategories, getAllMarketTags, searchMarketServersByQuery, getMarketServersByCategory, getMarketServersByTag, } from '../controllers/marketController.js';
8
8
  import { getAllCloudServers, getCloudServer, getAllCloudCategories, getAllCloudTags, searchCloudServersByQuery, getCloudServersByCategory, getCloudServersByTag, getCloudServerToolsList, callCloudTool, } from '../controllers/cloudController.js';
9
+ import { getAllRegistryServers, getRegistryServerVersions, getRegistryServerVersion, } from '../controllers/registryController.js';
9
10
  import { login, register, getCurrentUser, changePassword } from '../controllers/authController.js';
10
11
  import { getAllLogs, clearLogs, streamLogs } from '../controllers/logController.js';
11
- import { getRuntimeConfig, getPublicConfig, getMcpSettingsJson } from '../controllers/configController.js';
12
+ import { getRuntimeConfig, getPublicConfig, getMcpSettingsJson, } from '../controllers/configController.js';
12
13
  import { callTool } from '../controllers/toolController.js';
13
14
  import { getPrompt } from '../controllers/promptController.js';
14
15
  import { uploadDxtFile, uploadMiddleware } from '../controllers/dxtController.js';
@@ -77,6 +78,10 @@ export const initRoutes = (app) => {
77
78
  router.get('/cloud/tags/:tag', getCloudServersByTag);
78
79
  router.get('/cloud/servers/:serverName/tools', getCloudServerToolsList);
79
80
  router.post('/cloud/servers/:serverName/tools/:toolName/call', callCloudTool);
81
+ // Registry routes (proxy to official MCP registry)
82
+ router.get('/registry/servers', getAllRegistryServers);
83
+ router.get('/registry/servers/:serverName/versions', getRegistryServerVersions);
84
+ router.get('/registry/servers/:serverName/versions/:version', getRegistryServerVersion);
80
85
  // Log routes
81
86
  router.get('/logs', getAllLogs);
82
87
  router.delete('/logs', clearLogs);
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/routes/index.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/routes/index.ts"],"names":[],"mappings":"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"}
package/dist/server.js CHANGED
@@ -10,8 +10,25 @@ import { initI18n } from './utils/i18n.js';
10
10
  import { handleSseConnection, handleSseMessage, handleMcpPostRequest, handleMcpOtherRequest, } from './services/sseService.js';
11
11
  import { initializeDefaultUser } from './models/User.js';
12
12
  import { sseUserContextMiddleware } from './middlewares/userContext.js';
13
- // Get the current working directory (will be project root in most cases)
14
- const currentFileDir = process.cwd() + '/src';
13
+ import { findPackageRoot } from './utils/path.js';
14
+ import { getCurrentModuleDir } from './utils/moduleDir.js';
15
+ /**
16
+ * Get the directory of the current module
17
+ * This is wrapped in a function to allow easy mocking in test environments
18
+ */
19
+ function getCurrentFileDir() {
20
+ // In test environments, use process.cwd() to avoid import.meta issues
21
+ if (process.env.NODE_ENV === 'test' || process.env.JEST_WORKER_ID !== undefined) {
22
+ return process.cwd();
23
+ }
24
+ try {
25
+ return getCurrentModuleDir();
26
+ }
27
+ catch {
28
+ // Fallback for environments where import.meta might not be available
29
+ return process.cwd();
30
+ }
31
+ }
15
32
  export class AppServer {
16
33
  constructor() {
17
34
  this.frontendPath = null;
@@ -111,9 +128,10 @@ export class AppServer {
111
128
  findFrontendDistPath() {
112
129
  // Debug flag for detailed logging
113
130
  const debug = process.env.DEBUG === 'true';
131
+ const currentDir = getCurrentFileDir();
114
132
  if (debug) {
115
133
  console.log('DEBUG: Current directory:', process.cwd());
116
- console.log('DEBUG: Script directory:', currentFileDir);
134
+ console.log('DEBUG: Script directory:', currentDir);
117
135
  }
118
136
  // First, find the package root directory
119
137
  const packageRoot = this.findPackageRoot();
@@ -138,47 +156,9 @@ export class AppServer {
138
156
  }
139
157
  // Helper method to find the package root (where package.json is located)
140
158
  findPackageRoot() {
141
- const debug = process.env.DEBUG === 'true';
142
- // Possible locations for package.json
143
- const possibleRoots = [
144
- // Standard npm package location
145
- path.resolve(currentFileDir, '..', '..'),
146
- // Current working directory
147
- process.cwd(),
148
- // When running from dist directory
149
- path.resolve(currentFileDir, '..'),
150
- // When installed via npx
151
- path.resolve(currentFileDir, '..', '..', '..'),
152
- ];
153
- // Special handling for npx
154
- if (process.argv[1] && process.argv[1].includes('_npx')) {
155
- const npxDir = path.dirname(process.argv[1]);
156
- possibleRoots.unshift(path.resolve(npxDir, '..'));
157
- }
158
- if (debug) {
159
- console.log('DEBUG: Checking for package.json in:', possibleRoots);
160
- }
161
- for (const root of possibleRoots) {
162
- const packageJsonPath = path.join(root, 'package.json');
163
- if (fs.existsSync(packageJsonPath)) {
164
- try {
165
- const pkg = JSON.parse(fs.readFileSync(packageJsonPath, 'utf8'));
166
- if (pkg.name === 'mcphub' || pkg.name === '@samanhappy/mcphub') {
167
- if (debug) {
168
- console.log(`DEBUG: Found package.json at ${packageJsonPath}`);
169
- }
170
- return root;
171
- }
172
- }
173
- catch (e) {
174
- if (debug) {
175
- console.error(`DEBUG: Failed to parse package.json at ${packageJsonPath}:`, e);
176
- }
177
- // Continue to the next potential root
178
- }
179
- }
180
- }
181
- return null;
159
+ // Use the shared utility function which properly handles ESM module paths
160
+ const currentDir = getCurrentFileDir();
161
+ return findPackageRoot(currentDir);
182
162
  }
183
163
  }
184
164
  export default AppServer;
@@ -1 +1 @@
1
- {"version":3,"file":"server.js","sourceRoot":"","sources":["../src/server.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"server.js","sourceRoot":"","sources":["../src/server.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,11 @@
1
+ import { fileURLToPath } from 'url';
2
+ import path from 'path';
3
+ /**
4
+ * Get the directory of the current module
5
+ * This is in a separate file to allow mocking in test environments
6
+ */
7
+ export function getCurrentModuleDir() {
8
+ const currentModuleFile = fileURLToPath(import.meta.url);
9
+ return path.dirname(currentModuleFile);
10
+ }
11
+ //# sourceMappingURL=moduleDir.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"moduleDir.js","sourceRoot":"","sources":["../../src/utils/moduleDir.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,aAAa,EAAE,MAAM,KAAK,CAAC;AACpC,OAAO,IAAI,MAAM,MAAM,CAAC;AAExB;;;GAGG;AACH,MAAM,UAAU,mBAAmB;IACjC,MAAM,iBAAiB,GAAG,aAAa,CAAC,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;IACzD,OAAO,IAAI,CAAC,OAAO,CAAC,iBAAiB,CAAC,CAAC;AACzC,CAAC"}
@@ -1,8 +1,148 @@
1
1
  import fs from 'fs';
2
2
  import path from 'path';
3
3
  import { dirname } from 'path';
4
+ import { getCurrentModuleDir } from './moduleDir.js';
4
5
  // Project root directory - use process.cwd() as a simpler alternative
5
6
  const rootDir = process.cwd();
7
+ // Cache the package root for performance
8
+ let cachedPackageRoot = undefined;
9
+ /**
10
+ * Initialize package root by trying to find it using the module directory
11
+ * This should be called when the module is first loaded
12
+ */
13
+ function initializePackageRoot() {
14
+ // Skip initialization in test environments
15
+ if (process.env.NODE_ENV === 'test' || process.env.JEST_WORKER_ID !== undefined) {
16
+ return;
17
+ }
18
+ try {
19
+ // Try to get the current module's directory
20
+ const currentModuleDir = getCurrentModuleDir();
21
+ // This file is in src/utils/path.ts (or dist/utils/path.js when compiled)
22
+ // So package.json should be 2 levels up
23
+ const possibleRoots = [
24
+ path.resolve(currentModuleDir, '..', '..'), // dist -> package root
25
+ path.resolve(currentModuleDir, '..'), // dist/utils -> dist -> package root
26
+ ];
27
+ for (const root of possibleRoots) {
28
+ const packageJsonPath = path.join(root, 'package.json');
29
+ if (fs.existsSync(packageJsonPath)) {
30
+ try {
31
+ const pkg = JSON.parse(fs.readFileSync(packageJsonPath, 'utf8'));
32
+ if (pkg.name === 'mcphub' || pkg.name === '@samanhappy/mcphub') {
33
+ cachedPackageRoot = root;
34
+ return;
35
+ }
36
+ }
37
+ catch {
38
+ // Continue checking
39
+ }
40
+ }
41
+ }
42
+ }
43
+ catch {
44
+ // If initialization fails, cachedPackageRoot remains undefined
45
+ // and findPackageRoot will search normally
46
+ }
47
+ }
48
+ // Initialize on module load (unless in test environment)
49
+ initializePackageRoot();
50
+ /**
51
+ * Find the package root directory (where package.json is located)
52
+ * This works correctly when the package is installed globally or locally
53
+ * @param startPath Starting path to search from (defaults to checking module paths)
54
+ * @returns The package root directory path, or null if not found
55
+ */
56
+ export const findPackageRoot = (startPath) => {
57
+ // Return cached value if available and no specific start path is requested
58
+ if (cachedPackageRoot !== undefined && !startPath) {
59
+ return cachedPackageRoot;
60
+ }
61
+ const debug = process.env.DEBUG === 'true';
62
+ // Possible locations for package.json relative to the search path
63
+ const possibleRoots = [];
64
+ if (startPath) {
65
+ // When start path is provided (from fileURLToPath(import.meta.url))
66
+ possibleRoots.push(
67
+ // When in dist/utils (compiled code) - go up 2 levels
68
+ path.resolve(startPath, '..', '..'),
69
+ // When in dist/ (compiled code) - go up 1 level
70
+ path.resolve(startPath, '..'),
71
+ // Direct parent directories
72
+ path.resolve(startPath));
73
+ }
74
+ // Try to use require.resolve to find the module location (works in CommonJS and ESM with createRequire)
75
+ try {
76
+ // In ESM, we can use import.meta.resolve, but it's async in some versions
77
+ // So we'll try to find the module by checking the node_modules structure
78
+ // Check if this file is in a node_modules installation
79
+ const currentFile = new Error().stack?.split('\n')[2]?.match(/\((.+?):\d+:\d+\)$/)?.[1];
80
+ if (currentFile) {
81
+ const nodeModulesIndex = currentFile.indexOf('node_modules');
82
+ if (nodeModulesIndex !== -1) {
83
+ // Extract the package path from node_modules
84
+ const afterNodeModules = currentFile.substring(nodeModulesIndex + 'node_modules'.length + 1);
85
+ const packageNameEnd = afterNodeModules.indexOf(path.sep);
86
+ if (packageNameEnd !== -1) {
87
+ const packagePath = currentFile.substring(0, nodeModulesIndex + 'node_modules'.length + 1 + packageNameEnd);
88
+ possibleRoots.push(packagePath);
89
+ }
90
+ }
91
+ }
92
+ }
93
+ catch {
94
+ // Ignore errors
95
+ }
96
+ // Check module.filename location (works in Node.js when available)
97
+ if (typeof __filename !== 'undefined') {
98
+ const moduleDir = path.dirname(__filename);
99
+ possibleRoots.push(path.resolve(moduleDir, '..', '..'), path.resolve(moduleDir, '..'));
100
+ }
101
+ // Check common installation locations
102
+ possibleRoots.push(
103
+ // Current working directory (for development/tests)
104
+ process.cwd(),
105
+ // Parent of cwd
106
+ path.resolve(process.cwd(), '..'));
107
+ if (debug) {
108
+ console.log('DEBUG: Searching for package.json from:', startPath || 'multiple locations');
109
+ console.log('DEBUG: Checking paths:', possibleRoots);
110
+ }
111
+ // Remove duplicates
112
+ const uniqueRoots = [...new Set(possibleRoots)];
113
+ for (const root of uniqueRoots) {
114
+ const packageJsonPath = path.join(root, 'package.json');
115
+ if (fs.existsSync(packageJsonPath)) {
116
+ try {
117
+ const pkg = JSON.parse(fs.readFileSync(packageJsonPath, 'utf8'));
118
+ if (pkg.name === 'mcphub' || pkg.name === '@samanhappy/mcphub') {
119
+ if (debug) {
120
+ console.log(`DEBUG: Found package.json at ${packageJsonPath}`);
121
+ }
122
+ // Cache the result if no specific start path was requested
123
+ if (!startPath) {
124
+ cachedPackageRoot = root;
125
+ }
126
+ return root;
127
+ }
128
+ }
129
+ catch (e) {
130
+ // Continue to the next potential root
131
+ if (debug) {
132
+ console.error(`DEBUG: Failed to parse package.json at ${packageJsonPath}:`, e);
133
+ }
134
+ }
135
+ }
136
+ }
137
+ if (debug) {
138
+ console.warn('DEBUG: Could not find package root directory');
139
+ }
140
+ // Cache null result as well to avoid repeated searches
141
+ if (!startPath) {
142
+ cachedPackageRoot = null;
143
+ }
144
+ return null;
145
+ };
6
146
  function getParentPath(p, filename) {
7
147
  if (p.endsWith(filename)) {
8
148
  p = p.slice(0, -filename.length);
@@ -34,20 +174,32 @@ export const getConfigFilePath = (filename, description = 'Configuration') => {
34
174
  }
35
175
  }
36
176
  const potentialPaths = [
37
- ...[
38
- // Prioritize process.cwd() as the first location to check
39
- path.resolve(process.cwd(), filename),
40
- // Use path relative to the root directory
41
- path.join(rootDir, filename),
42
- // If installed with npx, may need to look one level up
43
- path.join(dirname(rootDir), filename),
44
- ],
177
+ // Prioritize process.cwd() as the first location to check
178
+ path.resolve(process.cwd(), filename),
179
+ // Use path relative to the root directory
180
+ path.join(rootDir, filename),
181
+ // If installed with npx, may need to look one level up
182
+ path.join(dirname(rootDir), filename),
45
183
  ];
184
+ // Also check in the installed package root directory
185
+ const packageRoot = findPackageRoot();
186
+ if (packageRoot) {
187
+ potentialPaths.push(path.join(packageRoot, filename));
188
+ }
46
189
  for (const filePath of potentialPaths) {
47
190
  if (fs.existsSync(filePath)) {
48
191
  return filePath;
49
192
  }
50
193
  }
194
+ // If all paths do not exist, check if we have a fallback in the package root
195
+ // If the file exists in the package root, use it as the default
196
+ if (packageRoot) {
197
+ const packageConfigPath = path.join(packageRoot, filename);
198
+ if (fs.existsSync(packageConfigPath)) {
199
+ console.log(`Using ${description} from package: ${packageConfigPath}`);
200
+ return packageConfigPath;
201
+ }
202
+ }
51
203
  // If all paths do not exist, use default path
52
204
  // Using the default path is acceptable because it ensures the application can proceed
53
205
  // even if the configuration file is missing. This fallback is particularly useful in
@@ -1 +1 @@
1
- {"version":3,"file":"path.js","sourceRoot":"","sources":["../../src/utils/path.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,IAAI,CAAC;AACpB,OAAO,IAAI,MAAM,MAAM,CAAC;AACxB,OAAO,EAAE,OAAO,EAAE,MAAM,MAAM,CAAC;AAE/B,sEAAsE;AACtE,MAAM,OAAO,GAAG,OAAO,CAAC,GAAG,EAAE,CAAC;AAE9B,SAAS,aAAa,CAAC,CAAS,EAAE,QAAgB;IAChD,IAAI,CAAC,CAAC,QAAQ,CAAC,QAAQ,CAAC,EAAE,CAAC;QACzB,CAAC,GAAG,CAAC,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAC;IACnC,CAAC;IACD,OAAO,IAAI,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC;AACzB,CAAC;AAED;;;;;GAKG;AACH,MAAM,CAAC,MAAM,iBAAiB,GAAG,CAAC,QAAgB,EAAE,WAAW,GAAG,eAAe,EAAU,EAAE;IAC3F,IAAI,QAAQ,KAAK,mBAAmB,EAAE,CAAC;QACrC,MAAM,OAAO,GAAG,OAAO,CAAC,GAAG,CAAC,mBAAmB,CAAC;QAChD,IAAI,OAAO,EAAE,CAAC;YACZ,0BAA0B;YAC1B,MAAM,GAAG,GAAG,aAAa,CAAC,OAAO,EAAE,QAAQ,CAAC,CAAC;YAC7C,IAAI,CAAC,EAAE,CAAC,UAAU,CAAC,GAAG,CAAC,EAAE,CAAC;gBACxB,EAAE,CAAC,SAAS,CAAC,GAAG,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC,CAAC;gBACvC,OAAO,CAAC,GAAG,CAAC,qCAAqC,GAAG,EAAE,CAAC,CAAC;YAC1D,CAAC;YAED,6BAA6B;YAC7B,IAAI,OAAO,EAAE,QAAQ,CAAC,QAAQ,CAAC,EAAE,CAAC;gBAChC,OAAO,OAAO,CAAC;YACjB,CAAC;YAED,iDAAiD;YACjD,OAAO,IAAI,CAAC,OAAO,CAAC,OAAO,EAAE,QAAQ,CAAC,CAAC;QACzC,CAAC;IACH,CAAC;IAED,MAAM,cAAc,GAAG;QACrB,GAAG;YACD,0DAA0D;YAC1D,IAAI,CAAC,OAAO,CAAC,OAAO,CAAC,GAAG,EAAE,EAAE,QAAQ,CAAC;YACrC,0CAA0C;YAC1C,IAAI,CAAC,IAAI,CAAC,OAAO,EAAE,QAAQ,CAAC;YAC5B,uDAAuD;YACvD,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC,OAAO,CAAC,EAAE,QAAQ,CAAC;SACtC;KACF,CAAC;IAEF,KAAK,MAAM,QAAQ,IAAI,cAAc,EAAE,CAAC;QACtC,IAAI,EAAE,CAAC,UAAU,CAAC,QAAQ,CAAC,EAAE,CAAC;YAC5B,OAAO,QAAQ,CAAC;QAClB,CAAC;IACH,CAAC;IAED,8CAA8C;IAC9C,sFAAsF;IACtF,qFAAqF;IACrF,yDAAyD;IACzD,MAAM,WAAW,GAAG,IAAI,CAAC,OAAO,CAAC,OAAO,CAAC,GAAG,EAAE,EAAE,QAAQ,CAAC,CAAC;IAC1D,OAAO,CAAC,KAAK,CACX,GAAG,WAAW,iEAAiE,WAAW,EAAE,CAC7F,CAAC;IACF,OAAO,WAAW,CAAC;AACrB,CAAC,CAAC"}
1
+ {"version":3,"file":"path.js","sourceRoot":"","sources":["../../src/utils/path.ts"],"names":[],"mappings":"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"}
@@ -1,12 +1,21 @@
1
1
  import fs from 'fs';
2
2
  import path from 'path';
3
+ import { findPackageRoot } from './path.js';
3
4
  /**
4
5
  * Gets the package version from package.json
6
+ * @param searchPath Optional path to start searching from (defaults to cwd)
5
7
  * @returns The version string from package.json, or 'dev' if not found
6
8
  */
7
- export const getPackageVersion = () => {
9
+ export const getPackageVersion = (searchPath) => {
8
10
  try {
9
- const packageJsonPath = path.resolve(process.cwd(), 'package.json');
11
+ // Use provided path or fallback to current working directory
12
+ const startPath = searchPath || process.cwd();
13
+ const packageRoot = findPackageRoot(startPath);
14
+ if (!packageRoot) {
15
+ console.warn('Could not find package root, using default version');
16
+ return 'dev';
17
+ }
18
+ const packageJsonPath = path.join(packageRoot, 'package.json');
10
19
  const packageJsonContent = fs.readFileSync(packageJsonPath, 'utf8');
11
20
  const packageJson = JSON.parse(packageJsonContent);
12
21
  return packageJson.version || 'dev';