xhs-mcp 0.6.0 → 0.7.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/README.en.md +20 -33
- package/README.md +24 -30
- package/dist/cli/{xhs-cli.d.ts → cli.d.ts} +1 -1
- package/dist/cli/cli.d.ts.map +1 -0
- package/dist/cli/{xhs-cli.js → cli.js} +15 -11
- package/dist/cli/cli.js.map +1 -0
- package/dist/lib/browser/browser-pool.service.d.ts +108 -0
- package/dist/lib/browser/browser-pool.service.d.ts.map +1 -0
- package/dist/lib/browser/browser-pool.service.js +386 -0
- package/dist/lib/browser/browser-pool.service.js.map +1 -0
- package/dist/lib/browser/browser.manager.d.ts +22 -2
- package/dist/lib/browser/browser.manager.d.ts.map +1 -1
- package/dist/lib/browser/browser.manager.js +107 -3
- package/dist/lib/browser/browser.manager.js.map +1 -1
- package/dist/lib/browser/browser.types.d.ts +29 -1
- package/dist/lib/browser/browser.types.d.ts.map +1 -1
- package/dist/lib/browser/index.d.ts +1 -0
- package/dist/lib/browser/index.d.ts.map +1 -1
- package/dist/lib/browser/index.js +1 -0
- package/dist/lib/browser/index.js.map +1 -1
- package/dist/server/http.server.d.ts.map +1 -1
- package/dist/server/http.server.js +4 -4
- package/dist/server/http.server.js.map +1 -1
- package/dist/utils/xhs.utils.d.ts.map +1 -1
- package/dist/utils/xhs.utils.js +1 -1
- package/dist/utils/xhs.utils.js.map +1 -1
- package/docs/PUBLISH_GUIDE.md +141 -0
- package/package.json +29 -10
- package/dist/cli/xhs-cli.d.ts.map +0 -1
- package/dist/cli/xhs-cli.js.map +0 -1
package/README.en.md
CHANGED
|
@@ -1,14 +1,8 @@
|
|
|
1
|
-
---
|
|
2
|
-
noteId: "de25fbc0988c11f0a5c2e10de4f705bc"
|
|
3
|
-
tags: []
|
|
4
|
-
|
|
5
|
-
---
|
|
6
|
-
|
|
7
1
|
# xhs-mcp
|
|
8
2
|
|
|
9
3
|
English | [简体中文](./README.md)
|
|
10
4
|
|
|
11
|
-
Unified CLI `xhs-
|
|
5
|
+
Unified CLI `xhs-mcp` with built-in MCP server subcommand. Automate XiaoHongShu (xiaohongshu.com) with Puppeteer: login, publishing, search, feed discovery, and commenting via MCP and CLI.
|
|
12
6
|
|
|
13
7
|
[](https://www.npmjs.com/package/xhs-mcp)
|
|
14
8
|
[](https://www.npmjs.com/package/xhs-mcp)
|
|
@@ -17,8 +11,8 @@ Unified CLI `xhs-cli` with built-in MCP server subcommand. Automate XiaoHongShu
|
|
|
17
11
|
## 📦 NPM
|
|
18
12
|
|
|
19
13
|
- Package: `xhs-mcp`
|
|
20
|
-
- Run CLI: `npx xhs-
|
|
21
|
-
- Start MCP: `npx xhs-
|
|
14
|
+
- Run CLI: `npx xhs-mcp <subcommand>`
|
|
15
|
+
- Start MCP: `npx xhs-mcp mcp [--mode stdio|http] [--port 3000]`
|
|
22
16
|
|
|
23
17
|
## ✨ Features
|
|
24
18
|
|
|
@@ -39,16 +33,16 @@ Unified CLI `xhs-cli` with built-in MCP server subcommand. Automate XiaoHongShu
|
|
|
39
33
|
## 🚀 Quick Start (MCP)
|
|
40
34
|
|
|
41
35
|
```bash
|
|
42
|
-
npx xhs-
|
|
36
|
+
npx xhs-mcp mcp
|
|
43
37
|
|
|
44
38
|
# Debug logs
|
|
45
|
-
XHS_ENABLE_LOGGING=true npx xhs-
|
|
39
|
+
XHS_ENABLE_LOGGING=true npx xhs-mcp mcp
|
|
46
40
|
```
|
|
47
41
|
|
|
48
42
|
> First run tip: if Puppeteer browsers are not installed yet, run
|
|
49
43
|
>
|
|
50
44
|
> ```bash
|
|
51
|
-
> npx xhs-
|
|
45
|
+
> npx xhs-mcp browser # auto-check and install Chromium, shows executable path
|
|
52
46
|
> # or
|
|
53
47
|
> npx puppeteer browsers install chrome
|
|
54
48
|
> ```
|
|
@@ -68,24 +62,24 @@ XHS_ENABLE_LOGGING=true npx xhs-cli mcp
|
|
|
68
62
|
Verify MCP connection:
|
|
69
63
|
|
|
70
64
|
```bash
|
|
71
|
-
echo '{"jsonrpc": "2.0", "id": 1, "method": "tools/list"}' | npx xhs-
|
|
65
|
+
echo '{"jsonrpc": "2.0", "id": 1, "method": "tools/list"}' | npx xhs-mcp mcp
|
|
72
66
|
```
|
|
73
67
|
|
|
74
68
|
## 🧰 CLI
|
|
75
69
|
|
|
76
70
|
```bash
|
|
77
|
-
npx xhs-
|
|
78
|
-
npx xhs-
|
|
79
|
-
npx xhs-
|
|
80
|
-
npx xhs-
|
|
81
|
-
npx xhs-
|
|
82
|
-
npx xhs-
|
|
83
|
-
npx xhs-
|
|
84
|
-
npx xhs-
|
|
85
|
-
npx xhs-
|
|
86
|
-
npx xhs-
|
|
87
|
-
npx xhs-
|
|
88
|
-
npx xhs-
|
|
71
|
+
npx xhs-mcp login --timeout 120
|
|
72
|
+
npx xhs-mcp logout
|
|
73
|
+
npx xhs-mcp status
|
|
74
|
+
npx xhs-mcp browser # check and install Chromium, shows executable path
|
|
75
|
+
npx xhs-mcp feeds
|
|
76
|
+
npx xhs-mcp search -k keyword
|
|
77
|
+
npx xhs-mcp note-detail --feed-id <id> --xsec-token <token>
|
|
78
|
+
npx xhs-mcp comment --feed-id <id> --xsec-token <token> -n "Nice!"
|
|
79
|
+
npx xhs-mcp publish --type image --title Title --content Content -m path1.jpg,path2.png --tags a,b
|
|
80
|
+
npx xhs-mcp publish --type video --title Title --content Content -m video.mp4 --tags a,b
|
|
81
|
+
npx xhs-mcp tools [--detailed] [--json]
|
|
82
|
+
npx xhs-mcp mcp --mode http --port 3000
|
|
89
83
|
```
|
|
90
84
|
|
|
91
85
|
## 🔧 Client Integration (Cursor)
|
|
@@ -97,7 +91,7 @@ npx xhs-cli status
|
|
|
97
91
|
"mcpServers": {
|
|
98
92
|
"xhs-mcp": {
|
|
99
93
|
"command": "npx",
|
|
100
|
-
"args": ["xhs-
|
|
94
|
+
"args": ["xhs-mcp", "mcp"],
|
|
101
95
|
"env": { "XHS_ENABLE_LOGGING": "true" }
|
|
102
96
|
}
|
|
103
97
|
}
|
|
@@ -113,10 +107,3 @@ npx xhs-cli status
|
|
|
113
107
|
## 🙏 Acknowledgments
|
|
114
108
|
|
|
115
109
|
Based on and extended from [xiaohongshu-mcp](https://github.com/xpzouying/xiaohongshu-mcp) (refactored to TypeScript, improved MCP implementation, log cleanup, published to NPM).
|
|
116
|
-
|
|
117
|
-
## 📚 Docs
|
|
118
|
-
|
|
119
|
-
- HTTP Transports: `docs/HTTP_TRANSPORTS.md`
|
|
120
|
-
- Publish Features: `docs/PUBLISH_FEATURES.md`
|
|
121
|
-
- Architecture Design: `docs/PUBLISH_ARCHITECTURE.md`
|
|
122
|
-
|
package/README.md
CHANGED
|
@@ -2,7 +2,7 @@
|
|
|
2
2
|
|
|
3
3
|
简体中文 | [English](./README.en.md)
|
|
4
4
|
|
|
5
|
-
`xhs-mcp` 提供统一的命令行入口 `xhs-
|
|
5
|
+
`xhs-mcp` 提供统一的命令行入口 `xhs-mcp`,并内置 MCP 服务器子命令。用于小红书(xiaohongshu.com)的 Model Context Protocol(MCP)服务器与 CLI 工具,支持登录、发布、搜索、推荐等自动化能力(基于 Puppeteer)。
|
|
6
6
|
|
|
7
7
|
[](https://www.npmjs.com/package/xhs-mcp)
|
|
8
8
|
[](https://www.npmjs.com/package/xhs-mcp)
|
|
@@ -11,8 +11,8 @@
|
|
|
11
11
|
## 📦 NPM 信息
|
|
12
12
|
|
|
13
13
|
- 包名: `xhs-mcp`
|
|
14
|
-
- 运行 CLI(推荐): `npx xhs-
|
|
15
|
-
- 启动 MCP:`npx xhs-
|
|
14
|
+
- 运行 CLI(推荐): `npx xhs-mcp <subcommand>`
|
|
15
|
+
- 启动 MCP:`npx xhs-mcp mcp [--mode stdio|http] [--port 3000]`
|
|
16
16
|
|
|
17
17
|
## ✨ 功能
|
|
18
18
|
|
|
@@ -35,16 +35,16 @@
|
|
|
35
35
|
### Stdio 模式(默认)
|
|
36
36
|
|
|
37
37
|
```bash
|
|
38
|
-
npx xhs-
|
|
38
|
+
npx xhs-mcp mcp
|
|
39
39
|
|
|
40
40
|
# 调试日志
|
|
41
|
-
XHS_ENABLE_LOGGING=true npx xhs-
|
|
41
|
+
XHS_ENABLE_LOGGING=true npx xhs-mcp mcp
|
|
42
42
|
```
|
|
43
43
|
|
|
44
44
|
> 首次运行提示:如果未安装 Puppeteer 浏览器,先执行
|
|
45
45
|
>
|
|
46
46
|
> ```bash
|
|
47
|
-
> npx xhs-
|
|
47
|
+
> npx xhs-mcp browser # 自动检查并安装 Chromium,显示可执行路径
|
|
48
48
|
> # 或
|
|
49
49
|
> npx puppeteer browsers install chrome
|
|
50
50
|
> ```
|
|
@@ -64,20 +64,20 @@ XHS_ENABLE_LOGGING=true npx xhs-cli mcp
|
|
|
64
64
|
验证 MCP 连接:
|
|
65
65
|
|
|
66
66
|
```bash
|
|
67
|
-
echo '{"jsonrpc": "2.0", "id": 1, "method": "tools/list"}' | npx xhs-
|
|
67
|
+
echo '{"jsonrpc": "2.0", "id": 1, "method": "tools/list"}' | npx xhs-mcp mcp
|
|
68
68
|
```
|
|
69
69
|
|
|
70
70
|
### HTTP 模式
|
|
71
71
|
|
|
72
72
|
```bash
|
|
73
73
|
# 启动 HTTP 服务器(默认端口 3000)
|
|
74
|
-
npx xhs-
|
|
74
|
+
npx xhs-mcp mcp --mode http
|
|
75
75
|
|
|
76
76
|
# 指定端口
|
|
77
|
-
npx xhs-
|
|
77
|
+
npx xhs-mcp mcp --mode http --port 8080
|
|
78
78
|
|
|
79
79
|
# 调试模式
|
|
80
|
-
XHS_ENABLE_LOGGING=true npx xhs-
|
|
80
|
+
XHS_ENABLE_LOGGING=true npx xhs-mcp mcp --mode http
|
|
81
81
|
```
|
|
82
82
|
|
|
83
83
|
HTTP 服务器支持:
|
|
@@ -91,30 +91,30 @@ HTTP 服务器支持:
|
|
|
91
91
|
|
|
92
92
|
```bash
|
|
93
93
|
# 认证
|
|
94
|
-
npx xhs-
|
|
95
|
-
npx xhs-
|
|
96
|
-
npx xhs-
|
|
94
|
+
npx xhs-mcp login --timeout 120
|
|
95
|
+
npx xhs-mcp logout
|
|
96
|
+
npx xhs-mcp status
|
|
97
97
|
|
|
98
98
|
# 浏览器依赖
|
|
99
|
-
npx xhs-
|
|
99
|
+
npx xhs-mcp browser [--with-deps] # 检查并安装 Chromium,显示可执行路径
|
|
100
100
|
|
|
101
101
|
# 发现与检索
|
|
102
|
-
npx xhs-
|
|
103
|
-
npx xhs-
|
|
104
|
-
npx xhs-
|
|
102
|
+
npx xhs-mcp feeds [-b /path/to/chromium]
|
|
103
|
+
npx xhs-mcp search -k 关键字 [-b /path/to/chromium]
|
|
104
|
+
npx xhs-mcp note-detail --feed-id <id> --xsec-token <token> [-b /path/to/chromium]
|
|
105
105
|
|
|
106
106
|
# 互动
|
|
107
|
-
npx xhs-
|
|
107
|
+
npx xhs-mcp comment --feed-id <id> --xsec-token <token> -n "Nice!" [-b /path/to/chromium]
|
|
108
108
|
|
|
109
109
|
# 发布
|
|
110
|
-
npx xhs-
|
|
111
|
-
npx xhs-
|
|
110
|
+
npx xhs-mcp publish --type image --title 标题 --content 内容 -m path1.jpg,path2.png --tags a,b [-b /path/to/chromium]
|
|
111
|
+
npx xhs-mcp publish --type video --title 视频标题 --content 视频描述 -m path/to/video.mp4 --tags a,b [-b /path/to/chromium]
|
|
112
112
|
|
|
113
113
|
# 查看可用工具
|
|
114
|
-
npx xhs-
|
|
114
|
+
npx xhs-mcp tools [--detailed] [--json]
|
|
115
115
|
|
|
116
116
|
# 启动 MCP
|
|
117
|
-
npx xhs-
|
|
117
|
+
npx xhs-mcp mcp [--mode stdio|http] [--port 3000]
|
|
118
118
|
```
|
|
119
119
|
|
|
120
120
|
## 🔧 客户端接入(Cursor)
|
|
@@ -128,7 +128,7 @@ npx xhs-cli mcp [--mode stdio|http] [--port 3000]
|
|
|
128
128
|
"mcpServers": {
|
|
129
129
|
"xhs-mcp": {
|
|
130
130
|
"command": "npx",
|
|
131
|
-
"args": ["xhs-
|
|
131
|
+
"args": ["xhs-mcp", "mcp"],
|
|
132
132
|
"env": { "XHS_ENABLE_LOGGING": "true" }
|
|
133
133
|
}
|
|
134
134
|
}
|
|
@@ -144,7 +144,7 @@ npx xhs-cli mcp [--mode stdio|http] [--port 3000]
|
|
|
144
144
|
"mcpServers": {
|
|
145
145
|
"xhs-mcp-http": {
|
|
146
146
|
"command": "npx",
|
|
147
|
-
"args": ["xhs-
|
|
147
|
+
"args": ["xhs-mcp", "mcp", "--mode", "http", "--port", "3000"],
|
|
148
148
|
"env": { "XHS_ENABLE_LOGGING": "true" }
|
|
149
149
|
}
|
|
150
150
|
}
|
|
@@ -172,9 +172,3 @@ npx xhs-cli mcp [--mode stdio|http] [--port 3000]
|
|
|
172
172
|
## 🙏 致谢
|
|
173
173
|
|
|
174
174
|
基于 [xiaohongshu-mcp](https://github.com/xpzouying/xiaohongshu-mcp) 重构与扩展(TypeScript、Puppeteer、MCP 优化、日志清理、NPM 发布)。
|
|
175
|
-
|
|
176
|
-
## 📚 文档
|
|
177
|
-
|
|
178
|
-
- HTTP Transports:`docs/HTTP_TRANSPORTS.md`
|
|
179
|
-
- 发布功能:`docs/PUBLISH_FEATURES.md`
|
|
180
|
-
- 架构设计:`docs/PUBLISH_ARCHITECTURE.md`
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"cli.d.ts","sourceRoot":"","sources":["../../src/cli/cli.ts"],"names":[],"mappings":";AAEA;;GAEG"}
|
|
@@ -21,7 +21,7 @@ async function main() {
|
|
|
21
21
|
.replace(/[\u2500-\u257F]+/g, '') // box-drawing characters
|
|
22
22
|
.trim();
|
|
23
23
|
if (/Executable doesn't exist|puppeteer browsers install/i.test(raw)) {
|
|
24
|
-
return 'Chromium is not installed. Run: npx puppeteer browsers install chrome or xhs-
|
|
24
|
+
return 'Chromium is not installed. Run: npx puppeteer browsers install chrome or xhs-mcp browser';
|
|
25
25
|
}
|
|
26
26
|
return condensed || (error instanceof Error ? error.message : String(error));
|
|
27
27
|
}
|
|
@@ -45,7 +45,7 @@ async function main() {
|
|
|
45
45
|
writeJson(payload, 1);
|
|
46
46
|
}
|
|
47
47
|
program
|
|
48
|
-
.name('xhs-
|
|
48
|
+
.name('xhs-mcp')
|
|
49
49
|
.description('XiaoHongShu CLI with subcommands')
|
|
50
50
|
.option('--compact', 'Output compact one-line JSON (no pretty print)')
|
|
51
51
|
.showHelpAfterError();
|
|
@@ -113,7 +113,7 @@ async function main() {
|
|
|
113
113
|
if (browserInfo.canLaunch) {
|
|
114
114
|
printSuccess({
|
|
115
115
|
installed: true,
|
|
116
|
-
executablePath: browserInfo.executablePath
|
|
116
|
+
executablePath: browserInfo.executablePath,
|
|
117
117
|
}, 'Chromium is ready');
|
|
118
118
|
return;
|
|
119
119
|
}
|
|
@@ -126,7 +126,7 @@ async function main() {
|
|
|
126
126
|
printSuccess({
|
|
127
127
|
installed: true,
|
|
128
128
|
executablePath: afterInstallInfo.executablePath,
|
|
129
|
-
exitCode: result.status ?? null
|
|
129
|
+
exitCode: result.status ?? null,
|
|
130
130
|
}, 'Chromium installed and ready');
|
|
131
131
|
}
|
|
132
132
|
else {
|
|
@@ -216,7 +216,10 @@ async function main() {
|
|
|
216
216
|
printError(new Error('Type must be "image" or "video"'));
|
|
217
217
|
return;
|
|
218
218
|
}
|
|
219
|
-
const mediaPaths = opts.media
|
|
219
|
+
const mediaPaths = opts.media
|
|
220
|
+
.split(',')
|
|
221
|
+
.map((s) => s.trim())
|
|
222
|
+
.filter(Boolean);
|
|
220
223
|
const result = await publishService.publishContent(opts.type, opts.title, opts.content, mediaPaths, opts.tags, opts.browserPath);
|
|
221
224
|
printSuccess(result);
|
|
222
225
|
}
|
|
@@ -260,9 +263,9 @@ async function main() {
|
|
|
260
263
|
console.log(JSON.stringify(toolSchemas, null, 2));
|
|
261
264
|
}
|
|
262
265
|
else {
|
|
263
|
-
const toolNames = toolSchemas.map(tool => ({
|
|
266
|
+
const toolNames = toolSchemas.map((tool) => ({
|
|
264
267
|
name: tool.name,
|
|
265
|
-
description: tool.description
|
|
268
|
+
description: tool.description,
|
|
266
269
|
}));
|
|
267
270
|
console.log(JSON.stringify(toolNames, null, 2));
|
|
268
271
|
}
|
|
@@ -273,13 +276,14 @@ async function main() {
|
|
|
273
276
|
console.log(`${index + 1}. ${tool.name}`);
|
|
274
277
|
console.log(` ${tool.description}`);
|
|
275
278
|
if (opts.detailed) {
|
|
276
|
-
const required = tool.inputSchema.required
|
|
277
|
-
const properties = tool.inputSchema.properties
|
|
279
|
+
const required = tool.inputSchema.required ?? [];
|
|
280
|
+
const properties = tool.inputSchema.properties ?? {};
|
|
278
281
|
if (Object.keys(properties).length > 0) {
|
|
279
282
|
console.log(' Parameters:');
|
|
280
283
|
Object.entries(properties).forEach(([key, prop]) => {
|
|
281
284
|
const requiredMark = required.includes(key) ? ' (required)' : ' (optional)';
|
|
282
|
-
|
|
285
|
+
const propDesc = prop.description;
|
|
286
|
+
console.log(` - ${key}: ${propDesc ?? 'No description'}${requiredMark}`);
|
|
283
287
|
});
|
|
284
288
|
}
|
|
285
289
|
}
|
|
@@ -297,4 +301,4 @@ async function main() {
|
|
|
297
301
|
program.parseAsync(process.argv);
|
|
298
302
|
}
|
|
299
303
|
main();
|
|
300
|
-
//# sourceMappingURL=
|
|
304
|
+
//# sourceMappingURL=cli.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"cli.js","sourceRoot":"","sources":["../../src/cli/cli.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,108 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Browser Pool Service for XHS Operations
|
|
3
|
+
* Manages browser instance lifecycle with pooling, health monitoring, and automatic cleanup
|
|
4
|
+
*/
|
|
5
|
+
import { Browser, BrowserContext } from 'puppeteer';
|
|
6
|
+
import { Config } from '../shared/types.js';
|
|
7
|
+
export interface ManagedBrowser {
|
|
8
|
+
browser: Browser;
|
|
9
|
+
context: BrowserContext;
|
|
10
|
+
id: string;
|
|
11
|
+
createdAt: Date;
|
|
12
|
+
lastUsed: Date;
|
|
13
|
+
isAvailable: boolean;
|
|
14
|
+
isHealthy: boolean;
|
|
15
|
+
usageCount: number;
|
|
16
|
+
}
|
|
17
|
+
export interface BrowserPoolStats {
|
|
18
|
+
totalInstances: number;
|
|
19
|
+
availableInstances: number;
|
|
20
|
+
busyInstances: number;
|
|
21
|
+
unhealthyInstances: number;
|
|
22
|
+
totalUsage: number;
|
|
23
|
+
averageAge: number;
|
|
24
|
+
oldestInstance: Date | null;
|
|
25
|
+
newestInstance: Date | null;
|
|
26
|
+
}
|
|
27
|
+
export interface BrowserPoolOptions {
|
|
28
|
+
minInstances?: number;
|
|
29
|
+
maxInstances?: number;
|
|
30
|
+
idleTimeout?: number;
|
|
31
|
+
maxAge?: number;
|
|
32
|
+
healthCheckInterval?: number;
|
|
33
|
+
maxUsageCount?: number;
|
|
34
|
+
}
|
|
35
|
+
export declare class BrowserPoolService {
|
|
36
|
+
private config;
|
|
37
|
+
private pool;
|
|
38
|
+
private options;
|
|
39
|
+
private healthCheckTimer;
|
|
40
|
+
private cleanupTimer;
|
|
41
|
+
private isShuttingDown;
|
|
42
|
+
constructor(config?: Config, options?: BrowserPoolOptions);
|
|
43
|
+
/**
|
|
44
|
+
* Acquire a browser instance from the pool
|
|
45
|
+
*/
|
|
46
|
+
acquireBrowser(options?: {
|
|
47
|
+
timeout?: number;
|
|
48
|
+
}): Promise<ManagedBrowser>;
|
|
49
|
+
/**
|
|
50
|
+
* Release a browser instance back to the pool
|
|
51
|
+
*/
|
|
52
|
+
releaseBrowser(browser: ManagedBrowser): Promise<void>;
|
|
53
|
+
/**
|
|
54
|
+
* Get current pool statistics
|
|
55
|
+
*/
|
|
56
|
+
getPoolStats(): BrowserPoolStats;
|
|
57
|
+
/**
|
|
58
|
+
* Cleanup and shutdown the browser pool
|
|
59
|
+
*/
|
|
60
|
+
cleanup(): Promise<void>;
|
|
61
|
+
/**
|
|
62
|
+
* Create a new browser instance
|
|
63
|
+
*/
|
|
64
|
+
private createBrowserInstance;
|
|
65
|
+
/**
|
|
66
|
+
* Find an available healthy browser in the pool
|
|
67
|
+
*/
|
|
68
|
+
private findAvailableBrowser;
|
|
69
|
+
/**
|
|
70
|
+
* Check if a browser should be retired
|
|
71
|
+
*/
|
|
72
|
+
private shouldRetireBrowser;
|
|
73
|
+
/**
|
|
74
|
+
* Perform health check on a browser instance
|
|
75
|
+
*/
|
|
76
|
+
private checkBrowserHealth;
|
|
77
|
+
/**
|
|
78
|
+
* Remove a browser from the pool
|
|
79
|
+
*/
|
|
80
|
+
private removeBrowserFromPool;
|
|
81
|
+
/**
|
|
82
|
+
* Handle browser disconnection
|
|
83
|
+
*/
|
|
84
|
+
private handleBrowserDisconnection;
|
|
85
|
+
/**
|
|
86
|
+
* Ensure minimum number of instances are available
|
|
87
|
+
*/
|
|
88
|
+
private ensureMinimumInstances;
|
|
89
|
+
/**
|
|
90
|
+
* Get count of available browsers
|
|
91
|
+
*/
|
|
92
|
+
private getAvailableCount;
|
|
93
|
+
/**
|
|
94
|
+
* Start health monitoring
|
|
95
|
+
*/
|
|
96
|
+
private startHealthMonitoring;
|
|
97
|
+
/**
|
|
98
|
+
* Start cleanup monitoring for idle browsers
|
|
99
|
+
*/
|
|
100
|
+
private startCleanupMonitoring;
|
|
101
|
+
/**
|
|
102
|
+
* Generate unique browser ID
|
|
103
|
+
*/
|
|
104
|
+
private generateBrowserId;
|
|
105
|
+
}
|
|
106
|
+
export declare function getBrowserPool(): BrowserPoolService;
|
|
107
|
+
export declare function cleanupBrowserPool(): Promise<void>;
|
|
108
|
+
//# sourceMappingURL=browser-pool.service.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"browser-pool.service.d.ts","sourceRoot":"","sources":["../../../src/lib/browser/browser-pool.service.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,OAAkB,EAAE,OAAO,EAAE,cAAc,EAAQ,MAAM,WAAW,CAAC;AACrE,OAAO,EAAE,MAAM,EAAE,MAAM,oBAAoB,CAAC;AAM5C,MAAM,WAAW,cAAc;IAC7B,OAAO,EAAE,OAAO,CAAC;IACjB,OAAO,EAAE,cAAc,CAAC;IACxB,EAAE,EAAE,MAAM,CAAC;IACX,SAAS,EAAE,IAAI,CAAC;IAChB,QAAQ,EAAE,IAAI,CAAC;IACf,WAAW,EAAE,OAAO,CAAC;IACrB,SAAS,EAAE,OAAO,CAAC;IACnB,UAAU,EAAE,MAAM,CAAC;CACpB;AAED,MAAM,WAAW,gBAAgB;IAC/B,cAAc,EAAE,MAAM,CAAC;IACvB,kBAAkB,EAAE,MAAM,CAAC;IAC3B,aAAa,EAAE,MAAM,CAAC;IACtB,kBAAkB,EAAE,MAAM,CAAC;IAC3B,UAAU,EAAE,MAAM,CAAC;IACnB,UAAU,EAAE,MAAM,CAAC;IACnB,cAAc,EAAE,IAAI,GAAG,IAAI,CAAC;IAC5B,cAAc,EAAE,IAAI,GAAG,IAAI,CAAC;CAC7B;AAED,MAAM,WAAW,kBAAkB;IACjC,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,mBAAmB,CAAC,EAAE,MAAM,CAAC;IAC7B,aAAa,CAAC,EAAE,MAAM,CAAC;CACxB;AAED,qBAAa,kBAAkB;IAC7B,OAAO,CAAC,MAAM,CAAS;IACvB,OAAO,CAAC,IAAI,CAA0C;IACtD,OAAO,CAAC,OAAO,CAA+B;IAC9C,OAAO,CAAC,gBAAgB,CAA+B;IACvD,OAAO,CAAC,YAAY,CAA+B;IACnD,OAAO,CAAC,cAAc,CAAS;gBAEnB,MAAM,CAAC,EAAE,MAAM,EAAE,OAAO,CAAC,EAAE,kBAAkB;IAiBzD;;OAEG;IACG,cAAc,CAAC,OAAO,CAAC,EAAE;QAAE,OAAO,CAAC,EAAE,MAAM,CAAA;KAAE,GAAG,OAAO,CAAC,cAAc,CAAC;IA8C7E;;OAEG;IACG,cAAc,CAAC,OAAO,EAAE,cAAc,GAAG,OAAO,CAAC,IAAI,CAAC;IAkC5D;;OAEG;IACH,YAAY,IAAI,gBAAgB;IAkChC;;OAEG;IACG,OAAO,IAAI,OAAO,CAAC,IAAI,CAAC;IA8B9B;;OAEG;YACW,qBAAqB;IAqDnC;;OAEG;IACH,OAAO,CAAC,oBAAoB;IAS5B;;OAEG;IACH,OAAO,CAAC,mBAAmB;IAc3B;;OAEG;YACW,kBAAkB;IAkBhC;;OAEG;YACW,qBAAqB;IAgBnC;;OAEG;YACW,0BAA0B;IAYxC;;OAEG;YACW,sBAAsB;IAwBpC;;OAEG;IACH,OAAO,CAAC,iBAAiB;IAKzB;;OAEG;IACH,OAAO,CAAC,qBAAqB;IAiC7B;;OAEG;IACH,OAAO,CAAC,sBAAsB;IAqC9B;;OAEG;IACH,OAAO,CAAC,iBAAiB;CAG1B;AAKD,wBAAgB,cAAc,IAAI,kBAAkB,CAKnD;AAED,wBAAsB,kBAAkB,IAAI,OAAO,CAAC,IAAI,CAAC,CAKxD"}
|