@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.
Files changed (186) hide show
  1. package/README.md +35 -52
  2. package/README.zh-CN.md +57 -0
  3. package/dist/actions/index.d.ts +3 -0
  4. package/dist/actions/index.d.ts.map +1 -0
  5. package/dist/actions/index.js +46 -0
  6. package/dist/actions/index.js.map +1 -0
  7. package/dist/actions/index.mjs +7 -0
  8. package/dist/actions/key-map.d.ts +28 -0
  9. package/dist/actions/key-map.d.ts.map +1 -0
  10. package/dist/actions/key-map.js +409 -0
  11. package/dist/actions/key-map.js.map +1 -0
  12. package/dist/actions/key-map.mjs +369 -0
  13. package/dist/actions/key-map.mjs.map +1 -0
  14. package/dist/actions/keyboard.d.ts +21 -0
  15. package/dist/actions/keyboard.d.ts.map +1 -0
  16. package/dist/actions/keyboard.js +196 -0
  17. package/dist/actions/keyboard.js.map +1 -0
  18. package/dist/actions/keyboard.mjs +152 -0
  19. package/dist/actions/keyboard.mjs.map +1 -0
  20. package/dist/actions/keyboard.test.d.ts +2 -0
  21. package/dist/actions/keyboard.test.d.ts.map +1 -0
  22. package/dist/actions/mouse.d.ts +19 -0
  23. package/dist/actions/mouse.d.ts.map +1 -0
  24. package/dist/actions/mouse.js +173 -0
  25. package/dist/actions/mouse.js.map +1 -0
  26. package/dist/actions/mouse.mjs +136 -0
  27. package/dist/actions/mouse.mjs.map +1 -0
  28. package/dist/browser/base.d.ts +47 -0
  29. package/dist/browser/base.d.ts.map +1 -0
  30. package/dist/browser/base.js +156 -0
  31. package/dist/browser/base.js.map +1 -0
  32. package/dist/browser/base.mjs +122 -0
  33. package/dist/browser/base.mjs.map +1 -0
  34. package/dist/browser/browser.d.ts +23 -0
  35. package/dist/browser/browser.d.ts.map +1 -0
  36. package/dist/browser/browser.js +183 -0
  37. package/dist/browser/browser.js.map +1 -0
  38. package/dist/browser/browser.mjs +149 -0
  39. package/dist/browser/browser.mjs.map +1 -0
  40. package/dist/env.d.ts +4 -0
  41. package/dist/env.d.ts.map +1 -0
  42. package/dist/env.js +96 -0
  43. package/dist/env.js.map +1 -0
  44. package/dist/env.mjs +62 -0
  45. package/dist/env.mjs.map +1 -0
  46. package/dist/index.node.d.ts +7 -0
  47. package/dist/index.node.d.ts.map +1 -0
  48. package/dist/index.node.js +106 -0
  49. package/dist/index.node.js.map +1 -0
  50. package/dist/index.node.mjs +10 -0
  51. package/dist/index.web.d.ts +7 -0
  52. package/dist/index.web.d.ts.map +1 -0
  53. package/dist/{index.js → index.web.js} +33 -20
  54. package/dist/index.web.js.map +1 -0
  55. package/dist/index.web.mjs +10 -0
  56. package/dist/injected-script/index.d.ts +3 -0
  57. package/dist/injected-script/index.d.ts.map +1 -0
  58. package/dist/injected-script/index.js +46 -0
  59. package/dist/injected-script/index.js.map +1 -0
  60. package/dist/injected-script/index.mjs +7 -0
  61. package/dist/injected-script/visibility.d.ts +2 -0
  62. package/dist/injected-script/visibility.d.ts.map +1 -0
  63. package/dist/injected-script/visibility.js +66 -0
  64. package/dist/injected-script/visibility.js.map +1 -0
  65. package/dist/injected-script/visibility.mjs +32 -0
  66. package/dist/injected-script/visibility.mjs.map +1 -0
  67. package/dist/injected-script/webdriver.d.ts +2 -0
  68. package/dist/injected-script/webdriver.d.ts.map +1 -0
  69. package/dist/injected-script/webdriver.js +71 -0
  70. package/dist/injected-script/webdriver.js.map +1 -0
  71. package/dist/injected-script/webdriver.mjs +37 -0
  72. package/dist/injected-script/webdriver.mjs.map +1 -0
  73. package/dist/polyfills/index.d.ts +2 -0
  74. package/dist/polyfills/index.d.ts.map +1 -0
  75. package/dist/polyfills/index.js +66 -0
  76. package/dist/polyfills/index.js.map +1 -0
  77. package/dist/polyfills/index.mjs +5 -0
  78. package/dist/polyfills/withResolvers.d.ts +2 -0
  79. package/dist/polyfills/withResolvers.d.ts.map +1 -0
  80. package/dist/polyfills/withResolvers.js +37 -0
  81. package/dist/polyfills/withResolvers.js.map +1 -0
  82. package/dist/polyfills/withResolvers.mjs +19 -0
  83. package/dist/polyfills/withResolvers.mjs.map +1 -0
  84. package/dist/tabs/dialog.d.ts +14 -0
  85. package/dist/tabs/dialog.d.ts.map +1 -0
  86. package/dist/tabs/dialog.js +175 -0
  87. package/dist/tabs/dialog.js.map +1 -0
  88. package/dist/tabs/dialog.mjs +141 -0
  89. package/dist/tabs/dialog.mjs.map +1 -0
  90. package/dist/tabs/index.d.ts +3 -0
  91. package/dist/tabs/index.d.ts.map +1 -0
  92. package/dist/tabs/index.js +46 -0
  93. package/dist/tabs/index.js.map +1 -0
  94. package/dist/tabs/index.mjs +7 -0
  95. package/dist/tabs/tab.d.ts +50 -0
  96. package/dist/tabs/tab.d.ts.map +1 -0
  97. package/dist/tabs/tab.js +579 -0
  98. package/dist/tabs/tab.js.map +1 -0
  99. package/dist/tabs/tab.mjs +545 -0
  100. package/dist/tabs/tab.mjs.map +1 -0
  101. package/dist/tabs/tabs.d.ts +21 -0
  102. package/dist/tabs/tabs.d.ts.map +1 -0
  103. package/dist/tabs/tabs.js +458 -0
  104. package/dist/tabs/tabs.js.map +1 -0
  105. package/dist/tabs/tabs.mjs +424 -0
  106. package/dist/tabs/tabs.mjs.map +1 -0
  107. package/dist/types/actions.d.ts +26 -0
  108. package/dist/types/actions.d.ts.map +1 -0
  109. package/dist/types/actions.js +24 -0
  110. package/dist/types/actions.js.map +1 -0
  111. package/dist/types/browser.d.ts +7 -0
  112. package/dist/types/browser.d.ts.map +1 -0
  113. package/dist/types/browser.js +24 -0
  114. package/dist/types/browser.js.map +1 -0
  115. package/dist/types/browser.mjs +4 -0
  116. package/dist/types/dialog.d.ts +7 -0
  117. package/dist/types/dialog.d.ts.map +1 -0
  118. package/dist/types/dialog.js +24 -0
  119. package/dist/types/dialog.js.map +1 -0
  120. package/dist/types/dialog.mjs +4 -0
  121. package/dist/types/env.d.ts +8 -0
  122. package/dist/types/env.d.ts.map +1 -0
  123. package/dist/{types.js → types/env.js} +1 -1
  124. package/dist/types/env.js.map +1 -0
  125. package/dist/types/env.mjs +4 -0
  126. package/dist/types/index.d.ts +6 -0
  127. package/dist/types/index.d.ts.map +1 -0
  128. package/dist/types/index.js +102 -0
  129. package/dist/types/index.js.map +1 -0
  130. package/dist/types/index.mjs +9 -0
  131. package/dist/types/tabs.d.ts +98 -0
  132. package/dist/types/tabs.d.ts.map +1 -0
  133. package/dist/types/tabs.js +48 -0
  134. package/dist/types/tabs.js.map +1 -0
  135. package/dist/types/tabs.mjs +14 -0
  136. package/dist/types/tabs.mjs.map +1 -0
  137. package/dist/utils/iife.d.ts +2 -0
  138. package/dist/utils/iife.d.ts.map +1 -0
  139. package/dist/utils/iife.js +48 -0
  140. package/dist/utils/iife.js.map +1 -0
  141. package/dist/utils/iife.mjs +14 -0
  142. package/dist/utils/iife.mjs.map +1 -0
  143. package/dist/utils/index.d.ts +4 -0
  144. package/dist/utils/index.d.ts.map +1 -0
  145. package/dist/utils/index.js +50 -0
  146. package/dist/utils/index.js.map +1 -0
  147. package/dist/utils/index.mjs +8 -0
  148. package/dist/utils/mutex.d.ts +21 -0
  149. package/dist/utils/mutex.d.ts.map +1 -0
  150. package/dist/utils/mutex.js +133 -0
  151. package/dist/utils/mutex.js.map +1 -0
  152. package/dist/utils/mutex.mjs +99 -0
  153. package/dist/utils/mutex.mjs.map +1 -0
  154. package/dist/utils/url.d.ts +7 -0
  155. package/dist/utils/url.d.ts.map +1 -0
  156. package/dist/utils/url.js +76 -0
  157. package/dist/utils/url.js.map +1 -0
  158. package/dist/utils/url.mjs +42 -0
  159. package/dist/utils/url.mjs.map +1 -0
  160. package/package.json +21 -13
  161. package/dist/base-browser.d.ts +0 -94
  162. package/dist/base-browser.d.ts.map +0 -1
  163. package/dist/base-browser.js +0 -189
  164. package/dist/base-browser.js.map +0 -1
  165. package/dist/base-browser.mjs +0 -155
  166. package/dist/base-browser.mjs.map +0 -1
  167. package/dist/index.d.ts +0 -15
  168. package/dist/index.d.ts.map +0 -1
  169. package/dist/index.js.map +0 -1
  170. package/dist/index.mjs +0 -8
  171. package/dist/local-browser.d.ts +0 -19
  172. package/dist/local-browser.d.ts.map +0 -1
  173. package/dist/local-browser.js +0 -134
  174. package/dist/local-browser.js.map +0 -1
  175. package/dist/local-browser.mjs +0 -100
  176. package/dist/local-browser.mjs.map +0 -1
  177. package/dist/remote-browser.d.ts +0 -49
  178. package/dist/remote-browser.d.ts.map +0 -1
  179. package/dist/remote-browser.js +0 -89
  180. package/dist/remote-browser.js.map +0 -1
  181. package/dist/remote-browser.mjs +0 -55
  182. package/dist/remote-browser.mjs.map +0 -1
  183. package/dist/types.d.ts +0 -158
  184. package/dist/types.d.ts.map +0 -1
  185. package/dist/types.js.map +0 -1
  186. /package/dist/{types.mjs → types/actions.mjs} +0 -0
