mcp-scraper 0.40.2 → 0.41.0
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/README.md +2 -2
- package/dist/bin/api-server.cjs +2264 -337
- package/dist/bin/api-server.cjs.map +1 -1
- package/dist/bin/api-server.js +3 -3
- package/dist/bin/mcp-scraper-cli.cjs +1 -1
- package/dist/bin/mcp-scraper-cli.cjs.map +1 -1
- package/dist/bin/mcp-scraper-cli.js +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 +180 -92
- package/dist/bin/mcp-stdio-server.cjs.map +1 -1
- package/dist/bin/mcp-stdio-server.js +6 -5
- package/dist/bin/mcp-stdio-server.js.map +1 -1
- package/dist/bin/paa-harvest.cjs +31 -9
- package/dist/bin/paa-harvest.cjs.map +1 -1
- package/dist/bin/paa-harvest.js +4 -4
- package/dist/{chunk-XORPNO3Z.js → chunk-27DUCRAZ.js} +2 -2
- package/dist/{chunk-44HZLHDV.js → chunk-5UN33CGU.js} +38 -1
- package/dist/chunk-5UN33CGU.js.map +1 -0
- package/dist/{chunk-X2LKCX6H.js → chunk-6J57U6HA.js} +3 -3
- package/dist/chunk-BBI7RGOT.js +99 -0
- package/dist/chunk-BBI7RGOT.js.map +1 -0
- package/dist/{chunk-NVXNEOUQ.js → chunk-CS4HE6QY.js} +47 -11
- package/dist/chunk-CS4HE6QY.js.map +1 -0
- package/dist/{chunk-3PIWJS6Y.js → chunk-EHES33KB.js} +2 -2
- package/dist/{chunk-GUVKHCKE.js → chunk-IQTT7CAB.js} +94 -3
- package/dist/chunk-IQTT7CAB.js.map +1 -0
- package/dist/{chunk-7XBBFBYY.js → chunk-JVIW4GK2.js} +44 -12
- package/dist/chunk-JVIW4GK2.js.map +1 -0
- package/dist/chunk-OOB35KFT.js +7 -0
- package/dist/chunk-OOB35KFT.js.map +1 -0
- package/dist/{chunk-LP6E462I.js → chunk-SIE5LZ2V.js} +74 -106
- package/dist/chunk-SIE5LZ2V.js.map +1 -0
- package/dist/{db-W3CP562I.js → db-LVVU6NOK.js} +16 -2
- package/dist/{extract-bundle-K4PG3RZJ.js → extract-bundle-SKXEDG4Z.js} +4 -4
- package/dist/index.cjs +31 -9
- package/dist/index.cjs.map +1 -1
- package/dist/index.js +4 -4
- package/dist/{location-data-repository-RLQX6SNM.js → location-data-repository-NBTCOA7B.js} +3 -3
- package/dist/{server-KM3CFWCF.js → server-2JJPCZH4.js} +1812 -162
- package/dist/server-2JJPCZH4.js.map +1 -0
- package/dist/{site-extract-repository-2SMMFKKL.js → site-extract-repository-6GX72U4N.js} +4 -4
- package/dist/{worker-FXAGFYOE.js → worker-5RWLFSAJ.js} +27 -28
- package/dist/worker-5RWLFSAJ.js.map +1 -0
- package/package.json +1 -1
- package/dist/chunk-44HZLHDV.js.map +0 -1
- package/dist/chunk-7XBBFBYY.js.map +0 -1
- package/dist/chunk-GUVKHCKE.js.map +0 -1
- package/dist/chunk-LP6E462I.js.map +0 -1
- package/dist/chunk-NVXNEOUQ.js.map +0 -1
- package/dist/chunk-ZUJLSICT.js +0 -7
- package/dist/chunk-ZUJLSICT.js.map +0 -1
- package/dist/server-KM3CFWCF.js.map +0 -1
- package/dist/worker-FXAGFYOE.js.map +0 -1
- /package/dist/{chunk-XORPNO3Z.js.map → chunk-27DUCRAZ.js.map} +0 -0
- /package/dist/{chunk-X2LKCX6H.js.map → chunk-6J57U6HA.js.map} +0 -0
- /package/dist/{chunk-3PIWJS6Y.js.map → chunk-EHES33KB.js.map} +0 -0
- /package/dist/{db-W3CP562I.js.map → db-LVVU6NOK.js.map} +0 -0
- /package/dist/{extract-bundle-K4PG3RZJ.js.map → extract-bundle-SKXEDG4Z.js.map} +0 -0
- /package/dist/{location-data-repository-RLQX6SNM.js.map → location-data-repository-NBTCOA7B.js.map} +0 -0
- /package/dist/{site-extract-repository-2SMMFKKL.js.map → site-extract-repository-6GX72U4N.js.map} +0 -0
|
@@ -8,6 +8,8 @@ import {
|
|
|
8
8
|
appendWorkflowArtifacts,
|
|
9
9
|
cancelJob,
|
|
10
10
|
checkRateLimit,
|
|
11
|
+
checkpointJob,
|
|
12
|
+
claimInngestPaaJob,
|
|
11
13
|
claimMonthlyFreeRefresh,
|
|
12
14
|
claimPendingJob,
|
|
13
15
|
claimPendingKpoJob,
|
|
@@ -21,6 +23,7 @@ import {
|
|
|
21
23
|
countActiveJobsForUser,
|
|
22
24
|
countActiveUsers,
|
|
23
25
|
createJob,
|
|
26
|
+
createJobWithId,
|
|
24
27
|
createKpoJob,
|
|
25
28
|
createPasswordResetToken,
|
|
26
29
|
createRunningJob,
|
|
@@ -74,7 +77,10 @@ import {
|
|
|
74
77
|
listInboxMessages,
|
|
75
78
|
listJobs,
|
|
76
79
|
listKpoJobs,
|
|
80
|
+
listPendingInngestPaaJobs,
|
|
81
|
+
listRecentTerminalInngestPaaJobs,
|
|
77
82
|
listRequestEvents,
|
|
83
|
+
listStaleRunningInngestPaaJobs,
|
|
78
84
|
listUsers,
|
|
79
85
|
listUsersDueForConnectedAccountBillingReconciliation,
|
|
80
86
|
listWorkflowArtifacts,
|
|
@@ -83,6 +89,7 @@ import {
|
|
|
83
89
|
logKpoPhaseComplete,
|
|
84
90
|
logRequestEvent,
|
|
85
91
|
markInboxMessageOpened,
|
|
92
|
+
markJobBillingSettled,
|
|
86
93
|
markWorkflowRunRunning,
|
|
87
94
|
markWorkflowScheduleRan,
|
|
88
95
|
migrate,
|
|
@@ -116,7 +123,7 @@ import {
|
|
|
116
123
|
updateKpoJobState,
|
|
117
124
|
upsertPageSnapshot,
|
|
118
125
|
verifyPassword
|
|
119
|
-
} from "./chunk-
|
|
126
|
+
} from "./chunk-IQTT7CAB.js";
|
|
120
127
|
export {
|
|
121
128
|
CORE_SCHEMA_VERSION,
|
|
122
129
|
CREDIT_LOTS_EPOCH,
|
|
@@ -127,6 +134,8 @@ export {
|
|
|
127
134
|
appendWorkflowArtifacts,
|
|
128
135
|
cancelJob,
|
|
129
136
|
checkRateLimit,
|
|
137
|
+
checkpointJob,
|
|
138
|
+
claimInngestPaaJob,
|
|
130
139
|
claimMonthlyFreeRefresh,
|
|
131
140
|
claimPendingJob,
|
|
132
141
|
claimPendingKpoJob,
|
|
@@ -140,6 +149,7 @@ export {
|
|
|
140
149
|
countActiveJobsForUser,
|
|
141
150
|
countActiveUsers,
|
|
142
151
|
createJob,
|
|
152
|
+
createJobWithId,
|
|
143
153
|
createKpoJob,
|
|
144
154
|
createPasswordResetToken,
|
|
145
155
|
createRunningJob,
|
|
@@ -193,7 +203,10 @@ export {
|
|
|
193
203
|
listInboxMessages,
|
|
194
204
|
listJobs,
|
|
195
205
|
listKpoJobs,
|
|
206
|
+
listPendingInngestPaaJobs,
|
|
207
|
+
listRecentTerminalInngestPaaJobs,
|
|
196
208
|
listRequestEvents,
|
|
209
|
+
listStaleRunningInngestPaaJobs,
|
|
197
210
|
listUsers,
|
|
198
211
|
listUsersDueForConnectedAccountBillingReconciliation,
|
|
199
212
|
listWorkflowArtifacts,
|
|
@@ -202,6 +215,7 @@ export {
|
|
|
202
215
|
logKpoPhaseComplete,
|
|
203
216
|
logRequestEvent,
|
|
204
217
|
markInboxMessageOpened,
|
|
218
|
+
markJobBillingSettled,
|
|
205
219
|
markWorkflowRunRunning,
|
|
206
220
|
markWorkflowScheduleRan,
|
|
207
221
|
migrate,
|
|
@@ -236,4 +250,4 @@ export {
|
|
|
236
250
|
upsertPageSnapshot,
|
|
237
251
|
verifyPassword
|
|
238
252
|
};
|
|
239
|
-
//# sourceMappingURL=db-
|
|
253
|
+
//# sourceMappingURL=db-LVVU6NOK.js.map
|
|
@@ -10,12 +10,12 @@ import {
|
|
|
10
10
|
} from "./chunk-345BQXZH.js";
|
|
11
11
|
import {
|
|
12
12
|
extractJobLimitInfo
|
|
13
|
-
} from "./chunk-
|
|
13
|
+
} from "./chunk-6J57U6HA.js";
|
|
14
14
|
import "./chunk-SBLGBZZB.js";
|
|
15
|
-
import "./chunk-
|
|
15
|
+
import "./chunk-5UN33CGU.js";
|
|
16
16
|
import {
|
|
17
17
|
getDb
|
|
18
|
-
} from "./chunk-
|
|
18
|
+
} from "./chunk-IQTT7CAB.js";
|
|
19
19
|
|
|
20
20
|
// src/api/extract-bundle.ts
|
|
21
21
|
import { createWriteStream, mkdirSync, readdirSync, rmSync, statSync, writeFileSync } from "fs";
|
|
@@ -565,4 +565,4 @@ export {
|
|
|
565
565
|
SITE_EXTRACT_PAGE_CHUNK,
|
|
566
566
|
assembleExtractArtifacts
|
|
567
567
|
};
|
|
568
|
-
//# sourceMappingURL=extract-bundle-
|
|
568
|
+
//# sourceMappingURL=extract-bundle-SKXEDG4Z.js.map
|
package/dist/index.cjs
CHANGED
|
@@ -181,6 +181,9 @@ var PAASelectors = {
|
|
|
181
181
|
itemDataInitQ: "data-initq",
|
|
182
182
|
itemQuestionEl: ".JlqpRe",
|
|
183
183
|
answerContainer: ".bCOlv, .hgKElc, .wDYxhc, .LGOjhe, .fo7IQd, .fmW3u",
|
|
184
|
+
aiAnswerBody: ".pWvJNd",
|
|
185
|
+
aiCitation: "a.PMDqCb[href]",
|
|
186
|
+
aiSourceCard: "a.vIWmYe[href], a.Zbfntb[href]",
|
|
184
187
|
sourceTitle: "h3",
|
|
185
188
|
sourceSite: ".VuuXrf",
|
|
186
189
|
sourceCite: "cite",
|
|
@@ -1773,14 +1776,28 @@ var PAAExtractor = class {
|
|
|
1773
1776
|
}
|
|
1774
1777
|
return parts.join(" ").replace(/\s+/g, " ").trim();
|
|
1775
1778
|
}
|
|
1779
|
+
function cleanSourceLabel(value) {
|
|
1780
|
+
return (value ?? "").replace(/\s*\(\+\d+\)\s*-\s*View related links.*$/i, "").replace(/\s*-\s*Opens in new tab.*$/i, "").trim();
|
|
1781
|
+
}
|
|
1776
1782
|
return Array.from(document.querySelectorAll(selectors.item)).map((pair) => {
|
|
1777
|
-
|
|
1778
|
-
|
|
1779
|
-
|
|
1780
|
-
|
|
1783
|
+
const clickTarget = pair.querySelector(selectors.clickTarget);
|
|
1784
|
+
const expanded = pair.classList.contains(selectors.expandedClass) || clickTarget?.getAttribute("aria-expanded") === "true";
|
|
1785
|
+
const answerContainer = expanded ? pair.querySelector(selectors.answerContainer) : null;
|
|
1786
|
+
const aiAnswerBody = answerContainer?.querySelector(selectors.aiAnswerBody);
|
|
1787
|
+
const answerElement = aiAnswerBody ?? answerContainer;
|
|
1788
|
+
let sourceTitle = expanded ? pair.querySelector(selectors.sourceTitle)?.innerText?.trim() || void 0 : void 0;
|
|
1789
|
+
let sourceSite = expanded ? pair.querySelector(selectors.sourceSite)?.innerText?.trim() || void 0 : void 0;
|
|
1790
|
+
let sourceCite = expanded ? pair.querySelector(selectors.sourceCite)?.innerText?.trim() || void 0 : void 0;
|
|
1791
|
+
if (expanded && !sourceCite) {
|
|
1781
1792
|
const seenHrefs = /* @__PURE__ */ new Set();
|
|
1782
1793
|
const anchors = [];
|
|
1783
|
-
|
|
1794
|
+
const anchorRoot = answerElement ?? pair;
|
|
1795
|
+
const prioritized = [
|
|
1796
|
+
...Array.from(anchorRoot.querySelectorAll(selectors.aiCitation)),
|
|
1797
|
+
...Array.from(anchorRoot.querySelectorAll(selectors.aiSourceCard)),
|
|
1798
|
+
...Array.from(anchorRoot.querySelectorAll("a[href]"))
|
|
1799
|
+
];
|
|
1800
|
+
for (const a of prioritized) {
|
|
1784
1801
|
const href = a.href;
|
|
1785
1802
|
if (!/^https?:\/\//.test(href) || seenHrefs.has(href)) continue;
|
|
1786
1803
|
let host = "";
|
|
@@ -1791,18 +1808,23 @@ var PAAExtractor = class {
|
|
|
1791
1808
|
}
|
|
1792
1809
|
if (/(^|\.)google(usercontent)?\.[a-z.]+$/.test(host)) continue;
|
|
1793
1810
|
seenHrefs.add(href);
|
|
1794
|
-
anchors.push({
|
|
1811
|
+
anchors.push({
|
|
1812
|
+
text: (a.textContent || "").trim(),
|
|
1813
|
+
label: cleanSourceLabel(a.getAttribute("aria-label")),
|
|
1814
|
+
href,
|
|
1815
|
+
host
|
|
1816
|
+
});
|
|
1795
1817
|
}
|
|
1796
|
-
const primary = anchors.find((x) => x.text.length > 2) ?? anchors[0];
|
|
1818
|
+
const primary = anchors.find((x) => x.label.length > 2 || x.text.length > 2) ?? anchors[0];
|
|
1797
1819
|
if (primary) {
|
|
1798
|
-
sourceTitle = sourceTitle || primary.text || void 0;
|
|
1820
|
+
sourceTitle = sourceTitle || primary.label || primary.text || void 0;
|
|
1799
1821
|
sourceSite = sourceSite || primary.host.replace(/^www\./, "");
|
|
1800
1822
|
sourceCite = primary.href;
|
|
1801
1823
|
}
|
|
1802
1824
|
}
|
|
1803
1825
|
return {
|
|
1804
1826
|
question: pair.getAttribute(selectors.itemDataQ) || pair.getAttribute(selectors.itemDataInitQ) || pair.querySelector(selectors.itemQuestionEl)?.innerText?.trim() || "",
|
|
1805
|
-
answer: cleanText(
|
|
1827
|
+
answer: cleanText(answerElement) || void 0,
|
|
1806
1828
|
sourceTitle,
|
|
1807
1829
|
sourceSite,
|
|
1808
1830
|
sourceCite
|