easy-mcp-nest 0.1.0
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/LICENSE +22 -0
- package/README.md +417 -0
- package/dist/EasyMCP.d.ts +8 -0
- package/dist/EasyMCP.js +105 -0
- package/dist/EasyMCP.js.map +1 -0
- package/dist/app.controller.d.ts +6 -0
- package/dist/app.controller.js +35 -0
- package/dist/app.controller.js.map +1 -0
- package/dist/app.module.d.ts +2 -0
- package/dist/app.module.js +34 -0
- package/dist/app.module.js.map +1 -0
- package/dist/app.service.d.ts +3 -0
- package/dist/app.service.js +20 -0
- package/dist/app.service.js.map +1 -0
- package/dist/config/config-holder.service.d.ts +6 -0
- package/dist/config/config-holder.service.js +32 -0
- package/dist/config/config-holder.service.js.map +1 -0
- package/dist/config/config-validator.d.ts +5 -0
- package/dist/config/config-validator.js +78 -0
- package/dist/config/config-validator.js.map +1 -0
- package/dist/config/constants.d.ts +4 -0
- package/dist/config/constants.js +8 -0
- package/dist/config/constants.js.map +1 -0
- package/dist/config/mcp-config.interface.d.ts +18 -0
- package/dist/config/mcp-config.interface.js +3 -0
- package/dist/config/mcp-config.interface.js.map +1 -0
- package/dist/config/version.d.ts +4 -0
- package/dist/config/version.js +41 -0
- package/dist/config/version.js.map +1 -0
- package/dist/core/core.module.d.ts +2 -0
- package/dist/core/core.module.js +24 -0
- package/dist/core/core.module.js.map +1 -0
- package/dist/core/errors/easy-mcp-error.d.ts +14 -0
- package/dist/core/errors/easy-mcp-error.js +39 -0
- package/dist/core/errors/easy-mcp-error.js.map +1 -0
- package/dist/core/mcp-server/mcp-server.service.d.ts +22 -0
- package/dist/core/mcp-server/mcp-server.service.js +285 -0
- package/dist/core/mcp-server/mcp-server.service.js.map +1 -0
- package/dist/core/utils/logger.util.d.ts +26 -0
- package/dist/core/utils/logger.util.js +44 -0
- package/dist/core/utils/logger.util.js.map +1 -0
- package/dist/core/utils/nestjs-stderr-logger.d.ts +9 -0
- package/dist/core/utils/nestjs-stderr-logger.js +123 -0
- package/dist/core/utils/nestjs-stderr-logger.js.map +1 -0
- package/dist/core/utils/sanitize.util.d.ts +6 -0
- package/dist/core/utils/sanitize.util.js +111 -0
- package/dist/core/utils/sanitize.util.js.map +1 -0
- package/dist/core/utils/schema-validator.d.ts +2 -0
- package/dist/core/utils/schema-validator.js +62 -0
- package/dist/core/utils/schema-validator.js.map +1 -0
- package/dist/index.d.ts +11 -0
- package/dist/index.js +22 -0
- package/dist/index.js.map +1 -0
- package/dist/interface/interface.interface.d.ts +4 -0
- package/dist/interface/interface.interface.js +3 -0
- package/dist/interface/interface.interface.js.map +1 -0
- package/dist/interface/interface.module.d.ts +2 -0
- package/dist/interface/interface.module.js +29 -0
- package/dist/interface/interface.module.js.map +1 -0
- package/dist/interface/jsonrpc.interface.d.ts +27 -0
- package/dist/interface/jsonrpc.interface.js +42 -0
- package/dist/interface/jsonrpc.interface.js.map +1 -0
- package/dist/interface/mcp-protocol.interface.d.ts +58 -0
- package/dist/interface/mcp-protocol.interface.js +13 -0
- package/dist/interface/mcp-protocol.interface.js.map +1 -0
- package/dist/interface/mcp.interface.d.ts +44 -0
- package/dist/interface/mcp.interface.js +3 -0
- package/dist/interface/mcp.interface.js.map +1 -0
- package/dist/interface/stdio-gateway.service.d.ts +20 -0
- package/dist/interface/stdio-gateway.service.js +373 -0
- package/dist/interface/stdio-gateway.service.js.map +1 -0
- package/dist/main.d.ts +1 -0
- package/dist/main.js +17 -0
- package/dist/main.js.map +1 -0
- package/dist/tooling/tool-registry/tool-registry.service.d.ts +23 -0
- package/dist/tooling/tool-registry/tool-registry.service.js +122 -0
- package/dist/tooling/tool-registry/tool-registry.service.js.map +1 -0
- package/dist/tooling/tool.interface.d.ts +13 -0
- package/dist/tooling/tool.interface.js +3 -0
- package/dist/tooling/tool.interface.js.map +1 -0
- package/dist/tsconfig.build.tsbuildinfo +1 -0
- package/package.json +104 -0
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"mcp-server.service.js","sourceRoot":"","sources":["../../../src/core/mcp-server/mcp-server.service.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,26 @@
|
|
|
1
|
+
export declare enum LogLevel {
|
|
2
|
+
DEBUG = "debug",
|
|
3
|
+
INFO = "info",
|
|
4
|
+
WARN = "warn",
|
|
5
|
+
ERROR = "error"
|
|
6
|
+
}
|
|
7
|
+
export interface LogEntry {
|
|
8
|
+
timestamp: string;
|
|
9
|
+
level: LogLevel;
|
|
10
|
+
component: string;
|
|
11
|
+
message: string;
|
|
12
|
+
metadata?: Record<string, any>;
|
|
13
|
+
requestId?: string | number | null;
|
|
14
|
+
actor?: string;
|
|
15
|
+
action?: string;
|
|
16
|
+
outcome?: 'success' | 'failure';
|
|
17
|
+
}
|
|
18
|
+
export declare function logStructured(level: LogLevel, component: string, message: string, metadata?: Record<string, any>): void;
|
|
19
|
+
export declare function logAudit(component: string, action: string, outcome: 'success' | 'failure', metadata?: Record<string, any>, requestId?: string | number | null, actor?: string): void;
|
|
20
|
+
export declare const logger: {
|
|
21
|
+
debug: (component: string, message: string, metadata?: Record<string, any>) => void;
|
|
22
|
+
info: (component: string, message: string, metadata?: Record<string, any>) => void;
|
|
23
|
+
warn: (component: string, message: string, metadata?: Record<string, any>) => void;
|
|
24
|
+
error: (component: string, message: string, metadata?: Record<string, any>) => void;
|
|
25
|
+
audit: (component: string, action: string, outcome: "success" | "failure", metadata?: Record<string, any>, requestId?: string | number | null, actor?: string) => void;
|
|
26
|
+
};
|
|
@@ -0,0 +1,44 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.logger = exports.LogLevel = void 0;
|
|
4
|
+
exports.logStructured = logStructured;
|
|
5
|
+
exports.logAudit = logAudit;
|
|
6
|
+
var LogLevel;
|
|
7
|
+
(function (LogLevel) {
|
|
8
|
+
LogLevel["DEBUG"] = "debug";
|
|
9
|
+
LogLevel["INFO"] = "info";
|
|
10
|
+
LogLevel["WARN"] = "warn";
|
|
11
|
+
LogLevel["ERROR"] = "error";
|
|
12
|
+
})(LogLevel || (exports.LogLevel = LogLevel = {}));
|
|
13
|
+
function logStructured(level, component, message, metadata) {
|
|
14
|
+
const entry = {
|
|
15
|
+
timestamp: new Date().toISOString(),
|
|
16
|
+
level,
|
|
17
|
+
component,
|
|
18
|
+
message,
|
|
19
|
+
...(metadata && { metadata }),
|
|
20
|
+
};
|
|
21
|
+
process.stderr.write(JSON.stringify(entry) + '\n');
|
|
22
|
+
}
|
|
23
|
+
function logAudit(component, action, outcome, metadata, requestId, actor) {
|
|
24
|
+
const entry = {
|
|
25
|
+
timestamp: new Date().toISOString(),
|
|
26
|
+
level: LogLevel.INFO,
|
|
27
|
+
component,
|
|
28
|
+
message: `Audit: ${action} - ${outcome}`,
|
|
29
|
+
action,
|
|
30
|
+
outcome,
|
|
31
|
+
...(requestId !== undefined && { requestId }),
|
|
32
|
+
...(actor && { actor }),
|
|
33
|
+
...(metadata && { metadata }),
|
|
34
|
+
};
|
|
35
|
+
process.stderr.write(JSON.stringify(entry) + '\n');
|
|
36
|
+
}
|
|
37
|
+
exports.logger = {
|
|
38
|
+
debug: (component, message, metadata) => logStructured(LogLevel.DEBUG, component, message, metadata),
|
|
39
|
+
info: (component, message, metadata) => logStructured(LogLevel.INFO, component, message, metadata),
|
|
40
|
+
warn: (component, message, metadata) => logStructured(LogLevel.WARN, component, message, metadata),
|
|
41
|
+
error: (component, message, metadata) => logStructured(LogLevel.ERROR, component, message, metadata),
|
|
42
|
+
audit: (component, action, outcome, metadata, requestId, actor) => logAudit(component, action, outcome, metadata, requestId, actor),
|
|
43
|
+
};
|
|
44
|
+
//# sourceMappingURL=logger.util.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"logger.util.js","sourceRoot":"","sources":["../../../src/core/utils/logger.util.ts"],"names":[],"mappings":";;;AA4BA,sCAgBC;AAMD,4BAqBC;AAlED,IAAY,QAKX;AALD,WAAY,QAAQ;IAClB,2BAAe,CAAA;IACf,yBAAa,CAAA;IACb,yBAAa,CAAA;IACb,2BAAe,CAAA;AACjB,CAAC,EALW,QAAQ,wBAAR,QAAQ,QAKnB;AAkBD,SAAgB,aAAa,CAC3B,KAAe,EACf,SAAiB,EACjB,OAAe,EACf,QAA8B;IAE9B,MAAM,KAAK,GAAa;QACtB,SAAS,EAAE,IAAI,IAAI,EAAE,CAAC,WAAW,EAAE;QACnC,KAAK;QACL,SAAS;QACT,OAAO;QACP,GAAG,CAAC,QAAQ,IAAI,EAAE,QAAQ,EAAE,CAAC;KAC9B,CAAC;IAGF,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,IAAI,CAAC,SAAS,CAAC,KAAK,CAAC,GAAG,IAAI,CAAC,CAAC;AACrD,CAAC;AAMD,SAAgB,QAAQ,CACtB,SAAiB,EACjB,MAAc,EACd,OAA8B,EAC9B,QAA8B,EAC9B,SAAkC,EAClC,KAAc;IAEd,MAAM,KAAK,GAAa;QACtB,SAAS,EAAE,IAAI,IAAI,EAAE,CAAC,WAAW,EAAE;QACnC,KAAK,EAAE,QAAQ,CAAC,IAAI;QACpB,SAAS;QACT,OAAO,EAAE,UAAU,MAAM,MAAM,OAAO,EAAE;QACxC,MAAM;QACN,OAAO;QACP,GAAG,CAAC,SAAS,KAAK,SAAS,IAAI,EAAE,SAAS,EAAE,CAAC;QAC7C,GAAG,CAAC,KAAK,IAAI,EAAE,KAAK,EAAE,CAAC;QACvB,GAAG,CAAC,QAAQ,IAAI,EAAE,QAAQ,EAAE,CAAC;KAC9B,CAAC;IAEF,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,IAAI,CAAC,SAAS,CAAC,KAAK,CAAC,GAAG,IAAI,CAAC,CAAC;AACrD,CAAC;AAKY,QAAA,MAAM,GAAG;IACpB,KAAK,EAAE,CAAC,SAAiB,EAAE,OAAe,EAAE,QAA8B,EAAE,EAAE,CAC5E,aAAa,CAAC,QAAQ,CAAC,KAAK,EAAE,SAAS,EAAE,OAAO,EAAE,QAAQ,CAAC;IAC7D,IAAI,EAAE,CAAC,SAAiB,EAAE,OAAe,EAAE,QAA8B,EAAE,EAAE,CAC3E,aAAa,CAAC,QAAQ,CAAC,IAAI,EAAE,SAAS,EAAE,OAAO,EAAE,QAAQ,CAAC;IAC5D,IAAI,EAAE,CAAC,SAAiB,EAAE,OAAe,EAAE,QAA8B,EAAE,EAAE,CAC3E,aAAa,CAAC,QAAQ,CAAC,IAAI,EAAE,SAAS,EAAE,OAAO,EAAE,QAAQ,CAAC;IAC5D,KAAK,EAAE,CAAC,SAAiB,EAAE,OAAe,EAAE,QAA8B,EAAE,EAAE,CAC5E,aAAa,CAAC,QAAQ,CAAC,KAAK,EAAE,SAAS,EAAE,OAAO,EAAE,QAAQ,CAAC;IAC7D,KAAK,EAAE,CACL,SAAiB,EACjB,MAAc,EACd,OAA8B,EAC9B,QAA8B,EAC9B,SAAkC,EAClC,KAAc,EACd,EAAE,CAAC,QAAQ,CAAC,SAAS,EAAE,MAAM,EAAE,OAAO,EAAE,QAAQ,EAAE,SAAS,EAAE,KAAK,CAAC;CACtE,CAAC"}
|
|
@@ -0,0 +1,9 @@
|
|
|
1
|
+
import { LoggerService } from '@nestjs/common';
|
|
2
|
+
export declare class NestjsStderrLogger implements LoggerService {
|
|
3
|
+
log(message: any, context?: string): void;
|
|
4
|
+
error(message: any, trace?: string, context?: string): void;
|
|
5
|
+
warn(message: any, context?: string): void;
|
|
6
|
+
debug(message: any, context?: string): void;
|
|
7
|
+
verbose(message: any, context?: string): void;
|
|
8
|
+
private writeToStderr;
|
|
9
|
+
}
|
|
@@ -0,0 +1,123 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.NestjsStderrLogger = void 0;
|
|
4
|
+
const sanitize_util_1 = require("./sanitize.util");
|
|
5
|
+
function safeStringify(value, fallback = '[non-serializable]') {
|
|
6
|
+
if (value === null || value === undefined) {
|
|
7
|
+
return String(value);
|
|
8
|
+
}
|
|
9
|
+
if (typeof value === 'string') {
|
|
10
|
+
return value;
|
|
11
|
+
}
|
|
12
|
+
try {
|
|
13
|
+
return JSON.stringify(value);
|
|
14
|
+
}
|
|
15
|
+
catch (error) {
|
|
16
|
+
return fallback;
|
|
17
|
+
}
|
|
18
|
+
}
|
|
19
|
+
function sanitizeTrace(trace) {
|
|
20
|
+
if (!trace || typeof trace !== 'string') {
|
|
21
|
+
return '';
|
|
22
|
+
}
|
|
23
|
+
const maxTraceLength = 500;
|
|
24
|
+
let sanitized = trace;
|
|
25
|
+
sanitized = sanitized.replace(/\/[^\s]+/g, '[path]');
|
|
26
|
+
if (sanitized.length > maxTraceLength) {
|
|
27
|
+
sanitized = sanitized.substring(0, maxTraceLength) + '... [truncated]';
|
|
28
|
+
}
|
|
29
|
+
return sanitized;
|
|
30
|
+
}
|
|
31
|
+
class NestjsStderrLogger {
|
|
32
|
+
log(message, context) {
|
|
33
|
+
this.writeToStderr('info', message, context);
|
|
34
|
+
}
|
|
35
|
+
error(message, trace, context) {
|
|
36
|
+
this.writeToStderr('error', message, context, trace);
|
|
37
|
+
}
|
|
38
|
+
warn(message, context) {
|
|
39
|
+
this.writeToStderr('warn', message, context);
|
|
40
|
+
}
|
|
41
|
+
debug(message, context) {
|
|
42
|
+
this.writeToStderr('debug', message, context);
|
|
43
|
+
}
|
|
44
|
+
verbose(message, context) {
|
|
45
|
+
this.writeToStderr('verbose', message, context);
|
|
46
|
+
}
|
|
47
|
+
writeToStderr(level, message, context, trace) {
|
|
48
|
+
try {
|
|
49
|
+
let messageStr;
|
|
50
|
+
let metadata;
|
|
51
|
+
if (typeof message === 'string') {
|
|
52
|
+
messageStr = message;
|
|
53
|
+
}
|
|
54
|
+
else if (typeof message === 'object' && message !== null && !Array.isArray(message)) {
|
|
55
|
+
const { message: msg, ...rest } = message;
|
|
56
|
+
if (msg !== undefined) {
|
|
57
|
+
messageStr = typeof msg === 'string' ? msg : safeStringify(msg, '[message could not be serialized]');
|
|
58
|
+
}
|
|
59
|
+
else {
|
|
60
|
+
messageStr = safeStringify(message, '[object could not be serialized]');
|
|
61
|
+
}
|
|
62
|
+
if (Object.keys(rest).length > 0) {
|
|
63
|
+
try {
|
|
64
|
+
metadata = (0, sanitize_util_1.sanitizeObject)(rest, ['password', 'token', 'apiKey', 'secret', 'auth', 'credential', 'key', 'apikey']);
|
|
65
|
+
}
|
|
66
|
+
catch {
|
|
67
|
+
metadata = { error: '[metadata could not be sanitized]' };
|
|
68
|
+
}
|
|
69
|
+
}
|
|
70
|
+
}
|
|
71
|
+
else {
|
|
72
|
+
messageStr = safeStringify(message, '[value could not be serialized]');
|
|
73
|
+
}
|
|
74
|
+
const logEntry = {
|
|
75
|
+
timestamp: new Date().toISOString(),
|
|
76
|
+
level: level.toLowerCase(),
|
|
77
|
+
component: context || 'NestJS',
|
|
78
|
+
message: messageStr,
|
|
79
|
+
};
|
|
80
|
+
if (metadata) {
|
|
81
|
+
logEntry.metadata = metadata;
|
|
82
|
+
}
|
|
83
|
+
if (trace) {
|
|
84
|
+
logEntry.trace = sanitizeTrace(trace);
|
|
85
|
+
}
|
|
86
|
+
try {
|
|
87
|
+
const logJson = JSON.stringify(logEntry);
|
|
88
|
+
process.stderr.write(logJson + '\n');
|
|
89
|
+
}
|
|
90
|
+
catch (error) {
|
|
91
|
+
const fallbackEntry = {
|
|
92
|
+
timestamp: new Date().toISOString(),
|
|
93
|
+
level: 'error',
|
|
94
|
+
component: 'NestjsStderrLogger',
|
|
95
|
+
message: 'Failed to serialize log entry',
|
|
96
|
+
metadata: { originalLevel: level, originalContext: context },
|
|
97
|
+
};
|
|
98
|
+
try {
|
|
99
|
+
process.stderr.write(JSON.stringify(fallbackEntry) + '\n');
|
|
100
|
+
}
|
|
101
|
+
catch {
|
|
102
|
+
process.stderr.write(`[${new Date().toISOString()}] ERROR NestjsStderrLogger: Failed to write log entry\n`);
|
|
103
|
+
}
|
|
104
|
+
}
|
|
105
|
+
}
|
|
106
|
+
catch (error) {
|
|
107
|
+
try {
|
|
108
|
+
const errorEntry = {
|
|
109
|
+
timestamp: new Date().toISOString(),
|
|
110
|
+
level: 'error',
|
|
111
|
+
component: 'NestjsStderrLogger',
|
|
112
|
+
message: 'Logger error: ' + (0, sanitize_util_1.sanitizeErrorMessage)(error),
|
|
113
|
+
};
|
|
114
|
+
process.stderr.write(JSON.stringify(errorEntry) + '\n');
|
|
115
|
+
}
|
|
116
|
+
catch {
|
|
117
|
+
process.stderr.write(`[${new Date().toISOString()}] ERROR NestjsStderrLogger: Critical logger failure\n`);
|
|
118
|
+
}
|
|
119
|
+
}
|
|
120
|
+
}
|
|
121
|
+
}
|
|
122
|
+
exports.NestjsStderrLogger = NestjsStderrLogger;
|
|
123
|
+
//# sourceMappingURL=nestjs-stderr-logger.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"nestjs-stderr-logger.js","sourceRoot":"","sources":["../../../src/core/utils/nestjs-stderr-logger.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,6 @@
|
|
|
1
|
+
export declare function sanitizeValue(value: any, maxLength?: number): string;
|
|
2
|
+
export declare function sanitizeObject(obj: Record<string, any>, sensitiveKeys?: string[]): Record<string, any>;
|
|
3
|
+
export declare function sanitizeToolArgs(args: Record<string, any>): Record<string, any>;
|
|
4
|
+
export declare function sanitizeToolResult(result: any): string;
|
|
5
|
+
export declare function sanitizeErrorMessage(error: unknown): string;
|
|
6
|
+
export declare function sanitizeFilePath(filePath: string): string;
|
|
@@ -0,0 +1,111 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.sanitizeValue = sanitizeValue;
|
|
4
|
+
exports.sanitizeObject = sanitizeObject;
|
|
5
|
+
exports.sanitizeToolArgs = sanitizeToolArgs;
|
|
6
|
+
exports.sanitizeToolResult = sanitizeToolResult;
|
|
7
|
+
exports.sanitizeErrorMessage = sanitizeErrorMessage;
|
|
8
|
+
exports.sanitizeFilePath = sanitizeFilePath;
|
|
9
|
+
function sanitizeValue(value, maxLength = 50) {
|
|
10
|
+
if (value === null || value === undefined) {
|
|
11
|
+
return String(value);
|
|
12
|
+
}
|
|
13
|
+
if (typeof value === 'string') {
|
|
14
|
+
if (value.length > maxLength) {
|
|
15
|
+
return `${value.substring(0, maxLength)}... [truncated]`;
|
|
16
|
+
}
|
|
17
|
+
return value;
|
|
18
|
+
}
|
|
19
|
+
if (typeof value === 'object') {
|
|
20
|
+
try {
|
|
21
|
+
const jsonString = JSON.stringify(value);
|
|
22
|
+
if (jsonString.length > maxLength) {
|
|
23
|
+
return `${jsonString.substring(0, maxLength)}... [truncated]`;
|
|
24
|
+
}
|
|
25
|
+
return jsonString;
|
|
26
|
+
}
|
|
27
|
+
catch {
|
|
28
|
+
return '[object] [non-serializable]';
|
|
29
|
+
}
|
|
30
|
+
}
|
|
31
|
+
return String(value);
|
|
32
|
+
}
|
|
33
|
+
function sanitizeObject(obj, sensitiveKeys = ['password', 'token', 'apiKey', 'secret', 'auth', 'credential', 'key']) {
|
|
34
|
+
if (!obj || typeof obj !== 'object') {
|
|
35
|
+
return obj;
|
|
36
|
+
}
|
|
37
|
+
const sanitized = {};
|
|
38
|
+
const lowerSensitiveKeys = sensitiveKeys.map(k => k.toLowerCase());
|
|
39
|
+
for (const [key, value] of Object.entries(obj)) {
|
|
40
|
+
const lowerKey = key.toLowerCase();
|
|
41
|
+
if (lowerSensitiveKeys.some(sensitiveKey => lowerKey.includes(sensitiveKey))) {
|
|
42
|
+
sanitized[key] = '[REDACTED]';
|
|
43
|
+
}
|
|
44
|
+
else if (Array.isArray(value)) {
|
|
45
|
+
sanitized[key] = value.map((item) => item && typeof item === 'object' && !Array.isArray(item)
|
|
46
|
+
? sanitizeObject(item, sensitiveKeys)
|
|
47
|
+
: item);
|
|
48
|
+
}
|
|
49
|
+
else if (typeof value === 'object' && value !== null) {
|
|
50
|
+
sanitized[key] = sanitizeObject(value, sensitiveKeys);
|
|
51
|
+
}
|
|
52
|
+
else {
|
|
53
|
+
sanitized[key] = value;
|
|
54
|
+
}
|
|
55
|
+
}
|
|
56
|
+
return sanitized;
|
|
57
|
+
}
|
|
58
|
+
function sanitizeToolArgs(args) {
|
|
59
|
+
return sanitizeObject(args, ['password', 'token', 'apiKey', 'secret', 'auth', 'credential', 'key', 'apikey']);
|
|
60
|
+
}
|
|
61
|
+
function sanitizeToolResult(result) {
|
|
62
|
+
if (result === null || result === undefined) {
|
|
63
|
+
return String(result);
|
|
64
|
+
}
|
|
65
|
+
if (typeof result === 'string') {
|
|
66
|
+
let sanitized = result;
|
|
67
|
+
sanitized = sanitized.replace(/api[_-]?key['":\s]*[=:]\s*[^\s,}]+/gi, 'api[REDACTED]');
|
|
68
|
+
sanitized = sanitized.replace(/token['":\s]*[=:]\s*[^\s,}]+/gi, 'token[REDACTED]');
|
|
69
|
+
sanitized = sanitized.replace(/password['":\s]*[=:]\s*[^\s,}]+/gi, 'password[REDACTED]');
|
|
70
|
+
sanitized = sanitized.replace(/secret['":\s]*[=:]\s*[^\s,}]+/gi, 'secret[REDACTED]');
|
|
71
|
+
return sanitized;
|
|
72
|
+
}
|
|
73
|
+
if (typeof result === 'object') {
|
|
74
|
+
try {
|
|
75
|
+
const sanitized = sanitizeObject(result, ['password', 'token', 'apiKey', 'secret', 'auth', 'credential', 'key', 'apikey']);
|
|
76
|
+
return JSON.stringify(sanitized);
|
|
77
|
+
}
|
|
78
|
+
catch {
|
|
79
|
+
return '[Tool result could not be serialized]';
|
|
80
|
+
}
|
|
81
|
+
}
|
|
82
|
+
return String(result);
|
|
83
|
+
}
|
|
84
|
+
function sanitizeErrorMessage(error) {
|
|
85
|
+
if (error instanceof Error) {
|
|
86
|
+
let message = error.message;
|
|
87
|
+
message = message.replace(/api[_-]?key['":\s]*[=:]\s*[^\s,}]+/gi, 'api[REDACTED]');
|
|
88
|
+
message = message.replace(/token['":\s]*[=:]\s*[^\s,}]+/gi, 'token[REDACTED]');
|
|
89
|
+
message = message.replace(/password['":\s]*[=:]\s*[^\s,}]+/gi, 'password[REDACTED]');
|
|
90
|
+
message = message.replace(/secret['":\s]*[=:]\s*[^\s,}]+/gi, 'secret[REDACTED]');
|
|
91
|
+
return message;
|
|
92
|
+
}
|
|
93
|
+
return 'An unknown error occurred';
|
|
94
|
+
}
|
|
95
|
+
function sanitizeFilePath(filePath) {
|
|
96
|
+
if (!filePath || typeof filePath !== 'string') {
|
|
97
|
+
return '[invalid path]';
|
|
98
|
+
}
|
|
99
|
+
try {
|
|
100
|
+
const pathParts = filePath.split(/[/\\]/);
|
|
101
|
+
const filename = pathParts[pathParts.length - 1];
|
|
102
|
+
if (filename && filename.length < 100) {
|
|
103
|
+
return filename;
|
|
104
|
+
}
|
|
105
|
+
return filename ? `${filename.substring(0, 50)}...` : '[path]';
|
|
106
|
+
}
|
|
107
|
+
catch {
|
|
108
|
+
return '[path]';
|
|
109
|
+
}
|
|
110
|
+
}
|
|
111
|
+
//# sourceMappingURL=sanitize.util.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"sanitize.util.js","sourceRoot":"","sources":["../../../src/core/utils/sanitize.util.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,62 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.validateToolArguments = validateToolArguments;
|
|
4
|
+
function validateToolArguments(args, parameters, required) {
|
|
5
|
+
for (const paramName of required) {
|
|
6
|
+
if (!(paramName in args) || args[paramName] === undefined || args[paramName] === null) {
|
|
7
|
+
return `Missing required parameter: ${paramName}`;
|
|
8
|
+
}
|
|
9
|
+
}
|
|
10
|
+
for (const [paramName, paramValue] of Object.entries(args)) {
|
|
11
|
+
const paramDef = parameters[paramName];
|
|
12
|
+
if (!paramDef) {
|
|
13
|
+
return `Unknown parameter: ${paramName}`;
|
|
14
|
+
}
|
|
15
|
+
const validationError = validateParameterType(paramName, paramValue, paramDef);
|
|
16
|
+
if (validationError) {
|
|
17
|
+
return validationError;
|
|
18
|
+
}
|
|
19
|
+
if (paramDef.enum && !paramDef.enum.includes(paramValue)) {
|
|
20
|
+
return `Parameter '${paramName}' must be one of: ${paramDef.enum.join(", ")}`;
|
|
21
|
+
}
|
|
22
|
+
}
|
|
23
|
+
return null;
|
|
24
|
+
}
|
|
25
|
+
function validateParameterType(paramName, value, paramDef) {
|
|
26
|
+
switch (paramDef.type) {
|
|
27
|
+
case "string":
|
|
28
|
+
if (typeof value !== "string") {
|
|
29
|
+
return `Parameter '${paramName}' must be a string`;
|
|
30
|
+
}
|
|
31
|
+
break;
|
|
32
|
+
case "number":
|
|
33
|
+
if (typeof value !== "number" || isNaN(value)) {
|
|
34
|
+
return `Parameter '${paramName}' must be a number`;
|
|
35
|
+
}
|
|
36
|
+
break;
|
|
37
|
+
case "integer":
|
|
38
|
+
if (typeof value !== "number" || !Number.isInteger(value)) {
|
|
39
|
+
return `Parameter '${paramName}' must be an integer`;
|
|
40
|
+
}
|
|
41
|
+
break;
|
|
42
|
+
case "boolean":
|
|
43
|
+
if (typeof value !== "boolean") {
|
|
44
|
+
return `Parameter '${paramName}' must be a boolean`;
|
|
45
|
+
}
|
|
46
|
+
break;
|
|
47
|
+
case "array":
|
|
48
|
+
if (!Array.isArray(value)) {
|
|
49
|
+
return `Parameter '${paramName}' must be an array`;
|
|
50
|
+
}
|
|
51
|
+
break;
|
|
52
|
+
case "object":
|
|
53
|
+
if (typeof value !== "object" || value === null || Array.isArray(value)) {
|
|
54
|
+
return `Parameter '${paramName}' must be an object`;
|
|
55
|
+
}
|
|
56
|
+
break;
|
|
57
|
+
default:
|
|
58
|
+
return `Parameter '${paramName}' has unsupported type: ${paramDef.type}`;
|
|
59
|
+
}
|
|
60
|
+
return null;
|
|
61
|
+
}
|
|
62
|
+
//# sourceMappingURL=schema-validator.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"schema-validator.js","sourceRoot":"","sources":["../../../src/core/utils/schema-validator.ts"],"names":[],"mappings":";;AASA,sDAiCC;AAjCD,SAAgB,qBAAqB,CACnC,IAAyB,EACzB,UAAyC,EACzC,QAAkB;IAGlB,KAAK,MAAM,SAAS,IAAI,QAAQ,EAAE,CAAC;QACjC,IAAI,CAAC,CAAC,SAAS,IAAI,IAAI,CAAC,IAAI,IAAI,CAAC,SAAS,CAAC,KAAK,SAAS,IAAI,IAAI,CAAC,SAAS,CAAC,KAAK,IAAI,EAAE,CAAC;YACtF,OAAO,+BAA+B,SAAS,EAAE,CAAC;QACpD,CAAC;IACH,CAAC;IAGD,KAAK,MAAM,CAAC,SAAS,EAAE,UAAU,CAAC,IAAI,MAAM,CAAC,OAAO,CAAC,IAAI,CAAC,EAAE,CAAC;QAC3D,MAAM,QAAQ,GAAG,UAAU,CAAC,SAAS,CAAC,CAAC;QAEvC,IAAI,CAAC,QAAQ,EAAE,CAAC;YACd,OAAO,sBAAsB,SAAS,EAAE,CAAC;QAC3C,CAAC;QAGD,MAAM,eAAe,GAAG,qBAAqB,CAAC,SAAS,EAAE,UAAU,EAAE,QAAQ,CAAC,CAAC;QAC/E,IAAI,eAAe,EAAE,CAAC;YACpB,OAAO,eAAe,CAAC;QACzB,CAAC;QAGD,IAAI,QAAQ,CAAC,IAAI,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,QAAQ,CAAC,UAAU,CAAC,EAAE,CAAC;YACzD,OAAO,cAAc,SAAS,qBAAqB,QAAQ,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC;QAChF,CAAC;IACH,CAAC;IAED,OAAO,IAAI,CAAC;AACd,CAAC;AAKD,SAAS,qBAAqB,CAC5B,SAAiB,EACjB,KAAU,EACV,QAAuB;IAEvB,QAAQ,QAAQ,CAAC,IAAI,EAAE,CAAC;QACtB,KAAK,QAAQ;YACX,IAAI,OAAO,KAAK,KAAK,QAAQ,EAAE,CAAC;gBAC9B,OAAO,cAAc,SAAS,oBAAoB,CAAC;YACrD,CAAC;YACD,MAAM;QACR,KAAK,QAAQ;YACX,IAAI,OAAO,KAAK,KAAK,QAAQ,IAAI,KAAK,CAAC,KAAK,CAAC,EAAE,CAAC;gBAC9C,OAAO,cAAc,SAAS,oBAAoB,CAAC;YACrD,CAAC;YACD,MAAM;QACR,KAAK,SAAS;YACZ,IAAI,OAAO,KAAK,KAAK,QAAQ,IAAI,CAAC,MAAM,CAAC,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC;gBAC1D,OAAO,cAAc,SAAS,sBAAsB,CAAC;YACvD,CAAC;YACD,MAAM;QACR,KAAK,SAAS;YACZ,IAAI,OAAO,KAAK,KAAK,SAAS,EAAE,CAAC;gBAC/B,OAAO,cAAc,SAAS,qBAAqB,CAAC;YACtD,CAAC;YACD,MAAM;QACR,KAAK,OAAO;YACV,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC,EAAE,CAAC;gBAC1B,OAAO,cAAc,SAAS,oBAAoB,CAAC;YACrD,CAAC;YACD,MAAM;QACR,KAAK,QAAQ;YACX,IAAI,OAAO,KAAK,KAAK,QAAQ,IAAI,KAAK,KAAK,IAAI,IAAI,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC,EAAE,CAAC;gBACxE,OAAO,cAAc,SAAS,qBAAqB,CAAC;YACtD,CAAC;YACD,MAAM;QACR;YACE,OAAO,cAAc,SAAS,2BAA2B,QAAQ,CAAC,IAAI,EAAE,CAAC;IAC7E,CAAC;IAED,OAAO,IAAI,CAAC;AACd,CAAC"}
|
package/dist/index.d.ts
ADDED
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
export { EasyMCP } from './EasyMCP';
|
|
2
|
+
export type { McpConfig, ToolRegistrationInput, ServerInfo, } from './config/mcp-config.interface';
|
|
3
|
+
export type { IInterfaceLayer } from './interface/interface.interface';
|
|
4
|
+
export type { JsonRpcRequest, JsonRpcResponse, JsonRpcError, } from './interface/jsonrpc.interface';
|
|
5
|
+
export { JsonRpcErrorCode } from './interface/jsonrpc.interface';
|
|
6
|
+
export type { InitializeParams, InitializeResult, ListToolsResult, McpTool, CallToolParams, CallToolResult, } from './interface/mcp-protocol.interface';
|
|
7
|
+
export { McpErrorCode } from './interface/mcp-protocol.interface';
|
|
8
|
+
export type { ToolDefinition, ToolParameter, ToolFunction, } from './tooling/tool.interface';
|
|
9
|
+
export { EasyMcpError, ConfigurationError, ToolExecutionError, ToolNotFoundError, } from './core/errors/easy-mcp-error';
|
|
10
|
+
export { INTERFACE_LAYER_TOKEN } from './config/constants';
|
|
11
|
+
export { VERSION, PACKAGE_NAME, getVersion, getPackageName } from './config/version';
|
package/dist/index.js
ADDED
|
@@ -0,0 +1,22 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.getPackageName = exports.getVersion = exports.PACKAGE_NAME = exports.VERSION = exports.INTERFACE_LAYER_TOKEN = exports.ToolNotFoundError = exports.ToolExecutionError = exports.ConfigurationError = exports.EasyMcpError = exports.McpErrorCode = exports.JsonRpcErrorCode = exports.EasyMCP = void 0;
|
|
4
|
+
var EasyMCP_1 = require("./EasyMCP");
|
|
5
|
+
Object.defineProperty(exports, "EasyMCP", { enumerable: true, get: function () { return EasyMCP_1.EasyMCP; } });
|
|
6
|
+
var jsonrpc_interface_1 = require("./interface/jsonrpc.interface");
|
|
7
|
+
Object.defineProperty(exports, "JsonRpcErrorCode", { enumerable: true, get: function () { return jsonrpc_interface_1.JsonRpcErrorCode; } });
|
|
8
|
+
var mcp_protocol_interface_1 = require("./interface/mcp-protocol.interface");
|
|
9
|
+
Object.defineProperty(exports, "McpErrorCode", { enumerable: true, get: function () { return mcp_protocol_interface_1.McpErrorCode; } });
|
|
10
|
+
var easy_mcp_error_1 = require("./core/errors/easy-mcp-error");
|
|
11
|
+
Object.defineProperty(exports, "EasyMcpError", { enumerable: true, get: function () { return easy_mcp_error_1.EasyMcpError; } });
|
|
12
|
+
Object.defineProperty(exports, "ConfigurationError", { enumerable: true, get: function () { return easy_mcp_error_1.ConfigurationError; } });
|
|
13
|
+
Object.defineProperty(exports, "ToolExecutionError", { enumerable: true, get: function () { return easy_mcp_error_1.ToolExecutionError; } });
|
|
14
|
+
Object.defineProperty(exports, "ToolNotFoundError", { enumerable: true, get: function () { return easy_mcp_error_1.ToolNotFoundError; } });
|
|
15
|
+
var constants_1 = require("./config/constants");
|
|
16
|
+
Object.defineProperty(exports, "INTERFACE_LAYER_TOKEN", { enumerable: true, get: function () { return constants_1.INTERFACE_LAYER_TOKEN; } });
|
|
17
|
+
var version_1 = require("./config/version");
|
|
18
|
+
Object.defineProperty(exports, "VERSION", { enumerable: true, get: function () { return version_1.VERSION; } });
|
|
19
|
+
Object.defineProperty(exports, "PACKAGE_NAME", { enumerable: true, get: function () { return version_1.PACKAGE_NAME; } });
|
|
20
|
+
Object.defineProperty(exports, "getVersion", { enumerable: true, get: function () { return version_1.getVersion; } });
|
|
21
|
+
Object.defineProperty(exports, "getPackageName", { enumerable: true, get: function () { return version_1.getPackageName; } });
|
|
22
|
+
//# sourceMappingURL=index.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":";;;AACA,qCAAoC;AAA3B,kGAAA,OAAO,OAAA;AAmBhB,mEAAiE;AAAxD,qHAAA,gBAAgB,OAAA;AAYzB,6EAAkE;AAAzD,sHAAA,YAAY,OAAA;AAUrB,+DAKsC;AAJpC,8GAAA,YAAY,OAAA;AACZ,oHAAA,kBAAkB,OAAA;AAClB,oHAAA,kBAAkB,OAAA;AAClB,mHAAA,iBAAiB,OAAA;AAInB,gDAA2D;AAAlD,kHAAA,qBAAqB,OAAA;AAG9B,4CAAqF;AAA5E,kGAAA,OAAO,OAAA;AAAE,uGAAA,YAAY,OAAA;AAAE,qGAAA,UAAU,OAAA;AAAE,yGAAA,cAAc,OAAA"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"interface.interface.js","sourceRoot":"","sources":["../../src/interface/interface.interface.ts"],"names":[],"mappings":""}
|
|
@@ -0,0 +1,29 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {
|
|
3
|
+
var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
|
|
4
|
+
if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
|
|
5
|
+
else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
|
|
6
|
+
return c > 3 && r && Object.defineProperty(target, key, r), r;
|
|
7
|
+
};
|
|
8
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
9
|
+
exports.InterfaceModule = void 0;
|
|
10
|
+
const common_1 = require("@nestjs/common");
|
|
11
|
+
const stdio_gateway_service_1 = require("./stdio-gateway.service");
|
|
12
|
+
const constants_1 = require("../config/constants");
|
|
13
|
+
let InterfaceModule = class InterfaceModule {
|
|
14
|
+
};
|
|
15
|
+
exports.InterfaceModule = InterfaceModule;
|
|
16
|
+
exports.InterfaceModule = InterfaceModule = __decorate([
|
|
17
|
+
(0, common_1.Global)(),
|
|
18
|
+
(0, common_1.Module)({
|
|
19
|
+
providers: [
|
|
20
|
+
stdio_gateway_service_1.StdioGatewayService,
|
|
21
|
+
{
|
|
22
|
+
provide: constants_1.INTERFACE_LAYER_TOKEN,
|
|
23
|
+
useExisting: stdio_gateway_service_1.StdioGatewayService,
|
|
24
|
+
},
|
|
25
|
+
],
|
|
26
|
+
exports: [constants_1.INTERFACE_LAYER_TOKEN, stdio_gateway_service_1.StdioGatewayService],
|
|
27
|
+
})
|
|
28
|
+
], InterfaceModule);
|
|
29
|
+
//# sourceMappingURL=interface.module.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"interface.module.js","sourceRoot":"","sources":["../../src/interface/interface.module.ts"],"names":[],"mappings":";;;;;;;;;AAAA,2CAAgD;AAChD,mEAA8D;AAC9D,mDAA4D;AAcrD,IAAM,eAAe,GAArB,MAAM,eAAe;CAAG,CAAA;AAAlB,0CAAe;0BAAf,eAAe;IAZ3B,IAAA,eAAM,GAAE;IACR,IAAA,eAAM,EAAC;QACN,SAAS,EAAE;YACT,2CAAmB;YACnB;gBACE,OAAO,EAAE,iCAAqB;gBAC9B,WAAW,EAAE,2CAAmB;aACjC;SACF;QAED,OAAO,EAAE,CAAC,iCAAqB,EAAE,2CAAmB,CAAC;KACtD,CAAC;GACW,eAAe,CAAG"}
|
|
@@ -0,0 +1,27 @@
|
|
|
1
|
+
export interface JsonRpcRequest {
|
|
2
|
+
jsonrpc: "2.0";
|
|
3
|
+
id: string | number | null;
|
|
4
|
+
method: string;
|
|
5
|
+
params?: any;
|
|
6
|
+
}
|
|
7
|
+
export interface JsonRpcResponse {
|
|
8
|
+
jsonrpc: "2.0";
|
|
9
|
+
id: string | number | null;
|
|
10
|
+
result?: any;
|
|
11
|
+
error?: JsonRpcError;
|
|
12
|
+
}
|
|
13
|
+
export interface JsonRpcError {
|
|
14
|
+
code: number;
|
|
15
|
+
message: string;
|
|
16
|
+
data?: any;
|
|
17
|
+
}
|
|
18
|
+
export declare enum JsonRpcErrorCode {
|
|
19
|
+
ParseError = -32700,
|
|
20
|
+
InvalidRequest = -32600,
|
|
21
|
+
MethodNotFound = -32601,
|
|
22
|
+
InvalidParams = -32602,
|
|
23
|
+
InternalError = -32603
|
|
24
|
+
}
|
|
25
|
+
export declare function isValidJsonRpcRequest(obj: any): obj is JsonRpcRequest;
|
|
26
|
+
export declare function createJsonRpcSuccess(id: string | number | null, result: any): JsonRpcResponse;
|
|
27
|
+
export declare function createJsonRpcError(id: string | number | null, code: number, message: string, data?: any): JsonRpcResponse;
|
|
@@ -0,0 +1,42 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.JsonRpcErrorCode = void 0;
|
|
4
|
+
exports.isValidJsonRpcRequest = isValidJsonRpcRequest;
|
|
5
|
+
exports.createJsonRpcSuccess = createJsonRpcSuccess;
|
|
6
|
+
exports.createJsonRpcError = createJsonRpcError;
|
|
7
|
+
var JsonRpcErrorCode;
|
|
8
|
+
(function (JsonRpcErrorCode) {
|
|
9
|
+
JsonRpcErrorCode[JsonRpcErrorCode["ParseError"] = -32700] = "ParseError";
|
|
10
|
+
JsonRpcErrorCode[JsonRpcErrorCode["InvalidRequest"] = -32600] = "InvalidRequest";
|
|
11
|
+
JsonRpcErrorCode[JsonRpcErrorCode["MethodNotFound"] = -32601] = "MethodNotFound";
|
|
12
|
+
JsonRpcErrorCode[JsonRpcErrorCode["InvalidParams"] = -32602] = "InvalidParams";
|
|
13
|
+
JsonRpcErrorCode[JsonRpcErrorCode["InternalError"] = -32603] = "InternalError";
|
|
14
|
+
})(JsonRpcErrorCode || (exports.JsonRpcErrorCode = JsonRpcErrorCode = {}));
|
|
15
|
+
function isValidJsonRpcRequest(obj) {
|
|
16
|
+
return (obj &&
|
|
17
|
+
typeof obj === "object" &&
|
|
18
|
+
obj.jsonrpc === "2.0" &&
|
|
19
|
+
typeof obj.method === "string" &&
|
|
20
|
+
(obj.id === null ||
|
|
21
|
+
typeof obj.id === "string" ||
|
|
22
|
+
typeof obj.id === "number"));
|
|
23
|
+
}
|
|
24
|
+
function createJsonRpcSuccess(id, result) {
|
|
25
|
+
return {
|
|
26
|
+
jsonrpc: "2.0",
|
|
27
|
+
id,
|
|
28
|
+
result,
|
|
29
|
+
};
|
|
30
|
+
}
|
|
31
|
+
function createJsonRpcError(id, code, message, data) {
|
|
32
|
+
return {
|
|
33
|
+
jsonrpc: "2.0",
|
|
34
|
+
id,
|
|
35
|
+
error: {
|
|
36
|
+
code,
|
|
37
|
+
message,
|
|
38
|
+
...(data !== undefined && { data }),
|
|
39
|
+
},
|
|
40
|
+
};
|
|
41
|
+
}
|
|
42
|
+
//# sourceMappingURL=jsonrpc.interface.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"jsonrpc.interface.js","sourceRoot":"","sources":["../../src/interface/jsonrpc.interface.ts"],"names":[],"mappings":";;;AA2CA,sDAUC;AAKD,oDASC;AAKD,gDAeC;AAvDD,IAAY,gBAMX;AAND,WAAY,gBAAgB;IAC1B,wEAAmB,CAAA;IACnB,gFAAuB,CAAA;IACvB,gFAAuB,CAAA;IACvB,8EAAsB,CAAA;IACtB,8EAAsB,CAAA;AACxB,CAAC,EANW,gBAAgB,gCAAhB,gBAAgB,QAM3B;AAKD,SAAgB,qBAAqB,CAAC,GAAQ;IAC5C,OAAO,CACL,GAAG;QACH,OAAO,GAAG,KAAK,QAAQ;QACvB,GAAG,CAAC,OAAO,KAAK,KAAK;QACrB,OAAO,GAAG,CAAC,MAAM,KAAK,QAAQ;QAC9B,CAAC,GAAG,CAAC,EAAE,KAAK,IAAI;YACd,OAAO,GAAG,CAAC,EAAE,KAAK,QAAQ;YAC1B,OAAO,GAAG,CAAC,EAAE,KAAK,QAAQ,CAAC,CAC9B,CAAC;AACJ,CAAC;AAKD,SAAgB,oBAAoB,CAClC,EAA0B,EAC1B,MAAW;IAEX,OAAO;QACL,OAAO,EAAE,KAAK;QACd,EAAE;QACF,MAAM;KACP,CAAC;AACJ,CAAC;AAKD,SAAgB,kBAAkB,CAChC,EAA0B,EAC1B,IAAY,EACZ,OAAe,EACf,IAAU;IAEV,OAAO;QACL,OAAO,EAAE,KAAK;QACd,EAAE;QACF,KAAK,EAAE;YACL,IAAI;YACJ,OAAO;YACP,GAAG,CAAC,IAAI,KAAK,SAAS,IAAI,EAAE,IAAI,EAAE,CAAC;SACpC;KACF,CAAC;AACJ,CAAC"}
|