@rsdoctor/utils 1.5.15 → 1.5.17

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.
@@ -7,13 +7,34 @@
7
7
  * builder1: portNumber,
8
8
  * builder2: portNumber,
9
9
  * },
10
- * port: portNumber // The port of the last builder is used by default
10
+ * socketUrlList: {
11
+ * builder1: socketUrl,
12
+ * builder2: socketUrl,
13
+ * },
14
+ * port: portNumber, // The port of the last builder is used by default
15
+ * socketUrl: socketUrl, // The socket URL of the last builder is used by default
11
16
  * }
12
17
  *
13
18
  * @param {number} port - The port number to write.
14
19
  * @param {string} [builderName] - The name of the builder.
20
+ * @param {string} [socketToken] - The socket token of the builder.
15
21
  */
16
- export declare function writeMcpPort(port: number, builderName?: string): void;
22
+ export interface McpConfig {
23
+ portList: Record<string, number>;
24
+ port: number;
25
+ socketUrlList?: Record<string, string>;
26
+ socketUrl?: string;
27
+ }
28
+ export declare function readMcpConfig(): McpConfig | undefined;
29
+ export declare function getMcpServerInfo(builderName?: string): {
30
+ port?: number;
31
+ socketUrl?: string;
32
+ };
33
+ export declare function getMcpServerInfoByPort(port: number): {
34
+ port?: number;
35
+ socketUrl?: string;
36
+ };
37
+ export declare function writeMcpPort(port: number, builderName?: string, socketToken?: string): void;
17
38
  /**
18
39
  * @description Gets the path to the mcp.json file.
19
40
  * @returns {string} The path to the mcp.json file.
@@ -7,13 +7,34 @@
7
7
  * builder1: portNumber,
8
8
  * builder2: portNumber,
9
9
  * },
10
- * port: portNumber // The port of the last builder is used by default
10
+ * socketUrlList: {
11
+ * builder1: socketUrl,
12
+ * builder2: socketUrl,
13
+ * },
14
+ * port: portNumber, // The port of the last builder is used by default
15
+ * socketUrl: socketUrl, // The socket URL of the last builder is used by default
11
16
  * }
12
17
  *
13
18
  * @param {number} port - The port number to write.
14
19
  * @param {string} [builderName] - The name of the builder.
20
+ * @param {string} [socketToken] - The socket token of the builder.
15
21
  */
