{"_id":"@aisightline/ai-traffic-vercel","_rev":"2-db1bcfb645884f2deca7dc4d333731ac","name":"@aisightline/ai-traffic-vercel","dist-tags":{"latest":"0.3.0"},"versions":{"0.1.0":{"name":"@aisightline/ai-traffic-vercel","version":"0.1.0","keywords":["ai-sightline","ai-traffic","ai-bots","ai-analytics","vercel","nextjs","middleware","edge","gptbot","claudebot","perplexitybot"],"license":"MIT","_id":"@aisightline/ai-traffic-vercel@0.1.0","maintainers":[{"name":"aisightline","email":"mac@aisightline.com"}],"homepage":"https://aisightline.com/portal/ai-traffic/install","bugs":{"email":"aisightline@gmail.com"},"dist":{"shasum":"daaf5adee7eee8795feee35cae937c186e49ee6c","tarball":"https://registry.npmjs.org/@aisightline/ai-traffic-vercel/-/ai-traffic-vercel-0.1.0.tgz","fileCount":12,"integrity":"sha512-DOH8csj48AIbZxsBPNPcvLmLr7QDkf3t0op9V+KdBmJB1vLYc59B63AFtZwF9q/zgO89oW+9FATnBqLBNg3+nQ==","signatures":[{"sig":"MEUCIQCmODCKodhKyCtHxxQPyerLePhFcnLhvfk4PWj3V8+oNAIgAvFgJm77zRDRGvgDlNHZuFIKznWQ59EujQfacjpsnu0=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":21536},"main":"dist/index.js","type":"module","types":"dist/index.d.ts","engines":{"node":">=18"},"exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js"}},"gitHead":"846bc075a9a10beac7944dd5d5e4f438d5bf2480","scripts":{"dev":"tsc --watch","test":"vitest run","build":"tsc","sync:check":"node scripts/sync-registries.mjs --check","sync:write":"node scripts/sync-registries.mjs","prepublishOnly":"npm run sync:write && npm run build"},"_npmUser":{"name":"aisightline","email":"mac@aisightline.com"},"_npmVersion":"11.11.0","description":"AI Sightline AI Traffic — Vercel / Next.js middleware. One-line install for AI bot + AI referral analytics.","directories":{},"_nodeVersion":"25.8.1","publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"next":"^14.2.35","vitest":"^2.0.0","typescript":"^5.3.0"},"peerDependencies":{"next":">=14"},"_npmOperationalInternal":{"tmp":"tmp/ai-traffic-vercel_0.1.0_1778334855852_0.8681221932027001","host":"s3://npm-registry-packages-npm-production"}},"0.3.0":{"name":"@aisightline/ai-traffic-vercel","version":"0.3.0","description":"AI Sightline AI Traffic — Vercel / Next.js middleware. One-line install for AI bot + AI referral analytics.","type":"module","main":"dist/index.js","types":"dist/index.d.ts","exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js"}},"publishConfig":{"access":"public"},"homepage":"https://aisightline.com/portal/ai-traffic/install","bugs":{"email":"aisightline@gmail.com"},"keywords":["ai-sightline","ai-traffic","ai-bots","ai-analytics","vercel","nextjs","middleware","edge","gptbot","claudebot","perplexitybot"],"license":"MIT","scripts":{"build":"tsc","dev":"tsc --watch","test":"vitest run","sync:check":"node scripts/sync-registries.mjs --check","sync:write":"node scripts/sync-registries.mjs","prepublishOnly":"npm run sync:write && npm run build"},"peerDependencies":{"next":">=14"},"devDependencies":{"next":"^14.2.35","typescript":"^5.3.0","vitest":"^2.0.0"},"engines":{"node":">=18"},"_id":"@aisightline/ai-traffic-vercel@0.3.0","_nodeVersion":"25.8.1","_npmVersion":"11.11.0","dist":{"integrity":"sha512-DBxEOYW1HwAVhgsaOmDJS53xHN0LyfyM9PybfUMcH4/jRZ6oy1QE6DKj9Vn5GZ/4fPLBgFBXkXcTIcoOoa5+EQ==","shasum":"1ce5e8685e4f638423b11abea727f6ff54a634ab","tarball":"https://registry.npmjs.org/@aisightline/ai-traffic-vercel/-/ai-traffic-vercel-0.3.0.tgz","fileCount":12,"unpackedSize":24538,"signatures":[{"keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U","sig":"MEUCIQD+qGCTYb8CaSxQVDZ/endDLZBg5EZkR1Kbhj1C4UYfrQIgERf0kpKtXRzJu0AH0YJDupblvDhJdVy7TTRgDb1PhZE="}]},"_npmUser":{"name":"aisightline","email":"mac@aisightline.com"},"directories":{},"maintainers":[{"name":"aisightline","email":"mac@aisightline.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages-npm-production","tmp":"tmp/ai-traffic-vercel_0.3.0_1778350326858_0.8746663694280614"},"_hasShrinkwrap":false}},"time":{"created":"2026-05-09T13:54:15.744Z","modified":"2026-05-09T18:12:07.120Z","0.1.0":"2026-05-09T13:54:15.995Z","0.3.0":"2026-05-09T18:12:06.997Z"},"bugs":{"email":"aisightline@gmail.com"},"license":"MIT","homepage":"https://aisightline.com/portal/ai-traffic/install","keywords":["ai-sightline","ai-traffic","ai-bots","ai-analytics","vercel","nextjs","middleware","edge","gptbot","claudebot","perplexitybot"],"description":"AI Sightline AI Traffic — Vercel / Next.js middleware. One-line install for AI bot + AI referral analytics.","maintainers":[{"name":"aisightline","email":"mac@aisightline.com"}],"readme":"# @aisightline/ai-traffic-vercel\n\nAI Sightline AI Traffic — one-line install for Vercel / Next.js middleware. Tracks AI bot crawls and AI-platform referrals (ChatGPT, Perplexity, Claude, Gemini, Copilot, Google AIO) server-side, with no cookies and no client-side script.\n\n## Install\n\n```bash\nnpm install @aisightline/ai-traffic-vercel\n```\n\nSet the website key in your Vercel project's environment:\n\n```\nAISIGHTLINE_WEBSITE_KEY=your-key-here\n```\n\n## Usage\n\n### Drop-in (most common)\n\n```ts\n// src/middleware.ts\nimport { withAiTraffic } from '@aisightline/ai-traffic-vercel';\n\nexport default withAiTraffic();\n\nexport const config = {\n  matcher: ['/((?!_next/static|_next/image|favicon.ico).*)'],\n};\n```\n\n### Wrap an existing middleware\n\n```ts\n// src/middleware.ts\nimport { withAiTraffic } from '@aisightline/ai-traffic-vercel';\nimport { NextResponse, type NextRequest } from 'next/server';\n\nexport default withAiTraffic(async (req: NextRequest) => {\n  // your existing middleware logic here\n  return NextResponse.next();\n});\n\nexport const config = {\n  matcher: ['/((?!_next/static|_next/image|favicon.ico).*)'],\n};\n```\n\n### Express / Fastify\n\nIf you're not on Next.js, import `sendIntake` and call it from your request handler:\n\n```ts\nimport { sendIntake, shouldSkipPath } from '@aisightline/ai-traffic-vercel';\n\napp.use((req, res, next) => {\n  if (!shouldSkipPath(req.path)) {\n    const xff = (req.headers['x-forwarded-for'] ?? '').toString();\n    sendIntake({\n      websiteKey: process.env.AISIGHTLINE_WEBSITE_KEY!,\n      url: `${req.protocol}://${req.get('host')}${req.originalUrl}`,\n      userAgent: req.headers['user-agent'] ?? '',\n      referer: req.headers.referer ?? '',\n      ip: xff.split(',')[0].trim(),\n    });\n  }\n  next();\n});\n```\n\n## What it captures\n\nFor every HTML pageview, AI Traffic identifies AI bot crawls (verified via reverse-DNS) and AI-platform referrals. It skips static assets (images, CSS, JS, fonts), `/api/*` routes, and Next.js internals automatically. It explicitly tracks discovery paths even though they look static (`/robots.txt`, `/llms.txt`, `/sitemap.xml`, `/ai.txt`, `/.well-known/*`) because AI crawlers fingerprint themselves on those paths.\n\n## Privacy\n\nWe hash IP addresses (SHA-256) before persistence and never store the raw IP. No cookies, no client JavaScript, no third-party trackers. You don't need a cookie banner or a privacy policy update for AI Traffic specifically.\n\n## Verifying the install\n\nAfter deploying, run the verify probe at:\n\n  https://aisightline.com/portal/ai-traffic/install\n\nThe probe fetches your site with the `AISightlineBot-Test/1.0` user agent and confirms an intake landed within 5 seconds. Active probe = installed-and-confident in 60 seconds.\n\n## License\n\nMIT.\n\n## Issues\n\n[aisightline@gmail.com](mailto:aisightline@gmail.com)\n","readmeFilename":"README.md"}