{"_id":"@aiedx/fetchlens-next","_rev":"9-4f001d28daf414a323616d464c37a630","name":"@aiedx/fetchlens-next","dist-tags":{"latest":"0.1.8"},"versions":{"0.1.0":{"name":"@aiedx/fetchlens-next","version":"0.1.0","keywords":["next.js","middleware","ai","bot-detection","fetchlens","analytics"],"author":{"name":"AIEDX Private Limited"},"license":"UNLICENSED","_id":"@aiedx/fetchlens-next@0.1.0","maintainers":[{"name":"adssidhu86","email":"aiedx.org@gmail.com"}],"homepage":"https://github.com/aiedx/fetchlens#readme","bugs":{"url":"https://github.com/aiedx/fetchlens/issues"},"dist":{"shasum":"fac42dd0fdc4eac2eaa01fe6f76ab53cce5642b8","tarball":"https://registry.npmjs.org/@aiedx/fetchlens-next/-/fetchlens-next-0.1.0.tgz","fileCount":5,"integrity":"sha512-zFG+gLZ2WmCz8pz21y84xweRh8H+n2CHgSUVv9Opo3YuFMywsivk18SCFk3EPshH2p6dMo38nrNt3AZcq6sKWQ==","signatures":[{"sig":"MEQCIAftBFyZMGuLv+g9DmbwF5kANVqV8LPfp8jIftjp3C/OAiA/NfaxF/aN8ndoNmfEK0Jr2rnMwTm81B9v2rQpNV/V3Q==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":14565},"main":"./dist/index.js","types":"./dist/index.d.ts","module":"./dist/index.mjs","exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.mjs","require":"./dist/index.js"}},"gitHead":"76508e7daba7716467fd1436a3bf120e6447042f","scripts":{"dev":"tsup src/index.ts --format cjs,esm --dts --watch","build":"tsup src/index.ts --format cjs,esm --dts --clean"},"_npmUser":{"name":"adssidhu86","email":"aiedx.org@gmail.com"},"repository":{"url":"git+https://github.com/aiedx/fetchlens.git","type":"git"},"_npmVersion":"10.7.0","description":"AI bot detection middleware for Next.js — works on any host","directories":{},"_nodeVersion":"22.2.0","_hasShrinkwrap":false,"devDependencies":{"next":"^16.2.2","tsup":"^8.5.1","typescript":"^5.9.3"},"peerDependencies":{"next":">=14.0.0"},"_npmOperationalInternal":{"tmp":"tmp/fetchlens-next_0.1.0_1775754743336_0.1476359097824549","host":"s3://npm-registry-packages-npm-production"}},"0.1.1":{"name":"@aiedx/fetchlens-next","version":"0.1.1","keywords":["next.js","middleware","ai","bot-detection","fetchlens","analytics"],"author":{"name":"AIEDX Private Limited"},"license":"SEE LICENSE IN LICENSE","_id":"@aiedx/fetchlens-next@0.1.1","maintainers":[{"name":"adssidhu86","email":"aiedx.org@gmail.com"}],"homepage":"https://fetchlens.ai","dist":{"shasum":"b258b51cc360e5cedd50239d2585bfe86cc241ce","tarball":"https://registry.npmjs.org/@aiedx/fetchlens-next/-/fetchlens-next-0.1.1.tgz","fileCount":7,"integrity":"sha512-sPOX3410CWNnxIHooa851X2GDEOgvYG8hX716/6BVFxoH9xknULgrlMGkoQe5CTRsOts8Yq7f2efqIohNO09AQ==","signatures":[{"sig":"MEYCIQCGpt4EnO/4UBp+4VNUKMPJYgLHqQiCBIlCihxqY3P53wIhANdDTb08Q5q4NSa2VjDKTCiLqCSzS7eZNJFg05x1L3zc","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":17678},"main":"./dist/index.js","types":"./dist/index.d.ts","module":"./dist/index.mjs","exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.mjs","require":"./dist/index.js"}},"gitHead":"76508e7daba7716467fd1436a3bf120e6447042f","scripts":{"dev":"tsup src/index.ts --format cjs,esm --dts --watch","build":"tsup src/index.ts --format cjs,esm --dts --clean"},"_npmUser":{"name":"adssidhu86","email":"aiedx.org@gmail.com"},"_npmVersion":"10.7.0","description":"AI bot detection middleware for Next.js — works on any host","directories":{},"_nodeVersion":"22.2.0","_hasShrinkwrap":false,"devDependencies":{"next":"^16.2.2","tsup":"^8.5.1","typescript":"^5.9.3"},"peerDependencies":{"next":">=14.0.0"},"_npmOperationalInternal":{"tmp":"tmp/fetchlens-next_0.1.1_1775754987095_0.5907758096554132","host":"s3://npm-registry-packages-npm-production"}},"0.1.2":{"name":"@aiedx/fetchlens-next","version":"0.1.2","keywords":["next.js","middleware","ai","bot-detection","fetchlens","analytics"],"author":{"name":"AIEDX Private Limited"},"license":"SEE LICENSE IN LICENSE","_id":"@aiedx/fetchlens-next@0.1.2","maintainers":[{"name":"adssidhu86","email":"aiedx.org@gmail.com"}],"homepage":"https://fetchlens.ai","dist":{"shasum":"3587c9c1ace9b669679dafc23ac625405b09532c","tarball":"https://registry.npmjs.org/@aiedx/fetchlens-next/-/fetchlens-next-0.1.2.tgz","fileCount":7,"integrity":"sha512-7MnZ05Una/1E1MK9fqG2gCEvu5KTu6ZNAEcodqYfShAg2UpIvvMU1VBKaqWecaY30U4LIfLB5kAqybWornRvfw==","signatures":[{"sig":"MEUCIAxOWlWb7uF7RPGQAyrw4N8Y0QnfcdbooT1gAQskmKgDAiEAm+D8ui/jpHctHVQpOP81r6wbM2bgoGCEq4HEJcHCQck=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":17547},"main":"./dist/index.js","types":"./dist/index.d.ts","module":"./dist/index.mjs","exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.mjs","require":"./dist/index.js"}},"gitHead":"1465438b1cc063645995fd892a22aae49d72af57","scripts":{"dev":"tsup src/index.ts --format cjs,esm --dts --watch","build":"tsup src/index.ts --format cjs,esm --dts --clean"},"_npmUser":{"name":"adssidhu86","email":"aiedx.org@gmail.com"},"_npmVersion":"10.7.0","description":"AI bot detection middleware for Next.js — works on any host","directories":{},"_nodeVersion":"22.2.0","_hasShrinkwrap":false,"devDependencies":{"next":"^16.2.2","tsup":"^8.5.1","typescript":"^5.9.3"},"peerDependencies":{"next":">=14.0.0"},"_npmOperationalInternal":{"tmp":"tmp/fetchlens-next_0.1.2_1775761145118_0.2793492766694534","host":"s3://npm-registry-packages-npm-production"}},"0.1.3":{"name":"@aiedx/fetchlens-next","version":"0.1.3","keywords":["next.js","middleware","ai","bot-detection","fetchlens","analytics"],"author":{"name":"AIEDX Private Limited"},"license":"SEE LICENSE IN LICENSE","_id":"@aiedx/fetchlens-next@0.1.3","maintainers":[{"name":"adssidhu86","email":"aiedx.org@gmail.com"}],"homepage":"https://fetchlens.ai","dist":{"shasum":"2f3a95cadd3a3cafb2d8703a4d22cd960e27bcf1","tarball":"https://registry.npmjs.org/@aiedx/fetchlens-next/-/fetchlens-next-0.1.3.tgz","fileCount":7,"integrity":"sha512-bYyk5NR/Gs762peLivUhk34jo/BYmYQJXLasiRVVoNJ7Qj5ci6MqUkr8Cy9SxqsdG8hR4MmK8zePg0iTfeg28A==","signatures":[{"sig":"MEUCIQC4em0a96LyN55y9CcaOnobJ1ZYMFqOklwdQ2Eyb0cL7QIgBFkjV+Y3DypF9rN25TCteaPmLuNGt26Yvi2lZ2opM4Q=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":18329},"main":"./dist/index.js","types":"./dist/index.d.ts","module":"./dist/index.mjs","exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.mjs","require":"./dist/index.js"}},"gitHead":"050213741d11b62cfaad15cfd6d02aaf4c52e07a","scripts":{"dev":"tsup src/index.ts --format cjs,esm --dts --watch","build":"tsup src/index.ts --format cjs,esm --dts --clean"},"_npmUser":{"name":"adssidhu86","email":"aiedx.org@gmail.com"},"_npmVersion":"10.7.0","description":"AI bot detection middleware for Next.js — works on any host","directories":{},"_nodeVersion":"22.2.0","_hasShrinkwrap":false,"devDependencies":{"next":"^16.2.2","tsup":"^8.5.1","typescript":"^5.9.3"},"peerDependencies":{"next":">=14.0.0"},"_npmOperationalInternal":{"tmp":"tmp/fetchlens-next_0.1.3_1775821251723_0.26993708149770623","host":"s3://npm-registry-packages-npm-production"}},"0.1.4":{"name":"@aiedx/fetchlens-next","version":"0.1.4","keywords":["next.js","middleware","ai","bot-detection","fetchlens","analytics"],"author":{"name":"AIEDX Private Limited"},"license":"SEE LICENSE IN LICENSE","_id":"@aiedx/fetchlens-next@0.1.4","maintainers":[{"name":"adssidhu86","email":"aiedx.org@gmail.com"}],"homepage":"https://fetchlens.ai","dist":{"shasum":"e8bf2c8f942f9d579d259b8f32a553bcb2a661e3","tarball":"https://registry.npmjs.org/@aiedx/fetchlens-next/-/fetchlens-next-0.1.4.tgz","fileCount":7,"integrity":"sha512-VFz7tX7W8wCYNL8dZTa6aJg5XJAY7D0eBynQ/uwhIJQp1urDT/B3lTZfU4FU8dD64IDFdsywJ9f1uBXWS2iqdQ==","signatures":[{"sig":"MEYCIQDZijNxJl43utKwESWb6jxyJuKb4UFOxleTe1G0n14/6wIhAK4w/A4ZVdWdFYKFnZitEFWXJkNK2pQ8h3R40HE4CHWC","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":18332},"main":"./dist/index.js","types":"./dist/index.d.ts","module":"./dist/index.mjs","exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.mjs","require":"./dist/index.js"}},"gitHead":"6286f128de433c9b1388eb7cd915198a4d94812e","scripts":{"dev":"tsup src/index.ts --format cjs,esm --dts --watch","build":"tsup src/index.ts --format cjs,esm --dts --clean"},"_npmUser":{"name":"adssidhu86","email":"aiedx.org@gmail.com"},"_npmVersion":"10.7.0","description":"AI bot detection middleware for Next.js — works on any host","directories":{},"_nodeVersion":"22.2.0","_hasShrinkwrap":false,"devDependencies":{"next":"^16.2.2","tsup":"^8.5.1","typescript":"^5.9.3"},"peerDependencies":{"next":">=14.0.0"},"_npmOperationalInternal":{"tmp":"tmp/fetchlens-next_0.1.4_1775829373804_0.6750602523819522","host":"s3://npm-registry-packages-npm-production"}},"0.1.5":{"name":"@aiedx/fetchlens-next","version":"0.1.5","keywords":["next.js","middleware","ai","bot-detection","fetchlens","analytics"],"author":{"name":"AIEDX Private Limited"},"license":"SEE LICENSE IN LICENSE","_id":"@aiedx/fetchlens-next@0.1.5","maintainers":[{"name":"adssidhu86","email":"aiedx.org@gmail.com"}],"homepage":"https://fetchlens.ai","dist":{"shasum":"06c89d1207d27f6b17a5ddf72bd5f2b851ea329e","tarball":"https://registry.npmjs.org/@aiedx/fetchlens-next/-/fetchlens-next-0.1.5.tgz","fileCount":7,"integrity":"sha512-hnHo8kSylU1J1zWwE4JuvbrvYhBXvGMDNbUFnrGMtDY7kmBufXWKH7S/j6GD8gt1S/vJdSr+Ixn+ARXCrELa+Q==","signatures":[{"sig":"MEYCIQCpd9xdNsI7zgVpw+r2QUh9ky20rpXdtCra5WxqMroGUQIhAKvchtj0mMcmQXjDnFLjhlC7I2v3JpYjF7J3BWg1gAWu","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":19760},"main":"./dist/index.js","types":"./dist/index.d.ts","module":"./dist/index.mjs","exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.mjs","require":"./dist/index.js"}},"gitHead":"cd986b63707b999ccb1fb2dccb72fea7cc4e8b9d","scripts":{"dev":"tsup src/index.ts --format cjs,esm --dts --watch","build":"tsup src/index.ts --format cjs,esm --dts --clean"},"_npmUser":{"name":"adssidhu86","email":"aiedx.org@gmail.com"},"_npmVersion":"10.7.0","description":"AI bot detection middleware for Next.js — works on any host","directories":{},"_nodeVersion":"22.2.0","_hasShrinkwrap":false,"devDependencies":{"next":"^16.2.2","tsup":"^8.5.1","typescript":"^5.9.3"},"peerDependencies":{"next":">=14.0.0"},"_npmOperationalInternal":{"tmp":"tmp/fetchlens-next_0.1.5_1776026609919_0.2119995099477312","host":"s3://npm-registry-packages-npm-production"}},"0.1.6":{"name":"@aiedx/fetchlens-next","version":"0.1.6","keywords":["next.js","middleware","ai","bot-detection","fetchlens","analytics"],"author":{"name":"AIEDX Private Limited"},"license":"SEE LICENSE IN LICENSE","_id":"@aiedx/fetchlens-next@0.1.6","maintainers":[{"name":"adssidhu86","email":"aiedx.org@gmail.com"}],"homepage":"https://fetchlens.ai","dist":{"shasum":"84df21c8ec1caa55f5ba1dc70c6183d7a0b927c6","tarball":"https://registry.npmjs.org/@aiedx/fetchlens-next/-/fetchlens-next-0.1.6.tgz","fileCount":7,"integrity":"sha512-m6YEM2fPnFfPQkDDCBa3/Sg3BKqNvuPO4Kr2hrkMpMPTUTb1tyruK7t3kvveRpb0zpt2pKhVVkNEbZCePWVvFA==","signatures":[{"sig":"MEUCIHMyhfS1H/o/maVk4Url++gi0QA6NUTbF1A+O6R8GoigAiEAoTcydVclOvyV7FkNdBTl2NxmLrfjz+qxDkRzuhRvF0w=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":10868},"main":"./dist/index.js","types":"./dist/index.d.ts","module":"./dist/index.mjs","exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.mjs","require":"./dist/index.js"}},"gitHead":"8f30427882ac23ff5baca9d2b610fd1cd5f0ebc3","scripts":{"dev":"tsup src/index.ts --format cjs,esm --dts --watch","build":"tsup src/index.ts --format cjs,esm --dts --clean"},"_npmUser":{"name":"adssidhu86","email":"aiedx.org@gmail.com"},"_npmVersion":"10.7.0","description":"AI bot detection middleware for Next.js — works on any host","directories":{},"_nodeVersion":"22.2.0","dependencies":{"@aiedx/fetchlens-core":"^0.1.0"},"_hasShrinkwrap":false,"devDependencies":{"next":"^16.2.2","tsup":"^8.5.1","typescript":"^5.9.3"},"peerDependencies":{"next":">=14.0.0"},"_npmOperationalInternal":{"tmp":"tmp/fetchlens-next_0.1.6_1776290074715_0.8510311045212815","host":"s3://npm-registry-packages-npm-production"}},"0.1.7":{"name":"@aiedx/fetchlens-next","version":"0.1.7","keywords":["next.js","middleware","ai","bot-detection","fetchlens","analytics"],"author":{"name":"AIEDX Private Limited"},"license":"SEE LICENSE IN LICENSE","_id":"@aiedx/fetchlens-next@0.1.7","maintainers":[{"name":"adssidhu86","email":"aiedx.org@gmail.com"}],"homepage":"https://fetchlens.ai","dist":{"shasum":"ffc0eb8182a651b6c591c981559a51949ed7a09e","tarball":"https://registry.npmjs.org/@aiedx/fetchlens-next/-/fetchlens-next-0.1.7.tgz","fileCount":7,"integrity":"sha512-wtPlM1kv5RdHHEEUQwQZBOVSVDAOhUyhPhDi6xhxu9wlMnFxiV66tUI2G4LqieBaH4n6jQWZ/htaC2cbJ0sjuA==","signatures":[{"sig":"MEQCIDRMIEIvGpaZSWOaNBDRAQaeN37oKgDU4jPSQHl3W7lKAiAx+KAGcsX0HsvnAaSYReYvH9WCpR+lq8hbezNn2Bm1ag==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":10868},"main":"./dist/index.js","types":"./dist/index.d.ts","module":"./dist/index.mjs","exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.mjs","require":"./dist/index.js"}},"gitHead":"8f30427882ac23ff5baca9d2b610fd1cd5f0ebc3","scripts":{"dev":"tsup src/index.ts --format cjs,esm --dts --watch","build":"tsup src/index.ts --format cjs,esm --dts --clean"},"_npmUser":{"name":"adssidhu86","email":"aiedx.org@gmail.com"},"_npmVersion":"10.7.0","description":"AI bot detection middleware for Next.js — works on any host","directories":{},"_nodeVersion":"22.2.0","dependencies":{"@aiedx/fetchlens-core":"^0.1.0"},"_hasShrinkwrap":false,"devDependencies":{"next":"^16.2.2","tsup":"^8.5.1","typescript":"^5.9.3"},"peerDependencies":{"next":">=14.0.0"},"_npmOperationalInternal":{"tmp":"tmp/fetchlens-next_0.1.7_1776290591427_0.3509775691563626","host":"s3://npm-registry-packages-npm-production"}},"0.1.8":{"name":"@aiedx/fetchlens-next","version":"0.1.8","description":"AI bot detection middleware for Next.js — works on any host","main":"./dist/index.js","module":"./dist/index.mjs","types":"./dist/index.d.ts","exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.mjs","require":"./dist/index.js"}},"scripts":{"build":"tsup src/index.ts --format cjs,esm --dts --clean","dev":"tsup src/index.ts --format cjs,esm --dts --watch"},"dependencies":{"@aiedx/fetchlens-core":"^0.1.2"},"peerDependencies":{"next":">=14.0.0"},"devDependencies":{"next":"^16.2.2","tsup":"^8.5.1","typescript":"^5.9.3"},"keywords":["next.js","middleware","ai","bot-detection","fetchlens","analytics"],"author":{"name":"AIEDX Private Limited"},"license":"SEE LICENSE IN LICENSE","homepage":"https://fetchlens.ai","_id":"@aiedx/fetchlens-next@0.1.8","gitHead":"5839ca96e4f896ed071d101a1cf96bf69be985b9","_nodeVersion":"22.2.0","_npmVersion":"10.7.0","dist":{"integrity":"sha512-0iS0sAuucH/wvn07wSDNVfQtJ3PWuLzqGcz0WetIioERfn3qM71dFn5fh8GwmqASjgw0GqeRz0uuSLofi7ZX8Q==","shasum":"2871990d9a5590d00572a0354e9ad0f11ae4f39c","tarball":"https://registry.npmjs.org/@aiedx/fetchlens-next/-/fetchlens-next-0.1.8.tgz","fileCount":7,"unpackedSize":11473,"signatures":[{"keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U","sig":"MEQCIEJ2+M2/bTjAswcKs1qkHa2wiH2BtbvH5cHXiP9GeQFxAiA0rEUElyxR3lhwlUM+1K36LUBrd1FecmGqTxbDUeE22g=="}]},"_npmUser":{"name":"adssidhu86","email":"aiedx.org@gmail.com"},"directories":{},"maintainers":[{"name":"adssidhu86","email":"aiedx.org@gmail.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages-npm-production","tmp":"tmp/fetchlens-next_0.1.8_1776963481391_0.7270152349951251"},"_hasShrinkwrap":false}},"time":{"created":"2026-04-09T17:12:23.228Z","modified":"2026-04-23T16:58:01.660Z","0.1.0":"2026-04-09T17:12:23.578Z","0.1.1":"2026-04-09T17:16:27.237Z","0.1.2":"2026-04-09T18:59:05.272Z","0.1.3":"2026-04-10T11:40:51.870Z","0.1.4":"2026-04-10T13:56:13.953Z","0.1.5":"2026-04-12T20:43:30.062Z","0.1.6":"2026-04-15T21:54:34.867Z","0.1.7":"2026-04-15T22:03:11.581Z","0.1.8":"2026-04-23T16:58:01.514Z"},"author":{"name":"AIEDX Private Limited"},"license":"SEE LICENSE IN LICENSE","homepage":"https://fetchlens.ai","keywords":["next.js","middleware","ai","bot-detection","fetchlens","analytics"],"description":"AI bot detection middleware for Next.js — works on any host","maintainers":[{"name":"adssidhu86","email":"aiedx.org@gmail.com"}],"readme":"# @aiedx/fetchlens-next\n\nAI bot detection middleware for Next.js. Detects 26 AI agents (GPTBot, ClaudeBot, PerplexityBot, and more) hitting your site in real-time. Works on any host — Vercel, AWS Amplify, Netlify, Cloudflare, self-hosted.\n\n## Why\n\nGoogle Analytics, Plausible, and every other analytics tool are **100% blind to AI bot traffic**. These bots don't run JavaScript, so they never appear in your dashboards. FetchLens detects them at the middleware layer.\n\n## Install\n\n```bash\nnpm install @aiedx/fetchlens-next\n```\n\n## Setup\n\nCreate `middleware.ts` in your project root:\n\n```typescript\nimport { withFetchLens } from '@aiedx/fetchlens-next'\n\nexport const middleware = withFetchLens({\n  siteId: 'yourdomain.com',\n  apiEndpoint: 'https://fetchlens.ai',\n  siteTag: 'fl_pub_your_key',\n})\n\nexport const config = {\n  matcher: ['/((?!_next/static|_next/image|favicon.ico|api/).*)'],\n}\n```\n\nGet your Site Tag by scanning your domain at [fetchlens.ai](https://fetchlens.ai).\n\n## What it detects\n\n| Provider | Bots |\n|----------|------|\n| OpenAI | GPTBot, ChatGPT-User, OAI-SearchBot |\n| Anthropic | ClaudeBot, Claude-SearchBot, Claude-User, Claude-Code, anthropic-ai |\n| Perplexity | PerplexityBot, Perplexity-User |\n| Google | Google-Extended, Google-CloudVertexBot |\n| Apple | Applebot-Extended |\n| Meta | meta-externalagent, meta-externalfetcher, FacebookBot |\n| Others | DuckAssistBot, MistralAI-User, Bytespider, cohere-ai, Amazonbot, PetalBot, Diffbot, PhindBot, YouBot, CCBot |\n\n## Features\n\n- **Zero-latency** — detection runs asynchronously via `waitUntil`, no impact on page load\n- **Vulnerability scan blocking** — automatically blocks probes for `.php`, `/wp-admin`, `.env`, etc. with a 403 (configurable)\n- **Server-side only** — no client bundle impact, works with all rendering modes (SSR, SSG, ISR)\n- **26 AI bot signatures** — covers all major AI crawlers and training bots\n\n## Configuration\n\n```typescript\nwithFetchLens({\n  siteId: 'yourdomain.com',        // Required: your domain\n  apiEndpoint: 'https://fetchlens.ai', // Required: FetchLens API URL\n  siteTag: 'fl_pub_xxx',           // Your Site Tag (from install guide)\n  blockVulnScans: true,            // Block vulnerability probes (default: true)\n})\n```\n\n## How it works\n\n1. Every request passes through Next.js middleware\n2. FetchLens extracts the user agent, headers, and request metadata\n3. The payload is sent asynchronously to the FetchLens API (zero latency impact)\n4. The API identifies the bot using 26 known signatures + heuristic detection\n5. Results appear on your [FetchLens dashboard](https://fetchlens.ai/dashboard)\n\n## Requirements\n\n- Next.js 14+\n- Node.js 18+\n\n## License\n\nProprietary. Copyright (c) 2026 AIEDX Private Limited.\n","readmeFilename":"README.md"}