@agent-infra/browser 0.1.6 → 0.2.0-alpha.3

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,149 @@
1
+ /**
2
+ * Copyright (c) 2025 Bytedance, Inc. and its affiliates.
3
+ * SPDX-License-Identifier: Apache-2.0
4
+ */
5
+ import { connect, launch } from "puppeteer-core";
6
+ import { BrowserFinder } from "@agent-infra/browser-finder";
7
+ import { Tabs } from "../tabs/tabs.mjs";
8
+ import { getEnvInfo } from "../env.mjs";
9
+ import { BaseBrowser } from "./base.mjs";
10
+ function _check_private_redeclaration(obj, privateCollection) {
11
+ if (privateCollection.has(obj)) throw new TypeError("Cannot initialize the same private elements twice on an object");
12
+ }
13
+ function _class_private_method_get(receiver, privateSet, fn) {
14
+ if (!privateSet.has(receiver)) throw new TypeError("attempted to get private field on non-instance");
15
+ return fn;
16
+ }
17
+ function _class_private_method_init(obj, privateSet) {
18
+ _check_private_redeclaration(obj, privateSet);
19
+ privateSet.add(obj);
20
+ }
21
+ var _init = /*#__PURE__*/ new WeakSet(), _processOptions = /*#__PURE__*/ new WeakSet(), _isConnectMode = /*#__PURE__*/ new WeakSet(), _launch = /*#__PURE__*/ new WeakSet(), _connect = /*#__PURE__*/ new WeakSet();
22
+ class Browser extends BaseBrowser {
23
+ static async create(options = {}) {
24
+ const browser = new Browser();
25
+ await _class_private_method_get(browser, _init, init).call(browser, options);
26
+ return browser;
27
+ }
28
+ cookies() {
29
+ return this.pptrBrowser.cookies();
30
+ }
31
+ setCookie(...cookies) {
32
+ return this.pptrBrowser.setCookie(...cookies);
33
+ }
34
+ deleteCookie(...cookies) {
35
+ return this.pptrBrowser.deleteCookie(...cookies);
36
+ }
37
+ deleteMatchingCookies(...filters) {
38
+ return this.pptrBrowser.deleteMatchingCookies(...filters);
39
+ }
40
+ async close() {
41
+ var _this_pptrBrowser;
42
+ this.isIntentionalDisconnect = true;
43
+ await this.destroyAllTabs();
44
+ await (null == (_this_pptrBrowser = this.pptrBrowser) ? void 0 : _this_pptrBrowser.close());
45
+ }
46
+ async performReconnect() {
47
+ const connectOptions = {
48
+ browserWSEndpoint: this.wsEndpoint,
49
+ defaultViewport: this.defaultViewport
50
+ };
51
+ this.pptrBrowser = await connect(connectOptions);
52
+ this.wsEndpoint = this.pptrBrowser.wsEndpoint();
53
+ this._tabs = await Tabs.create(this.pptrBrowser, {
54
+ viewport: this.defaultViewport,
55
+ envInfo: this._envInfo
56
+ });
57
+ const activeTab = this.getActiveTab();
58
+ if (activeTab) await activeTab._active();
59
+ }
60
+ constructor(){
61
+ super(), _class_private_method_init(this, _init), _class_private_method_init(this, _processOptions), _class_private_method_init(this, _isConnectMode), _class_private_method_init(this, _launch), _class_private_method_init(this, _connect);
62
+ }
63
+ }
64
+ async function init(options) {
65
+ const processedOptions = _class_private_method_get(this, _processOptions, processOptions).call(this, options);
66
+ if (_class_private_method_get(this, _isConnectMode, isConnectMode).call(this, processedOptions)) await _class_private_method_get(this, _connect, connect1).call(this, processedOptions);
67
+ else await _class_private_method_get(this, _launch, launch1).call(this, processedOptions);
68
+ }
69
+ function processOptions(options) {
70
+ var _processedOptions_executablePath;
71
+ const processedOptions = {
72
+ ...options
73
+ };
74
+ const findBrowserPath = ()=>{
75
+ const finder = new BrowserFinder();
76
+ const browsers = [
77
+ 'chrome',
78
+ 'edge'
79
+ ];
80
+ const foundBrowser = browsers.find((browser)=>{
81
+ try {
82
+ finder.findBrowser(browser);
83
+ return true;
84
+ } catch {
85
+ return false;
86
+ }
87
+ });
88
+ if (!foundBrowser) throw new Error('No Chrome or Edge browser found. Please install Chrome or Edge browser first.');
89
+ return finder.findBrowser(foundBrowser).path;
90
+ };
91
+ const setArgs = ()=>{
92
+ const args = processedOptions.args || [];
93
+ const defaultArgs = [
94
+ '--mute-audio',
95
+ '--no-default-browser-check',
96
+ '--ash-no-nudges'
97
+ ];
98
+ const windowSizeArg = `--window-size=${this.defaultViewport.width},${this.defaultViewport.height + 90}`;
99
+ for (const arg of defaultArgs)if (!args.includes(arg)) args.push(arg);
100
+ if (!args.find((arg)=>arg.startsWith('--window-size'))) args.push(windowSizeArg);
101
+ processedOptions.args = args;
102
+ const enableAutomationArg = '--enable-automation';
103
+ if (processedOptions.ignoreDefaultArgs) {
104
+ if (Array.isArray(processedOptions.ignoreDefaultArgs)) {
105
+ const ignoreArgs = processedOptions.ignoreDefaultArgs;
106
+ if (!ignoreArgs.includes(enableAutomationArg)) ignoreArgs.push(enableAutomationArg);
107
+ }
108
+ } else processedOptions.ignoreDefaultArgs = [
109
+ enableAutomationArg
110
+ ];
111
+ };
112
+ processedOptions.defaultViewport = this.setDefaultViewport(options.defaultViewport);
113
+ if ('firefox' === processedOptions.browser || (null == (_processedOptions_executablePath = processedOptions.executablePath) ? void 0 : _processedOptions_executablePath.toLowerCase().includes('firefox')) || 'webDriverBiDi' === processedOptions.protocol) throw new Error('Firefox is not supported. This package is based on CDP (Chrome DevTools Protocol).');
114
+ if (!_class_private_method_get(this, _isConnectMode, isConnectMode).call(this, processedOptions) && !processedOptions.executablePath) {
115
+ processedOptions.executablePath = findBrowserPath();
116
+ setArgs();
117
+ }
118
+ return processedOptions;
119
+ }
120
+ function isConnectMode(options) {
121
+ return !!(options.browserWSEndpoint || options.browserURL);
122
+ }
123
+ async function launch1(options) {
124
+ this.pptrBrowser = await launch(options);
125
+ if (!this.pptrBrowser) throw new Error('Puppeteer browser not launch');
126
+ this.wsEndpoint = this.pptrBrowser.wsEndpoint();
127
+ this._envInfo = await getEnvInfo(this.pptrBrowser);
128
+ this._tabs = await Tabs.create(this.pptrBrowser, {
129
+ viewport: this.defaultViewport,
130
+ envInfo: this._envInfo,
131
+ userAgentInfo: this.userAgentInfo
132
+ });
133
+ this.setupAutoReconnect();
134
+ }
135
+ async function connect1(options) {
136
+ this.pptrBrowser = await connect(options);
137
+ if (!this.pptrBrowser) throw new Error('Puppeteer browser not connect');
138
+ this.wsEndpoint = this.pptrBrowser.wsEndpoint();
139
+ this._envInfo = await getEnvInfo(this.pptrBrowser);
140
+ this._tabs = await Tabs.create(this.pptrBrowser, {
141
+ viewport: this.defaultViewport,
142
+ envInfo: this._envInfo,
143
+ userAgentInfo: this.userAgentInfo
144
+ });
145
+ this.setupAutoReconnect();
146
+ }
147
+ export { Browser };
148
+
149
+ //# sourceMappingURL=browser.mjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"browser/browser.mjs","sources":["webpack://@agent-infra/browser/./src/browser/browser.ts"],"sourcesContent":["/*\n * Copyright (c) 2025 Bytedance, Inc. and its affiliates.\n * SPDX-License-Identifier: Apache-2.0\n */\n\nimport { launch, connect } from 'puppeteer-core';\nimport { BrowserFinder } from '@agent-infra/browser-finder';\nimport { Tabs } from '../tabs/tabs';\nimport { getEnvInfo } from '../env';\nimport { BaseBrowser } from './base';\n\nimport type {\n Cookie,\n CookieData,\n DeleteCookiesRequest,\n LaunchOptions,\n} from 'puppeteer-core';\n\nexport class Browser extends BaseBrowser<Tabs> {\n /**\n * Create a browser instance (launch or connect based on options)\n */\n static async create(options: LaunchOptions = {}): Promise<Browser> {\n const browser = new Browser();\n await browser.#init(options);\n return browser;\n }\n\n constructor() {\n super();\n }\n\n // #region cookies\n\n /**\n * cookies API\n *\n * @doc: https://pptr.dev/guides/cookies#setting-cookies\n */\n\n cookies() {\n return this.pptrBrowser!.cookies();\n }\n\n setCookie(...cookies: CookieData[]) {\n return this.pptrBrowser!.setCookie(...cookies);\n }\n\n deleteCookie(...cookies: Cookie[]) {\n return this.pptrBrowser!.deleteCookie(...cookies);\n }\n\n deleteMatchingCookies(...filters: DeleteCookiesRequest[]) {\n return this.pptrBrowser!.deleteMatchingCookies(...filters);\n }\n\n // #endregion\n\n // #region lifecycle\n\n async close() {\n this.isIntentionalDisconnect = true;\n\n await this.destroyAllTabs();\n await this.pptrBrowser?.close();\n }\n\n // #endregion\n\n // #region launch & connect\n\n async #init(options: LaunchOptions): Promise<void> {\n const processedOptions = this.#processOptions(options);\n\n if (this.#isConnectMode(processedOptions)) {\n await this.#connect(processedOptions);\n } else {\n await this.#launch(processedOptions);\n }\n }\n\n #processOptions(options: LaunchOptions): LaunchOptions {\n const processedOptions = { ...options };\n\n const findBrowserPath = () => {\n const finder = new BrowserFinder();\n const browsers = ['chrome', 'edge'] as const;\n\n const foundBrowser = browsers.find((browser) => {\n try {\n finder.findBrowser(browser);\n return true;\n } catch {\n return false;\n }\n });\n\n if (!foundBrowser) {\n throw new Error(\n 'No Chrome or Edge browser found. Please install Chrome or Edge browser first.',\n );\n }\n\n return finder.findBrowser(foundBrowser).path;\n };\n\n const setArgs = () => {\n const args = processedOptions.args || [];\n // https://github.com/GoogleChrome/chrome-launcher/blob/main/docs/chrome-flags-for-tools.md\n const defaultArgs = [\n '--mute-audio', // Mute any audio\n '--no-default-browser-check', // Disable the default browser check, do not prompt to set it as such\n '--ash-no-nudges', // Avoids blue bubble \"user education\" nudges\n ];\n // window-size includes some Chrome UI components (such as tabs, URL input box, etc.),\n // so an additional 90 pixels should be added to the viewport height.\n const windowSizeArg = `--window-size=${this.defaultViewport.width},${this.defaultViewport.height + 90}`;\n\n // args\n for (const arg of defaultArgs) {\n if (!args.includes(arg)) {\n args.push(arg);\n }\n }\n if (!args.find((arg) => arg.startsWith('--window-size'))) {\n args.push(windowSizeArg);\n }\n\n processedOptions.args = args;\n\n // ignoreArgs\n const enableAutomationArg = '--enable-automation';\n if (processedOptions.ignoreDefaultArgs) {\n if (Array.isArray(processedOptions.ignoreDefaultArgs)) {\n const ignoreArgs = processedOptions.ignoreDefaultArgs;\n if (!ignoreArgs.includes(enableAutomationArg)) {\n ignoreArgs.push(enableAutomationArg);\n }\n }\n } else {\n processedOptions.ignoreDefaultArgs = [enableAutomationArg];\n }\n };\n\n // 1.Set default viewport\n processedOptions.defaultViewport = this.setDefaultViewport(\n options.defaultViewport,\n );\n\n // 2.Validate browser type\n if (\n processedOptions.browser === 'firefox' ||\n processedOptions.executablePath?.toLowerCase().includes('firefox') ||\n processedOptions.protocol === 'webDriverBiDi'\n ) {\n throw new Error(\n 'Firefox is not supported. This package is based on CDP (Chrome DevTools Protocol).',\n );\n }\n\n if (\n !this.#isConnectMode(processedOptions) &&\n !processedOptions.executablePath\n ) {\n // 3.Set executable path if needed\n processedOptions.executablePath = findBrowserPath();\n\n // 4.Optimize args and ignoreDefaultArgs for launch mode\n setArgs();\n }\n\n return processedOptions;\n }\n\n #isConnectMode(options: LaunchOptions): boolean {\n return !!(options.browserWSEndpoint || options.browserURL);\n }\n\n async #launch(options: LaunchOptions): Promise<void> {\n this.pptrBrowser = await launch(options);\n\n if (!this.pptrBrowser) {\n throw new Error('Puppeteer browser not launch');\n }\n\n this.wsEndpoint = this.pptrBrowser.wsEndpoint();\n\n this._envInfo = await getEnvInfo(this.pptrBrowser);\n this._tabs = await Tabs.create(this.pptrBrowser, {\n viewport: this.defaultViewport,\n envInfo: this._envInfo,\n userAgentInfo: this.userAgentInfo,\n });\n this.setupAutoReconnect();\n }\n\n async #connect(options: LaunchOptions): Promise<void> {\n this.pptrBrowser = await connect(options);\n\n if (!this.pptrBrowser) {\n throw new Error('Puppeteer browser not connect');\n }\n\n this.wsEndpoint = this.pptrBrowser.wsEndpoint();\n\n this._envInfo = await getEnvInfo(this.pptrBrowser);\n this._tabs = await Tabs.create(this.pptrBrowser, {\n viewport: this.defaultViewport,\n envInfo: this._envInfo,\n userAgentInfo: this.userAgentInfo,\n });\n this.setupAutoReconnect();\n }\n\n override async performReconnect(): Promise<void> {\n const connectOptions = {\n browserWSEndpoint: this.wsEndpoint,\n defaultViewport: this.defaultViewport,\n };\n this.pptrBrowser = await connect(connectOptions);\n\n this.wsEndpoint = this.pptrBrowser.wsEndpoint();\n this._tabs = await Tabs.create(this.pptrBrowser, {\n viewport: this.defaultViewport,\n envInfo: this._envInfo!,\n });\n\n const activeTab = this.getActiveTab();\n if (activeTab) {\n await activeTab._active();\n }\n }\n\n // #endregion\n}\n"],"names":["_init","processOptions","isConnectMode","_launch","_connect","Browser","BaseBrowser","options","browser","init","cookies","filters","_this_pptrBrowser","connectOptions","connect","Tabs","activeTab","launch1","connect1","processedOptions","_processedOptions_executablePath","findBrowserPath","finder","BrowserFinder","browsers","foundBrowser","Error","setArgs","args","defaultArgs","windowSizeArg","arg","enableAutomationArg","Array","ignoreArgs","launch","getEnvInfo"],"mappings":"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"}
package/dist/env.d.ts ADDED
@@ -0,0 +1,4 @@
1
+ import type { Browser } from 'puppeteer-core';
2
+ import type { EnvInfo } from './types/env';
3
+ export declare function getEnvInfo(browser: Browser): Promise<EnvInfo>;
4
+ //# sourceMappingURL=env.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"env.d.ts","sourceRoot":"","sources":["../src/env.ts"],"names":[],"mappings":"AAIA,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,gBAAgB,CAAC;AAC9C,OAAO,KAAK,EAAuB,OAAO,EAAE,MAAM,aAAa,CAAC;AAEhE,wBAAsB,UAAU,CAAC,OAAO,EAAE,OAAO,GAAG,OAAO,CAAC,OAAO,CAAC,CA2FnE"}
package/dist/env.js ADDED
@@ -0,0 +1,96 @@
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
+ getEnvInfo: ()=>getEnvInfo
32
+ });
33
+ async function getEnvInfo(browser) {
34
+ let osName = 'Unknown';
35
+ let browserName = 'Unknown';
36
+ let browserVersion = 'Unknown';
37
+ try {
38
+ const client = await browser.target().createCDPSession();
39
+ const systemInfo = await client.send('SystemInfo.getInfo');
40
+ const cdpBrowserVersion = await browser.version();
41
+ await client.detach();
42
+ if (systemInfo.modelName) {
43
+ const modelName = systemInfo.modelName.toLowerCase();
44
+ if (modelName.includes('win') || modelName.includes('surface')) osName = 'Windows';
45
+ else if (modelName.includes('mac') || modelName.includes('darwin')) osName = 'macOS';
46
+ else if (modelName.includes('linux')) osName = 'Linux';
47
+ }
48
+ const versionStr = cdpBrowserVersion.toLowerCase();
49
+ if (versionStr.includes('chrome')) browserName = 'Chrome';
50
+ else if (versionStr.includes('edge') || versionStr.includes('edg')) browserName = 'Edge';
51
+ else if (versionStr.includes('firefox')) browserName = 'Firefox';
52
+ browserVersion = versionStr.split('/')[1];
53
+ if ('Unknown' !== osName && 'Unknown' !== browserName && 'Unknown' !== browserVersion) return {
54
+ osName,
55
+ browserName,
56
+ browserVersion
57
+ };
58
+ } catch (error) {
59
+ console.warn('Failed to get environment info via CDP, falling back to userAgent');
60
+ }
61
+ const userAgent = (await browser.userAgent()).toLowerCase();
62
+ if ('Unknown' === osName) {
63
+ if (userAgent.includes('windows') || userAgent.includes('win32') || userAgent.includes('win64')) osName = 'Windows';
64
+ else if (userAgent.includes('mac os x') || userAgent.includes('macos')) osName = 'macOS';
65
+ else if (userAgent.includes('linux') && !userAgent.includes('android')) osName = 'Linux';
66
+ }
67
+ if ('Unknown' === browserName) {
68
+ if (userAgent.includes('edg/') || userAgent.includes('edge/')) {
69
+ browserName = 'Edge';
70
+ const edgeMatch = userAgent.match(/edg?\/([0-9.]+)/);
71
+ if (edgeMatch && 'Unknown' === browserVersion) browserVersion = edgeMatch[1];
72
+ } else if (userAgent.includes('chrome/') && !userAgent.includes('edg')) {
73
+ browserName = 'Chrome';
74
+ const chromeMatch = userAgent.match(/chrome\/([0-9.]+)/);
75
+ if (chromeMatch && 'Unknown' === browserVersion) browserVersion = chromeMatch[1];
76
+ } else if (userAgent.includes('firefox/')) {
77
+ browserName = 'Firefox';
78
+ const firefoxMatch = userAgent.match(/firefox\/([0-9.]+)/);
79
+ if (firefoxMatch && 'Unknown' === browserVersion) browserVersion = firefoxMatch[1];
80
+ }
81
+ }
82
+ return {
83
+ osName,
84
+ browserName,
85
+ browserVersion
86
+ };
87
+ }
88
+ exports.getEnvInfo = __webpack_exports__.getEnvInfo;
89
+ for(var __webpack_i__ in __webpack_exports__)if (-1 === [
90
+ "getEnvInfo"
91
+ ].indexOf(__webpack_i__)) exports[__webpack_i__] = __webpack_exports__[__webpack_i__];
92
+ Object.defineProperty(exports, '__esModule', {
93
+ value: true
94
+ });
95
+
96
+ //# sourceMappingURL=env.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"env.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/env.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 * Copyright (c) 2025 Bytedance, Inc. and its affiliates.\n * SPDX-License-Identifier: Apache-2.0\n */\nimport type { Browser } from 'puppeteer-core';\nimport type { OSType, BrowserType, EnvInfo } from './types/env';\n\nexport async function getEnvInfo(browser: Browser): Promise<EnvInfo> {\n let osName: OSType = 'Unknown';\n let browserName: BrowserType = 'Unknown';\n let browserVersion: string = 'Unknown';\n\n try {\n // 1.get env info from CDP\n const client = await browser.target().createCDPSession();\n const systemInfo = await client.send('SystemInfo.getInfo');\n const cdpBrowserVersion = await browser.version();\n\n await client.detach();\n\n if (systemInfo.modelName) {\n const modelName = systemInfo.modelName.toLowerCase();\n if (modelName.includes('win') || modelName.includes('surface')) {\n osName = 'Windows';\n } else if (modelName.includes('mac') || modelName.includes('darwin')) {\n osName = 'macOS';\n } else if (modelName.includes('linux')) {\n osName = 'Linux';\n }\n }\n\n const versionStr = cdpBrowserVersion.toLowerCase();\n if (versionStr.includes('chrome')) {\n browserName = 'Chrome';\n } else if (versionStr.includes('edge') || versionStr.includes('edg')) {\n browserName = 'Edge';\n } else if (versionStr.includes('firefox')) {\n browserName = 'Firefox';\n }\n\n browserVersion = versionStr.split('/')[1];\n\n if (\n osName !== 'Unknown' &&\n browserName !== 'Unknown' &&\n browserVersion !== 'Unknown'\n ) {\n return { osName, browserName, browserVersion };\n }\n } catch (error) {\n console.warn(\n 'Failed to get environment info via CDP, falling back to userAgent',\n );\n }\n\n // 2.fallback: get env info from userAgent\n const userAgent = (await browser.userAgent()).toLowerCase();\n\n if (osName === 'Unknown') {\n if (\n userAgent.includes('windows') ||\n userAgent.includes('win32') ||\n userAgent.includes('win64')\n ) {\n osName = 'Windows';\n } else if (userAgent.includes('mac os x') || userAgent.includes('macos')) {\n osName = 'macOS';\n } else if (userAgent.includes('linux') && !userAgent.includes('android')) {\n osName = 'Linux';\n }\n }\n\n if (browserName === 'Unknown') {\n if (userAgent.includes('edg/') || userAgent.includes('edge/')) {\n browserName = 'Edge';\n\n const edgeMatch = userAgent.match(/edg?\\/([0-9.]+)/);\n if (edgeMatch && browserVersion === 'Unknown') {\n browserVersion = edgeMatch[1];\n }\n } else if (userAgent.includes('chrome/') && !userAgent.includes('edg')) {\n browserName = 'Chrome';\n\n const chromeMatch = userAgent.match(/chrome\\/([0-9.]+)/);\n if (chromeMatch && browserVersion === 'Unknown') {\n browserVersion = chromeMatch[1];\n }\n } else if (userAgent.includes('firefox/')) {\n browserName = 'Firefox';\n\n const firefoxMatch = userAgent.match(/firefox\\/([0-9.]+)/);\n if (firefoxMatch && browserVersion === 'Unknown') {\n browserVersion = firefoxMatch[1];\n }\n }\n }\n\n return { osName, browserName, browserVersion };\n}\n"],"names":["__webpack_require__","definition","key","Object","obj","prop","Symbol","getEnvInfo","browser","osName","browserName","browserVersion","client","systemInfo","cdpBrowserVersion","modelName","versionStr","error","console","userAgent","edgeMatch","chromeMatch","firefoxMatch"],"mappings":"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"}
package/dist/env.mjs ADDED
@@ -0,0 +1,62 @@
1
+ /**
2
+ * Copyright (c) 2025 Bytedance, Inc. and its affiliates.
3
+ * SPDX-License-Identifier: Apache-2.0
4
+ */
5
+ async function getEnvInfo(browser) {
6
+ let osName = 'Unknown';
7
+ let browserName = 'Unknown';
8
+ let browserVersion = 'Unknown';
9
+ try {
10
+ const client = await browser.target().createCDPSession();
11
+ const systemInfo = await client.send('SystemInfo.getInfo');
12
+ const cdpBrowserVersion = await browser.version();
13
+ await client.detach();
14
+ if (systemInfo.modelName) {
15
+ const modelName = systemInfo.modelName.toLowerCase();
16
+ if (modelName.includes('win') || modelName.includes('surface')) osName = 'Windows';
17
+ else if (modelName.includes('mac') || modelName.includes('darwin')) osName = 'macOS';
18
+ else if (modelName.includes('linux')) osName = 'Linux';
19
+ }
20
+ const versionStr = cdpBrowserVersion.toLowerCase();
21
+ if (versionStr.includes('chrome')) browserName = 'Chrome';
22
+ else if (versionStr.includes('edge') || versionStr.includes('edg')) browserName = 'Edge';
23
+ else if (versionStr.includes('firefox')) browserName = 'Firefox';
24
+ browserVersion = versionStr.split('/')[1];
25
+ if ('Unknown' !== osName && 'Unknown' !== browserName && 'Unknown' !== browserVersion) return {
26
+ osName,
27
+ browserName,
28
+ browserVersion
29
+ };
30
+ } catch (error) {
31
+ console.warn('Failed to get environment info via CDP, falling back to userAgent');
32
+ }
33
+ const userAgent = (await browser.userAgent()).toLowerCase();
34
+ if ('Unknown' === osName) {
35
+ if (userAgent.includes('windows') || userAgent.includes('win32') || userAgent.includes('win64')) osName = 'Windows';
36
+ else if (userAgent.includes('mac os x') || userAgent.includes('macos')) osName = 'macOS';
37
+ else if (userAgent.includes('linux') && !userAgent.includes('android')) osName = 'Linux';
38
+ }
39
+ if ('Unknown' === browserName) {
40
+ if (userAgent.includes('edg/') || userAgent.includes('edge/')) {
41
+ browserName = 'Edge';
42
+ const edgeMatch = userAgent.match(/edg?\/([0-9.]+)/);
43
+ if (edgeMatch && 'Unknown' === browserVersion) browserVersion = edgeMatch[1];
44
+ } else if (userAgent.includes('chrome/') && !userAgent.includes('edg')) {
45
+ browserName = 'Chrome';
46
+ const chromeMatch = userAgent.match(/chrome\/([0-9.]+)/);
47
+ if (chromeMatch && 'Unknown' === browserVersion) browserVersion = chromeMatch[1];
48
+ } else if (userAgent.includes('firefox/')) {
49
+ browserName = 'Firefox';
50
+ const firefoxMatch = userAgent.match(/firefox\/([0-9.]+)/);
51
+ if (firefoxMatch && 'Unknown' === browserVersion) browserVersion = firefoxMatch[1];
52
+ }
53
+ }
54
+ return {
55
+ osName,
56
+ browserName,
57
+ browserVersion
58
+ };
59
+ }
60
+ export { getEnvInfo };
61
+
62
+ //# sourceMappingURL=env.mjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"env.mjs","sources":["webpack://@agent-infra/browser/./src/env.ts"],"sourcesContent":["/*\n * Copyright (c) 2025 Bytedance, Inc. and its affiliates.\n * SPDX-License-Identifier: Apache-2.0\n */\nimport type { Browser } from 'puppeteer-core';\nimport type { OSType, BrowserType, EnvInfo } from './types/env';\n\nexport async function getEnvInfo(browser: Browser): Promise<EnvInfo> {\n let osName: OSType = 'Unknown';\n let browserName: BrowserType = 'Unknown';\n let browserVersion: string = 'Unknown';\n\n try {\n // 1.get env info from CDP\n const client = await browser.target().createCDPSession();\n const systemInfo = await client.send('SystemInfo.getInfo');\n const cdpBrowserVersion = await browser.version();\n\n await client.detach();\n\n if (systemInfo.modelName) {\n const modelName = systemInfo.modelName.toLowerCase();\n if (modelName.includes('win') || modelName.includes('surface')) {\n osName = 'Windows';\n } else if (modelName.includes('mac') || modelName.includes('darwin')) {\n osName = 'macOS';\n } else if (modelName.includes('linux')) {\n osName = 'Linux';\n }\n }\n\n const versionStr = cdpBrowserVersion.toLowerCase();\n if (versionStr.includes('chrome')) {\n browserName = 'Chrome';\n } else if (versionStr.includes('edge') || versionStr.includes('edg')) {\n browserName = 'Edge';\n } else if (versionStr.includes('firefox')) {\n browserName = 'Firefox';\n }\n\n browserVersion = versionStr.split('/')[1];\n\n if (\n osName !== 'Unknown' &&\n browserName !== 'Unknown' &&\n browserVersion !== 'Unknown'\n ) {\n return { osName, browserName, browserVersion };\n }\n } catch (error) {\n console.warn(\n 'Failed to get environment info via CDP, falling back to userAgent',\n );\n }\n\n // 2.fallback: get env info from userAgent\n const userAgent = (await browser.userAgent()).toLowerCase();\n\n if (osName === 'Unknown') {\n if (\n userAgent.includes('windows') ||\n userAgent.includes('win32') ||\n userAgent.includes('win64')\n ) {\n osName = 'Windows';\n } else if (userAgent.includes('mac os x') || userAgent.includes('macos')) {\n osName = 'macOS';\n } else if (userAgent.includes('linux') && !userAgent.includes('android')) {\n osName = 'Linux';\n }\n }\n\n if (browserName === 'Unknown') {\n if (userAgent.includes('edg/') || userAgent.includes('edge/')) {\n browserName = 'Edge';\n\n const edgeMatch = userAgent.match(/edg?\\/([0-9.]+)/);\n if (edgeMatch && browserVersion === 'Unknown') {\n browserVersion = edgeMatch[1];\n }\n } else if (userAgent.includes('chrome/') && !userAgent.includes('edg')) {\n browserName = 'Chrome';\n\n const chromeMatch = userAgent.match(/chrome\\/([0-9.]+)/);\n if (chromeMatch && browserVersion === 'Unknown') {\n browserVersion = chromeMatch[1];\n }\n } else if (userAgent.includes('firefox/')) {\n browserName = 'Firefox';\n\n const firefoxMatch = userAgent.match(/firefox\\/([0-9.]+)/);\n if (firefoxMatch && browserVersion === 'Unknown') {\n browserVersion = firefoxMatch[1];\n }\n }\n }\n\n return { osName, browserName, browserVersion };\n}\n"],"names":["getEnvInfo","browser","osName","browserName","browserVersion","client","systemInfo","cdpBrowserVersion","modelName","versionStr","error","console","userAgent","edgeMatch","chromeMatch","firefoxMatch"],"mappings":";;;;AAOO,eAAeA,WAAWC,OAAgB;IAC/C,IAAIC,SAAiB;IACrB,IAAIC,cAA2B;IAC/B,IAAIC,iBAAyB;IAE7B,IAAI;QAEF,MAAMC,SAAS,MAAMJ,QAAQ,MAAM,GAAG,gBAAgB;QACtD,MAAMK,aAAa,MAAMD,OAAO,IAAI,CAAC;QACrC,MAAME,oBAAoB,MAAMN,QAAQ,OAAO;QAE/C,MAAMI,OAAO,MAAM;QAEnB,IAAIC,WAAW,SAAS,EAAE;YACxB,MAAME,YAAYF,WAAW,SAAS,CAAC,WAAW;YAClD,IAAIE,UAAU,QAAQ,CAAC,UAAUA,UAAU,QAAQ,CAAC,YAClDN,SAAS;iBACJ,IAAIM,UAAU,QAAQ,CAAC,UAAUA,UAAU,QAAQ,CAAC,WACzDN,SAAS;iBACJ,IAAIM,UAAU,QAAQ,CAAC,UAC5BN,SAAS;QAEb;QAEA,MAAMO,aAAaF,kBAAkB,WAAW;QAChD,IAAIE,WAAW,QAAQ,CAAC,WACtBN,cAAc;aACT,IAAIM,WAAW,QAAQ,CAAC,WAAWA,WAAW,QAAQ,CAAC,QAC5DN,cAAc;aACT,IAAIM,WAAW,QAAQ,CAAC,YAC7BN,cAAc;QAGhBC,iBAAiBK,WAAW,KAAK,CAAC,IAAI,CAAC,EAAE;QAEzC,IACEP,AAAW,cAAXA,UACAC,AAAgB,cAAhBA,eACAC,AAAmB,cAAnBA,gBAEA,OAAO;YAAEF;YAAQC;YAAaC;QAAe;IAEjD,EAAE,OAAOM,OAAO;QACdC,QAAQ,IAAI,CACV;IAEJ;IAGA,MAAMC,YAAa,OAAMX,QAAQ,SAAS,EAAC,EAAG,WAAW;IAEzD,IAAIC,AAAW,cAAXA,QACF;QAAA,IACEU,UAAU,QAAQ,CAAC,cACnBA,UAAU,QAAQ,CAAC,YACnBA,UAAU,QAAQ,CAAC,UAEnBV,SAAS;aACJ,IAAIU,UAAU,QAAQ,CAAC,eAAeA,UAAU,QAAQ,CAAC,UAC9DV,SAAS;aACJ,IAAIU,UAAU,QAAQ,CAAC,YAAY,CAACA,UAAU,QAAQ,CAAC,YAC5DV,SAAS;IACX;IAGF,IAAIC,AAAgB,cAAhBA,aACF;QAAA,IAAIS,UAAU,QAAQ,CAAC,WAAWA,UAAU,QAAQ,CAAC,UAAU;YAC7DT,cAAc;YAEd,MAAMU,YAAYD,UAAU,KAAK,CAAC;YAClC,IAAIC,aAAaT,AAAmB,cAAnBA,gBACfA,iBAAiBS,SAAS,CAAC,EAAE;QAEjC,OAAO,IAAID,UAAU,QAAQ,CAAC,cAAc,CAACA,UAAU,QAAQ,CAAC,QAAQ;YACtET,cAAc;YAEd,MAAMW,cAAcF,UAAU,KAAK,CAAC;YACpC,IAAIE,eAAeV,AAAmB,cAAnBA,gBACjBA,iBAAiBU,WAAW,CAAC,EAAE;QAEnC,OAAO,IAAIF,UAAU,QAAQ,CAAC,aAAa;YACzCT,cAAc;YAEd,MAAMY,eAAeH,UAAU,KAAK,CAAC;YACrC,IAAIG,gBAAgBX,AAAmB,cAAnBA,gBAClBA,iBAAiBW,YAAY,CAAC,EAAE;QAEpC;IAAA;IAGF,OAAO;QAAEb;QAAQC;QAAaC;IAAe;AAC/C"}
@@ -0,0 +1,7 @@
1
+ import './polyfills';
2
+ export * from './types';
3
+ export * from './env';
4
+ export * from './tabs';
5
+ export * from './actions';
6
+ export * from './browser/browser';
7
+ //# sourceMappingURL=index.node.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.node.d.ts","sourceRoot":"","sources":["../src/index.node.ts"],"names":[],"mappings":"AAIA,OAAO,aAAa,CAAC;AAErB,cAAc,SAAS,CAAC;AACxB,cAAc,OAAO,CAAC;AACtB,cAAc,QAAQ,CAAC;AACvB,cAAc,WAAW,CAAC;AAC1B,cAAc,mBAAmB,CAAC"}
@@ -0,0 +1,106 @@
1
+ /**
2
+ * Copyright (c) 2025 Bytedance, Inc. and its affiliates.
3
+ * SPDX-License-Identifier: Apache-2.0
4
+ */
5
+ "use strict";
6
+ var __webpack_modules__ = {
7
+ "./actions?134d": function(module) {
8
+ module.exports = require("./actions/index.js");
9
+ },
10
+ "./browser/browser": function(module) {
11
+ module.exports = require("./browser/browser.js");
12
+ },
13
+ "./env": function(module) {
14
+ module.exports = require("./env.js");
15
+ },
16
+ "./polyfills": function(module) {
17
+ module.exports = require("./polyfills/index.js");
18
+ },
19
+ "./tabs?6df2": function(module) {
20
+ module.exports = require("./tabs/index.js");
21
+ },
22
+ "./types": function(module) {
23
+ module.exports = require("./types/index.js");
24
+ }
25
+ };
26
+ var __webpack_module_cache__ = {};
27
+ function __webpack_require__(moduleId) {
28
+ var cachedModule = __webpack_module_cache__[moduleId];
29
+ if (void 0 !== cachedModule) return cachedModule.exports;
30
+ var module = __webpack_module_cache__[moduleId] = {
31
+ exports: {}
32
+ };
33
+ __webpack_modules__[moduleId](module, module.exports, __webpack_require__);
34
+ return module.exports;
35
+ }
36
+ (()=>{
37
+ __webpack_require__.n = (module)=>{
38
+ var getter = module && module.__esModule ? ()=>module['default'] : ()=>module;
39
+ __webpack_require__.d(getter, {
40
+ a: getter
41
+ });
42
+ return getter;
43
+ };
44
+ })();
45
+ (()=>{
46
+ __webpack_require__.d = (exports1, definition)=>{
47
+ for(var key in definition)if (__webpack_require__.o(definition, key) && !__webpack_require__.o(exports1, key)) Object.defineProperty(exports1, key, {
48
+ enumerable: true,
49
+ get: definition[key]
50
+ });
51
+ };
52
+ })();
53
+ (()=>{
54
+ __webpack_require__.o = (obj, prop)=>Object.prototype.hasOwnProperty.call(obj, prop);
55
+ })();
56
+ (()=>{
57
+ __webpack_require__.r = (exports1)=>{
58
+ if ('undefined' != typeof Symbol && Symbol.toStringTag) Object.defineProperty(exports1, Symbol.toStringTag, {
59
+ value: 'Module'
60
+ });
61
+ Object.defineProperty(exports1, '__esModule', {
62
+ value: true
63
+ });
64
+ };
65
+ })();
66
+ var __webpack_exports__ = {};
67
+ (()=>{
68
+ __webpack_require__.r(__webpack_exports__);
69
+ __webpack_require__("./polyfills");
70
+ var _types__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__("./types");
71
+ var __WEBPACK_REEXPORT_OBJECT__ = {};
72
+ for(var __WEBPACK_IMPORT_KEY__ in _types__WEBPACK_IMPORTED_MODULE_1__)if ("default" !== __WEBPACK_IMPORT_KEY__) __WEBPACK_REEXPORT_OBJECT__[__WEBPACK_IMPORT_KEY__] = (function(key) {
73
+ return _types__WEBPACK_IMPORTED_MODULE_1__[key];
74
+ }).bind(0, __WEBPACK_IMPORT_KEY__);
75
+ __webpack_require__.d(__webpack_exports__, __WEBPACK_REEXPORT_OBJECT__);
76
+ var _env__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__("./env");
77
+ var __WEBPACK_REEXPORT_OBJECT__ = {};
78
+ for(var __WEBPACK_IMPORT_KEY__ in _env__WEBPACK_IMPORTED_MODULE_2__)if ("default" !== __WEBPACK_IMPORT_KEY__) __WEBPACK_REEXPORT_OBJECT__[__WEBPACK_IMPORT_KEY__] = (function(key) {
79
+ return _env__WEBPACK_IMPORTED_MODULE_2__[key];
80
+ }).bind(0, __WEBPACK_IMPORT_KEY__);
81
+ __webpack_require__.d(__webpack_exports__, __WEBPACK_REEXPORT_OBJECT__);
82
+ var _tabs__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__("./tabs?6df2");
83
+ var __WEBPACK_REEXPORT_OBJECT__ = {};
84
+ for(var __WEBPACK_IMPORT_KEY__ in _tabs__WEBPACK_IMPORTED_MODULE_3__)if ("default" !== __WEBPACK_IMPORT_KEY__) __WEBPACK_REEXPORT_OBJECT__[__WEBPACK_IMPORT_KEY__] = (function(key) {
85
+ return _tabs__WEBPACK_IMPORTED_MODULE_3__[key];
86
+ }).bind(0, __WEBPACK_IMPORT_KEY__);
87
+ __webpack_require__.d(__webpack_exports__, __WEBPACK_REEXPORT_OBJECT__);
88
+ var _actions__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__("./actions?134d");
89
+ var __WEBPACK_REEXPORT_OBJECT__ = {};
90
+ for(var __WEBPACK_IMPORT_KEY__ in _actions__WEBPACK_IMPORTED_MODULE_4__)if ("default" !== __WEBPACK_IMPORT_KEY__) __WEBPACK_REEXPORT_OBJECT__[__WEBPACK_IMPORT_KEY__] = (function(key) {
91
+ return _actions__WEBPACK_IMPORTED_MODULE_4__[key];
92
+ }).bind(0, __WEBPACK_IMPORT_KEY__);
93
+ __webpack_require__.d(__webpack_exports__, __WEBPACK_REEXPORT_OBJECT__);
94
+ var _browser_browser__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__("./browser/browser");
95
+ var __WEBPACK_REEXPORT_OBJECT__ = {};
96
+ for(var __WEBPACK_IMPORT_KEY__ in _browser_browser__WEBPACK_IMPORTED_MODULE_5__)if ("default" !== __WEBPACK_IMPORT_KEY__) __WEBPACK_REEXPORT_OBJECT__[__WEBPACK_IMPORT_KEY__] = (function(key) {
97
+ return _browser_browser__WEBPACK_IMPORTED_MODULE_5__[key];
98
+ }).bind(0, __WEBPACK_IMPORT_KEY__);
99
+ __webpack_require__.d(__webpack_exports__, __WEBPACK_REEXPORT_OBJECT__);
100
+ })();
101
+ for(var __webpack_i__ in __webpack_exports__)exports[__webpack_i__] = __webpack_exports__[__webpack_i__];
102
+ Object.defineProperty(exports, '__esModule', {
103
+ value: true
104
+ });
105
+
106
+ //# sourceMappingURL=index.node.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.node.js","sources":["webpack://@agent-infra/browser/webpack/runtime/compat_get_default_export","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":["// getDefaultExport function for compatibility with non-ESM modules\n__webpack_require__.n = (module) => {\n\tvar getter = module && module.__esModule ?\n\t\t() => (module['default']) :\n\t\t() => (module);\n\t__webpack_require__.d(getter, { a: getter });\n\treturn getter;\n};\n","__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__","module","getter","definition","key","Object","obj","prop","Symbol"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;IACAA,oBAAoB,CAAC,GAAG,CAACC;QACxB,IAAIC,SAASD,UAAUA,OAAO,UAAU,GACvC,IAAOA,MAAM,CAAC,UAAU,GACxB,IAAOA;QACRD,oBAAoB,CAAC,CAACE,QAAQ;YAAE,GAAGA;QAAO;QAC1C,OAAOA;IACR;;;ICPAF,oBAAoB,CAAC,GAAG,CAAC,UAASG;QACjC,IAAI,IAAIC,OAAOD,WACR,IAAGH,oBAAoB,CAAC,CAACG,YAAYC,QAAQ,CAACJ,oBAAoB,CAAC,CAAC,UAASI,MACzEC,OAAO,cAAc,CAAC,UAASD,KAAK;YAAE,YAAY;YAAM,KAAKD,UAAU,CAACC,IAAI;QAAC;IAGzF;;;ICNAJ,oBAAoB,CAAC,GAAG,CAACM,KAAKC,OAAUF,OAAO,SAAS,CAAC,cAAc,CAAC,IAAI,CAACC,KAAKC;;;ICClFP,oBAAoB,CAAC,GAAG,CAAC;QACxB,IAAG,AAAkB,eAAlB,OAAOQ,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,10 @@
1
+ /**
2
+ * Copyright (c) 2025 Bytedance, Inc. and its affiliates.
3
+ * SPDX-License-Identifier: Apache-2.0
4
+ */
5
+ import "./polyfills/index.mjs";
6
+ export * from "./types/index.mjs";
7
+ export * from "./env.mjs";
8
+ export * from "./tabs/index.mjs";
9
+ export * from "./actions/index.mjs";
10
+ export * from "./browser/browser.mjs";
@@ -0,0 +1,7 @@
1
+ import './polyfills';
2
+ export * from './types';
3
+ export * from './env';
4
+ export * from './tabs';
5
+ export * from './actions';
6
+ export * from './browser/base';
7
+ //# sourceMappingURL=index.web.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.web.d.ts","sourceRoot":"","sources":["../src/index.web.ts"],"names":[],"mappings":"AAIA,OAAO,aAAa,CAAC;AAErB,cAAc,SAAS,CAAC;AACxB,cAAc,OAAO,CAAC;AACtB,cAAc,QAAQ,CAAC;AACvB,cAAc,WAAW,CAAC;AAC1B,cAAc,gBAAgB,CAAC"}
@@ -4,17 +4,23 @@
4
4
  */
