recker 1.0.20-next.963881c → 1.0.20-next.a5aea1e
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/dist/ai/adaptive-timeout.d.ts +0 -1
- package/dist/ai/client.d.ts +0 -1
- package/dist/ai/index.d.ts +0 -1
- package/dist/ai/providers/anthropic.d.ts +0 -1
- package/dist/ai/providers/base.d.ts +0 -1
- package/dist/ai/providers/index.d.ts +0 -1
- package/dist/ai/providers/openai.d.ts +0 -1
- package/dist/ai/rate-limiter.d.ts +0 -1
- package/dist/bench/generator.d.ts +0 -1
- package/dist/bench/stats.d.ts +0 -1
- package/dist/cache/file-storage.d.ts +0 -1
- package/dist/cache/memory-limits.d.ts +0 -1
- package/dist/cache/memory-storage.d.ts +0 -1
- package/dist/cache/redis-storage.d.ts +0 -1
- package/dist/cli/handler.d.ts +2 -1
- package/dist/cli/handler.js +36 -5
- package/dist/cli/index.d.ts +0 -1
- package/dist/cli/index.js +214 -3
- package/dist/cli/presets.d.ts +0 -1
- package/dist/cli/tui/ai-chat.d.ts +0 -1
- package/dist/cli/tui/load-dashboard.d.ts +0 -1
- package/dist/cli/tui/scroll-buffer.d.ts +0 -1
- package/dist/cli/tui/search-panel.d.ts +0 -1
- package/dist/cli/tui/shell-search.d.ts +0 -1
- package/dist/cli/tui/shell.d.ts +0 -1
- package/dist/cli/tui/websocket.d.ts +0 -1
- package/dist/constants/http-status.d.ts +0 -1
- package/dist/constants.d.ts +0 -1
- package/dist/contract/index.d.ts +0 -1
- package/dist/cookies/memory-cookie-jar.d.ts +0 -1
- package/dist/core/client.d.ts +0 -1
- package/dist/core/errors.d.ts +0 -1
- package/dist/core/index.d.ts +0 -1
- package/dist/core/request-promise.d.ts +0 -1
- package/dist/core/request.d.ts +0 -1
- package/dist/core/response.d.ts +0 -1
- package/dist/dns/index.d.ts +0 -1
- package/dist/dns/propagation.d.ts +0 -1
- package/dist/events/request-events.d.ts +0 -1
- package/dist/index.d.ts +0 -1
- package/dist/mcp/client.d.ts +0 -1
- package/dist/mcp/contract.d.ts +0 -1
- package/dist/mcp/embeddings-loader.d.ts +0 -1
- package/dist/mcp/geoip-loader.d.ts +0 -1
- package/dist/mcp/index.d.ts +0 -1
- package/dist/mcp/ip-intel.d.ts +0 -1
- package/dist/mcp/search/hybrid-search.d.ts +0 -1
- package/dist/mcp/search/index.d.ts +0 -1
- package/dist/mcp/search/math.d.ts +0 -1
- package/dist/mcp/search/types.d.ts +0 -1
- package/dist/mcp/server.d.ts +0 -1
- package/dist/mcp/types.d.ts +0 -1
- package/dist/plugins/auth.d.ts +0 -1
- package/dist/plugins/cache.d.ts +0 -1
- package/dist/plugins/circuit-breaker.d.ts +0 -1
- package/dist/plugins/compression.d.ts +0 -1
- package/dist/plugins/cookie-jar.d.ts +0 -1
- package/dist/plugins/dedup.d.ts +0 -1
- package/dist/plugins/graphql.d.ts +0 -1
- package/dist/plugins/grpc-web.d.ts +0 -1
- package/dist/plugins/har-player.d.ts +0 -1
- package/dist/plugins/har-recorder.d.ts +0 -1
- package/dist/plugins/hls.d.ts +0 -1
- package/dist/plugins/http2-push.d.ts +0 -1
- package/dist/plugins/http3.d.ts +0 -1
- package/dist/plugins/interface-rotator.d.ts +0 -1
- package/dist/plugins/jsonrpc.d.ts +0 -1
- package/dist/plugins/logger.d.ts +0 -1
- package/dist/plugins/odata.d.ts +0 -1
- package/dist/plugins/pagination.d.ts +0 -1
- package/dist/plugins/proxy-rotator.d.ts +0 -1
- package/dist/plugins/retry.d.ts +0 -1
- package/dist/plugins/scrape.d.ts +0 -1
- package/dist/plugins/server-timing.d.ts +0 -1
- package/dist/plugins/soap.d.ts +0 -1
- package/dist/plugins/user-agent.d.ts +0 -1
- package/dist/plugins/xml.d.ts +0 -1
- package/dist/plugins/xsrf.d.ts +0 -1
- package/dist/presets/anthropic.d.ts +0 -1
- package/dist/presets/aws.d.ts +0 -1
- package/dist/presets/azure-openai.d.ts +0 -1
- package/dist/presets/azure.d.ts +0 -1
- package/dist/presets/cloudflare.d.ts +0 -1
- package/dist/presets/cohere.d.ts +0 -1
- package/dist/presets/deepseek.d.ts +0 -1
- package/dist/presets/digitalocean.d.ts +0 -1
- package/dist/presets/discord.d.ts +0 -1
- package/dist/presets/fireworks.d.ts +0 -1
- package/dist/presets/gcp.d.ts +0 -1
- package/dist/presets/gemini.d.ts +0 -1
- package/dist/presets/github.d.ts +0 -1
- package/dist/presets/gitlab.d.ts +0 -1
- package/dist/presets/groq.d.ts +0 -1
- package/dist/presets/huggingface.d.ts +0 -1
- package/dist/presets/index.d.ts +0 -1
- package/dist/presets/linear.d.ts +0 -1
- package/dist/presets/mailgun.d.ts +0 -1
- package/dist/presets/meta.d.ts +0 -1
- package/dist/presets/mistral.d.ts +0 -1
- package/dist/presets/notion.d.ts +0 -1
- package/dist/presets/openai.d.ts +0 -1
- package/dist/presets/oracle.d.ts +0 -1
- package/dist/presets/perplexity.d.ts +0 -1
- package/dist/presets/registry.d.ts +0 -1
- package/dist/presets/replicate.d.ts +0 -1
- package/dist/presets/sinch.d.ts +0 -1
- package/dist/presets/slack.d.ts +0 -1
- package/dist/presets/stripe.d.ts +0 -1
- package/dist/presets/supabase.d.ts +0 -1
- package/dist/presets/tiktok.d.ts +0 -1
- package/dist/presets/together.d.ts +0 -1
- package/dist/presets/twilio.d.ts +0 -1
- package/dist/presets/vercel.d.ts +0 -1
- package/dist/presets/vultr.d.ts +0 -1
- package/dist/presets/xai.d.ts +0 -1
- package/dist/presets/youtube.d.ts +0 -1
- package/dist/protocols/ftp.d.ts +0 -1
- package/dist/protocols/index.d.ts +0 -1
- package/dist/protocols/sftp.d.ts +0 -1
- package/dist/protocols/telnet.d.ts +0 -1
- package/dist/recker.d.ts +0 -1
- package/dist/runner/request-runner.d.ts +0 -1
- package/dist/scrape/document.d.ts +0 -1
- package/dist/scrape/element.d.ts +0 -1
- package/dist/scrape/extractors.d.ts +0 -1
- package/dist/scrape/index.d.ts +0 -1
- package/dist/scrape/types.d.ts +0 -1
- package/dist/testing/index.d.ts +8 -1
- package/dist/testing/index.js +4 -0
- package/dist/testing/mock-dns-server.d.ts +69 -0
- package/dist/testing/mock-dns-server.js +269 -0
- package/dist/testing/mock-ftp-server.d.ts +89 -0
- package/dist/testing/mock-ftp-server.js +562 -0
- package/dist/testing/mock-hls-server.d.ts +0 -1
- package/dist/testing/mock-http-server.d.ts +0 -1
- package/dist/testing/mock-sse-server.d.ts +0 -1
- package/dist/testing/mock-telnet-server.d.ts +59 -0
- package/dist/testing/mock-telnet-server.js +273 -0
- package/dist/testing/mock-udp-server.d.ts +0 -1
- package/dist/testing/mock-websocket-server.d.ts +0 -1
- package/dist/testing/mock-whois-server.d.ts +56 -0
- package/dist/testing/mock-whois-server.js +234 -0
- package/dist/testing/mock.d.ts +0 -1
- package/dist/transport/base-udp.d.ts +0 -1
- package/dist/transport/fetch.d.ts +0 -1
- package/dist/transport/udp-response.d.ts +0 -1
- package/dist/transport/udp.d.ts +0 -1
- package/dist/transport/undici.d.ts +0 -1
- package/dist/types/ai.d.ts +0 -1
- package/dist/types/index.d.ts +0 -1
- package/dist/types/logger.d.ts +0 -1
- package/dist/types/udp.d.ts +0 -1
- package/dist/udp/index.d.ts +0 -1
- package/dist/utils/agent-manager.d.ts +0 -1
- package/dist/utils/body.d.ts +0 -1
- package/dist/utils/cert.d.ts +0 -1
- package/dist/utils/charset.d.ts +0 -1
- package/dist/utils/chart.d.ts +0 -1
- package/dist/utils/client-pool.d.ts +0 -1
- package/dist/utils/colors.d.ts +0 -1
- package/dist/utils/concurrency.d.ts +0 -1
- package/dist/utils/dns-toolkit.d.ts +0 -1
- package/dist/utils/dns.d.ts +0 -1
- package/dist/utils/doh.d.ts +0 -1
- package/dist/utils/download.d.ts +0 -1
- package/dist/utils/env-proxy.d.ts +0 -1
- package/dist/utils/header-parser.d.ts +0 -1
- package/dist/utils/html-cleaner.d.ts +0 -1
- package/dist/utils/link-header.d.ts +0 -1
- package/dist/utils/optional-require.d.ts +0 -1
- package/dist/utils/progress.d.ts +0 -1
- package/dist/utils/rdap.d.ts +0 -1
- package/dist/utils/request-pool.d.ts +0 -1
- package/dist/utils/security-grader.d.ts +0 -1
- package/dist/utils/sparkline.d.ts +0 -1
- package/dist/utils/sse.d.ts +0 -1
- package/dist/utils/streaming.d.ts +0 -1
- package/dist/utils/system-metrics.d.ts +0 -1
- package/dist/utils/tls-inspector.d.ts +0 -1
- package/dist/utils/try-fn.d.ts +0 -1
- package/dist/utils/upload.d.ts +0 -1
- package/dist/utils/user-agent.d.ts +0 -1
- package/dist/utils/whois.d.ts +0 -1
- package/dist/webrtc/index.d.ts +0 -1
- package/dist/websocket/client.d.ts +0 -1
- package/package.json +1 -1
- package/dist/ai/adaptive-timeout.d.ts.map +0 -1
- package/dist/ai/client.d.ts.map +0 -1
- package/dist/ai/index.d.ts.map +0 -1
- package/dist/ai/providers/anthropic.d.ts.map +0 -1
- package/dist/ai/providers/base.d.ts.map +0 -1
- package/dist/ai/providers/index.d.ts.map +0 -1
- package/dist/ai/providers/openai.d.ts.map +0 -1
- package/dist/ai/rate-limiter.d.ts.map +0 -1
- package/dist/bench/generator.d.ts.map +0 -1
- package/dist/bench/stats.d.ts.map +0 -1
- package/dist/cache/file-storage.d.ts.map +0 -1
- package/dist/cache/memory-limits.d.ts.map +0 -1
- package/dist/cache/memory-storage.d.ts.map +0 -1
- package/dist/cache/redis-storage.d.ts.map +0 -1
- package/dist/cli/handler.d.ts.map +0 -1
- package/dist/cli/index.d.ts.map +0 -1
- package/dist/cli/presets.d.ts.map +0 -1
- package/dist/cli/tui/ai-chat.d.ts.map +0 -1
- package/dist/cli/tui/load-dashboard.d.ts.map +0 -1
- package/dist/cli/tui/scroll-buffer.d.ts.map +0 -1
- package/dist/cli/tui/search-panel.d.ts.map +0 -1
- package/dist/cli/tui/shell-search.d.ts.map +0 -1
- package/dist/cli/tui/shell.d.ts.map +0 -1
- package/dist/cli/tui/websocket.d.ts.map +0 -1
- package/dist/constants/http-status.d.ts.map +0 -1
- package/dist/constants.d.ts.map +0 -1
- package/dist/contract/index.d.ts.map +0 -1
- package/dist/cookies/memory-cookie-jar.d.ts.map +0 -1
- package/dist/core/client.d.ts.map +0 -1
- package/dist/core/errors.d.ts.map +0 -1
- package/dist/core/index.d.ts.map +0 -1
- package/dist/core/request-promise.d.ts.map +0 -1
- package/dist/core/request.d.ts.map +0 -1
- package/dist/core/response.d.ts.map +0 -1
- package/dist/dns/index.d.ts.map +0 -1
- package/dist/dns/propagation.d.ts.map +0 -1
- package/dist/events/request-events.d.ts.map +0 -1
- package/dist/index.d.ts.map +0 -1
- package/dist/mcp/client.d.ts.map +0 -1
- package/dist/mcp/contract.d.ts.map +0 -1
- package/dist/mcp/embeddings-loader.d.ts.map +0 -1
- package/dist/mcp/geoip-loader.d.ts.map +0 -1
- package/dist/mcp/index.d.ts.map +0 -1
- package/dist/mcp/ip-intel.d.ts.map +0 -1
- package/dist/mcp/search/hybrid-search.d.ts.map +0 -1
- package/dist/mcp/search/index.d.ts.map +0 -1
- package/dist/mcp/search/math.d.ts.map +0 -1
- package/dist/mcp/search/types.d.ts.map +0 -1
- package/dist/mcp/server.d.ts.map +0 -1
- package/dist/mcp/types.d.ts.map +0 -1
- package/dist/plugins/auth.d.ts.map +0 -1
- package/dist/plugins/cache.d.ts.map +0 -1
- package/dist/plugins/circuit-breaker.d.ts.map +0 -1
- package/dist/plugins/compression.d.ts.map +0 -1
- package/dist/plugins/cookie-jar.d.ts.map +0 -1
- package/dist/plugins/dedup.d.ts.map +0 -1
- package/dist/plugins/graphql.d.ts.map +0 -1
- package/dist/plugins/grpc-web.d.ts.map +0 -1
- package/dist/plugins/har-player.d.ts.map +0 -1
- package/dist/plugins/har-recorder.d.ts.map +0 -1
- package/dist/plugins/hls.d.ts.map +0 -1
- package/dist/plugins/http2-push.d.ts.map +0 -1
- package/dist/plugins/http3.d.ts.map +0 -1
- package/dist/plugins/interface-rotator.d.ts.map +0 -1
- package/dist/plugins/jsonrpc.d.ts.map +0 -1
- package/dist/plugins/logger.d.ts.map +0 -1
- package/dist/plugins/odata.d.ts.map +0 -1
- package/dist/plugins/pagination.d.ts.map +0 -1
- package/dist/plugins/proxy-rotator.d.ts.map +0 -1
- package/dist/plugins/retry.d.ts.map +0 -1
- package/dist/plugins/scrape.d.ts.map +0 -1
- package/dist/plugins/server-timing.d.ts.map +0 -1
- package/dist/plugins/soap.d.ts.map +0 -1
- package/dist/plugins/user-agent.d.ts.map +0 -1
- package/dist/plugins/xml.d.ts.map +0 -1
- package/dist/plugins/xsrf.d.ts.map +0 -1
- package/dist/presets/anthropic.d.ts.map +0 -1
- package/dist/presets/aws.d.ts.map +0 -1
- package/dist/presets/azure-openai.d.ts.map +0 -1
- package/dist/presets/azure.d.ts.map +0 -1
- package/dist/presets/cloudflare.d.ts.map +0 -1
- package/dist/presets/cohere.d.ts.map +0 -1
- package/dist/presets/deepseek.d.ts.map +0 -1
- package/dist/presets/digitalocean.d.ts.map +0 -1
- package/dist/presets/discord.d.ts.map +0 -1
- package/dist/presets/fireworks.d.ts.map +0 -1
- package/dist/presets/gcp.d.ts.map +0 -1
- package/dist/presets/gemini.d.ts.map +0 -1
- package/dist/presets/github.d.ts.map +0 -1
- package/dist/presets/gitlab.d.ts.map +0 -1
- package/dist/presets/groq.d.ts.map +0 -1
- package/dist/presets/huggingface.d.ts.map +0 -1
- package/dist/presets/index.d.ts.map +0 -1
- package/dist/presets/linear.d.ts.map +0 -1
- package/dist/presets/mailgun.d.ts.map +0 -1
- package/dist/presets/meta.d.ts.map +0 -1
- package/dist/presets/mistral.d.ts.map +0 -1
- package/dist/presets/notion.d.ts.map +0 -1
- package/dist/presets/openai.d.ts.map +0 -1
- package/dist/presets/oracle.d.ts.map +0 -1
- package/dist/presets/perplexity.d.ts.map +0 -1
- package/dist/presets/registry.d.ts.map +0 -1
- package/dist/presets/replicate.d.ts.map +0 -1
- package/dist/presets/sinch.d.ts.map +0 -1
- package/dist/presets/slack.d.ts.map +0 -1
- package/dist/presets/stripe.d.ts.map +0 -1
- package/dist/presets/supabase.d.ts.map +0 -1
- package/dist/presets/tiktok.d.ts.map +0 -1
- package/dist/presets/together.d.ts.map +0 -1
- package/dist/presets/twilio.d.ts.map +0 -1
- package/dist/presets/vercel.d.ts.map +0 -1
- package/dist/presets/vultr.d.ts.map +0 -1
- package/dist/presets/xai.d.ts.map +0 -1
- package/dist/presets/youtube.d.ts.map +0 -1
- package/dist/protocols/ftp.d.ts.map +0 -1
- package/dist/protocols/index.d.ts.map +0 -1
- package/dist/protocols/sftp.d.ts.map +0 -1
- package/dist/protocols/telnet.d.ts.map +0 -1
- package/dist/recker.d.ts.map +0 -1
- package/dist/runner/request-runner.d.ts.map +0 -1
- package/dist/scrape/document.d.ts.map +0 -1
- package/dist/scrape/element.d.ts.map +0 -1
- package/dist/scrape/extractors.d.ts.map +0 -1
- package/dist/scrape/index.d.ts.map +0 -1
- package/dist/scrape/types.d.ts.map +0 -1
- package/dist/testing/index.d.ts.map +0 -1
- package/dist/testing/mock-hls-server.d.ts.map +0 -1
- package/dist/testing/mock-http-server.d.ts.map +0 -1
- package/dist/testing/mock-sse-server.d.ts.map +0 -1
- package/dist/testing/mock-udp-server.d.ts.map +0 -1
- package/dist/testing/mock-websocket-server.d.ts.map +0 -1
- package/dist/testing/mock.d.ts.map +0 -1
- package/dist/transport/base-udp.d.ts.map +0 -1
- package/dist/transport/fetch.d.ts.map +0 -1
- package/dist/transport/udp-response.d.ts.map +0 -1
- package/dist/transport/udp.d.ts.map +0 -1
- package/dist/transport/undici.d.ts.map +0 -1
- package/dist/types/ai.d.ts.map +0 -1
- package/dist/types/index.d.ts.map +0 -1
- package/dist/types/logger.d.ts.map +0 -1
- package/dist/types/udp.d.ts.map +0 -1
- package/dist/udp/index.d.ts.map +0 -1
- package/dist/utils/agent-manager.d.ts.map +0 -1
- package/dist/utils/body.d.ts.map +0 -1
- package/dist/utils/cert.d.ts.map +0 -1
- package/dist/utils/charset.d.ts.map +0 -1
- package/dist/utils/chart.d.ts.map +0 -1
- package/dist/utils/client-pool.d.ts.map +0 -1
- package/dist/utils/colors.d.ts.map +0 -1
- package/dist/utils/concurrency.d.ts.map +0 -1
- package/dist/utils/dns-toolkit.d.ts.map +0 -1
- package/dist/utils/dns.d.ts.map +0 -1
- package/dist/utils/doh.d.ts.map +0 -1
- package/dist/utils/download.d.ts.map +0 -1
- package/dist/utils/env-proxy.d.ts.map +0 -1
- package/dist/utils/header-parser.d.ts.map +0 -1
- package/dist/utils/html-cleaner.d.ts.map +0 -1
- package/dist/utils/link-header.d.ts.map +0 -1
- package/dist/utils/optional-require.d.ts.map +0 -1
- package/dist/utils/progress.d.ts.map +0 -1
- package/dist/utils/rdap.d.ts.map +0 -1
- package/dist/utils/request-pool.d.ts.map +0 -1
- package/dist/utils/security-grader.d.ts.map +0 -1
- package/dist/utils/sparkline.d.ts.map +0 -1
- package/dist/utils/sse.d.ts.map +0 -1
- package/dist/utils/streaming.d.ts.map +0 -1
- package/dist/utils/system-metrics.d.ts.map +0 -1
- package/dist/utils/tls-inspector.d.ts.map +0 -1
- package/dist/utils/try-fn.d.ts.map +0 -1
- package/dist/utils/upload.d.ts.map +0 -1
- package/dist/utils/user-agent.d.ts.map +0 -1
- package/dist/utils/whois.d.ts.map +0 -1
- package/dist/webrtc/index.d.ts.map +0 -1
- package/dist/websocket/client.d.ts.map +0 -1
package/dist/ai/client.d.ts
CHANGED
package/dist/ai/index.d.ts
CHANGED
|
@@ -7,4 +7,3 @@ export { TokenRateLimiter, RateLimitExceededError, createRateLimiter, tokenEstim
|
|
|
7
7
|
export type { AIProvider, MessageRole, ChatMessage, ContentPart, ToolDefinition, ToolCall, TokenUsage, CostInfo, AILatency, AITimeoutOptions, AIRetryOptions, ResponseFormat, ChatOptions, EmbedOptions, AIResponse, EmbedResponse, StreamEventType, StreamEvent, TextStreamEvent, ToolCallStreamEvent, ToolCallDeltaStreamEvent, UsageStreamEvent, DoneStreamEvent, ErrorStreamEvent, AIStream, ProviderConfig, AIClientConfig, TokenRateLimitConfig, SemanticCacheConfig, CacheStorage, AIClient, AIMetrics, AIMetricsSummary, AgentTool, AgentConfig, AgentEventType, AgentStreamEvent, Agent, } from '../types/ai.js';
|
|
8
8
|
export type { OpenAIConfig } from './providers/openai.js';
|
|
9
9
|
export type { AnthropicConfig } from './providers/anthropic.js';
|
|
10
|
-
//# sourceMappingURL=index.d.ts.map
|
package/dist/bench/stats.d.ts
CHANGED
package/dist/cli/handler.d.ts
CHANGED
|
@@ -4,8 +4,9 @@ interface RequestOptions {
|
|
|
4
4
|
headers: Record<string, string>;
|
|
5
5
|
body?: any;
|
|
6
6
|
verbose?: boolean;
|
|
7
|
+
quiet?: boolean;
|
|
8
|
+
output?: string;
|
|
7
9
|
presetConfig?: any;
|
|
8
10
|
}
|
|
9
11
|
export declare function handleRequest(options: RequestOptions): Promise<void>;
|
|
10
12
|
export {};
|
|
11
|
-
//# sourceMappingURL=handler.d.ts.map
|
package/dist/cli/handler.js
CHANGED
|
@@ -17,7 +17,14 @@ async function initDependencies() {
|
|
|
17
17
|
}
|
|
18
18
|
export async function handleRequest(options) {
|
|
19
19
|
await initDependencies();
|
|
20
|
-
|
|
20
|
+
if (options.quiet) {
|
|
21
|
+
process.stdout.on('error', (err) => {
|
|
22
|
+
if (err.code === 'EPIPE') {
|
|
23
|
+
process.exit(0);
|
|
24
|
+
}
|
|
25
|
+
});
|
|
26
|
+
}
|
|
27
|
+
const spinner = options.quiet ? null : ora({
|
|
21
28
|
text: `${colors.bold(options.method)} ${colors.cyan(options.url)}`,
|
|
22
29
|
color: 'cyan',
|
|
23
30
|
spinner: 'dots'
|
|
@@ -64,7 +71,24 @@ export async function handleRequest(options) {
|
|
|
64
71
|
body: requestBody
|
|
65
72
|
});
|
|
66
73
|
const duration = Math.round(performance.now() - start);
|
|
67
|
-
spinner
|
|
74
|
+
spinner?.stop();
|
|
75
|
+
const contentType = response.headers.get('content-type') || '';
|
|
76
|
+
const text = await response.text();
|
|
77
|
+
if (options.quiet) {
|
|
78
|
+
if (options.output) {
|
|
79
|
+
const fsPromises = await import('node:fs/promises');
|
|
80
|
+
await fsPromises.writeFile(options.output, text);
|
|
81
|
+
if (!response.ok) {
|
|
82
|
+
process.exit(1);
|
|
83
|
+
}
|
|
84
|
+
return;
|
|
85
|
+
}
|
|
86
|
+
process.stdout.write(text);
|
|
87
|
+
if (!response.ok) {
|
|
88
|
+
process.exit(1);
|
|
89
|
+
}
|
|
90
|
+
return;
|
|
91
|
+
}
|
|
68
92
|
const statusColor = response.ok ? colors.green : colors.red;
|
|
69
93
|
console.log(`${statusColor(colors.bold(response.status))} ${statusColor(response.statusText)} ` +
|
|
70
94
|
`${colors.gray(`(${duration}ms)`)}`);
|
|
@@ -86,8 +110,12 @@ export async function handleRequest(options) {
|
|
|
86
110
|
});
|
|
87
111
|
console.log(colors.gray('------------------------\n'));
|
|
88
112
|
}
|
|
89
|
-
|
|
90
|
-
|
|
113
|
+
if (options.output) {
|
|
114
|
+
const fsPromises = await import('node:fs/promises');
|
|
115
|
+
await fsPromises.writeFile(options.output, text);
|
|
116
|
+
console.log(colors.green(`✓ Saved to ${options.output}`));
|
|
117
|
+
return;
|
|
118
|
+
}
|
|
91
119
|
if (!text)
|
|
92
120
|
return;
|
|
93
121
|
if (contentType.includes('application/json')) {
|
|
@@ -105,7 +133,10 @@ export async function handleRequest(options) {
|
|
|
105
133
|
}
|
|
106
134
|
}
|
|
107
135
|
catch (error) {
|
|
108
|
-
|
|
136
|
+
if (options.quiet) {
|
|
137
|
+
process.exit(1);
|
|
138
|
+
}
|
|
139
|
+
spinner?.fail(colors.red('Request Failed'));
|
|
109
140
|
throw error;
|
|
110
141
|
}
|
|
111
142
|
}
|
package/dist/cli/index.d.ts
CHANGED
package/dist/cli/index.js
CHANGED
|
@@ -126,6 +126,8 @@ async function main() {
|
|
|
126
126
|
.version(version)
|
|
127
127
|
.argument('[args...]', 'URL, Method, Headers (Key:Value), Data (key=value)')
|
|
128
128
|
.option('-v, --verbose', 'Show full request/response details')
|
|
129
|
+
.option('-q, --quiet', 'Output only response body (no colors, perfect for piping)')
|
|
130
|
+
.option('-o, --output <file>', 'Write response body to file')
|
|
129
131
|
.option('-j, --json', 'Force JSON content-type')
|
|
130
132
|
.option('-e, --env [path]', 'Load .env file from current directory or specified path')
|
|
131
133
|
.addHelpText('after', `
|
|
@@ -200,14 +202,18 @@ ${colors.bold(colors.yellow('Available Presets:'))}
|
|
|
200
202
|
headers,
|
|
201
203
|
body,
|
|
202
204
|
verbose: options.verbose,
|
|
205
|
+
quiet: options.quiet,
|
|
206
|
+
output: options.output,
|
|
203
207
|
presetConfig
|
|
204
208
|
});
|
|
205
209
|
}
|
|
206
210
|
catch (error) {
|
|
207
|
-
|
|
211
|
+
if (!options.quiet) {
|
|
212
|
+
console.error(colors.red(`
|
|
208
213
|
Error: ${error.message}`));
|
|
209
|
-
|
|
210
|
-
|
|
214
|
+
if (options.verbose && error.cause) {
|
|
215
|
+
console.error(error.cause);
|
|
216
|
+
}
|
|
211
217
|
}
|
|
212
218
|
process.exit(1);
|
|
213
219
|
}
|
|
@@ -1168,6 +1174,211 @@ ${colors.bold(colors.yellow('Examples:'))}
|
|
|
1168
1174
|
process.exit(0);
|
|
1169
1175
|
});
|
|
1170
1176
|
});
|
|
1177
|
+
serve
|
|
1178
|
+
.command('dns')
|
|
1179
|
+
.description('Start a mock DNS server')
|
|
1180
|
+
.option('-p, --port <number>', 'Port to listen on', '5353')
|
|
1181
|
+
.option('-h, --host <string>', 'Host to bind to', '127.0.0.1')
|
|
1182
|
+
.option('--delay <ms>', 'Add delay to responses (milliseconds)', '0')
|
|
1183
|
+
.addHelpText('after', `
|
|
1184
|
+
${colors.bold(colors.yellow('Examples:'))}
|
|
1185
|
+
${colors.green('$ rek serve dns')} ${colors.gray('Start on port 5353')}
|
|
1186
|
+
${colors.green('$ rek serve dns -p 53')} ${colors.gray('Start on standard port (requires root)')}
|
|
1187
|
+
${colors.green('$ dig @127.0.0.1 -p 5353 example.com')} ${colors.gray('Test with dig')}
|
|
1188
|
+
|
|
1189
|
+
${colors.bold(colors.yellow('Default Records:'))}
|
|
1190
|
+
${colors.cyan('localhost')} A: 127.0.0.1, AAAA: ::1
|
|
1191
|
+
${colors.cyan('example.com')} A, AAAA, NS, MX, TXT records
|
|
1192
|
+
${colors.cyan('test.local')} A: 192.168.1.100
|
|
1193
|
+
`)
|
|
1194
|
+
.action(async (options) => {
|
|
1195
|
+
const { MockDnsServer } = await import('../testing/mock-dns-server.js');
|
|
1196
|
+
const server = await MockDnsServer.create({
|
|
1197
|
+
port: parseInt(options.port),
|
|
1198
|
+
host: options.host,
|
|
1199
|
+
delay: parseInt(options.delay),
|
|
1200
|
+
});
|
|
1201
|
+
console.log(colors.green(`
|
|
1202
|
+
┌─────────────────────────────────────────────┐
|
|
1203
|
+
│ ${colors.bold('Recker Mock DNS Server')} │
|
|
1204
|
+
├─────────────────────────────────────────────┤
|
|
1205
|
+
│ Address: ${colors.cyan(`${options.host}:${options.port}`.padEnd(33))}│
|
|
1206
|
+
│ Protocol: ${colors.yellow('UDP'.padEnd(32))}│
|
|
1207
|
+
├─────────────────────────────────────────────┤
|
|
1208
|
+
│ Test: dig @${options.host} -p ${options.port} example.com │
|
|
1209
|
+
│ Press ${colors.bold('Ctrl+C')} to stop │
|
|
1210
|
+
└─────────────────────────────────────────────┘
|
|
1211
|
+
`));
|
|
1212
|
+
server.on('query', (query) => {
|
|
1213
|
+
console.log(colors.gray(`${new Date().toISOString()} `) + colors.cyan(query.type.padEnd(6)) + ` ${query.domain}`);
|
|
1214
|
+
});
|
|
1215
|
+
process.on('SIGINT', async () => {
|
|
1216
|
+
console.log(colors.yellow('\nShutting down...'));
|
|
1217
|
+
await server.stop();
|
|
1218
|
+
process.exit(0);
|
|
1219
|
+
});
|
|
1220
|
+
});
|
|
1221
|
+
serve
|
|
1222
|
+
.command('whois')
|
|
1223
|
+
.description('Start a mock WHOIS server')
|
|
1224
|
+
.option('-p, --port <number>', 'Port to listen on', '4343')
|
|
1225
|
+
.option('-h, --host <string>', 'Host to bind to', '127.0.0.1')
|
|
1226
|
+
.option('--delay <ms>', 'Add delay to responses (milliseconds)', '0')
|
|
1227
|
+
.addHelpText('after', `
|
|
1228
|
+
${colors.bold(colors.yellow('Examples:'))}
|
|
1229
|
+
${colors.green('$ rek serve whois')} ${colors.gray('Start on port 4343')}
|
|
1230
|
+
${colors.green('$ whois -h 127.0.0.1 -p 4343 example.com')} ${colors.gray('Test with whois')}
|
|
1231
|
+
|
|
1232
|
+
${colors.bold(colors.yellow('Default Domains:'))}
|
|
1233
|
+
${colors.cyan('example.com')} IANA reserved domain
|
|
1234
|
+
${colors.cyan('google.com')} MarkMonitor registrar
|
|
1235
|
+
${colors.cyan('test.local')} Test domain
|
|
1236
|
+
`)
|
|
1237
|
+
.action(async (options) => {
|
|
1238
|
+
const { MockWhoisServer } = await import('../testing/mock-whois-server.js');
|
|
1239
|
+
const server = await MockWhoisServer.create({
|
|
1240
|
+
port: parseInt(options.port),
|
|
1241
|
+
host: options.host,
|
|
1242
|
+
delay: parseInt(options.delay),
|
|
1243
|
+
});
|
|
1244
|
+
console.log(colors.green(`
|
|
1245
|
+
┌─────────────────────────────────────────────┐
|
|
1246
|
+
│ ${colors.bold('Recker Mock WHOIS Server')} │
|
|
1247
|
+
├─────────────────────────────────────────────┤
|
|
1248
|
+
│ Address: ${colors.cyan(`${options.host}:${options.port}`.padEnd(33))}│
|
|
1249
|
+
│ Protocol: ${colors.yellow('TCP'.padEnd(32))}│
|
|
1250
|
+
├─────────────────────────────────────────────┤
|
|
1251
|
+
│ Test: whois -h ${options.host} -p ${options.port} example.com │
|
|
1252
|
+
│ Press ${colors.bold('Ctrl+C')} to stop │
|
|
1253
|
+
└─────────────────────────────────────────────┘
|
|
1254
|
+
`));
|
|
1255
|
+
server.on('query', (query) => {
|
|
1256
|
+
console.log(colors.gray(`${new Date().toISOString()} `) + `Query: ${colors.cyan(query)}`);
|
|
1257
|
+
});
|
|
1258
|
+
process.on('SIGINT', async () => {
|
|
1259
|
+
console.log(colors.yellow('\nShutting down...'));
|
|
1260
|
+
await server.stop();
|
|
1261
|
+
process.exit(0);
|
|
1262
|
+
});
|
|
1263
|
+
});
|
|
1264
|
+
serve
|
|
1265
|
+
.command('telnet')
|
|
1266
|
+
.description('Start a mock Telnet server')
|
|
1267
|
+
.option('-p, --port <number>', 'Port to listen on', '2323')
|
|
1268
|
+
.option('-h, --host <string>', 'Host to bind to', '127.0.0.1')
|
|
1269
|
+
.option('--echo', 'Echo input back (default: true)', true)
|
|
1270
|
+
.option('--no-echo', 'Disable echo mode')
|
|
1271
|
+
.option('--delay <ms>', 'Add delay to responses (milliseconds)', '0')
|
|
1272
|
+
.addHelpText('after', `
|
|
1273
|
+
${colors.bold(colors.yellow('Examples:'))}
|
|
1274
|
+
${colors.green('$ rek serve telnet')} ${colors.gray('Start on port 2323')}
|
|
1275
|
+
${colors.green('$ telnet localhost 2323')} ${colors.gray('Connect to server')}
|
|
1276
|
+
|
|
1277
|
+
${colors.bold(colors.yellow('Built-in Commands:'))}
|
|
1278
|
+
${colors.cyan('help')} Show available commands
|
|
1279
|
+
${colors.cyan('echo <msg>')} Echo message back
|
|
1280
|
+
${colors.cyan('date')} Show current date
|
|
1281
|
+
${colors.cyan('time')} Show current time
|
|
1282
|
+
${colors.cyan('ping')} Returns "pong"
|
|
1283
|
+
${colors.cyan('quit')} Disconnect
|
|
1284
|
+
`)
|
|
1285
|
+
.action(async (options) => {
|
|
1286
|
+
const { MockTelnetServer } = await import('../testing/mock-telnet-server.js');
|
|
1287
|
+
const server = await MockTelnetServer.create({
|
|
1288
|
+
port: parseInt(options.port),
|
|
1289
|
+
host: options.host,
|
|
1290
|
+
echo: options.echo,
|
|
1291
|
+
delay: parseInt(options.delay),
|
|
1292
|
+
});
|
|
1293
|
+
console.log(colors.green(`
|
|
1294
|
+
┌─────────────────────────────────────────────┐
|
|
1295
|
+
│ ${colors.bold('Recker Mock Telnet Server')} │
|
|
1296
|
+
├─────────────────────────────────────────────┤
|
|
1297
|
+
│ Address: ${colors.cyan(`${options.host}:${options.port}`.padEnd(33))}│
|
|
1298
|
+
│ Echo: ${colors.yellow((options.echo ? 'Enabled' : 'Disabled').padEnd(36))}│
|
|
1299
|
+
├─────────────────────────────────────────────┤
|
|
1300
|
+
│ Connect: telnet ${options.host} ${options.port} │
|
|
1301
|
+
│ Press ${colors.bold('Ctrl+C')} to stop │
|
|
1302
|
+
└─────────────────────────────────────────────┘
|
|
1303
|
+
`));
|
|
1304
|
+
server.on('connect', (session) => {
|
|
1305
|
+
console.log(colors.gray(`${new Date().toISOString()} `) + colors.green('+ Connected: ') + colors.cyan(session.id));
|
|
1306
|
+
});
|
|
1307
|
+
server.on('disconnect', (session) => {
|
|
1308
|
+
console.log(colors.gray(`${new Date().toISOString()} `) + colors.red('- Disconnected: ') + colors.cyan(session.id));
|
|
1309
|
+
});
|
|
1310
|
+
server.on('command', (cmd, session) => {
|
|
1311
|
+
console.log(colors.gray(`${new Date().toISOString()} `) + colors.cyan(session.id) + ` $ ${cmd}`);
|
|
1312
|
+
});
|
|
1313
|
+
process.on('SIGINT', async () => {
|
|
1314
|
+
console.log(colors.yellow('\nShutting down...'));
|
|
1315
|
+
await server.stop();
|
|
1316
|
+
process.exit(0);
|
|
1317
|
+
});
|
|
1318
|
+
});
|
|
1319
|
+
serve
|
|
1320
|
+
.command('ftp')
|
|
1321
|
+
.description('Start a mock FTP server')
|
|
1322
|
+
.option('-p, --port <number>', 'Port to listen on', '2121')
|
|
1323
|
+
.option('-h, --host <string>', 'Host to bind to', '127.0.0.1')
|
|
1324
|
+
.option('-u, --username <user>', 'Username for auth', 'user')
|
|
1325
|
+
.option('--password <pass>', 'Password for auth', 'pass')
|
|
1326
|
+
.option('--anonymous', 'Allow anonymous login (default: true)', true)
|
|
1327
|
+
.option('--no-anonymous', 'Disable anonymous login')
|
|
1328
|
+
.option('--delay <ms>', 'Add delay to responses (milliseconds)', '0')
|
|
1329
|
+
.addHelpText('after', `
|
|
1330
|
+
${colors.bold(colors.yellow('Examples:'))}
|
|
1331
|
+
${colors.green('$ rek serve ftp')} ${colors.gray('Start on port 2121')}
|
|
1332
|
+
${colors.green('$ ftp localhost 2121')} ${colors.gray('Connect to server')}
|
|
1333
|
+
${colors.green('$ rek serve ftp --no-anonymous')} ${colors.gray('Require authentication')}
|
|
1334
|
+
|
|
1335
|
+
${colors.bold(colors.yellow('Default Files:'))}
|
|
1336
|
+
${colors.cyan('/welcome.txt')} Welcome message
|
|
1337
|
+
${colors.cyan('/readme.md')} README file
|
|
1338
|
+
${colors.cyan('/data/sample.json')} Sample JSON data
|
|
1339
|
+
${colors.cyan('/public/index.html')} HTML file
|
|
1340
|
+
|
|
1341
|
+
${colors.bold(colors.yellow('Credentials:'))}
|
|
1342
|
+
Username: ${colors.cyan('user')} Password: ${colors.cyan('pass')}
|
|
1343
|
+
Or use anonymous login with user: ${colors.cyan('anonymous')}
|
|
1344
|
+
`)
|
|
1345
|
+
.action(async (options) => {
|
|
1346
|
+
const { MockFtpServer } = await import('../testing/mock-ftp-server.js');
|
|
1347
|
+
const server = await MockFtpServer.create({
|
|
1348
|
+
port: parseInt(options.port),
|
|
1349
|
+
host: options.host,
|
|
1350
|
+
username: options.username,
|
|
1351
|
+
password: options.password,
|
|
1352
|
+
anonymous: options.anonymous,
|
|
1353
|
+
delay: parseInt(options.delay),
|
|
1354
|
+
});
|
|
1355
|
+
console.log(colors.green(`
|
|
1356
|
+
┌─────────────────────────────────────────────┐
|
|
1357
|
+
│ ${colors.bold('Recker Mock FTP Server')} │
|
|
1358
|
+
├─────────────────────────────────────────────┤
|
|
1359
|
+
│ Address: ${colors.cyan(`${options.host}:${options.port}`.padEnd(33))}│
|
|
1360
|
+
│ Anonymous: ${colors.yellow((options.anonymous ? 'Allowed' : 'Disabled').padEnd(31))}│
|
|
1361
|
+
│ User: ${colors.cyan(options.username.padEnd(36))}│
|
|
1362
|
+
├─────────────────────────────────────────────┤
|
|
1363
|
+
│ Connect: ftp ${options.host} ${options.port} │
|
|
1364
|
+
│ Press ${colors.bold('Ctrl+C')} to stop │
|
|
1365
|
+
└─────────────────────────────────────────────┘
|
|
1366
|
+
`));
|
|
1367
|
+
server.on('connect', (session) => {
|
|
1368
|
+
console.log(colors.gray(`${new Date().toISOString()} `) + colors.green('+ Connected: ') + colors.cyan(session.id));
|
|
1369
|
+
});
|
|
1370
|
+
server.on('disconnect', (session) => {
|
|
1371
|
+
console.log(colors.gray(`${new Date().toISOString()} `) + colors.red('- Disconnected: ') + colors.cyan(session.id));
|
|
1372
|
+
});
|
|
1373
|
+
server.on('command', (cmd, _args, session) => {
|
|
1374
|
+
console.log(colors.gray(`${new Date().toISOString()} `) + colors.cyan(session.id) + ` ${cmd}`);
|
|
1375
|
+
});
|
|
1376
|
+
process.on('SIGINT', async () => {
|
|
1377
|
+
console.log(colors.yellow('\nShutting down...'));
|
|
1378
|
+
await server.stop();
|
|
1379
|
+
process.exit(0);
|
|
1380
|
+
});
|
|
1381
|
+
});
|
|
1171
1382
|
program
|
|
1172
1383
|
.command('mcp')
|
|
1173
1384
|
.description('Start MCP server for AI agents to access Recker documentation')
|
package/dist/cli/presets.d.ts
CHANGED
|
@@ -40,4 +40,3 @@ export declare function parseScrollKey(data: Buffer): 'pageUp' | 'pageDown' | 's
|
|
|
40
40
|
export declare function parseMouseScroll(data: Buffer): 'scrollUp' | 'scrollDown' | null;
|
|
41
41
|
export declare function enableMouseReporting(): void;
|
|
42
42
|
export declare function disableMouseReporting(): void;
|
|
43
|
-
//# sourceMappingURL=scroll-buffer.d.ts.map
|
package/dist/cli/tui/shell.d.ts
CHANGED
|
@@ -71,4 +71,3 @@ export declare function isServerError(status: number): boolean;
|
|
|
71
71
|
export declare function isError(status: number): boolean;
|
|
72
72
|
export declare function isRetryable(status: number): boolean;
|
|
73
73
|
export declare function getStatusText(status: number): string;
|
|
74
|
-
//# sourceMappingURL=http-status.d.ts.map
|
package/dist/constants.d.ts
CHANGED
package/dist/contract/index.d.ts
CHANGED
package/dist/core/client.d.ts
CHANGED
package/dist/core/errors.d.ts
CHANGED
package/dist/core/index.d.ts
CHANGED
package/dist/core/request.d.ts
CHANGED
package/dist/core/response.d.ts
CHANGED
package/dist/dns/index.d.ts
CHANGED
|
@@ -18,4 +18,3 @@ export interface PropagationResult {
|
|
|
18
18
|
export declare function getTypeName(typeId: number): string;
|
|
19
19
|
export declare function checkPropagation(domainInput: string, type?: string): Promise<PropagationResult[]>;
|
|
20
20
|
export declare function formatPropagationReport(results: PropagationResult[], domain: string, type: string): string;
|
|
21
|
-
//# sourceMappingURL=propagation.d.ts.map
|
package/dist/index.d.ts
CHANGED
|
@@ -67,4 +67,3 @@ export * from './mcp/contract.js';
|
|
|
67
67
|
export { Client as Recker } from './core/client.js';
|
|
68
68
|
export { get, post, put, patch, del, del as delete, head, options, whois, whoisAvailable, dns, dnsSecurity, ws, recker, } from './recker.js';
|
|
69
69
|
export { default } from './recker.js';
|
|
70
|
-
//# sourceMappingURL=index.d.ts.map
|
package/dist/mcp/client.d.ts
CHANGED
package/dist/mcp/contract.d.ts
CHANGED
|
@@ -74,4 +74,3 @@ export declare function createValidatedSSEStream<T extends ZodSchema>(client: Cl
|
|
|
74
74
|
export declare function openAIExtractor(event: SSEEvent): string | null;
|
|
75
75
|
export declare function anthropicExtractor(event: SSEEvent): string | null;
|
|
76
76
|
export {};
|
|
77
|
-
//# sourceMappingURL=contract.d.ts.map
|
|
@@ -15,4 +15,3 @@ export interface LoadEmbeddingsOptions {
|
|
|
15
15
|
export declare function loadEmbeddings(options?: LoadEmbeddingsOptions): Promise<EmbeddingsData | null>;
|
|
16
16
|
export declare function clearEmbeddingsCache(version?: string): void;
|
|
17
17
|
export { getPackageVersion };
|
|
18
|
-
//# sourceMappingURL=embeddings-loader.d.ts.map
|
package/dist/mcp/index.d.ts
CHANGED
package/dist/mcp/ip-intel.d.ts
CHANGED
|
@@ -25,4 +25,3 @@ export declare function isValidIP(ip: string): boolean;
|
|
|
25
25
|
export declare function getIpInfo(ip: string): Promise<IpInfo>;
|
|
26
26
|
export declare function isGeoIPAvailable(): boolean;
|
|
27
27
|
export { getGeoIPDatabasePath } from './geoip-loader.js';
|
|
28
|
-
//# sourceMappingURL=ip-intel.d.ts.map
|
|
@@ -1,4 +1,3 @@
|
|
|
1
1
|
export { HybridSearch, createHybridSearch } from './hybrid-search.js';
|
|
2
2
|
export { cosineSimilarity, levenshtein, stringSimilarity, reciprocalRankFusion, combineScores, } from './math.js';
|
|
3
3
|
export type { IndexedDoc, SearchResult, SearchOptions, HybridSearchConfig, EmbeddingsData, EmbeddingEntry, } from './types.js';
|
|
4
|
-
//# sourceMappingURL=index.d.ts.map
|
|
@@ -3,4 +3,3 @@ export declare function levenshtein(a: string, b: string): number;
|
|
|
3
3
|
export declare function stringSimilarity(a: string, b: string): number;
|
|
4
4
|
export declare function reciprocalRankFusion(ranks: number[], k?: number): number;
|
|
5
5
|
export declare function combineScores(score1: number, score2: number, k?: number): number;
|
|
6
|
-
//# sourceMappingURL=math.d.ts.map
|
package/dist/mcp/server.d.ts
CHANGED
package/dist/mcp/types.d.ts
CHANGED
package/dist/plugins/auth.d.ts
CHANGED