@opentiny/next 0.2.1 → 0.3.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/README.md +2 -2
- package/index.d.ts +325 -0
- package/index.js +817 -0
- package/package.json +6 -18
- package/client.d.ts +0 -191
- package/client.js +0 -668
- package/server.d.ts +0 -146
- package/server.js +0 -565
package/server.d.ts
DELETED
|
@@ -1,146 +0,0 @@
|
|
|
1
|
-
import jwt, { JwtPayload } from 'jsonwebtoken';
|
|
2
|
-
import { McpServer } from '@modelcontextprotocol/sdk/server/mcp.js';
|
|
3
|
-
import { Client } from '@modelcontextprotocol/sdk/client/index.js';
|
|
4
|
-
import { SSEServerTransport } from '@modelcontextprotocol/sdk/server/sse.js';
|
|
5
|
-
import { StreamableHTTPServerTransport } from '@modelcontextprotocol/sdk/server/streamableHttp.js';
|
|
6
|
-
import { Request, Response, NextFunction } from 'express';
|
|
7
|
-
|
|
8
|
-
/**
|
|
9
|
-
* 客户端连接的信息,包括客户端实例、用户信息和 Transport 类型
|
|
10
|
-
*/
|
|
11
|
-
interface ClientInfo {
|
|
12
|
-
/**
|
|
13
|
-
* 客户端实例
|
|
14
|
-
*/
|
|
15
|
-
client: Client;
|
|
16
|
-
/**
|
|
17
|
-
* 客户端连接的 Transport 实例
|
|
18
|
-
*/
|
|
19
|
-
transport: SSEServerTransport | StreamableHTTPServerTransport;
|
|
20
|
-
/**
|
|
21
|
-
* 连接的用户信息
|
|
22
|
-
*/
|
|
23
|
-
user?: JwtPayload | string;
|
|
24
|
-
/**
|
|
25
|
-
* 用于识别不同连接的信息
|
|
26
|
-
*/
|
|
27
|
-
device: {
|
|
28
|
-
/**
|
|
29
|
-
* 连接的来源 IP 地址,可能是 IPv4 或 IPv6 地址
|
|
30
|
-
*/
|
|
31
|
-
ip: string | string[];
|
|
32
|
-
/**
|
|
33
|
-
* 识别浏览器类型和版本 User-Agent 字符串
|
|
34
|
-
*/
|
|
35
|
-
userAgent: string;
|
|
36
|
-
/**
|
|
37
|
-
* 连接的语言设置,通常是浏览器的 Accept-Language 字段
|
|
38
|
-
*/
|
|
39
|
-
acceptLanguage: string;
|
|
40
|
-
/**
|
|
41
|
-
* 连接的来源 URL,通常是 HTTP Referer 字段
|
|
42
|
-
*/
|
|
43
|
-
referer: string;
|
|
44
|
-
};
|
|
45
|
-
/**
|
|
46
|
-
* 客户端连接的 Transport 类型
|
|
47
|
-
*/
|
|
48
|
-
type: 'SSE' | 'StreamableHTTP';
|
|
49
|
-
}
|
|
50
|
-
/**
|
|
51
|
-
* 遥控端连接的信息,包括服务端实例、用户信息和 Transport 类型
|
|
52
|
-
*/
|
|
53
|
-
interface RemoterInfo {
|
|
54
|
-
/**
|
|
55
|
-
* 服务端实例
|
|
56
|
-
*/
|
|
57
|
-
mcpServer: McpServer;
|
|
58
|
-
/**
|
|
59
|
-
* 服务端连接的 Transport 实例
|
|
60
|
-
*/
|
|
61
|
-
transport: SSEServerTransport | StreamableHTTPServerTransport;
|
|
62
|
-
/**
|
|
63
|
-
* 所连接客户端的 Session ID
|
|
64
|
-
*/
|
|
65
|
-
client: string;
|
|
66
|
-
/**
|
|
67
|
-
* 连接的用户信息
|
|
68
|
-
*/
|
|
69
|
-
user?: JwtPayload | string;
|
|
70
|
-
/**
|
|
71
|
-
* 用于识别不同连接的信息
|
|
72
|
-
*/
|
|
73
|
-
device: {
|
|
74
|
-
/**
|
|
75
|
-
* 连接的来源 IP 地址,可能是 IPv4 或 IPv6 地址
|
|
76
|
-
*/
|
|
77
|
-
ip: string | string[];
|
|
78
|
-
/**
|
|
79
|
-
* 识别浏览器类型和版本 User-Agent 字符串
|
|
80
|
-
*/
|
|
81
|
-
userAgent: string;
|
|
82
|
-
/**
|
|
83
|
-
* 连接的语言设置,通常是浏览器的 Accept-Language 字段
|
|
84
|
-
*/
|
|
85
|
-
acceptLanguage: string;
|
|
86
|
-
/**
|
|
87
|
-
* 连接的来源 URL,通常是 HTTP Referer 字段
|
|
88
|
-
*/
|
|
89
|
-
referer: string;
|
|
90
|
-
};
|
|
91
|
-
/**
|
|
92
|
-
* 服务端连接的 Transport 类型
|
|
93
|
-
*/
|
|
94
|
-
type: 'SSE' | 'StreamableHTTP';
|
|
95
|
-
}
|
|
96
|
-
/**
|
|
97
|
-
* Express 请求对象的扩展,添加了可选的用户信息属性
|
|
98
|
-
*/
|
|
99
|
-
declare module 'express' {
|
|
100
|
-
interface Request {
|
|
101
|
-
user?: JwtPayload | string;
|
|
102
|
-
}
|
|
103
|
-
}
|
|
104
|
-
/**
|
|
105
|
-
* 认证中间件,用于校验 JWT Token。
|
|
106
|
-
*
|
|
107
|
-
* 检查请求头中的 Authorization 字段,提取并校验 Bearer Token。
|
|
108
|
-
* 校验通过后,将解码后的用户信息挂载到 req.user。
|
|
109
|
-
* 校验失败或缺失 token 时,返回 401 或 403 错误。
|
|
110
|
-
*/
|
|
111
|
-
declare const auth: ({ secret }: {
|
|
112
|
-
secret: string;
|
|
113
|
-
}) => (req: Request, res: Response, next: NextFunction) => void;
|
|
114
|
-
/**
|
|
115
|
-
* 根据签名的密钥生成 JWT Token
|
|
116
|
-
*
|
|
117
|
-
* @param payload - JWT Token 的载荷,包含用户信息等
|
|
118
|
-
* @param secret - 用于签名的密钥
|
|
119
|
-
* @param signOption - 签名选项,默认过期时间 30 天,默认算法 HS256
|
|
120
|
-
* @returns - 生成的 JWT Token
|
|
121
|
-
*/
|
|
122
|
-
declare const signToken: (payload: object, secret: string, signOption?: jwt.SignOptions) => string;
|
|
123
|
-
/**
|
|
124
|
-
* 验证 JWT Token,如果验证失败,比如 Token 过期、签名不匹配等,将抛出错误异常。
|
|
125
|
-
*
|
|
126
|
-
* @param token - 要验证的 JWT Token
|
|
127
|
-
* @param secret - 用于验证的密钥
|
|
128
|
-
* @returns - 解码后的 JWT Token 载荷,包含用户信息等
|
|
129
|
-
*/
|
|
130
|
-
declare const verifyToken: (token: string, secret: string) => any;
|
|
131
|
-
/**
|
|
132
|
-
* SSE 与 Streamable HTTP 连接的处理函数,同时返回所有客户端代理实例
|
|
133
|
-
*/
|
|
134
|
-
declare const useProxyHandles: () => {
|
|
135
|
-
handleSseProxy: (req: Request, res: Response, endpoint: string) => Promise<void>;
|
|
136
|
-
handleSseInspector: (req: Request, res: Response, endpoint: string) => Promise<void>;
|
|
137
|
-
handleSseMessage: (req: Request, res: Response) => Promise<void>;
|
|
138
|
-
handleStreamRequest: (req: Request, res: Response) => Promise<void>;
|
|
139
|
-
handleStreamInspector: (req: Request, res: Response) => Promise<void>;
|
|
140
|
-
clients: Record<string, ClientInfo>;
|
|
141
|
-
remoters: Record<string, RemoterInfo>;
|
|
142
|
-
reset: () => void;
|
|
143
|
-
};
|
|
144
|
-
|
|
145
|
-
export { auth, signToken, useProxyHandles, verifyToken };
|
|
146
|
-
export type { ClientInfo, RemoterInfo };
|