@samanhappy/mcphub 0.9.11 → 0.9.12

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.
@@ -35,6 +35,7 @@ export class DataServicex {
35
35
  const result = { ...all };
36
36
  result.users = newSettings.users;
37
37
  result.systemConfig = newSettings.systemConfig;
38
+ result.groups = newSettings.groups;
38
39
  return result;
39
40
  }
40
41
  else {
@@ -1 +1 @@
1
- {"version":3,"file":"dataServicex.js","sourceRoot":"","sources":["../../src/services/dataServicex.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"dataServicex.js","sourceRoot":"","sources":["../../src/services/dataServicex.ts"],"names":[],"mappings":"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"}
@@ -31,7 +31,6 @@ export function registerService(key, entry) {
31
31
  break;
32
32
  }
33
33
  }
34
- console.log(`Service registered: ${key} with entry:`, entry);
35
34
  registry.set(key, entry);
36
35
  }
37
36
  export function getService(key) {
@@ -1 +1 @@
1
- {"version":3,"file":"registry.js","sourceRoot":"","sources":["../../src/services/registry.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,aAAa,EAAE,MAAM,QAAQ,CAAC;AACvC,OAAO,EAAE,IAAI,EAAE,MAAM,MAAM,CAAC;AAS5B,MAAM,QAAQ,GAAG,IAAI,GAAG,EAAwB,CAAC;AACjD,MAAM,SAAS,GAAG,IAAI,GAAG,EAAmB,CAAC;AAE7C,MAAM,UAAU,eAAe,CAAI,GAAW,EAAE,KAAiB;IAC/D,uDAAuD;IACvD,kDAAkD;IAClD,MAAM,WAAW,GAAG,CAAC,cAAc,EAAE,eAAe,CAAC,CAAC;IACtD,MAAM,QAAQ,GAAG,CAAC,KAAK,EAAE,KAAK,CAAC,CAAC;IAChC,MAAM,gBAAgB,GAAG,GAAG,GAAG,GAAG,CAAC;IAEnC,KAAK,MAAM,UAAU,IAAI,WAAW,EAAE,CAAC;QACrC,KAAK,MAAM,OAAO,IAAI,QAAQ,EAAE,CAAC;YAC/B,MAAM,YAAY,GAAG,IAAI,CAAC,OAAO,CAAC,GAAG,EAAE,EAAE,UAAU,EAAE,gBAAgB,GAAG,OAAO,CAAC,CAAC;YAEjF,IAAI,CAAC;gBACH,iDAAiD;gBACjD,MAAM,OAAO,GAAG,aAAa,CAAC,IAAI,CAAC,OAAO,CAAC,GAAG,EAAE,EAAE,cAAc,CAAC,CAAC,CAAC;gBACnE,MAAM,GAAG,GAAG,OAAO,CAAC,YAAY,CAAC,CAAC;gBAClC,MAAM,QAAQ,GAAG,GAAG,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,WAAW,EAAE,GAAG,GAAG,CAAC,KAAK,CAAC,CAAC,CAAC,GAAG,GAAG,CAAC,CAAC;gBACvE,IAAI,OAAO,QAAQ,KAAK,UAAU,EAAE,CAAC;oBACnC,KAAK,CAAC,QAAQ,GAAG,QAAQ,CAAC;oBAC1B,MAAM,CAAC,kCAAkC;gBAC3C,CAAC;YACH,CAAC;YAAC,OAAO,KAAK,EAAE,CAAC;gBACf,kDAAkD;gBAClD,SAAS;YACX,CAAC;QACH,CAAC;QAED,qDAAqD;QACrD,IAAI,KAAK,CAAC,QAAQ,EAAE,CAAC;YACnB,MAAM;QACR,CAAC;IACH,CAAC;IAED,OAAO,CAAC,GAAG,CAAC,uBAAuB,GAAG,cAAc,EAAE,KAAK,CAAC,CAAC;IAC7D,QAAQ,CAAC,GAAG,CAAC,GAAG,EAAE,KAAK,CAAC,CAAC;AAC3B,CAAC;AAED,MAAM,UAAU,UAAU,CAAI,GAAW;IACvC,IAAI,SAAS,CAAC,GAAG,CAAC,GAAG,CAAC,EAAE,CAAC;QACvB,OAAO,SAAS,CAAC,GAAG,CAAC,GAAG,CAAM,CAAC;IACjC,CAAC;IAED,MAAM,KAAK,GAAG,QAAQ,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC;IAChC,IAAI,CAAC,KAAK;QAAE,MAAM,IAAI,KAAK,CAAC,mCAAmC,GAAG,CAAC,QAAQ,EAAE,EAAE,CAAC,CAAC;IAEjF,mDAAmD;IACnD,MAAM,IAAI,GAAG,KAAK,CAAC,QAAQ,IAAI,KAAK,CAAC,WAAW,CAAC;IAEjD,MAAM,QAAQ,GAAG,IAAI,IAAI,EAAE,CAAC;IAC5B,SAAS,CAAC,GAAG,CAAC,GAAG,EAAE,QAAQ,CAAC,CAAC;IAC7B,OAAO,QAAQ,CAAC;AAClB,CAAC"}
1
+ {"version":3,"file":"registry.js","sourceRoot":"","sources":["../../src/services/registry.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,aAAa,EAAE,MAAM,QAAQ,CAAC;AACvC,OAAO,EAAE,IAAI,EAAE,MAAM,MAAM,CAAC;AAS5B,MAAM,QAAQ,GAAG,IAAI,GAAG,EAAwB,CAAC;AACjD,MAAM,SAAS,GAAG,IAAI,GAAG,EAAmB,CAAC;AAE7C,MAAM,UAAU,eAAe,CAAI,GAAW,EAAE,KAAiB;IAC/D,uDAAuD;IACvD,kDAAkD;IAClD,MAAM,WAAW,GAAG,CAAC,cAAc,EAAE,eAAe,CAAC,CAAC;IACtD,MAAM,QAAQ,GAAG,CAAC,KAAK,EAAE,KAAK,CAAC,CAAC;IAChC,MAAM,gBAAgB,GAAG,GAAG,GAAG,GAAG,CAAC;IAEnC,KAAK,MAAM,UAAU,IAAI,WAAW,EAAE,CAAC;QACrC,KAAK,MAAM,OAAO,IAAI,QAAQ,EAAE,CAAC;YAC/B,MAAM,YAAY,GAAG,IAAI,CAAC,OAAO,CAAC,GAAG,EAAE,EAAE,UAAU,EAAE,gBAAgB,GAAG,OAAO,CAAC,CAAC;YAEjF,IAAI,CAAC;gBACH,iDAAiD;gBACjD,MAAM,OAAO,GAAG,aAAa,CAAC,IAAI,CAAC,OAAO,CAAC,GAAG,EAAE,EAAE,cAAc,CAAC,CAAC,CAAC;gBACnE,MAAM,GAAG,GAAG,OAAO,CAAC,YAAY,CAAC,CAAC;gBAClC,MAAM,QAAQ,GAAG,GAAG,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,WAAW,EAAE,GAAG,GAAG,CAAC,KAAK,CAAC,CAAC,CAAC,GAAG,GAAG,CAAC,CAAC;gBACvE,IAAI,OAAO,QAAQ,KAAK,UAAU,EAAE,CAAC;oBACnC,KAAK,CAAC,QAAQ,GAAG,QAAQ,CAAC;oBAC1B,MAAM,CAAC,kCAAkC;gBAC3C,CAAC;YACH,CAAC;YAAC,OAAO,KAAK,EAAE,CAAC;gBACf,kDAAkD;gBAClD,SAAS;YACX,CAAC;QACH,CAAC;QAED,qDAAqD;QACrD,IAAI,KAAK,CAAC,QAAQ,EAAE,CAAC;YACnB,MAAM;QACR,CAAC;IACH,CAAC;IAED,QAAQ,CAAC,GAAG,CAAC,GAAG,EAAE,KAAK,CAAC,CAAC;AAC3B,CAAC;AAED,MAAM,UAAU,UAAU,CAAI,GAAW;IACvC,IAAI,SAAS,CAAC,GAAG,CAAC,GAAG,CAAC,EAAE,CAAC;QACvB,OAAO,SAAS,CAAC,GAAG,CAAC,GAAG,CAAM,CAAC;IACjC,CAAC;IAED,MAAM,KAAK,GAAG,QAAQ,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC;IAChC,IAAI,CAAC,KAAK;QAAE,MAAM,IAAI,KAAK,CAAC,mCAAmC,GAAG,CAAC,QAAQ,EAAE,EAAE,CAAC,CAAC;IAEjF,mDAAmD;IACnD,MAAM,IAAI,GAAG,KAAK,CAAC,QAAQ,IAAI,KAAK,CAAC,WAAW,CAAC;IAEjD,MAAM,QAAQ,GAAG,IAAI,IAAI,EAAE,CAAC;IAC5B,SAAS,CAAC,GAAG,CAAC,GAAG,EAAE,QAAQ,CAAC,CAAC;IAC7B,OAAO,QAAQ,CAAC;AAClB,CAAC"}
@@ -10,15 +10,27 @@ const rootDir = process.cwd();
10
10
  * @returns The path to the file
11
11
  */
12
12
  export const getConfigFilePath = (filename, description = 'Configuration') => {
13
- const envPath = process.env.MCPHUB_SETTING_PATH;
13
+ if (filename === 'mcp_settings.json') {
14
+ const envPath = process.env.MCPHUB_SETTING_PATH;
15
+ if (envPath) {
16
+ // check envPath is file or directory
17
+ const stats = fs.statSync(envPath);
18
+ if (stats.isFile()) {
19
+ return envPath;
20
+ }
21
+ // if directory, return path under that directory
22
+ return path.resolve(envPath, filename);
23
+ }
24
+ }
14
25
  const potentialPaths = [
15
- ...(envPath ? [envPath] : []),
16
- // Prioritize process.cwd() as the first location to check
17
- path.resolve(process.cwd(), filename),
18
- // Use path relative to the root directory
19
- path.join(rootDir, filename),
20
- // If installed with npx, may need to look one level up
21
- path.join(dirname(rootDir), filename),
26
+ ...[
27
+ // Prioritize process.cwd() as the first location to check
28
+ path.resolve(process.cwd(), filename),
29
+ // Use path relative to the root directory
30
+ path.join(rootDir, filename),
31
+ // If installed with npx, may need to look one level up
32
+ path.join(dirname(rootDir), filename),
33
+ ],
22
34
  ];
23
35
  for (const filePath of potentialPaths) {
24
36
  if (fs.existsSync(filePath)) {
@@ -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;;;;;GAKG;AACH,MAAM,CAAC,MAAM,iBAAiB,GAAG,CAAC,QAAgB,EAAE,WAAW,GAAG,eAAe,EAAU,EAAE;IAC3F,MAAM,OAAO,GAAG,OAAO,CAAC,GAAG,CAAC,mBAAmB,CAAC;IAChD,MAAM,cAAc,GAAG;QACrB,GAAG,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC;QAC7B,0DAA0D;QAC1D,IAAI,CAAC,OAAO,CAAC,OAAO,CAAC,GAAG,EAAE,EAAE,QAAQ,CAAC;QACrC,0CAA0C;QAC1C,IAAI,CAAC,IAAI,CAAC,OAAO,EAAE,QAAQ,CAAC;QAC5B,uDAAuD;QACvD,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC,OAAO,CAAC,EAAE,QAAQ,CAAC;KACtC,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":"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;;;;;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,qCAAqC;YACrC,MAAM,KAAK,GAAG,EAAE,CAAC,QAAQ,CAAC,OAAO,CAAC,CAAC;YACnC,IAAI,KAAK,CAAC,MAAM,EAAE,EAAE,CAAC;gBACnB,OAAO,OAAO,CAAC;YACjB,CAAC;YACD,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"}