aws-lambda-mcp-server 0.0.2 → 0.0.3
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/README.md +26 -20
- package/dist/index.d.ts +27 -1
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +88 -7
- package/package.json +8 -8
package/README.md
CHANGED
|
@@ -1,5 +1,7 @@
|
|
|
1
1
|
# aws-lambda-mcp-server
|
|
2
2
|
|
|
3
|
+
[](https://badge.fury.io/js/aws-lambda-mcp-server)
|
|
4
|
+
|
|
3
5
|
AWS Lambda上でMCP(Model Context Protocol)サーバー機能を提供するためのライブラリです。
|
|
4
6
|
APIエンドポイントの実装や、各種AWSサービスとの連携を簡易化することを目的としています。
|
|
5
7
|
|
|
@@ -19,29 +21,33 @@ TypeScriptでの利用例です。
|
|
|
19
21
|
|
|
20
22
|
```typescript
|
|
21
23
|
import { McpServer } from '@modelcontextprotocol/sdk/server/mcp.js';
|
|
22
|
-
import {
|
|
24
|
+
import { createHonoApp } from 'aws-lambda-mcp-server';
|
|
23
25
|
import { handle } from 'hono/aws-lambda';
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
|
|
26
|
+
import { z } from 'zod';
|
|
27
|
+
|
|
28
|
+
// MCPサーバーのファクトリ関数を用意
|
|
29
|
+
const createMcpServer = () => {
|
|
30
|
+
const server = new McpServer({
|
|
31
|
+
name: 'my-mcp-server',
|
|
32
|
+
version: '1.0.0',
|
|
33
|
+
});
|
|
34
|
+
|
|
35
|
+
// MCPサーバーのインスタンスにToolsやResourcesなどを設定する
|
|
36
|
+
server.tool(
|
|
37
|
+
'say_hello',
|
|
38
|
+
{ who: z.string() },
|
|
39
|
+
async ({ who }) => ({
|
|
40
|
+
content: [{
|
|
41
|
+
type: 'text',
|
|
42
|
+
text: `${who} さん、こんにちは!`
|
|
43
|
+
}]
|
|
44
|
+
})
|
|
45
|
+
);
|
|
46
|
+
return server;
|
|
47
|
+
};
|
|
42
48
|
|
|
43
49
|
// Hono アプリケーションを作成
|
|
44
|
-
const app = createHonoApp(
|
|
50
|
+
const app = createHonoApp(createMcpServer);
|
|
45
51
|
|
|
46
52
|
// AWS Lambdaのエントリポイントとして利用
|
|
47
53
|
export const handler = handle(app);
|
package/dist/index.d.ts
CHANGED
|
@@ -1,5 +1,31 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Model Context Protocol (MCP) サーバーを Hono フレームワーク上で動作させるエントリーポイント。
|
|
3
|
+
*
|
|
4
|
+
* @remarks
|
|
5
|
+
* `createHonoApp` 関数を通じて、/mcp エンドポイントでMCPサーバーを提供します。
|
|
6
|
+
* - POST/GET /mcp: MCPリクエストの受信・処理
|
|
7
|
+
* - その他のHTTPメソッド: 405 Method Not Allowed
|
|
8
|
+
*
|
|
9
|
+
* 内部的にエラーハンドリングやリソースクローズ処理も行います。
|
|
10
|
+
*/
|
|
1
11
|
import { McpServer } from '@modelcontextprotocol/sdk/server/mcp.js';
|
|
2
12
|
import { Hono } from 'hono';
|
|
3
13
|
import { BlankEnv } from 'hono/types';
|
|
4
|
-
|
|
14
|
+
/**
|
|
15
|
+
* Honoアプリケーションを生成し、/mcpエンドポイントでMCPサーバーを提供します。
|
|
16
|
+
*
|
|
17
|
+
* @remarks
|
|
18
|
+
* POST/GET /mcp でMCPリクエストを受け付け、他のHTTPメソッドは405を返します。
|
|
19
|
+
*
|
|
20
|
+
* @param createMcpServer MCPサーバーインスタンスを生成するファクトリ関数
|
|
21
|
+
* @returns Honoアプリケーションインスタンス
|
|
22
|
+
*
|
|
23
|
+
* @example
|
|
24
|
+
* ```ts
|
|
25
|
+
* import { createHonoApp } from '...';
|
|
26
|
+
* import { createMcpServer } from './your-mcp-server';
|
|
27
|
+
* const app = createHonoApp(createMcpServer);
|
|
28
|
+
* ```
|
|
29
|
+
*/
|
|
30
|
+
export declare const createHonoApp: (createMcpServer: () => McpServer) => Hono<BlankEnv, import("hono/types").BlankSchema, "/">;
|
|
5
31
|
//# sourceMappingURL=index.d.ts.map
|
package/dist/index.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA;;;;;;;;;GASG;AAIH,OAAO,EAAE,SAAS,EAAE,MAAM,yCAAyC,CAAC;AACpE,OAAO,EAAW,IAAI,EAAE,MAAM,MAAM,CAAC;AACrC,OAAO,EAAE,QAAQ,EAAc,MAAM,YAAY,CAAC;AA0IlD;;;;;;;;;;;;;;;GAeG;AACH,eAAO,MAAM,aAAa,GAAI,iBAAiB,MAAM,SAAS,0DAiB7D,CAAC"}
|
package/dist/index.js
CHANGED
|
@@ -1,7 +1,32 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Model Context Protocol (MCP) サーバーを Hono フレームワーク上で動作させるエントリーポイント。
|
|
3
|
+
*
|
|
4
|
+
* @remarks
|
|
5
|
+
* `createHonoApp` 関数を通じて、/mcp エンドポイントでMCPサーバーを提供します。
|
|
6
|
+
* - POST/GET /mcp: MCPリクエストの受信・処理
|
|
7
|
+
* - その他のHTTPメソッド: 405 Method Not Allowed
|
|
8
|
+
*
|
|
9
|
+
* 内部的にエラーハンドリングやリソースクローズ処理も行います。
|
|
10
|
+
*/
|
|
1
11
|
import { Logger } from '@aws-lambda-powertools/logger';
|
|
2
12
|
import { StreamableHTTPTransport } from '@hono/mcp';
|
|
3
13
|
import { Hono } from 'hono';
|
|
14
|
+
/**
|
|
15
|
+
* ロガーインスタンス(AWS Lambda Powertools)。
|
|
16
|
+
*
|
|
17
|
+
* @private
|
|
18
|
+
*/
|
|
4
19
|
const logger = new Logger();
|
|
20
|
+
/**
|
|
21
|
+
* 許可されていないHTTPメソッドに対するハンドラーです。
|
|
22
|
+
*
|
|
23
|
+
* @remarks
|
|
24
|
+
* 405エラーのJSONレスポンスを返します。
|
|
25
|
+
*
|
|
26
|
+
* @param c Honoのコンテキスト
|
|
27
|
+
* @returns 405エラーのJSONレスポンス
|
|
28
|
+
* @private
|
|
29
|
+
*/
|
|
5
30
|
const methodNotAllowedHandler = async (c) => {
|
|
6
31
|
return c.json({
|
|
7
32
|
jsonrpc: '2.0',
|
|
@@ -12,6 +37,18 @@ const methodNotAllowedHandler = async (c) => {
|
|
|
12
37
|
id: null,
|
|
13
38
|
}, { status: 405 });
|
|
14
39
|
};
|
|
40
|
+
/**
|
|
41
|
+
* サーバーエラー発生時の共通エラーハンドラーです。
|
|
42
|
+
*
|
|
43
|
+
* @remarks
|
|
44
|
+
* エラー内容をロギングし、500エラーのJSONレスポンスを返します。
|
|
45
|
+
*
|
|
46
|
+
* @param c Honoのコンテキスト
|
|
47
|
+
* @param reason エラー理由
|
|
48
|
+
* @param logMessage ログ出力用メッセージ
|
|
49
|
+
* @returns 500エラーのJSONレスポンス
|
|
50
|
+
* @private
|
|
51
|
+
*/
|
|
15
52
|
const handleError = (c, reason, logMessage) => {
|
|
16
53
|
const errorDetails = reason instanceof Error
|
|
17
54
|
? { message: reason.message, stack: reason.stack, name: reason.name }
|
|
@@ -26,6 +63,17 @@ const handleError = (c, reason, logMessage) => {
|
|
|
26
63
|
id: null,
|
|
27
64
|
}, { status: 500 });
|
|
28
65
|
};
|
|
66
|
+
/**
|
|
67
|
+
* MCPサーバーおよびトランスポートのリソースをクローズします。
|
|
68
|
+
*
|
|
69
|
+
* @remarks
|
|
70
|
+
* どちらか一方のクローズに失敗しても、もう一方は必ず実行されます。
|
|
71
|
+
*
|
|
72
|
+
* @param server MCPサーバーインスタンス
|
|
73
|
+
* @param transport トランスポートインスタンス
|
|
74
|
+
* @returns void
|
|
75
|
+
* @private
|
|
76
|
+
*/
|
|
29
77
|
const closeResources = async (server, transport) => {
|
|
30
78
|
// 両方のクローズを確実に実行(片方が失敗してももう片方を実行)
|
|
31
79
|
const closeResults = await Promise.allSettled([
|
|
@@ -44,36 +92,69 @@ const closeResources = async (server, transport) => {
|
|
|
44
92
|
}
|
|
45
93
|
});
|
|
46
94
|
};
|
|
47
|
-
|
|
95
|
+
/**
|
|
96
|
+
* MCPリクエストを処理します。
|
|
97
|
+
*
|
|
98
|
+
* @remarks
|
|
99
|
+
* サーバーとトランスポートの接続・リクエスト処理・エラーハンドリングを行います。
|
|
100
|
+
*
|
|
101
|
+
* @param createMcpServer MCPサーバーインスタンスを生成するファクトリ関数
|
|
102
|
+
* @param c Honoのコンテキスト
|
|
103
|
+
* @returns MCPレスポンス
|
|
104
|
+
* @private
|
|
105
|
+
*/
|
|
106
|
+
const handleRequest = async (createMcpServer, c) => {
|
|
48
107
|
const transport = new StreamableHTTPTransport({
|
|
49
108
|
sessionIdGenerator: undefined, // セッションIDを生成しない(ステートレスモード)
|
|
50
109
|
enableJsonResponse: true,
|
|
51
110
|
});
|
|
111
|
+
const server = createMcpServer();
|
|
52
112
|
try {
|
|
53
113
|
await server.connect(transport);
|
|
54
114
|
logger.trace('MCP リクエストを受信');
|
|
55
115
|
return await transport.handleRequest(c);
|
|
56
116
|
}
|
|
57
117
|
catch (error) {
|
|
118
|
+
return handleError(c, error, 'MCP 接続中のエラー:');
|
|
119
|
+
}
|
|
120
|
+
finally {
|
|
121
|
+
// エラーの有無に関わらず必ずリソースをクローズ
|
|
58
122
|
try {
|
|
59
123
|
await closeResources(server, transport);
|
|
60
124
|
}
|
|
61
125
|
catch (closeError) {
|
|
126
|
+
// クローズエラーは既にcloseResources内でログ出力されているため、
|
|
127
|
+
// ここでは追加のエラーハンドリングは不要だが、エラーの詳細を記録
|
|
62
128
|
const errorDetails = closeError instanceof Error
|
|
63
129
|
? { message: closeError.message, stack: closeError.stack }
|
|
64
130
|
: closeError;
|
|
65
|
-
logger.error('
|
|
131
|
+
logger.error('リソースクローズ中に追加エラーが発生しましたが、処理を継続します', { closeError: errorDetails });
|
|
66
132
|
}
|
|
67
|
-
return handleError(c, error, 'MCP 接続中のエラー:');
|
|
68
133
|
}
|
|
69
134
|
};
|
|
70
|
-
|
|
135
|
+
/**
|
|
136
|
+
* Honoアプリケーションを生成し、/mcpエンドポイントでMCPサーバーを提供します。
|
|
137
|
+
*
|
|
138
|
+
* @remarks
|
|
139
|
+
* POST/GET /mcp でMCPリクエストを受け付け、他のHTTPメソッドは405を返します。
|
|
140
|
+
*
|
|
141
|
+
* @param createMcpServer MCPサーバーインスタンスを生成するファクトリ関数
|
|
142
|
+
* @returns Honoアプリケーションインスタンス
|
|
143
|
+
*
|
|
144
|
+
* @example
|
|
145
|
+
* ```ts
|
|
146
|
+
* import { createHonoApp } from '...';
|
|
147
|
+
* import { createMcpServer } from './your-mcp-server';
|
|
148
|
+
* const app = createHonoApp(createMcpServer);
|
|
149
|
+
* ```
|
|
150
|
+
*/
|
|
151
|
+
export const createHonoApp = (createMcpServer) => {
|
|
71
152
|
const app = new Hono();
|
|
72
153
|
app.post('/mcp', async (c) => {
|
|
73
|
-
return await handleRequest(
|
|
154
|
+
return await handleRequest(createMcpServer, c);
|
|
74
155
|
});
|
|
75
156
|
app.get('/mcp', async (c) => {
|
|
76
|
-
return await handleRequest(
|
|
157
|
+
return await handleRequest(createMcpServer, c);
|
|
77
158
|
});
|
|
78
159
|
app.put('/mcp', methodNotAllowedHandler);
|
|
79
160
|
app.delete('/mcp', methodNotAllowedHandler);
|
|
@@ -81,4 +162,4 @@ export const createHonoApp = (server) => {
|
|
|
81
162
|
app.options('/mcp', methodNotAllowedHandler);
|
|
82
163
|
return app;
|
|
83
164
|
};
|
|
84
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi9zcmMvaW5kZXgudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLE1BQU0sRUFBRSxNQUFNLCtCQUErQixDQUFDO0FBQ3ZELE9BQU8sRUFBRSx1QkFBdUIsRUFBRSxNQUFNLFdBQVcsQ0FBQztBQUVwRCxPQUFPLEVBQVcsSUFBSSxFQUFFLE1BQU0sTUFBTSxDQUFDO0FBR3JDLE1BQU0sTUFBTSxHQUFHLElBQUksTUFBTSxFQUFFLENBQUM7QUFFNUIsTUFBTSx1QkFBdUIsR0FBRyxLQUFLLEVBQ25DLENBQXdDLEVBQ3hDLEVBQUU7SUFDRixPQUFPLENBQUMsQ0FBQyxJQUFJLENBQ1g7UUFDRSxPQUFPLEVBQUUsS0FBSztRQUNkLEtBQUssRUFBRTtZQUNMLElBQUksRUFBRSxDQUFDLEtBQUs7WUFDWixPQUFPLEVBQUUsaUJBQWlCO1NBQzNCO1FBQ0QsRUFBRSxFQUFFLElBQUk7S0FDVCxFQUNELEVBQUUsTUFBTSxFQUFFLEdBQUcsRUFBRSxDQUNoQixDQUFDO0FBQ0osQ0FBQyxDQUFDO0FBRUYsTUFBTSxXQUFXLEdBQUcsQ0FDbEIsQ0FBd0MsRUFDeEMsTUFBZSxFQUNmLFVBQWtCLEVBQ2xCLEVBQUU7SUFDRixNQUFNLFlBQVksR0FBRyxNQUFNLFlBQVksS0FBSztRQUMxQyxDQUFDLENBQUMsRUFBRSxPQUFPLEVBQUUsTUFBTSxDQUFDLE9BQU8sRUFBRSxLQUFLLEVBQUUsTUFBTSxDQUFDLEtBQUssRUFBRSxJQUFJLEVBQUUsTUFBTSxDQUFDLElBQUksRUFBRTtRQUNyRSxDQUFDLENBQUMsRUFBRSxNQUFNLEVBQUUsQ0FBQztJQUNmLE1BQU0sQ0FBQyxLQUFLLENBQUMsVUFBVSxFQUFFLFlBQVksQ0FBQyxDQUFDO0lBQ3ZDLE9BQU8sQ0FBQyxDQUFDLElBQUksQ0FDWDtRQUNFLE9BQU8sRUFBRSxLQUFLO1FBQ2QsS0FBSyxFQUFFO1lBQ0wsSUFBSSxFQUFFLENBQUMs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QUMsR0FBRyxDQUFDLE1BQU0sRUFBRSxLQUFLLEVBQUUsQ0FBQyxFQUFFLEVBQUU7UUFDMUIsT0FBTyxNQUFNLGFBQWEsQ0FBQyxNQUFNLEVBQUUsQ0FBQyxDQUFDLENBQUM7SUFDeEMsQ0FBQyxDQUFDLENBQUM7SUFFSCxHQUFHLENBQUMsR0FBRyxDQUFDLE1BQU0sRUFBRSx1QkFBdUIsQ0FBQyxDQUFDO0lBQ3pDLEdBQUcsQ0FBQyxNQUFNLENBQUMsTUFBTSxFQUFFLHVCQUF1QixDQUFDLENBQUM7SUFDNUMsR0FBRyxDQUFDLEtBQUssQ0FBQyxNQUFNLEVBQUUsdUJBQXVCLENBQUMsQ0FBQztJQUMzQyxHQUFHLENBQUMsT0FBTyxDQUFDLE1BQU0sRUFBRSx1QkFBdUIsQ0FBQyxDQUFDO0lBRTdDLE9BQU8sR0FBRyxDQUFDO0FBQ2IsQ0FBQyxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgTG9nZ2VyIH0gZnJvbSAnQGF3cy1sYW1iZGEtcG93ZXJ0b29scy9sb2dnZXInO1xuaW1wb3J0IHsgU3RyZWFtYWJsZUhUVFBUcmFuc3BvcnQgfSBmcm9tICdAaG9uby9tY3AnO1xuaW1wb3J0IHsgTWNwU2VydmVyIH0gZnJvbSAnQG1vZGVsY29udGV4dHByb3RvY29sL3Nkay9zZXJ2ZXIvbWNwLmpzJztcbmltcG9ydCB7IENvbnRleHQsIEhvbm8gfSBmcm9tICdob25vJztcbmltcG9ydCB7IEJsYW5rRW52LCBCbGFua0lucHV0IH0gZnJvbSAnaG9uby90eXBlcyc7XG5cbmNvbnN0IGxvZ2dlciA9IG5ldyBMb2dnZXIoKTtcblxuY29uc3QgbWV0aG9kTm90QWxsb3dlZEhhbmRsZXIgPSBhc3luYyAoXG4gIGM6IENvbnRleHQ8QmxhbmtFbnYsICcvbWNwJywgQmxhbmtJbnB1dD4sXG4pID0+IHtcbiAgcmV0dXJuIGMuanNvbihcbiAgICB7XG4gICAgICBqc29ucnBjOiAnMi4wJyxcbiAgICAgIGVycm9yOiB7XG4gICAgICAgIGNvZGU6IC0zMjAwMCxcbiAgICAgICAgbWVzc2FnZTogJ+ODoeOCveODg+ODieOBr+ioseWPr+OBleOCjOOBpuOBhOOBvuOBm+OCk+OAgicsXG4gICAgICB9LFxuICAgICAgaWQ6IG51bGwsXG4gICAgfSxcbiAgICB7IHN0YXR1czogNDA1IH0sXG4gICk7XG59O1xuXG5jb25zdCBoYW5kbGVFcnJvciA9IChcbiAgYzogQ29udGV4dDxCbGFua0VudiwgJy9tY3AnLCBCbGFua0lucHV0PixcbiAgcmVhc29uOiB1bmtub3duLFxuICBsb2dNZXNzYWdlOiBzdHJpbmcsXG4pID0+IHtcbiAgY29uc3QgZXJyb3JEZXRhaWxzID0gcmVhc29uIGluc3RhbmNlb2YgRXJyb3JcbiAgICA/IHsgbWVzc2FnZTogcmVhc29uLm1lc3NhZ2UsIHN0YWNrOiByZWFzb24uc3RhY2ssIG5hbWU6IHJlYXNvbi5uYW1lIH1cbiAgICA6IHsgcmVhc29uIH07XG4gIGxvZ2dlci5lcnJvcihsb2dNZXNzYWdlLCBlcnJvckRldGFpbHMpO1xuICByZXR1cm4gYy5qc29uKFxuICAgIHtcbiAgICAgIGpzb25ycGM6ICcyLjAnLFxuICAgICAgZXJyb3I6IHtcbiAgICAgICAgY29kZTogLTMyNjAzLFxuICAgICAgICBtZXNzYWdlOiAn5YaF6YOo44K144O844OQ44O844Ko44Op44O8JyxcbiAgICAgIH0sXG4gICAgICBpZDogbnVsbCxcbiAgICB9LFxuICAgIHsgc3RhdHVzOiA1MDAgfSxcbiAgKTtcbn07XG5cbmNvbnN0IGNsb3NlUmVzb3VyY2VzID0gYXN5bmMgKHNlcnZlcjogTWNwU2VydmVyLCB0cmFuc3BvcnQ6IFN0cmVhbWFibGVIVFRQVHJhbnNwb3J0KSA9PiB7XG4gIC8vIOS4oeaWueOBruOCr+ODreODvOOCuuOCkueiuuWun+OBq+Wun+ihjO+8iOeJh+aWueOBjOWkseaVl+OBl+OBpuOCguOCguOBhueJh+aWueOCkuWun+ihjO+8iVxuICBjb25zdCBjbG9zZVJlc3VsdHMgPSBhd2FpdCBQcm9taXNlLmFsbFNldHRsZWQoW1xuICAgIHRyYW5zcG9ydC5jbG9zZSgpLFxuICAgIHNlcnZlci5jbG9zZSgpLFxuICBdKTtcblxuICAvLyDjgq/jg63jg7zjgrrjgqjjg6njg7zjgpLjg63jgrDlh7rliptcbiAgY2xvc2VSZXN1bHRzLmZvckVhY2goKHJlc3VsdCwgaW5kZXgpID0+IHtcbiAgICBpZiAocmVzdWx0LnN0YXR1cyA9PT0gJ3JlamVjdGVkJykge1xuICAgICAgY29uc3QgcmVzb3VyY2VOYW1lID0gaW5kZXggPT09IDAgPyAndHJhbnNwb3J0JyA6ICdzZXJ2ZXInO1xuICAgICAgY29uc3QgZXJyb3IgPSByZXN1bHQucmVhc29uO1xuICAgICAgY29uc3QgZXJyb3JEZXRhaWxzID0gZXJyb3IgaW5zdGFuY2VvZiBFcnJvclxuICAgICAgICA/IHsgbWVzc2FnZTogZXJyb3IubWVzc2FnZSwgc3RhY2s6IGVycm9yLnN0YWNrIH1cbiAgICAgICAgOiBlcnJvcjtcbiAgICAgIGxvZ2dlci5lcnJvcihgRXJyb3IgY2xvc2luZyAke3Jlc291cmNlTmFtZX06YCwgeyBlcnJvcjogZXJyb3JEZXRhaWxzIH0pO1xuICAgIH1cbiAgfSk7XG59O1xuXG5jb25zdCBoYW5kbGVSZXF1ZXN0ID0gYXN5bmMgKHNlcnZlcjogTWNwU2VydmVyLCBjOiBDb250ZXh0PEJsYW5rRW52LCAnL21jcCcsIEJsYW5rSW5wdXQ+KSA9PiB7XG4gIGNvbnN0IHRyYW5zcG9ydCA9IG5ldyBTdHJlYW1hYmxlSFRUUFRyYW5zcG9ydCh7XG4gICAgc2Vzc2lvbklkR2VuZXJhdG9yOiB1bmRlZmluZWQsIC8vIOOCu+ODg+OCt+ODp+ODs0lE44KS55Sf5oiQ44GX44Gq44GE77yI44K544OG44O844OI44Os44K544Oi44O844OJ77yJXG4gICAgZW5hYmxlSnNvblJlc3BvbnNlOiB0cnVlLFxuICB9KTtcbiAgdHJ5IHtcbiAgICBhd2FpdCBzZXJ2ZXIuY29ubmVjdCh0cmFuc3BvcnQpO1xuICAgIGxvZ2dlci50cmFjZSgnTUNQIOODquOCr+OCqOOCueODiOOCkuWPl+S/oScpO1xuICAgIHJldHVybiBhd2FpdCB0cmFuc3BvcnQuaGFuZGxlUmVxdWVzdChjKTtcbiAgfSBjYXRjaCAoZXJyb3IpIHtcbiAgICB0cnkge1xuICAgICAgYXdhaXQgY2xvc2VSZXNvdXJjZXMoc2VydmVyLCB0cmFuc3BvcnQpO1xuICAgIH0gY2F0Y2ggKGNsb3NlRXJyb3IpIHtcbiAgICAgIGNvbnN0IGVycm9yRGV0YWlscyA9IGNsb3NlRXJyb3IgaW5zdGFuY2VvZiBFcnJvclxuICAgICAgICA/IHsgbWVzc2FnZTogY2xvc2VFcnJvci5tZXNzYWdlLCBzdGFjazogY2xvc2VFcnJvci5zdGFjayB9XG4gICAgICAgIDogY2xvc2VFcnJvcjtcbiAgICAgIGxvZ2dlci5lcnJvcignVHJhbnNwb3J0IGNsb3NlIGZhaWxlZCBhZnRlciBjb25uZWN0aW9uIGVycm9yOicsIHsgY2xvc2VFcnJvcjogZXJyb3JEZXRhaWxzIH0pO1xuICAgIH1cbiAgICByZXR1cm4gaGFuZGxlRXJyb3IoYywgZXJyb3IsICdNQ1Ag5o6l57aa5Lit44Gu44Ko44Op44O8OicpO1xuICB9XG5cbn07XG5cbmV4cG9ydCBjb25zdCBjcmVhdGVIb25vQXBwID0gKHNlcnZlcjogTWNwU2VydmVyKSA9PiB7XG4gIGNvbnN0IGFwcCA9IG5ldyBIb25vKCk7XG5cbiAgYXBwLnBvc3QoJy9tY3AnLCBhc3luYyAoYykgPT4ge1xuICAgIHJldHVybiBhd2FpdCBoYW5kbGVSZXF1ZXN0KHNlcnZlciwgYyk7XG4gIH0pO1xuXG4gIGFwcC5nZXQoJy9tY3AnLCBhc3luYyAoYykgPT4ge1xuICAgIHJldHVybiBhd2FpdCBoYW5kbGVSZXF1ZXN0KHNlcnZlciwgYyk7XG4gIH0pO1xuXG4gIGFwcC5wdXQoJy9tY3AnLCBtZXRob2ROb3RBbGxvd2VkSGFuZGxlcik7XG4gIGFwcC5kZWxldGUoJy9tY3AnLCBtZXRob2ROb3RBbGxvd2VkSGFuZGxlcik7XG4gIGFwcC5wYXRjaCgnL21jcCcsIG1ldGhvZE5vdEFsbG93ZWRIYW5kbGVyKTtcbiAgYXBwLm9wdGlvbnMoJy9tY3AnLCBtZXRob2ROb3RBbGxvd2VkSGFuZGxlcik7XG5cbiAgcmV0dXJuIGFwcDtcbn07XG4iXX0=
|
|
165
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi9zcmMvaW5kZXgudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUE7Ozs7Ozs7OztHQVNHO0FBRUgsT0FBTyxFQUFFLE1BQU0sRUFBRSxNQUFNLCtCQUErQixDQUFDO0FBQ3ZELE9BQU8sRUFBRSx1QkFBdUIsRUFBRSxNQUFNLFdBQVcsQ0FBQztBQUVwRCxPQUFPLEVBQVcsSUFBSSxFQUFFLE1BQU0sTUFBTSxDQUFDO0FBR3JDOzs7O0dBSUc7QUFDSCxNQUFNLE1BQU0sR0FBRyxJQUFJLE1BQU0sRUFBRSxDQUFDO0FBRTVCOzs7Ozs7Ozs7R0FTRztBQUNILE1BQU0sdUJBQXVCLEdBQUcsS0FBSyxFQUNuQyxDQUF3QyxFQUN4QyxFQUFFO0lBQ0YsT0FBTyxDQUFDLENBQUMsSUFBSSxDQUNYO1FBQ0UsT0FBTyxFQUFFLEtBQUs7UUFDZCxLQUFLLEVBQUU7WUFDTCxJQUFJLEVBQUUsQ0FBQyxLQUFLO1lBQ1osT0FBTyxFQUFFLGlCQUFpQjtTQUMzQjtRQUNELEVBQUUsRUFBRSxJQUFJO0tBQ1QsRUFDRCxFQUFFLE1BQU0sRUFBRSxHQUFHLEVBQUUsQ0FDaEIsQ0FBQztBQUNKLENBQUMsQ0FBQztBQUVGOzs7Ozs7Ozs7OztHQVdHO0FBQ0gsTUFBTSxXQUFXLEdBQUcsQ0FDbEIsQ0FBd0MsRUFDeEMsTUFBZSxFQUNmLFVBQWtCLEVBQ2xCLEVBQUU7SUFDRixNQUFNLFlBQVksR0FBRyxNQUFNLFlBQVksS0FBSztRQUMxQyxDQUFDLENBQUMsRUFBRSxPQUFPLEVBQUUsTUFBTSxDQUFDLE9BQU8sRUFBRSxLQUFLLEVBQUUsTUFBTSxDQUFDLEtBQUssRUFBRSxJQUFJLEVBQUUsTUFBTSxDQUFDLElBQUksRUFBRTtRQUNyRSxDQUFDLENBQUMsRUFBRSxNQUFNLEVBQUUsQ0FBQztJQUNmLE1BQU0sQ0FBQyxLQUFLLENBQUMsVUFBVSxFQUFFLFlBQVksQ0FBQyxDQUFDO0lBQ3ZDLE9BQU8sQ0FBQyxDQUFDLElBQUksQ0FDWDtRQUNFLE9BQU8sRUFBRSxLQUFLO1FBQ2QsS0FBSyxFQUFFO1lBQ0wsSUFBSSxFQUFFLENBQUMsS0FBSztZQUNaLE9BQU8sRUFBRSxXQUFXO1NBQ3JCO1FBQ0QsRUFBRSxFQUFFLElBQUk7S0FDVCxFQUNELEVBQUUsTUFBTSxFQUFFLEdBQUcsRUFBRSxDQUNoQixDQUFDO0FBQ0osQ0FBQyxDQUFDO0FBRUY7Ozs7Ozs7Ozs7R0FVRztBQUNILE1BQU0sY0FBYyxHQUFHLEtBQUssRUFBRSxNQUFpQixFQUFFLFNBQWtDLEVBQUUsRUFBRTtJQUNyRixpQ0FBaUM7SUFDakMsTUFBTSxZQUFZLEdBQUcsTUFBTSxPQUFPLENBQUMsVUFBVSxDQUFDO1FBQzVDLFNBQVMsQ0FBQyxLQUFLLEVBQUU7UUFDakIsTUFBTSxDQUFDLEtBQUssRUFBRTtLQUNmLENBQUMsQ0FBQztJQUVILGVBQWU7SUFDZixZQUFZLENBQUMsT0FBTyxDQUFDLENBQUMsTUFBTSxFQUFFLEtBQUssRUFBRSxFQUFFO1FBQ3JDLElBQUksTUFBTSxDQUFDLE1BQU0sS0FBSyxVQUFVLEVBQUUsQ0FBQztZQUNqQyxNQUFNLFlBQVksR0FBRyxLQUFLLEtBQUssQ0FBQyxDQUFDLENBQUMsQ0FBQyxXQUFXLENBQUMsQ0FBQyxDQUFDLFFBQVEsQ0FBQztZQUMxRCxNQUFNLEtBQUssR0FBRyxNQUFNLENBQUMsTUFBTSxDQUFDO1lBQzVCLE1BQU0sWUFBWSxHQUFHLEtBQUssWUFBWSxLQUFLO2dCQUN6QyxDQUFDLENBQUMsRUFBRSxPQUFPLEVBQUUsS0FBSyxDQUFDLE9BQU8sRUFBRSxLQUFLLEVBQUUsS0FBSyxDQUFDLEtBQUssRUFBRTtnQkFDaEQsQ0FBQyxDQUFDLEtBQUssQ0FBQztZQUNWLE1BQU0sQ0FBQyxLQUFLLENBQUMsaUJBQWlCLFlBQVksR0FBRyxFQUFFLEVBQUUsS0FBSyxFQUFFLFlBQVksRUFBRSxDQUFDLENBQUM7UUFDMUUsQ0FBQztJQUNILENBQUMsQ0FBQyxDQUFDO0FBQ0wsQ0FBQyxDQUFDO0FBRUY7Ozs7Ozs7Ozs7R0FVRztBQUNILE1BQU0sYUFBYSxHQUFHLEtBQUssRUFBRSxlQUFnQyxFQUFFLENBQXdDLEVBQUUsRUFBRTtJQUN6RyxNQUFNLFNBQVMsR0FBRyxJQUFJLHVCQUF1QixDQUFDO1FBQzVDLGtCQUFrQixFQUFFLFNBQVMsRUFBRSwyQkFBMkI7UUFDMUQsa0JBQWtCLEVBQUUsSUFBSTtLQUN6QixDQUFDLENBQUM7SUFDSCxNQUFNLE1BQU0sR0FBRyxlQUFlLEVBQUUsQ0FBQztJQUNqQyxJQUFJLENBQUM7UUFDSCxNQUFNLE1BQU0sQ0FBQyxPQUFPLENBQUMsU0FBUyxDQUFDLENBQUM7UUFDaEMsTUFBTSxDQUFDLEtBQUssQ0FBQyxjQUFjLENBQUMsQ0FBQztRQUM3QixPQUFPLE1BQU0sU0FBUyxDQUFDLGFBQWEsQ0FBQyxDQUFDLENBQUMsQ0FBQztJQUMxQyxDQUFDO0lBQUMsT0FBTyxLQUFLLEVBQUUsQ0FBQztRQUNmLE9BQU8sV0FBVyxDQUFDLENBQUMsRUFBRSxLQUFLLEVBQUUsY0FBYyxDQUFDLENBQUM7SUFDL0MsQ0FBQztZQUFTLENBQUM7UUFDVCx5QkFBeUI7UUFDekIsSUFBSSxDQUFDO1lBQ0gsTUFBTSxjQUFjLENBQUMsTUFBTSxFQUFFLFNBQVMsQ0FBQyxDQUFDO1FBQzFDLENBQUM7UUFBQyxPQUFPLFVBQVUsRUFBRSxDQUFDO1lBQ3BCLHlDQUF5QztZQUN6QyxrQ0FBa0M7WUFDbEMsTUFBTSxZQUFZLEdBQUcsVUFBVSxZQUFZLEtBQUs7Z0JBQzlDLENBQUMsQ0FBQyxFQUFFLE9BQU8sRUFBRSxVQUFVLENBQUMsT0FBTyxFQUFFLEtBQUssRUFBRSxVQUFVLENBQUMsS0FBSyxFQUFFO2dCQUMxRCxDQUFDLENBQUMsVUFBVSxDQUFDO1lBQ2YsTUFBTSxDQUFDLEtBQUssQ0FBQyxrQ0FBa0MsRUFBRSxFQUFFLFVBQVUsRUFBRSxZQUFZLEVBQUUsQ0FBQyxDQUFDO1FBQ2pGLENBQUM7SUFDSCxDQUFDO0FBQ0gsQ0FBQyxDQUFDO0FBRUY7Ozs7Ozs7Ozs7Ozs7OztHQWVHO0FBQ0gsTUFBTSxDQUFDLE1BQU0sYUFBYSxHQUFHLENBQUMsZUFBZ0MsRUFBRSxFQUFFO0lBQ2hFLE1BQU0sR0FBRyxHQUFHLElBQUksSUFBSSxFQUFFLENBQUM7SUFFdkIsR0FBRyxDQUFDLElBQUksQ0FBQyxNQUFNLEVBQUUsS0FBSyxFQUFFLENBQUMsRUFBRSxFQUFFO1FBQzNCLE9BQU8sTUFBTSxhQUFhLENBQUMsZUFBZSxFQUFFLENBQUMsQ0FBQyxDQUFDO0lBQ2pELENBQUMsQ0FBQyxDQUFDO0lBRUgsR0FBRyxDQUFDLEdBQUcsQ0FBQyxNQUFNLEVBQUUsS0FBSyxFQUFFLENBQUMsRUFBRSxFQUFFO1FBQzFCLE9BQU8sTUFBTSxhQUFhLENBQUMsZUFBZSxFQUFFLENBQUMsQ0FBQyxDQUFDO0lBQ2pELENBQUMsQ0FBQyxDQUFDO0lBRUgsR0FBRyxDQUFDLEdBQUcsQ0FBQyxNQUFNLEVBQUUsdUJBQXVCLENBQUMsQ0FBQztJQUN6QyxHQUFHLENBQUMsTUFBTSxDQUFDLE1BQU0sRUFBRSx1QkFBdUIsQ0FBQyxDQUFDO0lBQzVDLEdBQUcsQ0FBQyxLQUFLLENBQUMsTUFBTSxFQUFFLHVCQUF1QixDQUFDLENBQUM7SUFDM0MsR0FBRyxDQUFDLE9BQU8sQ0FBQyxNQUFNLEVBQUUsdUJBQXVCLENBQUMsQ0FBQztJQUU3QyxPQUFPLEdBQUcsQ0FBQztBQUNiLENBQUMsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbIi8qKlxuICogTW9kZWwgQ29udGV4dCBQcm90b2NvbCAoTUNQKSDjgrXjg7zjg5Djg7zjgpIgSG9ubyDjg5Xjg6zjg7zjg6Djg6/jg7zjgq/kuIrjgafli5XkvZzjgZXjgZvjgovjgqjjg7Pjg4jjg6rjg7zjg53jgqTjg7Pjg4jjgIJcbiAqXG4gKiBAcmVtYXJrc1xuICogYGNyZWF0ZUhvbm9BcHBgIOmWouaVsOOCkumAmuOBmOOBpuOAgS9tY3Ag44Ko44Oz44OJ44Od44Kk44Oz44OI44GnTUNQ44K144O844OQ44O844KS5o+Q5L6b44GX44G+44GZ44CCXG4gKiAtIFBPU1QvR0VUIC9tY3A6IE1DUOODquOCr+OCqOOCueODiOOBruWPl+S/oeODu+WHpueQhlxuICogLSDjgZ3jga7ku5bjga5IVFRQ44Oh44K944OD44OJOiA0MDUgTWV0aG9kIE5vdCBBbGxvd2VkXG4gKlxuICog5YaF6YOo55qE44Gr44Ko44Op44O844OP44Oz44OJ44Oq44Oz44Kw44KE44Oq44K944O844K544Kv44Ot44O844K65Yem55CG44KC6KGM44GE44G+44GZ44CCXG4gKi9cblxuaW1wb3J0IHsgTG9nZ2VyIH0gZnJvbSAnQGF3cy1sYW1iZGEtcG93ZXJ0b29scy9sb2dnZXInO1xuaW1wb3J0IHsgU3RyZWFtYWJsZUhUVFBUcmFuc3BvcnQgfSBmcm9tICdAaG9uby9tY3AnO1xuaW1wb3J0IHsgTWNwU2VydmVyIH0gZnJvbSAnQG1vZGVsY29udGV4dHByb3RvY29sL3Nkay9zZXJ2ZXIvbWNwLmpzJztcbmltcG9ydCB7IENvbnRleHQsIEhvbm8gfSBmcm9tICdob25vJztcbmltcG9ydCB7IEJsYW5rRW52LCBCbGFua0lucHV0IH0gZnJvbSAnaG9uby90eXBlcyc7XG5cbi8qKlxuICog44Ot44Ks44O844Kk44Oz44K544K/44Oz44K577yIQVdTIExhbWJkYSBQb3dlcnRvb2xz77yJ44CCXG4gKlxuICogQHByaXZhdGVcbiAqL1xuY29uc3QgbG9nZ2VyID0gbmV3IExvZ2dlcigpO1xuXG4vKipcbiAqIOioseWPr+OBleOCjOOBpuOBhOOBquOBhEhUVFDjg6Hjgr3jg4Pjg4njgavlr77jgZnjgovjg4/jg7Pjg4njg6njg7zjgafjgZnjgIJcbiAqXG4gKiBAcmVtYXJrc1xuICogNDA144Ko44Op44O844GuSlNPTuODrOOCueODneODs+OCueOCkui/lOOBl+OBvuOBmeOAglxuICpcbiAqIEBwYXJhbSBjIEhvbm/jga7jgrPjg7Pjg4bjgq3jgrnjg4hcbiAqIEByZXR1cm5zIDQwNeOCqOODqeODvOOBrkpTT07jg6zjgrnjg53jg7PjgrlcbiAqIEBwcml2YXRlXG4gKi9cbmNvbnN0IG1ldGhvZE5vdEFsbG93ZWRIYW5kbGVyID0gYXN5bmMgKFxuICBjOiBDb250ZXh0PEJsYW5rRW52LCAnL21jcCcsIEJsYW5rSW5wdXQ+LFxuKSA9PiB7XG4gIHJldHVybiBjLmpzb24oXG4gICAge1xuICAgICAganNvbnJwYzogJzIuMCcsXG4gICAgICBlcnJvcjoge1xuICAgICAgICBjb2RlOiAtMzIwMDAsXG4gICAgICAgIG1lc3NhZ2U6ICfjg6Hjgr3jg4Pjg4njga/oqLHlj6/jgZXjgozjgabjgYTjgb7jgZvjgpPjgIInLFxuICAgICAgfSxcbiAgICAgIGlkOiBudWxsLFxuICAgIH0sXG4gICAgeyBzdGF0dXM6IDQwNSB9LFxuICApO1xufTtcblxuLyoqXG4gKiDjgrXjg7zjg5Djg7zjgqjjg6njg7znmbrnlJ/mmYLjga7lhbHpgJrjgqjjg6njg7zjg4/jg7Pjg4njg6njg7zjgafjgZnjgIJcbiAqXG4gKiBAcmVtYXJrc1xuICog44Ko44Op44O85YaF5a6544KS44Ot44Ku44Oz44Kw44GX44CBNTAw44Ko44Op44O844GuSlNPTuODrOOCueODneODs+OCueOCkui/lOOBl+OBvuOBmeOAglxuICpcbiAqIEBwYXJhbSBjIEhvbm/jga7jgrPjg7Pjg4bjgq3jgrnjg4hcbiAqIEBwYXJhbSByZWFzb24g44Ko44Op44O855CG55SxXG4gKiBAcGFyYW0gbG9nTWVzc2FnZSDjg63jgrDlh7rlipvnlKjjg6Hjg4Pjgrvjg7zjgrhcbiAqIEByZXR1cm5zIDUwMOOCqOODqeODvOOBrkpTT07jg6zjgrnjg53jg7PjgrlcbiAqIEBwcml2YXRlXG4gKi9cbmNvbnN0IGhhbmRsZUVycm9yID0gKFxuICBjOiBDb250ZXh0PEJsYW5rRW52LCAnL21jcCcsIEJsYW5rSW5wdXQ+LFxuICByZWFzb246IHVua25vd24sXG4gIGxvZ01lc3NhZ2U6IHN0cmluZyxcbikgPT4ge1xuICBjb25zdCBlcnJvckRldGFpbHMgPSByZWFzb24gaW5zdGFuY2VvZiBFcnJvclxuICAgID8geyBtZXNzYWdlOiByZWFzb24ubWVzc2FnZSwgc3RhY2s6IHJlYXNvbi5zdGFjaywgbmFtZTogcmVhc29uLm5hbWUgfVxuICAgIDogeyByZWFzb24gfTtcbiAgbG9nZ2VyLmVycm9yKGxvZ01lc3NhZ2UsIGVycm9yRGV0YWlscyk7XG4gIHJldHVybiBjLmpzb24oXG4gICAge1xuICAgICAganNvbnJwYzogJzIuMCcsXG4gICAgICBlcnJvcjoge1xuICAgICAgICBjb2RlOiAtMzI2MDMsXG4gICAgICAgIG1lc3NhZ2U6ICflhoXpg6jjgrXjg7zjg5Djg7zjgqjjg6njg7wnLFxuICAgICAgfSxcbiAgICAgIGlkOiBudWxsLFxuICAgIH0sXG4gICAgeyBzdGF0dXM6IDUwMCB9LFxuICApO1xufTtcblxuLyoqXG4gKiBNQ1DjgrXjg7zjg5Djg7zjgYrjgojjgbPjg4jjg6njg7Pjgrnjg53jg7zjg4jjga7jg6rjgr3jg7zjgrnjgpLjgq/jg63jg7zjgrrjgZfjgb7jgZnjgIJcbiAqXG4gKiBAcmVtYXJrc1xuICog44Gp44Gh44KJ44GL5LiA5pa544Gu44Kv44Ot44O844K644Gr5aSx5pWX44GX44Gm44KC44CB44KC44GG5LiA5pa544Gv5b+F44Ga5a6f6KGM44GV44KM44G+44GZ44CCXG4gKlxuICogQHBhcmFtIHNlcnZlciBNQ1DjgrXjg7zjg5Djg7zjgqTjg7Pjgrnjgr/jg7PjgrlcbiAqIEBwYXJhbSB0cmFuc3BvcnQg44OI44Op44Oz44K544Od44O844OI44Kk44Oz44K544K/44Oz44K5XG4gKiBAcmV0dXJucyB2b2lkXG4gKiBAcHJpdmF0ZVxuICovXG5jb25zdCBjbG9zZVJlc291cmNlcyA9IGFzeW5jIChzZXJ2ZXI6IE1jcFNlcnZlciwgdHJhbnNwb3J0OiBTdHJlYW1hYmxlSFRUUFRyYW5zcG9ydCkgPT4ge1xuICAvLyDkuKHmlrnjga7jgq/jg63jg7zjgrrjgpLnorrlrp/jgavlrp/ooYzvvIjniYfmlrnjgYzlpLHmlZfjgZfjgabjgoLjgoLjgYbniYfmlrnjgpLlrp/ooYzvvIlcbiAgY29uc3QgY2xvc2VSZXN1bHRzID0gYXdhaXQgUHJvbWlzZS5hbGxTZXR0bGVkKFtcbiAgICB0cmFuc3BvcnQuY2xvc2UoKSxcbiAgICBzZXJ2ZXIuY2xvc2UoKSxcbiAgXSk7XG5cbiAgLy8g44Kv44Ot44O844K644Ko44Op44O844KS44Ot44Kw5Ye65YqbXG4gIGNsb3NlUmVzdWx0cy5mb3JFYWNoKChyZXN1bHQsIGluZGV4KSA9PiB7XG4gICAgaWYgKHJlc3VsdC5zdGF0dXMgPT09ICdyZWplY3RlZCcpIHtcbiAgICAgIGNvbnN0IHJlc291cmNlTmFtZSA9IGluZGV4ID09PSAwID8gJ3RyYW5zcG9ydCcgOiAnc2VydmVyJztcbiAgICAgIGNvbnN0IGVycm9yID0gcmVzdWx0LnJlYXNvbjtcbiAgICAgIGNvbnN0IGVycm9yRGV0YWlscyA9IGVycm9yIGluc3RhbmNlb2YgRXJyb3JcbiAgICAgICAgPyB7IG1lc3NhZ2U6IGVycm9yLm1lc3NhZ2UsIHN0YWNrOiBlcnJvci5zdGFjayB9XG4gICAgICAgIDogZXJyb3I7XG4gICAgICBsb2dnZXIuZXJyb3IoYEVycm9yIGNsb3NpbmcgJHtyZXNvdXJjZU5hbWV9OmAsIHsgZXJyb3I6IGVycm9yRGV0YWlscyB9KTtcbiAgICB9XG4gIH0pO1xufTtcblxuLyoqXG4gKiBNQ1Djg6rjgq/jgqjjgrnjg4jjgpLlh6bnkIbjgZfjgb7jgZnjgIJcbiAqXG4gKiBAcmVtYXJrc1xuICog44K144O844OQ44O844Go44OI44Op44Oz44K544Od44O844OI44Gu5o6l57aa44O744Oq44Kv44Ko44K544OI5Yem55CG44O744Ko44Op44O844OP44Oz44OJ44Oq44Oz44Kw44KS6KGM44GE44G+44GZ44CCXG4gKlxuICogQHBhcmFtIGNyZWF0ZU1jcFNlcnZlciBNQ1DjgrXjg7zjg5Djg7zjgqTjg7Pjgrnjgr/jg7PjgrnjgpLnlJ/miJDjgZnjgovjg5XjgqHjgq/jg4jjg6rplqLmlbBcbiAqIEBwYXJhbSBjIEhvbm/jga7jgrPjg7Pjg4bjgq3jgrnjg4hcbiAqIEByZXR1cm5zIE1DUOODrOOCueODneODs+OCuVxuICogQHByaXZhdGVcbiAqL1xuY29uc3QgaGFuZGxlUmVxdWVzdCA9IGFzeW5jIChjcmVhdGVNY3BTZXJ2ZXI6ICgpID0+IE1jcFNlcnZlciwgYzogQ29udGV4dDxCbGFua0VudiwgJy9tY3AnLCBCbGFua0lucHV0PikgPT4ge1xuICBjb25zdCB0cmFuc3BvcnQgPSBuZXcgU3RyZWFtYWJsZUhUVFBUcmFuc3BvcnQoe1xuICAgIHNlc3Npb25JZEdlbmVyYXRvcjogdW5kZWZpbmVkLCAvLyDjgrvjg4Pjgrfjg6fjg7NJROOCkueUn+aIkOOBl+OBquOBhO+8iOOCueODhuODvOODiOODrOOCueODouODvOODie+8iVxuICAgIGVuYWJsZUpzb25SZXNwb25zZTogdHJ1ZSxcbiAgfSk7XG4gIGNvbnN0IHNlcnZlciA9IGNyZWF0ZU1jcFNlcnZlcigpO1xuICB0cnkge1xuICAgIGF3YWl0IHNlcnZlci5jb25uZWN0KHRyYW5zcG9ydCk7XG4gICAgbG9nZ2VyLnRyYWNlKCdNQ1Ag44Oq44Kv44Ko44K544OI44KS5Y+X5L+hJyk7XG4gICAgcmV0dXJuIGF3YWl0IHRyYW5zcG9ydC5oYW5kbGVSZXF1ZXN0KGMpO1xuICB9IGNhdGNoIChlcnJvcikge1xuICAgIHJldHVybiBoYW5kbGVFcnJvcihjLCBlcnJvciwgJ01DUCDmjqXntprkuK3jga7jgqjjg6njg7w6Jyk7XG4gIH0gZmluYWxseSB7XG4gICAgLy8g44Ko44Op44O844Gu5pyJ54Sh44Gr6Zai44KP44KJ44Ga5b+F44Ga44Oq44K944O844K544KS44Kv44Ot44O844K6XG4gICAgdHJ5IHtcbiAgICAgIGF3YWl0IGNsb3NlUmVzb3VyY2VzKHNlcnZlciwgdHJhbnNwb3J0KTtcbiAgICB9IGNhdGNoIChjbG9zZUVycm9yKSB7XG4gICAgICAvLyDjgq/jg63jg7zjgrrjgqjjg6njg7zjga/ml6LjgatjbG9zZVJlc291cmNlc+WGheOBp+ODreOCsOWHuuWKm+OBleOCjOOBpuOBhOOCi+OBn+OCgeOAgVxuICAgICAgLy8g44GT44GT44Gn44Gv6L+95Yqg44Gu44Ko44Op44O844OP44Oz44OJ44Oq44Oz44Kw44Gv5LiN6KaB44Gg44GM44CB44Ko44Op44O844Gu6Kmz57Sw44KS6KiY6YyyXG4gICAgICBjb25zdCBlcnJvckRldGFpbHMgPSBjbG9zZUVycm9yIGluc3RhbmNlb2YgRXJyb3JcbiAgICAgICAgPyB7IG1lc3NhZ2U6IGNsb3NlRXJyb3IubWVzc2FnZSwgc3RhY2s6IGNsb3NlRXJyb3Iuc3RhY2sgfVxuICAgICAgICA6IGNsb3NlRXJyb3I7XG4gICAgICBsb2dnZXIuZXJyb3IoJ+ODquOCveODvOOCueOCr+ODreODvOOCuuS4reOBq+i/veWKoOOCqOODqeODvOOBjOeZuueUn+OBl+OBvuOBl+OBn+OBjOOAgeWHpueQhuOCkue2mee2muOBl+OBvuOBmScsIHsgY2xvc2VFcnJvcjogZXJyb3JEZXRhaWxzIH0pO1xuICAgIH1cbiAgfVxufTtcblxuLyoqXG4gKiBIb25v44Ki44OX44Oq44Kx44O844K344On44Oz44KS55Sf5oiQ44GX44CBL21jcOOCqOODs+ODieODneOCpOODs+ODiOOBp01DUOOCteODvOODkOODvOOCkuaPkOS+m+OBl+OBvuOBmeOAglxuICpcbiAqIEByZW1hcmtzXG4gKiBQT1NUL0dFVCAvbWNwIOOBp01DUOODquOCr+OCqOOCueODiOOCkuWPl+OBkeS7mOOBkeOAgeS7luOBrkhUVFDjg6Hjgr3jg4Pjg4njga80MDXjgpLov5TjgZfjgb7jgZnjgIJcbiAqXG4gKiBAcGFyYW0gY3JlYXRlTWNwU2VydmVyIE1DUOOCteODvOODkOODvOOCpOODs+OCueOCv+ODs+OCueOCkueUn+aIkOOBmeOCi+ODleOCoeOCr+ODiOODqumWouaVsFxuICogQHJldHVybnMgSG9ub+OCouODl+ODquOCseODvOOCt+ODp+ODs+OCpOODs+OCueOCv+ODs+OCuVxuICpcbiAqIEBleGFtcGxlXG4gKiBgYGB0c1xuICogaW1wb3J0IHsgY3JlYXRlSG9ub0FwcCB9IGZyb20gJy4uLic7XG4gKiBpbXBvcnQgeyBjcmVhdGVNY3BTZXJ2ZXIgfSBmcm9tICcuL3lvdXItbWNwLXNlcnZlcic7XG4gKiBjb25zdCBhcHAgPSBjcmVhdGVIb25vQXBwKGNyZWF0ZU1jcFNlcnZlcik7XG4gKiBgYGBcbiAqL1xuZXhwb3J0IGNvbnN0IGNyZWF0ZUhvbm9BcHAgPSAoY3JlYXRlTWNwU2VydmVyOiAoKSA9PiBNY3BTZXJ2ZXIpID0+IHtcbiAgY29uc3QgYXBwID0gbmV3IEhvbm8oKTtcblxuICBhcHAucG9zdCgnL21jcCcsIGFzeW5jIChjKSA9PiB7XG4gICAgcmV0dXJuIGF3YWl0IGhhbmRsZVJlcXVlc3QoY3JlYXRlTWNwU2VydmVyLCBjKTtcbiAgfSk7XG5cbiAgYXBwLmdldCgnL21jcCcsIGFzeW5jIChjKSA9PiB7XG4gICAgcmV0dXJuIGF3YWl0IGhhbmRsZVJlcXVlc3QoY3JlYXRlTWNwU2VydmVyLCBjKTtcbiAgfSk7XG5cbiAgYXBwLnB1dCgnL21jcCcsIG1ldGhvZE5vdEFsbG93ZWRIYW5kbGVyKTtcbiAgYXBwLmRlbGV0ZSgnL21jcCcsIG1ldGhvZE5vdEFsbG93ZWRIYW5kbGVyKTtcbiAgYXBwLnBhdGNoKCcvbWNwJywgbWV0aG9kTm90QWxsb3dlZEhhbmRsZXIpO1xuICBhcHAub3B0aW9ucygnL21jcCcsIG1ldGhvZE5vdEFsbG93ZWRIYW5kbGVyKTtcblxuICByZXR1cm4gYXBwO1xufTtcbiJdfQ==
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "aws-lambda-mcp-server",
|
|
3
|
-
"version": "0.0.
|
|
3
|
+
"version": "0.0.3",
|
|
4
4
|
"description": "A Hono wrapper for building an MCP (Model Context Protocol) Server that runs on AWS Lambda functions.",
|
|
5
5
|
"type": "module",
|
|
6
6
|
"keywords": [
|
|
@@ -34,25 +34,25 @@
|
|
|
34
34
|
"license": "ISC",
|
|
35
35
|
"devDependencies": {
|
|
36
36
|
"@eslint/compat": "^1.4.1",
|
|
37
|
-
"@eslint/js": "^9.39.
|
|
37
|
+
"@eslint/js": "^9.39.1",
|
|
38
38
|
"@stylistic/eslint-plugin": "^5.5.0",
|
|
39
|
-
"@types/node": "24.
|
|
40
|
-
"eslint": "^9.39.
|
|
39
|
+
"@types/node": "24.10.0",
|
|
40
|
+
"eslint": "^9.39.1",
|
|
41
41
|
"eslint-import-resolver-typescript": "^4.4.4",
|
|
42
42
|
"eslint-plugin-import": "^2.32.0",
|
|
43
43
|
"eslint-plugin-promise": "^7.2.1",
|
|
44
44
|
"jiti": "^2.6.1",
|
|
45
45
|
"tsx": "^4.20.6",
|
|
46
46
|
"typescript": "^5.9.3",
|
|
47
|
-
"typescript-eslint": "^8.46.
|
|
48
|
-
"vitest": "^4.0.
|
|
47
|
+
"typescript-eslint": "^8.46.3",
|
|
48
|
+
"vitest": "^4.0.7"
|
|
49
49
|
},
|
|
50
50
|
"dependencies": {
|
|
51
51
|
"@aws-lambda-powertools/logger": "^2.28.1",
|
|
52
52
|
"@hono/mcp": "^0.1.5",
|
|
53
|
-
"@modelcontextprotocol/sdk": "^1.
|
|
53
|
+
"@modelcontextprotocol/sdk": "^1.21.0",
|
|
54
54
|
"hono": "^4.10.4",
|
|
55
|
-
"zod": "^
|
|
55
|
+
"zod": "^4.1.12"
|
|
56
56
|
},
|
|
57
57
|
"scripts": {
|
|
58
58
|
"build": "tsc",
|