@samanhappy/mcphub 0.8.3 → 0.8.5
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/dist/clients/openapi.js +42 -11
- package/dist/clients/openapi.js.map +1 -1
- package/dist/config/index.js +35 -13
- package/dist/config/index.js.map +1 -1
- package/dist/controllers/authController.js +16 -11
- package/dist/controllers/authController.js.map +1 -1
- package/dist/controllers/dxtController.js +6 -7
- package/dist/controllers/dxtController.js.map +1 -1
- package/dist/controllers/groupController.js +4 -1
- package/dist/controllers/groupController.js.map +1 -1
- package/dist/controllers/serverController.js +22 -3
- package/dist/controllers/serverController.js.map +1 -1
- package/dist/controllers/userController.js +239 -0
- package/dist/controllers/userController.js.map +1 -0
- package/dist/middlewares/index.js +14 -2
- package/dist/middlewares/index.js.map +1 -1
- package/dist/middlewares/userContext.js +104 -0
- package/dist/middlewares/userContext.js.map +1 -0
- package/dist/routes/index.js +8 -0
- package/dist/routes/index.js.map +1 -1
- package/dist/server.js +23 -14
- package/dist/server.js.map +1 -1
- package/dist/services/dataService.js +18 -0
- package/dist/services/dataService.js.map +1 -0
- package/dist/services/groupService.js +7 -2
- package/dist/services/groupService.js.map +1 -1
- package/dist/services/mcpService.js +39 -3
- package/dist/services/mcpService.js.map +1 -1
- package/dist/services/registry.js +34 -0
- package/dist/services/registry.js.map +1 -0
- package/dist/services/services.js +9 -0
- package/dist/services/services.js.map +1 -0
- package/dist/services/sseService.js +40 -10
- package/dist/services/sseService.js.map +1 -1
- package/dist/services/userContextService.js +49 -0
- package/dist/services/userContextService.js.map +1 -0
- package/dist/services/userService.js +100 -0
- package/dist/services/userService.js.map +1 -0
- package/dist/utils/path.js +3 -7
- package/dist/utils/path.js.map +1 -1
- package/dist/utils/serialization.js +59 -0
- package/dist/utils/serialization.js.map +1 -0
- package/dist/utils/version.js +1 -5
- package/dist/utils/version.js.map +1 -1
- package/frontend/dist/assets/index-C-F1zr8n.js +197 -0
- package/frontend/dist/assets/index-C-F1zr8n.js.map +1 -0
- package/frontend/dist/assets/index-DVMEgEIO.css +1 -0
- package/frontend/dist/index.html +2 -2
- package/package.json +3 -1
- package/frontend/dist/assets/index-B-VTc3wu.css +0 -1
- package/frontend/dist/assets/index-BjnGlIAs.js +0 -187
- package/frontend/dist/assets/index-BjnGlIAs.js.map +0 -1
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"userContextService.js","sourceRoot":"","sources":["../../src/services/userContextService.ts"],"names":[],"mappings":"AAEA,uBAAuB;AACvB,MAAM,WAAW;IAAjB;QAEU,gBAAW,GAAiB,IAAI,CAAC;IAoB3C,CAAC;IAlBC,MAAM,CAAC,WAAW;QAChB,IAAI,CAAC,WAAW,CAAC,QAAQ,EAAE,CAAC;YAC1B,WAAW,CAAC,QAAQ,GAAG,IAAI,WAAW,EAAE,CAAC;QAC3C,CAAC;QACD,OAAO,WAAW,CAAC,QAAQ,CAAC;IAC9B,CAAC;IAED,OAAO,CAAC,IAAW;QACjB,IAAI,CAAC,WAAW,GAAG,IAAI,CAAC;IAC1B,CAAC;IAED,OAAO;QACL,OAAO,IAAI,CAAC,WAAW,CAAC;IAC1B,CAAC;IAED,SAAS;QACP,IAAI,CAAC,WAAW,GAAG,IAAI,CAAC;IAC1B,CAAC;CACF;AAED,MAAM,OAAO,kBAAkB;IAA/B;QAEU,gBAAW,GAAG,WAAW,CAAC,WAAW,EAAE,CAAC;IA6BlD,CAAC;IA3BC,MAAM,CAAC,WAAW;QAChB,IAAI,CAAC,kBAAkB,CAAC,QAAQ,EAAE,CAAC;YACjC,kBAAkB,CAAC,QAAQ,GAAG,IAAI,kBAAkB,EAAE,CAAC;QACzD,CAAC;QACD,OAAO,kBAAkB,CAAC,QAAQ,CAAC;IACrC,CAAC;IAED,cAAc;QACZ,OAAO,IAAI,CAAC,WAAW,CAAC,OAAO,EAAE,CAAC;IACpC,CAAC;IAED,cAAc,CAAC,IAAW;QACxB,IAAI,CAAC,WAAW,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC;IACjC,CAAC;IAED,gBAAgB;QACd,IAAI,CAAC,WAAW,CAAC,SAAS,EAAE,CAAC;IAC/B,CAAC;IAED,OAAO;QACL,MAAM,IAAI,GAAG,IAAI,CAAC,cAAc,EAAE,CAAC;QACnC,OAAO,IAAI,EAAE,OAAO,IAAI,KAAK,CAAC;IAChC,CAAC;IAED,OAAO;QACL,OAAO,IAAI,CAAC,cAAc,EAAE,KAAK,IAAI,CAAC;IACxC,CAAC;CACF"}
|
|
@@ -0,0 +1,100 @@
|
|
|
1
|
+
import { getUsers, createUser, findUserByUsername } from '../models/User.js';
|
|
2
|
+
import { saveSettings, loadSettings } from '../config/index.js';
|
|
3
|
+
import bcrypt from 'bcryptjs';
|
|
4
|
+
// Get all users
|
|
5
|
+
export const getAllUsers = () => {
|
|
6
|
+
return getUsers();
|
|
7
|
+
};
|
|
8
|
+
// Get user by username
|
|
9
|
+
export const getUserByUsername = (username) => {
|
|
10
|
+
return findUserByUsername(username);
|
|
11
|
+
};
|
|
12
|
+
// Create a new user
|
|
13
|
+
export const createNewUser = async (username, password, isAdmin = false) => {
|
|
14
|
+
try {
|
|
15
|
+
const existingUser = findUserByUsername(username);
|
|
16
|
+
if (existingUser) {
|
|
17
|
+
return null; // User already exists
|
|
18
|
+
}
|
|
19
|
+
const userData = {
|
|
20
|
+
username,
|
|
21
|
+
password,
|
|
22
|
+
isAdmin,
|
|
23
|
+
};
|
|
24
|
+
return await createUser(userData);
|
|
25
|
+
}
|
|
26
|
+
catch (error) {
|
|
27
|
+
console.error('Failed to create user:', error);
|
|
28
|
+
return null;
|
|
29
|
+
}
|
|
30
|
+
};
|
|
31
|
+
// Update user information
|
|
32
|
+
export const updateUser = async (username, data) => {
|
|
33
|
+
try {
|
|
34
|
+
const users = getUsers();
|
|
35
|
+
const userIndex = users.findIndex((user) => user.username === username);
|
|
36
|
+
if (userIndex === -1) {
|
|
37
|
+
return null;
|
|
38
|
+
}
|
|
39
|
+
const user = users[userIndex];
|
|
40
|
+
// Update admin status if provided
|
|
41
|
+
if (data.isAdmin !== undefined) {
|
|
42
|
+
user.isAdmin = data.isAdmin;
|
|
43
|
+
}
|
|
44
|
+
// Update password if provided
|
|
45
|
+
if (data.newPassword) {
|
|
46
|
+
const salt = await bcrypt.genSalt(10);
|
|
47
|
+
user.password = await bcrypt.hash(data.newPassword, salt);
|
|
48
|
+
}
|
|
49
|
+
// Save users array back to settings
|
|
50
|
+
const { saveSettings, loadSettings } = await import('../config/index.js');
|
|
51
|
+
const settings = loadSettings();
|
|
52
|
+
settings.users = users;
|
|
53
|
+
if (!saveSettings(settings)) {
|
|
54
|
+
return null;
|
|
55
|
+
}
|
|
56
|
+
return user;
|
|
57
|
+
}
|
|
58
|
+
catch (error) {
|
|
59
|
+
console.error('Failed to update user:', error);
|
|
60
|
+
return null;
|
|
61
|
+
}
|
|
62
|
+
};
|
|
63
|
+
// Delete a user
|
|
64
|
+
export const deleteUser = (username) => {
|
|
65
|
+
try {
|
|
66
|
+
// Cannot delete the last admin user
|
|
67
|
+
const users = getUsers();
|
|
68
|
+
const adminUsers = users.filter((user) => user.isAdmin);
|
|
69
|
+
const userToDelete = users.find((user) => user.username === username);
|
|
70
|
+
if (userToDelete?.isAdmin && adminUsers.length === 1) {
|
|
71
|
+
return false; // Cannot delete the last admin
|
|
72
|
+
}
|
|
73
|
+
const filteredUsers = users.filter((user) => user.username !== username);
|
|
74
|
+
if (filteredUsers.length === users.length) {
|
|
75
|
+
return false; // User not found
|
|
76
|
+
}
|
|
77
|
+
// Save filtered users back to settings
|
|
78
|
+
const settings = loadSettings();
|
|
79
|
+
settings.users = filteredUsers;
|
|
80
|
+
return saveSettings(settings);
|
|
81
|
+
}
|
|
82
|
+
catch (error) {
|
|
83
|
+
console.error('Failed to delete user:', error);
|
|
84
|
+
return false;
|
|
85
|
+
}
|
|
86
|
+
};
|
|
87
|
+
// Check if user has admin permissions
|
|
88
|
+
export const isUserAdmin = (username) => {
|
|
89
|
+
const user = findUserByUsername(username);
|
|
90
|
+
return user?.isAdmin || false;
|
|
91
|
+
};
|
|
92
|
+
// Get user count
|
|
93
|
+
export const getUserCount = () => {
|
|
94
|
+
return getUsers().length;
|
|
95
|
+
};
|
|
96
|
+
// Get admin count
|
|
97
|
+
export const getAdminCount = () => {
|
|
98
|
+
return getUsers().filter((user) => user.isAdmin).length;
|
|
99
|
+
};
|
|
100
|
+
//# sourceMappingURL=userService.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"userService.js","sourceRoot":"","sources":["../../src/services/userService.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,QAAQ,EAAE,UAAU,EAAE,kBAAkB,EAAE,MAAM,mBAAmB,CAAC;AAC7E,OAAO,EAAE,YAAY,EAAE,YAAY,EAAE,MAAM,oBAAoB,CAAC;AAChE,OAAO,MAAM,MAAM,UAAU,CAAC;AAE9B,gBAAgB;AAChB,MAAM,CAAC,MAAM,WAAW,GAAG,GAAY,EAAE;IACvC,OAAO,QAAQ,EAAE,CAAC;AACpB,CAAC,CAAC;AAEF,uBAAuB;AACvB,MAAM,CAAC,MAAM,iBAAiB,GAAG,CAAC,QAAgB,EAAqB,EAAE;IACvE,OAAO,kBAAkB,CAAC,QAAQ,CAAC,CAAC;AACtC,CAAC,CAAC;AAEF,oBAAoB;AACpB,MAAM,CAAC,MAAM,aAAa,GAAG,KAAK,EAChC,QAAgB,EAChB,QAAgB,EAChB,UAAmB,KAAK,EACD,EAAE;IACzB,IAAI,CAAC;QACH,MAAM,YAAY,GAAG,kBAAkB,CAAC,QAAQ,CAAC,CAAC;QAClD,IAAI,YAAY,EAAE,CAAC;YACjB,OAAO,IAAI,CAAC,CAAC,sBAAsB;QACrC,CAAC;QAED,MAAM,QAAQ,GAAU;YACtB,QAAQ;YACR,QAAQ;YACR,OAAO;SACR,CAAC;QAEF,OAAO,MAAM,UAAU,CAAC,QAAQ,CAAC,CAAC;IACpC,CAAC;IAAC,OAAO,KAAK,EAAE,CAAC;QACf,OAAO,CAAC,KAAK,CAAC,wBAAwB,EAAE,KAAK,CAAC,CAAC;QAC/C,OAAO,IAAI,CAAC;IACd,CAAC;AACH,CAAC,CAAC;AAEF,0BAA0B;AAC1B,MAAM,CAAC,MAAM,UAAU,GAAG,KAAK,EAC7B,QAAgB,EAChB,IAAiD,EAC1B,EAAE;IACzB,IAAI,CAAC;QACH,MAAM,KAAK,GAAG,QAAQ,EAAE,CAAC;QACzB,MAAM,SAAS,GAAG,KAAK,CAAC,SAAS,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,IAAI,CAAC,QAAQ,KAAK,QAAQ,CAAC,CAAC;QAExE,IAAI,SAAS,KAAK,CAAC,CAAC,EAAE,CAAC;YACrB,OAAO,IAAI,CAAC;QACd,CAAC;QAED,MAAM,IAAI,GAAG,KAAK,CAAC,SAAS,CAAC,CAAC;QAE9B,kCAAkC;QAClC,IAAI,IAAI,CAAC,OAAO,KAAK,SAAS,EAAE,CAAC;YAC/B,IAAI,CAAC,OAAO,GAAG,IAAI,CAAC,OAAO,CAAC;QAC9B,CAAC;QAED,8BAA8B;QAC9B,IAAI,IAAI,CAAC,WAAW,EAAE,CAAC;YACrB,MAAM,IAAI,GAAG,MAAM,MAAM,CAAC,OAAO,CAAC,EAAE,CAAC,CAAC;YACtC,IAAI,CAAC,QAAQ,GAAG,MAAM,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,WAAW,EAAE,IAAI,CAAC,CAAC;QAC5D,CAAC;QAED,oCAAoC;QACpC,MAAM,EAAE,YAAY,EAAE,YAAY,EAAE,GAAG,MAAM,MAAM,CAAC,oBAAoB,CAAC,CAAC;QAC1E,MAAM,QAAQ,GAAG,YAAY,EAAE,CAAC;QAChC,QAAQ,CAAC,KAAK,GAAG,KAAK,CAAC;QAEvB,IAAI,CAAC,YAAY,CAAC,QAAQ,CAAC,EAAE,CAAC;YAC5B,OAAO,IAAI,CAAC;QACd,CAAC;QAED,OAAO,IAAI,CAAC;IACd,CAAC;IAAC,OAAO,KAAK,EAAE,CAAC;QACf,OAAO,CAAC,KAAK,CAAC,wBAAwB,EAAE,KAAK,CAAC,CAAC;QAC/C,OAAO,IAAI,CAAC;IACd,CAAC;AACH,CAAC,CAAC;AAEF,gBAAgB;AAChB,MAAM,CAAC,MAAM,UAAU,GAAG,CAAC,QAAgB,EAAW,EAAE;IACtD,IAAI,CAAC;QACH,oCAAoC;QACpC,MAAM,KAAK,GAAG,QAAQ,EAAE,CAAC;QACzB,MAAM,UAAU,GAAG,KAAK,CAAC,MAAM,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;QACxD,MAAM,YAAY,GAAG,KAAK,CAAC,IAAI,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,IAAI,CAAC,QAAQ,KAAK,QAAQ,CAAC,CAAC;QAEtE,IAAI,YAAY,EAAE,OAAO,IAAI,UAAU,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;YACrD,OAAO,KAAK,CAAC,CAAC,+BAA+B;QAC/C,CAAC;QAED,MAAM,aAAa,GAAG,KAAK,CAAC,MAAM,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,IAAI,CAAC,QAAQ,KAAK,QAAQ,CAAC,CAAC;QAEzE,IAAI,aAAa,CAAC,MAAM,KAAK,KAAK,CAAC,MAAM,EAAE,CAAC;YAC1C,OAAO,KAAK,CAAC,CAAC,iBAAiB;QACjC,CAAC;QAED,uCAAuC;QACvC,MAAM,QAAQ,GAAG,YAAY,EAAE,CAAC;QAChC,QAAQ,CAAC,KAAK,GAAG,aAAa,CAAC;QAE/B,OAAO,YAAY,CAAC,QAAQ,CAAC,CAAC;IAChC,CAAC;IAAC,OAAO,KAAK,EAAE,CAAC;QACf,OAAO,CAAC,KAAK,CAAC,wBAAwB,EAAE,KAAK,CAAC,CAAC;QAC/C,OAAO,KAAK,CAAC;IACf,CAAC;AACH,CAAC,CAAC;AAEF,sCAAsC;AACtC,MAAM,CAAC,MAAM,WAAW,GAAG,CAAC,QAAgB,EAAW,EAAE;IACvD,MAAM,IAAI,GAAG,kBAAkB,CAAC,QAAQ,CAAC,CAAC;IAC1C,OAAO,IAAI,EAAE,OAAO,IAAI,KAAK,CAAC;AAChC,CAAC,CAAC;AAEF,iBAAiB;AACjB,MAAM,CAAC,MAAM,YAAY,GAAG,GAAW,EAAE;IACvC,OAAO,QAAQ,EAAE,CAAC,MAAM,CAAC;AAC3B,CAAC,CAAC;AAEF,kBAAkB;AAClB,MAAM,CAAC,MAAM,aAAa,GAAG,GAAW,EAAE;IACxC,OAAO,QAAQ,EAAE,CAAC,MAAM,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC,MAAM,CAAC;AAC1D,CAAC,CAAC"}
|
package/dist/utils/path.js
CHANGED
|
@@ -1,12 +1,8 @@
|
|
|
1
1
|
import fs from 'fs';
|
|
2
2
|
import path from 'path';
|
|
3
|
-
import { fileURLToPath } from 'url';
|
|
4
3
|
import { dirname } from 'path';
|
|
5
|
-
//
|
|
6
|
-
const
|
|
7
|
-
const __dirname = dirname(__filename);
|
|
8
|
-
// Project root directory should be the parent directory of src
|
|
9
|
-
const rootDir = dirname(dirname(__dirname));
|
|
4
|
+
// Project root directory - use process.cwd() as a simpler alternative
|
|
5
|
+
const rootDir = process.cwd();
|
|
10
6
|
/**
|
|
11
7
|
* Find the path to a configuration file by checking multiple potential locations.
|
|
12
8
|
* @param filename The name of the file to locate (e.g., 'servers.json', 'mcp_settings.json')
|
|
@@ -22,7 +18,7 @@ export const getConfigFilePath = (filename, description = 'Configuration') => {
|
|
|
22
18
|
// Use path relative to the root directory
|
|
23
19
|
path.join(rootDir, filename),
|
|
24
20
|
// If installed with npx, may need to look one level up
|
|
25
|
-
path.join(dirname(rootDir), filename)
|
|
21
|
+
path.join(dirname(rootDir), filename),
|
|
26
22
|
];
|
|
27
23
|
for (const filePath of potentialPaths) {
|
|
28
24
|
if (fs.existsSync(filePath)) {
|
package/dist/utils/path.js.map
CHANGED
|
@@ -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,
|
|
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"}
|
|
@@ -0,0 +1,59 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Utility functions for safe JSON serialization
|
|
3
|
+
* Handles circular references and provides type-safe serialization
|
|
4
|
+
*/
|
|
5
|
+
/**
|
|
6
|
+
* Creates a JSON-safe copy of an object by removing circular references
|
|
7
|
+
* Uses a replacer function with WeakSet to efficiently track visited objects
|
|
8
|
+
*
|
|
9
|
+
* @param obj - The object to make JSON-safe
|
|
10
|
+
* @returns A new object that can be safely serialized to JSON
|
|
11
|
+
*/
|
|
12
|
+
export const createSafeJSON = (obj) => {
|
|
13
|
+
const seen = new WeakSet();
|
|
14
|
+
return JSON.parse(JSON.stringify(obj, (key, value) => {
|
|
15
|
+
if (typeof value === 'object' && value !== null) {
|
|
16
|
+
if (seen.has(value)) {
|
|
17
|
+
return '[Circular Reference]';
|
|
18
|
+
}
|
|
19
|
+
seen.add(value);
|
|
20
|
+
}
|
|
21
|
+
return value;
|
|
22
|
+
}));
|
|
23
|
+
};
|
|
24
|
+
/**
|
|
25
|
+
* Safe JSON stringifier that handles circular references
|
|
26
|
+
* Useful for logging or debugging purposes
|
|
27
|
+
*
|
|
28
|
+
* @param obj - The object to stringify
|
|
29
|
+
* @param space - Number of spaces to use for indentation (optional)
|
|
30
|
+
* @returns JSON string representation of the object
|
|
31
|
+
*/
|
|
32
|
+
export const safeStringify = (obj, space) => {
|
|
33
|
+
const seen = new WeakSet();
|
|
34
|
+
return JSON.stringify(obj, (key, value) => {
|
|
35
|
+
if (typeof value === 'object' && value !== null) {
|
|
36
|
+
if (seen.has(value)) {
|
|
37
|
+
return '[Circular Reference]';
|
|
38
|
+
}
|
|
39
|
+
seen.add(value);
|
|
40
|
+
}
|
|
41
|
+
return value;
|
|
42
|
+
}, space);
|
|
43
|
+
};
|
|
44
|
+
/**
|
|
45
|
+
* Removes specific properties that might contain circular references
|
|
46
|
+
* More targeted approach for known problematic properties
|
|
47
|
+
*
|
|
48
|
+
* @param obj - The object to clean
|
|
49
|
+
* @param excludeProps - Array of property names to exclude
|
|
50
|
+
* @returns A new object without the specified properties
|
|
51
|
+
*/
|
|
52
|
+
export const excludeCircularProps = (obj, excludeProps) => {
|
|
53
|
+
const result = { ...obj };
|
|
54
|
+
excludeProps.forEach((prop) => {
|
|
55
|
+
delete result[prop];
|
|
56
|
+
});
|
|
57
|
+
return result;
|
|
58
|
+
};
|
|
59
|
+
//# sourceMappingURL=serialization.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"serialization.js","sourceRoot":"","sources":["../../src/utils/serialization.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH;;;;;;GAMG;AACH,MAAM,CAAC,MAAM,cAAc,GAAG,CAAI,GAAM,EAAK,EAAE;IAC7C,MAAM,IAAI,GAAG,IAAI,OAAO,EAAE,CAAC;IAE3B,OAAO,IAAI,CAAC,KAAK,CACf,IAAI,CAAC,SAAS,CAAC,GAAG,EAAE,CAAC,GAAG,EAAE,KAAK,EAAE,EAAE;QACjC,IAAI,OAAO,KAAK,KAAK,QAAQ,IAAI,KAAK,KAAK,IAAI,EAAE,CAAC;YAChD,IAAI,IAAI,CAAC,GAAG,CAAC,KAAK,CAAC,EAAE,CAAC;gBACpB,OAAO,sBAAsB,CAAC;YAChC,CAAC;YACD,IAAI,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC;QAClB,CAAC;QACD,OAAO,KAAK,CAAC;IACf,CAAC,CAAC,CACH,CAAC;AACJ,CAAC,CAAC;AAEF;;;;;;;GAOG;AACH,MAAM,CAAC,MAAM,aAAa,GAAG,CAAC,GAAQ,EAAE,KAAc,EAAU,EAAE;IAChE,MAAM,IAAI,GAAG,IAAI,OAAO,EAAE,CAAC;IAE3B,OAAO,IAAI,CAAC,SAAS,CACnB,GAAG,EACH,CAAC,GAAG,EAAE,KAAK,EAAE,EAAE;QACb,IAAI,OAAO,KAAK,KAAK,QAAQ,IAAI,KAAK,KAAK,IAAI,EAAE,CAAC;YAChD,IAAI,IAAI,CAAC,GAAG,CAAC,KAAK,CAAC,EAAE,CAAC;gBACpB,OAAO,sBAAsB,CAAC;YAChC,CAAC;YACD,IAAI,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC;QAClB,CAAC;QACD,OAAO,KAAK,CAAC;IACf,CAAC,EACD,KAAK,CACN,CAAC;AACJ,CAAC,CAAC;AAEF;;;;;;;GAOG;AACH,MAAM,CAAC,MAAM,oBAAoB,GAAG,CAClC,GAAM,EACN,YAAsB,EACwB,EAAE;IAChD,MAAM,MAAM,GAAG,EAAE,GAAG,GAAG,EAAE,CAAC;IAC1B,YAAY,CAAC,OAAO,CAAC,CAAC,IAAI,EAAE,EAAE;QAC5B,OAAO,MAAM,CAAC,IAAI,CAAC,CAAC;IACtB,CAAC,CAAC,CAAC;IACH,OAAO,MAAM,CAAC;AAChB,CAAC,CAAC"}
|
package/dist/utils/version.js
CHANGED
|
@@ -1,16 +1,12 @@
|
|
|
1
1
|
import fs from 'fs';
|
|
2
2
|
import path from 'path';
|
|
3
|
-
import { fileURLToPath } from 'url';
|
|
4
|
-
// Get the directory name in ESM
|
|
5
|
-
const __filename = fileURLToPath(import.meta.url);
|
|
6
|
-
const __dirname = path.dirname(__filename);
|
|
7
3
|
/**
|
|
8
4
|
* Gets the package version from package.json
|
|
9
5
|
* @returns The version string from package.json, or 'dev' if not found
|
|
10
6
|
*/
|
|
11
7
|
export const getPackageVersion = () => {
|
|
12
8
|
try {
|
|
13
|
-
const packageJsonPath = path.resolve(
|
|
9
|
+
const packageJsonPath = path.resolve(process.cwd(), 'package.json');
|
|
14
10
|
const packageJsonContent = fs.readFileSync(packageJsonPath, 'utf8');
|
|
15
11
|
const packageJson = JSON.parse(packageJsonContent);
|
|
16
12
|
return packageJson.version || 'dev';
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"version.js","sourceRoot":"","sources":["../../src/utils/version.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,IAAI,CAAC;AACpB,OAAO,IAAI,MAAM,MAAM,CAAC;
|
|
1
|
+
{"version":3,"file":"version.js","sourceRoot":"","sources":["../../src/utils/version.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,IAAI,CAAC;AACpB,OAAO,IAAI,MAAM,MAAM,CAAC;AAExB;;;GAGG;AACH,MAAM,CAAC,MAAM,iBAAiB,GAAG,GAAW,EAAE;IAC5C,IAAI,CAAC;QACH,MAAM,eAAe,GAAG,IAAI,CAAC,OAAO,CAAC,OAAO,CAAC,GAAG,EAAE,EAAE,cAAc,CAAC,CAAC;QACpE,MAAM,kBAAkB,GAAG,EAAE,CAAC,YAAY,CAAC,eAAe,EAAE,MAAM,CAAC,CAAC;QACpE,MAAM,WAAW,GAAG,IAAI,CAAC,KAAK,CAAC,kBAAkB,CAAC,CAAC;QACnD,OAAO,WAAW,CAAC,OAAO,IAAI,KAAK,CAAC;IACtC,CAAC;IAAC,OAAO,KAAK,EAAE,CAAC;QACf,OAAO,CAAC,KAAK,CAAC,gCAAgC,EAAE,KAAK,CAAC,CAAC;QACvD,OAAO,KAAK,CAAC;IACf,CAAC;AACH,CAAC,CAAC"}
|