@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.
Files changed (187) hide show
  1. package/LICENSE +201 -0
  2. package/README.md +35 -52
  3. package/README.zh-CN.md +57 -0
  4. package/dist/actions/index.d.ts +3 -0
  5. package/dist/actions/index.d.ts.map +1 -0
  6. package/dist/actions/index.js +46 -0
  7. package/dist/actions/index.js.map +1 -0
  8. package/dist/actions/index.mjs +7 -0
  9. package/dist/actions/key-map.d.ts +28 -0
  10. package/dist/actions/key-map.d.ts.map +1 -0
  11. package/dist/actions/key-map.js +409 -0
  12. package/dist/actions/key-map.js.map +1 -0
  13. package/dist/actions/key-map.mjs +369 -0
  14. package/dist/actions/key-map.mjs.map +1 -0
  15. package/dist/actions/keyboard.d.ts +21 -0
  16. package/dist/actions/keyboard.d.ts.map +1 -0
  17. package/dist/actions/keyboard.js +196 -0
  18. package/dist/actions/keyboard.js.map +1 -0
  19. package/dist/actions/keyboard.mjs +152 -0
  20. package/dist/actions/keyboard.mjs.map +1 -0
  21. package/dist/actions/keyboard.test.d.ts +2 -0
  22. package/dist/actions/keyboard.test.d.ts.map +1 -0
  23. package/dist/actions/mouse.d.ts +19 -0
  24. package/dist/actions/mouse.d.ts.map +1 -0
  25. package/dist/actions/mouse.js +173 -0
  26. package/dist/actions/mouse.js.map +1 -0
  27. package/dist/actions/mouse.mjs +136 -0
  28. package/dist/actions/mouse.mjs.map +1 -0
  29. package/dist/browser/base.d.ts +47 -0
  30. package/dist/browser/base.d.ts.map +1 -0
  31. package/dist/browser/base.js +156 -0
  32. package/dist/browser/base.js.map +1 -0
  33. package/dist/browser/base.mjs +122 -0
  34. package/dist/browser/base.mjs.map +1 -0
  35. package/dist/browser/browser.d.ts +23 -0
  36. package/dist/browser/browser.d.ts.map +1 -0
  37. package/dist/browser/browser.js +183 -0
  38. package/dist/browser/browser.js.map +1 -0
  39. package/dist/browser/browser.mjs +149 -0
  40. package/dist/browser/browser.mjs.map +1 -0
  41. package/dist/env.d.ts +4 -0
  42. package/dist/env.d.ts.map +1 -0
  43. package/dist/env.js +96 -0
  44. package/dist/env.js.map +1 -0
  45. package/dist/env.mjs +62 -0
  46. package/dist/env.mjs.map +1 -0
  47. package/dist/index.node.d.ts +7 -0
  48. package/dist/index.node.d.ts.map +1 -0
  49. package/dist/index.node.js +106 -0
  50. package/dist/index.node.js.map +1 -0
  51. package/dist/index.node.mjs +10 -0
  52. package/dist/index.web.d.ts +7 -0
  53. package/dist/index.web.d.ts.map +1 -0
  54. package/dist/{index.js → index.web.js} +33 -20
  55. package/dist/index.web.js.map +1 -0
  56. package/dist/index.web.mjs +10 -0
  57. package/dist/injected-script/index.d.ts +3 -0
  58. package/dist/injected-script/index.d.ts.map +1 -0
  59. package/dist/injected-script/index.js +46 -0
  60. package/dist/injected-script/index.js.map +1 -0
  61. package/dist/injected-script/index.mjs +7 -0
  62. package/dist/injected-script/visibility.d.ts +2 -0
  63. package/dist/injected-script/visibility.d.ts.map +1 -0
  64. package/dist/injected-script/visibility.js +66 -0
  65. package/dist/injected-script/visibility.js.map +1 -0
  66. package/dist/injected-script/visibility.mjs +32 -0
  67. package/dist/injected-script/visibility.mjs.map +1 -0
  68. package/dist/injected-script/webdriver.d.ts +2 -0
  69. package/dist/injected-script/webdriver.d.ts.map +1 -0
  70. package/dist/injected-script/webdriver.js +71 -0
  71. package/dist/injected-script/webdriver.js.map +1 -0
  72. package/dist/injected-script/webdriver.mjs +37 -0
  73. package/dist/injected-script/webdriver.mjs.map +1 -0
  74. package/dist/polyfills/index.d.ts +2 -0
  75. package/dist/polyfills/index.d.ts.map +1 -0
  76. package/dist/polyfills/index.js +66 -0
  77. package/dist/polyfills/index.js.map +1 -0
  78. package/dist/polyfills/index.mjs +5 -0
  79. package/dist/polyfills/withResolvers.d.ts +2 -0
  80. package/dist/polyfills/withResolvers.d.ts.map +1 -0
  81. package/dist/polyfills/withResolvers.js +37 -0
  82. package/dist/polyfills/withResolvers.js.map +1 -0
  83. package/dist/polyfills/withResolvers.mjs +19 -0
  84. package/dist/polyfills/withResolvers.mjs.map +1 -0
  85. package/dist/tabs/dialog.d.ts +14 -0
  86. package/dist/tabs/dialog.d.ts.map +1 -0
  87. package/dist/tabs/dialog.js +175 -0
  88. package/dist/tabs/dialog.js.map +1 -0
  89. package/dist/tabs/dialog.mjs +141 -0
  90. package/dist/tabs/dialog.mjs.map +1 -0
  91. package/dist/tabs/index.d.ts +3 -0
  92. package/dist/tabs/index.d.ts.map +1 -0
  93. package/dist/tabs/index.js +46 -0
  94. package/dist/tabs/index.js.map +1 -0
  95. package/dist/tabs/index.mjs +7 -0
  96. package/dist/tabs/tab.d.ts +50 -0
  97. package/dist/tabs/tab.d.ts.map +1 -0
  98. package/dist/tabs/tab.js +579 -0
  99. package/dist/tabs/tab.js.map +1 -0
  100. package/dist/tabs/tab.mjs +545 -0
  101. package/dist/tabs/tab.mjs.map +1 -0
  102. package/dist/tabs/tabs.d.ts +21 -0
  103. package/dist/tabs/tabs.d.ts.map +1 -0
  104. package/dist/tabs/tabs.js +458 -0
  105. package/dist/tabs/tabs.js.map +1 -0
  106. package/dist/tabs/tabs.mjs +424 -0
  107. package/dist/tabs/tabs.mjs.map +1 -0
  108. package/dist/types/actions.d.ts +26 -0
  109. package/dist/types/actions.d.ts.map +1 -0
  110. package/dist/types/actions.js +24 -0
  111. package/dist/types/actions.js.map +1 -0
  112. package/dist/types/browser.d.ts +7 -0
  113. package/dist/types/browser.d.ts.map +1 -0
  114. package/dist/types/browser.js +24 -0
  115. package/dist/types/browser.js.map +1 -0
  116. package/dist/types/browser.mjs +4 -0
  117. package/dist/types/dialog.d.ts +7 -0
  118. package/dist/types/dialog.d.ts.map +1 -0
  119. package/dist/types/dialog.js +24 -0
  120. package/dist/types/dialog.js.map +1 -0
  121. package/dist/types/dialog.mjs +4 -0
  122. package/dist/types/env.d.ts +8 -0
  123. package/dist/types/env.d.ts.map +1 -0
  124. package/dist/{types.js → types/env.js} +1 -1
  125. package/dist/types/env.js.map +1 -0
  126. package/dist/types/env.mjs +4 -0
  127. package/dist/types/index.d.ts +6 -0
  128. package/dist/types/index.d.ts.map +1 -0
  129. package/dist/types/index.js +102 -0
  130. package/dist/types/index.js.map +1 -0
  131. package/dist/types/index.mjs +9 -0
  132. package/dist/types/tabs.d.ts +98 -0
  133. package/dist/types/tabs.d.ts.map +1 -0
  134. package/dist/types/tabs.js +48 -0
  135. package/dist/types/tabs.js.map +1 -0
  136. package/dist/types/tabs.mjs +14 -0
  137. package/dist/types/tabs.mjs.map +1 -0
  138. package/dist/utils/iife.d.ts +2 -0
  139. package/dist/utils/iife.d.ts.map +1 -0
  140. package/dist/utils/iife.js +48 -0
  141. package/dist/utils/iife.js.map +1 -0
  142. package/dist/utils/iife.mjs +14 -0
  143. package/dist/utils/iife.mjs.map +1 -0
  144. package/dist/utils/index.d.ts +4 -0
  145. package/dist/utils/index.d.ts.map +1 -0
  146. package/dist/utils/index.js +50 -0
  147. package/dist/utils/index.js.map +1 -0
  148. package/dist/utils/index.mjs +8 -0
  149. package/dist/utils/mutex.d.ts +21 -0
  150. package/dist/utils/mutex.d.ts.map +1 -0
  151. package/dist/utils/mutex.js +133 -0
  152. package/dist/utils/mutex.js.map +1 -0
  153. package/dist/utils/mutex.mjs +99 -0
  154. package/dist/utils/mutex.mjs.map +1 -0
  155. package/dist/utils/url.d.ts +7 -0
  156. package/dist/utils/url.d.ts.map +1 -0
  157. package/dist/utils/url.js +76 -0
  158. package/dist/utils/url.js.map +1 -0
  159. package/dist/utils/url.mjs +42 -0
  160. package/dist/utils/url.mjs.map +1 -0
  161. package/package.json +21 -13
  162. package/dist/base-browser.d.ts +0 -94
  163. package/dist/base-browser.d.ts.map +0 -1
  164. package/dist/base-browser.js +0 -189
  165. package/dist/base-browser.js.map +0 -1
  166. package/dist/base-browser.mjs +0 -155
  167. package/dist/base-browser.mjs.map +0 -1
  168. package/dist/index.d.ts +0 -15
  169. package/dist/index.d.ts.map +0 -1
  170. package/dist/index.js.map +0 -1
  171. package/dist/index.mjs +0 -8
  172. package/dist/local-browser.d.ts +0 -19
  173. package/dist/local-browser.d.ts.map +0 -1
  174. package/dist/local-browser.js +0 -134
  175. package/dist/local-browser.js.map +0 -1
  176. package/dist/local-browser.mjs +0 -100
  177. package/dist/local-browser.mjs.map +0 -1
  178. package/dist/remote-browser.d.ts +0 -49
  179. package/dist/remote-browser.d.ts.map +0 -1
  180. package/dist/remote-browser.js +0 -89
  181. package/dist/remote-browser.js.map +0 -1
  182. package/dist/remote-browser.mjs +0 -55
  183. package/dist/remote-browser.mjs.map +0 -1
  184. package/dist/types.d.ts +0 -158
  185. package/dist/types.d.ts.map +0 -1
  186. package/dist/types.js.map +0 -1
  187. /package/dist/{types.mjs → types/actions.mjs} +0 -0
