@servicelabsco/slabs-access-manager 1.0.38 → 1.0.40
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/access/libraries/process.report.data.d.ts +1 -3
- package/dist/access/libraries/process.report.data.js +2 -13
- package/dist/access/libraries/process.report.data.js.map +1 -1
- package/dist/mcp/http/admin.mcp.controller.d.ts +2 -2
- package/dist/mcp/http/admin.mcp.controller.js +6 -1
- package/dist/mcp/http/admin.mcp.controller.js.map +1 -1
- package/dist/mcp/http/business.mcp.controller.d.ts +2 -2
- package/dist/mcp/http/business.mcp.controller.js +7 -1
- package/dist/mcp/http/business.mcp.controller.js.map +1 -1
- package/dist/mcp/http/index.d.ts +1 -0
- package/dist/mcp/http/index.js +1 -0
- package/dist/mcp/http/index.js.map +1 -1
- package/dist/mcp/http/mcp.request.handler.d.ts +2 -0
- package/dist/mcp/http/mcp.request.handler.js +30 -11
- package/dist/mcp/http/mcp.request.handler.js.map +1 -1
- package/dist/mcp/http/unauthorized.mcp.response.d.ts +4 -0
- package/dist/mcp/http/unauthorized.mcp.response.js +23 -0
- package/dist/mcp/http/unauthorized.mcp.response.js.map +1 -0
- package/package.json +1 -1
|
@@ -1,7 +1,6 @@
|
|
|
1
1
|
import { ReportEntity, SqlService, UploadService } from '@servicelabsco/nestjs-utility-services';
|
|
2
2
|
import { CommonListFilterDto } from '../dtos/common.list.filter.dto';
|
|
3
3
|
import { ListResponseDto } from '../dtos/list.response.dto';
|
|
4
|
-
import { ReportLogEntity } from '../entities/report.log.entity';
|
|
5
4
|
import { ListingService } from '../services/listing.service';
|
|
6
5
|
export declare class ProcessReportData {
|
|
7
6
|
private readonly sqlService;
|
|
@@ -30,6 +29,5 @@ export declare class ProcessReportData {
|
|
|
30
29
|
private sendResponse;
|
|
31
30
|
private getEmbeddedFilterRestriction;
|
|
32
31
|
private generateCsv;
|
|
33
|
-
logReport(response: any, duration: number): Promise<
|
|
34
|
-
private isError;
|
|
32
|
+
logReport(response: any, duration: number): Promise<void>;
|
|
35
33
|
}
|
|
@@ -30,8 +30,6 @@ class ProcessReportData {
|
|
|
30
30
|
const date = new Date();
|
|
31
31
|
try {
|
|
32
32
|
const response = await this.sqlService.read(sql);
|
|
33
|
-
const duration = (new Date().getTime() - date.getTime()) / 1000;
|
|
34
|
-
await this.logReport(response, duration);
|
|
35
33
|
if (debug_mode)
|
|
36
34
|
return { data: response, debug_response: sql };
|
|
37
35
|
return response;
|
|
@@ -47,8 +45,6 @@ class ProcessReportData {
|
|
|
47
45
|
try {
|
|
48
46
|
await this.getRecords();
|
|
49
47
|
await this.getTotalRecords();
|
|
50
|
-
const duration = (new Date().getTime() - date.getTime()) / 1000;
|
|
51
|
-
await this.logReport(this.response, duration);
|
|
52
48
|
return this.sendResponse();
|
|
53
49
|
}
|
|
54
50
|
catch (error) {
|
|
@@ -171,22 +167,15 @@ class ProcessReportData {
|
|
|
171
167
|
query: this.query,
|
|
172
168
|
params: this.filter,
|
|
173
169
|
response: { response },
|
|
174
|
-
is_error:
|
|
170
|
+
is_error: true,
|
|
175
171
|
duration,
|
|
176
172
|
});
|
|
177
|
-
|
|
173
|
+
await log.save();
|
|
178
174
|
}
|
|
179
175
|
catch (error) {
|
|
180
176
|
console.error('Error logging report:', error);
|
|
181
177
|
}
|
|
182
178
|
}
|
|
183
|
-
isError(response) {
|
|
184
|
-
if (response?.records)
|
|
185
|
-
return false;
|
|
186
|
-
if (response?.length > 0)
|
|
187
|
-
return false;
|
|
188
|
-
return true;
|
|
189
|
-
}
|
|
190
179
|
}
|
|
191
180
|
exports.ProcessReportData = ProcessReportData;
|
|
192
181
|
//# sourceMappingURL=process.report.data.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"process.report.data.js","sourceRoot":"","sources":["../../../src/access/libraries/process.report.data.ts"],"names":[],"mappings":";;;AAAA,oFAA+I;AAG/I,qEAAgE;AAEhE,yEAAmE;AAEnE,MAAa,iBAAiB;IAgD1B,YACqB,UAAsB,EACtB,MAAoB,EACpB,aAA4B,EAC5B,cAA8B;QAH9B,eAAU,GAAV,UAAU,CAAY;QACtB,WAAM,GAAN,MAAM,CAAc;QACpB,kBAAa,GAAb,aAAa,CAAe;QAC5B,mBAAc,GAAd,cAAc,CAAgB;QArBzC,iBAAY,GAAa,EAAE,CAAC;QAQ5B,aAAQ,GAAoB,EAAE,KAAK,EAAE,EAAE,EAAE,OAAO,EAAE,EAAE,EAAE,OAAO,EAAE,EAAE,EAAE,CAAC;IAc3E,CAAC;IAQJ,KAAK,CAAC,IAAI,CAAC,MAAW,EAAE,cAAsB;QAC1C,IAAI,CAAC,MAAM,GAAG,MAAM,CAAC;QACrB,IAAI,CAAC,cAAc,GAAG,cAAc,CAAC;QACrC,IAAI,CAAC,KAAK,GAAG,MAAM,IAAI,CAAC,QAAQ,EAAE,CAAC;QAEnC,IAAI,IAAI,CAAC,MAAM,CAAC,SAAS;YAAE,OAAO,IAAI,CAAC,SAAS,EAAE,CAAC;QACnD,IAAI,IAAI,CAAC,MAAM,CAAC,MAAM,EAAE,GAAG;YAAE,OAAO,IAAI,CAAC,WAAW,CAAC,MAAM,CAAC,WAAW,CAAC,CAAC;QAEzE,OAAO,IAAI,CAAC,cAAc,EAAE,CAAC;IACjC,CAAC;IAQD,KAAK,CAAC,IAAI,CAAC,MAAW,EAAE,aAAsB,KAAK;QAC/C,IAAI,CAAC,MAAM,GAAG,MAAM,CAAC;QACrB,IAAI,CAAC,KAAK,GAAG,MAAM,IAAI,CAAC,QAAQ,EAAE,CAAC;QAGnC,MAAM,GAAG,GAAG,iBAAiB,IAAI,CAAC,KAAK,EAAE,CAAC;QAC1C,MAAM,IAAI,GAAG,IAAI,IAAI,EAAE,CAAC;QAExB,IAAI,CAAC;YACD,MAAM,QAAQ,GAAG,MAAM,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;
|
|
1
|
+
{"version":3,"file":"process.report.data.js","sourceRoot":"","sources":["../../../src/access/libraries/process.report.data.ts"],"names":[],"mappings":"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"}
|
|
@@ -3,7 +3,7 @@ import { McpRequestHandler } from './mcp.request.handler';
|
|
|
3
3
|
export declare class AdminMcpController {
|
|
4
4
|
private readonly handler;
|
|
5
5
|
constructor(handler: McpRequestHandler);
|
|
6
|
-
post(req: Request, res: Response): Promise<void>;
|
|
7
|
-
get(req: Request, res: Response): Promise<void>;
|
|
6
|
+
post(req: Request, res: Response): void | Promise<void>;
|
|
7
|
+
get(req: Request, res: Response): void | Promise<void>;
|
|
8
8
|
private dispatch;
|
|
9
9
|
}
|
|
@@ -17,6 +17,7 @@ const common_1 = require("@nestjs/common");
|
|
|
17
17
|
const development_key_auth_1 = require("../client/development.key.auth");
|
|
18
18
|
const admin_tool_registry_1 = require("../admin/tools/admin.tool.registry");
|
|
19
19
|
const mcp_request_handler_1 = require("./mcp.request.handler");
|
|
20
|
+
const unauthorized_mcp_response_1 = require("./unauthorized.mcp.response");
|
|
20
21
|
let AdminMcpController = class AdminMcpController {
|
|
21
22
|
constructor(handler) {
|
|
22
23
|
this.handler = handler;
|
|
@@ -28,7 +29,11 @@ let AdminMcpController = class AdminMcpController {
|
|
|
28
29
|
return this.dispatch(req, res);
|
|
29
30
|
}
|
|
30
31
|
dispatch(req, res) {
|
|
31
|
-
const
|
|
32
|
+
const key = String(req.headers['x-development-key'] ?? '');
|
|
33
|
+
if (!key) {
|
|
34
|
+
return (0, unauthorized_mcp_response_1.unauthorizedMcpResponse)(res, 'Missing x-development-key header.');
|
|
35
|
+
}
|
|
36
|
+
const auth = new development_key_auth_1.DevelopmentKeyAuth(key);
|
|
32
37
|
return this.handler.handle(req, res, {
|
|
33
38
|
name: 'slabs-access-manager-admin',
|
|
34
39
|
auth,
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"admin.mcp.controller.js","sourceRoot":"","sources":["../../../src/mcp/http/admin.mcp.controller.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;AAAA,2CAAiE;AAEjE,yEAAoE;AAEpE,4EAAuE;AACvE,+DAA0D;
|
|
1
|
+
{"version":3,"file":"admin.mcp.controller.js","sourceRoot":"","sources":["../../../src/mcp/http/admin.mcp.controller.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;AAAA,2CAAiE;AAEjE,yEAAoE;AAEpE,4EAAuE;AACvE,+DAA0D;AAC1D,2EAAsE;AAQ/D,IAAM,kBAAkB,GAAxB,MAAM,kBAAkB;IAC3B,YAA6B,OAA0B;QAA1B,YAAO,GAAP,OAAO,CAAmB;IAAG,CAAC;IAG3D,IAAI,CAAQ,GAAY,EAAS,GAAa;QAC1C,OAAO,IAAI,CAAC,QAAQ,CAAC,GAAG,EAAE,GAAG,CAAC,CAAC;IACnC,CAAC;IAGD,GAAG,CAAQ,GAAY,EAAS,GAAa;QACzC,OAAO,IAAI,CAAC,QAAQ,CAAC,GAAG,EAAE,GAAG,CAAC,CAAC;IACnC,CAAC;IAEO,QAAQ,CAAC,GAAY,EAAE,GAAa;QACxC,MAAM,GAAG,GAAG,MAAM,CAAC,GAAG,CAAC,OAAO,CAAC,mBAAmB,CAAC,IAAI,EAAE,CAAC,CAAC;QAE3D,IAAI,CAAC,GAAG,EAAE,CAAC;YACP,OAAO,IAAA,mDAAuB,EAAC,GAAG,EAAE,mCAAmC,CAAC,CAAC;QAC7E,CAAC;QAED,MAAM,IAAI,GAAG,IAAI,yCAAkB,CAAC,GAAG,CAAC,CAAC;QAEzC,OAAO,IAAI,CAAC,OAAO,CAAC,MAAM,CAAC,GAAG,EAAE,GAAG,EAAE;YACjC,IAAI,EAAE,4BAA4B;YAClC,IAAI;YACJ,KAAK,EAAE,CAAC,MAAsB,EAAE,EAAE,CAAC,IAAI,uCAAiB,CAAC,MAAM,CAAC,CAAC,KAAK,EAAE;SAC3E,CAAC,CAAC;IACP,CAAC;CACJ,CAAA;AA5BY,gDAAkB;AAI3B;IADC,IAAA,aAAI,GAAE;IACD,WAAA,IAAA,YAAG,GAAE,CAAA;IAAgB,WAAA,IAAA,YAAG,GAAE,CAAA;;;;8CAE/B;AAGD;IADC,IAAA,YAAG,GAAE;IACD,WAAA,IAAA,YAAG,GAAE,CAAA;IAAgB,WAAA,IAAA,YAAG,GAAE,CAAA;;;;6CAE9B;6BAXQ,kBAAkB;IAD9B,IAAA,mBAAU,EAAC,WAAW,CAAC;qCAEkB,uCAAiB;GAD9C,kBAAkB,CA4B9B"}
|
|
@@ -3,7 +3,7 @@ import { McpRequestHandler } from './mcp.request.handler';
|
|
|
3
3
|
export declare class BusinessMcpController {
|
|
4
4
|
private readonly handler;
|
|
5
5
|
constructor(handler: McpRequestHandler);
|
|
6
|
-
post(req: Request, res: Response): Promise<void>;
|
|
7
|
-
get(req: Request, res: Response): Promise<void>;
|
|
6
|
+
post(req: Request, res: Response): void | Promise<void>;
|
|
7
|
+
get(req: Request, res: Response): void | Promise<void>;
|
|
8
8
|
private dispatch;
|
|
9
9
|
}
|
|
@@ -17,6 +17,7 @@ const common_1 = require("@nestjs/common");
|
|
|
17
17
|
const client_credential_auth_1 = require("../client/client.credential.auth");
|
|
18
18
|
const tool_registry_1 = require("../tools/tool.registry");
|
|
19
19
|
const mcp_request_handler_1 = require("./mcp.request.handler");
|
|
20
|
+
const unauthorized_mcp_response_1 = require("./unauthorized.mcp.response");
|
|
20
21
|
let BusinessMcpController = class BusinessMcpController {
|
|
21
22
|
constructor(handler) {
|
|
22
23
|
this.handler = handler;
|
|
@@ -28,7 +29,12 @@ let BusinessMcpController = class BusinessMcpController {
|
|
|
28
29
|
return this.dispatch(req, res);
|
|
29
30
|
}
|
|
30
31
|
dispatch(req, res) {
|
|
31
|
-
const
|
|
32
|
+
const clientId = String(req.headers['x-client-id'] ?? '');
|
|
33
|
+
const clientSecret = String(req.headers['x-client-secret'] ?? '');
|
|
34
|
+
if (!clientId || !clientSecret) {
|
|
35
|
+
return (0, unauthorized_mcp_response_1.unauthorizedMcpResponse)(res, 'Missing x-client-id / x-client-secret headers.');
|
|
36
|
+
}
|
|
37
|
+
const auth = new client_credential_auth_1.ClientCredentialAuth(clientId, clientSecret);
|
|
32
38
|
return this.handler.handle(req, res, {
|
|
33
39
|
name: 'slabs-access-manager',
|
|
34
40
|
auth,
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"business.mcp.controller.js","sourceRoot":"","sources":["../../../src/mcp/http/business.mcp.controller.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;AAAA,2CAAiE;AAEjE,6EAAwE;AAExE,0DAAsD;AACtD,+DAA0D;
|
|
1
|
+
{"version":3,"file":"business.mcp.controller.js","sourceRoot":"","sources":["../../../src/mcp/http/business.mcp.controller.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;AAAA,2CAAiE;AAEjE,6EAAwE;AAExE,0DAAsD;AACtD,+DAA0D;AAC1D,2EAAsE;AAQ/D,IAAM,qBAAqB,GAA3B,MAAM,qBAAqB;IAC9B,YAA6B,OAA0B;QAA1B,YAAO,GAAP,OAAO,CAAmB;IAAG,CAAC;IAG3D,IAAI,CAAQ,GAAY,EAAS,GAAa;QAC1C,OAAO,IAAI,CAAC,QAAQ,CAAC,GAAG,EAAE,GAAG,CAAC,CAAC;IACnC,CAAC;IAGD,GAAG,CAAQ,GAAY,EAAS,GAAa;QACzC,OAAO,IAAI,CAAC,QAAQ,CAAC,GAAG,EAAE,GAAG,CAAC,CAAC;IACnC,CAAC;IAEO,QAAQ,CAAC,GAAY,EAAE,GAAa;QACxC,MAAM,QAAQ,GAAG,MAAM,CAAC,GAAG,CAAC,OAAO,CAAC,aAAa,CAAC,IAAI,EAAE,CAAC,CAAC;QAC1D,MAAM,YAAY,GAAG,MAAM,CAAC,GAAG,CAAC,OAAO,CAAC,iBAAiB,CAAC,IAAI,EAAE,CAAC,CAAC;QAElE,IAAI,CAAC,QAAQ,IAAI,CAAC,YAAY,EAAE,CAAC;YAC7B,OAAO,IAAA,mDAAuB,EAAC,GAAG,EAAE,gDAAgD,CAAC,CAAC;QAC1F,CAAC;QAED,MAAM,IAAI,GAAG,IAAI,6CAAoB,CAAC,QAAQ,EAAE,YAAY,CAAC,CAAC;QAE9D,OAAO,IAAI,CAAC,OAAO,CAAC,MAAM,CAAC,GAAG,EAAE,GAAG,EAAE;YACjC,IAAI,EAAE,sBAAsB;YAC5B,IAAI;YACJ,KAAK,EAAE,CAAC,MAAsB,EAAE,EAAE,CAAC,IAAI,4BAAY,CAAC,MAAM,CAAC,CAAC,KAAK,EAAE;SACtE,CAAC,CAAC;IACP,CAAC;CACJ,CAAA;AA7BY,sDAAqB;AAI9B;IADC,IAAA,aAAI,GAAE;IACD,WAAA,IAAA,YAAG,GAAE,CAAA;IAAgB,WAAA,IAAA,YAAG,GAAE,CAAA;;;;iDAE/B;AAGD;IADC,IAAA,YAAG,GAAE;IACD,WAAA,IAAA,YAAG,GAAE,CAAA;IAAgB,WAAA,IAAA,YAAG,GAAE,CAAA;;;;gDAE9B;gCAXQ,qBAAqB;IADjC,IAAA,mBAAU,EAAC,KAAK,CAAC;qCAEwB,uCAAiB;GAD9C,qBAAqB,CA6BjC"}
|
package/dist/mcp/http/index.d.ts
CHANGED
package/dist/mcp/http/index.js
CHANGED
|
@@ -18,4 +18,5 @@ __exportStar(require("./admin.mcp.controller"), exports);
|
|
|
18
18
|
__exportStar(require("./business.mcp.controller"), exports);
|
|
19
19
|
__exportStar(require("./mcp.http.module"), exports);
|
|
20
20
|
__exportStar(require("./mcp.request.handler"), exports);
|
|
21
|
+
__exportStar(require("./unauthorized.mcp.response"), exports);
|
|
21
22
|
//# sourceMappingURL=index.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/mcp/http/index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;AAAA,yDAAuC;AAAA,4DAA0C;AAAA,oDAAkC;AAAA,
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/mcp/http/index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;AAAA,yDAAuC;AAAA,4DAA0C;AAAA,oDAAkC;AAAA,wDAAsC;AAAA,8DAA2C"}
|
|
@@ -7,7 +7,9 @@ interface McpHandleOptions {
|
|
|
7
7
|
tools: (client: SlabsApiClient) => McpToolInterface[];
|
|
8
8
|
}
|
|
9
9
|
export declare class McpRequestHandler {
|
|
10
|
+
private readonly logger;
|
|
10
11
|
handle(req: any, res: any, options: McpHandleOptions): Promise<void>;
|
|
12
|
+
private safeClose;
|
|
11
13
|
private loopbackBaseUrl;
|
|
12
14
|
}
|
|
13
15
|
export {};
|
|
@@ -5,30 +5,49 @@ var __decorate = (this && this.__decorate) || function (decorators, target, key,
|
|
|
5
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
6
|
return c > 3 && r && Object.defineProperty(target, key, r), r;
|
|
7
7
|
};
|
|
8
|
+
var McpRequestHandler_1;
|
|
8
9
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
9
10
|
exports.McpRequestHandler = void 0;
|
|
10
11
|
const common_1 = require("@nestjs/common");
|
|
11
12
|
const streamableHttp_js_1 = require("@modelcontextprotocol/sdk/server/streamableHttp.js");
|
|
12
13
|
const slabs_api_client_1 = require("../client/slabs.api.client");
|
|
13
14
|
const slabs_mcp_server_1 = require("../slabs.mcp.server");
|
|
14
|
-
|
|
15
|
+
const unauthorized_mcp_response_1 = require("./unauthorized.mcp.response");
|
|
16
|
+
let McpRequestHandler = McpRequestHandler_1 = class McpRequestHandler {
|
|
17
|
+
constructor() {
|
|
18
|
+
this.logger = new common_1.Logger(McpRequestHandler_1.name);
|
|
19
|
+
}
|
|
15
20
|
async handle(req, res, options) {
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
21
|
+
try {
|
|
22
|
+
const client = new slabs_api_client_1.SlabsApiClient(this.loopbackBaseUrl(), options.auth);
|
|
23
|
+
const server = new slabs_mcp_server_1.SlabsMcpServer(options.name, options.tools(client)).instance();
|
|
24
|
+
const transport = new streamableHttp_js_1.StreamableHTTPServerTransport({ sessionIdGenerator: undefined, enableJsonResponse: true });
|
|
25
|
+
res.on('close', () => {
|
|
26
|
+
this.safeClose(() => transport.close());
|
|
27
|
+
this.safeClose(() => server.close());
|
|
28
|
+
});
|
|
29
|
+
await server.connect(transport);
|
|
30
|
+
await transport.handleRequest(req, res, req.body);
|
|
31
|
+
}
|
|
32
|
+
catch (error) {
|
|
33
|
+
this.logger.error(`MCP request failed: ${error?.message ?? error}`, error?.stack);
|
|
34
|
+
(0, unauthorized_mcp_response_1.internalMcpErrorResponse)(res, 'MCP request handling failed.');
|
|
35
|
+
}
|
|
36
|
+
}
|
|
37
|
+
safeClose(fn) {
|
|
38
|
+
try {
|
|
39
|
+
fn();
|
|
40
|
+
}
|
|
41
|
+
catch (error) {
|
|
42
|
+
this.logger.warn(`MCP cleanup failed: ${error?.message ?? error}`);
|
|
43
|
+
}
|
|
25
44
|
}
|
|
26
45
|
loopbackBaseUrl() {
|
|
27
46
|
return `http://127.0.0.1:${process.env.SERVER_PORT || 4000}`;
|
|
28
47
|
}
|
|
29
48
|
};
|
|
30
49
|
exports.McpRequestHandler = McpRequestHandler;
|
|
31
|
-
exports.McpRequestHandler = McpRequestHandler = __decorate([
|
|
50
|
+
exports.McpRequestHandler = McpRequestHandler = McpRequestHandler_1 = __decorate([
|
|
32
51
|
(0, common_1.Injectable)()
|
|
33
52
|
], McpRequestHandler);
|
|
34
53
|
//# sourceMappingURL=mcp.request.handler.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"mcp.request.handler.js","sourceRoot":"","sources":["../../../src/mcp/http/mcp.request.handler.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"mcp.request.handler.js","sourceRoot":"","sources":["../../../src/mcp/http/mcp.request.handler.ts"],"names":[],"mappings":";;;;;;;;;;AAAA,2CAAoD;AACpD,0FAAmG;AACnG,iEAA4D;AAG5D,0DAAqD;AACrD,2EAAuE;AAgBhE,IAAM,iBAAiB,yBAAvB,MAAM,iBAAiB;IAAvB;QACc,WAAM,GAAG,IAAI,eAAM,CAAC,mBAAiB,CAAC,IAAI,CAAC,CAAC;IAqCjE,CAAC;IA9BG,KAAK,CAAC,MAAM,CAAC,GAAQ,EAAE,GAAQ,EAAE,OAAyB;QACtD,IAAI,CAAC;YACD,MAAM,MAAM,GAAG,IAAI,iCAAc,CAAC,IAAI,CAAC,eAAe,EAAE,EAAE,OAAO,CAAC,IAAI,CAAC,CAAC;YACxE,MAAM,MAAM,GAAG,IAAI,iCAAc,CAAC,OAAO,CAAC,IAAI,EAAE,OAAO,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC,CAAC,QAAQ,EAAE,CAAC;YAClF,MAAM,SAAS,GAAG,IAAI,iDAA6B,CAAC,EAAE,kBAAkB,EAAE,SAAS,EAAE,kBAAkB,EAAE,IAAI,EAAE,CAAC,CAAC;YAEjH,GAAG,CAAC,EAAE,CAAC,OAAO,EAAE,GAAG,EAAE;gBACjB,IAAI,CAAC,SAAS,CAAC,GAAG,EAAE,CAAC,SAAS,CAAC,KAAK,EAAE,CAAC,CAAC;gBACxC,IAAI,CAAC,SAAS,CAAC,GAAG,EAAE,CAAC,MAAM,CAAC,KAAK,EAAE,CAAC,CAAC;YACzC,CAAC,CAAC,CAAC;YAEH,MAAM,MAAM,CAAC,OAAO,CAAC,SAAS,CAAC,CAAC;YAChC,MAAM,SAAS,CAAC,aAAa,CAAC,GAAG,EAAE,GAAG,EAAE,GAAG,CAAC,IAAI,CAAC,CAAC;QACtD,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACb,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,uBAAuB,KAAK,EAAE,OAAO,IAAI,KAAK,EAAE,EAAE,KAAK,EAAE,KAAK,CAAC,CAAC;YAClF,IAAA,oDAAwB,EAAC,GAAG,EAAE,8BAA8B,CAAC,CAAC;QAClE,CAAC;IACL,CAAC;IAEO,SAAS,CAAC,EAAc;QAC5B,IAAI,CAAC;YACD,EAAE,EAAE,CAAC;QACT,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACb,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,uBAAuB,KAAK,EAAE,OAAO,IAAI,KAAK,EAAE,CAAC,CAAC;QACvE,CAAC;IACL,CAAC;IAEO,eAAe;QACnB,OAAO,oBAAoB,OAAO,CAAC,GAAG,CAAC,WAAW,IAAI,IAAI,EAAE,CAAC;IACjE,CAAC;CACJ,CAAA;AAtCY,8CAAiB;4BAAjB,iBAAiB;IAD7B,IAAA,mBAAU,GAAE;GACA,iBAAiB,CAsC7B"}
|
|
@@ -0,0 +1,4 @@
|
|
|
1
|
+
import { Response } from 'express';
|
|
2
|
+
export declare function mcpErrorResponse(res: Response, status: number, code: number, message: string): void;
|
|
3
|
+
export declare function unauthorizedMcpResponse(res: Response, message: string): void;
|
|
4
|
+
export declare function internalMcpErrorResponse(res: Response, message: string): void;
|
|
@@ -0,0 +1,23 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.mcpErrorResponse = mcpErrorResponse;
|
|
4
|
+
exports.unauthorizedMcpResponse = unauthorizedMcpResponse;
|
|
5
|
+
exports.internalMcpErrorResponse = internalMcpErrorResponse;
|
|
6
|
+
const JSONRPC_UNAUTHORIZED = -32001;
|
|
7
|
+
const JSONRPC_INTERNAL_ERROR = -32603;
|
|
8
|
+
function mcpErrorResponse(res, status, code, message) {
|
|
9
|
+
if (res.headersSent)
|
|
10
|
+
return;
|
|
11
|
+
res.status(status).json({
|
|
12
|
+
jsonrpc: '2.0',
|
|
13
|
+
error: { code, message },
|
|
14
|
+
id: null,
|
|
15
|
+
});
|
|
16
|
+
}
|
|
17
|
+
function unauthorizedMcpResponse(res, message) {
|
|
18
|
+
mcpErrorResponse(res, 401, JSONRPC_UNAUTHORIZED, message);
|
|
19
|
+
}
|
|
20
|
+
function internalMcpErrorResponse(res, message) {
|
|
21
|
+
mcpErrorResponse(res, 500, JSONRPC_INTERNAL_ERROR, message);
|
|
22
|
+
}
|
|
23
|
+
//# sourceMappingURL=unauthorized.mcp.response.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"unauthorized.mcp.response.js","sourceRoot":"","sources":["../../../src/mcp/http/unauthorized.mcp.response.ts"],"names":[],"mappings":";;AAaA,4CAQC;AASD,0DAEC;AAOD,4DAEC;AAtCD,MAAM,oBAAoB,GAAG,CAAC,KAAK,CAAC;AAGpC,MAAM,sBAAsB,GAAG,CAAC,KAAK,CAAC;AAOtC,SAAgB,gBAAgB,CAAC,GAAa,EAAE,MAAc,EAAE,IAAY,EAAE,OAAe;IACzF,IAAI,GAAG,CAAC,WAAW;QAAE,OAAO;IAE5B,GAAG,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC,IAAI,CAAC;QACpB,OAAO,EAAE,KAAK;QACd,KAAK,EAAE,EAAE,IAAI,EAAE,OAAO,EAAE;QACxB,EAAE,EAAE,IAAI;KACX,CAAC,CAAC;AACP,CAAC;AASD,SAAgB,uBAAuB,CAAC,GAAa,EAAE,OAAe;IAClE,gBAAgB,CAAC,GAAG,EAAE,GAAG,EAAE,oBAAoB,EAAE,OAAO,CAAC,CAAC;AAC9D,CAAC;AAOD,SAAgB,wBAAwB,CAAC,GAAa,EAAE,OAAe;IACnE,gBAAgB,CAAC,GAAG,EAAE,GAAG,EAAE,sBAAsB,EAAE,OAAO,CAAC,CAAC;AAChE,CAAC"}
|
package/package.json
CHANGED