@webcrawl/mcp 1.4.2 → 1.4.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/README.md +1 -1
- package/dist/bin.js +5 -7
- package/dist/core/engine/awswaf.d.ts +59 -0
- package/dist/core/engine/awswaf.js +164 -0
- package/dist/core/engine/cache.d.ts +70 -0
- package/dist/core/engine/cache.js +297 -0
- package/dist/core/engine/chrome-cdp.d.ts +22 -0
- package/dist/core/engine/chrome-cdp.js +318 -0
- package/dist/core/engine/chrome-launch.d.ts +38 -0
- package/dist/core/engine/chrome-launch.js +214 -0
- package/dist/core/engine/chrome.d.ts +28 -0
- package/dist/core/engine/chrome.js +208 -0
- package/dist/core/engine/crawl-policy.d.ts +36 -0
- package/dist/core/engine/crawl-policy.js +134 -0
- package/dist/core/engine/crawler.d.ts +152 -0
- package/dist/core/engine/crawler.js +918 -0
- package/dist/core/engine/fetcher.d.ts +92 -0
- package/dist/core/engine/fetcher.js +494 -0
- package/dist/core/engine/index.d.ts +7 -0
- package/dist/core/engine/index.js +7 -0
- package/dist/core/engine/markdown.d.ts +33 -0
- package/dist/core/engine/markdown.js +334 -0
- package/dist/core/engine/path-scope.d.ts +21 -0
- package/dist/core/engine/path-scope.js +88 -0
- package/dist/core/engine/render.d.ts +41 -0
- package/dist/core/engine/render.js +138 -0
- package/dist/core/engine/safe-url.d.ts +29 -0
- package/dist/core/engine/safe-url.js +109 -0
- package/dist/core/engine/session.d.ts +93 -0
- package/dist/core/engine/session.js +250 -0
- package/dist/core/engine/stealth.d.ts +83 -0
- package/dist/core/engine/stealth.js +222 -0
- package/dist/core/engine.d.ts +1 -0
- package/dist/core/engine.js +1 -0
- package/dist/core/extract/business.d.ts +28 -0
- package/dist/core/extract/business.js +344 -0
- package/dist/core/extract/currency.d.ts +15 -0
- package/dist/core/extract/currency.js +259 -0
- package/dist/core/extract/cve-cache.d.ts +62 -0
- package/dist/core/extract/cve-cache.js +277 -0
- package/dist/core/extract/cve.d.ts +57 -0
- package/dist/core/extract/cve.js +397 -0
- package/dist/core/extract/dedupe-key.d.ts +12 -0
- package/dist/core/extract/dedupe-key.js +36 -0
- package/dist/core/extract/flights.d.ts +37 -0
- package/dist/core/extract/flights.js +373 -0
- package/dist/core/extract/hotels.d.ts +35 -0
- package/dist/core/extract/hotels.js +473 -0
- package/dist/core/extract/index.d.ts +9 -0
- package/dist/core/extract/index.js +9 -0
- package/dist/core/extract/real-estate.d.ts +53 -0
- package/dist/core/extract/real-estate.js +835 -0
- package/dist/core/extract/scaledown.d.ts +14 -0
- package/dist/core/extract/scaledown.js +484 -0
- package/dist/core/extract/shopping.d.ts +44 -0
- package/dist/core/extract/shopping.js +393 -0
- package/dist/core/extract/structured.d.ts +33 -0
- package/dist/core/extract/structured.js +316 -0
- package/dist/core/image-url.d.ts +5 -0
- package/dist/core/image-url.js +13 -0
- package/dist/core/interact/driver.d.ts +72 -0
- package/dist/core/interact/driver.js +384 -0
- package/dist/core/interact/remote.d.ts +41 -0
- package/dist/core/interact/remote.js +133 -0
- package/dist/core/interact/spans.d.ts +46 -0
- package/dist/core/interact/spans.js +32 -0
- package/dist/core/interact/validate.d.ts +34 -0
- package/dist/core/interact/validate.js +135 -0
- package/dist/core/interact/vm.d.ts +43 -0
- package/dist/core/interact/vm.js +338 -0
- package/dist/core/local-engine.d.ts +62 -0
- package/dist/core/local-engine.js +726 -0
- package/dist/core/parse/detect.d.ts +29 -0
- package/dist/core/parse/detect.js +152 -0
- package/dist/core/parse/fetch.d.ts +20 -0
- package/dist/core/parse/fetch.js +39 -0
- package/dist/core/parse/image.d.ts +13 -0
- package/dist/core/parse/image.js +100 -0
- package/dist/core/parse/index.d.ts +53 -0
- package/dist/core/parse/index.js +153 -0
- package/dist/core/parse/limits.d.ts +12 -0
- package/dist/core/parse/limits.js +29 -0
- package/dist/core/parse/media.d.ts +42 -0
- package/dist/core/parse/media.js +238 -0
- package/dist/core/parse/merge.d.ts +19 -0
- package/dist/core/parse/merge.js +48 -0
- package/dist/core/parse/ocr.d.ts +25 -0
- package/dist/core/parse/ocr.js +121 -0
- package/dist/core/parse/office.d.ts +28 -0
- package/dist/core/parse/office.js +83 -0
- package/dist/core/parse/pdf.d.ts +27 -0
- package/dist/core/parse/pdf.js +156 -0
- package/dist/core/parse/types.d.ts +38 -0
- package/dist/core/parse/types.js +1 -0
- package/dist/core/parse/youtube.d.ts +30 -0
- package/dist/core/parse/youtube.js +264 -0
- package/dist/core/ranker/decision.d.ts +28 -0
- package/dist/core/ranker/decision.js +151 -0
- package/dist/core/ranker/index.d.ts +5 -0
- package/dist/core/ranker/index.js +361 -0
- package/dist/core/ranker/lexical.d.ts +82 -0
- package/dist/core/ranker/lexical.js +643 -0
- package/dist/core/ranker/types.d.ts +90 -0
- package/dist/core/ranker/types.js +1 -0
- package/dist/core/ranker.d.ts +1 -0
- package/dist/core/ranker.js +1 -0
- package/dist/core/sandbox.d.ts +29 -0
- package/dist/core/sandbox.js +222 -0
- package/dist/core/search/catalog.d.ts +176 -0
- package/dist/core/search/catalog.js +488 -0
- package/dist/core/search/index.d.ts +3 -0
- package/dist/core/search/index.js +3 -0
- package/dist/core/search/pipeline.d.ts +7 -0
- package/dist/core/search/pipeline.js +721 -0
- package/dist/core/search/providers.d.ts +84 -0
- package/dist/core/search/providers.js +1408 -0
- package/dist/core/search.d.ts +1 -0
- package/dist/core/search.js +1 -0
- package/dist/core/targets/developer.d.ts +44 -0
- package/dist/core/targets/developer.js +338 -0
- package/dist/core/targets/index.d.ts +3 -0
- package/dist/core/targets/index.js +3 -0
- package/dist/core/targets/registry.d.ts +32 -0
- package/dist/core/targets/registry.js +411 -0
- package/dist/core/targets/types.d.ts +72 -0
- package/dist/core/targets/types.js +8 -0
- package/dist/core/targets.d.ts +1 -0
- package/dist/core/targets.js +1 -0
- package/dist/format.js +5 -1
- package/dist/index.d.ts +1 -0
- package/dist/index.js +1 -0
- package/dist/load-local-engine.d.ts +7 -0
- package/dist/load-local-engine.js +22 -0
- package/dist/server.js +6 -0
- package/package.json +11 -3
|
@@ -0,0 +1,84 @@
|
|
|
1
|
+
import { type CveRecord, type ProductOffer } from "../extract/index.js";
|
|
2
|
+
import type { RawCandidateDocument, UserLocationContext } from "../ranker/index.js";
|
|
3
|
+
import { type SearchRequest } from "./catalog.js";
|
|
4
|
+
/**
|
|
5
|
+
* Wikipedia only helps for entity / definition queries ("retrieval augmented
|
|
6
|
+
* generation", "what is rag"). For intent queries ("best X under 500",
|
|
7
|
+
* "A vs B", "how to ...") it injects off-topic pages (songs, unrelated topics).
|
|
8
|
+
*/
|
|
9
|
+
export declare function isEntityQuery(q: string): boolean;
|
|
10
|
+
/**
|
|
11
|
+
* Stage 1: Hedged Multi-Engine Native Federation with Early-Exit Quorum.
|
|
12
|
+
* Fires all native zero-key search engines concurrently and exits as soon as a fast
|
|
13
|
+
* quorum (at least 2 engines + >= limit results + 80ms grace window) finishes,
|
|
14
|
+
* preventing any single slow engine from inflating tail latency.
|
|
15
|
+
*/
|
|
16
|
+
export declare function fetchHedgedNativeFederation(rawQuery: string, localizedQuery: string, perEngineLimit: number, req: SearchRequest, userLocation: UserLocationContext, quorumTimeoutMs: number, targetSites: string[], onOffer: (offer: ProductOffer) => void, onCve?: (cve: CveRecord) => void): Promise<RawCandidateDocument[]>;
|
|
17
|
+
/** Below this many unique URLs from the free engines, the keyed search fallback runs. */
|
|
18
|
+
export declare const JINA_FALLBACK_MIN_URLS = 3;
|
|
19
|
+
/** True when a scraped SERP is a bot-check / captcha rather than results. */
|
|
20
|
+
export declare function isSerpChallengeHtml(html: string, status?: number): boolean;
|
|
21
|
+
export declare const EMPTY_SEARCH_ERROR: string;
|
|
22
|
+
/** Canonical URL for search dedupe (host lowercased, trailing slash / tracking params stripped). */
|
|
23
|
+
export declare function canonicalSearchUrl(raw: string | undefined): string;
|
|
24
|
+
/** Round-robin merge so one source (e.g. Wikipedia) cannot fill `-n` by itself. */
|
|
25
|
+
export declare function mergeSearchCandidates(groups: RawCandidateDocument[][], limit: number): RawCandidateDocument[];
|
|
26
|
+
export declare function withRetry<T>(fn: () => Promise<T>, opts?: {
|
|
27
|
+
retries?: number;
|
|
28
|
+
delayMs?: number;
|
|
29
|
+
isEmpty?: (v: T) => boolean;
|
|
30
|
+
}): Promise<T>;
|
|
31
|
+
/** Parse Bing's `format=rss` web-search feed into candidate docs. */
|
|
32
|
+
export declare function parseBingWebRss(xml: string, limit: number): RawCandidateDocument[];
|
|
33
|
+
/**
|
|
34
|
+
* Last-resort keyless engines used when DDG/Brave HTML SERPs come back empty
|
|
35
|
+
* or thinner than `limit`. Wikipedia OpenSearch, HN Algolia, Bing RSS, and
|
|
36
|
+
* DuckDuckGo Instant Answer do not require a JS challenge or API key.
|
|
37
|
+
*/
|
|
38
|
+
export declare function fetchKeylessSearchFallbacks(query: string, limit: number): Promise<RawCandidateDocument[]>;
|
|
39
|
+
/** DuckDuckGo Instant Answer API — keyless JSON, unrelated to the HTML SERP challenge. */
|
|
40
|
+
export declare function fetchDuckDuckGoInstantAnswer(query: string, limit: number): Promise<RawCandidateDocument[]>;
|
|
41
|
+
export declare function fetchJinaSearch(query: string, limit: number, req?: {
|
|
42
|
+
country?: string;
|
|
43
|
+
lang?: string;
|
|
44
|
+
}): Promise<RawCandidateDocument[]>;
|
|
45
|
+
/**
|
|
46
|
+
* 0A. Bing Shopping Native Provider (`bing-shopping`) via Impit Chrome TLS impersonation.
|
|
47
|
+
* Parses embedded `CustomData` JSON + `<li class="br-item">` seller/rating cards with zero API keys and zero headless browsers (~400ms).
|
|
48
|
+
* When `targetSites` is set (e.g. `["jbhifi.com.au", "amazon.com.au"]`), queries per-site in parallel so even bot-gated retailers return live prices and direct product URLs.
|
|
49
|
+
*/
|
|
50
|
+
export declare function fetchBingShoppingNative(rawQuery: string, limit: number, userLocation?: UserLocationContext, targetSites?: string[], onOffer?: (offer: ProductOffer) => void): Promise<RawCandidateDocument[]>;
|
|
51
|
+
/**
|
|
52
|
+
* 0B. Google Shopping Provider (`google-shopping`).
|
|
53
|
+
* Tier 1: Serper `/shopping` endpoint when `SERPER_API_KEY` is configured.
|
|
54
|
+
* Tier 2 (Zero-key fallback): Shopping-intent Brave query ("<query> buy price") with snippet price extraction.
|
|
55
|
+
*/
|
|
56
|
+
export declare function fetchGoogleShoppingProvider(rawQuery: string, localizedQuery: string, limit: number, userLocation?: UserLocationContext, targetSites?: string[], onOffer?: (offer: ProductOffer) => void): Promise<RawCandidateDocument[]>;
|
|
57
|
+
/**
|
|
58
|
+
* 1. Brave Search Native HTML parser via Impit Chrome TLS impersonation (`search.brave.com/search`).
|
|
59
|
+
* Independent web index with zero API keys required.
|
|
60
|
+
*/
|
|
61
|
+
export declare function fetchBraveNativeSerp(query: string, limit: number, userLocation?: UserLocationContext): Promise<RawCandidateDocument[]>;
|
|
62
|
+
/**
|
|
63
|
+
* 3. Google News Search RSS (`news.google.com/rss/search`) with dynamic edition localization (`gl`, `hl`, `ceid`).
|
|
64
|
+
*/
|
|
65
|
+
export declare function fetchGoogleNewsSearchRss(query: string, limit: number, userLocation?: UserLocationContext, lang?: string, timeoutMs?: number): Promise<RawCandidateDocument[]>;
|
|
66
|
+
/**
|
|
67
|
+
* 6. ArXiv API (`export.arxiv.org/api/query`) + OpenAlex Scholarly Works API
|
|
68
|
+
* for scientific, ML/AI, biomedical, and peer-reviewed research paper search.
|
|
69
|
+
*/
|
|
70
|
+
export declare function buildArxivSearchQuery(rawQuery: string): string;
|
|
71
|
+
export declare function fetchArxivApi(query: string, limit: number): Promise<RawCandidateDocument[]>;
|
|
72
|
+
export declare function nvdKeywordFromQuery(query: string): string;
|
|
73
|
+
/**
|
|
74
|
+
* Exact CVE ids, cache first: hits come from Postgres (stale ones refresh in the
|
|
75
|
+
* background), and only misses go to NVD, one request each, capped at `cap`.
|
|
76
|
+
* Used for query ids and page-mentioned ids. Write-back happens in the pipeline
|
|
77
|
+
* once NVD and OSV records are merged.
|
|
78
|
+
*/
|
|
79
|
+
export declare function fetchNvdByIds(ids: string[], cap?: number): Promise<CveRecord[]>;
|
|
80
|
+
/** "lodash npm vulnerabilities" -> { name: "lodash", ecosystem: "npm" } */
|
|
81
|
+
export declare function osvPackageFromQuery(query: string): {
|
|
82
|
+
name: string;
|
|
83
|
+
ecosystem: string;
|
|
84
|
+
} | null;
|