@midscene/web 0.16.3 → 0.16.4

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -258,7 +258,7 @@ function sleep(ms) {
258
258
  var ChromeExtensionProxyPage = class {
259
259
  constructor(forceSameTabNavigation) {
260
260
  this.pageType = "chrome-extension-proxy";
261
- this.version = "0.16.3";
261
+ this.version = "0.16.4";
262
262
  this.activeTabId = null;
263
263
  this.tabIdOfDebuggerAttached = null;
264
264
  this.attachingDebugger = null;
@@ -704,7 +704,7 @@ var BridgeClient = class {
704
704
  this.socket = ClientIO(this.endpoint, {
705
705
  reconnection: false,
706
706
  query: {
707
- version: "0.16.3"
707
+ version: "0.16.4"
708
708
  }
709
709
  });
710
710
  const timeout = setTimeout(() => {
@@ -845,7 +845,7 @@ var ExtensionBridgePageBrowserSide = class extends ChromeExtensionProxyPage {
845
845
  );
846
846
  await this.bridgeClient.connect();
847
847
  this.onLogMessage(
848
- `Bridge connected, cli-side version v${this.bridgeClient.serverVersion}, browser-side version v${"0.16.3"}`,
848
+ `Bridge connected, cli-side version v${this.bridgeClient.serverVersion}, browser-side version v${"0.16.4"}`,
849
849
  "log"
850
850
  );
851
851
  }
@@ -1990,6 +1990,7 @@ var BridgeErrorCodeNoClientConnected = "no-client-connected";
1990
1990
 
1991
1991
  // src/bridge-mode/io-server.ts
1992
1992
  import { logMsg as logMsg2 } from "@midscene/shared/utils";
1993
+ import killPort from "kill-port";
1993
1994
  import { Server } from "socket.io";
1994
1995
  var BridgeServer = class {
1995
1996
  constructor(port, onConnect, onDisconnect) {
@@ -2009,7 +2010,11 @@ var BridgeServer = class {
2009
2010
  return `Connection lost, reason: ${this.connectionLostReason}`;
2010
2011
  };
2011
2012
  }
2012
- async listen(timeout = 3e4) {
2013
+ async listen(opts = {}) {
2014
+ const { timeout = 3e4, forceCloseServer = false } = opts;
2015
+ if (forceCloseServer) {
2016
+ await this.killPort();
2017
+ }
2013
2018
  return new Promise((resolve2, reject) => {
2014
2019
  if (this.listeningTimerFlag) {
2015
2020
  return reject(new Error("already listening"));
@@ -2054,7 +2059,7 @@ var BridgeServer = class {
2054
2059
  this.socket = socket;
2055
2060
  const clientVersion = socket.handshake.query.version;
2056
2061
  logMsg2(
2057
- `Bridge connected, cli-side version v${"0.16.3"}, browser-side version v${clientVersion}`
2062
+ `Bridge connected, cli-side version v${"0.16.4"}, browser-side version v${clientVersion}`
2058
2063
  );
2059
2064
  socket.on("bridge-call-response" /* CallResponse */, (params) => {
2060
2065
  const id = params.id;
@@ -2085,7 +2090,7 @@ var BridgeServer = class {
2085
2090
  setTimeout(() => {
2086
2091
  this.onConnect?.();
2087
2092
  const payload = {
2088
- version: "0.16.3"
2093
+ version: "0.16.4"
2089
2094
  };
2090
2095
  socket.emit("bridge-connected" /* Connected */, payload);
2091
2096
  Promise.resolve().then(() => {
@@ -2102,8 +2107,19 @@ var BridgeServer = class {
2102
2107
  reject(e);
2103
2108
  }
2104
2109
  });
2110
+ this.io.on("close", () => {
2111
+ this.close();
2112
+ });
2105
2113
  });
2106
2114
  }
2115
+ async killPort() {
2116
+ if (!this.listeningTimerFlag) {
2117
+ try {
2118
+ await killPort(this.port, "tcp");
2119
+ } catch (e) {
2120
+ }
2121
+ }
2122
+ }
2107
2123
  async triggerCallResponseCallback(id, error, response) {
2108
2124
  const call = this.calls[id];
2109
2125
  if (!call) {
@@ -2173,9 +2189,12 @@ var BridgeServer = class {
2173
2189
 
2174
2190
  // src/bridge-mode/agent-cli-side.ts
2175
2191
  var sleep2 = (ms) => new Promise((resolve2) => setTimeout(resolve2, ms));
2176
- var getBridgePageInCliSide = (timeout) => {
2192
+ var getBridgePageInCliSide = (forceCloseServer, timeout) => {
2177
2193
  const server = new BridgeServer(DefaultBridgeServerPort);
2178
- server.listen(timeout);
2194
+ server.listen({
2195
+ timeout,
2196
+ forceCloseServer
2197
+ });
2179
2198
  const bridgeCaller = (method) => {
2180
2199
  return async (...args) => {
2181
2200
  const response = await server.call(method, args);
@@ -2238,7 +2257,10 @@ var getBridgePageInCliSide = (timeout) => {
2238
2257
  };
2239
2258
  var AgentOverChromeBridge = class extends PageAgent {
2240
2259
  constructor(opts) {
2241
- const page = getBridgePageInCliSide(opts?.serverListeningTimeout);
2260
+ const page = getBridgePageInCliSide(
2261
+ opts?.forceCloseServer,
2262
+ opts?.serverListeningTimeout
2263
+ );
2242
2264
  super(
2243
2265
  page,
2244
2266
  Object.assign(opts || {}, {