jumpy-lion 0.0.32 → 0.0.33

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.
@@ -1 +1 @@
1
- {"version":3,"file":"browser-controller.d.ts","sourceRoot":"","sources":["../src/browser-controller.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,yBAAyB,CAAC;AAEvD,OAAO,EAAE,iBAAiB,EAAc,MAAM,SAAS,CAAC;AAIxD,OAAO,KAAK,EAAE,WAAW,EAAE,YAAY,EAAE,MAAM,oBAAoB,CAAC;AACpE,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,WAAW,CAAC;AACxC,OAAO,OAAO,MAAM,WAAW,CAAC;AAEhC,MAAM,MAAM,aAAa,GAAG,OAAO,CAAC;AAEpC,MAAM,CAAC,OAAO,OAAO,oBAAqB,SAAQ,iBAAiB,CAC/D,WAAW,EAAE,6CAA6C;AAC1D,OAAO,EAAE,gBAAgB;AACzB,YAAY,EAAE,4BAA4B;AAC1C,EAAE,EAAE,0DAA0D;AAC9D,aAAa,CAChB;IACG,OAAO,CAAC,MAAM,CAAC,CAAa;IAC5B,OAAO,CAAC,iBAAiB,CAAK;IAC9B,OAAO,CAAC,qBAAqB,CAAS;IACtC,OAAO,CAAC,SAAS,CAAS;IAEpB,UAAU,IAAI,OAAO,CAAC,IAAI,CAAC;IA4BjC;;;OAGG;IACH,OAAO,CAAC,yBAAyB;IAiBjC;;;OAGG;YACW,iBAAiB;IAuC/B;;;OAGG;cACa,MAAM,IAAI,OAAO,CAAC,IAAI,CAAC;IAsBvC;;;OAGG;cACa,KAAK,IAAI,OAAO,CAAC,IAAI,CAAC;IAatC;;;OAGG;cACa,QAAQ,CAAC,UAAU,SAAI,GAAG,OAAO,CAAC,aAAa,CAAC;YAqDlD,yBAAyB;IAwBvC;;;OAGG;cACa,WAAW,CAAC,IAAI,EAAE,aAAa,EAAE,OAAO,EAAE,MAAM,EAAE,GAAG,OAAO,CAAC,IAAI,CAAC;IAQlF;;;OAGG;cACa,WAAW,CAAC,IAAI,EAAE,aAAa,GAAG,OAAO,CAAC,MAAM,EAAE,CAAC;IAQ1D,qBAAqB,CAAC,SAAS,EAAE,MAAM,GAAG,SAAS,EAAE,YAAY,EAAE,GAAG,GAAG,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC;CAI5G"}
1
+ {"version":3,"file":"browser-controller.d.ts","sourceRoot":"","sources":["../src/browser-controller.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,yBAAyB,CAAC;AAEvD,OAAO,EAAE,iBAAiB,EAAc,MAAM,SAAS,CAAC;AAIxD,OAAO,KAAK,EAAE,WAAW,EAAE,YAAY,EAAE,MAAM,oBAAoB,CAAC;AACpE,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,WAAW,CAAC;AACxC,OAAO,OAAO,MAAM,WAAW,CAAC;AAEhC,MAAM,MAAM,aAAa,GAAG,OAAO,CAAC;AAEpC,MAAM,CAAC,OAAO,OAAO,oBAAqB,SAAQ,iBAAiB,CAC/D,WAAW,EAAE,6CAA6C;AAC1D,OAAO,EAAE,gBAAgB;AACzB,YAAY,EAAE,4BAA4B;AAC1C,EAAE,EAAE,0DAA0D;AAC9D,aAAa,CAChB;IACG,OAAO,CAAC,MAAM,CAAC,CAAa;IAC5B,OAAO,CAAC,iBAAiB,CAAK;IAC9B,OAAO,CAAC,qBAAqB,CAAS;IACtC,OAAO,CAAC,SAAS,CAAS;IAEpB,UAAU,IAAI,OAAO,CAAC,IAAI,CAAC;IA4BjC;;;OAGG;IACH,OAAO,CAAC,yBAAyB;IAiBjC;;;OAGG;YACW,iBAAiB;IAuC/B;;;OAGG;cACa,MAAM,IAAI,OAAO,CAAC,IAAI,CAAC;IAiCvC;;;OAGG;cACa,KAAK,IAAI,OAAO,CAAC,IAAI,CAAC;IAiBtC;;;OAGG;cACa,QAAQ,CAAC,UAAU,SAAI,GAAG,OAAO,CAAC,aAAa,CAAC;YAqDlD,yBAAyB;IAwBvC;;;OAGG;cACa,WAAW,CAAC,IAAI,EAAE,aAAa,EAAE,OAAO,EAAE,MAAM,EAAE,GAAG,OAAO,CAAC,IAAI,CAAC;IAQlF;;;OAGG;cACa,WAAW,CAAC,IAAI,EAAE,aAAa,GAAG,OAAO,CAAC,MAAM,EAAE,CAAC;IAQ1D,qBAAqB,CAAC,SAAS,EAAE,MAAM,GAAG,SAAS,EAAE,YAAY,EAAE,GAAG,GAAG,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC;CAI5G"}
@@ -118,23 +118,30 @@ export default class CDPBrowserController extends BrowserController {
118
118
  try {
119
119
  this.isClosing = true;
120
120
  if (this.client) {
121
- await this.client.close();
121
+ await Promise.race([
122
+ this.client.close(),
123
+ new Promise((_, reject) => setTimeout(() => reject(new Error('CDP client close timeout')), 3000)),
124
+ ]);
122
125
  }
123
- // Gracefully close the browser process
124
- // @ts-expect-error Fix types
125
- await this.launchContext.process.close();
126
- await utils.sleep(5000);
127
- // Force kill the browser process in case it's still hanging
128
- // @ts-expect-error Fix types
129
- await this.launchContext.process.kill();
126
+ // Gracefully close the browser process with shorter timeout
127
+ await Promise.race([
128
+ this.launchContext.process.close(),
129
+ new Promise((_, reject) => setTimeout(() => reject(new Error('Browser process close timeout')), 3000)),
130
+ ]);
130
131
  log.info('Browser process closed successfully');
131
132
  }
132
133
  catch (e) {
133
- log.error('Could not close browser client or process', e);
134
- // Attempt to force kill the process in case it wasn't closed properly
135
- // @ts-expect-error Fix types
136
- this.launchContext.process.kill();
134
+ log.warning('Could not close browser gracefully, force killing', e);
135
+ // Force kill the browser process immediately
136
+ try {
137
+ await this.launchContext.process.kill();
138
+ }
139
+ catch (killError) {
140
+ log.error('Could not kill browser process', killError);
141
+ }
137
142
  }
143
+ // Wait for 5 seconds to ensure the browser is fully closed
144
+ await utils.sleep(5000);
138
145
  }
139
146
  /**
140
147
  * Force kills the browser process without any grace period.
@@ -144,14 +151,16 @@ export default class CDPBrowserController extends BrowserController {
144
151
  try {
145
152
  this.isClosing = true;
146
153
  if (this.client) {
147
- await this.client.close();
154
+ await Promise.race([
155
+ this.client.close(),
156
+ new Promise((_, reject) => setTimeout(() => reject(new Error('CDP client close timeout')), 1000)),
157
+ ]).catch(() => { }); // Ignore errors for force kill
148
158
  }
149
159
  }
150
160
  catch (e) {
151
- log.error('Error closing client before kill', e);
161
+ log.debug('Error closing client before kill', e);
152
162
  }
153
- // @ts-expect-error Fix types
154
- this.launchContext.process.kill();
163
+ await this.launchContext.process.kill();
155
164
  }
156
165
  /**
157
166
  * Creates a new page in the browser. Implements retry logic to handle potential errors.
@@ -1 +1 @@
1
- {"version":3,"file":"browser-controller.js","sourceRoot":"","sources":["../src/browser-controller.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"browser-controller.js","sourceRoot":"","sources":["../src/browser-controller.ts"],"names":[],"mappings":"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"}
@@ -22,6 +22,7 @@ export default class CDPBrowserPlugin extends BrowserPlugin<Library, LaunchBrows
22
22
  private static lastAssignedPort;
23
23
  private static portLock;
24
24
  private getNextAvailablePort;
25
+ private _cleanupStalePorts;
25
26
  private _isPortAvailable;
26
27
  private releasePort;
27
28
  /**
@@ -1 +1 @@
1
- {"version":3,"file":"browser-plugin.d.ts","sourceRoot":"","sources":["../src/browser-plugin.ts"],"names":[],"mappings":"AAGA,OAAO,EAAE,aAAa,EAAO,KAAK,aAAa,EAAE,MAAM,SAAS,CAAC;AAEjE,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,yBAAyB,CAAC;AAC7D,OAAO,oBAAoB,MAAM,yBAAyB,CAAC;AAG3D,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,oBAAoB,CAAC;AACvD,OAAO,EAAE,WAAW,EAAE,MAAM,oBAAoB,CAAC;AAIjD,KAAK,OAAO,GAAG,WAAW,CAAC;AAC3B,KAAK,YAAY,GAAG,YAAY,CAAC;AACjC,UAAU,cAAc;CAAI;AAC5B,MAAM,WAAW,oBAAoB;IACjC,WAAW,EAAE,QAAQ,GAAG,SAAS,CAAC;IAClC,iBAAiB,EAAE,OAAO,CAAC;IAC3B,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,iBAAiB,EAAE,OAAO,CAAC;IAC3B,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB,cAAc,CAAC,EAAE,MAAM,CAAC;IACxB,2BAA2B,CAAC,EAAE,OAAO,CAAC;CACzC;AAED,MAAM,CAAC,OAAO,OAAO,gBAAiB,SAAQ,aAAa,CACvD,OAAO,EACP,oBAAoB,EACpB,YAAY,EACZ,cAAc,EACd,aAAa,CAChB;IACG,OAAO,CAAC,MAAM,CAAC,QAAQ,CAAC,UAAU,CAGhC;IAEF,OAAO,CAAC,MAAM,CAAC,SAAS,CAAqB;IAC7C,OAAO,CAAC,MAAM,CAAC,gBAAgB,CAAuC;IACtE,OAAO,CAAC,MAAM,CAAC,QAAQ,CAAS;YAElB,oBAAoB;YAsDpB,gBAAgB;IA6B9B,OAAO,CAAC,WAAW;IAUnB;OACG;cACa,wBAAwB,IAAI,OAAO,CAAC,IAAI,CAAC;IAIzD;;;;OAIG;IACH,SAAS,CAAC,uBAAuB,CAC7B,aAAa,EAAE,aAAa,CAAC,OAAO,EAAE,oBAAoB,EAAE,YAAY,EAAE,cAAc,EAAE,aAAa,CAAC,GACzG,OAAO;IAKV;;;;OAIG;cACa,OAAO,CACnB,aAAa,EAAE,aAAa,CAAC,OAAO,EAAE,oBAAoB,EAAE,YAAY,EAAE,cAAc,EAAE,aAAa,CAAC,GACzG,OAAO,CAAC,YAAY,CAAC;IAgDxB;;;;OAIG;IAGH,SAAS,CAAC,iBAAiB,IAAI,oBAAoB;IAMnD;;;;OAIG;YACW,cAAc;IA4B5B;;;;OAIG;YACW,YAAY;IAmB1B;;;;OAIG;YACW,iBAAiB;CAuClC"}
1
+ {"version":3,"file":"browser-plugin.d.ts","sourceRoot":"","sources":["../src/browser-plugin.ts"],"names":[],"mappings":"AAGA,OAAO,EAAE,aAAa,EAAO,KAAK,aAAa,EAAE,MAAM,SAAS,CAAC;AAEjE,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,yBAAyB,CAAC;AAC7D,OAAO,oBAAoB,MAAM,yBAAyB,CAAC;AAG3D,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,oBAAoB,CAAC;AACvD,OAAO,EAAE,WAAW,EAAE,MAAM,oBAAoB,CAAC;AAIjD,KAAK,OAAO,GAAG,WAAW,CAAC;AAC3B,KAAK,YAAY,GAAG,YAAY,CAAC;AACjC,UAAU,cAAc;CAAI;AAC5B,MAAM,WAAW,oBAAoB;IACjC,WAAW,EAAE,QAAQ,GAAG,SAAS,CAAC;IAClC,iBAAiB,EAAE,OAAO,CAAC;IAC3B,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,iBAAiB,EAAE,OAAO,CAAC;IAC3B,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB,cAAc,CAAC,EAAE,MAAM,CAAC;IACxB,2BAA2B,CAAC,EAAE,OAAO,CAAC;CACzC;AAED,MAAM,CAAC,OAAO,OAAO,gBAAiB,SAAQ,aAAa,CACvD,OAAO,EACP,oBAAoB,EACpB,YAAY,EACZ,cAAc,EACd,aAAa,CAChB;IACG,OAAO,CAAC,MAAM,CAAC,QAAQ,CAAC,UAAU,CAGhC;IAEF,OAAO,CAAC,MAAM,CAAC,SAAS,CAAqB;IAC7C,OAAO,CAAC,MAAM,CAAC,gBAAgB,CAAuC;IACtE,OAAO,CAAC,MAAM,CAAC,QAAQ,CAAS;YAElB,oBAAoB;YAkEpB,kBAAkB;YAYlB,gBAAgB;IAyC9B,OAAO,CAAC,WAAW;IASnB;OACG;cACa,wBAAwB,IAAI,OAAO,CAAC,IAAI,CAAC;IAIzD;;;;OAIG;IACH,SAAS,CAAC,uBAAuB,CAC7B,aAAa,EAAE,aAAa,CAAC,OAAO,EAAE,oBAAoB,EAAE,YAAY,EAAE,cAAc,EAAE,aAAa,CAAC,GACzG,OAAO;IAKV;;;;OAIG;cACa,OAAO,CACnB,aAAa,EAAE,aAAa,CAAC,OAAO,EAAE,oBAAoB,EAAE,YAAY,EAAE,cAAc,EAAE,aAAa,CAAC,GACzG,OAAO,CAAC,YAAY,CAAC;IAgGxB;;;;OAIG;IAGH,SAAS,CAAC,iBAAiB,IAAI,oBAAoB;IAMnD;;;;OAIG;YACW,cAAc;IA4B5B;;;;OAIG;YACW,YAAY;IAmB1B;;;;OAIG;YACW,iBAAiB;CAuClC"}
@@ -6,7 +6,7 @@ import { CdpLauncher } from './launcher-wrap.js';
6
6
  import { anonymizeProxySugar } from './proxy/anonymize-proxy.js';
7
7
  class CDPBrowserPlugin extends BrowserPlugin {
8
8
  async getNextAvailablePort() {
9
- const maxAttempts = 100; // Prevent infinite loops
9
+ const maxAttempts = CDPBrowserPlugin.PORT_RANGE.max - CDPBrowserPlugin.PORT_RANGE.min + 1; // Try all ports in range
10
10
  let attempts = 0;
11
11
  while (attempts < maxAttempts) {
12
12
  // Wait if another instance is currently assigning a port
@@ -20,52 +20,88 @@ class CDPBrowserPlugin extends BrowserPlugin {
20
20
  CDPBrowserPlugin.lastAssignedPort++;
21
21
  if (CDPBrowserPlugin.lastAssignedPort > CDPBrowserPlugin.PORT_RANGE.max) {
22
22
  CDPBrowserPlugin.lastAssignedPort = CDPBrowserPlugin.PORT_RANGE.min;
23
+ log.debug('Port range wrapped around, starting from beginning');
23
24
  }
24
25
  const candidatePort = CDPBrowserPlugin.lastAssignedPort;
25
26
  // Skip if port is already tracked as in use
26
27
  if (CDPBrowserPlugin.usedPorts.has(candidatePort)) {
28
+ attempts++;
27
29
  continue;
28
30
  }
29
- // Add random delay before checking port availability
30
- await new Promise(resolve => setTimeout(resolve, 200 + Math.random() * 300));
31
31
  // Check if port is actually available
32
32
  if (await this._isPortAvailable(candidatePort)) {
33
33
  CDPBrowserPlugin.usedPorts.add(candidatePort);
34
- log.debug(`Reserved port ${candidatePort} for browser instance`);
34
+ log.debug(`Reserved port ${candidatePort} for browser instance (attempt ${attempts + 1})`);
35
35
  return candidatePort;
36
36
  }
37
- // Add delay before next attempt if port was unavailable
38
- await new Promise(resolve => setTimeout(resolve, 150 + Math.random() * 200));
37
+ // Port is not available, mark it as used temporarily to avoid immediate retry
38
+ CDPBrowserPlugin.usedPorts.add(candidatePort);
39
+ setTimeout(() => {
40
+ CDPBrowserPlugin.usedPorts.delete(candidatePort);
41
+ }, 5000); // Remove from used ports after 5 seconds
39
42
  }
40
43
  finally {
41
44
  // Always release the lock
42
45
  CDPBrowserPlugin.portLock = false;
43
46
  }
44
- attempts++; // Increment attempts only once per full iteration
47
+ attempts++;
48
+ }
49
+ // If we've tried all ports and none are available, try to clean up stale ports
50
+ log.warning(`All ports in range ${CDPBrowserPlugin.PORT_RANGE.min}-${CDPBrowserPlugin.PORT_RANGE.max} are in use. Attempting cleanup.`);
51
+ await this._cleanupStalePorts();
52
+ // Try once more after cleanup
53
+ for (let port = CDPBrowserPlugin.PORT_RANGE.min; port <= CDPBrowserPlugin.PORT_RANGE.max; port++) {
54
+ if (!CDPBrowserPlugin.usedPorts.has(port) && await this._isPortAvailable(port)) {
55
+ CDPBrowserPlugin.usedPorts.add(port);
56
+ log.debug(`Reserved port ${port} after cleanup`);
57
+ return port;
58
+ }
59
+ }
60
+ throw new Error(`No available ports found in the configured range ${CDPBrowserPlugin.PORT_RANGE.min}-${CDPBrowserPlugin.PORT_RANGE.max} after maximum attempts and cleanup`);
61
+ }
62
+ async _cleanupStalePorts() {
63
+ log.debug('Cleaning up stale ports');
64
+ const portsToCheck = Array.from(CDPBrowserPlugin.usedPorts);
65
+ for (const port of portsToCheck) {
66
+ if (await this._isPortAvailable(port)) {
67
+ CDPBrowserPlugin.usedPorts.delete(port);
68
+ log.debug(`Cleaned up stale port ${port}`);
69
+ }
45
70
  }
46
- throw new Error('No available ports found in the configured range after maximum attempts');
47
71
  }
48
72
  async _isPortAvailable(port) {
49
73
  return new Promise((resolve) => {
50
74
  const server = net.createServer();
75
+ let resolved = false;
76
+ const cleanup = () => {
77
+ if (!resolved) {
78
+ resolved = true;
79
+ try {
80
+ server.close();
81
+ }
82
+ catch (e) {
83
+ // Ignore errors during cleanup
84
+ }
85
+ }
86
+ };
51
87
  server.once('error', () => {
52
- server.close();
88
+ cleanup();
53
89
  resolve(false);
54
90
  });
55
91
  server.once('listening', () => {
56
- server.close();
92
+ cleanup();
57
93
  resolve(true);
58
94
  });
59
95
  // Add timeout to prevent hanging
60
- server.on('error', () => { });
61
96
  setTimeout(() => {
62
- server.close();
97
+ cleanup();
63
98
  resolve(false);
64
- }, 1000);
99
+ }, 2000); // Reduced timeout
65
100
  try {
66
101
  server.listen(port, '127.0.0.1');
67
102
  }
68
103
  catch (e) {
104
+ cleanup();
69
105
  resolve(false);
70
106
  }
71
107
  });
@@ -73,9 +109,10 @@ class CDPBrowserPlugin extends BrowserPlugin {
73
109
  releasePort(port) {
74
110
  if (CDPBrowserPlugin.usedPorts.has(port)) {
75
111
  CDPBrowserPlugin.usedPorts.delete(port);
76
- log.debug(`Released port ${port} back to pool`);
77
- // Add delay after release to prevent immediate reuse
78
- setTimeout(() => { }, 500);
112
+ log.debug(`Released port ${port} back to pool. Used ports: ${CDPBrowserPlugin.usedPorts.size}/${CDPBrowserPlugin.PORT_RANGE.max - CDPBrowserPlugin.PORT_RANGE.min + 1}`);
113
+ }
114
+ else {
115
+ log.debug(`Attempted to release port ${port} that was not in use`);
79
116
  }
80
117
  }
81
118
  /**
@@ -99,6 +136,7 @@ class CDPBrowserPlugin extends BrowserPlugin {
99
136
  */
100
137
  async _launch(launchContext) {
101
138
  const debuggingPort = await this.getNextAvailablePort();
139
+ let browserProcess;
102
140
  try {
103
141
  const { launchOptions, useIncognitoPages, proxyUrl } = launchContext;
104
142
  if (!launchOptions.browserType) {
@@ -111,15 +149,53 @@ class CDPBrowserPlugin extends BrowserPlugin {
111
149
  if (anonymizedProxyUrl) {
112
150
  launchOptions.proxyUrl = anonymizedProxyUrl;
113
151
  }
114
- const browserProcess = await this._launchBrowser(debuggingPort, launchOptions);
152
+ browserProcess = await this._launchBrowser(debuggingPort, launchOptions);
115
153
  log.debug("Browser process started", { pid: browserProcess.pid, debuggingPort });
116
154
  try {
117
155
  browser = await this._connectWithRetry(debuggingPort, 10, 4000);
118
- // Add both cleanup handlers
156
+ // Add cleanup handlers
119
157
  browser.on('close', async () => {
120
- this.releasePort(debuggingPort);
121
- if (anonymizedProxyUrl) {
122
- await close();
158
+ try {
159
+ this.releasePort(debuggingPort);
160
+ if (anonymizedProxyUrl) {
161
+ await close();
162
+ }
163
+ log.debug(`Browser on port ${debuggingPort} closed cleanly`);
164
+ }
165
+ catch (error) {
166
+ log.warning(`Error during browser close cleanup on port ${debuggingPort}:`, { error });
167
+ // Still release the port even if other cleanup fails
168
+ this.releasePort(debuggingPort);
169
+ }
170
+ });
171
+ // Add error handler to ensure cleanup
172
+ browser.on('error', async (error) => {
173
+ try {
174
+ log.warning(`Browser error on port ${debuggingPort}:`, error);
175
+ this.releasePort(debuggingPort);
176
+ if (anonymizedProxyUrl) {
177
+ await close();
178
+ }
179
+ }
180
+ catch (cleanupError) {
181
+ log.error(`Error during browser error cleanup on port ${debuggingPort}:`, { error: cleanupError });
182
+ // Still release the port even if other cleanup fails
183
+ this.releasePort(debuggingPort);
184
+ }
185
+ });
186
+ // Add disconnect handler for CDP connection issues
187
+ browser.on('disconnect', async () => {
188
+ try {
189
+ log.warning(`Browser disconnected on port ${debuggingPort}, cleaning up`);
190
+ this.releasePort(debuggingPort);
191
+ if (anonymizedProxyUrl) {
192
+ await close();
193
+ }
194
+ }
195
+ catch (cleanupError) {
196
+ log.error(`Error during browser disconnect cleanup on port ${debuggingPort}:`, { error: cleanupError });
197
+ // Still release the port even if other cleanup fails
198
+ this.releasePort(debuggingPort);
123
199
  }
124
200
  });
125
201
  launchContext.debuggingPort = debuggingPort;
@@ -135,6 +211,15 @@ class CDPBrowserPlugin extends BrowserPlugin {
135
211
  }
136
212
  catch (error) {
137
213
  this.releasePort(debuggingPort);
214
+ // Ensure browser process is killed if it was started
215
+ if (browserProcess) {
216
+ try {
217
+ await browserProcess.kill();
218
+ }
219
+ catch (killError) {
220
+ log.warning(`Failed to kill browser process: ${killError}`);
221
+ }
222
+ }
138
223
  throw error;
139
224
  }
140
225
  }
@@ -248,8 +333,8 @@ Object.defineProperty(CDPBrowserPlugin, "PORT_RANGE", {
248
333
  configurable: true,
249
334
  writable: true,
250
335
  value: {
251
- min: 9223,
252
- max: 9423 // Give a range of 100 ports
336
+ min: 9200,
337
+ max: 9600, // Give a range of 400 ports instead of 200
253
338
  }
254
339
  });
255
340
  Object.defineProperty(CDPBrowserPlugin, "usedPorts", {
@@ -1 +1 @@
1
- {"version":3,"file":"browser-plugin.js","sourceRoot":"","sources":["../src/browser-plugin.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"browser-plugin.js","sourceRoot":"","sources":["../src/browser-plugin.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"browser.d.ts","sourceRoot":"","sources":["../../src/browser-process/browser.ts"],"names":[],"mappings":"AAQA,OAAO,EAAE,cAAc,EAAE,MAAM,cAAc,CAAC;AAI9C,MAAM,WAAW,oBAAoB;IACjC,kBAAkB,CAAC,EAAE,MAAM,CAAC;IAC5B,aAAa,CAAC,EAAE,MAAM,CAAC;IACvB,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,iBAAiB,CAAC,EAAE,OAAO,CAAC;IAC5B,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB,cAAc,CAAC,EAAE,MAAM,CAAC;IACxB,2BAA2B,CAAC,EAAE,OAAO,CAAC;CACzC;AAED,eAAO,MAAM,2BAA2B,mBACpB,MAAM,YACb,oBAAoB,KAC9B,OAAO,CAAC,cAAc,CA8DxB,CAAC;AAEF,eAAO,MAAM,qBAAqB,QAAa,OAAO,CAAC,MAAM,CAI5D,CAAC;AAEF,eAAO,MAAM,iCAAiC,aAAmB,oBAAoB,4BAKpF,CAAC"}
1
+ {"version":3,"file":"browser.d.ts","sourceRoot":"","sources":["../../src/browser-process/browser.ts"],"names":[],"mappings":"AAQA,OAAO,EAAE,cAAc,EAAE,MAAM,cAAc,CAAC;AAI9C,MAAM,WAAW,oBAAoB;IACjC,kBAAkB,CAAC,EAAE,MAAM,CAAC;IAC5B,aAAa,CAAC,EAAE,MAAM,CAAC;IACvB,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,iBAAiB,CAAC,EAAE,OAAO,CAAC;IAC5B,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB,cAAc,CAAC,EAAE,MAAM,CAAC;IACxB,2BAA2B,CAAC,EAAE,OAAO,CAAC;CACzC;AAED,eAAO,MAAM,2BAA2B,mBACpB,MAAM,YACb,oBAAoB,KAC9B,OAAO,CAAC,cAAc,CA8DxB,CAAC;AAEF,eAAO,MAAM,qBAAqB,QAAa,OAAO,CAAC,MAAM,CAwC5D,CAAC;AAEF,eAAO,MAAM,iCAAiC,aAAmB,oBAAoB,4BAKpF,CAAC"}
@@ -53,8 +53,40 @@ export const launchBrowserWithNewProfile = async (executablePath, options = {})
53
53
  }
54
54
  };
55
55
  export const createTempUserDataDir = async () => {
56
- const tempDirPrefix = path.join(os.tmpdir(), 'browser_');
56
+ // Try to create temp directory in order of preference:
57
+ // 1. Project's temp directory (if we're in a project)
58
+ // 2. User's home directory temp folder
59
+ // 3. System temp directory as fallback
60
+ const tempDirCandidates = [
61
+ // Project temp directory
62
+ path.resolve(process.cwd(), 'temp', 'browser-profiles'),
63
+ // User home temp directory
64
+ path.join(os.homedir(), '.tmp', 'cdp-crawler-browsers'),
65
+ // System temp directory (fallback)
66
+ path.join(os.tmpdir(), 'cdp-crawler-browsers')
67
+ ];
68
+ let baseTempDir = null;
69
+ for (const candidate of tempDirCandidates) {
70
+ try {
71
+ await fs.mkdir(candidate, { recursive: true });
72
+ // Test if we can write to this directory
73
+ const testFile = path.join(candidate, '.write-test');
74
+ await fs.writeFile(testFile, 'test');
75
+ await fs.unlink(testFile);
76
+ baseTempDir = candidate;
77
+ break;
78
+ }
79
+ catch (error) {
80
+ log.debug(`Cannot use temp directory ${candidate}: ${error}`);
81
+ continue;
82
+ }
83
+ }
84
+ if (!baseTempDir) {
85
+ throw new Error('Could not find a writable directory for browser profiles');
86
+ }
87
+ const tempDirPrefix = path.join(baseTempDir, 'browser_');
57
88
  const userDataDir = await fs.mkdtemp(tempDirPrefix);
89
+ log.debug(`Created browser profile directory: ${userDataDir}`);
58
90
  return userDataDir;
59
91
  };
60
92
  export const launchChromeBrowserWithNewProfile = async (options = {}) => {
@@ -1 +1 @@
1
- {"version":3,"file":"browser.js","sourceRoot":"","sources":["../../src/browser-process/browser.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,EAAE,MAAM,eAAe,CAAC;AACtC,OAAO,EAAE,MAAM,aAAa,CAAC;AAC7B,OAAO,EAAE,MAAM,IAAI,CAAC;AACpB,OAAO,IAAI,MAAM,MAAM,CAAC;AAExB,OAAO,EAAE,GAAG,EAAE,MAAM,eAAe,CAAC;AAEpC,OAAO,EAAE,uBAAuB,EAAE,MAAM,4BAA4B,CAAC;AACrE,OAAO,EAAE,cAAc,EAAE,MAAM,cAAc,CAAC;AAC9C,OAAO,EAAE,mBAAmB,EAAE,MAAM,8BAA8B,CAAC;AAEnE,MAAM,cAAc,GAAG,IAAI,CAAC,OAAO,CAAC,MAAM,CAAC,IAAI,CAAC,OAAO,EAAE,4CAA4C,CAAC,CAAC;AAYvG,MAAM,CAAC,MAAM,2BAA2B,GAAG,KAAK,EAC5C,cAAsB,EACtB,UAAgC,EAAE,EACX,EAAE;IACzB,MAAM,EACF,kBAAkB,EAClB,aAAa,EACb,WAAW,GAAG,IAAI,EAClB,YAAY,GAAG,IAAI,EACnB,iBAAiB,EACjB,QAAQ,EACR,2BAA2B,GAAG,KAAK,GACtC,GAAG,OAAO,CAAC;IAEZ,IAAI,CAAC;QACD,MAAM,WAAW,GAAG,MAAM,qBAAqB,EAAE,CAAC;QAClD,MAAM,mBAAmB,CAAC,WAAW,CAAC,CAAC;QAEvC,MAAM,WAAW,GAAa;YAC1B,2BAA2B,aAAa,EAAE;YAC1C,eAAe;YACf,cAAc;YACd,mBAAmB,WAAW,EAAE;YAChC,gBAAgB;YAChB,4BAA4B;YAC5B,mBAAmB;YACnB,oBAAoB;SAEvB,CAAC;QAEF,IAAI,2BAA2B,EAAE,CAAC;YAC9B,WAAW,CAAC,IAAI,CAAC,+BAA+B,cAAc,EAAE,CAAC,CAAC;YAClE,WAAW,CAAC,IAAI,CAAC,oBAAoB,cAAc,EAAE,CAAC,CAAC;QAC3D,CAAC;QAED,IAAI,kBAAkB,EAAE,CAAC;YACrB,WAAW,CAAC,IAAI,CAAC,kBAAkB,kBAAkB,EAAE,CAAC,CAAC;QAC7D,CAAC;QAED,IAAI,WAAW,IAAI,YAAY,EAAE,CAAC;YAC9B,WAAW,CAAC,IAAI,CAAC,iBAAiB,WAAW,IAAI,YAAY,EAAE,CAAC,CAAC;QACrE,CAAC;QAED,IAAI,iBAAiB,EAAE,CAAC;YACpB,WAAW,CAAC,IAAI,CAAC,6BAA6B,CAAC,CAAC;YAChD,0CAA0C;YAC1C,8CAA8C;QAClD,CAAC;QAED,IAAI,QAAQ,EAAE,CAAC;YACX,WAAW,CAAC,IAAI,CAAC,gBAAgB,CAAC,CAAC;QACvC,CAAC;QAED,GAAG,CAAC,KAAK,CAAC,yCAAyC,WAAW,EAAE,CAAC,CAAC;QAClE,GAAG,CAAC,KAAK,CAAC,aAAa,EAAE,WAAW,CAAC,CAAC;QAEtC,MAAM,cAAc,GAAG,KAAK,CAAC,cAAc,EAAE,WAAW,EAAE;YACtD,KAAK,EAAE,QAAQ;SAClB,CAAC,CAAC;QAEH,OAAO,IAAI,cAAc,CAAC,cAAc,EAAE,WAAW,CAAC,CAAC;IAC3D,CAAC;IAAC,OAAO,KAAK,EAAE,CAAC;QACb,GAAG,CAAC,KAAK,CAAC,gCAAgC,KAAK,EAAE,CAAC,CAAC;QACnD,MAAM,IAAI,KAAK,CAAC,gCAAgC,KAAK,EAAE,CAAC,CAAC;IAC7D,CAAC;AACL,CAAC,CAAC;AAEF,MAAM,CAAC,MAAM,qBAAqB,GAAG,KAAK,IAAqB,EAAE;IAC7D,MAAM,aAAa,GAAW,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC,MAAM,EAAE,EAAE,UAAU,CAAC,CAAC;IACjE,MAAM,WAAW,GAAW,MAAM,EAAE,CAAC,OAAO,CAAC,aAAa,CAAC,CAAC;IAC5D,OAAO,WAAW,CAAC;AACvB,CAAC,CAAC;AAEF,MAAM,CAAC,MAAM,iCAAiC,GAAG,KAAK,EAAE,UAAgC,EAAE,EAAE,EAAE;IAE1F,MAAM,cAAc,GAAG,OAAO,CAAC,cAAc,CAAC,CAAC,CAAC,OAAO,CAAC,cAAc,CAAC,CAAC,CAAC,uBAAuB,EAAE,CAAC;IAEnG,OAAO,2BAA2B,CAAC,cAAc,EAAE,OAAO,CAAC,CAAC;AAChE,CAAC,CAAC"}
1
+ {"version":3,"file":"browser.js","sourceRoot":"","sources":["../../src/browser-process/browser.ts"],"names":[],"mappings":"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"}
@@ -10,10 +10,19 @@ export declare class BrowserProcess implements Process {
10
10
  onExit: Promise<void>;
11
11
  private browserProcess;
12
12
  private userDataDir;
13
+ private isKilling;
13
14
  constructor(browserProcess: ChildProcess, userDataDir: string);
14
15
  close(): Promise<void>;
15
16
  kill(): Promise<void>;
16
17
  signal(signal?: NodeJS.Signals): void;
17
18
  private cleanup;
19
+ /**
20
+ * Aggressively force delete the browser profile directory
21
+ */
22
+ private forceDeleteDirectory;
23
+ /**
24
+ * Delete all contents of a directory recursively
25
+ */
26
+ private deleteDirectoryContents;
18
27
  }
19
28
  //# sourceMappingURL=process.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"process.d.ts","sourceRoot":"","sources":["../../src/browser-process/process.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,eAAe,CAAC;AAKlD,MAAM,WAAW,OAAO;IACpB,GAAG,EAAE,MAAM,CAAC;IACZ,MAAM,EAAE,OAAO,CAAC,IAAI,CAAC,CAAC;IACtB,KAAK,IAAI,OAAO,CAAC,IAAI,CAAC,CAAC;IACvB,MAAM,CAAC,MAAM,CAAC,EAAE,MAAM,CAAC,OAAO,GAAG,IAAI,CAAC;CACzC;AAED,qBAAa,cAAe,YAAW,OAAO;IAC1C,GAAG,EAAE,MAAM,CAAC;IACZ,MAAM,EAAE,OAAO,CAAC,IAAI,CAAC,CAAC;IACtB,OAAO,CAAC,cAAc,CAAe;IACrC,OAAO,CAAC,WAAW,CAAS;gBAEhB,cAAc,EAAE,YAAY,EAAE,WAAW,EAAE,MAAM;IAkBvD,KAAK,IAAI,OAAO,CAAC,IAAI,CAAC;IAOtB,IAAI,IAAI,OAAO,CAAC,IAAI,CAAC;IAO3B,MAAM,CAAC,MAAM,GAAE,MAAM,CAAC,OAAmB,GAAG,IAAI;YAQlC,OAAO;CAOxB"}
1
+ {"version":3,"file":"process.d.ts","sourceRoot":"","sources":["../../src/browser-process/process.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,eAAe,CAAC;AAMlD,MAAM,WAAW,OAAO;IACpB,GAAG,EAAE,MAAM,CAAC;IACZ,MAAM,EAAE,OAAO,CAAC,IAAI,CAAC,CAAC;IACtB,KAAK,IAAI,OAAO,CAAC,IAAI,CAAC,CAAC;IACvB,MAAM,CAAC,MAAM,CAAC,EAAE,MAAM,CAAC,OAAO,GAAG,IAAI,CAAC;CACzC;AAED,qBAAa,cAAe,YAAW,OAAO;IAC1C,GAAG,EAAE,MAAM,CAAC;IACZ,MAAM,EAAE,OAAO,CAAC,IAAI,CAAC,CAAC;IACtB,OAAO,CAAC,cAAc,CAAe;IACrC,OAAO,CAAC,WAAW,CAAS;IAC5B,OAAO,CAAC,SAAS,CAAS;gBAEd,cAAc,EAAE,YAAY,EAAE,WAAW,EAAE,MAAM;IAkBvD,KAAK,IAAI,OAAO,CAAC,IAAI,CAAC;IAsBtB,IAAI,IAAI,OAAO,CAAC,IAAI,CAAC;IAqB3B,MAAM,CAAC,MAAM,GAAE,MAAM,CAAC,OAAmB,GAAG,IAAI;YAOlC,OAAO;IASrB;;OAEG;YACW,oBAAoB;IAmClC;;OAEG;YACW,uBAAuB;CAsBxC"}
@@ -1,4 +1,5 @@
1
1
  import fs from 'fs/promises';
2
+ import path from 'path';
2
3
  import { log } from '@crawlee/core';
3
4
  export class BrowserProcess {
4
5
  constructor(browserProcess, userDataDir) {
@@ -26,6 +27,12 @@ export class BrowserProcess {
26
27
  writable: true,
27
28
  value: void 0
28
29
  });
30
+ Object.defineProperty(this, "isKilling", {
31
+ enumerable: true,
32
+ configurable: true,
33
+ writable: true,
34
+ value: false
35
+ });
29
36
  this.browserProcess = browserProcess;
30
37
  this.pid = browserProcess.pid || -1;
31
38
  this.userDataDir = userDataDir;
@@ -42,16 +49,37 @@ export class BrowserProcess {
42
49
  });
43
50
  }
44
51
  async close() {
45
- if (!this.browserProcess.killed) {
52
+ if (!this.browserProcess.killed && !this.isKilling) {
53
+ this.isKilling = true;
46
54
  this.browserProcess.kill();
47
55
  }
48
- await this.onExit;
56
+ // Add timeout to prevent hanging indefinitely
57
+ await Promise.race([
58
+ this.onExit,
59
+ new Promise((resolve) => setTimeout(() => {
60
+ log.warning('Browser process close timeout, force killing');
61
+ this.signal('SIGKILL');
62
+ resolve();
63
+ }, 5000)),
64
+ ]);
65
+ // Ensure cleanup happens after process closes
66
+ await this.cleanup();
49
67
  }
50
68
  async kill() {
51
- if (!this.browserProcess.killed) {
69
+ if (!this.browserProcess.killed && !this.isKilling) {
70
+ this.isKilling = true;
52
71
  this.signal('SIGKILL');
53
72
  }
54
- await this.onExit;
73
+ // Add timeout for kill operation
74
+ await Promise.race([
75
+ this.onExit,
76
+ new Promise((resolve) => setTimeout(() => {
77
+ log.warning('Browser process kill timeout');
78
+ resolve();
79
+ }, 3000)),
80
+ ]);
81
+ // Ensure cleanup happens after process is killed
82
+ await this.cleanup();
55
83
  }
56
84
  signal(signal = 'SIGTERM') {
57
85
  if (!this.browserProcess.killed) {
@@ -61,11 +89,77 @@ export class BrowserProcess {
61
89
  }
62
90
  async cleanup() {
63
91
  try {
64
- await fs.rm(this.userDataDir, { recursive: true, force: true });
92
+ await this.forceDeleteDirectory(this.userDataDir);
93
+ log.debug(`Successfully cleaned up browser profile directory: ${this.userDataDir}`);
65
94
  }
66
95
  catch (e) {
67
96
  log.warning(`Could not delete browser profile dir: ${e.message}`);
68
97
  }
69
98
  }
99
+ /**
100
+ * Aggressively force delete the browser profile directory
101
+ */
102
+ async forceDeleteDirectory(dirPath) {
103
+ try {
104
+ // Check if directory exists
105
+ await fs.access(dirPath);
106
+ }
107
+ catch {
108
+ // Directory doesn't exist, nothing to clean up
109
+ return;
110
+ }
111
+ // First, try the standard approach
112
+ try {
113
+ await fs.rm(dirPath, { recursive: true, force: true });
114
+ return;
115
+ }
116
+ catch (error) {
117
+ log.debug(`Standard cleanup failed: ${error.message}, trying aggressive cleanup`);
118
+ }
119
+ // If that fails, try more aggressive individual file deletion
120
+ try {
121
+ await this.deleteDirectoryContents(dirPath);
122
+ await fs.rmdir(dirPath);
123
+ }
124
+ catch (error) {
125
+ // If everything fails, try to rename the directory for later cleanup
126
+ try {
127
+ const timestamp = Date.now();
128
+ const parentDir = path.dirname(dirPath);
129
+ const cleanupDir = path.join(parentDir, `.cleanup-${timestamp}-${path.basename(dirPath)}`);
130
+ await fs.rename(dirPath, cleanupDir);
131
+ log.debug(`Renamed problematic directory for later cleanup: ${cleanupDir}`);
132
+ }
133
+ catch (renameError) {
134
+ throw new Error(`Could not delete or rename directory: ${error.message}`);
135
+ }
136
+ }
137
+ }
138
+ /**
139
+ * Delete all contents of a directory recursively
140
+ */
141
+ async deleteDirectoryContents(dirPath) {
142
+ const entries = await fs.readdir(dirPath, { withFileTypes: true });
143
+ for (const entry of entries) {
144
+ const fullPath = path.join(dirPath, entry.name);
145
+ if (entry.isDirectory()) {
146
+ await this.deleteDirectoryContents(fullPath);
147
+ try {
148
+ await fs.rmdir(fullPath);
149
+ }
150
+ catch (error) {
151
+ log.debug(`Could not remove directory ${fullPath}: ${error.message}`);
152
+ }
153
+ }
154
+ else {
155
+ try {
156
+ await fs.unlink(fullPath);
157
+ }
158
+ catch (error) {
159
+ log.debug(`Could not delete file ${fullPath}: ${error.message}`);
160
+ }
161
+ }
162
+ }
163
+ }
70
164
  }
71
165
  //# sourceMappingURL=process.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"process.js","sourceRoot":"","sources":["../../src/browser-process/process.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,MAAM,aAAa,CAAC;AAE7B,OAAO,EAAE,GAAG,EAAE,MAAM,eAAe,CAAC;AASpC,MAAM,OAAO,cAAc;IAMvB,YAAY,cAA4B,EAAE,WAAmB;QAL7D;;;;;WAAY;QACZ;;;;;WAAsB;QACd;;;;;WAA6B;QAC7B;;;;;WAAoB;QAGxB,IAAI,CAAC,cAAc,GAAG,cAAc,CAAC;QACrC,IAAI,CAAC,GAAG,GAAG,cAAc,CAAC,GAAG,IAAI,CAAC,CAAC,CAAC;QACpC,IAAI,CAAC,WAAW,GAAG,WAAW,CAAC;QAE/B,IAAI,CAAC,MAAM,GAAG,IAAI,OAAO,CAAO,CAAC,OAAO,EAAE,EAAE;YACxC,cAAc,CAAC,IAAI,CAAC,MAAM,EAAE,GAAG,EAAE;gBAC7B,KAAK,IAAI,CAAC,OAAO,EAAE,CAAC,KAAK,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC;gBACrC,OAAO,EAAE,CAAC;YACd,CAAC,CAAC,CAAC;YACH,cAAc,CAAC,IAAI,CAAC,OAAO,EAAE,CAAC,GAAG,EAAE,EAAE;gBACjC,KAAK,IAAI,CAAC,OAAO,EAAE,CAAC,KAAK,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC;gBACrC,GAAG,CAAC,KAAK,CAAC,oBAAoB,GAAG,CAAC,OAAO,EAAE,CAAC,CAAA;gBAC5C,OAAO,EAAE,CAAC;YACd,CAAC,CAAC,CAAC;QACP,CAAC,CAAC,CAAC;IACP,CAAC;IAED,KAAK,CAAC,KAAK;QACP,IAAI,CAAC,IAAI,CAAC,cAAc,CAAC,MAAM,EAAE,CAAC;YAC9B,IAAI,CAAC,cAAc,CAAC,IAAI,EAAE,CAAC;QAC/B,CAAC;QACD,MAAM,IAAI,CAAC,MAAM,CAAC;IACtB,CAAC;IAED,KAAK,CAAC,IAAI;QACN,IAAI,CAAC,IAAI,CAAC,cAAc,CAAC,MAAM,EAAE,CAAC;YAC9B,IAAI,CAAC,MAAM,CAAC,SAAS,CAAC,CAAC;QAC3B,CAAC;QACD,MAAM,IAAI,CAAC,MAAM,CAAC;IACtB,CAAC;IAED,MAAM,CAAC,SAAyB,SAAS;QACrC,IAAI,CAAC,IAAI,CAAC,cAAc,CAAC,MAAM,EAAE,CAAC;YAC9B,IAAI,CAAC,cAAc,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;YACjC,KAAK,IAAI,CAAC,MAAM,CAAC;QAErB,CAAC;IACL,CAAC;IAEO,KAAK,CAAC,OAAO;QACjB,IAAI,CAAC;YACD,MAAM,EAAE,CAAC,EAAE,CAAC,IAAI,CAAC,WAAW,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,KAAK,EAAE,IAAI,EAAE,CAAC,CAAC;QACpE,CAAC;QAAC,OAAO,CAAM,EAAE,CAAC;YACd,GAAG,CAAC,OAAO,CAAC,yCAAyC,CAAC,CAAC,OAAO,EAAE,CAAC,CAAC;QACtE,CAAC;IACL,CAAC;CACJ"}
1
+ {"version":3,"file":"process.js","sourceRoot":"","sources":["../../src/browser-process/process.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,MAAM,aAAa,CAAC;AAC7B,OAAO,IAAI,MAAM,MAAM,CAAC;AAExB,OAAO,EAAE,GAAG,EAAE,MAAM,eAAe,CAAC;AASpC,MAAM,OAAO,cAAc;IAOvB,YAAY,cAA4B,EAAE,WAAmB;QAN7D;;;;;WAAY;QACZ;;;;;WAAsB;QACd;;;;;WAA6B;QAC7B;;;;;WAAoB;QACpB;;;;mBAAY,KAAK;WAAC;QAGtB,IAAI,CAAC,cAAc,GAAG,cAAc,CAAC;QACrC,IAAI,CAAC,GAAG,GAAG,cAAc,CAAC,GAAG,IAAI,CAAC,CAAC,CAAC;QACpC,IAAI,CAAC,WAAW,GAAG,WAAW,CAAC;QAE/B,IAAI,CAAC,MAAM,GAAG,IAAI,OAAO,CAAO,CAAC,OAAO,EAAE,EAAE;YACxC,cAAc,CAAC,IAAI,CAAC,MAAM,EAAE,GAAG,EAAE;gBAC7B,KAAK,IAAI,CAAC,OAAO,EAAE,CAAC,KAAK,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC;gBACrC,OAAO,EAAE,CAAC;YACd,CAAC,CAAC,CAAC;YACH,cAAc,CAAC,IAAI,CAAC,OAAO,EAAE,CAAC,GAAG,EAAE,EAAE;gBACjC,KAAK,IAAI,CAAC,OAAO,EAAE,CAAC,KAAK,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC;gBACrC,GAAG,CAAC,KAAK,CAAC,oBAAoB,GAAG,CAAC,OAAO,EAAE,CAAC,CAAC;gBAC7C,OAAO,EAAE,CAAC;YACd,CAAC,CAAC,CAAC;QACP,CAAC,CAAC,CAAC;IACP,CAAC;IAED,KAAK,CAAC,KAAK;QACP,IAAI,CAAC,IAAI,CAAC,cAAc,CAAC,MAAM,IAAI,CAAC,IAAI,CAAC,SAAS,EAAE,CAAC;YACjD,IAAI,CAAC,SAAS,GAAG,IAAI,CAAC;YACtB,IAAI,CAAC,cAAc,CAAC,IAAI,EAAE,CAAC;QAC/B,CAAC;QAED,8CAA8C;QAC9C,MAAM,OAAO,CAAC,IAAI,CAAC;YACf,IAAI,CAAC,MAAM;YACX,IAAI,OAAO,CAAO,CAAC,OAAO,EAAE,EAAE,CAC1B,UAAU,CAAC,GAAG,EAAE;gBACZ,GAAG,CAAC,OAAO,CAAC,8CAA8C,CAAC,CAAC;gBAC5D,IAAI,CAAC,MAAM,CAAC,SAAS,CAAC,CAAC;gBACvB,OAAO,EAAE,CAAC;YACd,CAAC,EAAE,IAAI,CAAC,CACX;SACJ,CAAC,CAAC;QAEH,8CAA8C;QAC9C,MAAM,IAAI,CAAC,OAAO,EAAE,CAAC;IACzB,CAAC;IAED,KAAK,CAAC,IAAI;QACN,IAAI,CAAC,IAAI,CAAC,cAAc,CAAC,MAAM,IAAI,CAAC,IAAI,CAAC,SAAS,EAAE,CAAC;YACjD,IAAI,CAAC,SAAS,GAAG,IAAI,CAAC;YACtB,IAAI,CAAC,MAAM,CAAC,SAAS,CAAC,CAAC;QAC3B,CAAC;QAED,iCAAiC;QACjC,MAAM,OAAO,CAAC,IAAI,CAAC;YACf,IAAI,CAAC,MAAM;YACX,IAAI,OAAO,CAAO,CAAC,OAAO,EAAE,EAAE,CAC1B,UAAU,CAAC,GAAG,EAAE;gBACZ,GAAG,CAAC,OAAO,CAAC,8BAA8B,CAAC,CAAC;gBAC5C,OAAO,EAAE,CAAC;YACd,CAAC,EAAE,IAAI,CAAC,CACX;SACJ,CAAC,CAAC;QAEH,iDAAiD;QACjD,MAAM,IAAI,CAAC,OAAO,EAAE,CAAC;IACzB,CAAC;IAED,MAAM,CAAC,SAAyB,SAAS;QACrC,IAAI,CAAC,IAAI,CAAC,cAAc,CAAC,MAAM,EAAE,CAAC;YAC9B,IAAI,CAAC,cAAc,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;YACjC,KAAK,IAAI,CAAC,MAAM,CAAC;QACrB,CAAC;IACL,CAAC;IAEO,KAAK,CAAC,OAAO;QACjB,IAAI,CAAC;YACD,MAAM,IAAI,CAAC,oBAAoB,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC;YAClD,GAAG,CAAC,KAAK,CAAC,sDAAsD,IAAI,CAAC,WAAW,EAAE,CAAC,CAAC;QACxF,CAAC;QAAC,OAAO,CAAM,EAAE,CAAC;YACd,GAAG,CAAC,OAAO,CAAC,yCAAyC,CAAC,CAAC,OAAO,EAAE,CAAC,CAAC;QACtE,CAAC;IACL,CAAC;IAED;;OAEG;IACK,KAAK,CAAC,oBAAoB,CAAC,OAAe;QAC9C,IAAI,CAAC;YACD,4BAA4B;YAC5B,MAAM,EAAE,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC;QAC7B,CAAC;QAAC,MAAM,CAAC;YACL,+CAA+C;YAC/C,OAAO;QACX,CAAC;QAED,mCAAmC;QACnC,IAAI,CAAC;YACD,MAAM,EAAE,CAAC,EAAE,CAAC,OAAO,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,KAAK,EAAE,IAAI,EAAE,CAAC,CAAC;YACvD,OAAO;QACX,CAAC;QAAC,OAAO,KAAU,EAAE,CAAC;YAClB,GAAG,CAAC,KAAK,CAAC,4BAA4B,KAAK,CAAC,OAAO,6BAA6B,CAAC,CAAC;QACtF,CAAC;QAED,8DAA8D;QAC9D,IAAI,CAAC;YACD,MAAM,IAAI,CAAC,uBAAuB,CAAC,OAAO,CAAC,CAAC;YAC5C,MAAM,EAAE,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC;QAC5B,CAAC;QAAC,OAAO,KAAU,EAAE,CAAC;YAClB,qEAAqE;YACrE,IAAI,CAAC;gBACD,MAAM,SAAS,GAAG,IAAI,CAAC,GAAG,EAAE,CAAC;gBAC7B,MAAM,SAAS,GAAG,IAAI,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC;gBACxC,MAAM,UAAU,GAAG,IAAI,CAAC,IAAI,CAAC,SAAS,EAAE,YAAY,SAAS,IAAI,IAAI,CAAC,QAAQ,CAAC,OAAO,CAAC,EAAE,CAAC,CAAC;gBAC3F,MAAM,EAAE,CAAC,MAAM,CAAC,OAAO,EAAE,UAAU,CAAC,CAAC;gBACrC,GAAG,CAAC,KAAK,CAAC,oDAAoD,UAAU,EAAE,CAAC,CAAC;YAChF,CAAC;YAAC,OAAO,WAAgB,EAAE,CAAC;gBACxB,MAAM,IAAI,KAAK,CAAC,yCAAyC,KAAK,CAAC,OAAO,EAAE,CAAC,CAAC;YAC9E,CAAC;QACL,CAAC;IACL,CAAC;IAED;;OAEG;IACK,KAAK,CAAC,uBAAuB,CAAC,OAAe;QACjD,MAAM,OAAO,GAAG,MAAM,EAAE,CAAC,OAAO,CAAC,OAAO,EAAE,EAAE,aAAa,EAAE,IAAI,EAAE,CAAC,CAAC;QAEnE,KAAK,MAAM,KAAK,IAAI,OAAO,EAAE,CAAC;YAC1B,MAAM,QAAQ,GAAG,IAAI,CAAC,IAAI,CAAC,OAAO,EAAE,KAAK,CAAC,IAAI,CAAC,CAAC;YAEhD,IAAI,KAAK,CAAC,WAAW,EAAE,EAAE,CAAC;gBACtB,MAAM,IAAI,CAAC,uBAAuB,CAAC,QAAQ,CAAC,CAAC;gBAC7C,IAAI,CAAC;oBACD,MAAM,EAAE,CAAC,KAAK,CAAC,QAAQ,CAAC,CAAC;gBAC7B,CAAC;gBAAC,OAAO,KAAU,EAAE,CAAC;oBAClB,GAAG,CAAC,KAAK,CAAC,8BAA8B,QAAQ,KAAK,KAAK,CAAC,OAAO,EAAE,CAAC,CAAC;gBAC1E,CAAC;YACL,CAAC;iBAAM,CAAC;gBACJ,IAAI,CAAC;oBACD,MAAM,EAAE,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC;gBAC9B,CAAC;gBAAC,OAAO,KAAU,EAAE,CAAC;oBAClB,GAAG,CAAC,KAAK,CAAC,yBAAyB,QAAQ,KAAK,KAAK,CAAC,OAAO,EAAE,CAAC,CAAC;gBACrE,CAAC;YACL,CAAC;QACL,CAAC;IACL,CAAC;CACJ"}