webcrawl 1.2.3 → 1.2.5

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.
Files changed (114) hide show
  1. package/dist/cli.js +3 -2
  2. package/dist/core/engine/cache.d.ts +70 -0
  3. package/dist/core/engine/cache.js +297 -0
  4. package/dist/core/engine/crawl-policy.d.ts +36 -0
  5. package/dist/core/engine/crawl-policy.js +134 -0
  6. package/dist/core/engine/crawler.d.ts +151 -0
  7. package/dist/core/engine/crawler.js +885 -0
  8. package/dist/core/engine/fetcher.d.ts +66 -0
  9. package/dist/core/engine/fetcher.js +185 -0
  10. package/dist/core/engine/index.d.ts +4 -0
  11. package/dist/core/engine/index.js +4 -0
  12. package/dist/core/engine/markdown.d.ts +33 -0
  13. package/dist/core/engine/markdown.js +334 -0
  14. package/dist/core/engine/path-scope.d.ts +21 -0
  15. package/dist/core/engine/path-scope.js +88 -0
  16. package/dist/core/engine/safe-url.d.ts +23 -0
  17. package/dist/core/engine/safe-url.js +92 -0
  18. package/dist/core/engine/stealth.d.ts +79 -0
  19. package/dist/core/engine/stealth.js +155 -0
  20. package/dist/core/engine.d.ts +1 -0
  21. package/dist/core/engine.js +1 -0
  22. package/dist/core/extract/business.d.ts +28 -0
  23. package/dist/core/extract/business.js +344 -0
  24. package/dist/core/extract/currency.d.ts +15 -0
  25. package/dist/core/extract/currency.js +259 -0
  26. package/dist/core/extract/cve-cache.d.ts +62 -0
  27. package/dist/core/extract/cve-cache.js +277 -0
  28. package/dist/core/extract/cve.d.ts +57 -0
  29. package/dist/core/extract/cve.js +397 -0
  30. package/dist/core/extract/dedupe-key.d.ts +12 -0
  31. package/dist/core/extract/dedupe-key.js +36 -0
  32. package/dist/core/extract/flights.d.ts +37 -0
  33. package/dist/core/extract/flights.js +373 -0
  34. package/dist/core/extract/hotels.d.ts +35 -0
  35. package/dist/core/extract/hotels.js +473 -0
  36. package/dist/core/extract/index.d.ts +8 -0
  37. package/dist/core/extract/index.js +8 -0
  38. package/dist/core/extract/real-estate.d.ts +53 -0
  39. package/dist/core/extract/real-estate.js +835 -0
  40. package/dist/core/extract/scaledown.d.ts +14 -0
  41. package/dist/core/extract/scaledown.js +484 -0
  42. package/dist/core/extract/shopping.d.ts +44 -0
  43. package/dist/core/extract/shopping.js +393 -0
  44. package/dist/core/image-url.d.ts +5 -0
  45. package/dist/core/image-url.js +13 -0
  46. package/dist/core/interact/driver.d.ts +49 -0
  47. package/dist/core/interact/driver.js +264 -0
  48. package/dist/core/interact/remote.d.ts +41 -0
  49. package/dist/core/interact/remote.js +133 -0
  50. package/dist/core/interact/spans.d.ts +46 -0
  51. package/dist/core/interact/spans.js +32 -0
  52. package/dist/core/interact/validate.d.ts +34 -0
  53. package/dist/core/interact/validate.js +135 -0
  54. package/dist/core/interact/vm.d.ts +42 -0
  55. package/dist/core/interact/vm.js +296 -0
  56. package/dist/core/local-engine.d.ts +35 -0
  57. package/dist/core/local-engine.js +367 -0
  58. package/dist/core/parse/detect.d.ts +29 -0
  59. package/dist/core/parse/detect.js +152 -0
  60. package/dist/core/parse/fetch.d.ts +20 -0
  61. package/dist/core/parse/fetch.js +39 -0
  62. package/dist/core/parse/image.d.ts +13 -0
  63. package/dist/core/parse/image.js +100 -0
  64. package/dist/core/parse/index.d.ts +53 -0
  65. package/dist/core/parse/index.js +153 -0
  66. package/dist/core/parse/limits.d.ts +12 -0
  67. package/dist/core/parse/limits.js +29 -0
  68. package/dist/core/parse/media.d.ts +42 -0
  69. package/dist/core/parse/media.js +238 -0
  70. package/dist/core/parse/merge.d.ts +19 -0
  71. package/dist/core/parse/merge.js +48 -0
  72. package/dist/core/parse/ocr.d.ts +25 -0
  73. package/dist/core/parse/ocr.js +121 -0
  74. package/dist/core/parse/office.d.ts +28 -0
  75. package/dist/core/parse/office.js +83 -0
  76. package/dist/core/parse/pdf.d.ts +27 -0
  77. package/dist/core/parse/pdf.js +156 -0
  78. package/dist/core/parse/types.d.ts +38 -0
  79. package/dist/core/parse/types.js +1 -0
  80. package/dist/core/parse/youtube.d.ts +30 -0
  81. package/dist/core/parse/youtube.js +264 -0
  82. package/dist/core/ranker/decision.d.ts +28 -0
  83. package/dist/core/ranker/decision.js +151 -0
  84. package/dist/core/ranker/index.d.ts +5 -0
  85. package/dist/core/ranker/index.js +361 -0
  86. package/dist/core/ranker/lexical.d.ts +82 -0
  87. package/dist/core/ranker/lexical.js +642 -0
  88. package/dist/core/ranker/types.d.ts +90 -0
  89. package/dist/core/ranker/types.js +1 -0
  90. package/dist/core/ranker.d.ts +1 -0
  91. package/dist/core/ranker.js +1 -0
  92. package/dist/core/sandbox.d.ts +29 -0
  93. package/dist/core/sandbox.js +182 -0
  94. package/dist/core/search/catalog.d.ts +174 -0
  95. package/dist/core/search/catalog.js +488 -0
  96. package/dist/core/search/index.d.ts +3 -0
  97. package/dist/core/search/index.js +3 -0
  98. package/dist/core/search/pipeline.d.ts +7 -0
  99. package/dist/core/search/pipeline.js +704 -0
  100. package/dist/core/search/providers.d.ts +62 -0
  101. package/dist/core/search/providers.js +1175 -0
  102. package/dist/core/search.d.ts +1 -0
  103. package/dist/core/search.js +1 -0
  104. package/dist/core/targets/developer.d.ts +44 -0
  105. package/dist/core/targets/developer.js +338 -0
  106. package/dist/core/targets/index.d.ts +3 -0
  107. package/dist/core/targets/index.js +3 -0
  108. package/dist/core/targets/registry.d.ts +32 -0
  109. package/dist/core/targets/registry.js +411 -0
  110. package/dist/core/targets/types.d.ts +72 -0
  111. package/dist/core/targets/types.js +8 -0
  112. package/dist/core/targets.d.ts +1 -0
  113. package/dist/core/targets.js +1 -0
  114. package/package.json +82 -4