16
- export declare function writeMcpPort(port: number, builderName?: string): void;
22
+ export interface McpConfig {
23
+ portList: Record<string, number>;
24
+ port: number;
25
+ socketUrlList?: Record<string, string>;
26
+ socketUrl?: string;
27
+ }
28
+ export declare function readMcpConfig(): McpConfig | undefined;
29
+ export declare function getMcpServerInfo(builderName?: string): {
30
+ port?: number;
31
+ socketUrl?: string;
32
+ };
33
+ export declare function getMcpServerInfoByPort(port: number): {
34
+ port?: number;
35
+ socketUrl?: string;
36
+ };
37
+ export declare function writeMcpPort(port: number, builderName?: string, socketToken?: string): void;
17
38
  /**
18
39
  * @description Gets the path to the mcp.json file.
19
40
  * @returns {string} The path to the mcp.json file.
package/dist/common.cjs CHANGED
@@ -504,6 +504,9 @@ for(var __rspack_i in (()=>{
504
504
  var global_config_namespaceObject = {};
505
505
  __webpack_require__.r(global_config_namespaceObject), __webpack_require__.d(global_config_namespaceObject, {
506
506
  getMcpConfigPath: ()=>getMcpConfigPath,
507
+ getMcpServerInfo: ()=>getMcpServerInfo,
508
+ getMcpServerInfoByPort: ()=>getMcpServerInfoByPort,
509
+ readMcpConfig: ()=>readMcpConfig,
507
510
  writeMcpPort: ()=>writeMcpPort
508
511
  });
509
512
  var common_summary = __webpack_require__("./src/common/summary.ts"), common_crypto = __webpack_require__("./src/common/crypto.ts"), algorithm = __webpack_require__("./src/common/algorithm.ts"), external_path_ = __webpack_require__("path"), external_path_default = __webpack_require__.n(external_path_);
@@ -1499,21 +1502,56 @@ for(var __rspack_i in (()=>{
1499
1502
  };
1500
1503
  };
1501
1504
  var external_fs_ = __webpack_require__("fs"), external_fs_default = __webpack_require__.n(external_fs_), external_os_ = __webpack_require__("os"), external_os_default = __webpack_require__.n(external_os_);
1502
- function writeMcpPort(port, builderName) {
1505
+ function readMcpConfig() {
1506
+ let mcpPortFilePath = getMcpConfigPath();
1507
+ if (external_fs_default().existsSync(mcpPortFilePath)) try {
1508
+ return JSON.parse(external_fs_default().readFileSync(mcpPortFilePath, 'utf8'));
1509
+ } catch (error) {
1510
+ logger.logger.debug('Failed to parse mcp.json', error);
1511
+ return;
1512
+ }
1513
+ }
1514
+ function getMcpServerInfo(builderName) {
1515
+ let mcpJson = readMcpConfig();
1516
+ if (!mcpJson) return {};
1517
+ if (builderName) {
1518
+ let port = mcpJson.portList?.[builderName], socketUrl = mcpJson.socketUrlList?.[builderName];
1519
+ if (port || socketUrl) return {
1520
+ port,
1521
+ socketUrl
1522
+ };
1523
+ }
1524
+ return {
1525
+ port: mcpJson.port,
1526
+ socketUrl: mcpJson.socketUrl
1527
+ };
1528
+ }
1529
+ function getMcpServerInfoByPort(port) {
1530
+ let mcpJson = readMcpConfig();
1531
+ if (!mcpJson) return {};
1532
+ let builderName = Object.entries(mcpJson.portList || {}).find(([, builderPort])=>builderPort === port)?.[0];
1533
+ return builderName ? {
1534
+ port,
1535
+ socketUrl: mcpJson.socketUrlList?.[builderName]
1536
+ } : mcpJson.port === port ? {
1537
+ port,
1538
+ socketUrl: mcpJson.socketUrl
1539
+ } : {
1540
+ port
1541
+ };
1542
+ }
1543
+ function writeMcpPort(port, builderName, socketToken) {
1503
1544
  let homeDir = external_os_default().homedir(), rsdoctorDir = external_path_default().join(homeDir, '.cache/rsdoctor'), mcpPortFilePath = external_path_default().join(rsdoctorDir, 'mcp.json');
1504
1545
  external_fs_default().existsSync(rsdoctorDir) || external_fs_default().mkdirSync(rsdoctorDir, {
1505
1546
  recursive: !0
1506
1547
  });
1507
- let mcpJson = {
1548
+ let builderKey = builderName || 'builder', socketUrl = function(port, socketToken) {
1549
+ if (port && socketToken) return `ws://localhost:${port}?token=${encodeURIComponent(socketToken)}`;
1550
+ }(port, socketToken), mcpJson = readMcpConfig() ?? {
1508
1551
  portList: {},
1509
1552
  port: 0
1510
1553
  };
1511
- if (external_fs_default().existsSync(mcpPortFilePath)) try {
1512
- mcpJson = JSON.parse(external_fs_default().readFileSync(mcpPortFilePath, 'utf8'));
1513
- } catch (error) {
1514
- logger.logger.debug('Failed to parse mcp.json', error);
1515
- }
1516
- mcpJson.portList || (mcpJson.portList = {}), mcpJson.portList[builderName || 'builder'] = port, mcpJson.port = port, external_fs_default().writeFileSync(mcpPortFilePath, JSON.stringify(mcpJson, null, 2), 'utf8');
1554
+ mcpJson.portList || (mcpJson.portList = {}), mcpJson.portList[builderKey] = port, mcpJson.socketUrlList || (mcpJson.socketUrlList = {}), socketUrl ? (mcpJson.socketUrlList[builderKey] = socketUrl, mcpJson.socketUrl = socketUrl) : (delete mcpJson.socketUrlList[builderKey], delete mcpJson.socketUrl), mcpJson.port = port, socketUrl && (mcpJson.socketUrlList || (mcpJson.socketUrlList = {}), mcpJson.socketUrlList[builderName || 'builder'] = socketUrl, mcpJson.socketUrl = socketUrl), external_fs_default().writeFileSync(mcpPortFilePath, JSON.stringify(mcpJson, null, 2), 'utf8');
1517
1555
  }
1518
1556
  function getMcpConfigPath() {
1519
1557
  let homeDir = external_os_default().homedir(), rsdoctorDir = external_path_default().join(homeDir, '.cache/rsdoctor');
package/dist/common.js CHANGED
@@ -48,6 +48,9 @@ __webpack_require__.r(file_namespaceObject), __webpack_require__.d(file_namespac
48
48
  var global_config_namespaceObject = {};
49
49
  __webpack_require__.r(global_config_namespaceObject), __webpack_require__.d(global_config_namespaceObject, {
50
50
  getMcpConfigPath: ()=>getMcpConfigPath,
51
+ getMcpServerInfo: ()=>getMcpServerInfo,
52
+ getMcpServerInfoByPort: ()=>getMcpServerInfoByPort,
53
+ readMcpConfig: ()=>readMcpConfig,
51
54
  writeMcpPort: ()=>writeMcpPort
52
55
  });
53
56
  var graph_namespaceObject = {};
@@ -1280,21 +1283,56 @@ let PACKAGE_SLUG = /[a-zA-Z0-9]+(?:[-|_|.]+[a-zA-Z0-9]+)*/, MODULE_PATH_PACKAGES
1280
1283
  version: path && name && path.match(RegExp(`${name}@([\\d.]+)`))?.flat().slice(1)?.[0] || ''
