unbrowse 3.5.0 → 3.5.1

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/cli.js CHANGED
@@ -31,7 +31,7 @@ var __promiseAll = (args) => Promise.all(args);
31
31
  var __require = /* @__PURE__ */ createRequire(import.meta.url);
32
32
 
33
33
  // ../../src/build-info.generated.ts
34
- var BUILD_RELEASE_VERSION = "3.5.0", BUILD_GIT_SHA = "e9cba5df1348", BUILD_CODE_HASH = "0e0a557dc7ea", BUILD_RELEASE_MANIFEST_BASE64 = "eyJzY2hlbWFfdmVyc2lvbiI6MSwicmVsZWFzZV92ZXJzaW9uIjoiMy41LjAiLCJnaXRfc2hhIjoiZTljYmE1ZGYxMzQ4IiwiY29kZV9oYXNoIjoiMGUwYTU1N2RjN2VhIiwidHJhY2VfdmVyc2lvbiI6IjBlMGE1NTdkYzdlYUBlOWNiYTVkZjEzNDgiLCJpc3N1ZWRfYXQiOiIyMDI2LTA0LTA5VDE2OjIyOjQyLjUwNVoifQ", BUILD_RELEASE_MANIFEST_SIGNATURE = "CgLVHsLoD0c7JKoHhWmRxRwTmb-taNmpWTQfy4oqtqQ", BUILD_DEFAULT_BACKEND_URL = "https://beta-api.unbrowse.ai";
34
+ var BUILD_RELEASE_VERSION = "3.5.1", BUILD_GIT_SHA = "e7c750e1b8d0", BUILD_CODE_HASH = "527243268ab4", BUILD_RELEASE_MANIFEST_BASE64 = "eyJzY2hlbWFfdmVyc2lvbiI6MSwicmVsZWFzZV92ZXJzaW9uIjoiMy41LjEiLCJnaXRfc2hhIjoiZTdjNzUwZTFiOGQwIiwiY29kZV9oYXNoIjoiNTI3MjQzMjY4YWI0IiwidHJhY2VfdmVyc2lvbiI6IjUyNzI0MzI2OGFiNEBlN2M3NTBlMWI4ZDAiLCJpc3N1ZWRfYXQiOiIyMDI2LTA0LTA5VDE2OjM2OjUyLjgyOFoifQ", BUILD_RELEASE_MANIFEST_SIGNATURE = "OKjQmllM1We29ojGhYIEAOhJJG5e_UuMa3d2CwuwWj8", BUILD_DEFAULT_BACKEND_URL = "https://beta-api.unbrowse.ai";
35
35
 
36
36
  // ../../src/version.ts
37
37
  import { createHash } from "crypto";
@@ -1468,6 +1468,131 @@ function checkWalletConfigured2() {
1468
1468
  }
1469
1469
  var init_wallet2 = () => {};
1470
1470
 
