@opentiny/next 0.2.1 → 0.3.1

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/package.json CHANGED
@@ -1,30 +1,18 @@
1
1
  {
2
2
  "name": "@opentiny/next",
3
- "version": "0.2.1",
3
+ "version": "0.3.1",
4
4
  "type": "module",
5
5
  "license": "MIT",
6
6
  "author": "Chunhui Mo",
7
- "files": [
8
- "client.js",
9
- "client.d.ts",
10
- "server.js",
11
- "server.d.ts"
12
- ],
13
- "main": "client.js",
14
- "module": "client.js",
15
- "types": "client.d.ts",
7
+ "main": "index.js",
8
+ "module": "index.js",
9
+ "types": "index.d.ts",
16
10
  "description": "OpenTiny NEXT",
17
11
  "dependencies": {
18
- "@modelcontextprotocol/sdk": "^1.12.1",
19
- "jsonwebtoken": "^9.0.2",
20
- "zod": "^3.25.30"
12
+ "@modelcontextprotocol/sdk": "^1.16.0"
21
13
  },
22
14
  "devDependencies": {
23
- "@types/express": "^5.0.1",
24
- "@types/jsonwebtoken": "^9.0.9"
25
- },
26
- "engines": {
27
- "node": "^18.0.0 || >=20.0.0"
15
+ "eventsource": "^3.0.6"
28
16
  },
29
17
  "publishConfig": {
30
18
  "access": "public"
package/client.d.ts DELETED
@@ -1,191 +0,0 @@
1
- import { JSONRPCMessage } from '@modelcontextprotocol/sdk/types.js';
2
- import { AuthInfo } from '@modelcontextprotocol/sdk/server/auth/types.js';
3
- import { Client } from '@modelcontextprotocol/sdk/client/index.js';
4
- import { SSEClientTransport } from '@modelcontextprotocol/sdk/client/sse.js';
5
- import { StreamableHTTPClientTransport } from '@modelcontextprotocol/sdk/client/streamableHttp.js';
6
-
7
- /**
8
- * MessageChannelTransport 是一个用于在浏览器上下文之间传输消息的类。
9
- * 它使用 MessageChannel API 来实现不同上下文(如 iframe、worker、标签页、窗口等)之间的通信。
10
- * 该类提供了初始化、发送消息、关闭通道等功能。
11
- */
12
- declare class MessageChannelTransport {
13
- protected _port: MessagePort | undefined;
14
- protected _sessionId: string | undefined;
15
- protected _started: boolean;
16
- protected _closed: boolean;
17
- onclose?: () => void;
18
- onerror?: (error: Error) => void;
19
- onmessage?: (message: JSONRPCMessage, extra?: {
20
- authInfo?: AuthInfo;
21
- }) => void;
22
- /**
23
- * 构造函数,初始化 MessageChannelTransport。
24
- *
25
- * @param port - 用于通信的 MessagePort。
26
- * @param sessionId - 会话 ID。
27
- */
28
- constructor(port?: MessagePort, sessionId?: string);
29
- /**
30
- * 初始化 MessageChannelTransport。
31
- * 该方法会创建一个新的 MessageChannel,并将其端口传递给指定的全局对象。
32
- * 如果传输已关闭,则抛出错误。
33
- */
34
- start(): Promise<void>;
35
- /**
36
- * 发送消息到 MessagePort。
37
- * 如果传输已关闭,则抛出错误。
38
- *
39
- * @param message - 要发送的 JSON-RPC 消息。
40
- */
41
- send(message: JSONRPCMessage): Promise<void>;
42
- /**
43
- * 关闭 MessageChannelTransport。
44
- * 该方法会关闭 MessagePort,并触发关闭回调。
45
- * 如果传输已关闭,则不执行任何操作。
46
- */
47
- close(): Promise<void>;
48
- /**
49
- * 获取当前会话的 sessionId。
50
- */
51
- get sessionId(): string;
52
- }
53
- /**
54
- * 在浏览器端实现基于 MessageChannel API 的客户端传输类,
55
- * 用于不同浏览器上下文(如 iframe、worker、标签页、窗口等)之间通信。
56
- */
57
- declare class MessageChannelClientTransport extends MessageChannelTransport {
58
- private _endpoint;
59
- private _globalObject;
60
- /**
61
- * 创建一个监听通信的服务端实例。
62
- *
63
- * @param endpoint - 用于通信的端点。
64
- * @param [globalObject] - 用于通信的全局对象(可选,默认当前全局对象)。
65
- */
66
- constructor(endpoint: string, globalObject?: object);
67
- }
68
- /**
69
- * 在浏览器端实现基于 MessageChannel API 的服务端传输类,
70
- * 用于不同浏览器上下文(如 iframe、worker、标签页、窗口等)之间通信。
71
- */
72
- declare class MessageChannelServerTransport extends MessageChannelTransport {
73
- private _endpoint;
74
- private _globalObject;
75
- private _listen;
76
- /**
77
- * 创建一个监听通信的服务端实例。
78
- *
79
- * @param endpoint - 用于通信的端点。
80
- * @param [globalObject] - 用于通信的全局对象(可选,默认当前全局对象)。
81
- */
82
- constructor(endpoint: string, globalObject?: object);
83
- /**
84
- * 监听等待客户端连接。
85
- * 该方法会返回一个 Promise,当客户端连接时解析。
86
- */
87
- listen(): Promise<void>;
88
- }
89
- /**
90
- * 创建一对 MessageChannelTransport 实例,返回两个端口的传输实例。
91
- * 这两个实例可以用于在不同的浏览器上下文之间进行通信。
92
- *
93
- * @returns 返回一对 MessageChannelTransport 实例。
94
- */
95
- declare const createTransportPair: () => [MessageChannelTransport, MessageChannelTransport];
96
-
97
- declare module '@modelcontextprotocol/sdk/client/sse.js' {
98
- interface SSEClientTransport {
99
- sessionId: string;
100
- }
101
- }
102
- /**
103
- * 客户端代理选项接口
104
- */
105
- interface ClientProxyOption {
106
- /**
107
- * MCP 客户端实例
108
- */
109
- client: Client;
110
- /**
111
- * 代理服务器的 URL
112
- */
113
- url: string;
114
- /**
115
- * 代理服务器的身份验证令牌
116
- */
117
- token: string;
118
- /**
119
- * 可选的会话 ID,用于标识当前会话
120
- */
121
- sessionId?: string;
122
- }
123
- /**
124
- * 创建一个 SSE 客户端代理
125
- *
126
- * @param options - 客户端代理选项
127
- * @returns - 返回一个包含 transport 和 sessionId 的对象
128
- */
129
- declare const createSseProxy: (option: ClientProxyOption) => Promise<{
130
- transport: SSEClientTransport;
131
- sessionId: string;
132
- }>;
133
- /**
134
- * 创建一个 Streamable HTTP 客户端代理
135
- *
136
- * @param options - 客户端代理选项
137
- * @returns - 返回一个包含 transport 和 sessionId 的对象
138
- */
139
- declare const createStreamProxy: (option: ClientProxyOption) => Promise<{
140
- transport: StreamableHTTPClientTransport;
141
- sessionId: string;
142
- }>;
143
-
144
- /**
145
- * 生成 SSEClientTransport 构造函数所需的第二个可选参数(传输配置)。
146
- * 用于为 SSE 连接和 HTTP 请求统一设置认证头(Authorization)。
147
- *
148
- * @param token - 用于认证的 Bearer Token。
149
- * @param sessionId - 可选的 sessionId,用于标识会话。
150
- * @returns 返回传输配置对象,包含 requestInit 和 eventSourceInit 两部分:
151
- * - requestInit:fetch 请求的初始化配置,自动带上认证头。
152
- * - eventSourceInit:自定义 fetch 方法,确保 SSE 连接也带上认证头。
153
- */
154
- declare const sseOptions: (token: string, sessionId?: string) => {
155
- requestInit: {
156
- headers: {
157
- Authorization: string;
158
- "sse-session-id": string;
159
- };
160
- };
161
- eventSourceInit: {
162
- fetch: (input: string | URL, init?: RequestInit) => Promise<Response>;
163
- };
164
- };
165
- /**
166
- * 生成 StreamableHTTPServerTransport 构造函数所需的第二个可选参数(传输配置)。
167
- * 用于为 Streamable HTTP 连接和 HTTP 请求统一设置认证头(Authorization)。
168
- *
169
- * @param token - 用于认证的 Bearer Token。
170
- * @param sessionId - 可选的 sessionId,用于标识会话。
171
- * @returns 返回传输配置对象,包含以下内容:
172
- * - requestInit:fetch 请求的初始化配置,自动带上认证头,并设置 Streamable HTTP 代理的会话 ID。
173
- */
174
- declare const streamOptions: (token: string, sessionId?: string) => {
175
- requestInit: {
176
- headers: {
177
- Authorization: string;
178
- "stream-session-id": string;
179
- };
180
- };
181
- };
182
-
183
- /**
184
- * 兼容安全策略的 UUID 生成方法,支持浏览器和 Node.js 环境
185
- *
186
- * @returns 返回一个 UUID 字符串
187
- */
188
- declare const generateUUID: () => string;
189
-
190
- export { MessageChannelClientTransport, MessageChannelServerTransport, MessageChannelTransport, createSseProxy, createStreamProxy, createTransportPair, generateUUID, sseOptions, streamOptions };
191
- export type { ClientProxyOption };