{"_id":"@bunny.net/upload-next","_rev":"3-653fd987a15e1cb09b5313f35aa88157","name":"@bunny.net/upload-next","dist-tags":{"latest":"0.0.3"},"versions":{"0.0.1":{"name":"@bunny.net/upload-next","version":"0.0.1","_id":"@bunny.net/upload-next@0.0.1","maintainers":[{"name":"kevin_at_bunny","email":"kevin@bunny.net"},{"name":"antho-bunny","email":"anthony@bunny.net"},{"name":"notrab","email":"jamie@notrab.dev"},{"name":"bogdan-at-bunny","email":"bogdan@bunny.net"}],"dist":{"shasum":"23d261c6ffecd3bd48c3cef5a4e55233ccb903ac","tarball":"https://registry.npmjs.org/@bunny.net/upload-next/-/upload-next-0.0.1.tgz","fileCount":8,"integrity":"sha512-FPujfMg8PPVaMXVSQKvsNAR8/B432Lg6/Tl+WfbZ5d4nN7AVNNS0tVUEV1+6CuS6DFsgvYuljC7Ssia/FRmZEA==","signatures":[{"sig":"MEYCIQDM/vfQDywPKjIzlQ9/lA/Km8KgrhxLFeAJA3ZqQfbXvgIhAMPhTW5dU9XYJsemcyiy3hjjIoxd3dH8nd6HV3fLFw1v","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":7671},"main":"./dist/index.cjs","type":"module","types":"./dist/index.d.ts","module":"./dist/index.js","exports":{".":{"import":{"types":"./dist/index.d.ts","default":"./dist/index.js"},"require":{"types":"./dist/index.d.cts","default":"./dist/index.cjs"}}},"gitHead":"e30b7b82d2997aaa97925aead3cee193bfe1935e","scripts":{"dev":"tsup --watch","test":"vitest run --passWithNoTests","build":"tsup","clean":"rm -rf dist","typecheck":"tsc --noEmit"},"_npmUser":{"name":"notrab","email":"jamie@notrab.dev"},"_npmVersion":"10.8.2","description":"Next.js App Router adapter for [bunny-upload](../../README.md).","directories":{},"_nodeVersion":"20.20.1","dependencies":{"@bunny.net/upload-handler":"workspace:*"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"next":"^15.0.0","tsup":"^8.0.0","vitest":"^2.0.0","typescript":"^5.5.0"},"peerDependencies":{"next":">=14.0.0"},"_npmOperationalInternal":{"tmp":"tmp/upload-next_0.0.1_1774534838314_0.6215961906667395","host":"s3://npm-registry-packages-npm-production"}},"0.0.2":{"name":"@bunny.net/upload-next","version":"0.0.2","_id":"@bunny.net/upload-next@0.0.2","maintainers":[{"name":"kevin_at_bunny","email":"kevin@bunny.net"},{"name":"antho-bunny","email":"anthony@bunny.net"},{"name":"notrab","email":"jamie@notrab.dev"},{"name":"bogdan-at-bunny","email":"bogdan@bunny.net"}],"dist":{"shasum":"310ec690b9feaa7799f2bbe07c89fbbd3df67196","tarball":"https://registry.npmjs.org/@bunny.net/upload-next/-/upload-next-0.0.2.tgz","fileCount":8,"integrity":"sha512-OWEWd0LvxoI6Ku56oVx12dhYwyuc1ba/DQbpAW4HsfyLu7pDrkV6pJjISZFBLYDLgqCkHy1wiASZMBUNpMZnOg==","signatures":[{"sig":"MEUCIHSL1xmuPFVLvqc0V45cJD/D1c610pd+zZlQOI46XolXAiEAxTsrZqxCFvOFtwTHJym47wd39ZaX/CzFaQtb/CR4qz4=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":7665},"main":"./dist/index.cjs","type":"module","types":"./dist/index.d.ts","module":"./dist/index.js","exports":{".":{"import":{"types":"./dist/index.d.ts","default":"./dist/index.js"},"require":{"types":"./dist/index.d.cts","default":"./dist/index.cjs"}}},"gitHead":"93aa8ca7a45d19966df2a8f738e18ca517a03e01","scripts":{"dev":"tsup --watch","test":"vitest run --passWithNoTests","build":"tsup","clean":"rm -rf dist","typecheck":"tsc --noEmit"},"_npmUser":{"name":"notrab","email":"jamie@notrab.dev"},"_npmVersion":"10.8.2","description":"Next.js App Router adapter for [bunny-upload](../../README.md).","directories":{},"_nodeVersion":"20.20.1","dependencies":{"@bunny.net/upload-handler":"0.0.2"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"next":"^15.0.0","tsup":"^8.0.0","vitest":"^2.0.0","typescript":"^5.5.0"},"peerDependencies":{"next":">=14.0.0"},"_npmOperationalInternal":{"tmp":"tmp/upload-next_0.0.2_1774539275826_0.03118494788391124","host":"s3://npm-registry-packages-npm-production"}},"0.0.3":{"name":"@bunny.net/upload-next","publishConfig":{"access":"public"},"version":"0.0.3","type":"module","main":"./dist/index.cjs","module":"./dist/index.js","types":"./dist/index.d.ts","exports":{".":{"import":{"types":"./dist/index.d.ts","default":"./dist/index.js"},"require":{"types":"./dist/index.d.cts","default":"./dist/index.cjs"}}},"scripts":{"build":"tsup","dev":"tsup --watch","test":"vitest run --passWithNoTests","typecheck":"tsc --noEmit","clean":"rm -rf dist"},"dependencies":{"@bunny.net/upload-handler":"0.0.3"},"peerDependencies":{"next":">=14.0.0"},"devDependencies":{"next":"^15.0.0","tsup":"^8.0.0","typescript":"^5.5.0","vitest":"^2.0.0"},"_id":"@bunny.net/upload-next@0.0.3","gitHead":"22a1e36f992119d04c502b6773b220dd45df15ea","description":"Next.js App Router adapter for [bunny-upload](../../README.md).","_nodeVersion":"20.20.2","_npmVersion":"10.8.2","dist":{"integrity":"sha512-mxsVZFkl+tSTllsSrteEFYKdFzb+IAv54bIg6NJoegEP77Q3ATCzRzChYWZyDtgNvRPRH/d/d2U3iPN3WSEBIg==","shasum":"9c2a06d900572de4a17a9655dc56992afb2b0a05","tarball":"https://registry.npmjs.org/@bunny.net/upload-next/-/upload-next-0.0.3.tgz","fileCount":8,"unpackedSize":7665,"signatures":[{"keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U","sig":"MEQCIFvzuc49UJRKNsbfGhkN8P+DRSP9UrRMLwklR+5YTnViAiBN9atVs/hLPK0t62fZa4O7EQsCR57/dUX4ffKb4iBmDA=="}]},"_npmUser":{"name":"notrab","email":"jamie@notrab.dev"},"directories":{},"maintainers":[{"name":"kevin_at_bunny","email":"kevin@bunny.net"},{"name":"antho-bunny","email":"anthony@bunny.net"},{"name":"notrab","email":"jamie@notrab.dev"},{"name":"bogdan-at-bunny","email":"bogdan@bunny.net"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages-npm-production","tmp":"tmp/upload-next_0.0.3_1779438058718_0.8833957980916021"},"_hasShrinkwrap":false}},"time":{"created":"2026-03-26T14:20:38.218Z","modified":"2026-05-22T08:20:59.025Z","0.0.1":"2026-03-26T14:20:38.440Z","0.0.2":"2026-03-26T15:34:35.967Z","0.0.3":"2026-05-22T08:20:58.853Z"},"description":"Next.js App Router adapter for [bunny-upload](../../README.md).","maintainers":[{"name":"kevin_at_bunny","email":"kevin@bunny.net"},{"name":"antho-bunny","email":"anthony@bunny.net"},{"name":"notrab","email":"jamie@notrab.dev"},{"name":"bogdan-at-bunny","email":"bogdan@bunny.net"}],"readme":"# @bunny.net/upload-next\n\nNext.js App Router adapter for [bunny-upload](../../README.md).\n\n## Install\n\n```bash\nnpm install @bunny.net/upload-react @bunny.net/upload-handler @bunny.net/upload-next\n```\n\n## Setup\n\n### 1. Create the upload route\n\n```ts\n// app/.bunny/upload/route.ts\nimport { serveBunnyUpload } from \"@bunny.net/upload-next\";\nimport { createBunnyUploadHandler } from \"@bunny.net/upload-handler\";\n\nexport const { POST } = serveBunnyUpload(\n  createBunnyUploadHandler({\n    restrictions: {\n      maxFileSize: \"10mb\",\n      allowedTypes: [\"image/*\"],\n      maxFiles: 5,\n    },\n    getPath: (file) => `/uploads/${Date.now()}-${file.name}`,\n  })\n);\n```\n\n### 2. Add environment variables\n\n```env\nBUNNY_STORAGE_ZONE=my-zone\nBUNNY_STORAGE_PASSWORD=my-password\nBUNNY_CDN_BASE=https://my-zone.b-cdn.net\n```\n\n### 3. Add the component\n\n```tsx\n\"use client\";\n\nimport { BunnyUpload } from \"@bunny.net/upload-react\";\n\nexport default function Page() {\n  return (\n    <BunnyUpload\n      accept={[\"image/*\"]}\n      maxSize=\"10mb\"\n      maxFiles={5}\n      onComplete={(files) => console.log(\"Uploaded:\", files)}\n    />\n  );\n}\n```\n\n## API\n\n### `serveBunnyUpload(handler)`\n\nWraps a handler function for use as a Next.js App Router route handler. Returns `{ POST }`.\n\n```ts\nconst { POST } = serveBunnyUpload(handler);\n```\n\nThe `handler` is any function with signature `(request: Request) => Promise<Response>` — typically from `createBunnyUploadHandler()`.\n\n## Configuration\n\nSee [`@bunny.net/upload-handler`](../handler) for all server-side options and [`@bunny.net/upload-react`](../react) for client-side options.\n","readmeFilename":"README.md"}