@agent-infra/browser 0.1.6 → 0.2.0-alpha.4
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 +35 -52
- package/README.zh-CN.md +57 -0
- package/dist/actions/index.d.ts +3 -0
- package/dist/actions/index.d.ts.map +1 -0
- package/dist/actions/index.js +46 -0
- package/dist/actions/index.js.map +1 -0
- package/dist/actions/index.mjs +7 -0
- package/dist/actions/key-map.d.ts +28 -0
- package/dist/actions/key-map.d.ts.map +1 -0
- package/dist/actions/key-map.js +409 -0
- package/dist/actions/key-map.js.map +1 -0
- package/dist/actions/key-map.mjs +369 -0
- package/dist/actions/key-map.mjs.map +1 -0
- package/dist/actions/keyboard.d.ts +21 -0
- package/dist/actions/keyboard.d.ts.map +1 -0
- package/dist/actions/keyboard.js +196 -0
- package/dist/actions/keyboard.js.map +1 -0
- package/dist/actions/keyboard.mjs +152 -0
- package/dist/actions/keyboard.mjs.map +1 -0
- package/dist/actions/keyboard.test.d.ts +2 -0
- package/dist/actions/keyboard.test.d.ts.map +1 -0
- package/dist/actions/mouse.d.ts +19 -0
- package/dist/actions/mouse.d.ts.map +1 -0
- package/dist/actions/mouse.js +173 -0
- package/dist/actions/mouse.js.map +1 -0
- package/dist/actions/mouse.mjs +136 -0
- package/dist/actions/mouse.mjs.map +1 -0
- package/dist/browser/base.d.ts +47 -0
- package/dist/browser/base.d.ts.map +1 -0
- package/dist/browser/base.js +156 -0
- package/dist/browser/base.js.map +1 -0
- package/dist/browser/base.mjs +122 -0
- package/dist/browser/base.mjs.map +1 -0
- package/dist/browser/browser.d.ts +23 -0
- package/dist/browser/browser.d.ts.map +1 -0
- package/dist/browser/browser.js +183 -0
- package/dist/browser/browser.js.map +1 -0
- package/dist/browser/browser.mjs +149 -0
- package/dist/browser/browser.mjs.map +1 -0
- package/dist/env.d.ts +4 -0
- package/dist/env.d.ts.map +1 -0
- package/dist/env.js +96 -0
- package/dist/env.js.map +1 -0
- package/dist/env.mjs +62 -0
- package/dist/env.mjs.map +1 -0
- package/dist/index.node.d.ts +7 -0
- package/dist/index.node.d.ts.map +1 -0
- package/dist/index.node.js +106 -0
- package/dist/index.node.js.map +1 -0
- package/dist/index.node.mjs +10 -0
- package/dist/index.web.d.ts +7 -0
- package/dist/index.web.d.ts.map +1 -0
- package/dist/{index.js → index.web.js} +33 -20
- package/dist/index.web.js.map +1 -0
- package/dist/index.web.mjs +10 -0
- package/dist/injected-script/index.d.ts +3 -0
- package/dist/injected-script/index.d.ts.map +1 -0
- package/dist/injected-script/index.js +46 -0
- package/dist/injected-script/index.js.map +1 -0
- package/dist/injected-script/index.mjs +7 -0
- package/dist/injected-script/visibility.d.ts +2 -0
- package/dist/injected-script/visibility.d.ts.map +1 -0
- package/dist/injected-script/visibility.js +66 -0
- package/dist/injected-script/visibility.js.map +1 -0
- package/dist/injected-script/visibility.mjs +32 -0
- package/dist/injected-script/visibility.mjs.map +1 -0
- package/dist/injected-script/webdriver.d.ts +2 -0
- package/dist/injected-script/webdriver.d.ts.map +1 -0
- package/dist/injected-script/webdriver.js +71 -0
- package/dist/injected-script/webdriver.js.map +1 -0
- package/dist/injected-script/webdriver.mjs +37 -0
- package/dist/injected-script/webdriver.mjs.map +1 -0
- package/dist/polyfills/index.d.ts +2 -0
- package/dist/polyfills/index.d.ts.map +1 -0
- package/dist/polyfills/index.js +66 -0
- package/dist/polyfills/index.js.map +1 -0
- package/dist/polyfills/index.mjs +5 -0
- package/dist/polyfills/withResolvers.d.ts +2 -0
- package/dist/polyfills/withResolvers.d.ts.map +1 -0
- package/dist/polyfills/withResolvers.js +37 -0
- package/dist/polyfills/withResolvers.js.map +1 -0
- package/dist/polyfills/withResolvers.mjs +19 -0
- package/dist/polyfills/withResolvers.mjs.map +1 -0
- package/dist/tabs/dialog.d.ts +14 -0
- package/dist/tabs/dialog.d.ts.map +1 -0
- package/dist/tabs/dialog.js +175 -0
- package/dist/tabs/dialog.js.map +1 -0
- package/dist/tabs/dialog.mjs +141 -0
- package/dist/tabs/dialog.mjs.map +1 -0
- package/dist/tabs/index.d.ts +3 -0
- package/dist/tabs/index.d.ts.map +1 -0
- package/dist/tabs/index.js +46 -0
- package/dist/tabs/index.js.map +1 -0
- package/dist/tabs/index.mjs +7 -0
- package/dist/tabs/tab.d.ts +50 -0
- package/dist/tabs/tab.d.ts.map +1 -0
- package/dist/tabs/tab.js +579 -0
- package/dist/tabs/tab.js.map +1 -0
- package/dist/tabs/tab.mjs +545 -0
- package/dist/tabs/tab.mjs.map +1 -0
- package/dist/tabs/tabs.d.ts +21 -0
- package/dist/tabs/tabs.d.ts.map +1 -0
- package/dist/tabs/tabs.js +458 -0
- package/dist/tabs/tabs.js.map +1 -0
- package/dist/tabs/tabs.mjs +424 -0
- package/dist/tabs/tabs.mjs.map +1 -0
- package/dist/types/actions.d.ts +26 -0
- package/dist/types/actions.d.ts.map +1 -0
- package/dist/types/actions.js +24 -0
- package/dist/types/actions.js.map +1 -0
- package/dist/types/browser.d.ts +7 -0
- package/dist/types/browser.d.ts.map +1 -0
- package/dist/types/browser.js +24 -0
- package/dist/types/browser.js.map +1 -0
- package/dist/types/browser.mjs +4 -0
- package/dist/types/dialog.d.ts +7 -0
- package/dist/types/dialog.d.ts.map +1 -0
- package/dist/types/dialog.js +24 -0
- package/dist/types/dialog.js.map +1 -0
- package/dist/types/dialog.mjs +4 -0
- package/dist/types/env.d.ts +8 -0
- package/dist/types/env.d.ts.map +1 -0
- package/dist/{types.js → types/env.js} +1 -1
- package/dist/types/env.js.map +1 -0
- package/dist/types/env.mjs +4 -0
- package/dist/types/index.d.ts +6 -0
- package/dist/types/index.d.ts.map +1 -0
- package/dist/types/index.js +102 -0
- package/dist/types/index.js.map +1 -0
- package/dist/types/index.mjs +9 -0
- package/dist/types/tabs.d.ts +98 -0
- package/dist/types/tabs.d.ts.map +1 -0
- package/dist/types/tabs.js +48 -0
- package/dist/types/tabs.js.map +1 -0
- package/dist/types/tabs.mjs +14 -0
- package/dist/types/tabs.mjs.map +1 -0
- package/dist/utils/iife.d.ts +2 -0
- package/dist/utils/iife.d.ts.map +1 -0
- package/dist/utils/iife.js +48 -0
- package/dist/utils/iife.js.map +1 -0
- package/dist/utils/iife.mjs +14 -0
- package/dist/utils/iife.mjs.map +1 -0
- package/dist/utils/index.d.ts +4 -0
- package/dist/utils/index.d.ts.map +1 -0
- package/dist/utils/index.js +50 -0
- package/dist/utils/index.js.map +1 -0
- package/dist/utils/index.mjs +8 -0
- package/dist/utils/mutex.d.ts +21 -0
- package/dist/utils/mutex.d.ts.map +1 -0
- package/dist/utils/mutex.js +133 -0
- package/dist/utils/mutex.js.map +1 -0
- package/dist/utils/mutex.mjs +99 -0
- package/dist/utils/mutex.mjs.map +1 -0
- package/dist/utils/url.d.ts +7 -0
- package/dist/utils/url.d.ts.map +1 -0
- package/dist/utils/url.js +76 -0
- package/dist/utils/url.js.map +1 -0
- package/dist/utils/url.mjs +42 -0
- package/dist/utils/url.mjs.map +1 -0
- package/package.json +21 -13
- package/dist/base-browser.d.ts +0 -94
- package/dist/base-browser.d.ts.map +0 -1
- package/dist/base-browser.js +0 -189
- package/dist/base-browser.js.map +0 -1
- package/dist/base-browser.mjs +0 -155
- package/dist/base-browser.mjs.map +0 -1
- package/dist/index.d.ts +0 -15
- package/dist/index.d.ts.map +0 -1
- package/dist/index.js.map +0 -1
- package/dist/index.mjs +0 -8
- package/dist/local-browser.d.ts +0 -19
- package/dist/local-browser.d.ts.map +0 -1
- package/dist/local-browser.js +0 -134
- package/dist/local-browser.js.map +0 -1
- package/dist/local-browser.mjs +0 -100
- package/dist/local-browser.mjs.map +0 -1
- package/dist/remote-browser.d.ts +0 -49
- package/dist/remote-browser.d.ts.map +0 -1
- package/dist/remote-browser.js +0 -89
- package/dist/remote-browser.js.map +0 -1
- package/dist/remote-browser.mjs +0 -55
- package/dist/remote-browser.mjs.map +0 -1
- package/dist/types.d.ts +0 -158
- package/dist/types.d.ts.map +0 -1
- package/dist/types.js.map +0 -1
- /package/dist/{types.mjs → types/actions.mjs} +0 -0
package/README.md
CHANGED
|
@@ -1,74 +1,57 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
<p>
|
|
6
|
-
<a href="https://npmjs.com/package/@agent-infra/browser?activeTab=readme"><img src="https://img.shields.io/npm/v/@agent-infra/browser?style=flat-square&colorA=564341&colorB=EDED91" alt="npm version" /></a>
|
|
7
|
-
<a href="https://npmcharts.com/compare/@agent-infra/browser?minimal=true"><img src="https://img.shields.io/npm/dm/@agent-infra/browser.svg?style=flat-square&colorA=564341&colorB=EDED91" alt="downloads" /></a>
|
|
8
|
-
<a href="https://nodejs.org/en/about/previous-releases"><img src="https://img.shields.io/node/v/@agent-infra/browser.svg?style=flat-square&colorA=564341&colorB=EDED91" alt="node version"></a>
|
|
9
|
-
<a href="https://github.com/bytedance/UI-TARS-desktop/blob/main/LICENSE"><img src="https://img.shields.io/badge/License-Apache%202.0-blue.svg?style=flat-square&colorA=564341&colorB=EDED91" alt="license" /></a>
|
|
10
|
-
</p>
|
|
11
|
-
|
|
12
|
-
## Features
|
|
1
|
+
<div align="right">
|
|
2
|
+
<a href="README.zh-CN.md">简体中文</a> | <b>English</b>
|
|
3
|
+
</div>
|
|
13
4
|
|
|
14
|
-
|
|
15
|
-
- 🔄 **Remote Browser Support** - Connect to remote browser instances
|
|
16
|
-
- 🛡️ **Type Safety** - Written in TypeScript with full type definitions
|
|
17
|
-
|
|
18
|
-
## Architecture
|
|
5
|
+
# @agent-infra/browser
|
|
19
6
|
|
|
20
|
-
|
|
21
|
-
graph TD
|
|
22
|
-
A[Browser Interface] --> B[Local Browser]
|
|
23
|
-
A --> C[Remote Browser]
|
|
24
|
-
B --> D[Browser Finder]
|
|
25
|
-
B --> E[Browser Adapter]
|
|
26
|
-
C --> E
|
|
27
|
-
E --> F[Puppeteer Adapter]
|
|
28
|
-
F --> G[Browser Control]
|
|
29
|
-
```
|
|
7
|
+
**@agent-infra/browser** is an SDK based on **puppeteer** specifically designed to provide foundational functionality for browser agents. It provides high-level abstractions for tab management, dialog handling, hotkey support, and more while maintaining simple and intuitive APIs.
|
|
30
8
|
|
|
31
9
|
## Installation
|
|
32
10
|
|
|
33
11
|
```bash
|
|
34
12
|
npm install @agent-infra/browser
|
|
35
|
-
# or
|
|
36
|
-
yarn add @agent-infra/browser
|
|
37
|
-
# or
|
|
38
|
-
pnpm add @agent-infra/browser
|
|
39
13
|
```
|
|
40
14
|
|
|
41
15
|
## Quick Start
|
|
42
16
|
|
|
17
|
+
Here is a simple usage demo. Browser will find the Chrome or Edge browser installed on your computer, launch a controlled browser instance, and then execute some operations through CDP control.
|
|
18
|
+
|
|
43
19
|
```typescript
|
|
44
|
-
import {
|
|
20
|
+
import { Browser } from '@agent-infra/browser';
|
|
21
|
+
|
|
22
|
+
// Create browser instance
|
|
23
|
+
const browser = await Browser.create();
|
|
45
24
|
|
|
46
|
-
|
|
47
|
-
|
|
48
|
-
|
|
25
|
+
// Set User-Agent (optional)
|
|
26
|
+
browser.setUserAgent({
|
|
27
|
+
userAgent:
|
|
28
|
+
'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/120.0.0.0 Safari/537.36',
|
|
29
|
+
});
|
|
49
30
|
|
|
50
|
-
|
|
51
|
-
|
|
52
|
-
await browser.launch({ headless: false });
|
|
31
|
+
// Get current active tab
|
|
32
|
+
const activeTab = browser.getActiveTab();
|
|
53
33
|
|
|
54
|
-
|
|
55
|
-
|
|
34
|
+
// Navigate to specified webpage
|
|
35
|
+
await activeTab.goto('https://example.com');
|
|
56
36
|
|
|
57
|
-
|
|
58
|
-
|
|
37
|
+
// Take screenshot
|
|
38
|
+
const screenshot = await activeTab.screenshot();
|
|
59
39
|
|
|
60
|
-
|
|
61
|
-
|
|
62
|
-
} finally {
|
|
63
|
-
// Always close browser
|
|
64
|
-
await browser.close();
|
|
65
|
-
}
|
|
66
|
-
}
|
|
40
|
+
// Close browser
|
|
41
|
+
await browser.close();
|
|
67
42
|
```
|
|
68
43
|
|
|
44
|
+
## Complete Documentation
|
|
45
|
+
|
|
46
|
+
For detailed API documentation and advanced usage examples, please refer to our [complete documentation](../../docs/browser.md).
|
|
47
|
+
|
|
48
|
+
## License
|
|
49
|
+
|
|
50
|
+
Apache License 2.0.
|
|
51
|
+
|
|
69
52
|
## Credits
|
|
70
53
|
|
|
71
|
-
|
|
54
|
+
Special thanks to the open source projects that inspired this toolkit:
|
|
72
55
|
|
|
73
|
-
- [
|
|
74
|
-
-
|
|
56
|
+
- [puppeteer](https://github.com/puppeteer/puppeteer) - The underlying browser automation library
|
|
57
|
+
- [Chrome DevTools Protocol](https://chromedevtools.github.io/devtools-protocol/) - Chrome DevTools Protocol
|
package/README.zh-CN.md
ADDED
|
@@ -0,0 +1,57 @@
|
|
|
1
|
+
<div align="right">
|
|
2
|
+
<b>简体中文</b> | <a href="README.md">English</a>
|
|
3
|
+
</div>
|
|
4
|
+
|
|
5
|
+
# @agent-infra/browser
|
|
6
|
+
|
|
7
|
+
**@agent-infra/browser** 是一个基于 **puppeteer** 的 SDK,专门设计用于为浏览器代理提供基础功能。它提供了标签页管理、对话框处理、热键支持等方面的高级抽象,同时保持了简单直观的 API。
|
|
8
|
+
|
|
9
|
+
## 安装
|
|
10
|
+
|
|
11
|
+
```bash
|
|
12
|
+
npm install @agent-infra/browser
|
|
13
|
+
```
|
|
14
|
+
|
|
15
|
+
## 快速开始
|
|
16
|
+
|
|
17
|
+
这是一个简单的使用示例。Browser 会找到您计算机上安装的 Chrome 或 Edge 浏览器,启动一个受控的浏览器实例,然后通过 CDP 控制执行一些操作。
|
|
18
|
+
|
|
19
|
+
```typescript
|
|
20
|
+
import { Browser } from '@agent-infra/browser';
|
|
21
|
+
|
|
22
|
+
// 创建浏览器实例
|
|
23
|
+
const browser = await Browser.create();
|
|
24
|
+
|
|
25
|
+
// 设置 User-Agent(可选)
|
|
26
|
+
browser.setUserAgent({
|
|
27
|
+
userAgent:
|
|
28
|
+
'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/120.0.0.0 Safari/537.36',
|
|
29
|
+
});
|
|
30
|
+
|
|
31
|
+
// 获取当前活动标签页
|
|
32
|
+
const activeTab = browser.getActiveTab();
|
|
33
|
+
|
|
34
|
+
// 导航到指定网页
|
|
35
|
+
await activeTab.goto('https://example.com');
|
|
36
|
+
|
|
37
|
+
// 截图
|
|
38
|
+
const screenshot = await activeTab.screenshot();
|
|
39
|
+
|
|
40
|
+
// 关闭浏览器
|
|
41
|
+
await browser.close();
|
|
42
|
+
```
|
|
43
|
+
|
|
44
|
+
## 完整文档
|
|
45
|
+
|
|
46
|
+
有关详细的 API 文档和高级使用示例,请参考我们的[完整文档](../../docs/browser.zh-CN.md)。
|
|
47
|
+
|
|
48
|
+
## 许可证
|
|
49
|
+
|
|
50
|
+
Apache License 2.0。
|
|
51
|
+
|
|
52
|
+
## 致谢
|
|
53
|
+
|
|
54
|
+
特别感谢启发此工具包的开源项目:
|
|
55
|
+
|
|
56
|
+
- [puppeteer](https://github.com/puppeteer/puppeteer) - 底层浏览器自动化库
|
|
57
|
+
- [Chrome DevTools Protocol](https://chromedevtools.github.io/devtools-protocol/) - Chrome 开发者工具协议
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/actions/index.ts"],"names":[],"mappings":"AAKA,OAAO,EAAE,QAAQ,EAAE,MAAM,YAAY,CAAC;AACtC,OAAO,EAAE,KAAK,EAAE,MAAM,SAAS,CAAC"}
|
|
@@ -0,0 +1,46 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Copyright (c) 2025 Bytedance, Inc. and its affiliates.
|
|
3
|
+
* SPDX-License-Identifier: Apache-2.0
|
|
4
|
+
*/
|
|
5
|
+
"use strict";
|
|
6
|
+
var __webpack_require__ = {};
|
|
7
|
+
(()=>{
|
|
8
|
+
__webpack_require__.d = (exports1, definition)=>{
|
|
9
|
+
for(var key in definition)if (__webpack_require__.o(definition, key) && !__webpack_require__.o(exports1, key)) Object.defineProperty(exports1, key, {
|
|
10
|
+
enumerable: true,
|
|
11
|
+
get: definition[key]
|
|
12
|
+
});
|
|
13
|
+
};
|
|
14
|
+
})();
|
|
15
|
+
(()=>{
|
|
16
|
+
__webpack_require__.o = (obj, prop)=>Object.prototype.hasOwnProperty.call(obj, prop);
|
|
17
|
+
})();
|
|
18
|
+
(()=>{
|
|
19
|
+
__webpack_require__.r = (exports1)=>{
|
|
20
|
+
if ('undefined' != typeof Symbol && Symbol.toStringTag) Object.defineProperty(exports1, Symbol.toStringTag, {
|
|
21
|
+
value: 'Module'
|
|
22
|
+
});
|
|
23
|
+
Object.defineProperty(exports1, '__esModule', {
|
|
24
|
+
value: true
|
|
25
|
+
});
|
|
26
|
+
};
|
|
27
|
+
})();
|
|
28
|
+
var __webpack_exports__ = {};
|
|
29
|
+
__webpack_require__.r(__webpack_exports__);
|
|
30
|
+
__webpack_require__.d(__webpack_exports__, {
|
|
31
|
+
Mouse: ()=>external_mouse_js_namespaceObject.Mouse,
|
|
32
|
+
Keyboard: ()=>external_keyboard_js_namespaceObject.Keyboard
|
|
33
|
+
});
|
|
34
|
+
const external_keyboard_js_namespaceObject = require("./keyboard.js");
|
|
35
|
+
const external_mouse_js_namespaceObject = require("./mouse.js");
|
|
36
|
+
exports.Keyboard = __webpack_exports__.Keyboard;
|
|
37
|
+
exports.Mouse = __webpack_exports__.Mouse;
|
|
38
|
+
for(var __webpack_i__ in __webpack_exports__)if (-1 === [
|
|
39
|
+
"Keyboard",
|
|
40
|
+
"Mouse"
|
|
41
|
+
].indexOf(__webpack_i__)) exports[__webpack_i__] = __webpack_exports__[__webpack_i__];
|
|
42
|
+
Object.defineProperty(exports, '__esModule', {
|
|
43
|
+
value: true
|
|
44
|
+
});
|
|
45
|
+
|
|
46
|
+
//# sourceMappingURL=index.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"actions/index.js","sources":["webpack://@agent-infra/browser/webpack/runtime/define_property_getters","webpack://@agent-infra/browser/webpack/runtime/has_own_property","webpack://@agent-infra/browser/webpack/runtime/make_namespace_object"],"sourcesContent":["__webpack_require__.d = (exports, definition) => {\n\tfor(var key in definition) {\n if(__webpack_require__.o(definition, key) && !__webpack_require__.o(exports, key)) {\n Object.defineProperty(exports, key, { enumerable: true, get: definition[key] });\n }\n }\n};","__webpack_require__.o = (obj, prop) => (Object.prototype.hasOwnProperty.call(obj, prop))","// define __esModule on exports\n__webpack_require__.r = (exports) => {\n\tif(typeof Symbol !== 'undefined' && Symbol.toStringTag) {\n\t\tObject.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });\n\t}\n\tObject.defineProperty(exports, '__esModule', { value: true });\n};"],"names":["__webpack_require__","definition","key","Object","obj","prop","Symbol"],"mappings":";;;;;;;IAAAA,oBAAoB,CAAC,GAAG,CAAC,UAASC;QACjC,IAAI,IAAIC,OAAOD,WACR,IAAGD,oBAAoB,CAAC,CAACC,YAAYC,QAAQ,CAACF,oBAAoB,CAAC,CAAC,UAASE,MACzEC,OAAO,cAAc,CAAC,UAASD,KAAK;YAAE,YAAY;YAAM,KAAKD,UAAU,CAACC,IAAI;QAAC;IAGzF;;;ICNAF,oBAAoB,CAAC,GAAG,CAACI,KAAKC,OAAUF,OAAO,SAAS,CAAC,cAAc,CAAC,IAAI,CAACC,KAAKC;;;ICClFL,oBAAoB,CAAC,GAAG,CAAC;QACxB,IAAG,AAAkB,eAAlB,OAAOM,UAA0BA,OAAO,WAAW,EACrDH,OAAO,cAAc,CAAC,UAASG,OAAO,WAAW,EAAE;YAAE,OAAO;QAAS;QAEtEH,OAAO,cAAc,CAAC,UAAS,cAAc;YAAE,OAAO;QAAK;IAC5D"}
|
|
@@ -0,0 +1,28 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* The following code is modified based on
|
|
3
|
+
* https://github.com/puppeteer/puppeteer/blob/main/packages/puppeteer-core/src/common/USKeyboardLayout.ts
|
|
4
|
+
*
|
|
5
|
+
* Copyright 2017 Google Inc.
|
|
6
|
+
* SPDX-License-Identifier: Apache-2.0
|
|
7
|
+
* https://github.com/puppeteer/puppeteer/blob/main/LICENSE
|
|
8
|
+
*/
|
|
9
|
+
import type { KeyInput } from 'puppeteer-core';
|
|
10
|
+
/**
|
|
11
|
+
* Only adapt for common macOS system hotkeys
|
|
12
|
+
*
|
|
13
|
+
* See issues:
|
|
14
|
+
* - https://github.com/bytedance/UI-TARS-desktop/pull/560
|
|
15
|
+
*
|
|
16
|
+
* References:
|
|
17
|
+
* - Mac shortcuts list: https://support.apple.com/zh-cn/102650
|
|
18
|
+
* - Chrome: https://support.google.com/chrome/answer/157179
|
|
19
|
+
* - CDP: https://chromedevtools.github.io/devtools-protocol/tot/Input/#method-dispatchKeyEvent
|
|
20
|
+
* - Commands: https://source.chromium.org/chromium/chromium/src/+/main:third_party/blink/renderer/core/editing/commands/editor_command_names.h
|
|
21
|
+
*/
|
|
22
|
+
export declare const MAC_SYSTEM_HOTKEY_MAP: Map<string, {
|
|
23
|
+
key: KeyInput;
|
|
24
|
+
commands: string;
|
|
25
|
+
}>;
|
|
26
|
+
export declare const KEY_ABBR_TO_STANDARD_MAP: Readonly<Record<string, KeyInput>>;
|
|
27
|
+
export declare const KEY_LOW_TO_STANDARD_MAP: Readonly<Record<string, KeyInput>>;
|
|
28
|
+
//# sourceMappingURL=key-map.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"key-map.d.ts","sourceRoot":"","sources":["../../src/actions/key-map.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AACH,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,gBAAgB,CAAC;AAE/C;;;;;;;;;;;GAWG;AACH,eAAO,MAAM,qBAAqB;SAEzB,QAAQ;cAAY,MAAM;EAuBjC,CAAC;AAEH,eAAO,MAAM,wBAAwB,EAAE,QAAQ,CAAC,MAAM,CAAC,MAAM,EAAE,QAAQ,CAAC,CAmBvE,CAAC;AAGF,eAAO,MAAM,uBAAuB,EAAE,QAAQ,CAAC,MAAM,CAAC,MAAM,EAAE,QAAQ,CAAC,CAsOtE,CAAC"}
|
|
@@ -0,0 +1,409 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Copyright (c) 2025 Bytedance, Inc. and its affiliates.
|
|
3
|
+
* SPDX-License-Identifier: Apache-2.0
|
|
4
|
+
*/
|
|
5
|
+
"use strict";
|
|
6
|
+
var __webpack_require__ = {};
|
|
7
|
+
(()=>{
|
|
8
|
+
__webpack_require__.d = (exports1, definition)=>{
|
|
9
|
+
for(var key in definition)if (__webpack_require__.o(definition, key) && !__webpack_require__.o(exports1, key)) Object.defineProperty(exports1, key, {
|
|
10
|
+
enumerable: true,
|
|
11
|
+
get: definition[key]
|
|
12
|
+
});
|
|
13
|
+
};
|
|
14
|
+
})();
|
|
15
|
+
(()=>{
|
|
16
|
+
__webpack_require__.o = (obj, prop)=>Object.prototype.hasOwnProperty.call(obj, prop);
|
|
17
|
+
})();
|
|
18
|
+
(()=>{
|
|
19
|
+
__webpack_require__.r = (exports1)=>{
|
|
20
|
+
if ('undefined' != typeof Symbol && Symbol.toStringTag) Object.defineProperty(exports1, Symbol.toStringTag, {
|
|
21
|
+
value: 'Module'
|
|
22
|
+
});
|
|
23
|
+
Object.defineProperty(exports1, '__esModule', {
|
|
24
|
+
value: true
|
|
25
|
+
});
|
|
26
|
+
};
|
|
27
|
+
})();
|
|
28
|
+
var __webpack_exports__ = {};
|
|
29
|
+
__webpack_require__.r(__webpack_exports__);
|
|
30
|
+
__webpack_require__.d(__webpack_exports__, {
|
|
31
|
+
KEY_ABBR_TO_STANDARD_MAP: ()=>KEY_ABBR_TO_STANDARD_MAP,
|
|
32
|
+
KEY_LOW_TO_STANDARD_MAP: ()=>KEY_LOW_TO_STANDARD_MAP,
|
|
33
|
+
MAC_SYSTEM_HOTKEY_MAP: ()=>MAC_SYSTEM_HOTKEY_MAP
|
|
34
|
+
});
|
|
35
|
+
const MAC_SYSTEM_HOTKEY_MAP = new Map([
|
|
36
|
+
[
|
|
37
|
+
'CorM+A',
|
|
38
|
+
{
|
|
39
|
+
key: 'KeyA',
|
|
40
|
+
commands: 'SelectAll'
|
|
41
|
+
}
|
|
42
|
+
],
|
|
43
|
+
[
|
|
44
|
+
'CorM+KeyA',
|
|
45
|
+
{
|
|
46
|
+
key: 'KeyA',
|
|
47
|
+
commands: 'SelectAll'
|
|
48
|
+
}
|
|
49
|
+
],
|
|
50
|
+
[
|
|
51
|
+
'CorM+X',
|
|
52
|
+
{
|
|
53
|
+
key: 'KeyX',
|
|
54
|
+
commands: 'Cut'
|
|
55
|
+
}
|
|
56
|
+
],
|
|
57
|
+
[
|
|
58
|
+
'CorM+KeyX',
|
|
59
|
+
{
|
|
60
|
+
key: 'KeyX',
|
|
61
|
+
commands: 'Cut'
|
|
62
|
+
}
|
|
63
|
+
],
|
|
64
|
+
[
|
|
65
|
+
'CorM+C',
|
|
66
|
+
{
|
|
67
|
+
key: 'KeyC',
|
|
68
|
+
commands: 'Copy'
|
|
69
|
+
}
|
|
70
|
+
],
|
|
71
|
+
[
|
|
72
|
+
'CorM+KeyC',
|
|
73
|
+
{
|
|
74
|
+
key: 'KeyC',
|
|
75
|
+
commands: 'Copy'
|
|
76
|
+
}
|
|
77
|
+
],
|
|
78
|
+
[
|
|
79
|
+
'CorM+V',
|
|
80
|
+
{
|
|
81
|
+
key: 'KeyV',
|
|
82
|
+
commands: 'Paste'
|
|
83
|
+
}
|
|
84
|
+
],
|
|
85
|
+
[
|
|
86
|
+
'CorM+KeyV',
|
|
87
|
+
{
|
|
88
|
+
key: 'KeyV',
|
|
89
|
+
commands: 'Paste'
|
|
90
|
+
}
|
|
91
|
+
],
|
|
92
|
+
[
|
|
93
|
+
'CorM+Z',
|
|
94
|
+
{
|
|
95
|
+
key: 'KeyZ',
|
|
96
|
+
commands: 'Undo'
|
|
97
|
+
}
|
|
98
|
+
],
|
|
99
|
+
[
|
|
100
|
+
'CorM+KeyZ',
|
|
101
|
+
{
|
|
102
|
+
key: 'KeyZ',
|
|
103
|
+
commands: 'Undo'
|
|
104
|
+
}
|
|
105
|
+
],
|
|
106
|
+
[
|
|
107
|
+
'CorM+Y',
|
|
108
|
+
{
|
|
109
|
+
key: 'KeyY',
|
|
110
|
+
commands: 'Redo'
|
|
111
|
+
}
|
|
112
|
+
],
|
|
113
|
+
[
|
|
114
|
+
'CorM+KeyY',
|
|
115
|
+
{
|
|
116
|
+
key: 'KeyY',
|
|
117
|
+
commands: 'Redo'
|
|
118
|
+
}
|
|
119
|
+
],
|
|
120
|
+
[
|
|
121
|
+
'CorM+Shift+Z',
|
|
122
|
+
{
|
|
123
|
+
key: 'KeyZ',
|
|
124
|
+
commands: 'Redo'
|
|
125
|
+
}
|
|
126
|
+
],
|
|
127
|
+
[
|
|
128
|
+
'CorM+Shift+KeyZ',
|
|
129
|
+
{
|
|
130
|
+
key: 'KeyZ',
|
|
131
|
+
commands: 'Redo'
|
|
132
|
+
}
|
|
133
|
+
],
|
|
134
|
+
[
|
|
135
|
+
'Shift+CorM+Z',
|
|
136
|
+
{
|
|
137
|
+
key: 'KeyZ',
|
|
138
|
+
commands: 'Redo'
|
|
139
|
+
}
|
|
140
|
+
],
|
|
141
|
+
[
|
|
142
|
+
'Shift+CorM+KeyZ',
|
|
143
|
+
{
|
|
144
|
+
key: 'KeyZ',
|
|
145
|
+
commands: 'Redo'
|
|
146
|
+
}
|
|
147
|
+
]
|
|
148
|
+
]);
|
|
149
|
+
const KEY_ABBR_TO_STANDARD_MAP = {
|
|
150
|
+
ctrl: 'Control',
|
|
151
|
+
cmd: 'Meta',
|
|
152
|
+
command: 'Meta',
|
|
153
|
+
opt: 'Alt',
|
|
154
|
+
option: 'Alt',
|
|
155
|
+
up: 'ArrowUp',
|
|
156
|
+
down: 'ArrowDown',
|
|
157
|
+
left: 'ArrowLeft',
|
|
158
|
+
right: 'ArrowRight',
|
|
159
|
+
esc: 'Escape',
|
|
160
|
+
del: 'Delete',
|
|
161
|
+
ins: 'Insert',
|
|
162
|
+
pgup: 'PageUp',
|
|
163
|
+
pgdown: 'PageDown',
|
|
164
|
+
return: 'Enter'
|
|
165
|
+
};
|
|
166
|
+
const KEY_LOW_TO_STANDARD_MAP = {
|
|
167
|
+
0: '0',
|
|
168
|
+
1: '1',
|
|
169
|
+
2: '2',
|
|
170
|
+
3: '3',
|
|
171
|
+
4: '4',
|
|
172
|
+
5: '5',
|
|
173
|
+
6: '6',
|
|
174
|
+
7: '7',
|
|
175
|
+
8: '8',
|
|
176
|
+
9: '9',
|
|
177
|
+
power: 'Power',
|
|
178
|
+
eject: 'Eject',
|
|
179
|
+
abort: 'Abort',
|
|
180
|
+
help: 'Help',
|
|
181
|
+
backspace: 'Backspace',
|
|
182
|
+
tab: 'Tab',
|
|
183
|
+
numpad5: 'Numpad5',
|
|
184
|
+
numpadenter: 'NumpadEnter',
|
|
185
|
+
enter: 'Enter',
|
|
186
|
+
'\r': '\r',
|
|
187
|
+
'\n': '\n',
|
|
188
|
+
shiftleft: 'ShiftLeft',
|
|
189
|
+
shiftright: 'ShiftRight',
|
|
190
|
+
controlleft: 'ControlLeft',
|
|
191
|
+
controlright: 'ControlRight',
|
|
192
|
+
altleft: 'AltLeft',
|
|
193
|
+
altright: 'AltRight',
|
|
194
|
+
pause: 'Pause',
|
|
195
|
+
capslock: 'CapsLock',
|
|
196
|
+
escape: 'Escape',
|
|
197
|
+
convert: 'Convert',
|
|
198
|
+
nonconvert: 'NonConvert',
|
|
199
|
+
space: 'Space',
|
|
200
|
+
numpad9: 'Numpad9',
|
|
201
|
+
pageup: 'PageUp',
|
|
202
|
+
numpad3: 'Numpad3',
|
|
203
|
+
pagedown: 'PageDown',
|
|
204
|
+
end: 'End',
|
|
205
|
+
numpad1: 'Numpad1',
|
|
206
|
+
home: 'Home',
|
|
207
|
+
numpad7: 'Numpad7',
|
|
208
|
+
arrowleft: 'ArrowLeft',
|
|
209
|
+
numpad4: 'Numpad4',
|
|
210
|
+
numpad8: 'Numpad8',
|
|
211
|
+
arrowup: 'ArrowUp',
|
|
212
|
+
arrowright: 'ArrowRight',
|
|
213
|
+
numpad6: 'Numpad6',
|
|
214
|
+
numpad2: 'Numpad2',
|
|
215
|
+
arrowdown: 'ArrowDown',
|
|
216
|
+
select: 'Select',
|
|
217
|
+
open: 'Open',
|
|
218
|
+
printscreen: 'PrintScreen',
|
|
219
|
+
insert: 'Insert',
|
|
220
|
+
numpad0: 'Numpad0',
|
|
221
|
+
delete: 'Delete',
|
|
222
|
+
numpaddecimal: 'NumpadDecimal',
|
|
223
|
+
digit0: 'Digit0',
|
|
224
|
+
digit1: 'Digit1',
|
|
225
|
+
digit2: 'Digit2',
|
|
226
|
+
digit3: 'Digit3',
|
|
227
|
+
digit4: 'Digit4',
|
|
228
|
+
digit5: 'Digit5',
|
|
229
|
+
digit6: 'Digit6',
|
|
230
|
+
digit7: 'Digit7',
|
|
231
|
+
digit8: 'Digit8',
|
|
232
|
+
digit9: 'Digit9',
|
|
233
|
+
keya: 'KeyA',
|
|
234
|
+
keyb: 'KeyB',
|
|
235
|
+
keyc: 'KeyC',
|
|
236
|
+
keyd: 'KeyD',
|
|
237
|
+
keye: 'KeyE',
|
|
238
|
+
keyf: 'KeyF',
|
|
239
|
+
keyg: 'KeyG',
|
|
240
|
+
keyh: 'KeyH',
|
|
241
|
+
keyi: 'KeyI',
|
|
242
|
+
keyj: 'KeyJ',
|
|
243
|
+
keyk: 'KeyK',
|
|
244
|
+
keyl: 'KeyL',
|
|
245
|
+
keym: 'KeyM',
|
|
246
|
+
keyn: 'KeyN',
|
|
247
|
+
keyo: 'KeyO',
|
|
248
|
+
keyp: 'KeyP',
|
|
249
|
+
keyq: 'KeyQ',
|
|
250
|
+
keyr: 'KeyR',
|
|
251
|
+
keys: 'KeyS',
|
|
252
|
+
keyt: 'KeyT',
|
|
253
|
+
keyu: 'KeyU',
|
|
254
|
+
keyv: 'KeyV',
|
|
255
|
+
keyw: 'KeyW',
|
|
256
|
+
keyx: 'KeyX',
|
|
257
|
+
keyy: 'KeyY',
|
|
258
|
+
keyz: 'KeyZ',
|
|
259
|
+
metaleft: 'MetaLeft',
|
|
260
|
+
metaright: 'MetaRight',
|
|
261
|
+
contextmenu: 'ContextMenu',
|
|
262
|
+
numpadmultiply: 'NumpadMultiply',
|
|
263
|
+
numpadadd: 'NumpadAdd',
|
|
264
|
+
numpadsubtract: 'NumpadSubtract',
|
|
265
|
+
numpaddivide: 'NumpadDivide',
|
|
266
|
+
f1: 'F1',
|
|
267
|
+
f2: 'F2',
|
|
268
|
+
f3: 'F3',
|
|
269
|
+
f4: 'F4',
|
|
270
|
+
f5: 'F5',
|
|
271
|
+
f6: 'F6',
|
|
272
|
+
f7: 'F7',
|
|
273
|
+
f8: 'F8',
|
|
274
|
+
f9: 'F9',
|
|
275
|
+
f10: 'F10',
|
|
276
|
+
f11: 'F11',
|
|
277
|
+
f12: 'F12',
|
|
278
|
+
f13: 'F13',
|
|
279
|
+
f14: 'F14',
|
|
280
|
+
f15: 'F15',
|
|
281
|
+
f16: 'F16',
|
|
282
|
+
f17: 'F17',
|
|
283
|
+
f18: 'F18',
|
|
284
|
+
f19: 'F19',
|
|
285
|
+
f20: 'F20',
|
|
286
|
+
f21: 'F21',
|
|
287
|
+
f22: 'F22',
|
|
288
|
+
f23: 'F23',
|
|
289
|
+
f24: 'F24',
|
|
290
|
+
numlock: 'NumLock',
|
|
291
|
+
scrolllock: 'ScrollLock',
|
|
292
|
+
audiovolumemute: 'AudioVolumeMute',
|
|
293
|
+
audiovolumedown: 'AudioVolumeDown',
|
|
294
|
+
audiovolumeup: 'AudioVolumeUp',
|
|
295
|
+
mediatracknext: 'MediaTrackNext',
|
|
296
|
+
mediatrackprevious: 'MediaTrackPrevious',
|
|
297
|
+
mediastop: 'MediaStop',
|
|
298
|
+
mediaplaypause: 'MediaPlayPause',
|
|
299
|
+
semicolon: 'Semicolon',
|
|
300
|
+
equal: 'Equal',
|
|
301
|
+
numpadequal: 'NumpadEqual',
|
|
302
|
+
comma: 'Comma',
|
|
303
|
+
minus: 'Minus',
|
|
304
|
+
period: 'Period',
|
|
305
|
+
slash: 'Slash',
|
|
306
|
+
backquote: 'Backquote',
|
|
307
|
+
bracketleft: 'BracketLeft',
|
|
308
|
+
backslash: 'Backslash',
|
|
309
|
+
bracketright: 'BracketRight',
|
|
310
|
+
quote: 'Quote',
|
|
311
|
+
altgraph: 'AltGraph',
|
|
312
|
+
props: 'Props',
|
|
313
|
+
cancel: 'Cancel',
|
|
314
|
+
clear: 'Clear',
|
|
315
|
+
shift: 'Shift',
|
|
316
|
+
control: 'Control',
|
|
317
|
+
alt: 'Alt',
|
|
318
|
+
accept: 'Accept',
|
|
319
|
+
modechange: 'ModeChange',
|
|
320
|
+
' ': ' ',
|
|
321
|
+
print: 'Print',
|
|
322
|
+
execute: 'Execute',
|
|
323
|
+
'\u0000': '\u0000',
|
|
324
|
+
a: 'A',
|
|
325
|
+
b: 'B',
|
|
326
|
+
c: 'C',
|
|
327
|
+
d: 'D',
|
|
328
|
+
e: 'E',
|
|
329
|
+
f: 'F',
|
|
330
|
+
g: 'G',
|
|
331
|
+
h: 'H',
|
|
332
|
+
i: 'I',
|
|
333
|
+
j: 'J',
|
|
334
|
+
k: 'K',
|
|
335
|
+
l: 'L',
|
|
336
|
+
m: 'M',
|
|
337
|
+
n: 'N',
|
|
338
|
+
o: 'O',
|
|
339
|
+
p: 'P',
|
|
340
|
+
q: 'Q',
|
|
341
|
+
r: 'R',
|
|
342
|
+
s: 'S',
|
|
343
|
+
t: 'T',
|
|
344
|
+
u: 'U',
|
|
345
|
+
v: 'V',
|
|
346
|
+
w: 'W',
|
|
347
|
+
x: 'X',
|
|
348
|
+
y: 'Y',
|
|
349
|
+
z: 'Z',
|
|
350
|
+
meta: 'Meta',
|
|
351
|
+
'*': '*',
|
|
352
|
+
'+': '+',
|
|
353
|
+
'-': '-',
|
|
354
|
+
'/': '/',
|
|
355
|
+
';': ';',
|
|
356
|
+
'=': '=',
|
|
357
|
+
',': ',',
|
|
358
|
+
'.': '.',
|
|
359
|
+
'`': '`',
|
|
360
|
+
'[': '[',
|
|
361
|
+
'\\': '\\',
|
|
362
|
+
']': ']',
|
|
363
|
+
"'": "'",
|
|
364
|
+
attn: 'Attn',
|
|
365
|
+
crsel: 'CrSel',
|
|
366
|
+
exsel: 'ExSel',
|
|
367
|
+
eraseeof: 'EraseEof',
|
|
368
|
+
play: 'Play',
|
|
369
|
+
zoomout: 'ZoomOut',
|
|
370
|
+
')': ')',
|
|
371
|
+
'!': '!',
|
|
372
|
+
'@': '@',
|
|
373
|
+
'#': '#',
|
|
374
|
+
$: '$',
|
|
375
|
+
'%': '%',
|
|
376
|
+
'^': '^',
|
|
377
|
+
'&': '&',
|
|
378
|
+
'(': '(',
|
|
379
|
+
':': ':',
|
|
380
|
+
'<': '<',
|
|
381
|
+
_: '_',
|
|
382
|
+
'>': '>',
|
|
383
|
+
'?': '?',
|
|
384
|
+
'~': '~',
|
|
385
|
+
'{': '{',
|
|
386
|
+
'|': '|',
|
|
387
|
+
'}': '}',
|
|
388
|
+
'"': '"',
|
|
389
|
+
softleft: 'SoftLeft',
|
|
390
|
+
softright: 'SoftRight',
|
|
391
|
+
camera: 'Camera',
|
|
392
|
+
call: 'Call',
|
|
393
|
+
endcall: 'EndCall',
|
|
394
|
+
volumedown: 'VolumeDown',
|
|
395
|
+
volumeup: 'VolumeUp'
|
|
396
|
+
};
|
|
397
|
+
exports.KEY_ABBR_TO_STANDARD_MAP = __webpack_exports__.KEY_ABBR_TO_STANDARD_MAP;
|
|
398
|
+
exports.KEY_LOW_TO_STANDARD_MAP = __webpack_exports__.KEY_LOW_TO_STANDARD_MAP;
|
|
399
|
+
exports.MAC_SYSTEM_HOTKEY_MAP = __webpack_exports__.MAC_SYSTEM_HOTKEY_MAP;
|
|
400
|
+
for(var __webpack_i__ in __webpack_exports__)if (-1 === [
|
|
401
|
+
"KEY_ABBR_TO_STANDARD_MAP",
|
|
402
|
+
"KEY_LOW_TO_STANDARD_MAP",
|
|
403
|
+
"MAC_SYSTEM_HOTKEY_MAP"
|
|
404
|
+
].indexOf(__webpack_i__)) exports[__webpack_i__] = __webpack_exports__[__webpack_i__];
|
|
405
|
+
Object.defineProperty(exports, '__esModule', {
|
|
406
|
+
value: true
|
|
407
|
+
});
|
|
408
|
+
|
|
409
|
+
//# sourceMappingURL=key-map.js.map
|