unbrowse 6.2.3 → 6.2.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.
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 = "6.2.3", BUILD_GIT_SHA = "9e5a713338ac", BUILD_CODE_HASH = "5d9ebf619c61", BUILD_RELEASE_MANIFEST_BASE64 = "eyJzY2hlbWFfdmVyc2lvbiI6MSwicmVsZWFzZV92ZXJzaW9uIjoiNi4yLjMiLCJnaXRfc2hhIjoiOWU1YTcxMzMzOGFjIiwiY29kZV9oYXNoIjoiNWQ5ZWJmNjE5YzYxIiwidHJhY2VfdmVyc2lvbiI6IjVkOWViZjYxOWM2MUA5ZTVhNzEzMzM4YWMiLCJpc3N1ZWRfYXQiOiIyMDI2LTA1LTAxVDAyOjMwOjQ4LjAyOFoifQ", BUILD_RELEASE_MANIFEST_SIGNATURE = "bNqwrgSwrp4wO_F1BoxjMaly5IyllBDYdKtvwhopR28", BUILD_DEFAULT_BACKEND_URL = "https://beta-api.unbrowse.ai";
34
+ var BUILD_RELEASE_VERSION = "6.2.4", BUILD_GIT_SHA = "99ac8cb34838", BUILD_CODE_HASH = "5d9ebf619c61", BUILD_RELEASE_MANIFEST_BASE64 = "eyJzY2hlbWFfdmVyc2lvbiI6MSwicmVsZWFzZV92ZXJzaW9uIjoiNi4yLjQiLCJnaXRfc2hhIjoiOTlhYzhjYjM0ODM4IiwiY29kZV9oYXNoIjoiNWQ5ZWJmNjE5YzYxIiwidHJhY2VfdmVyc2lvbiI6IjVkOWViZjYxOWM2MUA5OWFjOGNiMzQ4MzgiLCJpc3N1ZWRfYXQiOiIyMDI2LTA1LTAxVDAyOjQ5OjA1LjM0MVoifQ", BUILD_RELEASE_MANIFEST_SIGNATURE = "hS46LFd8Bhlfel0-T72godJTsXL0jfPKzzwvmfct0OI", BUILD_DEFAULT_BACKEND_URL = "https://beta-api.unbrowse.ai";
35
35
 
36
36
  // ../../src/version.ts
37
37
  import { createHash } from "crypto";
package/dist/mcp.js CHANGED
@@ -226,11 +226,11 @@ import { dirname, join, parse } from "path";
226
226
  import { fileURLToPath as fileURLToPath2 } from "url";
227
227
 
228
228
  // ../../src/build-info.generated.ts
229
- var BUILD_RELEASE_VERSION = "6.2.3";
230
- var BUILD_GIT_SHA = "9e5a713338ac";
229
+ var BUILD_RELEASE_VERSION = "6.2.4";
230
+ var BUILD_GIT_SHA = "99ac8cb34838";
231
231
  var BUILD_CODE_HASH = "5d9ebf619c61";
232
- var BUILD_RELEASE_MANIFEST_BASE64 = "eyJzY2hlbWFfdmVyc2lvbiI6MSwicmVsZWFzZV92ZXJzaW9uIjoiNi4yLjMiLCJnaXRfc2hhIjoiOWU1YTcxMzMzOGFjIiwiY29kZV9oYXNoIjoiNWQ5ZWJmNjE5YzYxIiwidHJhY2VfdmVyc2lvbiI6IjVkOWViZjYxOWM2MUA5ZTVhNzEzMzM4YWMiLCJpc3N1ZWRfYXQiOiIyMDI2LTA1LTAxVDAyOjMwOjQ4LjAyOFoifQ";
233
- var BUILD_RELEASE_MANIFEST_SIGNATURE = "bNqwrgSwrp4wO_F1BoxjMaly5IyllBDYdKtvwhopR28";
232
+ var BUILD_RELEASE_MANIFEST_BASE64 = "eyJzY2hlbWFfdmVyc2lvbiI6MSwicmVsZWFzZV92ZXJzaW9uIjoiNi4yLjQiLCJnaXRfc2hhIjoiOTlhYzhjYjM0ODM4IiwiY29kZV9oYXNoIjoiNWQ5ZWJmNjE5YzYxIiwidHJhY2VfdmVyc2lvbiI6IjVkOWViZjYxOWM2MUA5OWFjOGNiMzQ4MzgiLCJpc3N1ZWRfYXQiOiIyMDI2LTA1LTAxVDAyOjQ5OjA1LjM0MVoifQ";
233
+ var BUILD_RELEASE_MANIFEST_SIGNATURE = "hS46LFd8Bhlfel0-T72godJTsXL0jfPKzzwvmfct0OI";
234
234
  var BUILD_DEFAULT_BACKEND_URL = "https://beta-api.unbrowse.ai";