1471
+ // ../../src/version.ts
1472
+ var exports_version = {};
1473
+ __export(exports_version, {
1474
+ resolveCodeHashSourceDir: () => resolveCodeHashSourceDir2,
1475
+ getPackageVersionForModuleDir: () => getPackageVersionForModuleDir2,
1476
+ getEmbeddedReleaseVersion: () => getEmbeddedReleaseVersion2,
1477
+ computeCodeHashForDir: () => computeCodeHashForDir2,
1478
+ TRACE_VERSION: () => TRACE_VERSION2,
1479
+ RELEASE_MANIFEST_SIGNATURE: () => RELEASE_MANIFEST_SIGNATURE2,
1480
+ RELEASE_MANIFEST_BASE64: () => RELEASE_MANIFEST_BASE642,
1481
+ PACKAGE_VERSION: () => PACKAGE_VERSION2,
1482
+ GIT_SHA: () => GIT_SHA2,
1483
+ DEFAULT_BACKEND_URL: () => DEFAULT_BACKEND_URL2,
1484
+ CODE_HASH: () => CODE_HASH2
1485
+ });
1486
+ import { createHash as createHash3 } from "crypto";
1487
+ import { existsSync as existsSync15, readFileSync as readFileSync10, readdirSync as readdirSync4 } from "fs";
1488
+ import { dirname as dirname4, join as join12, parse as parse2 } from "path";
1489
+ import { fileURLToPath as fileURLToPath4 } from "url";
1490
+ function collectTsFiles2(dir) {
1491
+ const results = [];
1492
+ for (const entry of readdirSync4(dir, { withFileTypes: true })) {
1493
+ const full = join12(dir, entry.name);
1494
+ if (entry.isDirectory() && entry.name !== "node_modules") {
1495
+ results.push(...collectTsFiles2(full));
1496
+ } else if (entry.name.endsWith(".ts")) {
1497
+ results.push(full);
1498
+ }
1499
+ }
1500
+ return results;
1501
+ }
1502
+ function hashFiles2(srcDir, files) {
1503
+ const hash = createHash3("sha256");
1504
+ for (const file of files) {
1505
+ hash.update(file.slice(srcDir.length));
1506
+ hash.update(readFileSync10(file, "utf-8"));
1507
+ }
1508
+ return hash.digest("hex").slice(0, 12);
1509
+ }
1510
+ function resolveCodeHashSourceDir2(moduleDir) {
1511
+ const candidates = [
1512
+ moduleDir,
1513
+ join12(moduleDir, "runtime-src"),
1514
+ join12(moduleDir, "..", "runtime-src"),
1515
+ join12(moduleDir, "src"),
1516
+ join12(moduleDir, "..", "src")
1517
+ ];
1518
+ for (const candidate of candidates) {
1519
+ try {
1520
+ if (!existsSync15(candidate))
1521
+ continue;
1522
+ const files = collectTsFiles2(candidate);
1523
+ if (files.length > 0)
1524
+ return candidate;
1525
+ } catch {}
1526
+ }
1527
+ return null;
1528
+ }
1529
+ function computeCodeHashForDir2(srcDir) {
1530
+ const files = collectTsFiles2(srcDir).sort();
1531
+ if (files.length === 0)
1532
+ throw new Error(`No TypeScript sources found in ${srcDir}`);
1533
+ return hashFiles2(srcDir, files);
1534
+ }
1535
+ function computeCodeHash2() {
1536
+ try {
1537
+ const srcDir = resolveCodeHashSourceDir2(MODULE_DIR2);
1538
+ if (srcDir)
1539
+ return computeCodeHashForDir2(srcDir);
1540
+ } catch {}
1541
+ const pkgVersion = getPackageVersion2();
1542
+ if (pkgVersion !== "unknown") {
1543
+ return createHash3("sha256").update(`package:${pkgVersion}`).digest("hex").slice(0, 12);
1544
+ }
1545
+ return "compiled";
1546
+ }
1547
+ function getGitSha2() {
1548
+ return BUILD_GIT_SHA?.trim() || "unknown";
1549
+ }
1550
+ function decodeBase64UrlJson2(value) {
1551
+ try {
1552
+ if (!value)
1553
+ return null;
1554
+ return JSON.parse(Buffer.from(value, "base64url").toString("utf-8"));
1555
+ } catch {
1556
+ return null;
1557
+ }
1558
+ }
1559
+ function getEmbeddedReleaseVersion2() {
1560
+ if (BUILD_RELEASE_VERSION?.trim())
1561
+ return BUILD_RELEASE_VERSION.trim();
1562
+ const manifest = decodeBase64UrlJson2(BUILD_RELEASE_MANIFEST_BASE64?.trim() || "");
1563
+ return typeof manifest?.release_version === "string" && manifest.release_version.trim() ? manifest.release_version.trim() : null;
1564
+ }
1565
+ function getPackageVersionForModuleDir2(moduleDir) {
1566
+ let dir = moduleDir;
1567
+ const root = parse2(dir).root;
1568
+ while (true) {
1569
+ try {
1570
+ const pkg = JSON.parse(readFileSync10(join12(dir, "package.json"), "utf-8"));
1571
+ return typeof pkg.version === "string" ? pkg.version : "unknown";
1572
+ } catch {}
1573
+ if (dir === root)
1574
+ return "unknown";
1575
+ dir = dirname4(dir);
1576
+ }
1577
+ }
1578
+ function getPackageVersion2() {
1579
+ const packageVersion = getPackageVersionForModuleDir2(MODULE_DIR2);
1580
+ if (packageVersion !== "unknown")
1581
+ return packageVersion;
1582
+ return getEmbeddedReleaseVersion2() ?? "unknown";
1583
+ }
1584
+ var MODULE_DIR2, CODE_HASH2, GIT_SHA2, PACKAGE_VERSION2, DEFAULT_BACKEND_URL2, TRACE_VERSION2, RELEASE_MANIFEST_BASE642, RELEASE_MANIFEST_SIGNATURE2;
1585
+ var init_version2 = __esm(() => {
1586
+ MODULE_DIR2 = dirname4(fileURLToPath4(import.meta.url));
1587
+ CODE_HASH2 = BUILD_CODE_HASH?.trim() || computeCodeHash2();
1588
+ GIT_SHA2 = getGitSha2();
1589
+ PACKAGE_VERSION2 = getPackageVersion2();
1590
+ DEFAULT_BACKEND_URL2 = BUILD_DEFAULT_BACKEND_URL?.trim() || "https://beta-api.unbrowse.ai";
1591
+ TRACE_VERSION2 = `${CODE_HASH2}@${GIT_SHA2}`;
1592
+ RELEASE_MANIFEST_BASE642 = BUILD_RELEASE_MANIFEST_BASE64?.trim() || "";
1593
+ RELEASE_MANIFEST_SIGNATURE2 = BUILD_RELEASE_MANIFEST_SIGNATURE?.trim() || "";
1594
+ });
1595
+
1471
1596
  // ../../src/auth/agent-mail.ts
