mcp-scraper 0.66.0 → 0.66.2
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/CHANGELOG.md +32 -1
- package/README.md +2 -2
- package/dist/{analytics-repository-IKE53S3E.js → analytics-repository-RUXBFSFX.js} +1 -2
- package/dist/bin/api-server.cjs +2898 -2075
- package/dist/bin/api-server.js +4 -5
- package/dist/bin/mcp-scraper-cli.cjs +1 -2
- package/dist/bin/mcp-scraper-cli.js +6 -7
- package/dist/bin/mcp-scraper-install.cjs +7 -3
- package/dist/bin/mcp-scraper-install.js +2 -3
- package/dist/bin/mcp-stdio-server.cjs +1669 -97
- package/dist/bin/mcp-stdio-server.js +11 -12
- package/dist/bin/paa-harvest.cjs +0 -1
- package/dist/bin/paa-harvest.js +4 -5
- package/dist/{chunk-VIWT35S6.js → chunk-3EYALCYK.js} +1 -2
- package/dist/{chunk-4LINSJNI.js → chunk-3TKKJQB4.js} +1 -2
- package/dist/{chunk-4VG3NUUY.js → chunk-55B3T5L2.js} +23 -28
- package/dist/{chunk-FG6LJGJ7.js → chunk-77LQV73B.js} +0 -1
- package/dist/{chunk-N54JS5WP.js → chunk-ABYBPODM.js} +1 -2
- package/dist/chunk-ALEBMPOW.js +6 -0
- package/dist/{chunk-2XUXVKT4.js → chunk-AYJHI2FK.js} +0 -1
- package/dist/{chunk-AAGVOPP5.js → chunk-CETDPNMZ.js} +24 -25
- package/dist/{chunk-5BEPOFKG.js → chunk-CNLLTD5B.js} +0 -1
- package/dist/{chunk-P7YFUNKR.js → chunk-DBWWIK7O.js} +3 -4
- package/dist/{chunk-EKJ65E3Z.js → chunk-DNM65UCK.js} +0 -1
- package/dist/{chunk-3YSEJTMC.js → chunk-GGZEC22A.js} +0 -1
- package/dist/{chunk-AJ4YGHG2.js → chunk-K7Y27ND3.js} +3 -14
- package/dist/{chunk-XPFRP5QT.js → chunk-KBTUPRTF.js} +3 -4
- package/dist/{chunk-5PIO7QBG.js → chunk-KXRWY7DZ.js} +3 -4
- package/dist/{chunk-DCWXVAQT.js → chunk-OZDCTNUV.js} +6 -2
- package/dist/{chunk-BIUQ6O2Y.js → chunk-OZJMVCDK.js} +0 -1
- package/dist/{chunk-X7UG2JCF.js → chunk-PGJQDMC2.js} +1 -2
- package/dist/{chunk-DKIG2TEE.js → chunk-PMCT2YQM.js} +2 -3
- package/dist/{chunk-G3P3ZDB4.js → chunk-RJ7JVYKU.js} +0 -1
- package/dist/{chunk-WD73OFL3.js → chunk-VXLU74YZ.js} +1 -2
- package/dist/{chunk-SRRI2HJL.js → chunk-YKL3O7IU.js} +1742 -104
- package/dist/{db-BRI465XQ.js → db-4RVZ3NYZ.js} +9 -10
- package/dist/{extract-bundle-QAI7JYV2.js → extract-bundle-EA5URLXN.js} +8 -9
- package/dist/index.cjs +0 -1
- package/dist/index.js +4 -5
- package/dist/{lead-list-enrichment-repository-ODWGRVCQ.js → lead-list-enrichment-repository-IBXNWM6H.js} +2 -3
- package/dist/{location-data-repository-67MMEVZQ.js → location-data-repository-WHHQUCUI.js} +3 -4
- package/dist/{server-MTKWBSAR.js → server-Q7VYGSGQ.js} +450 -1264
- package/dist/{site-extract-repository-J3RH3MOS.js → site-extract-repository-NTM4MDQN.js} +4 -5
- package/dist/{worker-K7MPPQ7I.js → worker-UTBUWEXQ.js} +8 -9
- package/package.json +4 -1
- package/dist/analytics-repository-IKE53S3E.js.map +0 -1
- package/dist/bin/api-server.cjs.map +0 -1
- package/dist/bin/api-server.js.map +0 -1
- package/dist/bin/mcp-scraper-cli.cjs.map +0 -1
- package/dist/bin/mcp-scraper-cli.js.map +0 -1
- package/dist/bin/mcp-scraper-install.cjs.map +0 -1
- package/dist/bin/mcp-scraper-install.js.map +0 -1
- package/dist/bin/mcp-stdio-server.cjs.map +0 -1
- package/dist/bin/mcp-stdio-server.js.map +0 -1
- package/dist/bin/paa-harvest.cjs.map +0 -1
- package/dist/bin/paa-harvest.js.map +0 -1
- package/dist/chunk-2XUXVKT4.js.map +0 -1
- package/dist/chunk-3YSEJTMC.js.map +0 -1
- package/dist/chunk-4LINSJNI.js.map +0 -1
- package/dist/chunk-4VG3NUUY.js.map +0 -1
- package/dist/chunk-5BEPOFKG.js.map +0 -1
- package/dist/chunk-5PIO7QBG.js.map +0 -1
- package/dist/chunk-AAGVOPP5.js.map +0 -1
- package/dist/chunk-AJ4YGHG2.js.map +0 -1
- package/dist/chunk-BIUQ6O2Y.js.map +0 -1
- package/dist/chunk-DCWXVAQT.js.map +0 -1
- package/dist/chunk-DKIG2TEE.js.map +0 -1
- package/dist/chunk-EKJ65E3Z.js.map +0 -1
- package/dist/chunk-FG6LJGJ7.js.map +0 -1
- package/dist/chunk-G3P3ZDB4.js.map +0 -1
- package/dist/chunk-HDYOVGC6.js +0 -7
- package/dist/chunk-HDYOVGC6.js.map +0 -1
- package/dist/chunk-N54JS5WP.js.map +0 -1
- package/dist/chunk-P7YFUNKR.js.map +0 -1
- package/dist/chunk-SRRI2HJL.js.map +0 -1
- package/dist/chunk-VIWT35S6.js.map +0 -1
- package/dist/chunk-WD73OFL3.js.map +0 -1
- package/dist/chunk-X7UG2JCF.js.map +0 -1
- package/dist/chunk-XPFRP5QT.js.map +0 -1
- package/dist/db-BRI465XQ.js.map +0 -1
- package/dist/extract-bundle-QAI7JYV2.js.map +0 -1
- package/dist/index.cjs.map +0 -1
- package/dist/index.js.map +0 -1
- package/dist/lead-list-enrichment-repository-ODWGRVCQ.js.map +0 -1
- package/dist/location-data-repository-67MMEVZQ.js.map +0 -1
- package/dist/server-MTKWBSAR.js.map +0 -1
- package/dist/site-extract-repository-J3RH3MOS.js.map +0 -1
- package/dist/worker-K7MPPQ7I.js.map +0 -1
|
@@ -13,21 +13,21 @@ import {
|
|
|
13
13
|
registerScheduledResultsMcpTools,
|
|
14
14
|
registerSerpIntelligenceCaptureTools,
|
|
15
15
|
resolveDeploymentProfile
|
|
16
|
-
} from "../chunk-
|
|
17
|
-
import "../chunk-
|
|
18
|
-
import "../chunk-
|
|
19
|
-
import "../chunk-
|
|
16
|
+
} from "../chunk-YKL3O7IU.js";
|
|
17
|
+
import "../chunk-PGJQDMC2.js";
|
|
18
|
+
import "../chunk-3EYALCYK.js";
|
|
19
|
+
import "../chunk-3TKKJQB4.js";
|
|
20
20
|
import {
|
|
21
21
|
renderInstallTerminal
|
|
22
|
-
} from "../chunk-
|
|
23
|
-
import "../chunk-
|
|
24
|
-
import "../chunk-
|
|
22
|
+
} from "../chunk-OZDCTNUV.js";
|
|
23
|
+
import "../chunk-VXLU74YZ.js";
|
|
24
|
+
import "../chunk-GGZEC22A.js";
|
|
25
25
|
import {
|
|
26
26
|
PACKAGE_VERSION
|
|
27
|
-
} from "../chunk-
|
|
28
|
-
import "../chunk-
|
|
29
|
-
import "../chunk-
|
|
30
|
-
import "../chunk-
|
|
27
|
+
} from "../chunk-ALEBMPOW.js";
|
|
28
|
+
import "../chunk-DNM65UCK.js";
|
|
29
|
+
import "../chunk-AYJHI2FK.js";
|
|
30
|
+
import "../chunk-55B3T5L2.js";
|
|
31
31
|
|
|
32
32
|
// bin/mcp-stdio-server.ts
|
|
33
33
|
import { readFileSync } from "fs";
|
|
@@ -169,4 +169,3 @@ serveStdio(() => buildStdioServer(), {
|
|
|
169
169
|
`);
|
|
170
170
|
}
|
|
171
171
|
});
|
|
172
|
-
//# sourceMappingURL=mcp-stdio-server.js.map
|
package/dist/bin/paa-harvest.cjs
CHANGED
package/dist/bin/paa-harvest.js
CHANGED
|
@@ -1,12 +1,12 @@
|
|
|
1
1
|
#!/usr/bin/env node
|
|
2
2
|
import {
|
|
3
3
|
harvest
|
|
4
|
-
} from "../chunk-
|
|
4
|
+
} from "../chunk-K7Y27ND3.js";
|
|
5
5
|
import {
|
|
6
6
|
browserServiceApiKey
|
|
7
|
-
} from "../chunk-
|
|
8
|
-
import "../chunk-
|
|
9
|
-
import "../chunk-
|
|
7
|
+
} from "../chunk-3TKKJQB4.js";
|
|
8
|
+
import "../chunk-77LQV73B.js";
|
|
9
|
+
import "../chunk-55B3T5L2.js";
|
|
10
10
|
|
|
11
11
|
// src/cli.ts
|
|
12
12
|
import { Command } from "commander";
|
|
@@ -39,4 +39,3 @@ async function runCli() {
|
|
|
39
39
|
|
|
40
40
|
// bin/paa-harvest.ts
|
|
41
41
|
runCli();
|
|
42
|
-
//# sourceMappingURL=paa-harvest.js.map
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import {
|
|
2
2
|
publicErrorMessage,
|
|
3
3
|
sanitizeVendorName
|
|
4
|
-
} from "./chunk-
|
|
4
|
+
} from "./chunk-55B3T5L2.js";
|
|
5
5
|
|
|
6
6
|
// src/api/outbound-sanitize.ts
|
|
7
7
|
var KEY_RENAMES = {
|
|
@@ -101,4 +101,3 @@ export {
|
|
|
101
101
|
sanitizeAttempts,
|
|
102
102
|
sanitizeHarvestResult
|
|
103
103
|
};
|
|
104
|
-
//# sourceMappingURL=chunk-VIWT35S6.js.map
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import {
|
|
2
2
|
getDb
|
|
3
|
-
} from "./chunk-
|
|
3
|
+
} from "./chunk-55B3T5L2.js";
|
|
4
4
|
|
|
5
5
|
// src/lib/browser-service-env.ts
|
|
6
6
|
function browserServiceApiKey() {
|
|
@@ -275,4 +275,3 @@ export {
|
|
|
275
275
|
recordKernelSession,
|
|
276
276
|
recordVendorUsage
|
|
277
277
|
};
|
|
278
|
-
//# sourceMappingURL=chunk-4LINSJNI.js.map
|
|
@@ -186,8 +186,9 @@ function publicErrorMessage(code) {
|
|
|
186
186
|
case "proxy_unavailable":
|
|
187
187
|
return "The web request could not establish a working connection. Please retry later.";
|
|
188
188
|
case "harvest_timeout":
|
|
189
|
-
case "mcp_request_timeout":
|
|
190
189
|
return "The request timed out before it completed. Please retry with a smaller request.";
|
|
190
|
+
case "mcp_request_timeout":
|
|
191
|
+
return "The MCP caller stopped waiting before a final response arrived. Durable work may still be running; continue with the returned Task or job handle instead of restarting it.";
|
|
191
192
|
case "concurrency_limit_exceeded":
|
|
192
193
|
return "The service is available, but this account has reached its parallel-operation limit. Wait for an active operation to finish or add capacity.";
|
|
193
194
|
case "unauthorized":
|
|
@@ -2331,7 +2332,7 @@ async function claimPendingJob() {
|
|
|
2331
2332
|
const res = await db.execute(`
|
|
2332
2333
|
SELECT * FROM jobs
|
|
2333
2334
|
WHERE status = 'pending'
|
|
2334
|
-
AND COALESCE(json_extract(options, '$.executionOwner'), 'cron')
|
|
2335
|
+
AND COALESCE(json_extract(options, '$.executionOwner'), 'cron') NOT IN ('direct', 'inngest')
|
|
2335
2336
|
ORDER BY created_at
|
|
2336
2337
|
LIMIT 1
|
|
2337
2338
|
`);
|
|
@@ -2343,10 +2344,10 @@ async function claimPendingJob() {
|
|
|
2343
2344
|
});
|
|
2344
2345
|
return upd.rowsAffected === 0 ? void 0 : { ...job, status: "running" };
|
|
2345
2346
|
}
|
|
2346
|
-
async function
|
|
2347
|
+
async function claimDurablePaaJob(id) {
|
|
2347
2348
|
const db = getDb();
|
|
2348
2349
|
const current = await getJob(id);
|
|
2349
|
-
if (!current || current.options.executionOwner !== "
|
|
2350
|
+
if (!current || current.options.executionOwner !== "direct" || current.options.serpOnly === true) return void 0;
|
|
2350
2351
|
if (current.status === "running") return void 0;
|
|
2351
2352
|
if (current.status === "pending") {
|
|
2352
2353
|
const updated = await db.execute({
|
|
@@ -2355,7 +2356,7 @@ async function claimInngestPaaJob(id) {
|
|
|
2355
2356
|
WHERE id = ? AND status = 'pending'`,
|
|
2356
2357
|
args: [id]
|
|
2357
2358
|
});
|
|
2358
|
-
if (updated.rowsAffected === 0) return
|
|
2359
|
+
if (updated.rowsAffected === 0) return void 0;
|
|
2359
2360
|
return { ...current, status: "running", started_at: current.started_at ?? (/* @__PURE__ */ new Date()).toISOString() };
|
|
2360
2361
|
}
|
|
2361
2362
|
return current;
|
|
@@ -2367,25 +2368,12 @@ async function checkpointJob(id, result) {
|
|
|
2367
2368
|
});
|
|
2368
2369
|
return updated.rowsAffected === 1;
|
|
2369
2370
|
}
|
|
2370
|
-
async function
|
|
2371
|
-
const safeLimit = Math.max(1, Math.min(100, Math.floor(limit)));
|
|
2372
|
-
const rows = await getDb().execute({
|
|
2373
|
-
sql: `SELECT * FROM jobs
|
|
2374
|
-
WHERE status = 'pending'
|
|
2375
|
-
AND json_extract(options, '$.executionOwner') = 'inngest'
|
|
2376
|
-
AND COALESCE(json_extract(options, '$.serpOnly'), 0) = 0
|
|
2377
|
-
ORDER BY created_at
|
|
2378
|
-
LIMIT ?`,
|
|
2379
|
-
args: [safeLimit]
|
|
2380
|
-
});
|
|
2381
|
-
return rows.rows.map((row) => deserialize(rowToRawJob(row)));
|
|
2382
|
-
}
|
|
2383
|
-
async function listRecentTerminalInngestPaaJobs(limit = 25) {
|
|
2371
|
+
async function listRecentTerminalDurablePaaJobs(limit = 25) {
|
|
2384
2372
|
const safeLimit = Math.max(1, Math.min(100, Math.floor(limit)));
|
|
2385
2373
|
const rows = await getDb().execute({
|
|
2386
2374
|
sql: `SELECT * FROM jobs
|
|
2387
2375
|
WHERE status IN ('done', 'failed', 'cancelled')
|
|
2388
|
-
AND json_extract(options, '$.executionOwner')
|
|
2376
|
+
AND json_extract(options, '$.executionOwner') IN ('direct', 'inngest')
|
|
2389
2377
|
AND json_extract(options, '$.billingDebitKey') IS NOT NULL
|
|
2390
2378
|
AND json_extract(options, '$.billingSettledAt') IS NULL
|
|
2391
2379
|
ORDER BY completed_at DESC
|
|
@@ -2394,13 +2382,13 @@ async function listRecentTerminalInngestPaaJobs(limit = 25) {
|
|
|
2394
2382
|
});
|
|
2395
2383
|
return rows.rows.map((row) => deserialize(rowToRawJob(row)));
|
|
2396
2384
|
}
|
|
2397
|
-
async function
|
|
2385
|
+
async function listStaleRunningDurablePaaJobs(limit = 25) {
|
|
2398
2386
|
const safeLimit = Math.max(1, Math.min(100, Math.floor(limit)));
|
|
2399
2387
|
const rows = await getDb().execute({
|
|
2400
2388
|
sql: `SELECT * FROM jobs
|
|
2401
2389
|
WHERE status = 'running'
|
|
2402
|
-
AND started_at <= datetime('now', '-
|
|
2403
|
-
AND json_extract(options, '$.executionOwner')
|
|
2390
|
+
AND started_at <= datetime('now', '-15 minutes')
|
|
2391
|
+
AND json_extract(options, '$.executionOwner') IN ('direct', 'inngest')
|
|
2404
2392
|
ORDER BY started_at
|
|
2405
2393
|
LIMIT ?`,
|
|
2406
2394
|
args: [safeLimit]
|
|
@@ -2429,6 +2417,14 @@ async function failJob(id, error, publicError) {
|
|
|
2429
2417
|
args: [error, serializePublicErrorEnvelope(publicError), id]
|
|
2430
2418
|
});
|
|
2431
2419
|
}
|
|
2420
|
+
async function failRunningJob(id, error, publicError) {
|
|
2421
|
+
const updated = await getDb().execute({
|
|
2422
|
+
sql: `UPDATE jobs SET status = 'failed', error = ?, public_error_json = ?, completed_at = datetime('now')
|
|
2423
|
+
WHERE id = ? AND status = 'running'`,
|
|
2424
|
+
args: [error, serializePublicErrorEnvelope(publicError), id]
|
|
2425
|
+
});
|
|
2426
|
+
return updated.rowsAffected === 1;
|
|
2427
|
+
}
|
|
2432
2428
|
async function cancelJob(id, reason, publicError) {
|
|
2433
2429
|
await getDb().execute({
|
|
2434
2430
|
sql: `UPDATE jobs SET status = 'cancelled', error = ?, public_error_json = ?, completed_at = datetime('now') WHERE id = ?`,
|
|
@@ -3518,14 +3514,14 @@ export {
|
|
|
3518
3514
|
countActiveUsers,
|
|
3519
3515
|
countActiveJobsForUser,
|
|
3520
3516
|
claimPendingJob,
|
|
3521
|
-
|
|
3517
|
+
claimDurablePaaJob,
|
|
3522
3518
|
checkpointJob,
|
|
3523
|
-
|
|
3524
|
-
|
|
3525
|
-
listStaleRunningInngestPaaJobs,
|
|
3519
|
+
listRecentTerminalDurablePaaJobs,
|
|
3520
|
+
listStaleRunningDurablePaaJobs,
|
|
3526
3521
|
markJobBillingSettled,
|
|
3527
3522
|
completeJob,
|
|
3528
3523
|
failJob,
|
|
3524
|
+
failRunningJob,
|
|
3529
3525
|
cancelJob,
|
|
3530
3526
|
createKpoJob,
|
|
3531
3527
|
claimPendingKpoJob,
|
|
@@ -3573,4 +3569,3 @@ export {
|
|
|
3573
3569
|
insertInboxMessage,
|
|
3574
3570
|
listActiveUserIds
|
|
3575
3571
|
};
|
|
3576
|
-
//# sourceMappingURL=chunk-4VG3NUUY.js.map
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import {
|
|
2
2
|
getDb
|
|
3
|
-
} from "./chunk-
|
|
3
|
+
} from "./chunk-55B3T5L2.js";
|
|
4
4
|
|
|
5
5
|
// src/api/lead-list-enrichment-repository.ts
|
|
6
6
|
import { createHash, randomUUID } from "crypto";
|
|
@@ -590,4 +590,3 @@ export {
|
|
|
590
590
|
markLeadListEnrichmentOutboxDispatched,
|
|
591
591
|
markLeadListEnrichmentOutboxFailed
|
|
592
592
|
};
|
|
593
|
-
//# sourceMappingURL=chunk-N54JS5WP.js.map
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import {
|
|
2
2
|
isVendorUnavailableError
|
|
3
|
-
} from "./chunk-
|
|
3
|
+
} from "./chunk-OZJMVCDK.js";
|
|
4
4
|
import {
|
|
5
5
|
CaptchaError,
|
|
6
6
|
LocationMismatchError,
|
|
@@ -10,27 +10,7 @@ import {
|
|
|
10
10
|
finishHarvestAttempt,
|
|
11
11
|
publicErrorMessage,
|
|
12
12
|
startHarvestAttempt
|
|
13
|
-
} from "./chunk-
|
|
14
|
-
|
|
15
|
-
// src/api/webhook.ts
|
|
16
|
-
async function deliverWebhook(url, payload, retries = 3) {
|
|
17
|
-
for (let attempt = 1; attempt <= retries; attempt++) {
|
|
18
|
-
try {
|
|
19
|
-
const res = await fetch(url, {
|
|
20
|
-
method: "POST",
|
|
21
|
-
headers: { "content-type": "application/json" },
|
|
22
|
-
body: JSON.stringify(payload),
|
|
23
|
-
signal: AbortSignal.timeout(1e4)
|
|
24
|
-
});
|
|
25
|
-
if (res.ok) return;
|
|
26
|
-
console.warn(`[webhook] attempt ${attempt} \u2192 ${res.status} from ${url}`);
|
|
27
|
-
} catch (err) {
|
|
28
|
-
console.warn(`[webhook] attempt ${attempt} failed:`, err instanceof Error ? err.message : err);
|
|
29
|
-
}
|
|
30
|
-
if (attempt < retries) await new Promise((r) => setTimeout(r, 1e3 * attempt * 2));
|
|
31
|
-
}
|
|
32
|
-
console.error(`[webhook] gave up after ${retries} attempts for ${url}`);
|
|
33
|
-
}
|
|
13
|
+
} from "./chunk-55B3T5L2.js";
|
|
34
14
|
|
|
35
15
|
// src/api/harvest-problems.ts
|
|
36
16
|
function errorMessage(err) {
|
|
@@ -226,13 +206,32 @@ function createHarvestAttemptRecorder(jobId, userId) {
|
|
|
226
206
|
};
|
|
227
207
|
}
|
|
228
208
|
|
|
209
|
+
// src/api/webhook.ts
|
|
210
|
+
async function deliverWebhook(url, payload, retries = 3) {
|
|
211
|
+
for (let attempt = 1; attempt <= retries; attempt++) {
|
|
212
|
+
try {
|
|
213
|
+
const res = await fetch(url, {
|
|
214
|
+
method: "POST",
|
|
215
|
+
headers: { "content-type": "application/json" },
|
|
216
|
+
body: JSON.stringify(payload),
|
|
217
|
+
signal: AbortSignal.timeout(1e4)
|
|
218
|
+
});
|
|
219
|
+
if (res.ok) return;
|
|
220
|
+
console.warn(`[webhook] attempt ${attempt} \u2192 ${res.status} from ${url}`);
|
|
221
|
+
} catch (err) {
|
|
222
|
+
console.warn(`[webhook] attempt ${attempt} failed:`, err instanceof Error ? err.message : err);
|
|
223
|
+
}
|
|
224
|
+
if (attempt < retries) await new Promise((r) => setTimeout(r, 1e3 * attempt * 2));
|
|
225
|
+
}
|
|
226
|
+
console.error(`[webhook] gave up after ${retries} attempts for ${url}`);
|
|
227
|
+
}
|
|
228
|
+
|
|
229
229
|
export {
|
|
230
|
-
deliverWebhook,
|
|
231
230
|
classifyHarvestProblem,
|
|
232
231
|
serializeHarvestProblem,
|
|
233
232
|
harvestProblemResponse,
|
|
234
233
|
harvestProblemEnvelope,
|
|
235
234
|
publicErrorBoundary,
|
|
236
|
-
createHarvestAttemptRecorder
|
|
235
|
+
createHarvestAttemptRecorder,
|
|
236
|
+
deliverWebhook
|
|
237
237
|
};
|
|
238
|
-
//# sourceMappingURL=chunk-AAGVOPP5.js.map
|
|
@@ -1,14 +1,14 @@
|
|
|
1
1
|
import {
|
|
2
2
|
isVendorUnavailableError
|
|
3
|
-
} from "./chunk-
|
|
3
|
+
} from "./chunk-OZJMVCDK.js";
|
|
4
4
|
import {
|
|
5
5
|
loadHtmlDocument,
|
|
6
6
|
validatePublicHttpUrl
|
|
7
|
-
} from "./chunk-
|
|
7
|
+
} from "./chunk-GGZEC22A.js";
|
|
8
8
|
import {
|
|
9
9
|
buildPublicErrorEnvelope,
|
|
10
10
|
getDb
|
|
11
|
-
} from "./chunk-
|
|
11
|
+
} from "./chunk-55B3T5L2.js";
|
|
12
12
|
|
|
13
13
|
// src/lib/media-extractor.ts
|
|
14
14
|
import { createWriteStream, mkdirSync, rmSync } from "fs";
|
|
@@ -730,4 +730,3 @@ export {
|
|
|
730
730
|
queuedCommonsDocumentCount,
|
|
731
731
|
semanticCommonsEntityScores
|
|
732
732
|
};
|
|
733
|
-
//# sourceMappingURL=chunk-P7YFUNKR.js.map
|
|
@@ -6,14 +6,14 @@ import {
|
|
|
6
6
|
currentCostContext,
|
|
7
7
|
recordKernelSession,
|
|
8
8
|
runWithCostContext
|
|
9
|
-
} from "./chunk-
|
|
9
|
+
} from "./chunk-3TKKJQB4.js";
|
|
10
10
|
import {
|
|
11
11
|
DEFAULT_PROXY_MODE,
|
|
12
12
|
HarvestOptionsSchema,
|
|
13
13
|
RawPAAItemSchema,
|
|
14
14
|
postToMemoryLibrary,
|
|
15
15
|
recencyToTbs
|
|
16
|
-
} from "./chunk-
|
|
16
|
+
} from "./chunk-77LQV73B.js";
|
|
17
17
|
import {
|
|
18
18
|
CaptchaError,
|
|
19
19
|
ExtractionError,
|
|
@@ -21,7 +21,7 @@ import {
|
|
|
21
21
|
RECAPTCHA_INSTRUCTIONS,
|
|
22
22
|
RequestAbortedError,
|
|
23
23
|
sanitizeVendorName
|
|
24
|
-
} from "./chunk-
|
|
24
|
+
} from "./chunk-55B3T5L2.js";
|
|
25
25
|
|
|
26
26
|
// src/driver/BrowserDriver.ts
|
|
27
27
|
import { chromium } from "playwright-extra";
|
|
@@ -3988,14 +3988,6 @@ async function harvest(rawOptions) {
|
|
|
3988
3988
|
}
|
|
3989
3989
|
|
|
3990
3990
|
export {
|
|
3991
|
-
PAASelectors,
|
|
3992
|
-
VideoSelectors,
|
|
3993
|
-
ForumSelectors,
|
|
3994
|
-
WhatPeopleSayingSelectors,
|
|
3995
|
-
AIOverviewSelectors,
|
|
3996
|
-
AIModeSelectors,
|
|
3997
|
-
OrganicSelectors,
|
|
3998
|
-
LocalPackSelectors,
|
|
3999
3991
|
MapsSelectors,
|
|
4000
3992
|
detectPageUserAgent,
|
|
4001
3993
|
detectRuntimeUserAgent,
|
|
@@ -4004,8 +3996,6 @@ export {
|
|
|
4004
3996
|
buildYouTubeChannelVideosUrl,
|
|
4005
3997
|
BrowserDriver,
|
|
4006
3998
|
brightDataSerpEnabled,
|
|
4007
|
-
encodeUule,
|
|
4008
|
-
normalizeLocation,
|
|
4009
3999
|
BACKUP_LAST_RESORT_ATTEMPTS,
|
|
4010
4000
|
backupProxyAvailable,
|
|
4011
4001
|
createBackupProxyIdSafe,
|
|
@@ -4015,4 +4005,3 @@ export {
|
|
|
4015
4005
|
resolveKernelProxyId,
|
|
4016
4006
|
harvest
|
|
4017
4007
|
};
|
|
4018
|
-
//# sourceMappingURL=chunk-AJ4YGHG2.js.map
|
|
@@ -1,17 +1,17 @@
|
|
|
1
1
|
import {
|
|
2
2
|
rowsToCsv
|
|
3
|
-
} from "./chunk-
|
|
3
|
+
} from "./chunk-RJ7JVYKU.js";
|
|
4
4
|
import {
|
|
5
5
|
DEFAULT_MAPS_PROXY_MODE,
|
|
6
6
|
postToMemoryLibrary
|
|
7
|
-
} from "./chunk-
|
|
7
|
+
} from "./chunk-77LQV73B.js";
|
|
8
8
|
import {
|
|
9
9
|
buildSerpEmailQuery,
|
|
10
10
|
contactAttemptUrls,
|
|
11
11
|
extractContactEvidence,
|
|
12
12
|
extractSerpEmailEvidence,
|
|
13
13
|
selectPrimaryEmail
|
|
14
|
-
} from "./chunk-
|
|
14
|
+
} from "./chunk-VXLU74YZ.js";
|
|
15
15
|
|
|
16
16
|
// src/lib/slugify.ts
|
|
17
17
|
function slugify(s) {
|
|
@@ -1913,4 +1913,3 @@ export {
|
|
|
1913
1913
|
runWorkflow,
|
|
1914
1914
|
runWorkflowStep
|
|
1915
1915
|
};
|
|
1916
|
-
//# sourceMappingURL=chunk-XPFRP5QT.js.map
|
|
@@ -4,10 +4,10 @@ import {
|
|
|
4
4
|
privateArtifactOwnerId,
|
|
5
5
|
readPrivateArtifactBuffer,
|
|
6
6
|
renewPrivateArtifactDownload
|
|
7
|
-
} from "./chunk-
|
|
7
|
+
} from "./chunk-DNM65UCK.js";
|
|
8
8
|
import {
|
|
9
9
|
LedgerOperation
|
|
10
|
-
} from "./chunk-
|
|
10
|
+
} from "./chunk-AYJHI2FK.js";
|
|
11
11
|
import {
|
|
12
12
|
CREDIT_LOT_TTL,
|
|
13
13
|
getDb,
|
|
@@ -15,7 +15,7 @@ import {
|
|
|
15
15
|
sanitizeVendorName,
|
|
16
16
|
serializePublicErrorEnvelope,
|
|
17
17
|
settleDebitMcIdempotent
|
|
18
|
-
} from "./chunk-
|
|
18
|
+
} from "./chunk-55B3T5L2.js";
|
|
19
19
|
|
|
20
20
|
// src/api/site-extract-content-store.ts
|
|
21
21
|
import { createHash } from "crypto";
|
|
@@ -797,4 +797,3 @@ export {
|
|
|
797
797
|
setExtractJobPublicError,
|
|
798
798
|
settleExtractJob
|
|
799
799
|
};
|
|
800
|
-
//# sourceMappingURL=chunk-5PIO7QBG.js.map
|
|
@@ -1,3 +1,8 @@
|
|
|
1
|
+
// release-message.json
|
|
2
|
+
var release_message_default = {
|
|
3
|
+
message: "PAA work now starts immediately on the direct runtime, and every MCP Scraper install exposes the same complete typed tool contract."
|
|
4
|
+
};
|
|
5
|
+
|
|
1
6
|
// src/install-terminal.ts
|
|
2
7
|
var CODES = {
|
|
3
8
|
reset: "\x1B[0m",
|
|
@@ -48,7 +53,7 @@ function renderInstallTerminal(options) {
|
|
|
48
53
|
colorize(ascii, "amber", color),
|
|
49
54
|
`${colorize("MCP Scraper Agent", "cyan", color)} . v${options.version} . mcpscraper.dev`,
|
|
50
55
|
"1/1 install surfaces ready",
|
|
51
|
-
colorize(
|
|
56
|
+
colorize(`Newest in v${options.version}: ${release_message_default.message}`, "lime", color),
|
|
52
57
|
"",
|
|
53
58
|
`${colorize("Tools", "cyan", color)} ${colorize("(259 MCP tools)", "muted", color)}`,
|
|
54
59
|
toolRow("search", ["harvest_paa", "search_serp", "maps_search", "maps_place_intel"], color),
|
|
@@ -106,4 +111,3 @@ function renderInstallTerminal(options) {
|
|
|
106
111
|
export {
|
|
107
112
|
renderInstallTerminal
|
|
108
113
|
};
|
|
109
|
-
//# sourceMappingURL=chunk-DCWXVAQT.js.map
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import {
|
|
2
2
|
validatePublicHttpUrl
|
|
3
|
-
} from "./chunk-
|
|
3
|
+
} from "./chunk-GGZEC22A.js";
|
|
4
4
|
|
|
5
5
|
// src/api/image-audit.ts
|
|
6
6
|
var OVER_BYTES = 100 * 1024;
|
|
@@ -381,4 +381,3 @@ export {
|
|
|
381
381
|
computeIssues,
|
|
382
382
|
renderIssueReport
|
|
383
383
|
};
|
|
384
|
-
//# sourceMappingURL=chunk-X7UG2JCF.js.map
|
|
@@ -1,9 +1,9 @@
|
|
|
1
1
|
import {
|
|
2
2
|
csvRecords
|
|
3
|
-
} from "./chunk-
|
|
3
|
+
} from "./chunk-RJ7JVYKU.js";
|
|
4
4
|
import {
|
|
5
5
|
getDb
|
|
6
|
-
} from "./chunk-
|
|
6
|
+
} from "./chunk-55B3T5L2.js";
|
|
7
7
|
|
|
8
8
|
// src/api/location-data-repository.ts
|
|
9
9
|
import { createHash, randomUUID } from "crypto";
|
|
@@ -681,4 +681,3 @@ export {
|
|
|
681
681
|
importHostedCensusPlacesCsv,
|
|
682
682
|
queryHostedLocationMarkets
|
|
683
683
|
};
|
|
684
|
-
//# sourceMappingURL=chunk-DKIG2TEE.js.map
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import {
|
|
2
2
|
isPrivateIpAddress,
|
|
3
3
|
loadHtmlDocument
|
|
4
|
-
} from "./chunk-
|
|
4
|
+
} from "./chunk-GGZEC22A.js";
|
|
5
5
|
|
|
6
6
|
// src/lib/contact-evidence.ts
|
|
7
7
|
var MAX_EMAILS = 20;
|
|
@@ -291,4 +291,3 @@ export {
|
|
|
291
291
|
buildSerpEmailQuery,
|
|
292
292
|
extractSerpEmailEvidence
|
|
293
293
|
};
|
|
294
|
-
//# sourceMappingURL=chunk-WD73OFL3.js.map
|