@@ -0,0 +1 @@
1
+ {"version":3,"file":"actions/key-map.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","webpack://@agent-infra/browser/./src/actions/key-map.ts"],"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};","/**\n * The following code is modified based on\n * https://github.com/puppeteer/puppeteer/blob/main/packages/puppeteer-core/src/common/USKeyboardLayout.ts\n *\n * Copyright 2017 Google Inc.\n * SPDX-License-Identifier: Apache-2.0\n * https://github.com/puppeteer/puppeteer/blob/main/LICENSE\n */\nimport type { KeyInput } from 'puppeteer-core';\n\n/**\n * Only adapt for common macOS system hotkeys\n *\n * See issues:\n * - https://github.com/bytedance/UI-TARS-desktop/pull/560\n *\n * References:\n * - Mac shortcuts list: https://support.apple.com/zh-cn/102650\n * - Chrome: https://support.google.com/chrome/answer/157179\n * - CDP: https://chromedevtools.github.io/devtools-protocol/tot/Input/#method-dispatchKeyEvent\n * - Commands: https://source.chromium.org/chromium/chromium/src/+/main:third_party/blink/renderer/core/editing/commands/editor_command_names.h\n */\nexport const MAC_SYSTEM_HOTKEY_MAP = new Map<\n string,\n { key: KeyInput; commands: string }\n>([\n ['CorM+A', { key: 'KeyA', commands: 'SelectAll' }],\n ['CorM+KeyA', { key: 'KeyA', commands: 'SelectAll' }],\n\n ['CorM+X', { key: 'KeyX', commands: 'Cut' }],\n ['CorM+KeyX', { key: 'KeyX', commands: 'Cut' }],\n\n ['CorM+C', { key: 'KeyC', commands: 'Copy' }],\n ['CorM+KeyC', { key: 'KeyC', commands: 'Copy' }],\n\n ['CorM+V', { key: 'KeyV', commands: 'Paste' }],\n ['CorM+KeyV', { key: 'KeyV', commands: 'Paste' }],\n\n ['CorM+Z', { key: 'KeyZ', commands: 'Undo' }],\n ['CorM+KeyZ', { key: 'KeyZ', commands: 'Undo' }],\n\n ['CorM+Y', { key: 'KeyY', commands: 'Redo' }],\n ['CorM+KeyY', { key: 'KeyY', commands: 'Redo' }],\n ['CorM+Shift+Z', { key: 'KeyZ', commands: 'Redo' }],\n ['CorM+Shift+KeyZ', { key: 'KeyZ', commands: 'Redo' }],\n ['Shift+CorM+Z', { key: 'KeyZ', commands: 'Redo' }],\n ['Shift+CorM+KeyZ', { key: 'KeyZ', commands: 'Redo' }],\n]);\n\nexport const KEY_ABBR_TO_STANDARD_MAP: Readonly<Record<string, KeyInput>> = {\n // modifier keys\n ctrl: 'Control',\n cmd: 'Meta', // macOS only\n command: 'Meta', // macOS only\n opt: 'Alt', // macOS only\n option: 'Alt', // macOS only\n // arraw keys\n up: 'ArrowUp',\n down: 'ArrowDown',\n left: 'ArrowLeft',\n right: 'ArrowRight',\n // others\n esc: 'Escape',\n del: 'Delete',\n ins: 'Insert',\n pgup: 'PageUp',\n pgdown: 'PageDown',\n return: 'Enter',\n};\n\n// Auto-generated form puppeteer-core/src/common/USKeyboardLayout.ts _keyDefinitions\nexport const KEY_LOW_TO_STANDARD_MAP: Readonly<Record<string, KeyInput>> = {\n '0': '0',\n '1': '1',\n '2': '2',\n '3': '3',\n '4': '4',\n '5': '5',\n '6': '6',\n '7': '7',\n '8': '8',\n '9': '9',\n power: 'Power',\n eject: 'Eject',\n abort: 'Abort',\n help: 'Help',\n backspace: 'Backspace',\n tab: 'Tab',\n numpad5: 'Numpad5',\n numpadenter: 'NumpadEnter',\n enter: 'Enter',\n '\\r': '\\r',\n '\\n': '\\n',\n shiftleft: 'ShiftLeft',\n shiftright: 'ShiftRight',\n controlleft: 'ControlLeft',\n controlright: 'ControlRight',\n altleft: 'AltLeft',\n altright: 'AltRight',\n pause: 'Pause',\n capslock: 'CapsLock',\n escape: 'Escape',\n convert: 'Convert',\n nonconvert: 'NonConvert',\n space: 'Space',\n numpad9: 'Numpad9',\n pageup: 'PageUp',\n numpad3: 'Numpad3',\n pagedown: 'PageDown',\n end: 'End',\n numpad1: 'Numpad1',\n home: 'Home',\n numpad7: 'Numpad7',\n arrowleft: 'ArrowLeft',\n numpad4: 'Numpad4',\n numpad8: 'Numpad8',\n arrowup: 'ArrowUp',\n arrowright: 'ArrowRight',\n numpad6: 'Numpad6',\n numpad2: 'Numpad2',\n arrowdown: 'ArrowDown',\n select: 'Select',\n open: 'Open',\n printscreen: 'PrintScreen',\n insert: 'Insert',\n numpad0: 'Numpad0',\n delete: 'Delete',\n numpaddecimal: 'NumpadDecimal',\n digit0: 'Digit0',\n digit1: 'Digit1',\n digit2: 'Digit2',\n digit3: 'Digit3',\n digit4: 'Digit4',\n digit5: 'Digit5',\n digit6: 'Digit6',\n digit7: 'Digit7',\n digit8: 'Digit8',\n digit9: 'Digit9',\n keya: 'KeyA',\n keyb: 'KeyB',\n keyc: 'KeyC',\n keyd: 'KeyD',\n keye: 'KeyE',\n keyf: 'KeyF',\n keyg: 'KeyG',\n keyh: 'KeyH',\n keyi: 'KeyI',\n keyj: 'KeyJ',\n keyk: 'KeyK',\n keyl: 'KeyL',\n keym: 'KeyM',\n keyn: 'KeyN',\n keyo: 'KeyO',\n keyp: 'KeyP',\n keyq: 'KeyQ',\n keyr: 'KeyR',\n keys: 'KeyS',\n keyt: 'KeyT',\n keyu: 'KeyU',\n keyv: 'KeyV',\n keyw: 'KeyW',\n keyx: 'KeyX',\n keyy: 'KeyY',\n keyz: 'KeyZ',\n metaleft: 'MetaLeft',\n metaright: 'MetaRight',\n contextmenu: 'ContextMenu',\n numpadmultiply: 'NumpadMultiply',\n numpadadd: 'NumpadAdd',\n numpadsubtract: 'NumpadSubtract',\n numpaddivide: 'NumpadDivide',\n f1: 'F1',\n f2: 'F2',\n f3: 'F3',\n f4: 'F4',\n f5: 'F5',\n f6: 'F6',\n f7: 'F7',\n f8: 'F8',\n f9: 'F9',\n f10: 'F10',\n f11: 'F11',\n f12: 'F12',\n f13: 'F13',\n f14: 'F14',\n f15: 'F15',\n f16: 'F16',\n f17: 'F17',\n f18: 'F18',\n f19: 'F19',\n f20: 'F20',\n f21: 'F21',\n f22: 'F22',\n f23: 'F23',\n f24: 'F24',\n numlock: 'NumLock',\n scrolllock: 'ScrollLock',\n audiovolumemute: 'AudioVolumeMute',\n audiovolumedown: 'AudioVolumeDown',\n audiovolumeup: 'AudioVolumeUp',\n mediatracknext: 'MediaTrackNext',\n mediatrackprevious: 'MediaTrackPrevious',\n mediastop: 'MediaStop',\n mediaplaypause: 'MediaPlayPause',\n semicolon: 'Semicolon',\n equal: 'Equal',\n numpadequal: 'NumpadEqual',\n comma: 'Comma',\n minus: 'Minus',\n period: 'Period',\n slash: 'Slash',\n backquote: 'Backquote',\n bracketleft: 'BracketLeft',\n backslash: 'Backslash',\n bracketright: 'BracketRight',\n quote: 'Quote',\n altgraph: 'AltGraph',\n props: 'Props',\n cancel: 'Cancel',\n clear: 'Clear',\n shift: 'Shift',\n control: 'Control',\n alt: 'Alt',\n accept: 'Accept',\n modechange: 'ModeChange',\n ' ': ' ',\n print: 'Print',\n execute: 'Execute',\n '\\u0000': '\\u0000',\n a: 'A',\n b: 'B',\n c: 'C',\n d: 'D',\n e: 'E',\n f: 'F',\n g: 'G',\n h: 'H',\n i: 'I',\n j: 'J',\n k: 'K',\n l: 'L',\n m: 'M',\n n: 'N',\n o: 'O',\n p: 'P',\n q: 'Q',\n r: 'R',\n s: 'S',\n t: 'T',\n u: 'U',\n v: 'V',\n w: 'W',\n x: 'X',\n y: 'Y',\n z: 'Z',\n meta: 'Meta',\n '*': '*',\n '+': '+',\n '-': '-',\n '/': '/',\n ';': ';',\n '=': '=',\n ',': ',',\n '.': '.',\n '`': '`',\n '[': '[',\n '\\\\': '\\\\',\n ']': ']',\n \"'\": \"'\",\n attn: 'Attn',\n crsel: 'CrSel',\n exsel: 'ExSel',\n eraseeof: 'EraseEof',\n play: 'Play',\n zoomout: 'ZoomOut',\n ')': ')',\n '!': '!',\n '@': '@',\n '#': '#',\n $: '$',\n '%': '%',\n '^': '^',\n '&': '&',\n '(': '(',\n ':': ':',\n '<': '<',\n _: '_',\n '>': '>',\n '?': '?',\n '~': '~',\n '{': '{',\n '|': '|',\n '}': '}',\n '\"': '\"',\n softleft: 'SoftLeft',\n softright: 'SoftRight',\n camera: 'Camera',\n call: 'Call',\n endcall: 'EndCall',\n volumedown: 'VolumeDown',\n volumeup: 'VolumeUp',\n};\n"],"names":["__webpack_require__","definition","key","Object","obj","prop","Symbol","MAC_SYSTEM_HOTKEY_MAP","Map","KEY_ABBR_TO_STANDARD_MAP","KEY_LOW_TO_STANDARD_MAP"],"mappings":"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"}
@@ -0,0 +1,369 @@
1
+ /**
2
+ * Copyright (c) 2025 Bytedance, Inc. and its affiliates.
3
+ * SPDX-License-Identifier: Apache-2.0
4
+ */
5
+ const MAC_SYSTEM_HOTKEY_MAP = new Map([
6
+ [
7
+ 'CorM+A',
8
+ {
9
+ key: 'KeyA',
10
+ commands: 'SelectAll'
11
+ }
12
+ ],
13
+ [
14
+ 'CorM+KeyA',
15
+ {
16
+ key: 'KeyA',
17
+ commands: 'SelectAll'
18
+ }
19
+ ],
20
+ [
21
+ 'CorM+X',
22
+ {
23
+ key: 'KeyX',
24
+ commands: 'Cut'
25
+ }
26
+ ],
27
+ [
28
+ 'CorM+KeyX',
29
+ {
30
+ key: 'KeyX',
31
+ commands: 'Cut'
32
+ }
33
+ ],
34
+ [
35
+ 'CorM+C',
36
+ {
37
+ key: 'KeyC',
38
+ commands: 'Copy'
39
+ }
40
+ ],
41
+ [
42
+ 'CorM+KeyC',
43
+ {
44
+ key: 'KeyC',
45
+ commands: 'Copy'
46
+ }
47
+ ],
48
+ [
49
+ 'CorM+V',
50
+ {
51
+ key: 'KeyV',
52
+ commands: 'Paste'
53
+ }
54
+ ],
55
+ [
56
+ 'CorM+KeyV',
57
+ {
58
+ key: 'KeyV',
59
+ commands: 'Paste'
60
+ }
61
+ ],
62
+ [
63
+ 'CorM+Z',
64
+ {
65
+ key: 'KeyZ',
66
+ commands: 'Undo'
67
+ }
68
+ ],
69
+ [
70
+ 'CorM+KeyZ',
71
+ {
72
+ key: 'KeyZ',
73
+ commands: 'Undo'
74
+ }
75
+ ],
76
+ [
77
+ 'CorM+Y',
78
+ {
79
+ key: 'KeyY',
80
+ commands: 'Redo'
81
+ }
82
+ ],
83
+ [
84
+ 'CorM+KeyY',
85
+ {
86
+ key: 'KeyY',
87
+ commands: 'Redo'
88
+ }
89
+ ],
90
+ [
91
+ 'CorM+Shift+Z',
92
+ {
93
+ key: 'KeyZ',
94
+ commands: 'Redo'
95
+ }
96
+ ],
97
+ [
98
+ 'CorM+Shift+KeyZ',
99
+ {
100
+ key: 'KeyZ',
101
+ commands: 'Redo'
102
+ }
103
+ ],
104
+ [
105
+ 'Shift+CorM+Z',
106
+ {
107
+ key: 'KeyZ',
108
+ commands: 'Redo'
109
+ }
110
+ ],
111
+ [
112
+ 'Shift+CorM+KeyZ',
113
+ {
114
+ key: 'KeyZ',
115
+ commands: 'Redo'
116
+ }
117
+ ]
118
+ ]);
119
+ const KEY_ABBR_TO_STANDARD_MAP = {
120
+ ctrl: 'Control',
121
+ cmd: 'Meta',
122
+ command: 'Meta',
123
+ opt: 'Alt',
124
+ option: 'Alt',
125
+ up: 'ArrowUp',
126
+ down: 'ArrowDown',
127
+ left: 'ArrowLeft',
128
+ right: 'ArrowRight',
129
+ esc: 'Escape',
130
+ del: 'Delete',
131
+ ins: 'Insert',
132
+ pgup: 'PageUp',
133
+ pgdown: 'PageDown',
134
+ return: 'Enter'
135
+ };
136
+ const KEY_LOW_TO_STANDARD_MAP = {
137
+ 0: '0',
138
+ 1: '1',
139
+ 2: '2',
140
+ 3: '3',
141
+ 4: '4',
142
+ 5: '5',
143
+ 6: '6',
144
+ 7: '7',
145
+ 8: '8',
146
+ 9: '9',
147
+ power: 'Power',
148
+ eject: 'Eject',
149
+ abort: 'Abort',
150
+ help: 'Help',
151
+ backspace: 'Backspace',
152
+ tab: 'Tab',
153
+ numpad5: 'Numpad5',
154
+ numpadenter: 'NumpadEnter',
155
+ enter: 'Enter',
156
+ '\r': '\r',
157
+ '\n': '\n',
158
+ shiftleft: 'ShiftLeft',
159
+ shiftright: 'ShiftRight',
160
+ controlleft: 'ControlLeft',
161
+ controlright: 'ControlRight',
162
+ altleft: 'AltLeft',
163
+ altright: 'AltRight',
164
+ pause: 'Pause',
165
+ capslock: 'CapsLock',
166
+ escape: 'Escape',
167
+ convert: 'Convert',
168
+ nonconvert: 'NonConvert',
169
+ space: 'Space',
170
+ numpad9: 'Numpad9',
171
+ pageup: 'PageUp',
172
+ numpad3: 'Numpad3',
173
+ pagedown: 'PageDown',
174
+ end: 'End',
175
+ numpad1: 'Numpad1',
176
+ home: 'Home',
177
+ numpad7: 'Numpad7',
178
+ arrowleft: 'ArrowLeft',
179
+ numpad4: 'Numpad4',
180
+ numpad8: 'Numpad8',
181
+ arrowup: 'ArrowUp',
182
+ arrowright: 'ArrowRight',
183
+ numpad6: 'Numpad6',
184
+ numpad2: 'Numpad2',
185
+ arrowdown: 'ArrowDown',
186
+ select: 'Select',
187
+ open: 'Open',
188
+ printscreen: 'PrintScreen',
189
+ insert: 'Insert',
190
+ numpad0: 'Numpad0',
191
+ delete: 'Delete',
192
+ numpaddecimal: 'NumpadDecimal',
193
+ digit0: 'Digit0',
194
+ digit1: 'Digit1',
195
+ digit2: 'Digit2',
196
+ digit3: 'Digit3',
197
+ digit4: 'Digit4',
198
+ digit5: 'Digit5',
199
+ digit6: 'Digit6',
200
+ digit7: 'Digit7',
201
+ digit8: 'Digit8',
202
+ digit9: 'Digit9',
203
+ keya: 'KeyA',
204
+ keyb: 'KeyB',
205
+ keyc: 'KeyC',
206
+ keyd: 'KeyD',
207
+ keye: 'KeyE',
208
+ keyf: 'KeyF',
209
+ keyg: 'KeyG',
210
+ keyh: 'KeyH',
211
+ keyi: 'KeyI',
212
+ keyj: 'KeyJ',
213
+ keyk: 'KeyK',
214
+ keyl: 'KeyL',
215
+ keym: 'KeyM',
216
+ keyn: 'KeyN',
217
+ keyo: 'KeyO',
218
+ keyp: 'KeyP',
219
+ keyq: 'KeyQ',
220
+ keyr: 'KeyR',
221
+ keys: 'KeyS',
222
+ keyt: 'KeyT',
223
+ keyu: 'KeyU',
224
+ keyv: 'KeyV',
225
+ keyw: 'KeyW',
226
+ keyx: 'KeyX',
227
+ keyy: 'KeyY',
228
+ keyz: 'KeyZ',
229
+ metaleft: 'MetaLeft',
230
+ metaright: 'MetaRight',
231
+ contextmenu: 'ContextMenu',
232
+ numpadmultiply: 'NumpadMultiply',
233
+ numpadadd: 'NumpadAdd',
234
+ numpadsubtract: 'NumpadSubtract',
235
+ numpaddivide: 'NumpadDivide',
236
+ f1: 'F1',
237
+ f2: 'F2',
238
+ f3: 'F3',
239
+ f4: 'F4',
240
+ f5: 'F5',
241
+ f6: 'F6',
242
+ f7: 'F7',
243
+ f8: 'F8',
244
+ f9: 'F9',
245
+ f10: 'F10',
246
+ f11: 'F11',
247
+ f12: 'F12',
248
+ f13: 'F13',
249
+ f14: 'F14',
250
+ f15: 'F15',
251
+ f16: 'F16',
252
+ f17: 'F17',
253
+ f18: 'F18',
254
+ f19: 'F19',
255
+ f20: 'F20',
256
+ f21: 'F21',
257
+ f22: 'F22',
258
+ f23: 'F23',
259
+ f24: 'F24',
260
+ numlock: 'NumLock',
261
+ scrolllock: 'ScrollLock',
262
+ audiovolumemute: 'AudioVolumeMute',
263
+ audiovolumedown: 'AudioVolumeDown',
264
+ audiovolumeup: 'AudioVolumeUp',
265
+ mediatracknext: 'MediaTrackNext',
266
+ mediatrackprevious: 'MediaTrackPrevious',
267
+ mediastop: 'MediaStop',
268
+ mediaplaypause: 'MediaPlayPause',
269
+ semicolon: 'Semicolon',
270
+ equal: 'Equal',
271
+ numpadequal: 'NumpadEqual',
272
+ comma: 'Comma',
273
+ minus: 'Minus',
274
+ period: 'Period',
275
+ slash: 'Slash',
276
+ backquote: 'Backquote',
277
+ bracketleft: 'BracketLeft',
278
+ backslash: 'Backslash',
279
+ bracketright: 'BracketRight',
280
+ quote: 'Quote',
281
+ altgraph: 'AltGraph',
282
+ props: 'Props',
283
+ cancel: 'Cancel',
284
+ clear: 'Clear',
285
+ shift: 'Shift',
286
+ control: 'Control',
287
+ alt: 'Alt',
288
+ accept: 'Accept',
289
+ modechange: 'ModeChange',
290
+ ' ': ' ',
291
+ print: 'Print',
292
+ execute: 'Execute',
293
+ '\u0000': '\u0000',
294
+ a: 'A',
295
+ b: 'B',
296
+ c: 'C',
297
+ d: 'D',
298
+ e: 'E',
299
+ f: 'F',
300
+ g: 'G',
301
+ h: 'H',
302
+ i: 'I',
303
+ j: 'J',
304
+ k: 'K',
305
+ l: 'L',
306
+ m: 'M',
307
+ n: 'N',
308
+ o: 'O',
309
+ p: 'P',
310
+ q: 'Q',
311
+ r: 'R',
312
+ s: 'S',
313
+ t: 'T',
314
+ u: 'U',
315
+ v: 'V',
316
+ w: 'W',
317
+ x: 'X',
318
+ y: 'Y',
319
+ z: 'Z',
320
+ meta: 'Meta',
321
+ '*': '*',
322
+ '+': '+',
323
+ '-': '-',
324
+ '/': '/',
325
+ ';': ';',
326
+ '=': '=',
327
+ ',': ',',
328
+ '.': '.',
329
+ '`': '`',
330
+ '[': '[',
331
+ '\\': '\\',
332
+ ']': ']',
333
+ "'": "'",
334
+ attn: 'Attn',
335
+ crsel: 'CrSel',
336
+ exsel: 'ExSel',
337
+ eraseeof: 'EraseEof',
338
+ play: 'Play',
339
+ zoomout: 'ZoomOut',
340
+ ')': ')',
341
+ '!': '!',
342
+ '@': '@',
343
+ '#': '#',
344
+ $: '$',
345
+ '%': '%',
346
+ '^': '^',
347
+ '&': '&',
348
+ '(': '(',
349
+ ':': ':',
350
+ '<': '<',
351
+ _: '_',
352
+ '>': '>',
353
+ '?': '?',
354
+ '~': '~',
355
+ '{': '{',
356
+ '|': '|',
357
+ '}': '}',
358
+ '"': '"',
359
+ softleft: 'SoftLeft',
360
+ softright: 'SoftRight',
361
+ camera: 'Camera',
362
+ call: 'Call',
363
+ endcall: 'EndCall',
364
+ volumedown: 'VolumeDown',
365
+ volumeup: 'VolumeUp'
366
+ };
367
+ export { KEY_ABBR_TO_STANDARD_MAP, KEY_LOW_TO_STANDARD_MAP, MAC_SYSTEM_HOTKEY_MAP };
368
+
369
+ //# sourceMappingURL=key-map.mjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"actions/key-map.mjs","sources":["webpack://@agent-infra/browser/./src/actions/key-map.ts"],"sourcesContent":["/**\n * The following code is modified based on\n * https://github.com/puppeteer/puppeteer/blob/main/packages/puppeteer-core/src/common/USKeyboardLayout.ts\n *\n * Copyright 2017 Google Inc.\n * SPDX-License-Identifier: Apache-2.0\n * https://github.com/puppeteer/puppeteer/blob/main/LICENSE\n */\nimport type { KeyInput } from 'puppeteer-core';\n\n/**\n * Only adapt for common macOS system hotkeys\n *\n * See issues:\n * - https://github.com/bytedance/UI-TARS-desktop/pull/560\n *\n * References:\n * - Mac shortcuts list: https://support.apple.com/zh-cn/102650\n * - Chrome: https://support.google.com/chrome/answer/157179\n * - CDP: https://chromedevtools.github.io/devtools-protocol/tot/Input/#method-dispatchKeyEvent\n * - Commands: https://source.chromium.org/chromium/chromium/src/+/main:third_party/blink/renderer/core/editing/commands/editor_command_names.h\n */\nexport const MAC_SYSTEM_HOTKEY_MAP = new Map<\n string,\n { key: KeyInput; commands: string }\n>([\n ['CorM+A', { key: 'KeyA', commands: 'SelectAll' }],\n ['CorM+KeyA', { key: 'KeyA', commands: 'SelectAll' }],\n\n ['CorM+X', { key: 'KeyX', commands: 'Cut' }],\n ['CorM+KeyX', { key: 'KeyX', commands: 'Cut' }],\n\n ['CorM+C', { key: 'KeyC', commands: 'Copy' }],\n ['CorM+KeyC', { key: 'KeyC', commands: 'Copy' }],\n\n ['CorM+V', { key: 'KeyV', commands: 'Paste' }],\n ['CorM+KeyV', { key: 'KeyV', commands: 'Paste' }],\n\n ['CorM+Z', { key: 'KeyZ', commands: 'Undo' }],\n ['CorM+KeyZ', { key: 'KeyZ', commands: 'Undo' }],\n\n ['CorM+Y', { key: 'KeyY', commands: 'Redo' }],\n ['CorM+KeyY', { key: 'KeyY', commands: 'Redo' }],\n ['CorM+Shift+Z', { key: 'KeyZ', commands: 'Redo' }],\n ['CorM+Shift+KeyZ', { key: 'KeyZ', commands: 'Redo' }],\n ['Shift+CorM+Z', { key: 'KeyZ', commands: 'Redo' }],\n ['Shift+CorM+KeyZ', { key: 'KeyZ', commands: 'Redo' }],\n]);\n\nexport const KEY_ABBR_TO_STANDARD_MAP: Readonly<Record<string, KeyInput>> = {\n // modifier keys\n ctrl: 'Control',\n cmd: 'Meta', // macOS only\n command: 'Meta', // macOS only\n opt: 'Alt', // macOS only\n option: 'Alt', // macOS only\n // arraw keys\n up: 'ArrowUp',\n down: 'ArrowDown',\n left: 'ArrowLeft',\n right: 'ArrowRight',\n // others\n esc: 'Escape',\n del: 'Delete',\n ins: 'Insert',\n pgup: 'PageUp',\n pgdown: 'PageDown',\n return: 'Enter',\n};\n\n// Auto-generated form puppeteer-core/src/common/USKeyboardLayout.ts _keyDefinitions\nexport const KEY_LOW_TO_STANDARD_MAP: Readonly<Record<string, KeyInput>> = {\n '0': '0',\n '1': '1',\n '2': '2',\n '3': '3',\n '4': '4',\n '5': '5',\n '6': '6',\n '7': '7',\n '8': '8',\n '9': '9',\n power: 'Power',\n eject: 'Eject',\n abort: 'Abort',\n help: 'Help',\n backspace: 'Backspace',\n tab: 'Tab',\n numpad5: 'Numpad5',\n numpadenter: 'NumpadEnter',\n enter: 'Enter',\n '\\r': '\\r',\n '\\n': '\\n',\n shiftleft: 'ShiftLeft',\n shiftright: 'ShiftRight',\n controlleft: 'ControlLeft',\n controlright: 'ControlRight',\n altleft: 'AltLeft',\n altright: 'AltRight',\n pause: 'Pause',\n capslock: 'CapsLock',\n escape: 'Escape',\n convert: 'Convert',\n nonconvert: 'NonConvert',\n space: 'Space',\n numpad9: 'Numpad9',\n pageup: 'PageUp',\n numpad3: 'Numpad3',\n pagedown: 'PageDown',\n end: 'End',\n numpad1: 'Numpad1',\n home: 'Home',\n numpad7: 'Numpad7',\n arrowleft: 'ArrowLeft',\n numpad4: 'Numpad4',\n numpad8: 'Numpad8',\n arrowup: 'ArrowUp',\n arrowright: 'ArrowRight',\n numpad6: 'Numpad6',\n numpad2: 'Numpad2',\n arrowdown: 'ArrowDown',\n select: 'Select',\n open: 'Open',\n printscreen: 'PrintScreen',\n insert: 'Insert',\n numpad0: 'Numpad0',\n delete: 'Delete',\n numpaddecimal: 'NumpadDecimal',\n digit0: 'Digit0',\n digit1: 'Digit1',\n digit2: 'Digit2',\n digit3: 'Digit3',\n digit4: 'Digit4',\n digit5: 'Digit5',\n digit6: 'Digit6',\n digit7: 'Digit7',\n digit8: 'Digit8',\n digit9: 'Digit9',\n keya: 'KeyA',\n keyb: 'KeyB',\n keyc: 'KeyC',\n keyd: 'KeyD',\n keye: 'KeyE',\n keyf: 'KeyF',\n keyg: 'KeyG',\n keyh: 'KeyH',\n keyi: 'KeyI',\n keyj: 'KeyJ',\n keyk: 'KeyK',\n keyl: 'KeyL',\n keym: 'KeyM',\n keyn: 'KeyN',\n keyo: 'KeyO',\n keyp: 'KeyP',\n keyq: 'KeyQ',\n keyr: 'KeyR',\n keys: 'KeyS',\n keyt: 'KeyT',\n keyu: 'KeyU',\n keyv: 'KeyV',\n keyw: 'KeyW',\n keyx: 'KeyX',\n keyy: 'KeyY',\n keyz: 'KeyZ',\n metaleft: 'MetaLeft',\n metaright: 'MetaRight',\n contextmenu: 'ContextMenu',\n numpadmultiply: 'NumpadMultiply',\n numpadadd: 'NumpadAdd',\n numpadsubtract: 'NumpadSubtract',\n numpaddivide: 'NumpadDivide',\n f1: 'F1',\n f2: 'F2',\n f3: 'F3',\n f4: 'F4',\n f5: 'F5',\n f6: 'F6',\n f7: 'F7',\n f8: 'F8',\n f9: 'F9',\n f10: 'F10',\n f11: 'F11',\n f12: 'F12',\n f13: 'F13',\n f14: 'F14',\n f15: 'F15',\n f16: 'F16',\n f17: 'F17',\n f18: 'F18',\n f19: 'F19',\n f20: 'F20',\n f21: 'F21',\n f22: 'F22',\n f23: 'F23',\n f24: 'F24',\n numlock: 'NumLock',\n scrolllock: 'ScrollLock',\n audiovolumemute: 'AudioVolumeMute',\n audiovolumedown: 'AudioVolumeDown',\n audiovolumeup: 'AudioVolumeUp',\n mediatracknext: 'MediaTrackNext',\n mediatrackprevious: 'MediaTrackPrevious',\n mediastop: 'MediaStop',\n mediaplaypause: 'MediaPlayPause',\n semicolon: 'Semicolon',\n equal: 'Equal',\n numpadequal: 'NumpadEqual',\n comma: 'Comma',\n minus: 'Minus',\n period: 'Period',\n slash: 'Slash',\n backquote: 'Backquote',\n bracketleft: 'BracketLeft',\n backslash: 'Backslash',\n bracketright: 'BracketRight',\n quote: 'Quote',\n altgraph: 'AltGraph',\n props: 'Props',\n cancel: 'Cancel',\n clear: 'Clear',\n shift: 'Shift',\n control: 'Control',\n alt: 'Alt',\n accept: 'Accept',\n modechange: 'ModeChange',\n ' ': ' ',\n print: 'Print',\n execute: 'Execute',\n '\\u0000': '\\u0000',\n a: 'A',\n b: 'B',\n c: 'C',\n d: 'D',\n e: 'E',\n f: 'F',\n g: 'G',\n h: 'H',\n i: 'I',\n j: 'J',\n k: 'K',\n l: 'L',\n m: 'M',\n n: 'N',\n o: 'O',\n p: 'P',\n q: 'Q',\n r: 'R',\n s: 'S',\n t: 'T',\n u: 'U',\n v: 'V',\n w: 'W',\n x: 'X',\n y: 'Y',\n z: 'Z',\n meta: 'Meta',\n '*': '*',\n '+': '+',\n '-': '-',\n '/': '/',\n ';': ';',\n '=': '=',\n ',': ',',\n '.': '.',\n '`': '`',\n '[': '[',\n '\\\\': '\\\\',\n ']': ']',\n \"'\": \"'\",\n attn: 'Attn',\n crsel: 'CrSel',\n exsel: 'ExSel',\n eraseeof: 'EraseEof',\n play: 'Play',\n zoomout: 'ZoomOut',\n ')': ')',\n '!': '!',\n '@': '@',\n '#': '#',\n $: '$',\n '%': '%',\n '^': '^',\n '&': '&',\n '(': '(',\n ':': ':',\n '<': '<',\n _: '_',\n '>': '>',\n '?': '?',\n '~': '~',\n '{': '{',\n '|': '|',\n '}': '}',\n '\"': '\"',\n softleft: 'SoftLeft',\n softright: 'SoftRight',\n camera: 'Camera',\n call: 'Call',\n endcall: 'EndCall',\n volumedown: 'VolumeDown',\n volumeup: 'VolumeUp',\n};\n"],"names":["MAC_SYSTEM_HOTKEY_MAP","Map","KEY_ABBR_TO_STANDARD_MAP","KEY_LOW_TO_STANDARD_MAP"],"mappings":"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AAa;IACb,WAAW;IACX,cAAc;IACd,OAAO;IACP,UAAU;IACV,OAAO;IACP,QAAQ;IACR,OAAO;IACP,OAAO;IACP,SAAS;IACT,KAAK;IACL,QAAQ;IACR,YAAY;IACZ,KAAK;IACL,OAAO;IACP,SAAS;IACT,UAAU;IACV,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,MAAM;IACN,KAAK;IACL,KAAK;IACL,KAAK;IACL,KAAK;IACL,KAAK;IACL,KAAK;IACL,KAAK;IACL,KAAK;IACL,KAAK;IACL,KAAK;IACL,MAAM;IACN,KAAK;IACL,KAAK;IACL,MAAM;IACN,OAAO;IACP,OAAO;IACP,UAAU;IACV,MAAM;IACN,SAAS;IACT,KAAK;IACL,KAAK;IACL,KAAK;IACL,KAAK;IACL,GAAG;IACH,KAAK;IACL,KAAK;IACL,KAAK;IACL,KAAK;IACL,KAAK;IACL,KAAK;IACL,GAAG;IACH,KAAK;IACL,KAAK;IACL,KAAK;IACL,KAAK;IACL,KAAK;IACL,KAAK;IACL,KAAK;IACL,UAAU;IACV,WAAW;IACX,QAAQ;IACR,MAAM;IACN,SAAS;IACT,YAAY;IACZ,UAAU;AACZ"}
@@ -0,0 +1,21 @@
1
+ import type { Page } from 'puppeteer-core';
2
+ import type { EnvInfo, KeyboardOptions, KeyOrHotKeyInput, ActionResult } from '../types';
3
+ import type { TabDialog } from '../tabs/dialog';
4
+ export declare class Keyboard {
5
+ #private;
6
+ constructor(page: Page, dialog: TabDialog, env: EnvInfo);
7
+ /**
8
+ * Enhance puppeteer's [keyboard.press()](https://pptr.dev/api/puppeteer.keyboard.press) to support combination hotkeys.
9
+ */
10
+ press(key: KeyOrHotKeyInput, options?: KeyboardOptions): Promise<ActionResult>;
11
+ /**
12
+ * Enhance puppeteer's [keyboard.down()](https://pptr.dev/api/puppeteer.keyboard.down) to support combination hotkeys.
13
+ */
14
+ down(key: KeyOrHotKeyInput, options?: KeyboardOptions): Promise<ActionResult>;
15
+ /**
16
+ * Enhance puppeteer's [keyboard.up()](https://pptr.dev/api/puppeteer.keyboard.up) to support combination hotkeys.
17
+ */
18
+ up(key: KeyOrHotKeyInput): Promise<ActionResult>;
19
+ type(text: string, options?: KeyboardOptions): Promise<ActionResult>;
20
+ }
21
+ //# sourceMappingURL=keyboard.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"keyboard.d.ts","sourceRoot":"","sources":["../../src/actions/keyboard.ts"],"names":[],"mappings":"AAaA,OAAO,KAAK,EAAY,IAAI,EAAE,MAAM,gBAAgB,CAAC;AACrD,OAAO,KAAK,EACV,OAAO,EAEP,eAAe,EACf,gBAAgB,EAChB,YAAY,EACb,MAAM,UAAU,CAAC;AAClB,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,gBAAgB,CAAC;AAEhD,qBAAa,QAAQ;;gBAKP,IAAI,EAAE,IAAI,EAAE,MAAM,EAAE,SAAS,EAAE,GAAG,EAAE,OAAO;IAMvD;;OAEG;IACG,KAAK,CACT,GAAG,EAAE,gBAAgB,EACrB,OAAO,GAAE,eAAoB,GAC5B,OAAO,CAAC,YAAY,CAAC;IA0BxB;;OAEG;IACG,IAAI,CACR,GAAG,EAAE,gBAAgB,EACrB,OAAO,GAAE,eAAoB,GAC5B,OAAO,CAAC,YAAY,CAAC;IAqBxB;;OAEG;IACG,EAAE,CAAC,GAAG,EAAE,gBAAgB,GAAG,OAAO,CAAC,YAAY,CAAC;IAchD,IAAI,CACR,IAAI,EAAE,MAAM,EACZ,OAAO,GAAE,eAAoB,GAC5B,OAAO,CAAC,YAAY,CAAC;CAoFzB"}
@@ -0,0 +1,196 @@
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__.n = (module)=>{
9
+ var getter = module && module.__esModule ? ()=>module['default'] : ()=>module;
10
+ __webpack_require__.d(getter, {
11
+ a: getter
12
+ });
13
+ return getter;
14
+ };
15
+ })();
16
+ (()=>{
17
+ __webpack_require__.d = (exports1, definition)=>{
18
+ for(var key in definition)if (__webpack_require__.o(definition, key) && !__webpack_require__.o(exports1, key)) Object.defineProperty(exports1, key, {
19
+ enumerable: true,
20
+ get: definition[key]
21
+ });
22
+ };
23
+ })();
24
+ (()=>{
25
+ __webpack_require__.o = (obj, prop)=>Object.prototype.hasOwnProperty.call(obj, prop);
26
+ })();
27
+ (()=>{
28
+ __webpack_require__.r = (exports1)=>{
29
+ if ('undefined' != typeof Symbol && Symbol.toStringTag) Object.defineProperty(exports1, Symbol.toStringTag, {
30
+ value: 'Module'
31
+ });
32
+ Object.defineProperty(exports1, '__esModule', {
33
+ value: true
34
+ });
35
+ };
36
+ })();
37
+ var __webpack_exports__ = {};
38
+ __webpack_require__.r(__webpack_exports__);
39
+ __webpack_require__.d(__webpack_exports__, {
40
+ Keyboard: ()=>Keyboard
41
+ });
42
+ const external_delay_namespaceObject = require("delay");
43
+ var external_delay_default = /*#__PURE__*/ __webpack_require__.n(external_delay_namespaceObject);
44
+ const external_key_map_js_namespaceObject = require("./key-map.js");
45
+ function _check_private_redeclaration(obj, privateCollection) {
46
+ if (privateCollection.has(obj)) throw new TypeError("Cannot initialize the same private elements twice on an object");
47
+ }
48
+ function _class_apply_descriptor_get(receiver, descriptor) {
49
+ if (descriptor.get) return descriptor.get.call(receiver);
50
+ return descriptor.value;
51
+ }
52
+ function _class_apply_descriptor_set(receiver, descriptor, value) {
53
+ if (descriptor.set) descriptor.set.call(receiver, value);
54
+ else {
55
+ if (!descriptor.writable) throw new TypeError("attempted to set read only private field");
56
+ descriptor.value = value;
57
+ }
58
+ }
59
+ function _class_extract_field_descriptor(receiver, privateMap, action) {
60
+ if (!privateMap.has(receiver)) throw new TypeError("attempted to " + action + " private field on non-instance");
61
+ return privateMap.get(receiver);
62
+ }
63
+ function _class_private_field_get(receiver, privateMap) {
64
+ var descriptor = _class_extract_field_descriptor(receiver, privateMap, "get");
65
+ return _class_apply_descriptor_get(receiver, descriptor);
66
+ }
67
+ function _class_private_field_init(obj, privateMap, value) {
68
+ _check_private_redeclaration(obj, privateMap);
69
+ privateMap.set(obj, value);
70
+ }
71
+ function _class_private_field_set(receiver, privateMap, value) {
72
+ var descriptor = _class_extract_field_descriptor(receiver, privateMap, "set");
73
+ _class_apply_descriptor_set(receiver, descriptor, value);
74
+ return value;
75
+ }
76
+ function _class_private_method_get(receiver, privateSet, fn) {
77
+ if (!privateSet.has(receiver)) throw new TypeError("attempted to get private field on non-instance");
78
+ return fn;
79
+ }
80
+ function _class_private_method_init(obj, privateSet) {
81
+ _check_private_redeclaration(obj, privateSet);
82
+ privateSet.add(obj);
83
+ }
84
+ var _page = /*#__PURE__*/ new WeakMap(), _env = /*#__PURE__*/ new WeakMap(), _dialog = /*#__PURE__*/ new WeakMap(), _formatHotkey = /*#__PURE__*/ new WeakSet(), _macOSCDPHotKey = /*#__PURE__*/ new WeakSet(), _buildDialogResponse = /*#__PURE__*/ new WeakSet();
85
+ class Keyboard {
86
+ async press(key, options = {}) {
87
+ if (_class_private_field_get(this, _dialog).isOpen) return _class_private_method_get(this, _buildDialogResponse, buildDialogResponse).call(this, 'press');
88
+ const formattedHotkey = _class_private_method_get(this, _formatHotkey, formatHotkey).call(this, key);
89
+ if ('macOS' === _class_private_field_get(this, _env).osName && 'Chrome' === _class_private_field_get(this, _env).browserName) {
90
+ const success = await _class_private_method_get(this, _macOSCDPHotKey, macOSCDPHotKey).call(this, formattedHotkey, options);
91
+ if (success) return {
92
+ success: true
93
+ };
94
+ }
95
+ for (const key of formattedHotkey)await _class_private_field_get(this, _page).keyboard.down(key);
96
+ await external_delay_default()(options.delay ?? 0);
97
+ for (const key of formattedHotkey.reverse())await _class_private_field_get(this, _page).keyboard.up(key);
98
+ return {
99
+ success: true
100
+ };
101
+ }
102
+ async down(key, options = {}) {
103
+ if (_class_private_field_get(this, _dialog).isOpen) return _class_private_method_get(this, _buildDialogResponse, buildDialogResponse).call(this, 'down');
104
+ const formattedHotkey = _class_private_method_get(this, _formatHotkey, formatHotkey).call(this, key);
105
+ if ('macOS' === _class_private_field_get(this, _env).osName && 'Chrome' === _class_private_field_get(this, _env).browserName) {
106
+ const success = await _class_private_method_get(this, _macOSCDPHotKey, macOSCDPHotKey).call(this, formattedHotkey, options);
107
+ if (success) return {
108
+ success: true
109
+ };
110
+ }
111
+ for (const key of formattedHotkey)await _class_private_field_get(this, _page).keyboard.down(key);
112
+ return {
113
+ success: true
114
+ };
115
+ }
116
+ async up(key) {
117
+ if (_class_private_field_get(this, _dialog).isOpen) return _class_private_method_get(this, _buildDialogResponse, buildDialogResponse).call(this, 'up');
118
+ const formattedHotkey = _class_private_method_get(this, _formatHotkey, formatHotkey).call(this, key);
119
+ for (const key of formattedHotkey.reverse())await _class_private_field_get(this, _page).keyboard.up(key);
120
+ return {
121
+ success: true
122
+ };
123
+ }
124
+ async type(text, options = {}) {
125
+ if (_class_private_field_get(this, _dialog).isOpen) return _class_private_method_get(this, _buildDialogResponse, buildDialogResponse).call(this, 'type');
126
+ if (text.length < 15 && options.delay) await _class_private_field_get(this, _page).keyboard.type(text, options);
127
+ else await _class_private_field_get(this, _page).keyboard.sendCharacter(text);
128
+ return {
129
+ success: true
130
+ };
131
+ }
132
+ constructor(page, dialog, env){
133
+ _class_private_method_init(this, _formatHotkey);
134
+ _class_private_method_init(this, _macOSCDPHotKey);
135
+ _class_private_method_init(this, _buildDialogResponse);
136
+ _class_private_field_init(this, _page, {
137
+ writable: true,
138
+ value: void 0
139
+ });
140
+ _class_private_field_init(this, _env, {
141
+ writable: true,
142
+ value: void 0
143
+ });
144
+ _class_private_field_init(this, _dialog, {
145
+ writable: true,
146
+ value: void 0
147
+ });
148
+ _class_private_field_set(this, _page, page);
149
+ _class_private_field_set(this, _dialog, dialog);
150
+ _class_private_field_set(this, _env, env);
151
+ }
152
+ }
153
+ function formatHotkey(hotkey) {
154
+ const lowerCaseHotkey = hotkey.toLowerCase();
155
+ const keys = lowerCaseHotkey.split(/[\s+]+/);
156
+ const formattedKeys = keys.map((key)=>{
157
+ if (external_key_map_js_namespaceObject.KEY_ABBR_TO_STANDARD_MAP[key]) return external_key_map_js_namespaceObject.KEY_ABBR_TO_STANDARD_MAP[key];
158
+ if (external_key_map_js_namespaceObject.KEY_LOW_TO_STANDARD_MAP[key]) return external_key_map_js_namespaceObject.KEY_LOW_TO_STANDARD_MAP[key];
159
+ throw new Error('Unsupported key: ' + key);
160
+ });
161
+ return formattedKeys;
162
+ }
163
+ async function macOSCDPHotKey(keys, options) {
164
+ const hotkey = keys.map((key)=>{
165
+ if ('Control' === key || 'Meta' === key) return 'CorM';
166
+ return key;
167
+ }).join('+');
168
+ const command = external_key_map_js_namespaceObject.MAC_SYSTEM_HOTKEY_MAP.get(hotkey);
169
+ if (command) {
170
+ await _class_private_field_get(this, _page).keyboard.down(command.key, {
171
+ commands: [
172
+ command.commands
173
+ ]
174
+ });
175
+ await external_delay_default()(options.delay ?? 0);
176
+ await _class_private_field_get(this, _page).keyboard.up(command.key);
177
+ return true;
178
+ }
179
+ return false;
180
+ }
181
+ function buildDialogResponse(type) {
182
+ return {
183
+ success: false,
184
+ message: `Cannot perform keyboard.${type}() operation because there is a dialog on the current page.`,
185
+ detail: _class_private_field_get(this, _dialog).meta
186
+ };
187
+ }
188
+ exports.Keyboard = __webpack_exports__.Keyboard;
189
+ for(var __webpack_i__ in __webpack_exports__)if (-1 === [
190
+ "Keyboard"
191
+ ].indexOf(__webpack_i__)) exports[__webpack_i__] = __webpack_exports__[__webpack_i__];
192
+ Object.defineProperty(exports, '__esModule', {
193
+ value: true
194
+ });
195
+
196
+ //# sourceMappingURL=keyboard.js.map