@@ -0,0 +1,62 @@
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 Jina fallback runs. */
18
+ export declare const JINA_FALLBACK_MIN_URLS = 3;
19
+ export declare function fetchJinaSearch(query: string, limit: number, req?: {
20
+ country?: string;
21
+ lang?: string;
22
+ }): Promise<RawCandidateDocument[]>;
23
+ /**
24
+ * 0A. Bing Shopping Native Provider (`bing-shopping`) via Impit Chrome TLS impersonation.
25
+ * Parses embedded `CustomData` JSON + `<li class="br-item">` seller/rating cards with zero API keys and zero headless browsers (~400ms).
26
+ * 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.
27
+ */
28
+ export declare function fetchBingShoppingNative(rawQuery: string, limit: number, userLocation?: UserLocationContext, targetSites?: string[], onOffer?: (offer: ProductOffer) => void): Promise<RawCandidateDocument[]>;
29
+ /**
30
+ * 0B. Google Shopping Provider (`google-shopping`).
31
+ * Tier 1: Serper `/shopping` endpoint when `SERPER_API_KEY` is configured.
32
+ * Tier 2 (Zero-key fallback): Shopping-intent Brave query ("<query> buy price") with snippet price extraction.
33
+ */
34
+ export declare function fetchGoogleShoppingProvider(rawQuery: string, localizedQuery: string, limit: number, userLocation?: UserLocationContext, targetSites?: string[], onOffer?: (offer: ProductOffer) => void): Promise<RawCandidateDocument[]>;
35
+ /**
36
+ * 1. Brave Search Native HTML parser via Impit Chrome TLS impersonation (`search.brave.com/search`).
37
+ * Independent web index with zero API keys required.
38
+ */
39
+ export declare function fetchBraveNativeSerp(query: string, limit: number, userLocation?: UserLocationContext): Promise<RawCandidateDocument[]>;
40
+ /**
41
+ * 3. Google News Search RSS (`news.google.com/rss/search`) with dynamic edition localization (`gl`, `hl`, `ceid`).
42
+ */
43
+ export declare function fetchGoogleNewsSearchRss(query: string, limit: number, userLocation?: UserLocationContext, lang?: string, timeoutMs?: number): Promise<RawCandidateDocument[]>;
44
+ /**
45
+ * 6. ArXiv API (`export.arxiv.org/api/query`) + OpenAlex Scholarly Works API
46
+ * for scientific, ML/AI, biomedical, and peer-reviewed research paper search.
47
+ */
48
+ export declare function buildArxivSearchQuery(rawQuery: string): string;
49
+ export declare function fetchArxivApi(query: string, limit: number): Promise<RawCandidateDocument[]>;
50
+ export declare function nvdKeywordFromQuery(query: string): string;
51
+ /**
52
+ * Exact CVE ids, cache first: hits come from Postgres (stale ones refresh in the
53
+ * background), and only misses go to NVD, one request each, capped at `cap`.
54
+ * Used for query ids and page-mentioned ids. Write-back happens in the pipeline
55
+ * once NVD and OSV records are merged.
56
+ */
57
+ export declare function fetchNvdByIds(ids: string[], cap?: number): Promise<CveRecord[]>;
58
+ /** "lodash npm vulnerabilities" -> { name: "lodash", ecosystem: "npm" } */
59
+ export declare function osvPackageFromQuery(query: string): {
60
+ name: string;
61
+ ecosystem: string;
62
+ } | null;