235
235
 
236
236
  // ../../src/version.ts
package/dist/server.js CHANGED
@@ -7285,7 +7285,7 @@ var init_capture = __esm(async () => {
7285
7285
  });
7286
7286
 
7287
7287
  // ../../src/build-info.generated.ts
7288
- var BUILD_RELEASE_VERSION = "6.2.3", BUILD_GIT_SHA = "9e5a713338ac", BUILD_CODE_HASH = "5d9ebf619c61", BUILD_RELEASE_MANIFEST_BASE64 = "eyJzY2hlbWFfdmVyc2lvbiI6MSwicmVsZWFzZV92ZXJzaW9uIjoiNi4yLjMiLCJnaXRfc2hhIjoiOWU1YTcxMzMzOGFjIiwiY29kZV9oYXNoIjoiNWQ5ZWJmNjE5YzYxIiwidHJhY2VfdmVyc2lvbiI6IjVkOWViZjYxOWM2MUA5ZTVhNzEzMzM4YWMiLCJpc3N1ZWRfYXQiOiIyMDI2LTA1LTAxVDAyOjMwOjQ4LjAyOFoifQ", BUILD_RELEASE_MANIFEST_SIGNATURE = "bNqwrgSwrp4wO_F1BoxjMaly5IyllBDYdKtvwhopR28", BUILD_DEFAULT_BACKEND_URL = "https://beta-api.unbrowse.ai";
7288
+ var BUILD_RELEASE_VERSION = "6.2.4", BUILD_GIT_SHA = "99ac8cb34838", BUILD_CODE_HASH = "5d9ebf619c61", BUILD_RELEASE_MANIFEST_BASE64 = "eyJzY2hlbWFfdmVyc2lvbiI6MSwicmVsZWFzZV92ZXJzaW9uIjoiNi4yLjQiLCJnaXRfc2hhIjoiOTlhYzhjYjM0ODM4IiwiY29kZV9oYXNoIjoiNWQ5ZWJmNjE5YzYxIiwidHJhY2VfdmVyc2lvbiI6IjVkOWViZjYxOWM2MUA5OWFjOGNiMzQ4MzgiLCJpc3N1ZWRfYXQiOiIyMDI2LTA1LTAxVDAyOjQ5OjA1LjM0MVoifQ", BUILD_RELEASE_MANIFEST_SIGNATURE = "hS46LFd8Bhlfel0-T72godJTsXL0jfPKzzwvmfct0OI", BUILD_DEFAULT_BACKEND_URL = "https://beta-api.unbrowse.ai";
7289
7289
 
7290
7290
  // ../../src/version.ts
7291
7291
  import { createHash as createHash2 } from "crypto";
@@ -17561,21 +17561,30 @@ async function executeEndpoint(skill, endpoint, params = {}, projection, options
17561
17561
  ]);
17562
17562
  let diffCount = 0;
17563
17563
  let diffIdx = -1;
17564
+ const diffIndices = [];
17564
17565
  for (let i = 0;i < capSegs.length; i++) {
17565
17566
  if (capSegs[i].toLowerCase() === ctxSegs[i].toLowerCase())
17566
17567
  continue;
17567
17568
  diffCount += 1;
17568
17569
  diffIdx = i;
17570
+ diffIndices.push(i);
17569
17571
  }
