packages/shared: - Zod v4 schemas for TopicConfig, ProxyConfig, CrawlJob, SearchQuery - Config loader with defaults - Utility functions (createId, formatBytes, normalizeUrl) packages/core: - WebProxyServer: HTTP forward proxy using http-proxy-3 - CacheStore: LRU-based in-memory + disk cache for proxied responses - WarcWriter: WARC file archiving for all proxied content - HTTPS CONNECT tunneling for SSL passthrough - Admin API with /api/status, /api/cache/stats, /api/config packages/indexer: - TopicCrawler: Crawlee CheerioCrawler for topic-based web crawling - ContentExtractor: @mozilla/readability + turndown for clean text/markdown - SearchClient: MeiliSearch integration for full-text search - CrawlScheduler: Interval-based crawl job scheduling apps/proxy: - Main entry point orchestrating all components - Graceful shutdown handling - Proxy-only mode when no topics configured All packages type-check clean. Next.js build passes. Co-Authored-By: UnicornDev <noreply@unicorndev.wtf>
32 lines
808 B
JSON
32 lines
808 B
JSON
{
|
|
"name": "webproxy",
|
|
"version": "0.1.0",
|
|
"private": true,
|
|
"description": "Local internet indexing layer - crawl, cache, and serve web content to your network",
|
|
"scripts": {
|
|
"dev": "pnpm --filter @webproxy/web dev",
|
|
"dev:proxy": "pnpm --filter @webproxy/proxy dev",
|
|
"build": "pnpm --filter @webproxy/web build",
|
|
"start": "pnpm --filter @webproxy/web start",
|
|
"start:proxy": "pnpm --filter @webproxy/proxy start",
|
|
"lint": "pnpm -r lint",
|
|
"clean": "pnpm -r clean",
|
|
"typecheck": "pnpm -r --no-bail typecheck"
|
|
},
|
|
"keywords": [
|
|
"proxy",
|
|
"web-indexer",
|
|
"cache",
|
|
"local-network"
|
|
],
|
|
"license": "MIT",
|
|
"engines": {
|
|
"node": ">=20",
|
|
"pnpm": ">=9"
|
|
},
|
|
"packageManager": "pnpm@10.24.0",
|
|
"devDependencies": {
|
|
"typescript": "^5.9.3"
|
|
}
|
|
}
|