@@ -0,0 +1,6 @@
1
+ export * from './env';
2
+ export * from './browser';
3
+ export * from './tabs';
4
+ export * from './dialog';
5
+ export * from './actions';
6
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/types/index.ts"],"names":[],"mappings":"AAKA,cAAc,OAAO,CAAC;AACtB,cAAc,WAAW,CAAC;AAC1B,cAAc,QAAQ,CAAC;AACvB,cAAc,UAAU,CAAC;AACzB,cAAc,WAAW,CAAC"}
@@ -0,0 +1,102 @@
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?513b": function(module) {
8
+ module.exports = require("./actions.js");
9
+ },
10
+ "./browser": function(module) {
11
+ module.exports = require("./browser.js");
12
+ },
13
+ "./dialog": function(module) {
14
+ module.exports = require("./dialog.js");
15
+ },
16
+ "./env": function(module) {
17
+ module.exports = require("./env.js");
18
+ },
19
+ "./tabs?176b": function(module) {
20
+ module.exports = require("./tabs.js");
21
+ }
22
+ };
23
+ var __webpack_module_cache__ = {};
24
+ function __webpack_require__(moduleId) {
25
+ var cachedModule = __webpack_module_cache__[moduleId];
26
+ if (void 0 !== cachedModule) return cachedModule.exports;
27
+ var module = __webpack_module_cache__[moduleId] = {
28
+ exports: {}
29
+ };
30
+ __webpack_modules__[moduleId](module, module.exports, __webpack_require__);
31
+ return module.exports;
32
+ }
33
+ (()=>{
34
+ __webpack_require__.n = (module)=>{
35
+ var getter = module && module.__esModule ? ()=>module['default'] : ()=>module;
36
+ __webpack_require__.d(getter, {
37
+ a: getter
38
+ });
39
+ return getter;
40
+ };
41
+ })();
42
+ (()=>{
43
+ __webpack_require__.d = (exports1, definition)=>{
44
+ for(var key in definition)if (__webpack_require__.o(definition, key) && !__webpack_require__.o(exports1, key)) Object.defineProperty(exports1, key, {
45
+ enumerable: true,
46
+ get: definition[key]
47
+ });
48
+ };
49
+ })();
50
+ (()=>{
51
+ __webpack_require__.o = (obj, prop)=>Object.prototype.hasOwnProperty.call(obj, prop);
52
+ })();
53
+ (()=>{
54
+ __webpack_require__.r = (exports1)=>{
55
+ if ('undefined' != typeof Symbol && Symbol.toStringTag) Object.defineProperty(exports1, Symbol.toStringTag, {
56
+ value: 'Module'
57
+ });
58
+ Object.defineProperty(exports1, '__esModule', {
59
+ value: true
60
+ });
61
+ };
62
+ })();
63
+ var __webpack_exports__ = {};
64
+ (()=>{
65
+ __webpack_require__.r(__webpack_exports__);
66
+ var _env__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__("./env");
67
+ var __WEBPACK_REEXPORT_OBJECT__ = {};
68
+ for(var __WEBPACK_IMPORT_KEY__ in _env__WEBPACK_IMPORTED_MODULE_0__)if ("default" !== __WEBPACK_IMPORT_KEY__) __WEBPACK_REEXPORT_OBJECT__[__WEBPACK_IMPORT_KEY__] = (function(key) {
69
+ return _env__WEBPACK_IMPORTED_MODULE_0__[key];
70
+ }).bind(0, __WEBPACK_IMPORT_KEY__);
71
+ __webpack_require__.d(__webpack_exports__, __WEBPACK_REEXPORT_OBJECT__);
72
+ var _browser__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__("./browser");
73
+ var __WEBPACK_REEXPORT_OBJECT__ = {};
74
+ for(var __WEBPACK_IMPORT_KEY__ in _browser__WEBPACK_IMPORTED_MODULE_1__)if ("default" !== __WEBPACK_IMPORT_KEY__) __WEBPACK_REEXPORT_OBJECT__[__WEBPACK_IMPORT_KEY__] = (function(key) {
75
+ return _browser__WEBPACK_IMPORTED_MODULE_1__[key];
76
+ }).bind(0, __WEBPACK_IMPORT_KEY__);
77
+ __webpack_require__.d(__webpack_exports__, __WEBPACK_REEXPORT_OBJECT__);
78
+ var _tabs__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__("./tabs?176b");
79
+ var __WEBPACK_REEXPORT_OBJECT__ = {};
80
+ for(var __WEBPACK_IMPORT_KEY__ in _tabs__WEBPACK_IMPORTED_MODULE_2__)if ("default" !== __WEBPACK_IMPORT_KEY__) __WEBPACK_REEXPORT_OBJECT__[__WEBPACK_IMPORT_KEY__] = (function(key) {
81
+ return _tabs__WEBPACK_IMPORTED_MODULE_2__[key];
82
+ }).bind(0, __WEBPACK_IMPORT_KEY__);
83
+ __webpack_require__.d(__webpack_exports__, __WEBPACK_REEXPORT_OBJECT__);
84
+ var _dialog__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__("./dialog");
85
+ var __WEBPACK_REEXPORT_OBJECT__ = {};
86
+ for(var __WEBPACK_IMPORT_KEY__ in _dialog__WEBPACK_IMPORTED_MODULE_3__)if ("default" !== __WEBPACK_IMPORT_KEY__) __WEBPACK_REEXPORT_OBJECT__[__WEBPACK_IMPORT_KEY__] = (function(key) {
87
+ return _dialog__WEBPACK_IMPORTED_MODULE_3__[key];
88
+ }).bind(0, __WEBPACK_IMPORT_KEY__);
89
+ __webpack_require__.d(__webpack_exports__, __WEBPACK_REEXPORT_OBJECT__);
90
+ var _actions__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__("./actions?513b");
91
+ var __WEBPACK_REEXPORT_OBJECT__ = {};
92
+ for(var __WEBPACK_IMPORT_KEY__ in _actions__WEBPACK_IMPORTED_MODULE_4__)if ("default" !== __WEBPACK_IMPORT_KEY__) __WEBPACK_REEXPORT_OBJECT__[__WEBPACK_IMPORT_KEY__] = (function(key) {
93
+ return _actions__WEBPACK_IMPORTED_MODULE_4__[key];
94
+ }).bind(0, __WEBPACK_IMPORT_KEY__);
95
+ __webpack_require__.d(__webpack_exports__, __WEBPACK_REEXPORT_OBJECT__);
96
+ })();
97
+ for(var __webpack_i__ in __webpack_exports__)exports[__webpack_i__] = __webpack_exports__[__webpack_i__];
98
+ Object.defineProperty(exports, '__esModule', {
99
+ value: true
100
+ });
101
+
102
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"types/index.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,9 @@
1
+ /**
2
+ * Copyright (c) 2025 Bytedance, Inc. and its affiliates.
3
+ * SPDX-License-Identifier: Apache-2.0
4
+ */
5
+ export * from "./env.mjs";
6
+ export * from "./browser.mjs";
7
+ export * from "./tabs.mjs";
8
+ export * from "./dialog.mjs";
9
+ export * from "./actions.mjs";
@@ -0,0 +1,98 @@
1
+ import type { Viewport, Protocol, PuppeteerLifeCycleEvent, ScreenshotOptions } from 'puppeteer-core';
2
+ import type { EnvInfo } from './env';
3
+ import type { UserAgentInfo } from './browser';
4
+ export interface TabsOptions {
5
+ viewport: Viewport;
6
+ envInfo: EnvInfo;
7
+ userAgentInfo?: UserAgentInfo;
8
+ }
9
+ export interface TabOptions extends TabsOptions {
10
+ tabId: string;
11
+ }
12
+ export declare const enum TabEvents {
13
+ TabLoadingStateChanged = "tabLoadingStateChanged",
14
+ TabUrlChanged = "tabUrlChanged",
15
+ TabVisibilityChanged = "TabVisibilityChanged",
16
+ TabDialogChanged = "TabDialogChanged"
17
+ }
18
+ export interface TabEventsMap {
19
+ [TabEvents.TabLoadingStateChanged]: {
20
+ tabId: string;
21
+ isLoading: boolean;
22
+ };
23
+ [TabEvents.TabUrlChanged]: {
24
+ tabId: string;
25
+ title: string;
26
+ favicon: string;
27
+ oldUrl: string;
28
+ newUrl: string;
29
+ canGoBack: boolean;
30
+ canGoForward: boolean;
31
+ };
32
+ [TabEvents.TabVisibilityChanged]: {
33
+ tabId: string;
34
+ isVisible: boolean;
35
+ };
36
+ [TabEvents.TabDialogChanged]: {
37
+ tabId: string;
38
+ isOpen: boolean;
39
+ type?: Protocol.Page.DialogType;
40
+ message?: string;
41
+ defaultValue?: string;
42
+ };
43
+ }
44
+ export interface DialogMeta {
45
+ type: Protocol.Page.DialogType;
46
+ message: string;
47
+ defaultValue: string;
48
+ }
49
+ export interface TabMeta {
50
+ id: string;
51
+ title: string;
52
+ url: string;
53
+ favicon: string | null;
54
+ isLoading: boolean;
55
+ isActive: boolean;
56
+ canGoBack: boolean;
57
+ canGoForward: boolean;
58
+ dialog?: DialogMeta;
59
+ }
60
+ export interface TabsState {
61
+ tabs: Map<string, TabMeta>;
62
+ activeTabId: string | null;
63
+ }
64
+ export interface TabsOperationTracker {
65
+ creatingTargetIds: Set<string>;
66
+ switchingTargetIds: Set<string>;
67
+ closingTargetIds: Set<string>;
68
+ }
69
+ export interface NavigationOptions {
70
+ waitUntil?: PuppeteerLifeCycleEvent[];
71
+ timeout?: number;
72
+ }
73
+ export interface NavigationSuccessResult {
74
+ success: true;
75
+ url: string;
76
+ }
77
+ export interface NavigationErrorResult {
78
+ success: false;
79
+ url: string;
80
+ message: string;
81
+ }
82
+ export type NavigationResult = NavigationSuccessResult | NavigationErrorResult;
83
+ export type TabScreenshotOptions = Pick<ScreenshotOptions, 'type' | 'quality' | 'fullPage' | 'path'>;
84
+ export interface BaseScreenshotResult {
85
+ type: string;
86
+ width: number;
87
+ height: number;
88
+ }
89
+ export interface ScreenshotResultWithPath extends BaseScreenshotResult {
90
+ data: Uint8Array;
91
+ }
92
+ export interface ScreenshotResultWithoutPath extends BaseScreenshotResult {
93
+ data: string;
94
+ }
95
+ export type TabScreenshotResult<T extends TabScreenshotOptions> = T extends {
96
+ path: string;
97
+ } ? ScreenshotResultWithPath : ScreenshotResultWithoutPath;
98
+ //# sourceMappingURL=tabs.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"tabs.d.ts","sourceRoot":"","sources":["../../src/types/tabs.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,48 @@
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
+ TabEvents: ()=>TabEvents
32
+ });
33
+ var TabEvents = /*#__PURE__*/ function(TabEvents) {
34
+ TabEvents["TabLoadingStateChanged"] = "tabLoadingStateChanged";
35
+ TabEvents["TabUrlChanged"] = "tabUrlChanged";
36
+ TabEvents["TabVisibilityChanged"] = "TabVisibilityChanged";
37
+ TabEvents["TabDialogChanged"] = "TabDialogChanged";
38
+ return TabEvents;
39
+ }({});
40
+ exports.TabEvents = __webpack_exports__.TabEvents;
41
+ for(var __webpack_i__ in __webpack_exports__)if (-1 === [
42
+ "TabEvents"
43
+ ].indexOf(__webpack_i__)) exports[__webpack_i__] = __webpack_exports__[__webpack_i__];
44
+ Object.defineProperty(exports, '__esModule', {
45
+ value: true
46
+ });
47
+
48
+ //# sourceMappingURL=tabs.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"types/tabs.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/types/tabs.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 {\n Viewport,\n Protocol,\n PuppeteerLifeCycleEvent,\n ScreenshotOptions,\n} from 'puppeteer-core';\n\nimport type { EnvInfo } from './env';\nimport type { UserAgentInfo } from './browser';\n\nexport interface TabsOptions {\n viewport: Viewport;\n envInfo: EnvInfo;\n userAgentInfo?: UserAgentInfo;\n}\n\nexport interface TabOptions extends TabsOptions {\n tabId: string;\n}\n\nexport const enum TabEvents {\n TabLoadingStateChanged = 'tabLoadingStateChanged',\n TabUrlChanged = 'tabUrlChanged',\n TabVisibilityChanged = 'TabVisibilityChanged',\n TabDialogChanged = 'TabDialogChanged',\n}\n\nexport interface TabEventsMap {\n [TabEvents.TabLoadingStateChanged]: {\n tabId: string;\n isLoading: boolean;\n };\n [TabEvents.TabUrlChanged]: {\n tabId: string;\n title: string;\n favicon: string;\n oldUrl: string;\n newUrl: string;\n canGoBack: boolean;\n canGoForward: boolean;\n };\n [TabEvents.TabVisibilityChanged]: {\n tabId: string;\n isVisible: boolean;\n };\n [TabEvents.TabDialogChanged]: {\n tabId: string;\n isOpen: boolean;\n type?: Protocol.Page.DialogType;\n message?: string;\n defaultValue?: string;\n };\n}\n\nexport interface DialogMeta {\n type: Protocol.Page.DialogType;\n message: string;\n defaultValue: string;\n}\n\nexport interface TabMeta {\n id: string;\n title: string;\n url: string;\n favicon: string | null;\n isLoading: boolean;\n isActive: boolean;\n canGoBack: boolean;\n canGoForward: boolean;\n dialog?: DialogMeta;\n}\n\nexport interface TabsState {\n tabs: Map<string, TabMeta>;\n activeTabId: string | null;\n}\n\nexport interface TabsOperationTracker {\n creatingTargetIds: Set<string>;\n switchingTargetIds: Set<string>;\n closingTargetIds: Set<string>;\n}\n\nexport interface NavigationOptions {\n waitUntil?: PuppeteerLifeCycleEvent[];\n timeout?: number;\n}\n\nexport interface NavigationSuccessResult {\n success: true;\n url: string;\n}\nexport interface NavigationErrorResult {\n success: false;\n url: string;\n message: string;\n}\n\nexport type NavigationResult = NavigationSuccessResult | NavigationErrorResult;\n\nexport type TabScreenshotOptions = Pick<\n ScreenshotOptions,\n 'type' | 'quality' | 'fullPage' | 'path'\n>;\n\nexport interface BaseScreenshotResult {\n type: string;\n width: number;\n height: number;\n}\n\nexport interface ScreenshotResultWithPath extends BaseScreenshotResult {\n data: Uint8Array;\n}\n\nexport interface ScreenshotResultWithoutPath extends BaseScreenshotResult {\n data: string;\n}\n\nexport type TabScreenshotResult<T extends TabScreenshotOptions> = T extends {\n path: string;\n}\n ? ScreenshotResultWithPath\n : ScreenshotResultWithoutPath;\n"],"names":["__webpack_require__","definition","key","Object","obj","prop","Symbol","TabEvents"],"mappings":";;;;;;;IAAAA,oBAAoB,CAAC,GAAG,CAAC,UAASC;QACjC,IAAI,IAAIC,OAAOD,WACR,IAAGD,oBAAoB,CAAC,CAACC,YAAYC,QAAQ,CAACF,oBAAoB,CAAC,CAAC,UAASE,MACzEC,OAAO,cAAc,CAAC,UAASD,KAAK;YAAE,YAAY;YAAM,KAAKD,UAAU,CAACC,IAAI;QAAC;IAGzF;;;ICNAF,oBAAoB,CAAC,GAAG,CAACI,KAAKC,OAAUF,OAAO,SAAS,CAAC,cAAc,CAAC,IAAI,CAACC,KAAKC;;;ICClFL,oBAAoB,CAAC,GAAG,CAAC;QACxB,IAAG,AAAkB,eAAlB,OAAOM,UAA0BA,OAAO,WAAW,EACrDH,OAAO,cAAc,CAAC,UAASG,OAAO,WAAW,EAAE;YAAE,OAAO;QAAS;QAEtEH,OAAO,cAAc,CAAC,UAAS,cAAc;YAAE,OAAO;QAAK;IAC5D;;;;;;;ACkBO,IAAWI,YAAAA,WAAAA,GAAAA,SAAAA,SAAS;;;;;WAATA"}
@@ -0,0 +1,14 @@
1
+ /**
2
+ * Copyright (c) 2025 Bytedance, Inc. and its affiliates.
3
+ * SPDX-License-Identifier: Apache-2.0
4
+ */
5
+ var tabs_TabEvents = /*#__PURE__*/ function(TabEvents) {
6
+ TabEvents["TabLoadingStateChanged"] = "tabLoadingStateChanged";
7
+ TabEvents["TabUrlChanged"] = "tabUrlChanged";
8
+ TabEvents["TabVisibilityChanged"] = "TabVisibilityChanged";
9
+ TabEvents["TabDialogChanged"] = "TabDialogChanged";
10
+ return TabEvents;
11
+ }({});
12
+ export { tabs_TabEvents as TabEvents };
13
+
14
+ //# sourceMappingURL=tabs.mjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"types/tabs.mjs","sources":["webpack://@agent-infra/browser/./src/types/tabs.ts"],"sourcesContent":["/*\n * Copyright (c) 2025 Bytedance, Inc. and its affiliates.\n * SPDX-License-Identifier: Apache-2.0\n */\nimport type {\n Viewport,\n Protocol,\n PuppeteerLifeCycleEvent,\n ScreenshotOptions,\n} from 'puppeteer-core';\n\nimport type { EnvInfo } from './env';\nimport type { UserAgentInfo } from './browser';\n\nexport interface TabsOptions {\n viewport: Viewport;\n envInfo: EnvInfo;\n userAgentInfo?: UserAgentInfo;\n}\n\nexport interface TabOptions extends TabsOptions {\n tabId: string;\n}\n\nexport const enum TabEvents {\n TabLoadingStateChanged = 'tabLoadingStateChanged',\n TabUrlChanged = 'tabUrlChanged',\n TabVisibilityChanged = 'TabVisibilityChanged',\n TabDialogChanged = 'TabDialogChanged',\n}\n\nexport interface TabEventsMap {\n [TabEvents.TabLoadingStateChanged]: {\n tabId: string;\n isLoading: boolean;\n };\n [TabEvents.TabUrlChanged]: {\n tabId: string;\n title: string;\n favicon: string;\n oldUrl: string;\n newUrl: string;\n canGoBack: boolean;\n canGoForward: boolean;\n };\n [TabEvents.TabVisibilityChanged]: {\n tabId: string;\n isVisible: boolean;\n };\n [TabEvents.TabDialogChanged]: {\n tabId: string;\n isOpen: boolean;\n type?: Protocol.Page.DialogType;\n message?: string;\n defaultValue?: string;\n };\n}\n\nexport interface DialogMeta {\n type: Protocol.Page.DialogType;\n message: string;\n defaultValue: string;\n}\n\nexport interface TabMeta {\n id: string;\n title: string;\n url: string;\n favicon: string | null;\n isLoading: boolean;\n isActive: boolean;\n canGoBack: boolean;\n canGoForward: boolean;\n dialog?: DialogMeta;\n}\n\nexport interface TabsState {\n tabs: Map<string, TabMeta>;\n activeTabId: string | null;\n}\n\nexport interface TabsOperationTracker {\n creatingTargetIds: Set<string>;\n switchingTargetIds: Set<string>;\n closingTargetIds: Set<string>;\n}\n\nexport interface NavigationOptions {\n waitUntil?: PuppeteerLifeCycleEvent[];\n timeout?: number;\n}\n\nexport interface NavigationSuccessResult {\n success: true;\n url: string;\n}\nexport interface NavigationErrorResult {\n success: false;\n url: string;\n message: string;\n}\n\nexport type NavigationResult = NavigationSuccessResult | NavigationErrorResult;\n\nexport type TabScreenshotOptions = Pick<\n ScreenshotOptions,\n 'type' | 'quality' | 'fullPage' | 'path'\n>;\n\nexport interface BaseScreenshotResult {\n type: string;\n width: number;\n height: number;\n}\n\nexport interface ScreenshotResultWithPath extends BaseScreenshotResult {\n data: Uint8Array;\n}\n\nexport interface ScreenshotResultWithoutPath extends BaseScreenshotResult {\n data: string;\n}\n\nexport type TabScreenshotResult<T extends TabScreenshotOptions> = T extends {\n path: string;\n}\n ? ScreenshotResultWithPath\n : ScreenshotResultWithoutPath;\n"],"names":["TabEvents"],"mappings":";;;;AAwBO,IAAWA,iBAASA,WAAAA,GAAAA,SAATA,SAAS;;;;;WAATA"}
@@ -0,0 +1,2 @@
1
+ export declare const iife: (script: string) => string;
2
+ //# sourceMappingURL=iife.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"iife.d.ts","sourceRoot":"","sources":["../../src/utils/iife.ts"],"names":[],"mappings":"AAIA,eAAO,MAAM,IAAI,GAAI,QAAQ,MAAM,WAM7B,CAAC"}
@@ -0,0 +1,48 @@
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
+ iife: ()=>iife
32
+ });
33
+ const iife = (script)=>`(() => {
34
+ if (window.__agent_infra_injected_script) {
35
+ return;
36
+ }
37
+ window.__agent_infra_injected_script = true;
38
+ ${script}
39
+ })();`;
40
+ exports.iife = __webpack_exports__.iife;
41
+ for(var __webpack_i__ in __webpack_exports__)if (-1 === [
42
+ "iife"
43
+ ].indexOf(__webpack_i__)) exports[__webpack_i__] = __webpack_exports__[__webpack_i__];
44
+ Object.defineProperty(exports, '__esModule', {
45
+ value: true
46
+ });
47
+
48
+ //# sourceMappingURL=iife.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"utils/iife.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/utils/iife.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 */\nexport const iife = (script: string) => /* javascript */ `(() => {\n if (window.__agent_infra_injected_script) {\n return;\n }\n window.__agent_infra_injected_script = true;\n ${script}\n})();`;\n"],"names":["__webpack_require__","definition","key","Object","obj","prop","Symbol","iife","script"],"mappings":";;;;;;;IAAAA,oBAAoB,CAAC,GAAG,CAAC,UAASC;QACjC,IAAI,IAAIC,OAAOD,WACR,IAAGD,oBAAoB,CAAC,CAACC,YAAYC,QAAQ,CAACF,oBAAoB,CAAC,CAAC,UAASE,MACzEC,OAAO,cAAc,CAAC,UAASD,KAAK;YAAE,YAAY;YAAM,KAAKD,UAAU,CAACC,IAAI;QAAC;IAGzF;;;ICNAF,oBAAoB,CAAC,GAAG,CAACI,KAAKC,OAAUF,OAAO,SAAS,CAAC,cAAc,CAAC,IAAI,CAACC,KAAKC;;;ICClFL,oBAAoB,CAAC,GAAG,CAAC;QACxB,IAAG,AAAkB,eAAlB,OAAOM,UAA0BA,OAAO,WAAW,EACrDH,OAAO,cAAc,CAAC,UAASG,OAAO,WAAW,EAAE;YAAE,OAAO;QAAS;QAEtEH,OAAO,cAAc,CAAC,UAAS,cAAc;YAAE,OAAO;QAAK;IAC5D;;;;;;;ACFO,MAAMI,OAAO,CAACC,SAAoC,CAAC;;;;;EAKxD,EAAEA,OAAO;KACN,CAAC"}
@@ -0,0 +1,14 @@
1
+ /**
2
+ * Copyright (c) 2025 Bytedance, Inc. and its affiliates.
3
+ * SPDX-License-Identifier: Apache-2.0
4
+ */
5
+ const iife = (script)=>`(() => {
6
+ if (window.__agent_infra_injected_script) {
7
+ return;
8
+ }
9
+ window.__agent_infra_injected_script = true;
10
+ ${script}
11
+ })();`;
12
+ export { iife };
13
+
14
+ //# sourceMappingURL=iife.mjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"utils/iife.mjs","sources":["webpack://@agent-infra/browser/./src/utils/iife.ts"],"sourcesContent":["/*\n * Copyright (c) 2025 Bytedance, Inc. and its affiliates.\n * SPDX-License-Identifier: Apache-2.0\n */\nexport const iife = (script: string) => /* javascript */ `(() => {\n if (window.__agent_infra_injected_script) {\n return;\n }\n window.__agent_infra_injected_script = true;\n ${script}\n})();`;\n"],"names":["iife","script"],"mappings":";;;;AAIO,MAAMA,OAAO,CAACC,SAAoC,CAAC;;;;;EAKxD,EAAEA,OAAO;KACN,CAAC"}
@@ -0,0 +1,4 @@
1
+ export { iife } from './iife';
2
+ export { Mutex } from './mutex';
3
+ export { validateNavigationUrl } from './url';
4
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/utils/index.ts"],"names":[],"mappings":"AAIA,OAAO,EAAE,IAAI,EAAE,MAAM,QAAQ,CAAC;AAC9B,OAAO,EAAE,KAAK,EAAE,MAAM,SAAS,CAAC;AAChC,OAAO,EAAE,qBAAqB,EAAE,MAAM,OAAO,CAAC"}
@@ -0,0 +1,50 @@
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
+ iife: ()=>external_iife_js_namespaceObject.iife,
32
+ validateNavigationUrl: ()=>external_url_js_namespaceObject.validateNavigationUrl,
33
+ Mutex: ()=>external_mutex_js_namespaceObject.Mutex
34
+ });
35
+ const external_iife_js_namespaceObject = require("./iife.js");
36
+ const external_mutex_js_namespaceObject = require("./mutex.js");
37
+ const external_url_js_namespaceObject = require("./url.js");
38
+ exports.Mutex = __webpack_exports__.Mutex;
39
+ exports.iife = __webpack_exports__.iife;
40
+ exports.validateNavigationUrl = __webpack_exports__.validateNavigationUrl;
41
+ for(var __webpack_i__ in __webpack_exports__)if (-1 === [
42
+ "Mutex",
43
+ "iife",
44
+ "validateNavigationUrl"
45
+ ].indexOf(__webpack_i__)) exports[__webpack_i__] = __webpack_exports__[__webpack_i__];
46
+ Object.defineProperty(exports, '__esModule', {
47
+ value: true
48
+ });
49
+
50
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"utils/index.js","sources":["webpack://@agent-infra/browser/webpack/runtime/define_property_getters","webpack://@agent-infra/browser/webpack/runtime/has_own_property","webpack://@agent-infra/browser/webpack/runtime/make_namespace_object"],"sourcesContent":["__webpack_require__.d = (exports, definition) => {\n\tfor(var key in definition) {\n if(__webpack_require__.o(definition, key) && !__webpack_require__.o(exports, key)) {\n Object.defineProperty(exports, key, { enumerable: true, get: definition[key] });\n }\n }\n};","__webpack_require__.o = (obj, prop) => (Object.prototype.hasOwnProperty.call(obj, prop))","// define __esModule on exports\n__webpack_require__.r = (exports) => {\n\tif(typeof Symbol !== 'undefined' && Symbol.toStringTag) {\n\t\tObject.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });\n\t}\n\tObject.defineProperty(exports, '__esModule', { value: true });\n};"],"names":["__webpack_require__","definition","key","Object","obj","prop","Symbol"],"mappings":";;;;;;;IAAAA,oBAAoB,CAAC,GAAG,CAAC,UAASC;QACjC,IAAI,IAAIC,OAAOD,WACR,IAAGD,oBAAoB,CAAC,CAACC,YAAYC,QAAQ,CAACF,oBAAoB,CAAC,CAAC,UAASE,MACzEC,OAAO,cAAc,CAAC,UAASD,KAAK;YAAE,YAAY;YAAM,KAAKD,UAAU,CAACC,IAAI;QAAC;IAGzF;;;ICNAF,oBAAoB,CAAC,GAAG,CAACI,KAAKC,OAAUF,OAAO,SAAS,CAAC,cAAc,CAAC,IAAI,CAACC,KAAKC;;;ICClFL,oBAAoB,CAAC,GAAG,CAAC;QACxB,IAAG,AAAkB,eAAlB,OAAOM,UAA0BA,OAAO,WAAW,EACrDH,OAAO,cAAc,CAAC,UAASG,OAAO,WAAW,EAAE;YAAE,OAAO;QAAS;QAEtEH,OAAO,cAAc,CAAC,UAAS,cAAc;YAAE,OAAO;QAAK;IAC5D"}
@@ -0,0 +1,8 @@
1
+ /**
2
+ * Copyright (c) 2025 Bytedance, Inc. and its affiliates.
3
+ * SPDX-License-Identifier: Apache-2.0
4
+ */
5
+ import { iife } from "./iife.mjs";
6
+ import { Mutex } from "./mutex.mjs";
7
+ import { validateNavigationUrl } from "./url.mjs";
8
+ export { Mutex, iife, validateNavigationUrl };
@@ -0,0 +1,21 @@
1
+ /**
2
+ * The following code is modified based on
3
+ * https://github.com/puppeteer/puppeteer/blob/main/packages/puppeteer-core/src/util/Mutex.ts
4
+ *
5
+ * Copyright 2024 Google Inc.
6
+ * SPDX-License-Identifier: Apache-2.0
7
+ * https://github.com/puppeteer/puppeteer/blob/main/LICENSE
8
+ */
9
+ export declare class Mutex {
10
+ #private;
11
+ static Guard: {
12
+ new (mutex: Mutex, onRelease?: () => void): {
13
+ "__#private@#mutex": Mutex;
14
+ "__#private@#onRelease"?: () => void;
15
+ [Symbol.dispose](): void;
16
+ };
17
+ };
18
+ acquire(onRelease?: () => void): Promise<InstanceType<typeof Mutex.Guard>>;
19
+ release(): void;
20
+ }
21
+ //# sourceMappingURL=mutex.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"mutex.d.ts","sourceRoot":"","sources":["../../src/utils/mutex.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AAEH,qBAAa,KAAK;;IAChB,MAAM,CAAC,KAAK;oBAGS,KAAK,cAAc,MAAM,IAAI;iCAFxC,KAAK;sCACA,MAAM,IAAI;gCAKH,IAAI;;MAIxB;IAMI,OAAO,CACX,SAAS,CAAC,EAAE,MAAM,IAAI,GACrB,OAAO,CAAC,YAAY,CAAC,OAAO,KAAK,CAAC,KAAK,CAAC,CAAC;IAa5C,OAAO,IAAI,IAAI;CAQhB"}
@@ -0,0 +1,133 @@
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
+ Mutex: ()=>Mutex
32
+ });
33
+ function _check_private_redeclaration(obj, privateCollection) {
34
+ if (privateCollection.has(obj)) throw new TypeError("Cannot initialize the same private elements twice on an object");
35
+ }
36
+ function _class_apply_descriptor_get(receiver, descriptor) {
37
+ if (descriptor.get) return descriptor.get.call(receiver);
38
+ return descriptor.value;
39
+ }
40
+ function _class_apply_descriptor_set(receiver, descriptor, value) {
41
+ if (descriptor.set) descriptor.set.call(receiver, value);
42
+ else {
43
+ if (!descriptor.writable) throw new TypeError("attempted to set read only private field");
44
+ descriptor.value = value;
45
+ }
46
+ }
47
+ function _class_extract_field_descriptor(receiver, privateMap, action) {
48
+ if (!privateMap.has(receiver)) throw new TypeError("attempted to " + action + " private field on non-instance");
49
+ return privateMap.get(receiver);
50
+ }
51
+ function _class_private_field_get(receiver, privateMap) {
52
+ var descriptor = _class_extract_field_descriptor(receiver, privateMap, "get");
53
+ return _class_apply_descriptor_get(receiver, descriptor);
54
+ }
55
+ function _class_private_field_init(obj, privateMap, value) {
56
+ _check_private_redeclaration(obj, privateMap);
57
+ privateMap.set(obj, value);
58
+ }
59
+ function _class_private_field_set(receiver, privateMap, value) {
60
+ var descriptor = _class_extract_field_descriptor(receiver, privateMap, "set");
61
+ _class_apply_descriptor_set(receiver, descriptor, value);
62
+ return value;
63
+ }
64
+ function _define_property(obj, key, value) {
65
+ if (key in obj) Object.defineProperty(obj, key, {
66
+ value: value,
67
+ enumerable: true,
68
+ configurable: true,
69
+ writable: true
70
+ });
71
+ else obj[key] = value;
72
+ return obj;
73
+ }
74
+ let _computedKey;
75
+ var _mutex, _onRelease;
76
+ var _computedKey1;
77
+ _computedKey1 = Symbol.dispose;
78
+ var _locked = /*#__PURE__*/ new WeakMap(), _acquirers = /*#__PURE__*/ new WeakMap();
79
+ class Mutex {
80
+ async acquire(onRelease) {
81
+ if (!_class_private_field_get(this, _locked)) {
82
+ _class_private_field_set(this, _locked, true);
83
+ return new Mutex.Guard(this);
84
+ }
85
+ const { promise, resolve } = Promise.withResolvers();
86
+ _class_private_field_get(this, _acquirers).push(resolve);
87
+ await promise;
88
+ return new Mutex.Guard(this, onRelease);
89
+ }
90
+ release() {
91
+ const resolve = _class_private_field_get(this, _acquirers).shift();
92
+ if (!resolve) return void _class_private_field_set(this, _locked, false);
93
+ resolve();
94
+ }
95
+ constructor(){
96
+ _class_private_field_init(this, _locked, {
97
+ writable: true,
98
+ value: false
99
+ });
100
+ _class_private_field_init(this, _acquirers, {
101
+ writable: true,
102
+ value: []
103
+ });
104
+ }
105
+ }
106
+ _define_property(Mutex, "Guard", (_mutex = /*#__PURE__*/ new WeakMap(), _onRelease = /*#__PURE__*/ new WeakMap(), _computedKey = _computedKey1, class {
107
+ [_computedKey]() {
108
+ var _this, _this1;
109
+ null == (_this = _class_private_field_get(_this1 = this, _onRelease)) || _this.call(_this1);
110
+ return _class_private_field_get(this, _mutex).release();
111
+ }
112
+ constructor(mutex, onRelease){
113
+ _class_private_field_init(this, _mutex, {
114
+ writable: true,
115
+ value: void 0
116
+ });
117
+ _class_private_field_init(this, _onRelease, {
118
+ writable: true,
119
+ value: void 0
120
+ });
121
+ _class_private_field_set(this, _mutex, mutex);
122
+ _class_private_field_set(this, _onRelease, onRelease);
123
+ }
124
+ }));
125
+ exports.Mutex = __webpack_exports__.Mutex;
126
+ for(var __webpack_i__ in __webpack_exports__)if (-1 === [
127
+ "Mutex"
128
+ ].indexOf(__webpack_i__)) exports[__webpack_i__] = __webpack_exports__[__webpack_i__];
129
+ Object.defineProperty(exports, '__esModule', {
130
+ value: true
131
+ });
132
+
133
+ //# sourceMappingURL=mutex.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"utils/mutex.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/utils/mutex.ts"],"sourcesContent":["__webpack_require__.d = (exports, definition) => {\n\tfor(var key in definition) {\n if(__webpack_require__.o(definition, key) && !__webpack_require__.o(exports, key)) {\n Object.defineProperty(exports, key, { enumerable: true, get: definition[key] });\n }\n }\n};","__webpack_require__.o = (obj, prop) => (Object.prototype.hasOwnProperty.call(obj, prop))","// define __esModule on exports\n__webpack_require__.r = (exports) => {\n\tif(typeof Symbol !== 'undefined' && Symbol.toStringTag) {\n\t\tObject.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });\n\t}\n\tObject.defineProperty(exports, '__esModule', { value: true });\n};","/**\n * The following code is modified based on\n * https://github.com/puppeteer/puppeteer/blob/main/packages/puppeteer-core/src/util/Mutex.ts\n *\n * Copyright 2024 Google Inc.\n * SPDX-License-Identifier: Apache-2.0\n * https://github.com/puppeteer/puppeteer/blob/main/LICENSE\n */\n\nexport class Mutex {\n static Guard = class Guard {\n #mutex: Mutex;\n #onRelease?: () => void;\n constructor(mutex: Mutex, onRelease?: () => void) {\n this.#mutex = mutex;\n this.#onRelease = onRelease;\n }\n [Symbol.dispose](): void {\n this.#onRelease?.();\n return this.#mutex.release();\n }\n };\n\n #locked = false;\n #acquirers: Array<() => void> = [];\n\n // This is FIFO.\n async acquire(\n onRelease?: () => void,\n ): Promise<InstanceType<typeof Mutex.Guard>> {\n if (!this.#locked) {\n this.#locked = true;\n return new Mutex.Guard(this);\n }\n\n const { promise, resolve } = Promise.withResolvers<void>();\n this.#acquirers.push(resolve);\n await promise;\n\n return new Mutex.Guard(this, onRelease);\n }\n\n release(): void {\n const resolve = this.#acquirers.shift();\n if (!resolve) {\n this.#locked = false;\n return;\n }\n resolve();\n }\n}\n"],"names":["__webpack_require__","definition","key","Object","obj","prop","Symbol","_mutex","_onRelease","_locked","_acquirers","Mutex","onRelease","promise","resolve","Promise","_this1","mutex"],"mappings":";;;;;;;IAAAA,oBAAoB,CAAC,GAAG,CAAC,UAASC;QACjC,IAAI,IAAIC,OAAOD,WACR,IAAGD,oBAAoB,CAAC,CAACC,YAAYC,QAAQ,CAACF,oBAAoB,CAAC,CAAC,UAASE,MACzEC,OAAO,cAAc,CAAC,UAASD,KAAK;YAAE,YAAY;YAAM,KAAKD,UAAU,CAACC,IAAI;QAAC;IAGzF;;;ICNAF,oBAAoB,CAAC,GAAG,CAACI,KAAKC,OAAUF,OAAO,SAAS,CAAC,cAAc,CAAC,IAAI,CAACC,KAAKC;;;ICClFL,oBAAoB,CAAC,GAAG,CAAC;QACxB,IAAG,AAAkB,eAAlB,OAAOM,UAA0BA,OAAO,WAAW,EACrDH,OAAO,cAAc,CAAC,UAASG,OAAO,WAAW,EAAE;YAAE,OAAO;QAAS;QAEtEH,OAAO,cAAc,CAAC,UAAS,cAAc;YAAE,OAAO;QAAK;IAC5D;;;;;;;ACCC;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;IAIGI,QACAC;;gBAKCF,OAAO,OAAO;IAMjBG,UAAAA,WAAAA,GAAAA,IAAAA,WACAC,aAAAA,WAAAA,GAAAA,IAAAA;AAfK,MAAMC;IAkBX,MAAM,QACJC,SAAsB,EACqB;QAC3C,IAAI,CAAC,6BAAI,EAACH,UAAS;2CACZA,SAAU;YACf,OAAO,IAAIE,MAAM,KAAK,CAAC,IAAI;QAC7B;QAEA,MAAM,EAAEE,OAAO,EAAEC,OAAO,EAAE,GAAGC,QAAQ,aAAa;QAClD,6BAAI,EAACL,YAAW,IAAI,CAACI;QACrB,MAAMD;QAEN,OAAO,IAAIF,MAAM,KAAK,CAAC,IAAI,EAAEC;IAC/B;IAEA,UAAgB;QACd,MAAME,UAAU,6BAAI,EAACJ,YAAW,KAAK;QACrC,IAAI,CAACI,SAAS,2CACPL,SAAU;QAGjBK;IACF;;QA1BAL,0BAAAA,IAAAA,EAAAA,SAAAA;;mBAAU;;QACVC,0BAAAA,IAAAA,EAAAA,YAAAA;;mBAAgC,EAAE;;;AA0BpC;AAxCE,iBADWC,OACJ,SACLJ,CAAAA,SAAAA,WAAAA,GAAAA,IAAAA,WACAC,aAAAA,WAAAA,GAAAA,IAAAA,WAAAA,eAAAA,eAFa;IAOb,CAAC,aAAD,GAAyB;YACvBQ,OAAAA;gBAAAA,CAAAA,QAAAA,yBAAAA,SAAAA,IAAI,EAACR,WAAAA,KAALQ,MAAAA,IAAAA,CAAAA;QACA,OAAO,6BAAI,EAACT,QAAO,OAAO;IAC5B;IAPA,YAAYU,KAAY,EAAEL,SAAsB,CAAE;QAFlDL,0BAAAA,IAAAA,EAAAA,QAAAA;;mBAAAA,KAAAA;;QACAC,0BAAAA,IAAAA,EAAAA,YAAAA;;mBAAAA,KAAAA;;uCAEOD,QAASU;uCACTT,YAAaI;IACpB;AAKF"}