unbrowse 3.4.0 → 3.4.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 +2 -46
- package/dist/mcp.js +5 -5
- package/dist/server.js +2 -34
- package/package.json +1 -1
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.4.
|
|
34
|
+
var BUILD_RELEASE_VERSION = "3.4.1", BUILD_GIT_SHA = "7b0ee7aec348", BUILD_CODE_HASH = "3d7c45796360", BUILD_RELEASE_MANIFEST_BASE64 = "eyJzY2hlbWFfdmVyc2lvbiI6MSwicmVsZWFzZV92ZXJzaW9uIjoiMy40LjEiLCJnaXRfc2hhIjoiN2IwZWU3YWVjMzQ4IiwiY29kZV9oYXNoIjoiM2Q3YzQ1Nzk2MzYwIiwidHJhY2VfdmVyc2lvbiI6IjNkN2M0NTc5NjM2MEA3YjBlZTdhZWMzNDgiLCJpc3N1ZWRfYXQiOiIyMDI2LTA0LTA5VDAzOjI3OjIyLjg5MFoifQ", BUILD_RELEASE_MANIFEST_SIGNATURE = "Z2fi5XpHHBZygM_Fc14sq2nq-qXEwAxU6uzgqQSD7Ew", BUILD_DEFAULT_BACKEND_URL = "https://beta-api.unbrowse.ai";
|
|
35
35
|
|
|
36
36
|
// ../../src/version.ts
|
|
37
37
|
import { createHash } from "crypto";
|
|
@@ -3662,50 +3662,7 @@ async function cmdExecute(flags) {
|
|
|
3662
3662
|
}
|
|
3663
3663
|
});
|
|
3664
3664
|
if (flags.curl) {
|
|
3665
|
-
|
|
3666
|
-
if (!endpointId)
|
|
3667
|
-
die("--curl requires --endpoint");
|
|
3668
|
-
const skill = await api2("GET", `/v1/skills/${skillId}`);
|
|
3669
|
-
const ep = (skill.endpoints ?? []).find((e) => e.endpoint_id === endpointId);
|
|
3670
|
-
if (!ep)
|
|
3671
|
-
die(`Endpoint ${endpointId} not found`);
|
|
3672
|
-
let method = ep.method ?? "GET";
|
|
3673
|
-
let url = ep.url_template;
|
|
3674
|
-
let headers = { ...ep.headers_template ?? {} };
|
|
3675
|
-
let body = ep.body;
|
|
3676
|
-
try {
|
|
3677
|
-
const preview = await api2("GET", `/v1/skills/${skillId}/request-preview/${endpointId}`);
|
|
3678
|
-
if (preview.headers)
|
|
3679
|
-
headers = preview.headers;
|
|
3680
|
-
if (preview.body)
|
|
3681
|
-
body = preview.body;
|
|
3682
|
-
if (preview.url)
|
|
3683
|
-
url = preview.url;
|
|
3684
|
-
if (preview.method)
|
|
3685
|
-
method = preview.method;
|
|
3686
|
-
} catch {}
|
|
3687
|
-
const parts = ["curl"];
|
|
3688
|
-
if (method !== "GET")
|
|
3689
|
-
parts.push(`-X ${method}`);
|
|
3690
|
-
parts.push(`'${url}'`);
|
|
3691
|
-
for (const [k, v] of Object.entries(headers)) {
|
|
3692
|
-
if (/^(newrelic|traceparent|tracestate)$/i.test(k))
|
|
3693
|
-
continue;
|
|
3694
|
-
parts.push(`-H '${k}: ${v}'`);
|
|
3695
|
-
}
|
|
3696
|
-
if (body) {
|
|
3697
|
-
if (!headers["content-type"] && !headers["Content-Type"])
|
|
3698
|
-
parts.push(`-H 'Content-Type: application/json'`);
|
|
3699
|
-
parts.push(`-d '${JSON.stringify(body)}'`);
|
|
3700
|
-
}
|
|
3701
|
-
output({
|
|
3702
|
-
curl: parts.join(" \\\n "),
|
|
3703
|
-
endpoint_id: endpointId,
|
|
3704
|
-
method,
|
|
3705
|
-
url,
|
|
3706
|
-
...body ? { body } : {},
|
|
3707
|
-
headers
|
|
3708
|
-
}, !!flags.pretty);
|
|
3665
|
+
die("--curl has been removed. Use `unbrowse execute` to run endpoints through Unbrowse.");
|
|
3709
3666
|
return;
|
|
3710
3667
|
}
|
|
3711
3668
|
try {
|
|
@@ -4166,7 +4123,6 @@ var CLI_REFERENCE = {
|
|
|
4166
4123
|
{ flag: "--limit N", desc: "Cap array output to N items" },
|
|
4167
4124
|
{ flag: "--endpoint-id ID", desc: "Pick a specific endpoint" },
|
|
4168
4125
|
{ flag: "--dry-run", desc: "Preview mutations" },
|
|
4169
|
-
{ flag: "--curl", desc: "Output the captured request as a curl command (no execution)" },
|
|
4170
4126
|
{ flag: "--params '{...}'", desc: "Extra params as JSON" }
|
|
4171
4127
|
],
|
|
4172
4128
|
examples: [
|
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.4.
|
|
229
|
-
var BUILD_GIT_SHA = "
|
|
230
|
-
var BUILD_CODE_HASH = "
|
|
231
|
-
var BUILD_RELEASE_MANIFEST_BASE64 = "
|
|
232
|
-
var BUILD_RELEASE_MANIFEST_SIGNATURE = "
|
|
228
|
+
var BUILD_RELEASE_VERSION = "3.4.1";
|
|
229
|
+
var BUILD_GIT_SHA = "7b0ee7aec348";
|
|
230
|
+
var BUILD_CODE_HASH = "3d7c45796360";
|
|
231
|
+
var BUILD_RELEASE_MANIFEST_BASE64 = "eyJzY2hlbWFfdmVyc2lvbiI6MSwicmVsZWFzZV92ZXJzaW9uIjoiMy40LjEiLCJnaXRfc2hhIjoiN2IwZWU3YWVjMzQ4IiwiY29kZV9oYXNoIjoiM2Q3YzQ1Nzk2MzYwIiwidHJhY2VfdmVyc2lvbiI6IjNkN2M0NTc5NjM2MEA3YjBlZTdhZWMzNDgiLCJpc3N1ZWRfYXQiOiIyMDI2LTA0LTA5VDAzOjI3OjIyLjg5MFoifQ";
|
|
232
|
+
var BUILD_RELEASE_MANIFEST_SIGNATURE = "Z2fi5XpHHBZygM_Fc14sq2nq-qXEwAxU6uzgqQSD7Ew";
|
|
233
233
|
var BUILD_DEFAULT_BACKEND_URL = "https://beta-api.unbrowse.ai";
|
|
234
234
|
|
|
235
235
|
// ../../src/version.ts
|
package/dist/server.js
CHANGED
|
@@ -6943,7 +6943,7 @@ var init_capture = __esm(async () => {
|
|
|
6943
6943
|
});
|
|
6944
6944
|
|
|
6945
6945
|
// ../../src/build-info.generated.ts
|
|
6946
|
-
var BUILD_RELEASE_VERSION = "3.4.
|
|
6946
|
+
var BUILD_RELEASE_VERSION = "3.4.1", BUILD_GIT_SHA = "7b0ee7aec348", BUILD_CODE_HASH = "3d7c45796360", BUILD_RELEASE_MANIFEST_BASE64 = "eyJzY2hlbWFfdmVyc2lvbiI6MSwicmVsZWFzZV92ZXJzaW9uIjoiMy40LjEiLCJnaXRfc2hhIjoiN2IwZWU3YWVjMzQ4IiwiY29kZV9oYXNoIjoiM2Q3YzQ1Nzk2MzYwIiwidHJhY2VfdmVyc2lvbiI6IjNkN2M0NTc5NjM2MEA3YjBlZTdhZWMzNDgiLCJpc3N1ZWRfYXQiOiIyMDI2LTA0LTA5VDAzOjI3OjIyLjg5MFoifQ", BUILD_RELEASE_MANIFEST_SIGNATURE = "Z2fi5XpHHBZygM_Fc14sq2nq-qXEwAxU6uzgqQSD7Ew", BUILD_DEFAULT_BACKEND_URL = "https://beta-api.unbrowse.ai";
|
|
6947
6947
|
|
|
6948
6948
|
// ../../src/version.ts
|
|
6949
6949
|
import { createHash } from "crypto";
|
|
@@ -25626,39 +25626,6 @@ async function registerRoutes(app) {
|
|
|
25626
25626
|
return reply.code(500).send({ error: err.message });
|
|
25627
25627
|
}
|
|
25628
25628
|
});
|
|
25629
|
-
app.get("/v1/skills/:skill_id/request-preview/:endpoint_id", async (req, reply) => {
|
|
25630
|
-
const { skill_id, endpoint_id } = req.params;
|
|
25631
|
-
const skill = await loadSkillForMutation(skill_id);
|
|
25632
|
-
if (!skill)
|
|
25633
|
-
return reply.status(404).send({ error: "skill_not_found" });
|
|
25634
|
-
const ep = skill.endpoints.find((e) => e.endpoint_id === endpoint_id);
|
|
25635
|
-
if (!ep)
|
|
25636
|
-
return reply.status(404).send({ error: "endpoint_not_found" });
|
|
25637
|
-
let epDomain;
|
|
25638
|
-
try {
|
|
25639
|
-
epDomain = new URL(ep.url_template).hostname;
|
|
25640
|
-
} catch {
|
|
25641
|
-
epDomain = skill.domain;
|
|
25642
|
-
}
|
|
25643
|
-
const authHeaders = {};
|
|
25644
|
-
const cookies = [];
|
|
25645
|
-
const { reloadExecutionAuthState: reloadExecutionAuthState2 } = await init_execution().then(() => exports_execution);
|
|
25646
|
-
await reloadExecutionAuthState2(skill, epDomain, authHeaders, cookies);
|
|
25647
|
-
const allHeaders = { ...ep.headers_template ?? {}, ...authHeaders };
|
|
25648
|
-
if (cookies.length > 0) {
|
|
25649
|
-
allHeaders["Cookie"] = cookies.map((c) => `${c.name}=${c.value}`).join("; ");
|
|
25650
|
-
}
|
|
25651
|
-
return reply.send({
|
|
25652
|
-
method: ep.method,
|
|
25653
|
-
url: ep.url_template,
|
|
25654
|
-
headers: allHeaders,
|
|
25655
|
-
body: ep.body ?? null,
|
|
25656
|
-
query: ep.query ?? null,
|
|
25657
|
-
path_params: ep.path_params ?? null,
|
|
25658
|
-
cookies: cookies.length > 0 ? cookies.map((c) => ({ name: c.name, domain: c.domain })) : null,
|
|
25659
|
-
trigger_url: ep.trigger_url ?? null
|
|
25660
|
-
});
|
|
25661
|
-
});
|
|
25662
25629
|
app.post("/v1/auth/steal", { config: { rateLimit: { max: 30, timeWindow: "1 minute" } } }, async (req, reply) => {
|
|
25663
25630
|
const {
|
|
25664
25631
|
url,
|
|
@@ -25831,6 +25798,7 @@ async function registerRoutes(app) {
|
|
|
25831
25798
|
}
|
|
25832
25799
|
await broker.networkEnable(session.tabId).catch(() => {});
|
|
25833
25800
|
await broker.harStart(session.tabId).catch(() => {});
|
|
25801
|
+
await broker.addInitScript(session.tabId, INTERCEPTOR_SCRIPT).catch(() => {});
|
|
25834
25802
|
await broker.scriptInject(session.tabId, INTERCEPTOR_SCRIPT).catch(() => {});
|
|
25835
25803
|
session.harActive = true;
|
|
25836
25804
|
await injectInterceptor(session.tabId).catch(() => {});
|