5
5
  "use strict";
6
6
  var __webpack_modules__ = {
7
- "./base-browser": function(module) {
8
- module.exports = require("./base-browser.js");
7
+ "./actions?134d": function(module) {
8
+ module.exports = require("./actions/index.js");
9
9
  },
10
- "./local-browser": function(module) {
11
- module.exports = require("./local-browser.js");
10
+ "./browser/base": function(module) {
11
+ module.exports = require("./browser/base.js");
12
12
  },
13
- "./remote-browser": function(module) {
14
- module.exports = require("./remote-browser.js");
13
+ "./env": function(module) {
14
+ module.exports = require("./env.js");
15
+ },
16
+ "./polyfills": function(module) {
17
+ module.exports = require("./polyfills/index.js");
18
+ },
19
+ "./tabs?6df2": function(module) {
20
+ module.exports = require("./tabs/index.js");
15
21
  },
16
22
  "./types": function(module) {
17
- module.exports = require("./types.js");
23
+ module.exports = require("./types/index.js");
18
24
  }
19
25
  };
20
26
  var __webpack_module_cache__ = {};
@@ -60,28 +66,35 @@ function __webpack_require__(moduleId) {
60
66
  var __webpack_exports__ = {};
61
67
  (()=>{
62
68
  __webpack_require__.r(__webpack_exports__);
63
- var _types__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__("./types");
69
+ __webpack_require__("./polyfills");
70
+ var _types__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__("./types");
71
+ var __WEBPACK_REEXPORT_OBJECT__ = {};
72
+ for(var __WEBPACK_IMPORT_KEY__ in _types__WEBPACK_IMPORTED_MODULE_1__)if ("default" !== __WEBPACK_IMPORT_KEY__) __WEBPACK_REEXPORT_OBJECT__[__WEBPACK_IMPORT_KEY__] = (function(key) {
73
+ return _types__WEBPACK_IMPORTED_MODULE_1__[key];
74
+ }).bind(0, __WEBPACK_IMPORT_KEY__);
75
+ __webpack_require__.d(__webpack_exports__, __WEBPACK_REEXPORT_OBJECT__);
76
+ var _env__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__("./env");
64
77
  var __WEBPACK_REEXPORT_OBJECT__ = {};
65
- for(var __WEBPACK_IMPORT_KEY__ in _types__WEBPACK_IMPORTED_MODULE_0__)if ("default" !== __WEBPACK_IMPORT_KEY__) __WEBPACK_REEXPORT_OBJECT__[__WEBPACK_IMPORT_KEY__] = (function(key) {
66
- return _types__WEBPACK_IMPORTED_MODULE_0__[key];
78
+ for(var __WEBPACK_IMPORT_KEY__ in _env__WEBPACK_IMPORTED_MODULE_2__)if ("default" !== __WEBPACK_IMPORT_KEY__) __WEBPACK_REEXPORT_OBJECT__[__WEBPACK_IMPORT_KEY__] = (function(key) {
79
+ return _env__WEBPACK_IMPORTED_MODULE_2__[key];
67
80
  }).bind(0, __WEBPACK_IMPORT_KEY__);
68
81
  __webpack_require__.d(__webpack_exports__, __WEBPACK_REEXPORT_OBJECT__);
69
- var _local_browser__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__("./local-browser");
82
+ var _tabs__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__("./tabs?6df2");
70
83
  var __WEBPACK_REEXPORT_OBJECT__ = {};
71
- for(var __WEBPACK_IMPORT_KEY__ in _local_browser__WEBPACK_IMPORTED_MODULE_1__)if ("default" !== __WEBPACK_IMPORT_KEY__) __WEBPACK_REEXPORT_OBJECT__[__WEBPACK_IMPORT_KEY__] = (function(key) {
72
- return _local_browser__WEBPACK_IMPORTED_MODULE_1__[key];
84
+ for(var __WEBPACK_IMPORT_KEY__ in _tabs__WEBPACK_IMPORTED_MODULE_3__)if ("default" !== __WEBPACK_IMPORT_KEY__) __WEBPACK_REEXPORT_OBJECT__[__WEBPACK_IMPORT_KEY__] = (function(key) {
85
+ return _tabs__WEBPACK_IMPORTED_MODULE_3__[key];
73
86
  }).bind(0, __WEBPACK_IMPORT_KEY__);
74
87
  __webpack_require__.d(__webpack_exports__, __WEBPACK_REEXPORT_OBJECT__);
75
- var _remote_browser__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__("./remote-browser");
88
+ var _actions__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__("./actions?134d");
76
89
  var __WEBPACK_REEXPORT_OBJECT__ = {};
77
- for(var __WEBPACK_IMPORT_KEY__ in _remote_browser__WEBPACK_IMPORTED_MODULE_2__)if ("default" !== __WEBPACK_IMPORT_KEY__) __WEBPACK_REEXPORT_OBJECT__[__WEBPACK_IMPORT_KEY__] = (function(key) {
78
- return _remote_browser__WEBPACK_IMPORTED_MODULE_2__[key];
90
+ for(var __WEBPACK_IMPORT_KEY__ in _actions__WEBPACK_IMPORTED_MODULE_4__)if ("default" !== __WEBPACK_IMPORT_KEY__) __WEBPACK_REEXPORT_OBJECT__[__WEBPACK_IMPORT_KEY__] = (function(key) {
91
+ return _actions__WEBPACK_IMPORTED_MODULE_4__[key];
79
92
  }).bind(0, __WEBPACK_IMPORT_KEY__);
80
93
  __webpack_require__.d(__webpack_exports__, __WEBPACK_REEXPORT_OBJECT__);
81
- var _base_browser__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__("./base-browser");
94
+ var _browser_base__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__("./browser/base");
82
95
  var __WEBPACK_REEXPORT_OBJECT__ = {};
83
- for(var __WEBPACK_IMPORT_KEY__ in _base_browser__WEBPACK_IMPORTED_MODULE_3__)if ("default" !== __WEBPACK_IMPORT_KEY__) __WEBPACK_REEXPORT_OBJECT__[__WEBPACK_IMPORT_KEY__] = (function(key) {
84
- return _base_browser__WEBPACK_IMPORTED_MODULE_3__[key];
96
+ for(var __WEBPACK_IMPORT_KEY__ in _browser_base__WEBPACK_IMPORTED_MODULE_5__)if ("default" !== __WEBPACK_IMPORT_KEY__) __WEBPACK_REEXPORT_OBJECT__[__WEBPACK_IMPORT_KEY__] = (function(key) {
97
+ return _browser_base__WEBPACK_IMPORTED_MODULE_5__[key];
85
98
  }).bind(0, __WEBPACK_IMPORT_KEY__);
86
99
  __webpack_require__.d(__webpack_exports__, __WEBPACK_REEXPORT_OBJECT__);
87
100
  })();
@@ -90,4 +103,4 @@ Object.defineProperty(exports, '__esModule', {
90
103
  value: true
91
104
  });
92
105
 
93
- //# sourceMappingURL=index.js.map
106
+ //# sourceMappingURL=index.web.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.web.js","sources":["webpack://@agent-infra/browser/webpack/runtime/compat_get_default_export","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":["// getDefaultExport function for compatibility with non-ESM modules\n__webpack_require__.n = (module) => {\n\tvar getter = module && module.__esModule ?\n\t\t() => (module['default']) :\n\t\t() => (module);\n\t__webpack_require__.d(getter, { a: getter });\n\treturn getter;\n};\n","__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__","module","getter","definition","key","Object","obj","prop","Symbol"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;IACAA,oBAAoB,CAAC,GAAG,CAACC;QACxB,IAAIC,SAASD,UAAUA,OAAO,UAAU,GACvC,IAAOA,MAAM,CAAC,UAAU,GACxB,IAAOA;QACRD,oBAAoB,CAAC,CAACE,QAAQ;YAAE,GAAGA;QAAO;QAC1C,OAAOA;IACR;;;ICPAF,oBAAoB,CAAC,GAAG,CAAC,UAASG;QACjC,IAAI,IAAIC,OAAOD,WACR,IAAGH,oBAAoB,CAAC,CAACG,YAAYC,QAAQ,CAACJ,oBAAoB,CAAC,CAAC,UAASI,MACzEC,OAAO,cAAc,CAAC,UAASD,KAAK;YAAE,YAAY;YAAM,KAAKD,UAAU,CAACC,IAAI;QAAC;IAGzF;;;ICNAJ,oBAAoB,CAAC,GAAG,CAACM,KAAKC,OAAUF,OAAO,SAAS,CAAC,cAAc,CAAC,IAAI,CAACC,KAAKC;;;ICClFP,oBAAoB,CAAC,GAAG,CAAC;QACxB,IAAG,AAAkB,eAAlB,OAAOQ,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,10 @@
1
+ /**
2
+ * Copyright (c) 2025 Bytedance, Inc. and its affiliates.
3
+ * SPDX-License-Identifier: Apache-2.0
4
+ */
5
+ import "./polyfills/index.mjs";
6
+ export * from "./types/index.mjs";
7
+ export * from "./env.mjs";
8
+ export * from "./tabs/index.mjs";
9
+ export * from "./actions/index.mjs";
10
+ export * from "./browser/base.mjs";
@@ -0,0 +1,3 @@
1
+ export { visibilityScript } from './visibility';
2
+ export { disableWebdriver } from './webdriver';
3
+ //# sourceMappingURL=index.d.ts.map