mcp-scraper 0.3.21 → 0.3.23
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/bin/api-server.cjs +58 -3
- package/dist/bin/api-server.cjs.map +1 -1
- package/dist/bin/api-server.js +2 -2
- package/dist/bin/mcp-scraper-cli.cjs +18 -1
- package/dist/bin/mcp-scraper-cli.cjs.map +1 -1
- package/dist/bin/mcp-scraper-cli.js +18 -1
- package/dist/bin/mcp-scraper-cli.js.map +1 -1
- package/dist/bin/mcp-scraper-install.cjs +1 -1
- package/dist/bin/mcp-scraper-install.cjs.map +1 -1
- package/dist/bin/mcp-scraper-install.js +1 -1
- package/dist/bin/mcp-stdio-server.cjs +1 -1
- package/dist/bin/mcp-stdio-server.cjs.map +1 -1
- package/dist/bin/mcp-stdio-server.js +2 -2
- package/dist/{chunk-7PQFU7TV.js → chunk-4CPJKKY5.js} +3 -3
- package/dist/chunk-4CPJKKY5.js.map +1 -0
- package/dist/{chunk-UO252634.js → chunk-7KKH7LA5.js} +2 -2
- package/dist/chunk-YSSWPZ2B.js +7 -0
- package/dist/chunk-YSSWPZ2B.js.map +1 -0
- package/dist/{server-K4UIE2R3.js → server-2IA3HUEC.js} +60 -5
- package/dist/server-2IA3HUEC.js.map +1 -0
- package/dist/{worker-AITQTXHM.js → worker-5K7TPBPR.js} +2 -2
- package/docs/mcp-tool-manifest.generated.json +1 -1
- package/package.json +1 -1
- package/dist/chunk-7PQFU7TV.js.map +0 -1
- package/dist/chunk-J4PSMJNZ.js +0 -7
- package/dist/chunk-J4PSMJNZ.js.map +0 -1
- package/dist/server-K4UIE2R3.js.map +0 -1
- /package/dist/{chunk-UO252634.js.map → chunk-7KKH7LA5.js.map} +0 -0
- /package/dist/{worker-AITQTXHM.js.map → worker-5K7TPBPR.js.map} +0 -0
package/dist/bin/api-server.cjs
CHANGED
|
@@ -9784,8 +9784,8 @@ var init_rates = __esm({
|
|
|
9784
9784
|
label: "Interactive browser session",
|
|
9785
9785
|
aliases: ["browser_open", "browser agent", "browser_agent", "live browser", "browse", "browser control", "interactive browser"],
|
|
9786
9786
|
credits: mcToCredits(MC_COSTS.browser_minute),
|
|
9787
|
-
unit: "per minute
|
|
9788
|
-
notes: "Metered for the
|
|
9787
|
+
unit: "per minute of use",
|
|
9788
|
+
notes: "Metered per minute of use for the whole time the browser session is open. Close the session to stop the meter; abandoned sessions are auto-closed after a short idle window."
|
|
9789
9789
|
}
|
|
9790
9790
|
];
|
|
9791
9791
|
CONCURRENCY_PRICE_ID = "price_1Ta1NRS8aAcsk3TGwsRnYbix";
|
|
@@ -23881,7 +23881,7 @@ var PACKAGE_VERSION;
|
|
|
23881
23881
|
var init_version = __esm({
|
|
23882
23882
|
"src/version.ts"() {
|
|
23883
23883
|
"use strict";
|
|
23884
|
-
PACKAGE_VERSION = "0.3.
|
|
23884
|
+
PACKAGE_VERSION = "0.3.23";
|
|
23885
23885
|
}
|
|
23886
23886
|
});
|
|
23887
23887
|
|
|
@@ -29280,6 +29280,61 @@ var init_server = __esm({
|
|
|
29280
29280
|
return c.json({ error: message }, 500);
|
|
29281
29281
|
}
|
|
29282
29282
|
});
|
|
29283
|
+
app.post("/billing/subscribe/terminal-checkout", auth2, async (c) => {
|
|
29284
|
+
try {
|
|
29285
|
+
const user = c.get("user");
|
|
29286
|
+
const raw = await c.req.json().catch(() => ({}));
|
|
29287
|
+
const tier = SUBSCRIPTION_TIER_BY_KEY[String(raw.tier ?? "")];
|
|
29288
|
+
if (!tier) return c.json({ error: "Invalid tier. Choose starter, growth, or scale.", tiers: Object.keys(SUBSCRIPTION_TIER_BY_KEY) }, 400);
|
|
29289
|
+
const secret2 = process.env.STRIPE_SECRET_KEY?.trim();
|
|
29290
|
+
if (!secret2) return c.json({ error: "Stripe is not configured." }, 503);
|
|
29291
|
+
const stripeClient = new import_stripe2.default(secret2, { apiVersion: STRIPE_API_VERSION });
|
|
29292
|
+
let customerId = user.stripe_customer_id;
|
|
29293
|
+
if (!customerId) {
|
|
29294
|
+
const customer = await stripeClient.customers.create({ email: user.email });
|
|
29295
|
+
customerId = customer.id;
|
|
29296
|
+
await setStripeCustomerId(user.id, customerId);
|
|
29297
|
+
}
|
|
29298
|
+
if (user.subscription_id) {
|
|
29299
|
+
const sub = await stripeClient.subscriptions.retrieve(user.subscription_id);
|
|
29300
|
+
const itemId = sub.items.data[0]?.id;
|
|
29301
|
+
if (itemId) {
|
|
29302
|
+
await stripeClient.subscriptions.update(user.subscription_id, {
|
|
29303
|
+
items: [{ id: itemId, price: tier.price_id }],
|
|
29304
|
+
proration_behavior: "create_prorations"
|
|
29305
|
+
});
|
|
29306
|
+
return c.json({ updated: true, tier: tier.tier, message: `Switched to ${tier.label} (prorated). Credits and concurrency update on the next invoice.` });
|
|
29307
|
+
}
|
|
29308
|
+
}
|
|
29309
|
+
const session = await stripeClient.checkout.sessions.create({
|
|
29310
|
+
customer: customerId,
|
|
29311
|
+
mode: "subscription",
|
|
29312
|
+
line_items: [{ price: tier.price_id, quantity: 1 }],
|
|
29313
|
+
...tier.intro_coupon ? { discounts: [{ coupon: tier.intro_coupon }] } : {},
|
|
29314
|
+
automatic_tax: { enabled: true },
|
|
29315
|
+
billing_address_collection: "required",
|
|
29316
|
+
customer_update: { address: "auto", name: "auto" },
|
|
29317
|
+
tax_id_collection: { enabled: true },
|
|
29318
|
+
success_url: `${appOrigin()}/billing?subscribed=${tier.tier}&source=terminal`,
|
|
29319
|
+
cancel_url: `${appOrigin()}/billing?subscribe_cancelled=1&source=terminal`
|
|
29320
|
+
});
|
|
29321
|
+
if (!session.url) return c.json({ error: "Stripe did not return a checkout URL." }, 502);
|
|
29322
|
+
return c.json({
|
|
29323
|
+
checkout_url: session.url,
|
|
29324
|
+
tier: tier.tier,
|
|
29325
|
+
label: tier.label,
|
|
29326
|
+
monthly_usd: tier.monthly_usd,
|
|
29327
|
+
credits_per_month: tier.credits_mc / 1e3,
|
|
29328
|
+
concurrency: tier.concurrency,
|
|
29329
|
+
intro: tier.intro_coupon ? "$1 first month" : null,
|
|
29330
|
+
next_step: "Open checkout_url in a browser to complete payment."
|
|
29331
|
+
});
|
|
29332
|
+
} catch (err) {
|
|
29333
|
+
const message = err instanceof Error ? err.message : "Unable to start subscription checkout.";
|
|
29334
|
+
console.error("[billing/subscribe/terminal-checkout]", message);
|
|
29335
|
+
return c.json({ error: message }, 500);
|
|
29336
|
+
}
|
|
29337
|
+
});
|
|
29283
29338
|
app.post("/billing/concurrency/cancel", requireAllowedOrigin, sessionAuth, async (c) => {
|
|
29284
29339
|
const user = c.get("sessionUser");
|
|
29285
29340
|
if (!user.concurrency_stripe_sub_id) return c.json({ error: "No active concurrency subscription." }, 404);
|