1472
1597
  var exports_agent_mail = {};
1473
1598
  __export(exports_agent_mail, {
@@ -1594,19 +1719,19 @@ __export(exports_browser_cookies, {
1594
1719
  });
1595
1720
  import { execFileSync as execFileSync4 } from "node:child_process";
1596
1721
  import { createDecipheriv, pbkdf2Sync } from "node:crypto";
1597
- import { copyFileSync, existsSync as existsSync15, mkdtempSync, readdirSync as readdirSync4, rmSync } from "node:fs";
1722
+ import { copyFileSync, existsSync as existsSync16, mkdtempSync, readdirSync as readdirSync5, rmSync } from "node:fs";
1598
1723
  import { tmpdir, homedir as homedir7, platform } from "node:os";
1599
- import { join as join12 } from "node:path";
1724
+ import { join as join13 } from "node:path";
1600
1725
  function getChromeUserDataDir() {
1601
1726
  const home = homedir7();
1602
1727
  if (platform() === "darwin") {
1603
- return join12(home, "Library", "Application Support", "Google", "Chrome");
1728
+ return join13(home, "Library", "Application Support", "Google", "Chrome");
1604
1729
  }
1605
1730
  if (platform() === "win32") {
1606
- const appData = process.env.LOCALAPPDATA ?? join12(home, "AppData", "Local");
1607
- return join12(appData, "Google", "Chrome", "User Data");
1731
+ const appData = process.env.LOCALAPPDATA ?? join13(home, "AppData", "Local");
1732
+ return join13(appData, "Google", "Chrome", "User Data");
1608
1733
  }
1609
- return join12(home, ".config", "google-chrome");
1734
+ return join13(home, ".config", "google-chrome");
1610
1735
  }
1611
1736
  function resolveChromiumCookiesPath(opts) {
1612
1737
  if (opts?.cookieDbPath) {
@@ -1615,45 +1740,45 @@ function resolveChromiumCookiesPath(opts) {
1615
1740
  const profileDir = opts?.profile || "Default";
1616
1741
  const userDataDir = (opts?.userDataDir || getChromeUserDataDir()).replace(/^~\//, homedir7() + "/");
1617
1742
  const candidates = [
1618
- join12(userDataDir, profileDir, "Network", "Cookies"),
1619
- join12(userDataDir, profileDir, "Cookies"),
1620
- join12(userDataDir, "Network", "Cookies"),
1621
- join12(userDataDir, "Cookies")
1743
+ join13(userDataDir, profileDir, "Network", "Cookies"),
1744
+ join13(userDataDir, profileDir, "Cookies"),
1745
+ join13(userDataDir, "Network", "Cookies"),
1746
+ join13(userDataDir, "Cookies")
1622
1747
  ];
1623
- return candidates.find((candidate) => existsSync15(candidate)) ?? candidates[0] ?? null;
1748
+ return candidates.find((candidate) => existsSync16(candidate)) ?? candidates[0] ?? null;
1624
1749
  }
1625
1750
  function getFirefoxProfilesRoot() {
1626
1751
  const home = homedir7();
1627
1752
  if (platform() === "darwin") {
1628
- return join12(home, "Library", "Application Support", "Firefox", "Profiles");
1753
+ return join13(home, "Library", "Application Support", "Firefox", "Profiles");
1629
1754
  }
1630
1755
  if (platform() === "linux") {
1631
- return join12(home, ".mozilla", "firefox");
1756
+ return join13(home, ".mozilla", "firefox");
1632
1757
  }
1633
1758
  if (platform() === "win32") {
1634
1759
  const appData = process.env.APPDATA;
1635
1760
  if (!appData)
1636
1761
  return null;
1637
- return join12(appData, "Mozilla", "Firefox", "Profiles");
1762
+ return join13(appData, "Mozilla", "Firefox", "Profiles");
1638
1763
  }
1639
1764
  return null;
1640
1765
  }
1641
1766
  function pickFirefoxProfile(profilesRoot, profile) {
1642
1767
  if (profile) {
1643
- const candidate2 = join12(profilesRoot, profile, "cookies.sqlite");
1644
- return existsSync15(candidate2) ? candidate2 : null;
1768
+ const candidate2 = join13(profilesRoot, profile, "cookies.sqlite");
1769
+ return existsSync16(candidate2) ? candidate2 : null;
1645
1770
  }
1646
- const entries = readdirSync4(profilesRoot, { withFileTypes: true });
1771
+ const entries = readdirSync5(profilesRoot, { withFileTypes: true });
1647
1772
  const defaultRelease = entries.find((e) => e.isDirectory() && e.name.includes("default-release"));
1648
1773
  const targetDir = defaultRelease?.name ?? entries.find((e) => e.isDirectory())?.name;
1649
1774
  if (!targetDir)
1650
1775
  return null;
1651
- const candidate = join12(profilesRoot, targetDir, "cookies.sqlite");
1652
- return existsSync15(candidate) ? candidate : null;
1776
+ const candidate = join13(profilesRoot, targetDir, "cookies.sqlite");
1777
+ return existsSync16(candidate) ? candidate : null;
1653
1778
  }
1654
1779
  function getFirefoxCookiesPath(profile) {
1655
1780
  const profilesRoot = getFirefoxProfilesRoot();
1656
- if (!profilesRoot || !existsSync15(profilesRoot))
1781
+ if (!profilesRoot || !existsSync16(profilesRoot))
1657
1782
  return null;
1658
1783
  return pickFirefoxProfile(profilesRoot, profile);
1659
1784
  }
@@ -1722,13 +1847,13 @@ function decodeChromiumCookieValue(rawValue, encryptedHex, opts) {
1722
1847
  return decryptChromiumValue(encryptedHex, opts);
1723
1848
  }
1724
1849
  function withTempCopy(dbPath, fn) {
1725
- const tempDir = mkdtempSync(join12(tmpdir(), "unbrowse-cookies-"));
1726
- const tempDb = join12(tempDir, "cookies.db");
1850
+ const tempDir = mkdtempSync(join13(tmpdir(), "unbrowse-cookies-"));
1851
+ const tempDb = join13(tempDir, "cookies.db");
1727
1852
  try {
1728
1853
  copyFileSync(dbPath, tempDb);
1729
1854
  for (const ext of ["-wal", "-shm"]) {
1730
1855
  const src = dbPath + ext;
1731
- if (existsSync15(src))
1856
+ if (existsSync16(src))
1732
1857
  copyFileSync(src, tempDb + ext);
1733
1858
  }
1734
1859
  return fn(tempDb);
@@ -1773,7 +1898,7 @@ function extractFromChromium(domain, opts) {
1773
1898
  const warnings = [];
1774
1899
  const dbPath = resolveChromiumCookiesPath(opts);
1775
1900
  const sourceLabel = opts?.browserName || "Chromium";
1776
- if (!dbPath || !existsSync15(dbPath)) {
1901
+ if (!dbPath || !existsSync16(dbPath)) {
1777
1902
  warnings.push(`${sourceLabel} cookies DB not found${dbPath ? ` at ${dbPath}` : ""}`);
1778
1903
  return { cookies: [], source: null, warnings };
1779
1904
  }
@@ -1891,8 +2016,8 @@ function scanAllBrowserSessions(domain) {
1891
2016
  const results = [];
1892
2017
  const home = homedir7();
1893
2018
  for (const browser of CHROMIUM_BROWSERS) {
1894
- const userDataDir = platform() === "darwin" ? join12(home, "Library", "Application Support", browser.macPath) : platform() === "win32" ? join12(process.env.LOCALAPPDATA ?? join12(home, "AppData", "Local"), browser.macPath, "User Data") : join12(home, ".config", browser.macPath.toLowerCase());
1895
- if (!existsSync15(userDataDir))
2019
+ const userDataDir = platform() === "darwin" ? join13(home, "Library", "Application Support", browser.macPath) : platform() === "win32" ? join13(process.env.LOCALAPPDATA ?? join13(home, "AppData", "Local"), browser.macPath, "User Data") : join13(home, ".config", browser.macPath.toLowerCase());
2020
+ if (!existsSync16(userDataDir))
1896
2021
  continue;
1897
2022
  try {
1898
2023
  const result = extractFromChromium(domain, {
@@ -4913,7 +5038,9 @@ async function cmdEarnings(flags) {
4913
5038
  die("No API key found. Run `unbrowse setup` first.");
4914
5039
  }
4915
5040
  try {
4916
- const resp = await fetch(`${BASE_URL.replace("localhost:1998", "beta-api.unbrowse.ai")}/v1/credits/balance`, {
5041
+ const { DEFAULT_BACKEND_URL: DEFAULT_BACKEND_URL3 } = await Promise.resolve().then(() => (init_version2(), exports_version));
5042
+ const backendUrl = process.env.UNBROWSE_BACKEND_URL || DEFAULT_BACKEND_URL3;
5043
+ const resp = await fetch(`${backendUrl}/v1/credits/balance`, {
4917
5044
  headers: { Authorization: `Bearer ${apiKey}` }
4918
5045
  });
4919
5046
  if (!resp.ok) {
@@ -5339,7 +5466,7 @@ async function cmdLoginAuto(flags) {
5339
5466
  async function cmdSessionsScan(flags) {
5340
5467
  const domain = flags.domain;
5341
5468
  const { scanAllBrowserSessions: scanAllBrowserSessions2, findBestBrowserSession: findBestBrowserSession2 } = await Promise.resolve().then(() => (init_browser_cookies(), exports_browser_cookies));
5342
- const { execFileSync: execFileSync5, existsSync: existsSync16 } = await import("./cli-imports.js").catch(() => ({ execFileSync: __require("child_process").execFileSync, existsSync: __require("fs").existsSync }));
5469
+ const { execFileSync: execFileSync5, existsSync: existsSync17 } = await import("./cli-imports.js").catch(() => ({ execFileSync: __require("child_process").execFileSync, existsSync: __require("fs").existsSync }));
5343
5470
  if (domain) {
5344
5471
  const sessions = scanAllBrowserSessions2(domain);
5345
5472
  if (sessions.length === 0) {
@@ -5361,13 +5488,13 @@ async function cmdSessionsScan(flags) {
5361
5488
  return;
5362
5489
  }
5363
5490
  const home = __require("os").homedir();
5364
- const { join: join13 } = __require("path");
5491
+ const { join: join14 } = __require("path");
5365
5492
  const browsers = [
5366
- { name: "Chrome", path: join13(home, "Library/Application Support/Google/Chrome/Default/Cookies") },
5367
- { name: "Dia", path: join13(home, "Library/Application Support/Dia/User Data/Default/Cookies") },
5368
- { name: "Arc", path: join13(home, "Library/Application Support/Arc/User Data/Default/Cookies") },
5369
- { name: "Brave", path: join13(home, "Library/Application Support/BraveSoftware/Brave-Browser/Default/Cookies") },
5370
- { name: "Edge", path: join13(home, "Library/Application Support/Microsoft Edge/Default/Cookies") }
5493
+ { name: "Chrome", path: join14(home, "Library/Application Support/Google/Chrome/Default/Cookies") },
5494
+ { name: "Dia", path: join14(home, "Library/Application Support/Dia/User Data/Default/Cookies") },
5495
+ { name: "Arc", path: join14(home, "Library/Application Support/Arc/User Data/Default/Cookies") },
5496
+ { name: "Brave", path: join14(home, "Library/Application Support/BraveSoftware/Brave-Browser/Default/Cookies") },
5497
+ { name: "Edge", path: join14(home, "Library/Application Support/Microsoft Edge/Default/Cookies") }
5371
5498
  ];
5372
5499
  const allSessions = [];
5373
5500
  for (const b of browsers) {
package/dist/mcp.js CHANGED
@@ -225,11 +225,11 @@ import { dirname, join, parse } from "path";
225
225
  import { fileURLToPath as fileURLToPath2 } from "url";
226
226
 
227
227
  // ../../src/build-info.generated.ts
228
- var BUILD_RELEASE_VERSION = "3.5.0";
229
- var BUILD_GIT_SHA = "e9cba5df1348";
230
- var BUILD_CODE_HASH = "0e0a557dc7ea";
231
- var BUILD_RELEASE_MANIFEST_BASE64 = "eyJzY2hlbWFfdmVyc2lvbiI6MSwicmVsZWFzZV92ZXJzaW9uIjoiMy41LjAiLCJnaXRfc2hhIjoiZTljYmE1ZGYxMzQ4IiwiY29kZV9oYXNoIjoiMGUwYTU1N2RjN2VhIiwidHJhY2VfdmVyc2lvbiI6IjBlMGE1NTdkYzdlYUBlOWNiYTVkZjEzNDgiLCJpc3N1ZWRfYXQiOiIyMDI2LTA0LTA5VDE2OjIyOjQyLjUwNVoifQ";
232
- var BUILD_RELEASE_MANIFEST_SIGNATURE = "CgLVHsLoD0c7JKoHhWmRxRwTmb-taNmpWTQfy4oqtqQ";
228
+ var BUILD_RELEASE_VERSION = "3.5.1";
229
+ var BUILD_GIT_SHA = "e7c750e1b8d0";
230
+ var BUILD_CODE_HASH = "527243268ab4";
231
+ var BUILD_RELEASE_MANIFEST_BASE64 = "eyJzY2hlbWFfdmVyc2lvbiI6MSwicmVsZWFzZV92ZXJzaW9uIjoiMy41LjEiLCJnaXRfc2hhIjoiZTdjNzUwZTFiOGQwIiwiY29kZV9oYXNoIjoiNTI3MjQzMjY4YWI0IiwidHJhY2VfdmVyc2lvbiI6IjUyNzI0MzI2OGFiNEBlN2M3NTBlMWI4ZDAiLCJpc3N1ZWRfYXQiOiIyMDI2LTA0LTA5VDE2OjM2OjUyLjgyOFoifQ";
232
+ var BUILD_RELEASE_MANIFEST_SIGNATURE = "OKjQmllM1We29ojGhYIEAOhJJG5e_UuMa3d2CwuwWj8";
233
233
  var BUILD_DEFAULT_BACKEND_URL = "https://beta-api.unbrowse.ai";
234
234
 
235
235
  // ../../src/version.ts
package/dist/server.js CHANGED
@@ -7091,7 +7091,7 @@ var init_capture = __esm(async () => {
7091
7091
  });
7092
7092
 
7093
7093
  // ../../src/build-info.generated.ts
7094
- var BUILD_RELEASE_VERSION = "3.5.0", BUILD_GIT_SHA = "e9cba5df1348", BUILD_CODE_HASH = "0e0a557dc7ea", BUILD_RELEASE_MANIFEST_BASE64 = "eyJzY2hlbWFfdmVyc2lvbiI6MSwicmVsZWFzZV92ZXJzaW9uIjoiMy41LjAiLCJnaXRfc2hhIjoiZTljYmE1ZGYxMzQ4IiwiY29kZV9oYXNoIjoiMGUwYTU1N2RjN2VhIiwidHJhY2VfdmVyc2lvbiI6IjBlMGE1NTdkYzdlYUBlOWNiYTVkZjEzNDgiLCJpc3N1ZWRfYXQiOiIyMDI2LTA0LTA5VDE2OjIyOjQyLjUwNVoifQ", BUILD_RELEASE_MANIFEST_SIGNATURE = "CgLVHsLoD0c7JKoHhWmRxRwTmb-taNmpWTQfy4oqtqQ", BUILD_DEFAULT_BACKEND_URL = "https://beta-api.unbrowse.ai";
7094
+ var BUILD_RELEASE_VERSION = "3.5.1", BUILD_GIT_SHA = "e7c750e1b8d0", BUILD_CODE_HASH = "527243268ab4", BUILD_RELEASE_MANIFEST_BASE64 = "eyJzY2hlbWFfdmVyc2lvbiI6MSwicmVsZWFzZV92ZXJzaW9uIjoiMy41LjEiLCJnaXRfc2hhIjoiZTdjNzUwZTFiOGQwIiwiY29kZV9oYXNoIjoiNTI3MjQzMjY4YWI0IiwidHJhY2VfdmVyc2lvbiI6IjUyNzI0MzI2OGFiNEBlN2M3NTBlMWI4ZDAiLCJpc3N1ZWRfYXQiOiIyMDI2LTA0LTA5VDE2OjM2OjUyLjgyOFoifQ", BUILD_RELEASE_MANIFEST_SIGNATURE = "OKjQmllM1We29ojGhYIEAOhJJG5e_UuMa3d2CwuwWj8", BUILD_DEFAULT_BACKEND_URL = "https://beta-api.unbrowse.ai";
7095
7095
 
7096
7096
  // ../../src/version.ts
7097
7097
  import { createHash } from "crypto";
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "unbrowse",
3
- "version": "3.5.0",
3
+ "version": "3.5.1",
4
4
  "description": "Reverse-engineer any website into reusable API skills. Zero-dep single binary with embedded browser engine.",
5
5
  "type": "module",
6
6
  "bin": {