@xbrowser/cli 1.4.5 → 1.4.6

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.
@@ -20,8 +20,8 @@ import {
20
20
  saveSessionDiskMeta,
21
21
  setActivePage,
22
22
  touchSession
23
- } from "./chunk-SMRIC22G.js";
24
- import "./chunk-IDJ5NILK.js";
23
+ } from "./chunk-NQSFETTQ.js";
24
+ import "./chunk-2RHJEYWU.js";
25
25
  import "./chunk-TNEN6VQ2.js";
26
26
  import "./chunk-GDKLH7ZY.js";
27
27
  import "./chunk-KFQGP6VL.js";
@@ -20,7 +20,7 @@ import {
20
20
  saveSessionDiskMeta,
21
21
  setActivePage,
22
22
  touchSession
23
- } from "./chunk-NW3WE5JK.js";
23
+ } from "./chunk-RGS6ECTH.js";
24
24
  import "./chunk-TNEN6VQ2.js";
25
25
  import "./chunk-GDKLH7ZY.js";
26
26
  import "./chunk-KFQGP6VL.js";
@@ -20,8 +20,8 @@ import {
20
20
  saveSessionDiskMeta,
21
21
  setActivePage,
22
22
  touchSession
23
- } from "./chunk-Z6GGTJL5.js";
24
- import "./chunk-IDJ5NILK.js";
23
+ } from "./chunk-LYVU6SD3.js";
24
+ import "./chunk-2RHJEYWU.js";
25
25
  import "./chunk-TNEN6VQ2.js";
26
26
  import "./chunk-GDKLH7ZY.js";
27
27
  import "./chunk-ABXMBNQ6.js";
@@ -1165,23 +1165,17 @@ var XBPageImpl = class _XBPageImpl {
1165
1165
  headers: () => headers
1166
1166
  };
1167
1167
  }
