{"_id":"@dualmark/nextjs","_rev":"7-7f784db7a78ddd1d644dd0a5fa2f4d8f","name":"@dualmark/nextjs","dist-tags":{"latest":"0.11.0"},"versions":{"0.5.0":{"name":"@dualmark/nextjs","version":"0.5.0","keywords":["aeo","answer-engine-optimization","next.js","nextjs","next-app-router","ai-search","ai-agents","markdown","llms-txt","dualmark"],"author":"Dodo Payments <opensource@dodopayments.com> (https://dodopayments.com)","license":"Apache-2.0","_id":"@dualmark/nextjs@0.5.0","maintainers":[{"name":"dodopayments","email":"ayush@dodopayments.com"}],"homepage":"https://github.com/dodopayments/dualmark/tree/main/packages/nextjs#readme","bugs":{"url":"https://github.com/dodopayments/dualmark/issues"},"dist":{"shasum":"4e9fa99aff5c63edfaafcec061d1d6e4c711e0a1","tarball":"https://registry.npmjs.org/@dualmark/nextjs/-/nextjs-0.5.0.tgz","fileCount":9,"integrity":"sha512-/qqvZYp4f8/G4v16M5RfhQynAqFBrkM6kBDhn7osBCysAr+hYLheAOvB8D+GoiZsVgV84JyJ3A8n3T6s5CllbQ==","signatures":[{"sig":"MEUCIEshMX6KzQOtvUFqN1WmyoVJ/6wmitVM41QGpkN1/bCHAiEAvxhKEde6MDT939N37nC6gYnJi9vcdSQt1sIKKhW7WgY=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":133099},"main":"./dist/index.cjs","type":"module","types":"./dist/index.d.ts","module":"./dist/index.js","shasum":"4e9fa99aff5c63edfaafcec061d1d6e4c711e0a1","engines":{"node":">=18.18.0"},"exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js","require":"./dist/index.cjs"}},"funding":"https://github.com/sponsors/dodopayments","scripts":{"test":"vitest run","build":"tsup","clean":"rm -rf dist .turbo","typecheck":"tsc --noEmit","test:watch":"vitest"},"_npmUser":{"name":"dodopayments","email":"ayush@dodopayments.com"},"_integrity":"sha512-/qqvZYp4f8/G4v16M5RfhQynAqFBrkM6kBDhn7osBCysAr+hYLheAOvB8D+GoiZsVgV84JyJ3A8n3T6s5CllbQ==","repository":{"url":"git+https://github.com/dodopayments/dualmark.git","type":"git","directory":"packages/nextjs"},"_npmVersion":"10.8.3","description":"Next.js 15 App Router adapter for the Dualmark AEO framework. Drop-in middleware + route-handler factory + withDualmark() config wrapper. Same API surface as @dualmark/astro.","directories":{},"sideEffects":false,"_nodeVersion":"24.3.0","dependencies":{"@dualmark/core":"0.5.0","@dualmark/converters":"0.5.0"},"publishConfig":{"access":"public","registry":"https://registry.npmjs.org"},"_hasShrinkwrap":false,"devDependencies":{"next":"^15.0.0","tsup":"^8.3.5","vitest":"^2.1.8","typescript":"^5.7.2","@types/node":"^22.10.0"},"peerDependencies":{"next":">=14.0.0"},"_npmOperationalInternal":{"tmp":"tmp/nextjs_0.5.0_1778151904971_0.05708247820310697","host":"s3://npm-registry-packages-npm-production"}},"0.5.1":{"name":"@dualmark/nextjs","version":"0.5.1","keywords":["aeo","answer-engine-optimization","next.js","nextjs","next-app-router","ai-search","ai-agents","markdown","llms-txt","dualmark"],"author":"Dodo Payments <opensource@dodopayments.com> (https://dodopayments.com)","license":"Apache-2.0","_id":"@dualmark/nextjs@0.5.1","maintainers":[{"name":"dodopayments","email":"ayush@dodopayments.com"}],"homepage":"https://github.com/dodopayments/dualmark/tree/main/packages/nextjs#readme","bugs":{"url":"https://github.com/dodopayments/dualmark/issues"},"dist":{"shasum":"7265b0f059d58b33a8371bf659f7471886ad4161","tarball":"https://registry.npmjs.org/@dualmark/nextjs/-/nextjs-0.5.1.tgz","fileCount":9,"integrity":"sha512-jmb77uclNSqZ1VB3CiIUwm8CjXTLvI+DIGO8tpk75pr4SVHzot0IRqAr8OFIPIzvhQWZHTlbolBMi+Z8MfRANg==","signatures":[{"sig":"MEUCIQCP3PGSd29A+DXlarlFrnn6nGuGRJNCUvkg95S2jdl9sAIgcrb+B9BzGZCGfuY85nPh9CAOoejfKoIE+LkIiqWnUrc=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":133096},"main":"./dist/index.cjs","type":"module","types":"./dist/index.d.ts","module":"./dist/index.js","shasum":"7265b0f059d58b33a8371bf659f7471886ad4161","engines":{"node":">=18.18.0"},"exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js","require":"./dist/index.cjs"}},"funding":"https://github.com/sponsors/dodopayments","scripts":{"test":"vitest run","build":"tsup","clean":"rm -rf dist .turbo","typecheck":"tsc --noEmit","test:watch":"vitest"},"_npmUser":{"name":"dodopayments","email":"ayush@dodopayments.com"},"_integrity":"sha512-jmb77uclNSqZ1VB3CiIUwm8CjXTLvI+DIGO8tpk75pr4SVHzot0IRqAr8OFIPIzvhQWZHTlbolBMi+Z8MfRANg==","repository":{"url":"git+https://github.com/dodopayments/dualmark.git","type":"git","directory":"packages/nextjs"},"_npmVersion":"10.8.3","description":"Next.js App Router adapter for the Dualmark AEO framework. Drop-in proxy/middleware + route-handler factory + withDualmark() config wrapper. Same API surface as @dualmark/astro.","directories":{},"sideEffects":false,"_nodeVersion":"24.3.0","dependencies":{"@dualmark/core":"0.5.0","@dualmark/converters":"0.5.0"},"publishConfig":{"access":"public","registry":"https://registry.npmjs.org"},"_hasShrinkwrap":false,"devDependencies":{"next":"^16.2.6","tsup":"^8.3.5","vitest":"^2.1.8","typescript":"^5.7.2","@types/node":"^22.10.0"},"peerDependencies":{"next":">=14.0.0"},"_npmOperationalInternal":{"tmp":"tmp/nextjs_0.5.1_1778384820511_0.9282900906912015","host":"s3://npm-registry-packages-npm-production"}},"0.5.2":{"name":"@dualmark/nextjs","version":"0.5.2","keywords":["aeo","answer-engine-optimization","next.js","nextjs","next-app-router","ai-search","ai-agents","markdown","llms-txt","dualmark"],"author":{"url":"https://dodopayments.com","name":"Dodo Payments","email":"opensource@dodopayments.com"},"license":"Apache-2.0","_id":"@dualmark/nextjs@0.5.2","maintainers":[{"name":"dodopayments","email":"ayush@dodopayments.com"}],"homepage":"https://github.com/dodopayments/dualmark/tree/main/packages/nextjs#readme","bugs":{"url":"https://github.com/dodopayments/dualmark/issues"},"dist":{"shasum":"a2617bcbf1060453400dc5bafcb96dcaed39af23","tarball":"https://registry.npmjs.org/@dualmark/nextjs/-/nextjs-0.5.2.tgz","fileCount":9,"integrity":"sha512-FYr9nuj1Ql9zYDujIvcXbvSqx48S/9Kguygz3cokgavigbHEMAWNqQwmVKVoQvl0gtPtao4agzT9fXBE6sGuhA==","signatures":[{"sig":"MEYCIQCTWmLxuaFqgqQA1f+Z1gJemER8l3u07+/CnJhRW4azkQIhAIu4rIXyYaUQYkbN6kL/sDJcI9CA4OSK9H9w7mHg7r7k","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@dualmark%2fnextjs@0.5.2","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":133096},"main":"./dist/index.cjs","type":"module","_from":"file:/home/runner/work/dualmark/dualmark/packages/nextjs/dualmark-nextjs-0.5.2.tgz","types":"./dist/index.d.ts","module":"./dist/index.js","engines":{"node":">=18.18.0"},"exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js","require":"./dist/index.cjs"}},"funding":"https://github.com/sponsors/dodopayments","scripts":{"test":"vitest run","build":"tsup","clean":"rm -rf dist .turbo","typecheck":"tsc --noEmit","test:watch":"vitest"},"_npmUser":{"name":"dodopayments","email":"ayush@dodopayments.com"},"_resolved":"/home/runner/work/dualmark/dualmark/packages/nextjs/dualmark-nextjs-0.5.2.tgz","_integrity":"sha512-FYr9nuj1Ql9zYDujIvcXbvSqx48S/9Kguygz3cokgavigbHEMAWNqQwmVKVoQvl0gtPtao4agzT9fXBE6sGuhA==","repository":{"url":"git+https://github.com/dodopayments/dualmark.git","type":"git","directory":"packages/nextjs"},"_npmVersion":"10.9.7","description":"Next.js App Router adapter for the Dualmark AEO framework. Drop-in proxy/middleware + route-handler factory + withDualmark() config wrapper. Same API surface as @dualmark/astro.","directories":{},"sideEffects":false,"_nodeVersion":"22.22.2","dependencies":{"@dualmark/core":"0.5.2","@dualmark/converters":"0.5.2"},"publishConfig":{"access":"public","registry":"https://registry.npmjs.org"},"_hasShrinkwrap":false,"devDependencies":{"next":"^16.2.6","tsup":"^8.3.5","vitest":"^2.1.8","typescript":"^5.7.2","@types/node":"^22.10.0"},"peerDependencies":{"next":">=14.0.0"},"_npmOperationalInternal":{"tmp":"tmp/nextjs_0.5.2_1778586992504_0.3754348846768396","host":"s3://npm-registry-packages-npm-production"}},"0.7.0":{"name":"@dualmark/nextjs","version":"0.7.0","keywords":["aeo","answer-engine-optimization","next.js","nextjs","next-app-router","ai-search","ai-agents","markdown","llms-txt","dualmark"],"author":{"url":"https://dodopayments.com","name":"Dodo Payments","email":"opensource@dodopayments.com"},"license":"Apache-2.0","_id":"@dualmark/nextjs@0.7.0","maintainers":[{"name":"dodopayments","email":"ayush@dodopayments.com"}],"homepage":"https://github.com/dodopayments/dualmark/tree/main/packages/nextjs#readme","bugs":{"url":"https://github.com/dodopayments/dualmark/issues"},"dist":{"shasum":"0b54a9f5e5ac085021143f363f2b069bd2395208","tarball":"https://registry.npmjs.org/@dualmark/nextjs/-/nextjs-0.7.0.tgz","fileCount":9,"integrity":"sha512-Ha6U2A8C9cnKMgzBWKeemkbOg5OARwhKAE+FGkrRAyfUWYY5xLkaEq8TGLCPwuV9ZovugZlPgyOk+atX6k8SYA==","signatures":[{"sig":"MEQCIBfekHYMvRP0r/NXhvwVdU84iIk1WDOUIhg3+N7JPFzKAiA0VPDO4L2TxeLRvRa/ACPeUXX1+CruPfqI+1IaVlxsWQ==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@dualmark%2fnextjs@0.7.0","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":133777},"main":"./dist/index.cjs","type":"module","_from":"file:/home/runner/work/dualmark/dualmark/packages/nextjs/dualmark-nextjs-0.7.0.tgz","types":"./dist/index.d.ts","module":"./dist/index.js","engines":{"node":">=22.12.0"},"exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js","require":"./dist/index.cjs"}},"funding":"https://github.com/sponsors/dodopayments","scripts":{"test":"vitest run","build":"tsup","clean":"rm -rf dist .turbo","typecheck":"tsc --noEmit","test:watch":"vitest"},"_npmUser":{"name":"dodopayments","email":"ayush@dodopayments.com"},"_resolved":"/home/runner/work/dualmark/dualmark/packages/nextjs/dualmark-nextjs-0.7.0.tgz","_integrity":"sha512-Ha6U2A8C9cnKMgzBWKeemkbOg5OARwhKAE+FGkrRAyfUWYY5xLkaEq8TGLCPwuV9ZovugZlPgyOk+atX6k8SYA==","repository":{"url":"git+https://github.com/dodopayments/dualmark.git","type":"git","directory":"packages/nextjs"},"_npmVersion":"10.9.7","description":"Next.js App Router adapter for the Dualmark AEO framework. Drop-in proxy/middleware + route-handler factory + withDualmark() config wrapper. Same API surface as @dualmark/astro.","directories":{},"sideEffects":false,"_nodeVersion":"22.22.2","dependencies":{"@dualmark/core":"0.7.0","@dualmark/converters":"0.7.0"},"publishConfig":{"access":"public","registry":"https://registry.npmjs.org"},"_hasShrinkwrap":false,"devDependencies":{"next":"^16.2.6","tsup":"^8.3.5","vitest":"^2.1.8","typescript":"^5.7.2","@types/node":"^22.10.0"},"peerDependencies":{"next":">=14.0.0"},"_npmOperationalInternal":{"tmp":"tmp/nextjs_0.7.0_1779304664255_0.4152960942565673","host":"s3://npm-registry-packages-npm-production"}},"0.8.0":{"name":"@dualmark/nextjs","version":"0.8.0","keywords":["aeo","answer-engine-optimization","next.js","nextjs","next-app-router","ai-search","ai-agents","markdown","llms-txt","dualmark"],"author":{"url":"https://dodopayments.com","name":"Dodo Payments","email":"opensource@dodopayments.com"},"license":"Apache-2.0","_id":"@dualmark/nextjs@0.8.0","maintainers":[{"name":"dodopayments","email":"ayush@dodopayments.com"}],"homepage":"https://github.com/dodopayments/dualmark/tree/main/packages/nextjs#readme","bugs":{"url":"https://github.com/dodopayments/dualmark/issues"},"dist":{"shasum":"bd5d6f794026f13ab816593f7cd1851019d87335","tarball":"https://registry.npmjs.org/@dualmark/nextjs/-/nextjs-0.8.0.tgz","fileCount":9,"integrity":"sha512-KcUaRCKiN2ut3xmXS0mkVZ64HhFc3AE0EAP3eei3evIelEsIse4jN2T0d3UTQ4ABnuvhcw1OrskuHsCF9BoQ9Q==","signatures":[{"sig":"MEUCIAUQGFfvc+rzzqOOBVKvtCO2YOMVmbhg87WfSAesZ1ybAiEAvpthHscl5J4fmN1pgt+tAI6QQGIAB1b5ROssHRPyfAQ=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@dualmark%2fnextjs@0.8.0","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":134465},"main":"./dist/index.cjs","type":"module","_from":"file:/home/runner/work/dualmark/dualmark/packages/nextjs/dualmark-nextjs-0.8.0.tgz","types":"./dist/index.d.ts","module":"./dist/index.js","engines":{"node":">=22.12.0"},"exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js","require":"./dist/index.cjs"}},"funding":"https://github.com/sponsors/dodopayments","scripts":{"test":"vitest run","build":"tsup","clean":"rm -rf dist .turbo","typecheck":"tsc --noEmit","test:watch":"vitest"},"_npmUser":{"name":"dodopayments","email":"ayush@dodopayments.com"},"_resolved":"/home/runner/work/dualmark/dualmark/packages/nextjs/dualmark-nextjs-0.8.0.tgz","_integrity":"sha512-KcUaRCKiN2ut3xmXS0mkVZ64HhFc3AE0EAP3eei3evIelEsIse4jN2T0d3UTQ4ABnuvhcw1OrskuHsCF9BoQ9Q==","repository":{"url":"git+https://github.com/dodopayments/dualmark.git","type":"git","directory":"packages/nextjs"},"_npmVersion":"10.9.8","description":"Next.js App Router adapter for the Dualmark AEO framework. Drop-in proxy/middleware + route-handler factory + withDualmark() config wrapper. Same API surface as @dualmark/astro.","directories":{},"sideEffects":false,"_nodeVersion":"22.22.3","dependencies":{"@dualmark/core":"0.7.0","@dualmark/converters":"0.8.0"},"publishConfig":{"access":"public","registry":"https://registry.npmjs.org"},"_hasShrinkwrap":false,"devDependencies":{"next":"^16.2.6","tsup":"^8.3.5","vitest":"^2.1.8","typescript":"^5.7.2","@types/node":"^22.10.0"},"peerDependencies":{"next":">=14.0.0"},"_npmOperationalInternal":{"tmp":"tmp/nextjs_0.8.0_1780125134392_0.5183819058267551","host":"s3://npm-registry-packages-npm-production"}},"0.10.0":{"name":"@dualmark/nextjs","version":"0.10.0","keywords":["aeo","answer-engine-optimization","next.js","nextjs","next-app-router","ai-search","ai-agents","markdown","llms-txt","dualmark"],"author":{"url":"https://dodopayments.com","name":"Dodo Payments","email":"opensource@dodopayments.com"},"license":"Apache-2.0","_id":"@dualmark/nextjs@0.10.0","maintainers":[{"name":"dodopayments","email":"ayush@dodopayments.com"}],"homepage":"https://github.com/dodopayments/dualmark/tree/main/packages/nextjs#readme","bugs":{"url":"https://github.com/dodopayments/dualmark/issues"},"dist":{"shasum":"c736da2e8bad691422f2b084f958e17737a29a15","tarball":"https://registry.npmjs.org/@dualmark/nextjs/-/nextjs-0.10.0.tgz","fileCount":9,"integrity":"sha512-GNQuD3bBEM135lfxg04bUOkFCF3DT3vur2+Do/PNr5MK66PN2KS+HlWJemWCagxkCIT4jtpyeMn8n/MsUoootw==","signatures":[{"sig":"MEUCIQChPh/Xq4xacF/+nTXRludFc2TAD2eh3Edw73phV1Z+CgIgcxGNKEZxcjVPFy17HUrj+mRMmcxYhafRFEuocoPeQdg=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@dualmark%2fnextjs@0.10.0","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":135935},"main":"./dist/index.cjs","type":"module","_from":"file:/home/runner/work/dualmark/dualmark/packages/nextjs/dualmark-nextjs-0.10.0.tgz","types":"./dist/index.d.ts","module":"./dist/index.js","engines":{"node":">=22.12.0"},"exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js","require":"./dist/index.cjs"}},"funding":"https://github.com/sponsors/dodopayments","scripts":{"test":"vitest run","build":"tsup","clean":"rm -rf dist .turbo","typecheck":"tsc --noEmit","test:watch":"vitest"},"_npmUser":{"name":"dodopayments","email":"ayush@dodopayments.com"},"_resolved":"/home/runner/work/dualmark/dualmark/packages/nextjs/dualmark-nextjs-0.10.0.tgz","_integrity":"sha512-GNQuD3bBEM135lfxg04bUOkFCF3DT3vur2+Do/PNr5MK66PN2KS+HlWJemWCagxkCIT4jtpyeMn8n/MsUoootw==","repository":{"url":"git+https://github.com/dodopayments/dualmark.git","type":"git","directory":"packages/nextjs"},"_npmVersion":"10.9.8","description":"Next.js App Router adapter for the Dualmark AEO framework. Drop-in proxy/middleware + route-handler factory + withDualmark() config wrapper. Same API surface as @dualmark/astro.","directories":{},"sideEffects":false,"_nodeVersion":"22.22.3","dependencies":{"@dualmark/core":"0.10.0","@dualmark/converters":"0.10.0"},"publishConfig":{"access":"public","registry":"https://registry.npmjs.org"},"_hasShrinkwrap":false,"devDependencies":{"next":"^16.2.6","tsup":"^8.3.5","vitest":"^2.1.8","typescript":"^5.7.2","@types/node":"^22.10.0"},"peerDependencies":{"next":">=14.0.0"},"_npmOperationalInternal":{"tmp":"tmp/nextjs_0.10.0_1781785171366_0.8599140392532607","host":"s3://npm-registry-packages-npm-production"}},"0.11.0":{"name":"@dualmark/nextjs","version":"0.11.0","description":"Next.js App Router adapter for the Dualmark AEO framework. Drop-in proxy/middleware + route-handler factory + withDualmark() config wrapper. Same API surface as @dualmark/astro.","license":"Apache-2.0","author":{"name":"Dodo Payments","email":"opensource@dodopayments.com","url":"https://dodopayments.com"},"repository":{"type":"git","url":"git+https://github.com/dodopayments/dualmark.git","directory":"packages/nextjs"},"bugs":{"url":"https://github.com/dodopayments/dualmark/issues"},"homepage":"https://github.com/dodopayments/dualmark/tree/main/packages/nextjs#readme","funding":"https://github.com/sponsors/dodopayments","type":"module","main":"./dist/index.cjs","module":"./dist/index.js","types":"./dist/index.d.ts","exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js","require":"./dist/index.cjs"}},"sideEffects":false,"scripts":{"build":"tsup","test":"vitest run","test:watch":"vitest","typecheck":"tsc --noEmit","clean":"rm -rf dist .turbo"},"peerDependencies":{"next":">=14.0.0"},"dependencies":{"@dualmark/core":"0.11.0","@dualmark/converters":"0.11.0"},"devDependencies":{"@types/node":"^22.10.0","next":"^16.2.6","tsup":"^8.3.5","typescript":"^5.7.2","vitest":"^2.1.8"},"publishConfig":{"access":"public","registry":"https://registry.npmjs.org"},"keywords":["aeo","answer-engine-optimization","next.js","nextjs","next-app-router","ai-search","ai-agents","markdown","llms-txt","dualmark"],"engines":{"node":">=22.12.0"},"_id":"@dualmark/nextjs@0.11.0","_integrity":"sha512-0SDNpgKXkHNqCmsA7/LNgjV36iNrCUkB7KYEje0LV00QVta6Jb9m3cT+4VaLfkq9zesYP0F+9G/z7akyKPtDCQ==","_resolved":"/home/runner/work/dualmark/dualmark/packages/nextjs/dualmark-nextjs-0.11.0.tgz","_from":"file:/home/runner/work/dualmark/dualmark/packages/nextjs/dualmark-nextjs-0.11.0.tgz","_nodeVersion":"22.23.2","_npmVersion":"11.6.2","dist":{"integrity":"sha512-0SDNpgKXkHNqCmsA7/LNgjV36iNrCUkB7KYEje0LV00QVta6Jb9m3cT+4VaLfkq9zesYP0F+9G/z7akyKPtDCQ==","shasum":"ebfa37964c8bea0301cf64e952612f951e0391e2","tarball":"https://registry.npmjs.org/@dualmark/nextjs/-/nextjs-0.11.0.tgz","fileCount":9,"unpackedSize":136286,"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@dualmark%2fnextjs@0.11.0","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"signatures":[{"keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U","sig":"MEUCIEyXQO4R4FSppZIgIxrQK6/4Hzox7Wbd5l1qahLnRvcNAiEAn6uCWuhZ06x+Viw/h5R76LIlvKxu6U0ygncNTWnMvQQ="}]},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:e54ae86a-e5c8-4d14-b3c8-17aa64c21149"}},"directories":{},"maintainers":[{"name":"dodopayments","email":"ayush@dodopayments.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages-npm-production","tmp":"tmp/nextjs_0.11.0_1787551520648_0.134689166832612"},"_hasShrinkwrap":false}},"time":{"created":"2026-05-07T11:05:04.870Z","modified":"2026-08-24T06:05:21.134Z","0.5.0":"2026-05-07T11:05:05.139Z","0.5.1":"2026-05-10T03:47:00.656Z","0.5.2":"2026-05-12T11:56:32.642Z","0.7.0":"2026-05-20T19:17:44.406Z","0.8.0":"2026-05-30T07:12:14.569Z","0.10.0":"2026-06-18T12:19:31.504Z","0.11.0":"2026-08-24T06:05:20.789Z"},"bugs":{"url":"https://github.com/dodopayments/dualmark/issues"},"author":{"name":"Dodo Payments","email":"opensource@dodopayments.com","url":"https://dodopayments.com"},"license":"Apache-2.0","homepage":"https://github.com/dodopayments/dualmark/tree/main/packages/nextjs#readme","keywords":["aeo","answer-engine-optimization","next.js","nextjs","next-app-router","ai-search","ai-agents","markdown","llms-txt","dualmark"],"repository":{"type":"git","url":"git+https://github.com/dodopayments/dualmark.git","directory":"packages/nextjs"},"description":"Next.js App Router adapter for the Dualmark AEO framework. Drop-in proxy/middleware + route-handler factory + withDualmark() config wrapper. Same API surface as @dualmark/astro.","maintainers":[{"name":"dodopayments","email":"ayush@dodopayments.com"}],"readme":"# @dualmark/nextjs\n\nNext.js App Router adapter for the Dualmark AEO framework.\n\nSame one-line install as `@dualmark/astro` — `withDualmark()` for the config,\n`createDualmarkMiddleware()` for `proxy.ts` (or `middleware.ts` on Next ≤15),\n`createDualmarkRouteHandler()` for the markdown twin route handler, and\n`createLlmsTxtHandler()` for `/llms.txt`.\n\n## Install\n\n```bash\nbun add @dualmark/nextjs @dualmark/core @dualmark/converters\n```\n\n## Usage\n\n```ts title=\"next.config.mjs\"\nimport { withDualmark } from \"@dualmark/nextjs\";\n\nexport default withDualmark(\n  { reactStrictMode: true },\n  {\n    siteUrl: \"https://example.com\",\n    collections: {\n      blog: {\n        converter: \"blog\",\n        getEntries: () => yourPosts,\n      },\n    },\n    llmsTxt: {\n      enabled: true,\n      brandName: \"Acme\",\n      sections: [{ title: \"Pages\", links: [{ title: \"Home\", href: \"/\" }] }],\n    },\n  },\n);\n```\n\n```ts title=\"proxy.ts\"\nimport { createDualmarkMiddleware } from \"@dualmark/nextjs\";\n\nconst middleware = createDualmarkMiddleware({\n  siteUrl: \"https://example.com\",\n});\n\nexport default middleware;\nexport const config = middleware.config;\n```\n\n_On Next.js ≤15, name the file `middleware.ts` instead. The body is identical._\n\n```ts title=\"app/md/[...path]/route.ts\"\nimport { createDualmarkRouteHandler } from \"@dualmark/nextjs\";\nimport { POSTS } from \"@/lib/posts\";\n\nconst handler = createDualmarkRouteHandler({\n  siteUrl: \"https://example.com\",\n  collections: {\n    blog: {\n      converter: \"blog\",\n      getEntries: () => POSTS,\n    },\n  },\n  staticPages: [{ pattern: \"/\", render: () => \"# Home\\n\\nWelcome.\" }],\n});\n\nexport const GET = handler.GET;\nexport const generateStaticParams = handler.generateStaticParams;\nexport const dynamic = \"force-static\";\n```\n\n```ts title=\"app/llms.txt/route.ts\"\nimport { createLlmsTxtHandler } from \"@dualmark/nextjs\";\n\nconst handler = createLlmsTxtHandler({\n  brandName: \"Acme\",\n  sections: [{ title: \"Pages\", links: [{ title: \"Home\", href: \"/\" }] }],\n});\n\nexport const GET = handler.GET;\nexport const dynamic = \"force-static\";\n```\n\n## Architecture\n\n```\n┌─────────────────────────────────────────────────────────────┐\n│ proxy.ts                                                    │\n│   - if path ends in .md     → rewrite to /md/<path>        │\n│   - if AI bot UA OR Accept: text/markdown                   │\n│       → rewrite to /md/<path>                               │\n│   - if Accept rules out html+md → 406                       │\n│   - else (HTML) → next() + Link rel=alternate header        │\n└─────────────────────────────────────────────────────────────┘\n\napp/\n├── ...your existing pages\n├── md/[...path]/route.ts   ← createDualmarkRouteHandler (renders .md)\n└── llms.txt/route.ts       ← createLlmsTxtHandler (renders /llms.txt)\n```\n\n`/md/...` is an internal namespace your users never see — the proxy rewrites\nto it, and the route handler dispatches to your collections, static pages, or\nparameterized routes. Configurable via `internalNamespace` if you need a\ndifferent name.\n\n## Built-in converter names\n\n`blog`, `case-study`, `changelog`, `compare`, `docs`, `feature`, `glossary`,\n`legal`, `pricing`, `pseo`, `status-page`, `tool`, `video`. Pass any of them as `converter`,\nor pass a function `(entry) => string` for custom output.\n\n## Why Next.js needs `getEntries`\n\nAstro has `astro:content` to discover collection entries automatically.\nNext.js has no equivalent — content can come from the filesystem, a CMS, a\ndatabase, anything. So you supply `getEntries: () => Entry[] | Promise<Entry[]>`\nand the adapter does the rest.\n\n## License\n\nApache 2.0\n","readmeFilename":"README.md"}