{"_id":"@cnippet-helm/storage-vercel-blob","_rev":"4-800f165f05630fd9277082442c0e8fa1","name":"@cnippet-helm/storage-vercel-blob","dist-tags":{"latest":"0.4.0"},"versions":{"1.0.0":{"name":"@cnippet-helm/storage-vercel-blob","version":"1.0.0","license":"MIT","_id":"@cnippet-helm/storage-vercel-blob@1.0.0","maintainers":[{"name":"cnippet-ui","email":"cnippet.dev@gmail.com"}],"dist":{"shasum":"b50785dbf12c6532d2a4e4a98d41fa2586d8c539","tarball":"https://registry.npmjs.org/@cnippet-helm/storage-vercel-blob/-/storage-vercel-blob-1.0.0.tgz","fileCount":7,"integrity":"sha512-InqAbk5ng65MZ0C/kOuou9BvXLM//s+kk2Z7Z+Wf7aj1klF7OmzXQQnLXJUulwNXbAhT+kwxgWYU4tLRBrdVug==","signatures":[{"sig":"MEQCIHQ6EV5Z29K4rb7kS4XmLulfu61IWFiMF918aTt6SxQ1AiAdE4X/vKi6kqUvb+75xgo+lPFsFbNvgPzhjP3U2gJZ/g==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":9584},"main":"./dist/index.js","_from":"file:cnippet-helm-storage-vercel-blob-1.0.0.tgz","types":"./dist/index.d.ts","module":"./dist/index.mjs","exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.mjs","require":"./dist/index.js"}},"private":false,"scripts":{"dev":"tsup src/index.ts --format esm,cjs --dts --watch","lint":"biome lint ./src","test":"vitest run --passWithNoTests","build":"tsup src/index.ts --format esm,cjs --dts","typecheck":"tsc --noEmit","test:watch":"vitest"},"_npmUser":{"name":"cnippet-ui","email":"cnippet.dev@gmail.com"},"_resolved":"C:\\Users\\negid\\AppData\\Local\\Temp\\33f07572d9c8fa2d4330881159929b6a\\cnippet-helm-storage-vercel-blob-1.0.0.tgz","_integrity":"sha512-InqAbk5ng65MZ0C/kOuou9BvXLM//s+kk2Z7Z+Wf7aj1klF7OmzXQQnLXJUulwNXbAhT+kwxgWYU4tLRBrdVug==","_npmVersion":"11.6.2","description":"Vercel Blob storage adapter for Admin Kit","directories":{},"_nodeVersion":"24.13.0","publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"tsup":"^8.5.1","vitest":"^3.1.0","typescript":"5.9.2","@types/node":"^22.0.0","@vercel/blob":"^0.27.0","@cnippet-helm/core":"0.1.0","@cnippet-helm/tsconfig":"0.1.0"},"peerDependencies":{"@vercel/blob":">=0.20.0","@cnippet-helm/core":">=0.1.0"},"_npmOperationalInternal":{"tmp":"tmp/storage-vercel-blob_1.0.0_1779877627302_0.06335791029672144","host":"s3://npm-registry-packages-npm-production"}},"2.0.0":{"name":"@cnippet-helm/storage-vercel-blob","version":"2.0.0","license":"MIT","_id":"@cnippet-helm/storage-vercel-blob@2.0.0","maintainers":[{"name":"cnippet-ui","email":"cnippet.dev@gmail.com"}],"dist":{"shasum":"09e9a964403a457fd76398b49893737821229e78","tarball":"https://registry.npmjs.org/@cnippet-helm/storage-vercel-blob/-/storage-vercel-blob-2.0.0.tgz","fileCount":7,"integrity":"sha512-Cyjz+yXZusvwort57mtS+uo/iQgF/R2ZE8nxZQ88srk5MsRwxspczEIFb5yaqqq59MuSPhptRM+lnmn5pblkhw==","signatures":[{"sig":"MEUCIE3ehi5pTGvjCMfJ5evOo+5x5gwPzRdxUHWYMH42zxaeAiEAjPkq/aLvd1aFBpc/eJbUqe9W+Zhz0LpS1KXmxxK4tME=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":9584},"main":"./dist/index.js","_from":"file:cnippet-helm-storage-vercel-blob-2.0.0.tgz","types":"./dist/index.d.ts","module":"./dist/index.mjs","exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.mjs","require":"./dist/index.js"}},"private":false,"scripts":{"dev":"tsup src/index.ts --format esm,cjs --dts --watch","lint":"biome lint ./src","test":"vitest run --passWithNoTests","build":"tsup src/index.ts --format esm,cjs --dts","typecheck":"tsc --noEmit","test:watch":"vitest"},"_npmUser":{"name":"cnippet-ui","email":"cnippet.dev@gmail.com"},"_resolved":"C:\\Users\\negid\\AppData\\Local\\Temp\\be9b40f3222a4e68b9cbb9adf8aeb5a3\\cnippet-helm-storage-vercel-blob-2.0.0.tgz","_integrity":"sha512-Cyjz+yXZusvwort57mtS+uo/iQgF/R2ZE8nxZQ88srk5MsRwxspczEIFb5yaqqq59MuSPhptRM+lnmn5pblkhw==","_npmVersion":"11.6.2","description":"Vercel Blob storage adapter for Admin Kit","directories":{},"_nodeVersion":"24.13.0","publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"tsup":"^8.5.1","vitest":"^3.1.0","typescript":"5.9.2","@types/node":"^22.0.0","@vercel/blob":"^0.27.0","@cnippet-helm/core":"0.2.0","@cnippet-helm/tsconfig":"0.1.0"},"peerDependencies":{"@vercel/blob":">=0.20.0","@cnippet-helm/core":">=0.2.0"},"_npmOperationalInternal":{"tmp":"tmp/storage-vercel-blob_2.0.0_1779882749408_0.8208276543205919","host":"s3://npm-registry-packages-npm-production"}},"3.0.0":{"name":"@cnippet-helm/storage-vercel-blob","version":"3.0.0","license":"MIT","_id":"@cnippet-helm/storage-vercel-blob@3.0.0","maintainers":[{"name":"cnippet-ui","email":"cnippet.dev@gmail.com"}],"dist":{"shasum":"57742923ef6bbc634325e56b1ad3196be7565240","tarball":"https://registry.npmjs.org/@cnippet-helm/storage-vercel-blob/-/storage-vercel-blob-3.0.0.tgz","fileCount":7,"integrity":"sha512-H3GEADAQnZuljyVIvdcJE4E+f9wAPkj+WIyG4x9ZtZAyZRy5AkXEXLhfB4tr85y6iX9Q/c7qg77HXnwETO/4Lg==","signatures":[{"sig":"MEYCIQCsmK+24IAiDreFQWvVO5tY38Ebuq212Xns5W8Wq40BwgIhAO5MFaWRhHgX5UmXksWLN5yZU7MzN1E0Ef7ve/de28uz","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":9584},"main":"./dist/index.js","_from":"file:cnippet-helm-storage-vercel-blob-3.0.0.tgz","types":"./dist/index.d.ts","module":"./dist/index.mjs","exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.mjs","require":"./dist/index.js"}},"private":false,"scripts":{"dev":"tsup src/index.ts --format esm,cjs --dts --watch","lint":"biome lint ./src","test":"vitest run --passWithNoTests","build":"tsup src/index.ts --format esm,cjs --dts","typecheck":"tsc --noEmit","test:watch":"vitest"},"_npmUser":{"name":"cnippet-ui","email":"cnippet.dev@gmail.com"},"_resolved":"C:\\Users\\negid\\AppData\\Local\\Temp\\7b2e2c60a2cd2b5a1d8cadd48ddb430c\\cnippet-helm-storage-vercel-blob-3.0.0.tgz","_integrity":"sha512-H3GEADAQnZuljyVIvdcJE4E+f9wAPkj+WIyG4x9ZtZAyZRy5AkXEXLhfB4tr85y6iX9Q/c7qg77HXnwETO/4Lg==","_npmVersion":"11.6.2","description":"Vercel Blob storage adapter for Admin Kit","directories":{},"_nodeVersion":"24.13.0","publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"tsup":"^8.5.1","vitest":"^3.1.0","typescript":"5.9.2","@types/node":"^22.0.0","@vercel/blob":"^0.27.0","@cnippet-helm/core":"0.3.0","@cnippet-helm/tsconfig":"0.1.0"},"peerDependencies":{"@vercel/blob":">=0.20.0","@cnippet-helm/core":">=0.3.0"},"_npmOperationalInternal":{"tmp":"tmp/storage-vercel-blob_3.0.0_1779906539614_0.5236332444243026","host":"s3://npm-registry-packages-npm-production"}},"0.4.0":{"name":"@cnippet-helm/storage-vercel-blob","version":"0.4.0","private":false,"license":"MIT","description":"Vercel Blob storage adapter for Admin Kit","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"}},"publishConfig":{"access":"public"},"peerDependencies":{"@cnippet-helm/core":">=0.3.0","@vercel/blob":">=0.20.0"},"devDependencies":{"@types/node":"^22.0.0","@vercel/blob":"^0.27.0","tsup":"^8.5.1","typescript":"5.9.2","vitest":"^3.1.0","@cnippet-helm/core":"0.3.0","@cnippet-helm/tsconfig":"0.1.0"},"scripts":{"build":"tsup src/index.ts --format esm,cjs --dts","dev":"tsup src/index.ts --format esm,cjs --dts --watch","lint":"biome lint ./src","typecheck":"tsc --noEmit","test":"vitest run --passWithNoTests","test:watch":"vitest"},"_id":"@cnippet-helm/storage-vercel-blob@0.4.0","_integrity":"sha512-s5V4yDhXM2g6329y0muyipT5NmE/KXxaLzD8vyj/ujHPZ8TJutLYMt2CUu42ZCa5b7i9FjbzjSNmn5ScCCKRHw==","_resolved":"C:\\Users\\negid\\AppData\\Local\\Temp\\8b847262ad54bd290d9f57b3034cc21a\\cnippet-helm-storage-vercel-blob-0.4.0.tgz","_from":"file:cnippet-helm-storage-vercel-blob-0.4.0.tgz","_nodeVersion":"24.13.0","_npmVersion":"11.6.2","dist":{"integrity":"sha512-s5V4yDhXM2g6329y0muyipT5NmE/KXxaLzD8vyj/ujHPZ8TJutLYMt2CUu42ZCa5b7i9FjbzjSNmn5ScCCKRHw==","shasum":"179195e33ca732f0f6ffcf2771ae93d1f5f6b468","tarball":"https://registry.npmjs.org/@cnippet-helm/storage-vercel-blob/-/storage-vercel-blob-0.4.0.tgz","fileCount":7,"unpackedSize":9584,"signatures":[{"keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U","sig":"MEYCIQC0nHo/O3oLRdaGoUw+sRLFZSViNtTtSd0BScia1WLbuAIhAMJD/NLW5842x9SwGmsNLWv55oH/F2goGx8BW8sApKZp"}]},"_npmUser":{"name":"cnippet-ui","email":"cnippet.dev@gmail.com"},"directories":{},"maintainers":[{"name":"cnippet-ui","email":"cnippet.dev@gmail.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages-npm-production","tmp":"tmp/storage-vercel-blob_0.4.0_1779911029500_0.5436687964540599"},"_hasShrinkwrap":false}},"time":{"created":"2026-05-27T10:27:07.132Z","modified":"2026-05-27T19:43:49.793Z","1.0.0":"2026-05-27T10:27:07.423Z","2.0.0":"2026-05-27T11:52:29.546Z","3.0.0":"2026-05-27T18:28:59.774Z","0.4.0":"2026-05-27T19:43:49.652Z"},"license":"MIT","description":"Vercel Blob storage adapter for Admin Kit","maintainers":[{"name":"cnippet-ui","email":"cnippet.dev@gmail.com"}],"readme":"# @cnippet-helm/storage-vercel-blob\n\n[Vercel Blob](https://vercel.com/docs/storage/vercel-blob) storage adapter for Admin Kit. Uploads files to Vercel's global CDN and returns a public URL.\n\n## Install\n\n```bash\npnpm add @cnippet-helm/storage-vercel-blob @vercel/blob\n```\n\n## Setup\n\nAdd your Blob token to `.env.local`:\n\n```bash\nBLOB_READ_WRITE_TOKEN=vercel_blob_rw_...\n```\n\nGet a token from your Vercel project dashboard → Storage → Blob → Create Store.\n\n## Usage\n\n```ts\n// src/lib/admin.config.ts\nimport { defineConfig } from \"@cnippet-helm/core\";\nimport { vercelBlobAdapter } from \"@cnippet-helm/storage-vercel-blob\";\n\nexport const adminConfig = defineConfig({\n  basePath: \"/admin\",\n  db,\n  auth: myAuthAdapter,\n  storage: vercelBlobAdapter({\n    prefix: \"uploads\",  // files stored as uploads/<name>-<timestamp>.<ext>\n  }),\n  resources: [],\n});\n```\n\n## API\n\n```ts\nvercelBlobAdapter(options?: {\n  prefix?: string;  // path prefix for uploaded files (default: \"uploads\")\n  token?: string;   // Blob token (default: process.env.BLOB_READ_WRITE_TOKEN)\n}): StorageAdapter\n```\n\nThe adapter implements:\n- `upload(file)` — calls `@vercel/blob` `put()`, returns `{ url, key }`\n- `delete(key)` — calls `@vercel/blob` `del()`, ignores 404\n- `getSignedUrl(key)` — calls `@vercel/blob` `head()`, returns the public CDN URL\n\nSee the [Admin Kit docs](https://github.com/your-org/cnippet-helm) for full usage.\n","readmeFilename":"README.md"}