17570
- if (diffCount === 1) {
17571
- const capSeg = capSegs[diffIdx].toLowerCase();
17572
- const ctxSeg = ctxSegs[diffIdx].toLowerCase();
17573
- const capIsEntity = !SHARED.has(capSeg) && capSeg.length >= 3 && !/^\d+$/.test(capSeg);
17574
- const ctxIsEntity = !SHARED.has(ctxSeg) && ctxSeg.length >= 3 && !/^\d+$/.test(ctxSeg);
17575
- if (capIsEntity && ctxIsEntity) {
17572
+ if (diffCount >= 1) {
17573
+ const allEntityShaped = diffIndices.every((i) => {
17574
+ const a = capSegs[i].toLowerCase();
17575
+ const b = ctxSegs[i].toLowerCase();
17576
+ const aEntity = !SHARED.has(a) && a.length >= 3 && !/^\d+$/.test(a);
17577
+ const bEntity = !SHARED.has(b) && b.length >= 3 && !/^\d+$/.test(b);
17578
+ return aEntity && bEntity;
17579
+ });
17580
+ if (allEntityShaped) {
17576
17581
  const newPathname = ctx.pathname;
17577
17582
  const rewritten = `${cap.protocol}//${cap.hostname}${cap.port ? `:${cap.port}` : ""}${newPathname}${cap.search}${cap.hash}`;
17578
- log("exec", `A8 entity-substitute: ${capSegs[diffIdx]} → ${ctxSegs[diffIdx]} on ${cap.hostname}`);
17583
+ if (diffCount === 1) {
17584
+ log("exec", `A8 entity-substitute: ${capSegs[diffIdx]} → ${ctxSegs[diffIdx]} on ${cap.hostname}`);
17585
+ } else {
17586
+ log("exec", `A8 multi-entity-substitute: ${diffCount} segments on ${cap.hostname} (${diffIndices.map((i) => `${capSegs[i]}→${ctxSegs[i]}`).join(", ")})`);
17587
+ }
17579
17588
  url = rewritten;
17580
17589
  }
17581
17590
  }
@@ -21929,22 +21938,24 @@ async function resolveAndExecute(intent, params = {}, context, projection, optio
21929
21938
  const xs = ctx.pathname.split("/").filter(Boolean);
21930
21939
  if (cs.length !== xs.length || cs.length === 0)
21931
21940
  continue;
21932
- let diffCount = 0, diffIdx = -1;
21941
+ let diffCount = 0;
21942
+ const diffIndices = [];
21933
21943
  for (let i = 0;i < cs.length; i++) {
21934
21944
  if (cs[i].toLowerCase() === xs[i].toLowerCase())
21935
21945
  continue;
21936
21946
  diffCount += 1;
21937
- diffIdx = i;
21947
+ diffIndices.push(i);
21938
21948
  }
21939
- if (diffCount !== 1)
21949
+ if (diffCount === 0)
21940
21950
  continue;
21941
- const cseg = cs[diffIdx].toLowerCase();
21942
- const xseg = xs[diffIdx].toLowerCase();
21943
- if (A8_SHARED.has(cseg) || A8_SHARED.has(xseg))
21944
- continue;
21945
- if (cseg.length < 3 || xseg.length < 3)
21946
- continue;
21947
- if (/^\d+$/.test(cseg) || /^\d+$/.test(xseg))
21951
+ const allEntityShaped = diffIndices.every((i) => {
21952
+ const a = cs[i].toLowerCase();
21953
+ const b = xs[i].toLowerCase();
21954
+ const aOk = !A8_SHARED.has(a) && a.length >= 3 && !/^\d+$/.test(a);
21955
+ const bOk = !A8_SHARED.has(b) && b.length >= 3 && !/^\d+$/.test(b);
21956
+ return aOk && bOk;
21957
+ });
21958
+ if (!allEntityShaped)
21948
21959
  continue;
21949
21960
  op.url_template = `${cap.protocol}//${cap.hostname}${cap.port ? `:${cap.port}` : ""}${ctx.pathname}${cap.search}${cap.hash}`;
21950
21961
  } catch {}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "unbrowse",
3
- "version": "6.2.3",
3
+ "version": "6.2.4",
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": {