@godscene/web 1.7.11
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +7 -0
- package/bin/midscene-playground +3 -0
- package/bin/midscene-web +2 -0
- package/dist/es/bin.mjs +14 -0
- package/dist/es/bridge-mode/agent-cli-side.mjs +135 -0
- package/dist/es/bridge-mode/browser.mjs +2 -0
- package/dist/es/bridge-mode/common.mjs +41 -0
- package/dist/es/bridge-mode/index.mjs +4 -0
- package/dist/es/bridge-mode/io-client.mjs +99 -0
- package/dist/es/bridge-mode/io-server.mjs +218 -0
- package/dist/es/bridge-mode/page-browser-side.mjs +119 -0
- package/dist/es/cdp-proxy-constants.mjs +7 -0
- package/dist/es/cdp-proxy-manager.mjs +217 -0
- package/dist/es/cdp-proxy.mjs +151 -0
- package/dist/es/cdp-target-store.mjs +26 -0
- package/dist/es/chrome-extension/agent.mjs +8 -0
- package/dist/es/chrome-extension/cdpInput.mjs +172 -0
- package/dist/es/chrome-extension/cdpInput.mjs.LICENSE.txt +5 -0
- package/dist/es/chrome-extension/dynamic-scripts.mjs +36 -0
- package/dist/es/chrome-extension/index.mjs +5 -0
- package/dist/es/chrome-extension/page.mjs +733 -0
- package/dist/es/cli-options.mjs +97 -0
- package/dist/es/cli.mjs +26 -0
- package/dist/es/common/cache-helper.mjs +26 -0
- package/dist/es/common/viewport.mjs +36 -0
- package/dist/es/index.mjs +8 -0
- package/dist/es/mcp-server.mjs +33 -0
- package/dist/es/mcp-tools-cdp.mjs +164 -0
- package/dist/es/mcp-tools-puppeteer.mjs +246 -0
- package/dist/es/mcp-tools.mjs +81 -0
- package/dist/es/platform.mjs +37 -0
- package/dist/es/playwright/ai-fixture.mjs +364 -0
- package/dist/es/playwright/index.mjs +36 -0
- package/dist/es/playwright/page.mjs +42 -0
- package/dist/es/playwright/reporter/index.mjs +178 -0
- package/dist/es/puppeteer/agent-launcher.mjs +172 -0
- package/dist/es/puppeteer/base-page.mjs +830 -0
- package/dist/es/puppeteer/index.mjs +35 -0
- package/dist/es/puppeteer/page.mjs +7 -0
- package/dist/es/static/index.mjs +3 -0
- package/dist/es/static/static-agent.mjs +10 -0
- package/dist/es/static/static-page.mjs +123 -0
- package/dist/es/utils.mjs +6 -0
- package/dist/es/web-element.mjs +57 -0
- package/dist/es/web-page.mjs +272 -0
- package/dist/lib/bin.js +20 -0
- package/dist/lib/bridge-mode/agent-cli-side.js +172 -0
- package/dist/lib/bridge-mode/browser.js +36 -0
- package/dist/lib/bridge-mode/common.js +105 -0
- package/dist/lib/bridge-mode/index.js +44 -0
- package/dist/lib/bridge-mode/io-client.js +133 -0
- package/dist/lib/bridge-mode/io-server.js +255 -0
- package/dist/lib/bridge-mode/page-browser-side.js +163 -0
- package/dist/lib/cdp-proxy-constants.js +50 -0
- package/dist/lib/cdp-proxy-manager.js +273 -0
- package/dist/lib/cdp-proxy.js +179 -0
- package/dist/lib/cdp-target-store.js +66 -0
- package/dist/lib/chrome-extension/agent.js +42 -0
- package/dist/lib/chrome-extension/cdpInput.js +206 -0
- package/dist/lib/chrome-extension/cdpInput.js.LICENSE.txt +5 -0
- package/dist/lib/chrome-extension/dynamic-scripts.js +86 -0
- package/dist/lib/chrome-extension/index.js +58 -0
- package/dist/lib/chrome-extension/page.js +767 -0
- package/dist/lib/cli-options.js +131 -0
- package/dist/lib/cli.js +54 -0
- package/dist/lib/common/cache-helper.js +66 -0
- package/dist/lib/common/viewport.js +88 -0
- package/dist/lib/index.js +66 -0
- package/dist/lib/mcp-server.js +73 -0
- package/dist/lib/mcp-tools-cdp.js +208 -0
- package/dist/lib/mcp-tools-puppeteer.js +296 -0
- package/dist/lib/mcp-tools.js +115 -0
- package/dist/lib/platform.js +71 -0
- package/dist/lib/playwright/ai-fixture.js +401 -0
- package/dist/lib/playwright/index.js +89 -0
- package/dist/lib/playwright/page.js +76 -0
- package/dist/lib/playwright/reporter/index.js +212 -0
- package/dist/lib/puppeteer/agent-launcher.js +240 -0
- package/dist/lib/puppeteer/base-page.js +876 -0
- package/dist/lib/puppeteer/index.js +85 -0
- package/dist/lib/puppeteer/page.js +41 -0
- package/dist/lib/static/index.js +50 -0
- package/dist/lib/static/static-agent.js +44 -0
- package/dist/lib/static/static-page.js +157 -0
- package/dist/lib/utils.js +38 -0
- package/dist/lib/web-element.js +94 -0
- package/dist/lib/web-page.js +322 -0
- package/dist/types/bin.d.ts +1 -0
- package/dist/types/bridge-mode/agent-cli-side.d.ts +49 -0
- package/dist/types/bridge-mode/browser.d.ts +2 -0
- package/dist/types/bridge-mode/common.d.ts +74 -0
- package/dist/types/bridge-mode/index.d.ts +4 -0
- package/dist/types/bridge-mode/io-client.d.ts +10 -0
- package/dist/types/bridge-mode/io-server.d.ts +27 -0
- package/dist/types/bridge-mode/page-browser-side.d.ts +21 -0
- package/dist/types/cdp-proxy-constants.d.ts +4 -0
- package/dist/types/cdp-proxy-manager.d.ts +53 -0
- package/dist/types/cdp-proxy.d.ts +37 -0
- package/dist/types/cdp-target-store.d.ts +26 -0
- package/dist/types/chrome-extension/agent.d.ts +4 -0
- package/dist/types/chrome-extension/cdpInput.d.ts +52 -0
- package/dist/types/chrome-extension/dynamic-scripts.d.ts +3 -0
- package/dist/types/chrome-extension/index.d.ts +5 -0
- package/dist/types/chrome-extension/page.d.ts +120 -0
- package/dist/types/cli-options.d.ts +8 -0
- package/dist/types/cli.d.ts +1 -0
- package/dist/types/common/cache-helper.d.ts +20 -0
- package/dist/types/common/viewport.d.ts +17 -0
- package/dist/types/index.d.ts +9 -0
- package/dist/types/mcp-server.d.ts +26 -0
- package/dist/types/mcp-tools-cdp.d.ts +23 -0
- package/dist/types/mcp-tools-puppeteer.d.ts +23 -0
- package/dist/types/mcp-tools.d.ts +14 -0
- package/dist/types/platform.d.ts +10 -0
- package/dist/types/playwright/ai-fixture.d.ts +133 -0
- package/dist/types/playwright/index.d.ts +13 -0
- package/dist/types/playwright/page.d.ts +11 -0
- package/dist/types/playwright/reporter/index.d.ts +28 -0
- package/dist/types/puppeteer/agent-launcher.d.ts +59 -0
- package/dist/types/puppeteer/base-page.d.ts +123 -0
- package/dist/types/puppeteer/index.d.ts +11 -0
- package/dist/types/puppeteer/page.d.ts +6 -0
- package/dist/types/static/index.d.ts +2 -0
- package/dist/types/static/static-agent.d.ts +5 -0
- package/dist/types/static/static-page.d.ts +46 -0
- package/dist/types/utils.d.ts +6 -0
- package/dist/types/web-element.d.ts +48 -0
- package/dist/types/web-page.d.ts +69 -0
- package/package.json +173 -0
|
@@ -0,0 +1,172 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
var __webpack_require__ = {};
|
|
3
|
+
(()=>{
|
|
4
|
+
__webpack_require__.d = (exports1, definition)=>{
|
|
5
|
+
for(var key in definition)if (__webpack_require__.o(definition, key) && !__webpack_require__.o(exports1, key)) Object.defineProperty(exports1, key, {
|
|
6
|
+
enumerable: true,
|
|
7
|
+
get: definition[key]
|
|
8
|
+
});
|
|
9
|
+
};
|
|
10
|
+
})();
|
|
11
|
+
(()=>{
|
|
12
|
+
__webpack_require__.o = (obj, prop)=>Object.prototype.hasOwnProperty.call(obj, prop);
|
|
13
|
+
})();
|
|
14
|
+
(()=>{
|
|
15
|
+
__webpack_require__.r = (exports1)=>{
|
|
16
|
+
if ("u" > typeof Symbol && Symbol.toStringTag) Object.defineProperty(exports1, Symbol.toStringTag, {
|
|
17
|
+
value: 'Module'
|
|
18
|
+
});
|
|
19
|
+
Object.defineProperty(exports1, '__esModule', {
|
|
20
|
+
value: true
|
|
21
|
+
});
|
|
22
|
+
};
|
|
23
|
+
})();
|
|
24
|
+
var __webpack_exports__ = {};
|
|
25
|
+
__webpack_require__.r(__webpack_exports__);
|
|
26
|
+
__webpack_require__.d(__webpack_exports__, {
|
|
27
|
+
AgentOverChromeBridge: ()=>AgentOverChromeBridge,
|
|
28
|
+
getBridgePageInCliSide: ()=>getBridgePageInCliSide
|
|
29
|
+
});
|
|
30
|
+
const agent_namespaceObject = require("@godscene/core/agent");
|
|
31
|
+
const utils_namespaceObject = require("@godscene/shared/utils");
|
|
32
|
+
const external_web_page_js_namespaceObject = require("../web-page.js");
|
|
33
|
+
const external_common_js_namespaceObject = require("./common.js");
|
|
34
|
+
const external_io_server_js_namespaceObject = require("./io-server.js");
|
|
35
|
+
function _define_property(obj, key, value) {
|
|
36
|
+
if (key in obj) Object.defineProperty(obj, key, {
|
|
37
|
+
value: value,
|
|
38
|
+
enumerable: true,
|
|
39
|
+
configurable: true,
|
|
40
|
+
writable: true
|
|
41
|
+
});
|
|
42
|
+
else obj[key] = value;
|
|
43
|
+
return obj;
|
|
44
|
+
}
|
|
45
|
+
const sleep = (ms)=>new Promise((resolve)=>setTimeout(resolve, ms));
|
|
46
|
+
const getBridgePageInCliSide = (options)=>{
|
|
47
|
+
const host = options?.host || external_common_js_namespaceObject.DefaultBridgeServerHost;
|
|
48
|
+
const port = options?.port || external_common_js_namespaceObject.DefaultBridgeServerPort;
|
|
49
|
+
const server = new external_io_server_js_namespaceObject.BridgeServer(host, port, void 0, void 0, options?.closeConflictServer);
|
|
50
|
+
server.listen({
|
|
51
|
+
timeout: options?.timeout
|
|
52
|
+
});
|
|
53
|
+
const bridgeCaller = (method, timeout)=>async (...args)=>{
|
|
54
|
+
const response = await server.call(method, args, timeout);
|
|
55
|
+
return response;
|
|
56
|
+
};
|
|
57
|
+
const page = {
|
|
58
|
+
showStatusMessage: async (message)=>{
|
|
59
|
+
await server.call(external_common_js_namespaceObject.BridgeEvent.UpdateAgentStatus, [
|
|
60
|
+
message
|
|
61
|
+
]);
|
|
62
|
+
}
|
|
63
|
+
};
|
|
64
|
+
const proxyPage = new Proxy(page, {
|
|
65
|
+
get (target, prop, receiver) {
|
|
66
|
+
(0, utils_namespaceObject.assert)('string' == typeof prop, 'prop must be a string');
|
|
67
|
+
if ('toJSON' === prop) return ()=>({
|
|
68
|
+
interfaceType: external_common_js_namespaceObject.BridgePageType
|
|
69
|
+
});
|
|
70
|
+
if ('interfaceType' === prop) return external_common_js_namespaceObject.BridgePageType;
|
|
71
|
+
if ('actionSpace' === prop) return ()=>(0, external_web_page_js_namespaceObject.commonWebActionsForWebPage)(proxyPage);
|
|
72
|
+
if (Object.keys(page).includes(prop)) return page[prop];
|
|
73
|
+
if ('mouse' === prop) {
|
|
74
|
+
const mouse = {
|
|
75
|
+
click: bridgeCaller(external_common_js_namespaceObject.MouseEvent.Click),
|
|
76
|
+
wheel: bridgeCaller(external_common_js_namespaceObject.MouseEvent.Wheel),
|
|
77
|
+
move: bridgeCaller(external_common_js_namespaceObject.MouseEvent.Move),
|
|
78
|
+
drag: bridgeCaller(external_common_js_namespaceObject.MouseEvent.Drag)
|
|
79
|
+
};
|
|
80
|
+
return mouse;
|
|
81
|
+
}
|
|
82
|
+
if ('keyboard' === prop) {
|
|
83
|
+
const keyboard = {
|
|
84
|
+
type: bridgeCaller(external_common_js_namespaceObject.KeyboardEvent.Type),
|
|
85
|
+
press: bridgeCaller(external_common_js_namespaceObject.KeyboardEvent.Press)
|
|
86
|
+
};
|
|
87
|
+
return keyboard;
|
|
88
|
+
}
|
|
89
|
+
if ('destroy' === prop) return async (...args)=>{
|
|
90
|
+
try {
|
|
91
|
+
const caller = bridgeCaller('destroy');
|
|
92
|
+
await caller(...args);
|
|
93
|
+
} catch (e) {}
|
|
94
|
+
return server.close();
|
|
95
|
+
};
|
|
96
|
+
if ('connectNewTabWithUrl' === prop) return async (url, options)=>{
|
|
97
|
+
const timeout = options?.timeout;
|
|
98
|
+
const caller = bridgeCaller(prop, timeout);
|
|
99
|
+
return await caller(url, options);
|
|
100
|
+
};
|
|
101
|
+
if ('connectCurrentTab' === prop) return async (options)=>{
|
|
102
|
+
const timeout = options?.timeout;
|
|
103
|
+
const caller = bridgeCaller(prop, timeout);
|
|
104
|
+
return await caller(options);
|
|
105
|
+
};
|
|
106
|
+
return bridgeCaller(prop);
|
|
107
|
+
}
|
|
108
|
+
});
|
|
109
|
+
return proxyPage;
|
|
110
|
+
};
|
|
111
|
+
class AgentOverChromeBridge extends agent_namespaceObject.Agent {
|
|
112
|
+
async setDestroyOptionsAfterConnect() {
|
|
113
|
+
if (this.destroyAfterDisconnectFlag) this.page.setDestroyOptions({
|
|
114
|
+
closeTab: true
|
|
115
|
+
});
|
|
116
|
+
}
|
|
117
|
+
async connectNewTabWithUrl(url, options) {
|
|
118
|
+
await this.page.connectNewTabWithUrl(url, options);
|
|
119
|
+
await sleep(500);
|
|
120
|
+
await this.setDestroyOptionsAfterConnect();
|
|
121
|
+
}
|
|
122
|
+
async getBrowserTabList() {
|
|
123
|
+
return await this.page.getBrowserTabList();
|
|
124
|
+
}
|
|
125
|
+
async setActiveTabId(tabId) {
|
|
126
|
+
return await this.page.setActiveTabId(Number.parseInt(tabId));
|
|
127
|
+
}
|
|
128
|
+
async connectCurrentTab(options) {
|
|
129
|
+
await this.page.connectCurrentTab(options);
|
|
130
|
+
await sleep(500);
|
|
131
|
+
await this.setDestroyOptionsAfterConnect();
|
|
132
|
+
}
|
|
133
|
+
async aiAct(prompt, options) {
|
|
134
|
+
if (options) console.warn('the `options` parameter of aiAct is not supported in cli side');
|
|
135
|
+
return await super.aiAct(prompt);
|
|
136
|
+
}
|
|
137
|
+
async destroy(closeNewTabsAfterDisconnect) {
|
|
138
|
+
if ('boolean' == typeof closeNewTabsAfterDisconnect) await this.page.setDestroyOptions({
|
|
139
|
+
closeTab: closeNewTabsAfterDisconnect
|
|
140
|
+
});
|
|
141
|
+
await super.destroy();
|
|
142
|
+
}
|
|
143
|
+
constructor(opts){
|
|
144
|
+
const host = (0, external_common_js_namespaceObject.getBridgeServerHost)({
|
|
145
|
+
host: opts?.host,
|
|
146
|
+
allowRemoteAccess: opts?.allowRemoteAccess
|
|
147
|
+
});
|
|
148
|
+
const page = getBridgePageInCliSide({
|
|
149
|
+
host,
|
|
150
|
+
port: opts?.port,
|
|
151
|
+
timeout: opts?.serverListeningTimeout,
|
|
152
|
+
closeConflictServer: opts?.closeConflictServer
|
|
153
|
+
});
|
|
154
|
+
const originalOnTaskStartTip = opts?.onTaskStartTip;
|
|
155
|
+
super(page, Object.assign(opts || {}, {
|
|
156
|
+
onTaskStartTip: (tip)=>{
|
|
157
|
+
this.page.showStatusMessage(tip);
|
|
158
|
+
if (originalOnTaskStartTip) originalOnTaskStartTip?.call(this, tip);
|
|
159
|
+
}
|
|
160
|
+
})), _define_property(this, "destroyAfterDisconnectFlag", void 0);
|
|
161
|
+
this.destroyAfterDisconnectFlag = opts?.closeNewTabsAfterDisconnect;
|
|
162
|
+
}
|
|
163
|
+
}
|
|
164
|
+
exports.AgentOverChromeBridge = __webpack_exports__.AgentOverChromeBridge;
|
|
165
|
+
exports.getBridgePageInCliSide = __webpack_exports__.getBridgePageInCliSide;
|
|
166
|
+
for(var __rspack_i in __webpack_exports__)if (-1 === [
|
|
167
|
+
"AgentOverChromeBridge",
|
|
168
|
+
"getBridgePageInCliSide"
|
|
169
|
+
].indexOf(__rspack_i)) exports[__rspack_i] = __webpack_exports__[__rspack_i];
|
|
170
|
+
Object.defineProperty(exports, '__esModule', {
|
|
171
|
+
value: true
|
|
172
|
+
});
|
|
@@ -0,0 +1,36 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
var __webpack_require__ = {};
|
|
3
|
+
(()=>{
|
|
4
|
+
__webpack_require__.d = (exports1, definition)=>{
|
|
5
|
+
for(var key in definition)if (__webpack_require__.o(definition, key) && !__webpack_require__.o(exports1, key)) Object.defineProperty(exports1, key, {
|
|
6
|
+
enumerable: true,
|
|
7
|
+
get: definition[key]
|
|
8
|
+
});
|
|
9
|
+
};
|
|
10
|
+
})();
|
|
11
|
+
(()=>{
|
|
12
|
+
__webpack_require__.o = (obj, prop)=>Object.prototype.hasOwnProperty.call(obj, prop);
|
|
13
|
+
})();
|
|
14
|
+
(()=>{
|
|
15
|
+
__webpack_require__.r = (exports1)=>{
|
|
16
|
+
if ("u" > typeof Symbol && Symbol.toStringTag) Object.defineProperty(exports1, Symbol.toStringTag, {
|
|
17
|
+
value: 'Module'
|
|
18
|
+
});
|
|
19
|
+
Object.defineProperty(exports1, '__esModule', {
|
|
20
|
+
value: true
|
|
21
|
+
});
|
|
22
|
+
};
|
|
23
|
+
})();
|
|
24
|
+
var __webpack_exports__ = {};
|
|
25
|
+
__webpack_require__.r(__webpack_exports__);
|
|
26
|
+
__webpack_require__.d(__webpack_exports__, {
|
|
27
|
+
ExtensionBridgePageBrowserSide: ()=>external_page_browser_side_js_namespaceObject.ExtensionBridgePageBrowserSide
|
|
28
|
+
});
|
|
29
|
+
const external_page_browser_side_js_namespaceObject = require("./page-browser-side.js");
|
|
30
|
+
exports.ExtensionBridgePageBrowserSide = __webpack_exports__.ExtensionBridgePageBrowserSide;
|
|
31
|
+
for(var __rspack_i in __webpack_exports__)if (-1 === [
|
|
32
|
+
"ExtensionBridgePageBrowserSide"
|
|
33
|
+
].indexOf(__rspack_i)) exports[__rspack_i] = __webpack_exports__[__rspack_i];
|
|
34
|
+
Object.defineProperty(exports, '__esModule', {
|
|
35
|
+
value: true
|
|
36
|
+
});
|
|
@@ -0,0 +1,105 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
var __webpack_require__ = {};
|
|
3
|
+
(()=>{
|
|
4
|
+
__webpack_require__.d = (exports1, definition)=>{
|
|
5
|
+
for(var key in definition)if (__webpack_require__.o(definition, key) && !__webpack_require__.o(exports1, key)) Object.defineProperty(exports1, key, {
|
|
6
|
+
enumerable: true,
|
|
7
|
+
get: definition[key]
|
|
8
|
+
});
|
|
9
|
+
};
|
|
10
|
+
})();
|
|
11
|
+
(()=>{
|
|
12
|
+
__webpack_require__.o = (obj, prop)=>Object.prototype.hasOwnProperty.call(obj, prop);
|
|
13
|
+
})();
|
|
14
|
+
(()=>{
|
|
15
|
+
__webpack_require__.r = (exports1)=>{
|
|
16
|
+
if ("u" > typeof Symbol && Symbol.toStringTag) Object.defineProperty(exports1, Symbol.toStringTag, {
|
|
17
|
+
value: 'Module'
|
|
18
|
+
});
|
|
19
|
+
Object.defineProperty(exports1, '__esModule', {
|
|
20
|
+
value: true
|
|
21
|
+
});
|
|
22
|
+
};
|
|
23
|
+
})();
|
|
24
|
+
var __webpack_exports__ = {};
|
|
25
|
+
__webpack_require__.r(__webpack_exports__);
|
|
26
|
+
__webpack_require__.d(__webpack_exports__, {
|
|
27
|
+
BridgeCallTimeout: ()=>BridgeCallTimeout,
|
|
28
|
+
BridgeErrorCodeNoClientConnected: ()=>BridgeErrorCodeNoClientConnected,
|
|
29
|
+
BridgeEvent: ()=>BridgeEvent,
|
|
30
|
+
BridgePageType: ()=>BridgePageType,
|
|
31
|
+
BridgeSignalKill: ()=>BridgeSignalKill,
|
|
32
|
+
DefaultBridgeServerHost: ()=>DefaultBridgeServerHost,
|
|
33
|
+
DefaultBridgeServerPort: ()=>DefaultBridgeServerPort,
|
|
34
|
+
DefaultLocalEndpoint: ()=>DefaultLocalEndpoint,
|
|
35
|
+
KeyboardEvent: ()=>KeyboardEvent,
|
|
36
|
+
MouseEvent: ()=>MouseEvent,
|
|
37
|
+
getBridgeServerHost: ()=>getBridgeServerHost
|
|
38
|
+
});
|
|
39
|
+
const DefaultBridgeServerHost = '127.0.0.1';
|
|
40
|
+
const DefaultBridgeServerPort = 3766;
|
|
41
|
+
const DefaultLocalEndpoint = `http://${DefaultBridgeServerHost}:${DefaultBridgeServerPort}`;
|
|
42
|
+
const BridgeCallTimeout = 30000;
|
|
43
|
+
function getBridgeServerHost(options) {
|
|
44
|
+
if (options?.host) return options.host;
|
|
45
|
+
if (options?.allowRemoteAccess) return '0.0.0.0';
|
|
46
|
+
return DefaultBridgeServerHost;
|
|
47
|
+
}
|
|
48
|
+
var BridgeEvent = /*#__PURE__*/ function(BridgeEvent) {
|
|
49
|
+
BridgeEvent["Call"] = "bridge-call";
|
|
50
|
+
BridgeEvent["CallResponse"] = "bridge-call-response";
|
|
51
|
+
BridgeEvent["UpdateAgentStatus"] = "bridge-update-agent-status";
|
|
52
|
+
BridgeEvent["Message"] = "bridge-message";
|
|
53
|
+
BridgeEvent["Connected"] = "bridge-connected";
|
|
54
|
+
BridgeEvent["Refused"] = "bridge-refused";
|
|
55
|
+
BridgeEvent["ConnectNewTabWithUrl"] = "connectNewTabWithUrl";
|
|
56
|
+
BridgeEvent["ConnectCurrentTab"] = "connectCurrentTab";
|
|
57
|
+
BridgeEvent["GetBrowserTabList"] = "getBrowserTabList";
|
|
58
|
+
BridgeEvent["SetDestroyOptions"] = "setDestroyOptions";
|
|
59
|
+
BridgeEvent["SetActiveTabId"] = "setActiveTabId";
|
|
60
|
+
return BridgeEvent;
|
|
61
|
+
}({});
|
|
62
|
+
const BridgeSignalKill = 'MIDSCENE_BRIDGE_SIGNAL_KILL';
|
|
63
|
+
var MouseEvent = /*#__PURE__*/ function(MouseEvent) {
|
|
64
|
+
MouseEvent["PREFIX"] = "mouse.";
|
|
65
|
+
MouseEvent["Click"] = "mouse.click";
|
|
66
|
+
MouseEvent["Wheel"] = "mouse.wheel";
|
|
67
|
+
MouseEvent["Move"] = "mouse.move";
|
|
68
|
+
MouseEvent["Drag"] = "mouse.drag";
|
|
69
|
+
return MouseEvent;
|
|
70
|
+
}({});
|
|
71
|
+
var KeyboardEvent = /*#__PURE__*/ function(KeyboardEvent) {
|
|
72
|
+
KeyboardEvent["PREFIX"] = "keyboard.";
|
|
73
|
+
KeyboardEvent["Type"] = "keyboard.type";
|
|
74
|
+
KeyboardEvent["Press"] = "keyboard.press";
|
|
75
|
+
return KeyboardEvent;
|
|
76
|
+
}({});
|
|
77
|
+
const BridgePageType = 'page-over-chrome-extension-bridge';
|
|
78
|
+
const BridgeErrorCodeNoClientConnected = 'no-client-connected';
|
|
79
|
+
exports.BridgeCallTimeout = __webpack_exports__.BridgeCallTimeout;
|
|
80
|
+
exports.BridgeErrorCodeNoClientConnected = __webpack_exports__.BridgeErrorCodeNoClientConnected;
|
|
81
|
+
exports.BridgeEvent = __webpack_exports__.BridgeEvent;
|
|
82
|
+
exports.BridgePageType = __webpack_exports__.BridgePageType;
|
|
83
|
+
exports.BridgeSignalKill = __webpack_exports__.BridgeSignalKill;
|
|
84
|
+
exports.DefaultBridgeServerHost = __webpack_exports__.DefaultBridgeServerHost;
|
|
85
|
+
exports.DefaultBridgeServerPort = __webpack_exports__.DefaultBridgeServerPort;
|
|
86
|
+
exports.DefaultLocalEndpoint = __webpack_exports__.DefaultLocalEndpoint;
|
|
87
|
+
exports.KeyboardEvent = __webpack_exports__.KeyboardEvent;
|
|
88
|
+
exports.MouseEvent = __webpack_exports__.MouseEvent;
|
|
89
|
+
exports.getBridgeServerHost = __webpack_exports__.getBridgeServerHost;
|
|
90
|
+
for(var __rspack_i in __webpack_exports__)if (-1 === [
|
|
91
|
+
"BridgeCallTimeout",
|
|
92
|
+
"BridgeErrorCodeNoClientConnected",
|
|
93
|
+
"BridgeEvent",
|
|
94
|
+
"BridgePageType",
|
|
95
|
+
"BridgeSignalKill",
|
|
96
|
+
"DefaultBridgeServerHost",
|
|
97
|
+
"DefaultBridgeServerPort",
|
|
98
|
+
"DefaultLocalEndpoint",
|
|
99
|
+
"KeyboardEvent",
|
|
100
|
+
"MouseEvent",
|
|
101
|
+
"getBridgeServerHost"
|
|
102
|
+
].indexOf(__rspack_i)) exports[__rspack_i] = __webpack_exports__[__rspack_i];
|
|
103
|
+
Object.defineProperty(exports, '__esModule', {
|
|
104
|
+
value: true
|
|
105
|
+
});
|
|
@@ -0,0 +1,44 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
var __webpack_require__ = {};
|
|
3
|
+
(()=>{
|
|
4
|
+
__webpack_require__.d = (exports1, definition)=>{
|
|
5
|
+
for(var key in definition)if (__webpack_require__.o(definition, key) && !__webpack_require__.o(exports1, key)) Object.defineProperty(exports1, key, {
|
|
6
|
+
enumerable: true,
|
|
7
|
+
get: definition[key]
|
|
8
|
+
});
|
|
9
|
+
};
|
|
10
|
+
})();
|
|
11
|
+
(()=>{
|
|
12
|
+
__webpack_require__.o = (obj, prop)=>Object.prototype.hasOwnProperty.call(obj, prop);
|
|
13
|
+
})();
|
|
14
|
+
(()=>{
|
|
15
|
+
__webpack_require__.r = (exports1)=>{
|
|
16
|
+
if ("u" > typeof Symbol && Symbol.toStringTag) Object.defineProperty(exports1, Symbol.toStringTag, {
|
|
17
|
+
value: 'Module'
|
|
18
|
+
});
|
|
19
|
+
Object.defineProperty(exports1, '__esModule', {
|
|
20
|
+
value: true
|
|
21
|
+
});
|
|
22
|
+
};
|
|
23
|
+
})();
|
|
24
|
+
var __webpack_exports__ = {};
|
|
25
|
+
__webpack_require__.r(__webpack_exports__);
|
|
26
|
+
__webpack_require__.d(__webpack_exports__, {
|
|
27
|
+
overrideAIConfig: ()=>env_namespaceObject.overrideAIConfig,
|
|
28
|
+
AgentOverChromeBridge: ()=>external_agent_cli_side_js_namespaceObject.AgentOverChromeBridge,
|
|
29
|
+
killRunningServer: ()=>external_io_server_js_namespaceObject.killRunningServer
|
|
30
|
+
});
|
|
31
|
+
const external_agent_cli_side_js_namespaceObject = require("./agent-cli-side.js");
|
|
32
|
+
const env_namespaceObject = require("@godscene/shared/env");
|
|
33
|
+
const external_io_server_js_namespaceObject = require("./io-server.js");
|
|
34
|
+
exports.AgentOverChromeBridge = __webpack_exports__.AgentOverChromeBridge;
|
|
35
|
+
exports.killRunningServer = __webpack_exports__.killRunningServer;
|
|
36
|
+
exports.overrideAIConfig = __webpack_exports__.overrideAIConfig;
|
|
37
|
+
for(var __rspack_i in __webpack_exports__)if (-1 === [
|
|
38
|
+
"AgentOverChromeBridge",
|
|
39
|
+
"killRunningServer",
|
|
40
|
+
"overrideAIConfig"
|
|
41
|
+
].indexOf(__rspack_i)) exports[__rspack_i] = __webpack_exports__[__rspack_i];
|
|
42
|
+
Object.defineProperty(exports, '__esModule', {
|
|
43
|
+
value: true
|
|
44
|
+
});
|
|
@@ -0,0 +1,133 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
var __webpack_require__ = {};
|
|
3
|
+
(()=>{
|
|
4
|
+
__webpack_require__.d = (exports1, definition)=>{
|
|
5
|
+
for(var key in definition)if (__webpack_require__.o(definition, key) && !__webpack_require__.o(exports1, key)) Object.defineProperty(exports1, key, {
|
|
6
|
+
enumerable: true,
|
|
7
|
+
get: definition[key]
|
|
8
|
+
});
|
|
9
|
+
};
|
|
10
|
+
})();
|
|
11
|
+
(()=>{
|
|
12
|
+
__webpack_require__.o = (obj, prop)=>Object.prototype.hasOwnProperty.call(obj, prop);
|
|
13
|
+
})();
|
|
14
|
+
(()=>{
|
|
15
|
+
__webpack_require__.r = (exports1)=>{
|
|
16
|
+
if ("u" > typeof Symbol && Symbol.toStringTag) Object.defineProperty(exports1, Symbol.toStringTag, {
|
|
17
|
+
value: 'Module'
|
|
18
|
+
});
|
|
19
|
+
Object.defineProperty(exports1, '__esModule', {
|
|
20
|
+
value: true
|
|
21
|
+
});
|
|
22
|
+
};
|
|
23
|
+
})();
|
|
24
|
+
var __webpack_exports__ = {};
|
|
25
|
+
__webpack_require__.r(__webpack_exports__);
|
|
26
|
+
__webpack_require__.d(__webpack_exports__, {
|
|
27
|
+
BridgeClient: ()=>BridgeClient
|
|
28
|
+
});
|
|
29
|
+
const utils_namespaceObject = require("@godscene/shared/utils");
|
|
30
|
+
const external_socket_io_client_namespaceObject = require("socket.io-client");
|
|
31
|
+
const external_common_js_namespaceObject = require("./common.js");
|
|
32
|
+
function _define_property(obj, key, value) {
|
|
33
|
+
if (key in obj) Object.defineProperty(obj, key, {
|
|
34
|
+
value: value,
|
|
35
|
+
enumerable: true,
|
|
36
|
+
configurable: true,
|
|
37
|
+
writable: true
|
|
38
|
+
});
|
|
39
|
+
else obj[key] = value;
|
|
40
|
+
return obj;
|
|
41
|
+
}
|
|
42
|
+
class BridgeClient {
|
|
43
|
+
async connect() {
|
|
44
|
+
return new Promise((resolve, reject)=>{
|
|
45
|
+
const forceWebSocket = "u" < typeof XMLHttpRequest;
|
|
46
|
+
this.socket = (0, external_socket_io_client_namespaceObject.io)(this.endpoint, {
|
|
47
|
+
reconnection: false,
|
|
48
|
+
...forceWebSocket ? {
|
|
49
|
+
transports: [
|
|
50
|
+
'websocket'
|
|
51
|
+
]
|
|
52
|
+
} : {},
|
|
53
|
+
query: {
|
|
54
|
+
version: "1.7.10"
|
|
55
|
+
}
|
|
56
|
+
});
|
|
57
|
+
const timeout = setTimeout(()=>{
|
|
58
|
+
try {
|
|
59
|
+
this.socket?.offAny();
|
|
60
|
+
this.socket?.close();
|
|
61
|
+
} catch (e) {
|
|
62
|
+
console.warn('got error when offing socket', e);
|
|
63
|
+
}
|
|
64
|
+
this.socket = null;
|
|
65
|
+
reject(new Error('failed to connect to bridge server after timeout'));
|
|
66
|
+
}, 5000);
|
|
67
|
+
this.socket.on('disconnect', (reason)=>{
|
|
68
|
+
this.socket = null;
|
|
69
|
+
this.onDisconnect?.();
|
|
70
|
+
});
|
|
71
|
+
this.socket.on('connect_error', (e)=>{
|
|
72
|
+
console.error('bridge-connect-error', e);
|
|
73
|
+
reject(new Error(e || 'bridge connect error'));
|
|
74
|
+
});
|
|
75
|
+
this.socket.on(external_common_js_namespaceObject.BridgeEvent.Connected, (payload)=>{
|
|
76
|
+
clearTimeout(timeout);
|
|
77
|
+
this.serverVersion = payload?.version || 'unknown';
|
|
78
|
+
resolve(this.socket);
|
|
79
|
+
});
|
|
80
|
+
this.socket.on(external_common_js_namespaceObject.BridgeEvent.Refused, (e)=>{
|
|
81
|
+
console.error('bridge-refused', e);
|
|
82
|
+
try {
|
|
83
|
+
this.socket?.disconnect();
|
|
84
|
+
} catch (e) {}
|
|
85
|
+
reject(new Error(e || 'bridge refused'));
|
|
86
|
+
});
|
|
87
|
+
this.socket.on(external_common_js_namespaceObject.BridgeEvent.Call, (call)=>{
|
|
88
|
+
const id = call.id;
|
|
89
|
+
(0, utils_namespaceObject.assert)(void 0 !== id, 'call id is required');
|
|
90
|
+
(async ()=>{
|
|
91
|
+
let response;
|
|
92
|
+
try {
|
|
93
|
+
response = await this.onBridgeCall(call.method, call.args);
|
|
94
|
+
} catch (e) {
|
|
95
|
+
const errorContent = `Error from bridge client when calling, method: ${call.method}, args: ${call.args}, error: ${e?.message || e}\n${e?.stack || ''}`;
|
|
96
|
+
console.error(errorContent);
|
|
97
|
+
return this.socket?.emit(external_common_js_namespaceObject.BridgeEvent.CallResponse, {
|
|
98
|
+
id,
|
|
99
|
+
error: errorContent
|
|
100
|
+
});
|
|
101
|
+
}
|
|
102
|
+
this.socket?.emit(external_common_js_namespaceObject.BridgeEvent.CallResponse, {
|
|
103
|
+
id,
|
|
104
|
+
response
|
|
105
|
+
});
|
|
106
|
+
})();
|
|
107
|
+
});
|
|
108
|
+
});
|
|
109
|
+
}
|
|
110
|
+
disconnect() {
|
|
111
|
+
this.socket?.disconnect();
|
|
112
|
+
this.socket = null;
|
|
113
|
+
}
|
|
114
|
+
constructor(endpoint, onBridgeCall, onDisconnect){
|
|
115
|
+
_define_property(this, "endpoint", void 0);
|
|
116
|
+
_define_property(this, "onBridgeCall", void 0);
|
|
117
|
+
_define_property(this, "onDisconnect", void 0);
|
|
118
|
+
_define_property(this, "socket", void 0);
|
|
119
|
+
_define_property(this, "serverVersion", void 0);
|
|
120
|
+
this.endpoint = endpoint;
|
|
121
|
+
this.onBridgeCall = onBridgeCall;
|
|
122
|
+
this.onDisconnect = onDisconnect;
|
|
123
|
+
this.socket = null;
|
|
124
|
+
this.serverVersion = null;
|
|
125
|
+
}
|
|
126
|
+
}
|
|
127
|
+
exports.BridgeClient = __webpack_exports__.BridgeClient;
|
|
128
|
+
for(var __rspack_i in __webpack_exports__)if (-1 === [
|
|
129
|
+
"BridgeClient"
|
|
130
|
+
].indexOf(__rspack_i)) exports[__rspack_i] = __webpack_exports__[__rspack_i];
|
|
131
|
+
Object.defineProperty(exports, '__esModule', {
|
|
132
|
+
value: true
|
|
133
|
+
});
|