1281
1284
  };
1282
1285
  };
1283
- function writeMcpPort(port, builderName) {
1286
+ function readMcpConfig() {
1287
+ let mcpPortFilePath = getMcpConfigPath();
1288
+ if (fs.existsSync(mcpPortFilePath)) try {
1289
+ return JSON.parse(fs.readFileSync(mcpPortFilePath, 'utf8'));
1290
+ } catch (error) {
1291
+ rsdoctorLogger.debug('Failed to parse mcp.json', error);
1292
+ return;
1293
+ }
1294
+ }
1295
+ function getMcpServerInfo(builderName) {
1296
+ let mcpJson = readMcpConfig();
1297
+ if (!mcpJson) return {};
1298
+ if (builderName) {
1299
+ let port = mcpJson.portList?.[builderName], socketUrl = mcpJson.socketUrlList?.[builderName];
1300
+ if (port || socketUrl) return {
1301
+ port,
1302
+ socketUrl
1303
+ };
1304
+ }
1305
+ return {
1306
+ port: mcpJson.port,
1307
+ socketUrl: mcpJson.socketUrl
1308
+ };
1309
+ }
1310
+ function getMcpServerInfoByPort(port) {
1311
+ let mcpJson = readMcpConfig();
1312
+ if (!mcpJson) return {};
1313
+ let builderName = Object.entries(mcpJson.portList || {}).find(([, builderPort])=>builderPort === port)?.[0];
1314
+ return builderName ? {
1315
+ port,
1316
+ socketUrl: mcpJson.socketUrlList?.[builderName]
1317
+ } : mcpJson.port === port ? {
1318
+ port,
1319
+ socketUrl: mcpJson.socketUrl
1320
+ } : {
1321
+ port
1322
+ };
1323
+ }
1324
+ function writeMcpPort(port, builderName, socketToken) {
1284
1325
  let homeDir = os.homedir(), rsdoctorDir = path_0.join(homeDir, '.cache/rsdoctor'), mcpPortFilePath = path_0.join(rsdoctorDir, 'mcp.json');
1285
1326
  fs.existsSync(rsdoctorDir) || fs.mkdirSync(rsdoctorDir, {
1286
1327
  recursive: !0
1287
1328
  });
1288
- let mcpJson = {
1329
+ let builderKey = builderName || 'builder', socketUrl = function(port, socketToken) {
1330
+ if (port && socketToken) return `ws://localhost:${port}?token=${encodeURIComponent(socketToken)}`;
1331
+ }(port, socketToken), mcpJson = readMcpConfig() ?? {
1289
1332
  portList: {},
1290
1333
  port: 0
1291
1334
  };
1292
- if (fs.existsSync(mcpPortFilePath)) try {
1293
- mcpJson = JSON.parse(fs.readFileSync(mcpPortFilePath, 'utf8'));
1294
- } catch (error) {
1295
- rsdoctorLogger.debug('Failed to parse mcp.json', error);
1296
- }
1297
- mcpJson.portList || (mcpJson.portList = {}), mcpJson.portList[builderName || 'builder'] = port, mcpJson.port = port, fs.writeFileSync(mcpPortFilePath, JSON.stringify(mcpJson, null, 2), 'utf8');
1335
+ mcpJson.portList || (mcpJson.portList = {}), mcpJson.portList[builderKey] = port, mcpJson.socketUrlList || (mcpJson.socketUrlList = {}), socketUrl ? (mcpJson.socketUrlList[builderKey] = socketUrl, mcpJson.socketUrl = socketUrl) : (delete mcpJson.socketUrlList[builderKey], delete mcpJson.socketUrl), mcpJson.port = port, socketUrl && (mcpJson.socketUrlList || (mcpJson.socketUrlList = {}), mcpJson.socketUrlList[builderName || 'builder'] = socketUrl, mcpJson.socketUrl = socketUrl), fs.writeFileSync(mcpPortFilePath, JSON.stringify(mcpJson, null, 2), 'utf8');
1298
1336
  }
1299
1337
  function getMcpConfigPath() {
1300
1338
  let homeDir = os.homedir(), rsdoctorDir = path_0.join(homeDir, '.cache/rsdoctor');
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@rsdoctor/utils",
3
- "version": "1.5.15",
3
+ "version": "1.5.17",
4
4
  "repository": {
5
5
  "type": "git",
6
6
  "url": "https://github.com/web-infra-dev/rsdoctor",
@@ -101,7 +101,7 @@
101
101
  "picocolors": "^1.1.1",
102
102
  "rslog": "^2.1.2",
103
103
  "strip-ansi": "^6.0.1",
104
- "@rsdoctor/types": "1.5.15"
104
+ "@rsdoctor/types": "1.5.17"
105
105
  },
106
106
  "devDependencies": {
107
107
  "@types/babel__code-frame": "7.27.0",