recker 1.0.43 → 1.0.44
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 +47 -0
- package/dist/bin/recker-linux-x64 +0 -0
- package/dist/bin/recker-macos-x64 +0 -0
- package/dist/bin/recker-win-x64.exe +0 -0
- package/dist/bin/rek.cjs +85152 -100207
- package/dist/browser/ai/adaptive-timeout.d.ts +50 -0
- package/dist/browser/ai/adaptive-timeout.js +208 -0
- package/dist/browser/ai/client.d.ts +22 -0
- package/dist/browser/ai/client.js +294 -0
- package/dist/browser/ai/index.d.ts +14 -0
- package/dist/browser/ai/index.js +11 -0
- package/dist/browser/ai/providers/anthropic.d.ts +63 -0
- package/dist/browser/ai/providers/anthropic.js +370 -0
- package/dist/browser/ai/providers/base.d.ts +48 -0
- package/dist/browser/ai/providers/base.js +150 -0
- package/dist/browser/ai/providers/google.d.ts +59 -0
- package/dist/browser/ai/providers/google.js +305 -0
- package/dist/browser/ai/providers/ollama.d.ts +44 -0
- package/dist/browser/ai/providers/ollama.js +240 -0
- package/dist/browser/ai/providers/openai.d.ts +64 -0
- package/dist/browser/ai/providers/openai.js +298 -0
- package/dist/browser/ai/rate-limiter.d.ts +43 -0
- package/dist/browser/ai/rate-limiter.js +215 -0
- package/dist/browser/ai/vector/index.d.ts +2 -0
- package/dist/browser/ai/vector/index.js +2 -0
- package/dist/browser/ai/vector/similarity.d.ts +2 -0
- package/dist/browser/ai/vector/similarity.js +27 -0
- package/dist/browser/ai/vector/store.d.ts +27 -0
- package/dist/browser/ai/vector/store.js +82 -0
- package/dist/browser/browser/cache.d.ts +2 -40
- package/dist/browser/browser/cache.js +2 -199
- package/dist/browser/browser/index.d.ts +8 -0
- package/dist/browser/browser/index.js +8 -0
- package/dist/browser/browser/recker.d.ts +8 -1
- package/dist/browser/browser/recker.js +8 -2
- package/dist/browser/cache/indexed-db.d.ts +10 -0
- package/dist/browser/cache/indexed-db.js +88 -0
- package/dist/browser/cache/service-worker-cache.d.ts +18 -0
- package/dist/browser/cache/service-worker-cache.js +103 -0
- package/dist/browser/cache.d.ts +2 -40
- package/dist/browser/cache.js +2 -199
- package/dist/browser/constants/user-agents.d.ts +7 -0
- package/dist/browser/constants/user-agents.js +7 -0
- package/dist/browser/core/client.d.ts +2 -0
- package/dist/browser/core/client.js +19 -1
- package/dist/browser/index.d.ts +8 -0
- package/dist/browser/index.js +8 -0
- package/dist/browser/plugins/har-recorder.d.ts +40 -0
- package/dist/browser/plugins/har-recorder.js +120 -0
- package/dist/browser/plugins/network-simulation.d.ts +7 -0
- package/dist/browser/plugins/network-simulation.js +13 -0
- package/dist/browser/presets/android.d.ts +2 -0
- package/dist/browser/presets/android.js +16 -0
- package/dist/browser/presets/anthropic.d.ts +8 -0
- package/dist/browser/presets/anthropic.js +27 -0
- package/dist/browser/presets/aws.d.ts +19 -0
- package/dist/browser/presets/aws.js +68 -0
- package/dist/browser/presets/azure-openai.d.ts +10 -0
- package/dist/browser/presets/azure-openai.js +35 -0
- package/dist/browser/presets/azure.d.ts +41 -0
- package/dist/browser/presets/azure.js +104 -0
- package/dist/browser/presets/chaturbate.d.ts +2 -0
- package/dist/browser/presets/chaturbate.js +17 -0
- package/dist/browser/presets/cloudflare.d.ts +12 -0
- package/dist/browser/presets/cloudflare.js +39 -0
- package/dist/browser/presets/cohere.d.ts +7 -0
- package/dist/browser/presets/cohere.js +22 -0
- package/dist/browser/presets/deepseek.d.ts +7 -0
- package/dist/browser/presets/deepseek.js +22 -0
- package/dist/browser/presets/digitalocean.d.ts +5 -0
- package/dist/browser/presets/digitalocean.js +16 -0
- package/dist/browser/presets/discord.d.ts +6 -0
- package/dist/browser/presets/discord.js +17 -0
- package/dist/browser/presets/elevenlabs.d.ts +6 -0
- package/dist/browser/presets/elevenlabs.js +20 -0
- package/dist/browser/presets/enhancers.d.ts +20 -0
- package/dist/browser/presets/enhancers.js +85 -0
- package/dist/browser/presets/fireworks.d.ts +7 -0
- package/dist/browser/presets/fireworks.js +22 -0
- package/dist/browser/presets/gcp.d.ts +34 -0
- package/dist/browser/presets/gcp.js +91 -0
- package/dist/browser/presets/gemini.d.ts +7 -0
- package/dist/browser/presets/gemini.js +23 -0
- package/dist/browser/presets/github.d.ts +6 -0
- package/dist/browser/presets/github.js +17 -0
- package/dist/browser/presets/gitlab.d.ts +6 -0
- package/dist/browser/presets/gitlab.js +16 -0
- package/dist/browser/presets/groq.d.ts +7 -0
- package/dist/browser/presets/groq.js +22 -0
- package/dist/browser/presets/hubspot.d.ts +9 -0
- package/dist/browser/presets/hubspot.js +28 -0
- package/dist/browser/presets/huggingface.d.ts +7 -0
- package/dist/browser/presets/huggingface.js +23 -0
- package/dist/browser/presets/index.d.ts +47 -0
- package/dist/browser/presets/index.js +47 -0
- package/dist/browser/presets/ios.d.ts +2 -0
- package/dist/browser/presets/ios.js +13 -0
- package/dist/browser/presets/linear.d.ts +5 -0
- package/dist/browser/presets/linear.js +16 -0
- package/dist/browser/presets/mailgun.d.ts +7 -0
- package/dist/browser/presets/mailgun.js +20 -0
- package/dist/browser/presets/meta.d.ts +10 -0
- package/dist/browser/presets/meta.js +33 -0
- package/dist/browser/presets/mistral.d.ts +7 -0
- package/dist/browser/presets/mistral.js +22 -0
- package/dist/browser/presets/notion.d.ts +6 -0
- package/dist/browser/presets/notion.js +17 -0
- package/dist/browser/presets/openai.d.ts +9 -0
- package/dist/browser/presets/openai.js +30 -0
- package/dist/browser/presets/oracle.d.ts +19 -0
- package/dist/browser/presets/oracle.js +117 -0
- package/dist/browser/presets/perplexity.d.ts +7 -0
- package/dist/browser/presets/perplexity.js +22 -0
- package/dist/browser/presets/pinecone.d.ts +8 -0
- package/dist/browser/presets/pinecone.js +42 -0
- package/dist/browser/presets/registry.d.ts +23 -0
- package/dist/browser/presets/registry.js +519 -0
- package/dist/browser/presets/replicate.d.ts +7 -0
- package/dist/browser/presets/replicate.js +23 -0
- package/dist/browser/presets/sendgrid.d.ts +6 -0
- package/dist/browser/presets/sendgrid.js +20 -0
- package/dist/browser/presets/sentry.d.ts +11 -0
- package/dist/browser/presets/sentry.js +48 -0
- package/dist/browser/presets/sinch.d.ts +9 -0
- package/dist/browser/presets/sinch.js +39 -0
- package/dist/browser/presets/slack.d.ts +5 -0
- package/dist/browser/presets/slack.js +16 -0
- package/dist/browser/presets/square.d.ts +10 -0
- package/dist/browser/presets/square.js +33 -0
- package/dist/browser/presets/stripe.d.ts +7 -0
- package/dist/browser/presets/stripe.js +23 -0
- package/dist/browser/presets/supabase.d.ts +6 -0
- package/dist/browser/presets/supabase.js +18 -0
- package/dist/browser/presets/tiktok.d.ts +10 -0
- package/dist/browser/presets/tiktok.js +38 -0
- package/dist/browser/presets/together.d.ts +7 -0
- package/dist/browser/presets/together.js +22 -0
- package/dist/browser/presets/twilio.d.ts +6 -0
- package/dist/browser/presets/twilio.js +17 -0
- package/dist/browser/presets/vercel.d.ts +6 -0
- package/dist/browser/presets/vercel.js +23 -0
- package/dist/browser/presets/vultr.d.ts +5 -0
- package/dist/browser/presets/vultr.js +16 -0
- package/dist/browser/presets/xai.d.ts +8 -0
- package/dist/browser/presets/xai.js +23 -0
- package/dist/browser/presets/youtube.d.ts +5 -0
- package/dist/browser/presets/youtube.js +20 -0
- package/dist/browser/recker.d.ts +8 -1
- package/dist/browser/recker.js +8 -2
- package/dist/browser/scrape/document.d.ts +5 -4
- package/dist/browser/scrape/document.js +89 -76
- package/dist/browser/scrape/element.d.ts +10 -8
- package/dist/browser/scrape/element.js +295 -81
- package/dist/browser/scrape/extractors.d.ts +11 -11
- package/dist/browser/scrape/extractors.js +145 -113
- package/dist/browser/scrape/parser/back.d.ts +1 -0
- package/dist/browser/scrape/parser/back.js +3 -0
- package/dist/browser/scrape/parser/index.d.ts +20 -0
- package/dist/browser/scrape/parser/index.js +19 -0
- package/dist/browser/scrape/parser/matcher.d.ts +30 -0
- package/dist/browser/scrape/parser/matcher.js +99 -0
- package/dist/browser/scrape/parser/nodes/comment.d.ts +12 -0
- package/dist/browser/scrape/parser/nodes/comment.js +21 -0
- package/dist/browser/scrape/parser/nodes/html.d.ts +110 -0
- package/dist/browser/scrape/parser/nodes/html.js +978 -0
- package/dist/browser/scrape/parser/nodes/node.d.ts +18 -0
- package/dist/browser/scrape/parser/nodes/node.js +31 -0
- package/dist/browser/scrape/parser/nodes/text.d.ts +14 -0
- package/dist/browser/scrape/parser/nodes/text.js +30 -0
- package/dist/browser/scrape/parser/nodes/type.d.ts +6 -0
- package/dist/browser/scrape/parser/nodes/type.js +7 -0
- package/dist/browser/scrape/parser/parse.d.ts +1 -0
- package/dist/browser/scrape/parser/parse.js +1 -0
- package/dist/browser/scrape/parser/valid.d.ts +2 -0
- package/dist/browser/scrape/parser/valid.js +5 -0
- package/dist/browser/scrape/parser/void-tag.d.ts +7 -0
- package/dist/browser/scrape/parser/void-tag.js +43 -0
- package/dist/browser/scrape/types.d.ts +7 -0
- package/dist/browser/seo/analyzer.d.ts +59 -0
- package/dist/browser/seo/analyzer.js +1399 -0
- package/dist/browser/seo/keywords.d.ts +16 -0
- package/dist/browser/seo/keywords.js +55 -0
- package/dist/browser/seo/rules/accessibility.d.ts +2 -0
- package/dist/browser/seo/rules/accessibility.js +733 -0
- package/dist/browser/seo/rules/ai-search.d.ts +2 -0
- package/dist/browser/seo/rules/ai-search.js +436 -0
- package/dist/browser/seo/rules/analytics.d.ts +2 -0
- package/dist/browser/seo/rules/analytics.js +306 -0
- package/dist/browser/seo/rules/best-practices.d.ts +2 -0
- package/dist/browser/seo/rules/best-practices.js +195 -0
- package/dist/browser/seo/rules/canonical.d.ts +12 -0
- package/dist/browser/seo/rules/canonical.js +270 -0
- package/dist/browser/seo/rules/content.d.ts +2 -0
- package/dist/browser/seo/rules/content.js +522 -0
- package/dist/browser/seo/rules/crawl.d.ts +2 -0
- package/dist/browser/seo/rules/crawl.js +435 -0
- package/dist/browser/seo/rules/cwv.d.ts +2 -0
- package/dist/browser/seo/rules/cwv.js +248 -0
- package/dist/browser/seo/rules/ecommerce.d.ts +2 -0
- package/dist/browser/seo/rules/ecommerce.js +312 -0
- package/dist/browser/seo/rules/i18n.d.ts +2 -0
- package/dist/browser/seo/rules/i18n.js +288 -0
- package/dist/browser/seo/rules/images.d.ts +2 -0
- package/dist/browser/seo/rules/images.js +255 -0
- package/dist/browser/seo/rules/index.d.ts +52 -0
- package/dist/browser/seo/rules/index.js +159 -0
- package/dist/browser/seo/rules/internal-linking.d.ts +2 -0
- package/dist/browser/seo/rules/internal-linking.js +394 -0
- package/dist/browser/seo/rules/links.d.ts +2 -0
- package/dist/browser/seo/rules/links.js +498 -0
- package/dist/browser/seo/rules/local.d.ts +2 -0
- package/dist/browser/seo/rules/local.js +289 -0
- package/dist/browser/seo/rules/meta.d.ts +2 -0
- package/dist/browser/seo/rules/meta.js +805 -0
- package/dist/browser/seo/rules/mobile.d.ts +2 -0
- package/dist/browser/seo/rules/mobile.js +161 -0
- package/dist/browser/seo/rules/performance.d.ts +2 -0
- package/dist/browser/seo/rules/performance.js +738 -0
- package/dist/browser/seo/rules/pwa.d.ts +2 -0
- package/dist/browser/seo/rules/pwa.js +299 -0
- package/dist/browser/seo/rules/readability.d.ts +2 -0
- package/dist/browser/seo/rules/readability.js +264 -0
- package/dist/browser/seo/rules/redirects.d.ts +16 -0
- package/dist/browser/seo/rules/redirects.js +199 -0
- package/dist/browser/seo/rules/resources.d.ts +2 -0
- package/dist/browser/seo/rules/resources.js +390 -0
- package/dist/browser/seo/rules/schema.d.ts +2 -0
- package/dist/browser/seo/rules/schema.js +379 -0
- package/dist/browser/seo/rules/security.d.ts +2 -0
- package/dist/browser/seo/rules/security.js +877 -0
- package/dist/browser/seo/rules/social.d.ts +2 -0
- package/dist/browser/seo/rules/social.js +603 -0
- package/dist/browser/seo/rules/structural.d.ts +2 -0
- package/dist/browser/seo/rules/structural.js +223 -0
- package/dist/browser/seo/rules/technical-advanced.d.ts +10 -0
- package/dist/browser/seo/rules/technical-advanced.js +289 -0
- package/dist/browser/seo/rules/technical.d.ts +2 -0
- package/dist/browser/seo/rules/technical.js +480 -0
- package/dist/browser/seo/rules/thresholds.d.ts +196 -0
- package/dist/browser/seo/rules/thresholds.js +118 -0
- package/dist/browser/seo/rules/types.d.ts +498 -0
- package/dist/browser/seo/rules/types.js +11 -0
- package/dist/browser/seo/types.d.ts +211 -0
- package/dist/browser/seo/types.js +1 -0
- package/dist/browser/transport/curl.d.ts +4 -0
- package/dist/browser/transport/curl.js +101 -0
- package/dist/browser/transport/undici.js +1 -2
- package/dist/browser/transport/worker.d.ts +18 -0
- package/dist/browser/transport/worker.js +278 -0
- package/dist/browser/types/index.d.ts +4 -1
- package/dist/browser/utils/binary-manager.d.ts +4 -0
- package/dist/browser/utils/binary-manager.js +72 -0
- package/dist/browser/utils/user-agent.js +2 -13
- package/dist/cache/indexed-db.d.ts +10 -0
- package/dist/cache/indexed-db.js +88 -0
- package/dist/cache/service-worker-cache.d.ts +18 -0
- package/dist/cache/service-worker-cache.js +103 -0
- package/dist/cli/commands/ai.d.ts +2 -0
- package/dist/cli/commands/ai.js +162 -0
- package/dist/cli/commands/bench.d.ts +2 -0
- package/dist/cli/commands/bench.js +51 -0
- package/dist/cli/commands/dns.d.ts +2 -0
- package/dist/cli/commands/dns.js +295 -0
- package/dist/cli/commands/har.d.ts +2 -0
- package/dist/cli/commands/har.js +171 -0
- package/dist/cli/commands/hls.d.ts +2 -0
- package/dist/cli/commands/hls.js +192 -0
- package/dist/cli/commands/network.d.ts +2 -0
- package/dist/cli/commands/network.js +288 -0
- package/dist/cli/commands/protocols.d.ts +2 -0
- package/dist/cli/commands/protocols.js +344 -0
- package/dist/cli/commands/scrape.d.ts +2 -0
- package/dist/cli/commands/scrape.js +176 -0
- package/dist/cli/commands/security.d.ts +2 -0
- package/dist/cli/commands/security.js +57 -0
- package/dist/cli/commands/seo.d.ts +2 -0
- package/dist/cli/commands/seo.js +125 -0
- package/dist/cli/commands/serve.d.ts +2 -0
- package/dist/cli/commands/serve.js +531 -0
- package/dist/cli/commands/spider.d.ts +3 -0
- package/dist/cli/commands/spider.js +456 -0
- package/dist/cli/commands/utils.d.ts +2 -0
- package/dist/cli/commands/utils.js +176 -0
- package/dist/cli/commands/vector.d.ts +2 -0
- package/dist/cli/commands/vector.js +158 -0
- package/dist/cli/handler.d.ts +2 -2
- package/dist/cli/handler.js +6 -6
- package/dist/cli/helpers.d.ts +7 -0
- package/dist/cli/helpers.js +128 -0
- package/dist/cli/index.js +96 -5228
- package/dist/cli/parser/help.d.ts +2 -0
- package/dist/cli/parser/help.js +52 -0
- package/dist/cli/parser/index.d.ts +3 -0
- package/dist/cli/parser/index.js +3 -0
- package/dist/cli/parser/parser.d.ts +4 -0
- package/dist/cli/parser/parser.js +146 -0
- package/dist/cli/parser/types.d.ts +41 -0
- package/dist/cli/parser/types.js +1 -0
- package/dist/cli/presets.d.ts +1 -1
- package/dist/cli/presets.js +1 -1
- package/dist/cli/router.d.ts +36 -0
- package/dist/cli/router.js +195 -0
- package/dist/cli/tui/ai-chat.js +1 -1
- package/dist/cli/tui/commands/context.d.ts +9 -0
- package/dist/cli/tui/commands/context.js +1 -0
- package/dist/cli/tui/commands/dns.d.ts +10 -0
- package/dist/cli/tui/commands/dns.js +461 -0
- package/dist/cli/tui/commands/hls.d.ts +2 -0
- package/dist/cli/tui/commands/hls.js +162 -0
- package/dist/cli/tui/commands/ip.d.ts +2 -0
- package/dist/cli/tui/commands/ip.js +45 -0
- package/dist/cli/tui/commands/network.d.ts +3 -0
- package/dist/cli/tui/commands/network.js +81 -0
- package/dist/cli/tui/commands/protocols.d.ts +6 -0
- package/dist/cli/tui/commands/protocols.js +531 -0
- package/dist/cli/tui/commands/security.d.ts +2 -0
- package/dist/cli/tui/commands/security.js +48 -0
- package/dist/cli/tui/commands/seo.d.ts +2 -0
- package/dist/cli/tui/commands/seo.js +74 -0
- package/dist/cli/tui/context.d.ts +12 -0
- package/dist/cli/tui/context.js +1 -0
- package/dist/cli/tui/shell.d.ts +11 -20
- package/dist/cli/tui/shell.js +216 -1873
- package/dist/constants/user-agents.d.ts +7 -0
- package/dist/constants/user-agents.js +7 -0
- package/dist/core/client.d.ts +2 -0
- package/dist/core/client.js +19 -1
- package/dist/index.d.ts +1 -0
- package/dist/index.js +1 -0
- package/dist/mcp/cli.js +2 -3
- package/dist/mcp/data/embeddings.json +1 -1
- package/dist/mcp/tools/network.js +298 -158
- package/dist/plugins/har-player.d.ts +23 -0
- package/dist/plugins/har-player.js +49 -0
- package/dist/plugins/har-recorder.d.ts +37 -3
- package/dist/plugins/har-recorder.js +116 -63
- package/dist/plugins/network-simulation.d.ts +7 -0
- package/dist/plugins/network-simulation.js +13 -0
- package/dist/presets/android.d.ts +2 -0
- package/dist/presets/android.js +16 -0
- package/dist/presets/chaturbate.d.ts +2 -0
- package/dist/presets/chaturbate.js +17 -0
- package/dist/presets/elevenlabs.d.ts +6 -0
- package/dist/presets/elevenlabs.js +20 -0
- package/dist/presets/enhancers.d.ts +20 -0
- package/dist/presets/enhancers.js +85 -0
- package/dist/presets/hubspot.d.ts +9 -0
- package/dist/presets/hubspot.js +28 -0
- package/dist/presets/index.d.ts +10 -0
- package/dist/presets/index.js +10 -0
- package/dist/presets/ios.d.ts +2 -0
- package/dist/presets/ios.js +13 -0
- package/dist/presets/pinecone.d.ts +8 -0
- package/dist/presets/pinecone.js +42 -0
- package/dist/presets/registry.js +60 -0
- package/dist/presets/sendgrid.d.ts +6 -0
- package/dist/presets/sendgrid.js +20 -0
- package/dist/presets/sentry.d.ts +11 -0
- package/dist/presets/sentry.js +48 -0
- package/dist/presets/square.d.ts +10 -0
- package/dist/presets/square.js +33 -0
- package/dist/recker.d.ts +3 -0
- package/dist/recker.js +4 -0
- package/dist/scrape/document.d.ts +5 -4
- package/dist/scrape/document.js +89 -76
- package/dist/scrape/element.d.ts +10 -8
- package/dist/scrape/element.js +295 -81
- package/dist/scrape/extractors.d.ts +11 -11
- package/dist/scrape/extractors.js +145 -113
- package/dist/scrape/index.d.ts +2 -0
- package/dist/scrape/index.js +1 -0
- package/dist/scrape/parser/back.d.ts +1 -0
- package/dist/scrape/parser/back.js +3 -0
- package/dist/scrape/parser/index.d.ts +20 -0
- package/dist/scrape/parser/index.js +19 -0
- package/dist/scrape/parser/matcher.d.ts +30 -0
- package/dist/scrape/parser/matcher.js +99 -0
- package/dist/scrape/parser/nodes/comment.d.ts +12 -0
- package/dist/scrape/parser/nodes/comment.js +21 -0
- package/dist/scrape/parser/nodes/html.d.ts +110 -0
- package/dist/scrape/parser/nodes/html.js +978 -0
- package/dist/scrape/parser/nodes/node.d.ts +18 -0
- package/dist/scrape/parser/nodes/node.js +31 -0
- package/dist/scrape/parser/nodes/text.d.ts +14 -0
- package/dist/scrape/parser/nodes/text.js +30 -0
- package/dist/scrape/parser/nodes/type.d.ts +6 -0
- package/dist/scrape/parser/nodes/type.js +7 -0
- package/dist/scrape/parser/parse.d.ts +1 -0
- package/dist/scrape/parser/parse.js +1 -0
- package/dist/scrape/parser/valid.d.ts +2 -0
- package/dist/scrape/parser/valid.js +5 -0
- package/dist/scrape/parser/void-tag.d.ts +7 -0
- package/dist/scrape/parser/void-tag.js +43 -0
- package/dist/scrape/spider.d.ts +19 -0
- package/dist/scrape/spider.js +28 -3
- package/dist/scrape/types.d.ts +7 -0
- package/dist/seo/analyzer.d.ts +15 -5
- package/dist/seo/analyzer.js +636 -175
- package/dist/seo/formatter.d.ts +16 -0
- package/dist/seo/formatter.js +228 -0
- package/dist/seo/index.d.ts +2 -0
- package/dist/seo/index.js +1 -0
- package/dist/seo/keywords.d.ts +16 -0
- package/dist/seo/keywords.js +55 -0
- package/dist/seo/rules/accessibility.js +96 -57
- package/dist/seo/rules/ai-search.js +44 -31
- package/dist/seo/rules/analytics.d.ts +2 -0
- package/dist/seo/rules/analytics.js +306 -0
- package/dist/seo/rules/best-practices.js +21 -14
- package/dist/seo/rules/canonical.js +53 -32
- package/dist/seo/rules/content.js +317 -31
- package/dist/seo/rules/crawl.js +55 -40
- package/dist/seo/rules/cwv.js +21 -15
- package/dist/seo/rules/ecommerce.js +82 -22
- package/dist/seo/rules/i18n.js +75 -36
- package/dist/seo/rules/images.js +109 -30
- package/dist/seo/rules/index.js +2 -0
- package/dist/seo/rules/internal-linking.js +58 -39
- package/dist/seo/rules/links.js +79 -52
- package/dist/seo/rules/local.js +49 -25
- package/dist/seo/rules/meta.js +339 -81
- package/dist/seo/rules/mobile.js +112 -2
- package/dist/seo/rules/performance.js +434 -66
- package/dist/seo/rules/pwa.js +36 -39
- package/dist/seo/rules/readability.js +31 -22
- package/dist/seo/rules/redirects.js +21 -15
- package/dist/seo/rules/resources.js +59 -42
- package/dist/seo/rules/schema.js +333 -8
- package/dist/seo/rules/security.js +142 -80
- package/dist/seo/rules/social.js +277 -47
- package/dist/seo/rules/structural.js +87 -19
- package/dist/seo/rules/technical-advanced.js +30 -24
- package/dist/seo/rules/technical.js +243 -42
- package/dist/seo/rules/types.d.ts +53 -1
- package/dist/seo/seo-spider.d.ts +22 -0
- package/dist/seo/seo-spider.js +77 -13
- package/dist/seo/types.d.ts +8 -1
- package/dist/seo/validators/llms-txt.js +19 -0
- package/dist/seo/validators/rss.d.ts +11 -0
- package/dist/seo/validators/rss.js +93 -0
- package/dist/seo/validators/sitemap.js +36 -26
- package/dist/transport/curl.d.ts +4 -0
- package/dist/transport/curl.js +101 -0
- package/dist/transport/udp.js +0 -1
- package/dist/transport/undici.js +1 -2
- package/dist/transport/worker.d.ts +18 -0
- package/dist/transport/worker.js +278 -0
- package/dist/types/index.d.ts +4 -1
- package/dist/utils/binary-manager.d.ts +4 -0
- package/dist/utils/binary-manager.js +72 -0
- package/dist/utils/optional-require.d.ts +7 -8
- package/dist/utils/optional-require.js +2 -21
- package/dist/utils/upload.d.ts +6 -0
- package/dist/utils/upload.js +11 -0
- package/dist/utils/user-agent.js +2 -13
- package/dist/version.js +1 -1
- package/package.json +12 -6
- package/dist/browser/utils/optional-require.d.ts +0 -19
- package/dist/browser/utils/optional-require.js +0 -105
package/dist/scrape/element.js
CHANGED
|
@@ -1,176 +1,390 @@
|
|
|
1
|
+
import { is } from 'css-select';
|
|
2
|
+
import { NodeType, parse, } from './parser/index.js';
|
|
3
|
+
import Matcher from './parser/matcher.js';
|
|
1
4
|
export class ScrapeElement {
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
|
|
5
|
+
elements;
|
|
6
|
+
constructor(elements) {
|
|
7
|
+
if (Array.isArray(elements)) {
|
|
8
|
+
this.elements = elements.filter((el) => el.nodeType === NodeType.ELEMENT_NODE);
|
|
9
|
+
}
|
|
10
|
+
else {
|
|
11
|
+
this.elements =
|
|
12
|
+
elements.nodeType === NodeType.ELEMENT_NODE
|
|
13
|
+
? [elements]
|
|
14
|
+
: [];
|
|
15
|
+
}
|
|
7
16
|
}
|
|
8
17
|
find(selector) {
|
|
9
|
-
|
|
18
|
+
const found = [];
|
|
19
|
+
this.elements.forEach((el) => {
|
|
20
|
+
found.push(...el.querySelectorAll(selector));
|
|
21
|
+
});
|
|
22
|
+
return new ScrapeElement(found);
|
|
10
23
|
}
|
|
11
24
|
parent(selector) {
|
|
12
|
-
const
|
|
13
|
-
|
|
25
|
+
const parents = [];
|
|
26
|
+
this.elements.forEach((el) => {
|
|
27
|
+
const p = el.parentNode;
|
|
28
|
+
if (p && p.nodeType === NodeType.ELEMENT_NODE) {
|
|
29
|
+
if (!selector || is(p, selector, { adapter: Matcher })) {
|
|
30
|
+
if (!parents.includes(p)) {
|
|
31
|
+
parents.push(p);
|
|
32
|
+
}
|
|
33
|
+
}
|
|
34
|
+
}
|
|
35
|
+
});
|
|
36
|
+
return new ScrapeElement(parents);
|
|
14
37
|
}
|
|
15
38
|
children(selector) {
|
|
16
|
-
const children =
|
|
17
|
-
|
|
39
|
+
const children = [];
|
|
40
|
+
this.elements.forEach((el) => {
|
|
41
|
+
el.childNodes.forEach((child) => {
|
|
42
|
+
if (child.nodeType === NodeType.ELEMENT_NODE) {
|
|
43
|
+
const childEl = child;
|
|
44
|
+
if (!selector || is(childEl, selector, { adapter: Matcher })) {
|
|
45
|
+
children.push(childEl);
|
|
46
|
+
}
|
|
47
|
+
}
|
|
48
|
+
});
|
|
49
|
+
});
|
|
50
|
+
return new ScrapeElement(children);
|
|
18
51
|
}
|
|
19
52
|
siblings(selector) {
|
|
20
|
-
const siblings =
|
|
21
|
-
|
|
53
|
+
const siblings = [];
|
|
54
|
+
this.elements.forEach((el) => {
|
|
55
|
+
const parent = el.parentNode;
|
|
56
|
+
if (parent) {
|
|
57
|
+
parent.childNodes.forEach((child) => {
|
|
58
|
+
if (child !== el &&
|
|
59
|
+
child.nodeType === NodeType.ELEMENT_NODE) {
|
|
60
|
+
const childEl = child;
|
|
61
|
+
if (!selector || is(childEl, selector, { adapter: Matcher })) {
|
|
62
|
+
if (!siblings.includes(childEl)) {
|
|
63
|
+
siblings.push(childEl);
|
|
64
|
+
}
|
|
65
|
+
}
|
|
66
|
+
}
|
|
67
|
+
});
|
|
68
|
+
}
|
|
69
|
+
});
|
|
70
|
+
return new ScrapeElement(siblings);
|
|
22
71
|
}
|
|
23
72
|
next(selector) {
|
|
24
|
-
const
|
|
25
|
-
|
|
73
|
+
const nexts = [];
|
|
74
|
+
this.elements.forEach((el) => {
|
|
75
|
+
let curr = el.nextElementSibling;
|
|
76
|
+
while (curr) {
|
|
77
|
+
if (!selector || is(curr, selector, { adapter: Matcher })) {
|
|
78
|
+
nexts.push(curr);
|
|
79
|
+
break;
|
|
80
|
+
}
|
|
81
|
+
break;
|
|
82
|
+
}
|
|
83
|
+
});
|
|
84
|
+
return new ScrapeElement(nexts);
|
|
26
85
|
}
|
|
27
86
|
prev(selector) {
|
|
28
|
-
const
|
|
29
|
-
|
|
87
|
+
const prevs = [];
|
|
88
|
+
this.elements.forEach((el) => {
|
|
89
|
+
let curr = el.previousElementSibling;
|
|
90
|
+
if (curr) {
|
|
91
|
+
if (!selector || is(curr, selector, { adapter: Matcher })) {
|
|
92
|
+
prevs.push(curr);
|
|
93
|
+
}
|
|
94
|
+
}
|
|
95
|
+
});
|
|
96
|
+
return new ScrapeElement(prevs);
|
|
30
97
|
}
|
|
31
98
|
nextAll(selector) {
|
|
32
|
-
const
|
|
33
|
-
|
|
99
|
+
const nexts = [];
|
|
100
|
+
this.elements.forEach((el) => {
|
|
101
|
+
let curr = el.nextElementSibling;
|
|
102
|
+
while (curr) {
|
|
103
|
+
if (!selector || is(curr, selector, { adapter: Matcher })) {
|
|
104
|
+
nexts.push(curr);
|
|
105
|
+
}
|
|
106
|
+
curr = curr.nextElementSibling;
|
|
107
|
+
}
|
|
108
|
+
});
|
|
109
|
+
return new ScrapeElement(nexts);
|
|
34
110
|
}
|
|
35
111
|
prevAll(selector) {
|
|
36
|
-
const
|
|
37
|
-
|
|
112
|
+
const prevs = [];
|
|
113
|
+
this.elements.forEach((el) => {
|
|
114
|
+
let curr = el.previousElementSibling;
|
|
115
|
+
while (curr) {
|
|
116
|
+
if (!selector || is(curr, selector, { adapter: Matcher })) {
|
|
117
|
+
prevs.push(curr);
|
|
118
|
+
}
|
|
119
|
+
curr = curr.previousElementSibling;
|
|
120
|
+
}
|
|
121
|
+
});
|
|
122
|
+
return new ScrapeElement(prevs);
|
|
38
123
|
}
|
|
39
124
|
closest(selector) {
|
|
40
|
-
|
|
125
|
+
const closests = [];
|
|
126
|
+
this.elements.forEach((el) => {
|
|
127
|
+
const found = el.closest(selector);
|
|
128
|
+
if (found) {
|
|
129
|
+
if (!closests.includes(found)) {
|
|
130
|
+
closests.push(found);
|
|
131
|
+
}
|
|
132
|
+
}
|
|
133
|
+
});
|
|
134
|
+
return new ScrapeElement(closests);
|
|
41
135
|
}
|
|
42
136
|
first() {
|
|
43
|
-
return new ScrapeElement(this
|
|
137
|
+
return new ScrapeElement(this.elements.slice(0, 1));
|
|
44
138
|
}
|
|
45
139
|
last() {
|
|
46
|
-
return new ScrapeElement(this
|
|
140
|
+
return new ScrapeElement(this.elements.slice(-1));
|
|
47
141
|
}
|
|
48
142
|
eq(index) {
|
|
49
|
-
|
|
50
|
-
|
|
51
|
-
|
|
52
|
-
|
|
143
|
+
if (index < 0)
|
|
144
|
+
index = this.elements.length + index;
|
|
145
|
+
return new ScrapeElement(this.elements.slice(index, index + 1));
|
|
146
|
+
}
|
|
147
|
+
filter(selectorOrCallback) {
|
|
148
|
+
if (typeof selectorOrCallback === 'string') {
|
|
149
|
+
const filtered = this.elements.filter((el) => is(el, selectorOrCallback, { adapter: Matcher }));
|
|
150
|
+
return new ScrapeElement(filtered);
|
|
151
|
+
}
|
|
152
|
+
else {
|
|
153
|
+
const filtered = this.elements.filter((el, index) => selectorOrCallback(new ScrapeElement(el), index));
|
|
154
|
+
return new ScrapeElement(filtered);
|
|
155
|
+
}
|
|
53
156
|
}
|
|
54
157
|
not(selector) {
|
|
55
|
-
|
|
158
|
+
const filtered = this.elements.filter((el) => !is(el, selector, { adapter: Matcher }));
|
|
159
|
+
return new ScrapeElement(filtered);
|
|
56
160
|
}
|
|
57
161
|
has(selector) {
|
|
58
|
-
|
|
162
|
+
const has = this.elements.filter((el) => {
|
|
163
|
+
return el.querySelector(selector) !== null;
|
|
164
|
+
});
|
|
165
|
+
return new ScrapeElement(has);
|
|
59
166
|
}
|
|
60
167
|
add(selector) {
|
|
61
|
-
|
|
168
|
+
if (selector.trim().startsWith('<')) {
|
|
169
|
+
const parsed = parse(selector);
|
|
170
|
+
return new ScrapeElement([...this.elements, ...parsed.children]);
|
|
171
|
+
}
|
|
172
|
+
return this;
|
|
62
173
|
}
|
|
63
174
|
parents(selector) {
|
|
64
|
-
const parents =
|
|
65
|
-
|
|
175
|
+
const parents = [];
|
|
176
|
+
this.elements.forEach((el) => {
|
|
177
|
+
let p = el.parentNode;
|
|
178
|
+
while (p && p.nodeType === NodeType.ELEMENT_NODE) {
|
|
179
|
+
const pEl = p;
|
|
180
|
+
if (!selector || is(pEl, selector, { adapter: Matcher })) {
|
|
181
|
+
if (!parents.includes(pEl)) {
|
|
182
|
+
parents.push(pEl);
|
|
183
|
+
}
|
|
184
|
+
}
|
|
185
|
+
p = p.parentNode;
|
|
186
|
+
}
|
|
187
|
+
});
|
|
188
|
+
return new ScrapeElement(parents);
|
|
189
|
+
}
|
|
190
|
+
parentsUntil(selector) {
|
|
191
|
+
const parents = [];
|
|
192
|
+
this.elements.forEach((el) => {
|
|
193
|
+
let p = el.parentNode;
|
|
194
|
+
while (p && p.nodeType === NodeType.ELEMENT_NODE) {
|
|
195
|
+
const pEl = p;
|
|
196
|
+
if (is(pEl, selector, { adapter: Matcher })) {
|
|
197
|
+
break;
|
|
198
|
+
}
|
|
199
|
+
if (!parents.includes(pEl)) {
|
|
200
|
+
parents.push(pEl);
|
|
201
|
+
}
|
|
202
|
+
p = p.parentNode;
|
|
203
|
+
}
|
|
204
|
+
});
|
|
205
|
+
return new ScrapeElement(parents);
|
|
206
|
+
}
|
|
207
|
+
nextUntil(selector) {
|
|
208
|
+
const nexts = [];
|
|
209
|
+
this.elements.forEach((el) => {
|
|
210
|
+
let curr = el.nextElementSibling;
|
|
211
|
+
while (curr) {
|
|
212
|
+
if (is(curr, selector, { adapter: Matcher })) {
|
|
213
|
+
break;
|
|
214
|
+
}
|
|
215
|
+
nexts.push(curr);
|
|
216
|
+
curr = curr.nextElementSibling;
|
|
217
|
+
}
|
|
218
|
+
});
|
|
219
|
+
return new ScrapeElement(nexts);
|
|
220
|
+
}
|
|
221
|
+
prevUntil(selector) {
|
|
222
|
+
const prevs = [];
|
|
223
|
+
this.elements.forEach((el) => {
|
|
224
|
+
let curr = el.previousElementSibling;
|
|
225
|
+
while (curr) {
|
|
226
|
+
if (is(curr, selector, { adapter: Matcher })) {
|
|
227
|
+
break;
|
|
228
|
+
}
|
|
229
|
+
prevs.push(curr);
|
|
230
|
+
curr = curr.previousElementSibling;
|
|
231
|
+
}
|
|
232
|
+
});
|
|
233
|
+
return new ScrapeElement(prevs);
|
|
234
|
+
}
|
|
235
|
+
slice(start, end) {
|
|
236
|
+
return new ScrapeElement(this.elements.slice(start, end));
|
|
66
237
|
}
|
|
67
238
|
contents() {
|
|
68
|
-
|
|
239
|
+
const contents = [];
|
|
240
|
+
this.elements.forEach(el => {
|
|
241
|
+
el.childNodes.forEach(child => {
|
|
242
|
+
if (child.nodeType === NodeType.ELEMENT_NODE) {
|
|
243
|
+
contents.push(child);
|
|
244
|
+
}
|
|
245
|
+
});
|
|
246
|
+
});
|
|
247
|
+
return new ScrapeElement(contents);
|
|
69
248
|
}
|
|
70
249
|
text() {
|
|
71
|
-
return this
|
|
250
|
+
return this.elements.map((el) => el.text).join('');
|
|
72
251
|
}
|
|
73
252
|
html() {
|
|
74
|
-
|
|
253
|
+
if (this.elements.length > 0) {
|
|
254
|
+
return this.elements[0].innerHTML;
|
|
255
|
+
}
|
|
256
|
+
return null;
|
|
75
257
|
}
|
|
76
258
|
outerHtml() {
|
|
77
|
-
|
|
259
|
+
if (this.elements.length > 0) {
|
|
260
|
+
return this.elements[0].outerHTML;
|
|
261
|
+
}
|
|
262
|
+
return '';
|
|
78
263
|
}
|
|
79
264
|
attr(name) {
|
|
80
|
-
|
|
265
|
+
if (this.elements.length > 0) {
|
|
266
|
+
return this.elements[0].getAttribute(name);
|
|
267
|
+
}
|
|
268
|
+
return undefined;
|
|
81
269
|
}
|
|
82
270
|
attrs() {
|
|
83
|
-
|
|
84
|
-
|
|
85
|
-
if (el && 'attribs' in el) {
|
|
86
|
-
Object.assign(attributes, el.attribs);
|
|
271
|
+
if (this.elements.length > 0) {
|
|
272
|
+
return this.elements[0].attributes;
|
|
87
273
|
}
|
|
88
|
-
return
|
|
274
|
+
return {};
|
|
89
275
|
}
|
|
90
276
|
data(name) {
|
|
277
|
+
if (this.elements.length === 0)
|
|
278
|
+
return undefined;
|
|
279
|
+
const el = this.elements[0];
|
|
280
|
+
const attrs = el.attributes;
|
|
91
281
|
if (name) {
|
|
92
|
-
return
|
|
282
|
+
return attrs[`data-${name}`];
|
|
283
|
+
}
|
|
284
|
+
const dataAttrs = {};
|
|
285
|
+
for (const key in attrs) {
|
|
286
|
+
if (key.startsWith('data-')) {
|
|
287
|
+
const shortKey = key.slice(5);
|
|
288
|
+
dataAttrs[shortKey] = attrs[key];
|
|
289
|
+
}
|
|
93
290
|
}
|
|
94
|
-
return
|
|
291
|
+
return dataAttrs;
|
|
95
292
|
}
|
|
96
293
|
val() {
|
|
97
|
-
|
|
294
|
+
if (this.elements.length === 0)
|
|
295
|
+
return undefined;
|
|
296
|
+
const el = this.elements[0];
|
|
297
|
+
if (el.tagName === 'INPUT') {
|
|
298
|
+
return el.getAttribute('value');
|
|
299
|
+
}
|
|
300
|
+
if (el.tagName === 'TEXTAREA') {
|
|
301
|
+
return el.text;
|
|
302
|
+
}
|
|
303
|
+
if (el.tagName === 'SELECT') {
|
|
304
|
+
const option = el.querySelector('option[selected]') || el.querySelector('option');
|
|
305
|
+
return option ? option.getAttribute('value') ?? option.text : undefined;
|
|
306
|
+
}
|
|
307
|
+
return el.getAttribute('value');
|
|
98
308
|
}
|
|
99
309
|
prop(name) {
|
|
100
|
-
|
|
310
|
+
if (this.elements.length === 0)
|
|
311
|
+
return undefined;
|
|
312
|
+
const el = this.elements[0];
|
|
313
|
+
if (name === 'tagName')
|
|
314
|
+
return el.tagName;
|
|
315
|
+
if (name in el)
|
|
316
|
+
return el[name];
|
|
317
|
+
return this.attr(name);
|
|
101
318
|
}
|
|
102
319
|
exists() {
|
|
103
|
-
return this
|
|
320
|
+
return this.elements.length > 0;
|
|
104
321
|
}
|
|
105
322
|
get length() {
|
|
106
|
-
return this
|
|
323
|
+
return this.elements.length;
|
|
107
324
|
}
|
|
108
325
|
is(selector) {
|
|
109
|
-
return this
|
|
326
|
+
return this.elements.some((el) => is(el, selector, { adapter: Matcher }));
|
|
110
327
|
}
|
|
111
328
|
hasClass(className) {
|
|
112
|
-
return this
|
|
329
|
+
return this.elements.some((el) => el.classList.contains(className));
|
|
113
330
|
}
|
|
114
331
|
index(selector) {
|
|
115
|
-
|
|
332
|
+
if (this.elements.length === 0)
|
|
333
|
+
return -1;
|
|
334
|
+
const el = this.elements[0];
|
|
335
|
+
const parent = el.parentNode;
|
|
336
|
+
if (!parent)
|
|
337
|
+
return 0;
|
|
338
|
+
const siblings = parent.childNodes.filter(n => n.nodeType === NodeType.ELEMENT_NODE);
|
|
339
|
+
if (selector) {
|
|
340
|
+
return siblings.findIndex(s => s === el);
|
|
341
|
+
}
|
|
342
|
+
return siblings.indexOf(el);
|
|
116
343
|
}
|
|
117
344
|
each(callback) {
|
|
118
|
-
this
|
|
119
|
-
callback(new ScrapeElement(
|
|
345
|
+
this.elements.forEach((el, index) => {
|
|
346
|
+
callback(new ScrapeElement(el), index);
|
|
120
347
|
});
|
|
121
348
|
return this;
|
|
122
349
|
}
|
|
123
350
|
map(callback) {
|
|
124
|
-
|
|
125
|
-
|
|
126
|
-
results.push(callback(new ScrapeElement(this.$(element), this.$), index));
|
|
351
|
+
return this.elements.map((el, index) => {
|
|
352
|
+
return callback(new ScrapeElement(el), index);
|
|
127
353
|
});
|
|
128
|
-
return results;
|
|
129
354
|
}
|
|
130
355
|
toArray() {
|
|
131
|
-
return this
|
|
356
|
+
return this.elements.map((el) => new ScrapeElement(el));
|
|
132
357
|
}
|
|
133
358
|
reduce(callback, initialValue) {
|
|
134
359
|
let accumulator = initialValue;
|
|
135
|
-
this
|
|
136
|
-
accumulator = callback(accumulator, new ScrapeElement(
|
|
360
|
+
this.elements.forEach((el, index) => {
|
|
361
|
+
accumulator = callback(accumulator, new ScrapeElement(el), index);
|
|
137
362
|
});
|
|
138
363
|
return accumulator;
|
|
139
364
|
}
|
|
140
365
|
some(callback) {
|
|
141
|
-
|
|
142
|
-
this.$el.each((index, element) => {
|
|
143
|
-
if (callback(new ScrapeElement(this.$(element), this.$), index)) {
|
|
144
|
-
found = true;
|
|
145
|
-
return false;
|
|
146
|
-
}
|
|
147
|
-
});
|
|
148
|
-
return found;
|
|
366
|
+
return this.elements.some((el, index) => callback(new ScrapeElement(el), index));
|
|
149
367
|
}
|
|
150
368
|
every(callback) {
|
|
151
|
-
|
|
152
|
-
this.$el.each((index, element) => {
|
|
153
|
-
if (!callback(new ScrapeElement(this.$(element), this.$), index)) {
|
|
154
|
-
allMatch = false;
|
|
155
|
-
return false;
|
|
156
|
-
}
|
|
157
|
-
});
|
|
158
|
-
return allMatch;
|
|
369
|
+
return this.elements.every((el, index) => callback(new ScrapeElement(el), index));
|
|
159
370
|
}
|
|
160
371
|
tagName() {
|
|
161
|
-
|
|
162
|
-
|
|
372
|
+
if (this.elements.length > 0) {
|
|
373
|
+
return this.elements[0].tagName?.toLowerCase();
|
|
374
|
+
}
|
|
375
|
+
return undefined;
|
|
163
376
|
}
|
|
164
377
|
clone() {
|
|
165
|
-
|
|
378
|
+
const clones = this.elements.map(el => el.clone());
|
|
379
|
+
return new ScrapeElement(clones);
|
|
166
380
|
}
|
|
167
381
|
toString() {
|
|
168
382
|
return this.outerHtml();
|
|
169
383
|
}
|
|
170
384
|
get raw() {
|
|
171
|
-
return this
|
|
385
|
+
return this.elements;
|
|
172
386
|
}
|
|
173
387
|
get(index = 0) {
|
|
174
|
-
return this
|
|
388
|
+
return this.elements[index];
|
|
175
389
|
}
|
|
176
390
|
}
|
|
@@ -1,16 +1,16 @@
|
|
|
1
|
-
import
|
|
1
|
+
import { HTMLElement } from './parser/index.js';
|
|
2
2
|
import type { ExtractedLink, ExtractedImage, ExtractedMeta, OpenGraphData, TwitterCardData, JsonLdData, ExtractedForm, ExtractedTable, ExtractedScript, ExtractedStyle, LinkExtractionOptions, ImageExtractionOptions } from './types.js';
|
|
3
|
-
export declare function extractLinks(
|
|
3
|
+
export declare function extractLinks(root: HTMLElement, options?: LinkExtractionOptions & {
|
|
4
4
|
baseUrl?: string;
|
|
5
5
|
}): ExtractedLink[];
|
|
6
|
-
export declare function extractImages(
|
|
6
|
+
export declare function extractImages(root: HTMLElement, options?: ImageExtractionOptions & {
|
|
7
7
|
baseUrl?: string;
|
|
8
8
|
}): ExtractedImage[];
|
|
9
|
-
export declare function extractMeta(
|
|
10
|
-
export declare function extractOpenGraph(
|
|
11
|
-
export declare function extractTwitterCard(
|
|
12
|
-
export declare function extractJsonLd(
|
|
13
|
-
export declare function extractForms(
|
|
14
|
-
export declare function extractTables(
|
|
15
|
-
export declare function extractScripts(
|
|
16
|
-
export declare function extractStyles(
|
|
9
|
+
export declare function extractMeta(root: HTMLElement): ExtractedMeta;
|
|
10
|
+
export declare function extractOpenGraph(root: HTMLElement): OpenGraphData;
|
|
11
|
+
export declare function extractTwitterCard(root: HTMLElement): TwitterCardData;
|
|
12
|
+
export declare function extractJsonLd(root: HTMLElement): JsonLdData[];
|
|
13
|
+
export declare function extractForms(root: HTMLElement, selector?: string): ExtractedForm[];
|
|
14
|
+
export declare function extractTables(root: HTMLElement, selector?: string): ExtractedTable[];
|
|
15
|
+
export declare function extractScripts(root: HTMLElement): ExtractedScript[];
|
|
16
|
+
export declare function extractStyles(root: HTMLElement): ExtractedStyle[];
|