1168
- async goBack(opts = {}) {
1168
+ async goBack(_opts = {}) {
1169
+ const prevUrl = await this.evaluate("location.href").catch(() => "");
1169
1170
  await this.evaluate("() => history.back()");
1170
- await this.waitForLoadState(opts.waitUntil ?? "domcontentloaded", opts.timeout ?? 5e3).catch(() => {
1171
- });
1172
- try {
1173
- this._url = await this.evaluate("location.href");
1174
- } catch {
1175
- }
1171
+ await this.waitForTimeout(2e3);
1172
+ this._url = await this.evaluate("location.href").catch(() => prevUrl);
1176
1173
  }
1177
- async goForward(opts = {}) {
1174
+ async goForward(_opts = {}) {
1175
+ const prevUrl = await this.evaluate("location.href").catch(() => "");
1178
1176
  await this.evaluate("() => history.forward()");
1179
- await this.waitForLoadState(opts.waitUntil ?? "domcontentloaded", opts.timeout ?? 5e3).catch(() => {
1180
- });
1181
- try {
1182
- this._url = await this.evaluate("location.href");
1183
- } catch {
1184
- }
1177
+ await this.waitForTimeout(2e3);
1178
+ this._url = await this.evaluate("location.href").catch(() => prevUrl);
1185
1179
  }
1186
1180
  async reload(opts = {}) {
1187
1181
  this._loadState = { loadFired: false, domContentFired: false, networkIdle: false };
@@ -14,7 +14,7 @@ import {
14
14
  scrollIntoView,
15
15
  waitForActionable,
16
16
  waitForNetworkIdle
17
- } from "./chunk-IDJ5NILK.js";
17
+ } from "./chunk-2RHJEYWU.js";
18
18
  import {
19
19
  connectToCDP,
20
20
  findChrome,
@@ -1164,23 +1164,17 @@ var XBPageImpl = class _XBPageImpl {
1164
1164
  headers: () => headers
1165
1165
  };
1166
1166
  }
1167
- async goBack(opts = {}) {
1167
+ async goBack(_opts = {}) {
1168
+ const prevUrl = await this.evaluate("location.href").catch(() => "");
1168
1169
  await this.evaluate("() => history.back()");
1169
- await this.waitForLoadState(opts.waitUntil ?? "domcontentloaded", opts.timeout ?? 5e3).catch(() => {
1170
- });
1171
- try {
1172
- this._url = await this.evaluate("location.href");
1173
- } catch {
1174
- }
1170
+ await this.waitForTimeout(2e3);
1171
+ this._url = await this.evaluate("location.href").catch(() => prevUrl);
1175
1172
  }
1176
- async goForward(opts = {}) {
1173
+ async goForward(_opts = {}) {
1174
+ const prevUrl = await this.evaluate("location.href").catch(() => "");
1177
1175
  await this.evaluate("() => history.forward()");
1178
- await this.waitForLoadState(opts.waitUntil ?? "domcontentloaded", opts.timeout ?? 5e3).catch(() => {
1179
- });
1180
- try {
1181
- this._url = await this.evaluate("location.href");
1182
- } catch {
1183
- }
1176
+ await this.waitForTimeout(2e3);
1177
+ this._url = await this.evaluate("location.href").catch(() => prevUrl);
1184
1178
  }
1185
1179
  async reload(opts = {}) {
1186
1180
  this._loadState = { loadFired: false, domContentFired: false, networkIdle: false };
@@ -1,6 +1,6 @@
1
1
  import {
2
2
  launch
3
- } from "./chunk-IDJ5NILK.js";
3
+ } from "./chunk-2RHJEYWU.js";
4
4
  import {
5
5
  errMsg
6
6
  } from "./chunk-GDKLH7ZY.js";
@@ -1,6 +1,6 @@
1
1
  import {
2
2
  launch
3
- } from "./chunk-IDJ5NILK.js";
3
+ } from "./chunk-2RHJEYWU.js";
4
4
  import {
5
5
  errMsg
6
6
  } from "./chunk-GDKLH7ZY.js";
@@ -1170,23 +1170,17 @@ var XBPageImpl = class _XBPageImpl {
1170
1170
  headers: () => headers
1171
1171
  };
1172
1172
  }
1173
- async goBack(opts = {}) {
1173
+ async goBack(_opts = {}) {
1174
+ const prevUrl = await this.evaluate("location.href").catch(() => "");
1174
1175
  await this.evaluate("() => history.back()");
1175
- await this.waitForLoadState(opts.waitUntil ?? "domcontentloaded", opts.timeout ?? 5e3).catch(() => {
1176
- });
1177
- try {
1178
- this._url = await this.evaluate("location.href");
1179
- } catch {
1180
- }
1176
+ await this.waitForTimeout(2e3);
1177
+ this._url = await this.evaluate("location.href").catch(() => prevUrl);
1181
1178
  }
1182
- async goForward(opts = {}) {
1179
+ async goForward(_opts = {}) {
1180
+ const prevUrl = await this.evaluate("location.href").catch(() => "");
1183
1181
  await this.evaluate("() => history.forward()");
1184
- await this.waitForLoadState(opts.waitUntil ?? "domcontentloaded", opts.timeout ?? 5e3).catch(() => {
1185
- });
1186
- try {
1187
- this._url = await this.evaluate("location.href");
1188
- } catch {
1189
- }
1182
+ await this.waitForTimeout(2e3);
1183
+ this._url = await this.evaluate("location.href").catch(() => prevUrl);
1190
1184
  }
1191
1185
  async reload(opts = {}) {
1192
1186
  this._loadState = { loadFired: false, domContentFired: false, networkIdle: false };
package/dist/cli.js CHANGED
@@ -25,7 +25,7 @@ import {
25
25
  resolveLaunchOpts,
26
26
  saveSessionDiskMeta,
27
27
  setActivePage
28
- } from "./chunk-NW3WE5JK.js";
28
+ } from "./chunk-RGS6ECTH.js";
29
29
  import "./chunk-TNEN6VQ2.js";
30
30
  import {
31
31
  forwardCommandLog,
@@ -5466,12 +5466,12 @@ registerCommandDefinition("health", []);
5466
5466
  registerCommandDefinition("scrape", ["url"]);
5467
5467
  registerCommandDefinition("structure", []);
5468
5468
  registerCommandDefinition("get-cookies", []);
5469
- registerCommandDefinition("set-cookie", []);
5469
+ registerCommandDefinition("set-cookie", ["name", "value"]);
5470
5470
  registerCommandDefinition("clear-cookies", []);
5471
5471
  registerCommandDefinition("get-local-storage", []);
5472
- registerCommandDefinition("set-local-storage", []);
5472
+ registerCommandDefinition("set-local-storage", ["key", "value"]);
5473
5473
  registerCommandDefinition("clear-local-storage", []);
5474
- registerCommandDefinition("set-viewport", []);
5474
+ registerCommandDefinition("set-viewport", ["width", "height"]);
5475
5475
  registerCommandDefinition("frames", []);
5476
5476
  registerCommandDefinition("frame", ["selector"]);
5477
5477
  registerCommandDefinition("actions", ["url"]);
@@ -7083,7 +7083,7 @@ async function executeCommand(commandName, params, sessionName = "default", extr
7083
7083
  }
7084
7084
  let targetPageOverride = null;
7085
7085
  if (_target && extraOpts?.cdpEndpoint) {
7086
- const { findTargetPage } = await import("./browser-5CM4GUZU.js");
7086
+ const { findTargetPage } = await import("./browser-SOML2EWR.js");
7087
7087
  targetPageOverride = await findTargetPage(extraOpts.cdpEndpoint, _target);
7088
7088
  if (!targetPageOverride) {
7089
7089
  return errorResult(`Target "${_target}" not found. Use 'xbrowser targets --cdp ${extraOpts.cdpEndpoint}' to list available pages.`);
@@ -10040,6 +10040,24 @@ async function handleBrowserCommand(command, args, options, sessionName, mode, c
10040
10040
  timeout: args[0] ? Number(args[0]) : options.timeout ? Number(options.timeout) : 1e3
10041
10041
  };
10042
10042
  break;
10043
+ case "set-cookie":
10044
+ cmdName = "set-cookie";
10045
+ params = {
10046
+ name: options.name || args[0],
10047
+ value: (options.value || options.v) ?? args[1],
10048
+ domain: options.domain,
10049
+ path: options.path,
10050
+ httpOnly: options.httpOnly ? Boolean(options.httpOnly) : void 0,
10051
+ secure: options.secure ? Boolean(options.secure) : void 0
10052
+ };
10053
+ break;
10054
+ case "set-local-storage":
10055
+ cmdName = "set-local-storage";
10056
+ params = {
10057
+ key: options.key || args[0],
10058
+ value: (options.value || options.v) ?? args[1]
10059
+ };
10060
+ break;
10043
10061
  default:
10044
10062
  cmdName = command;
10045
10063
  params = { ...options };
@@ -13039,7 +13057,7 @@ async function main() {
13039
13057
  const command = process.argv[2];
13040
13058
  const isLongRunning = command === "preview" || command === "serve";
13041
13059
  if (!isLongRunning) {
13042
- const { ensureProcessCanExit } = await import("./browser-5CM4GUZU.js");
13060
+ const { ensureProcessCanExit } = await import("./browser-SOML2EWR.js");
13043
13061
  await ensureProcessCanExit().catch(() => {
13044
13062
  });
13045
13063
  process.exit(exitCode);
@@ -21,8 +21,8 @@ import {
21
21
  resolveLaunchOpts,
22
22
  saveSessionDiskMeta,
23
23
  setActivePage
24
- } from "./chunk-SMRIC22G.js";
25
- import "./chunk-IDJ5NILK.js";
24
+ } from "./chunk-NQSFETTQ.js";
25
+ import "./chunk-2RHJEYWU.js";
26
26
  import "./chunk-TNEN6VQ2.js";
27
27
  import {
28
28
  getPluginLoader
@@ -5427,12 +5427,12 @@ registerCommandDefinition("health", []);
5427
5427
  registerCommandDefinition("scrape", ["url"]);
5428
5428
  registerCommandDefinition("structure", []);
5429
5429
  registerCommandDefinition("get-cookies", []);
5430
- registerCommandDefinition("set-cookie", []);
5430
+ registerCommandDefinition("set-cookie", ["name", "value"]);
5431
5431
  registerCommandDefinition("clear-cookies", []);
5432
5432
  registerCommandDefinition("get-local-storage", []);
5433
- registerCommandDefinition("set-local-storage", []);
5433
+ registerCommandDefinition("set-local-storage", ["key", "value"]);
5434
5434
  registerCommandDefinition("clear-local-storage", []);
5435
- registerCommandDefinition("set-viewport", []);
5435
+ registerCommandDefinition("set-viewport", ["width", "height"]);
5436
5436
  registerCommandDefinition("frames", []);
5437
5437
  registerCommandDefinition("frame", ["selector"]);
5438
5438
  registerCommandDefinition("actions", ["url"]);
@@ -6614,7 +6614,7 @@ async function executeCommand(commandName, params, sessionName = "default", extr
6614
6614
  }
6615
6615
  let targetPageOverride = null;
6616
6616
  if (_target && extraOpts?.cdpEndpoint) {
6617
- const { findTargetPage } = await import("./browser-V3VHXQQF.js");
6617
+ const { findTargetPage } = await import("./browser-2OK26HBS.js");
6618
6618
  targetPageOverride = await findTargetPage(extraOpts.cdpEndpoint, _target);
6619
6619
  if (!targetPageOverride) {
6620
6620
  return errorResult(`Target "${_target}" not found. Use 'xbrowser targets --cdp ${extraOpts.cdpEndpoint}' to list available pages.`);
@@ -8330,7 +8330,7 @@ function createRPCHandler() {
8330
8330
  const isNewFormat = Array.isArray(parsed.actions);
8331
8331
  if (isNewFormat) {
8332
8332
  try {
8333
- const { SessionReplayer } = await import("./session-replayer-F4ORJMCL.js");
8333
+ const { SessionReplayer } = await import("./session-replayer-YIGRIIDD.js");
8334
8334
  const replayer = new SessionReplayer({
8335
8335
  page: session.page,
8336
8336
  stepDelay: slowMo * 500,
package/dist/index.js CHANGED
@@ -81,8 +81,8 @@ import {
81
81
  resolveLaunchOpts,
82
82
  saveSessionDiskMeta,
83
83
  setActivePage
84
- } from "./chunk-Z6GGTJL5.js";
85
- import "./chunk-IDJ5NILK.js";
84
+ } from "./chunk-LYVU6SD3.js";
85
+ import "./chunk-2RHJEYWU.js";
86
86
  import "./chunk-TNEN6VQ2.js";
87
87
  import {
88
88
  errMsg
@@ -5783,12 +5783,12 @@ registerCommandDefinition("health", []);
5783
5783
  registerCommandDefinition("scrape", ["url"]);
5784
5784
  registerCommandDefinition("structure", []);
5785
5785
  registerCommandDefinition("get-cookies", []);
5786
- registerCommandDefinition("set-cookie", []);
5786
+ registerCommandDefinition("set-cookie", ["name", "value"]);
5787
5787
  registerCommandDefinition("clear-cookies", []);
5788
5788
  registerCommandDefinition("get-local-storage", []);
5789
- registerCommandDefinition("set-local-storage", []);
5789
+ registerCommandDefinition("set-local-storage", ["key", "value"]);
5790
5790
  registerCommandDefinition("clear-local-storage", []);
5791
- registerCommandDefinition("set-viewport", []);
5791
+ registerCommandDefinition("set-viewport", ["width", "height"]);
5792
5792
  registerCommandDefinition("frames", []);
5793
5793
  registerCommandDefinition("frame", ["selector"]);
5794
5794
  registerCommandDefinition("actions", ["url"]);
@@ -7403,7 +7403,7 @@ async function executeCommand(commandName, params, sessionName = "default", extr
7403
7403
  }
7404
7404
  let targetPageOverride = null;
7405
7405
  if (_target && extraOpts?.cdpEndpoint) {
7406
- const { findTargetPage } = await import("./browser-2OALOLR2.js");
7406
+ const { findTargetPage } = await import("./browser-ZTTS2SVT.js");
7407
7407
  targetPageOverride = await findTargetPage(extraOpts.cdpEndpoint, _target);
7408
7408
  if (!targetPageOverride) {
7409
7409
  return errorResult(`Target "${_target}" not found. Use 'xbrowser targets --cdp ${extraOpts.cdpEndpoint}' to list available pages.`);
@@ -10380,6 +10380,24 @@ async function handleBrowserCommand(command, args, options, sessionName, mode, c
10380
10380
  timeout: args[0] ? Number(args[0]) : options.timeout ? Number(options.timeout) : 1e3
10381
10381
  };
10382
10382
  break;
10383
+ case "set-cookie":
10384
+ cmdName = "set-cookie";
10385
+ params = {
10386
+ name: options.name || args[0],
10387
+ value: (options.value || options.v) ?? args[1],
10388
+ domain: options.domain,
10389
+ path: options.path,
10390
+ httpOnly: options.httpOnly ? Boolean(options.httpOnly) : void 0,
10391
+ secure: options.secure ? Boolean(options.secure) : void 0
10392
+ };
10393
+ break;
10394
+ case "set-local-storage":
10395
+ cmdName = "set-local-storage";
10396
+ params = {
10397
+ key: options.key || args[0],
10398
+ value: (options.value || options.v) ?? args[1]
10399
+ };
10400
+ break;
10383
10401
  default:
10384
10402
  cmdName = command;
10385
10403
  params = { ...options };
@@ -16166,7 +16184,7 @@ var DataCollector = class {
16166
16184
  return results;
16167
16185
  }
16168
16186
  async createBrowserContext() {
16169
- const { launch } = await import("./cdp-driver-VRXHK6P6.js");
16187
+ const { launch } = await import("./cdp-driver-UGO45HXR.js");
16170
16188
  const { browser } = await launch({
16171
16189
  headless: true,
16172
16190
  args: ["--no-sandbox", "--disable-setuid-sandbox"]
@@ -31,7 +31,7 @@ var SessionReplayer = class {
31
31
  if (this.opts.page) {
32
32
  this.page = this.opts.page;
33
33
  } else if (this.opts.cdpUrl) {
34
- const { launch } = await import("./cdp-driver-VRXHK6P6.js");
34
+ const { launch } = await import("./cdp-driver-UGO45HXR.js");
35
35
  const { browser } = await launch({ cdpEndpoint: this.opts.cdpUrl });
36
36
  let contexts = browser.contexts();
37
37
  for (let i = 0; i < 10 && contexts.length === 0; i++) {
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@xbrowser/cli",
3
- "version": "1.4.5",
3
+ "version": "1.4.6",
4
4
  "description": "Browser automation CLI for web scraping, headless browsing, SEO analysis, and AI agent workflows. A command-line alternative to Playwright, Puppeteer, and Selenium.",
5
5
  "type": "module",
6
6
  "bin": {