@agent-infra/browser 0.1.5 → 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.
- package/LICENSE +201 -0
- package/README.md +35 -52
- package/README.zh-CN.md +57 -0
- package/dist/actions/index.d.ts +3 -0
- package/dist/actions/index.d.ts.map +1 -0
- package/dist/actions/index.js +46 -0
- package/dist/actions/index.js.map +1 -0
- package/dist/actions/index.mjs +7 -0
- package/dist/actions/key-map.d.ts +28 -0
- package/dist/actions/key-map.d.ts.map +1 -0
- package/dist/actions/key-map.js +409 -0
- package/dist/actions/key-map.js.map +1 -0
- package/dist/actions/key-map.mjs +369 -0
- package/dist/actions/key-map.mjs.map +1 -0
- package/dist/actions/keyboard.d.ts +21 -0
- package/dist/actions/keyboard.d.ts.map +1 -0
- package/dist/actions/keyboard.js +196 -0
- package/dist/actions/keyboard.js.map +1 -0
- package/dist/actions/keyboard.mjs +152 -0
- package/dist/actions/keyboard.mjs.map +1 -0
- package/dist/actions/keyboard.test.d.ts +2 -0
- package/dist/actions/keyboard.test.d.ts.map +1 -0
- package/dist/actions/mouse.d.ts +19 -0
- package/dist/actions/mouse.d.ts.map +1 -0
- package/dist/actions/mouse.js +173 -0
- package/dist/actions/mouse.js.map +1 -0
- package/dist/actions/mouse.mjs +136 -0
- package/dist/actions/mouse.mjs.map +1 -0
- package/dist/browser/base.d.ts +47 -0
- package/dist/browser/base.d.ts.map +1 -0
- package/dist/browser/base.js +156 -0
- package/dist/browser/base.js.map +1 -0
- package/dist/browser/base.mjs +122 -0
- package/dist/browser/base.mjs.map +1 -0
- package/dist/browser/browser.d.ts +23 -0
- package/dist/browser/browser.d.ts.map +1 -0
- package/dist/browser/browser.js +183 -0
- package/dist/browser/browser.js.map +1 -0
- package/dist/browser/browser.mjs +149 -0
- package/dist/browser/browser.mjs.map +1 -0
- package/dist/env.d.ts +4 -0
- package/dist/env.d.ts.map +1 -0
- package/dist/env.js +96 -0
- package/dist/env.js.map +1 -0
- package/dist/env.mjs +62 -0
- package/dist/env.mjs.map +1 -0
- package/dist/index.node.d.ts +7 -0
- package/dist/index.node.d.ts.map +1 -0
- package/dist/index.node.js +106 -0
- package/dist/index.node.js.map +1 -0
- package/dist/index.node.mjs +10 -0
- package/dist/index.web.d.ts +7 -0
- package/dist/index.web.d.ts.map +1 -0
- package/dist/{index.js → index.web.js} +33 -20
- package/dist/index.web.js.map +1 -0
- package/dist/index.web.mjs +10 -0
- package/dist/injected-script/index.d.ts +3 -0
- package/dist/injected-script/index.d.ts.map +1 -0
- package/dist/injected-script/index.js +46 -0
- package/dist/injected-script/index.js.map +1 -0
- package/dist/injected-script/index.mjs +7 -0
- package/dist/injected-script/visibility.d.ts +2 -0
- package/dist/injected-script/visibility.d.ts.map +1 -0
- package/dist/injected-script/visibility.js +66 -0
- package/dist/injected-script/visibility.js.map +1 -0
- package/dist/injected-script/visibility.mjs +32 -0
- package/dist/injected-script/visibility.mjs.map +1 -0
- package/dist/injected-script/webdriver.d.ts +2 -0
- package/dist/injected-script/webdriver.d.ts.map +1 -0
- package/dist/injected-script/webdriver.js +71 -0
- package/dist/injected-script/webdriver.js.map +1 -0
- package/dist/injected-script/webdriver.mjs +37 -0
- package/dist/injected-script/webdriver.mjs.map +1 -0
- package/dist/polyfills/index.d.ts +2 -0
- package/dist/polyfills/index.d.ts.map +1 -0
- package/dist/polyfills/index.js +66 -0
- package/dist/polyfills/index.js.map +1 -0
- package/dist/polyfills/index.mjs +5 -0
- package/dist/polyfills/withResolvers.d.ts +2 -0
- package/dist/polyfills/withResolvers.d.ts.map +1 -0
- package/dist/polyfills/withResolvers.js +37 -0
- package/dist/polyfills/withResolvers.js.map +1 -0
- package/dist/polyfills/withResolvers.mjs +19 -0
- package/dist/polyfills/withResolvers.mjs.map +1 -0
- package/dist/tabs/dialog.d.ts +14 -0
- package/dist/tabs/dialog.d.ts.map +1 -0
- package/dist/tabs/dialog.js +175 -0
- package/dist/tabs/dialog.js.map +1 -0
- package/dist/tabs/dialog.mjs +141 -0
- package/dist/tabs/dialog.mjs.map +1 -0
- package/dist/tabs/index.d.ts +3 -0
- package/dist/tabs/index.d.ts.map +1 -0
- package/dist/tabs/index.js +46 -0
- package/dist/tabs/index.js.map +1 -0
- package/dist/tabs/index.mjs +7 -0
- package/dist/tabs/tab.d.ts +50 -0
- package/dist/tabs/tab.d.ts.map +1 -0
- package/dist/tabs/tab.js +579 -0
- package/dist/tabs/tab.js.map +1 -0
- package/dist/tabs/tab.mjs +545 -0
- package/dist/tabs/tab.mjs.map +1 -0
- package/dist/tabs/tabs.d.ts +21 -0
- package/dist/tabs/tabs.d.ts.map +1 -0
- package/dist/tabs/tabs.js +458 -0
- package/dist/tabs/tabs.js.map +1 -0
- package/dist/tabs/tabs.mjs +424 -0
- package/dist/tabs/tabs.mjs.map +1 -0
- package/dist/types/actions.d.ts +26 -0
- package/dist/types/actions.d.ts.map +1 -0
- package/dist/types/actions.js +24 -0
- package/dist/types/actions.js.map +1 -0
- package/dist/types/browser.d.ts +7 -0
- package/dist/types/browser.d.ts.map +1 -0
- package/dist/types/browser.js +24 -0
- package/dist/types/browser.js.map +1 -0
- package/dist/types/browser.mjs +4 -0
- package/dist/types/dialog.d.ts +7 -0
- package/dist/types/dialog.d.ts.map +1 -0
- package/dist/types/dialog.js +24 -0
- package/dist/types/dialog.js.map +1 -0
- package/dist/types/dialog.mjs +4 -0
- package/dist/types/env.d.ts +8 -0
- package/dist/types/env.d.ts.map +1 -0
- package/dist/{types.js → types/env.js} +1 -1
- package/dist/types/env.js.map +1 -0
- package/dist/types/env.mjs +4 -0
- package/dist/types/index.d.ts +6 -0
- package/dist/types/index.d.ts.map +1 -0
- package/dist/types/index.js +102 -0
- package/dist/types/index.js.map +1 -0
- package/dist/types/index.mjs +9 -0
- package/dist/types/tabs.d.ts +98 -0
- package/dist/types/tabs.d.ts.map +1 -0
- package/dist/types/tabs.js +48 -0
- package/dist/types/tabs.js.map +1 -0
- package/dist/types/tabs.mjs +14 -0
- package/dist/types/tabs.mjs.map +1 -0
- package/dist/utils/iife.d.ts +2 -0
- package/dist/utils/iife.d.ts.map +1 -0
- package/dist/utils/iife.js +48 -0
- package/dist/utils/iife.js.map +1 -0
- package/dist/utils/iife.mjs +14 -0
- package/dist/utils/iife.mjs.map +1 -0
- package/dist/utils/index.d.ts +4 -0
- package/dist/utils/index.d.ts.map +1 -0
- package/dist/utils/index.js +50 -0
- package/dist/utils/index.js.map +1 -0
- package/dist/utils/index.mjs +8 -0
- package/dist/utils/mutex.d.ts +21 -0
- package/dist/utils/mutex.d.ts.map +1 -0
- package/dist/utils/mutex.js +133 -0
- package/dist/utils/mutex.js.map +1 -0
- package/dist/utils/mutex.mjs +99 -0
- package/dist/utils/mutex.mjs.map +1 -0
- package/dist/utils/url.d.ts +7 -0
- package/dist/utils/url.d.ts.map +1 -0
- package/dist/utils/url.js +76 -0
- package/dist/utils/url.js.map +1 -0
- package/dist/utils/url.mjs +42 -0
- package/dist/utils/url.mjs.map +1 -0
- package/package.json +21 -13
- package/dist/base-browser.d.ts +0 -94
- package/dist/base-browser.d.ts.map +0 -1
- package/dist/base-browser.js +0 -189
- package/dist/base-browser.js.map +0 -1
- package/dist/base-browser.mjs +0 -155
- package/dist/base-browser.mjs.map +0 -1
- package/dist/index.d.ts +0 -15
- package/dist/index.d.ts.map +0 -1
- package/dist/index.js.map +0 -1
- package/dist/index.mjs +0 -8
- package/dist/local-browser.d.ts +0 -19
- package/dist/local-browser.d.ts.map +0 -1
- package/dist/local-browser.js +0 -134
- package/dist/local-browser.js.map +0 -1
- package/dist/local-browser.mjs +0 -100
- package/dist/local-browser.mjs.map +0 -1
- package/dist/remote-browser.d.ts +0 -49
- package/dist/remote-browser.d.ts.map +0 -1
- package/dist/remote-browser.js +0 -89
- package/dist/remote-browser.js.map +0 -1
- package/dist/remote-browser.mjs +0 -55
- package/dist/remote-browser.mjs.map +0 -1
- package/dist/types.d.ts +0 -158
- package/dist/types.d.ts.map +0 -1
- package/dist/types.js.map +0 -1
- /package/dist/{types.mjs → types/actions.mjs} +0 -0
|
@@ -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 @@
|
|
|
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
|
package/dist/env.js.map
ADDED
|
@@ -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
|
package/dist/env.mjs.map
ADDED
|
@@ -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 @@
|
|
|
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 @@
|
|
|
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
|
-
"./
|
|
8
|
-
module.exports = require("./
|
|
7
|
+
"./actions?134d": function(module) {
|
|
8
|
+
module.exports = require("./actions/index.js");
|
|
9
9
|
},
|
|
10
|
-
"./
|
|
11
|
-
module.exports = require("./
|
|
10
|
+
"./browser/base": function(module) {
|
|
11
|
+
module.exports = require("./browser/base.js");
|
|
12
12
|
},
|
|
13
|
-
"./
|
|
14
|
-
module.exports = require("./
|
|
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
|
-
|
|
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
|
|
66
|
-
return
|
|
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
|
|
82
|
+
var _tabs__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__("./tabs?6df2");
|
|
70
83
|
var __WEBPACK_REEXPORT_OBJECT__ = {};
|
|
71
|
-
for(var __WEBPACK_IMPORT_KEY__ in
|
|
72
|
-
return
|
|
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
|
|
88
|
+
var _actions__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__("./actions?134d");
|
|
76
89
|
var __WEBPACK_REEXPORT_OBJECT__ = {};
|
|
77
|
-
for(var __WEBPACK_IMPORT_KEY__ in
|
|
78
|
-
return
|
|
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
|
|
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
|
|
84
|
-
return
|
|
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";
|