browserclaw 0.3.4 → 0.3.5

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/dist/index.cjs CHANGED
@@ -1412,7 +1412,7 @@ async function assertBrowserNavigationAllowed(opts) {
1412
1412
  throw new InvalidBrowserNavigationUrlError(`Navigation blocked: unsupported protocol "${parsed.protocol}"`);
1413
1413
  }
1414
1414
  const policy = opts.ssrfPolicy;
1415
- if (policy?.allowPrivateNetwork) return;
1415
+ if (policy?.dangerouslyAllowPrivateNetwork ?? policy?.allowPrivateNetwork ?? true) return;
1416
1416
  const allowedHostnames = [
1417
1417
  ...policy?.allowedHostnames ?? [],
1418
1418
  ...policy?.hostnameAllowlist ?? []
@@ -1423,7 +1423,7 @@ async function assertBrowserNavigationAllowed(opts) {
1423
1423
  }
1424
1424
  if (await isInternalUrlResolved(rawUrl, opts.lookupFn)) {
1425
1425
  throw new InvalidBrowserNavigationUrlError(
1426
- `Navigation to internal/loopback address blocked: "${rawUrl}". Use ssrfPolicy: { allowPrivateNetwork: true } if this is intentional.`
1426
+ `Navigation to internal/loopback address blocked: "${rawUrl}". ssrfPolicy.dangerouslyAllowPrivateNetwork is false (strict mode).`
1427
1427
  );
1428
1428
  }
1429
1429
  }
@@ -1570,7 +1570,7 @@ async function isInternalUrlResolved(url, lookupFn = promises.lookup) {
1570
1570
  async function navigateViaPlaywright(opts) {
1571
1571
  const url = String(opts.url ?? "").trim();
1572
1572
  if (!url) throw new Error("url is required");
1573
- const policy = opts.allowInternal ? { ...opts.ssrfPolicy, allowPrivateNetwork: true } : opts.ssrfPolicy;
1573
+ const policy = opts.allowInternal ? { ...opts.ssrfPolicy, dangerouslyAllowPrivateNetwork: true } : opts.ssrfPolicy;
1574
1574
  await assertBrowserNavigationAllowed({ url, ssrfPolicy: policy });
1575
1575
  const page = await getPageForTargetId({ cdpUrl: opts.cdpUrl, targetId: opts.targetId });
1576
1576
  ensurePageState(page);
@@ -1595,7 +1595,7 @@ async function listPagesViaPlaywright(opts) {
1595
1595
  async function createPageViaPlaywright(opts) {
1596
1596
  const targetUrl = (opts.url ?? "").trim() || "about:blank";
1597
1597
  if (targetUrl !== "about:blank") {
1598
- const policy = opts.allowInternal ? { ...opts.ssrfPolicy, allowPrivateNetwork: true } : opts.ssrfPolicy;
1598
+ const policy = opts.allowInternal ? { ...opts.ssrfPolicy, dangerouslyAllowPrivateNetwork: true } : opts.ssrfPolicy;
1599
1599
  await assertBrowserNavigationAllowed({ url: targetUrl, ssrfPolicy: policy });
1600
1600
  }
1601
1601
  const { browser } = await connectBrowser(opts.cdpUrl);
@@ -3019,7 +3019,7 @@ var BrowserClaw = class _BrowserClaw {
3019
3019
  static async launch(opts = {}) {
3020
3020
  const chrome = await launchChrome(opts);
3021
3021
  const cdpUrl = `http://127.0.0.1:${chrome.cdpPort}`;
3022
- const ssrfPolicy = opts.allowInternal ? { ...opts.ssrfPolicy, allowPrivateNetwork: true } : opts.ssrfPolicy;
3022
+ const ssrfPolicy = opts.allowInternal ? { ...opts.ssrfPolicy, dangerouslyAllowPrivateNetwork: true } : opts.ssrfPolicy;
3023
3023
  return new _BrowserClaw(cdpUrl, chrome, ssrfPolicy);
3024
3024
  }
3025
3025
  /**
@@ -3041,7 +3041,7 @@ var BrowserClaw = class _BrowserClaw {
3041
3041
  throw new Error(`Cannot connect to Chrome at ${cdpUrl}. Is Chrome running with --remote-debugging-port?`);
3042
3042
  }
3043
3043
  await connectBrowser(cdpUrl, opts?.authToken);
3044
- const ssrfPolicy = opts?.allowInternal ? { ...opts.ssrfPolicy, allowPrivateNetwork: true } : opts?.ssrfPolicy;
3044
+ const ssrfPolicy = opts?.allowInternal ? { ...opts.ssrfPolicy, dangerouslyAllowPrivateNetwork: true } : opts?.ssrfPolicy;
3045
3045
  return new _BrowserClaw(cdpUrl, null, ssrfPolicy);
3046
3046
  }
3047
3047
  /**