{"_id":"@302ai/unstorage","_rev":"2-10d05e81757be44fc3dcf670c4b907e3","name":"@302ai/unstorage","dist-tags":{"latest":"1.18.0"},"versions":{"1.18.0":{"name":"@302ai/unstorage","version":"1.18.0","license":"MIT","_id":"@302ai/unstorage@1.18.0","maintainers":[{"name":"mthezi","email":"mthezi@163.com"}],"homepage":"https://unstorage.unjs.io","bugs":{"url":"https://github.com/unjs/unstorage/issues"},"dist":{"shasum":"ba99aeb63912d4ec84668026fa9419af8635beb1","tarball":"https://registry.npmjs.org/@302ai/unstorage/-/unstorage-1.18.0.tgz","fileCount":37,"integrity":"sha512-mCO0U7fSSH95b/ACXQbTjXk3FCXGy/BIcgIq4WndrJ7SO4ynMBfHRNDFiRoro1Lcd6b5dnwwhOdIIzVmDEiyVA==","signatures":[{"sig":"MEUCIQDjhsJQ4d6oV81UiFiS52hzTH8f35GQwMVoGPO5rsNHMAIgTy9/exXRqPzxsWcOqVOutuRNme5HRYUvfMeRSvfqQpQ=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":107161},"main":"./dist/index.cjs","pnpm":{"onlyBuiltDependencies":["better-sqlite3","esbuild","mongodb-memory-server"],"ignoredBuiltDependencies":["@parcel/watcher","sharp","workerd"]},"types":"./dist/index.d.ts","module":"./dist/index.mjs","exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.mjs","require":"./dist/index.cjs"},"./server":{"types":"./dist/server.d.ts","import":"./dist/server.mjs","require":"./dist/server.cjs"},"./drivers/*":{"types":"./drivers/*.d.ts","import":"./drivers/*.mjs","require":"./drivers/*.cjs"}},"gitHead":"b63af937688f7ddd0158692c2b112e23bf19f78f","scripts":{"dev":"vitest","lint":"eslint . && prettier -c .","test":"pnpm lint && pnpm test:types && vitest run --coverage","bench":"jiti test/server.bench.ts","build":"pnpm gen-drivers && unbuild","prepack":"pnpm build","release":"pnpm test && changelogen --release && git push --follow-tags && pnpm publish","lint:fix":"eslint . --fix && prettier -w .","unstorage":"pnpm jiti src/cli","test:types":"tsc --noEmit --skipLibCheck","gen-drivers":"jiti scripts/gen-drivers.ts"},"_npmUser":{"name":"mthezi","email":"mthezi@163.com"},"repository":{"url":"git+https://github.com/unjs/unstorage.git","type":"git"},"_npmVersion":"11.5.1","description":"Universal Storage Layer","directories":{},"sideEffects":false,"_nodeVersion":"24.5.0","dependencies":{"h3":"^1.15.4","ufo":"^1.6.1","ofetch":"^1.4.1","anymatch":"^3.1.3","chokidar":"^4.0.3","lru-cache":"^10.4.3","superjson":"^2.2.2","node-fetch-native":"^1.6.7"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"packageManager":"pnpm@10.17.0","devDependencies":{"db0":"^0.3.2","jiti":"^2.5.1","mlly":"^1.8.0","vite":"^7.1.6","citty":"^0.1.6","jsdom":"^27.0.0","scule":"^1.3.0","eslint":"^9.35.0","mitata":"^1.0.34","vitest":"^3.2.4","azurite":"^3.35.0","ioredis":"^5.7.0","listhen":"^1.9.0","mongodb":"^6.20.0","unbuild":"^3.6.1","@deno/kv":"^0.12.0","prettier":"^3.6.2","wrangler":"^4.38.0","aws4fetch":"^1.0.20","@vercel/kv":"^3.0.0","idb-keyval":"^6.2.2","typescript":"^5.9.2","@types/deno":"^2.3.0","@types/node":"^24.5.2","changelogen":"^0.6.2","uploadthing":"^7.7.4","@types/jsdom":"^21.1.7","@vercel/blob":"^2.0.0","ioredis-mock":"^8.9.0","@azure/cosmos":"^4.5.1","@libsql/client":"^0.15.15","@netlify/blobs":"^10.0.10","@upstash/redis":"^1.35.3","better-sqlite3":"^12.2.0","fake-indexeddb":"^6.2.2","@azure/identity":"^4.12.0","get-port-please":"^3.2.0","@vercel/functions":"^3.1.0","@azure/data-tables":"^13.3.1","eslint-config-unjs":"^0.5.0","@azure/storage-blob":"^12.28.0","@types/ioredis-mock":"^8.2.6","@vitest/coverage-v8":"^3.2.4","@electric-sql/pglite":"^0.3.8","@planetscale/database":"^1.19.0","mongodb-memory-server":"^10.2.1","@capacitor/preferences":"^7.0.2","@azure/keyvault-secrets":"^4.10.0","types-cloudflare-worker":"^1.2.0","@azure/app-configuration":"^1.9.0","@cloudflare/workers-types":"^4.20250918.0"},"peerDependencies":{"db0":">=0.2.1","ioredis":"^5.4.2","@deno/kv":">=0.9.0","aws4fetch":"^1.0.20","@vercel/kv":"^1.0.1","idb-keyval":"^6.2.1","uploadthing":"^7.4.4","@vercel/blob":">=0.27.1","@azure/cosmos":"^4.2.0","@netlify/blobs":"^6.5.0 || ^7.0.0 || ^8.1.0 || ^9.0.0 || ^10.0.0","@upstash/redis":"^1.34.3","@azure/identity":"^4.6.0","@vercel/functions":"^2.2.12 || ^3.0.0","@azure/data-tables":"^13.3.0","@azure/storage-blob":"^12.26.0","@planetscale/database":"^1.19.0","@capacitor/preferences":"^6.0.3 || ^7.0.0","@azure/keyvault-secrets":"^4.9.0","@azure/app-configuration":"^1.8.0"},"peerDependenciesMeta":{"db0":{"optional":true},"ioredis":{"optional":true},"@deno/kv":{"optional":true},"aws4fetch":{"optional":true},"@vercel/kv":{"optional":true},"idb-keyval":{"optional":true},"uploadthing":{"optional":true},"@vercel/blob":{"optional":true},"@azure/cosmos":{"optional":true},"@netlify/blobs":{"optional":true},"@upstash/redis":{"optional":true},"@azure/identity":{"optional":true},"@vercel/functions":{"optional":true},"@azure/data-tables":{"optional":true},"@azure/storage-blob":{"optional":true},"@planetscale/database":{"optional":true},"@capacitor/preferences":{"optional":true},"@azure/keyvault-secrets":{"optional":true},"@azure/app-configuration":{"optional":true}},"_npmOperationalInternal":{"tmp":"tmp/unstorage_1.18.0_1758274121476_0.4882886703241631","host":"s3://npm-registry-packages-npm-production"}}},"time":{"created":"2025-09-19T09:28:41.424Z","modified":"2026-02-10T11:39:02.367Z","1.18.0":"2025-09-19T09:28:41.664Z"},"bugs":{"url":"https://github.com/unjs/unstorage/issues"},"license":"MIT","homepage":"https://unstorage.unjs.io","repository":{"url":"git+https://github.com/unjs/unstorage.git","type":"git"},"description":"Universal Storage Layer","maintainers":[{"email":"ji4jun0097@gmail.com","name":"trashcodermaker"}],"readme":"# 💾 Unstorage\n\n[![npm version][npm-version-src]][npm-version-href]\n[![npm downloads][npm-downloads-src]][npm-downloads-href]\n[![Codecov][codecov-src]][codecov-href]\n[![bundle][bundle-src]][bundle-href]\n[![License][license-src]][license-href]\n\n<!--[![Github Actions][github-actions-src]][github-actions-href]-->\n\nUnstorage provides an async Key-Value storage API with conventional features like multi driver mounting, watching and working with metadata, dozens of built-in drivers and a [tiny core](https://bundlephobia.com/package/unstorage).\n\n👉 [Documentation](https://unstorage.unjs.io)\n\n## Features\n\n- Designed for all environments: Browser, NodeJS, and Workers\n- Lots of Built-in drivers\n- Asynchronous API\n- Unix-style driver mounting to combine storages\n- Default [in-memory](https://unstorage.unjs.io/drivers/memory) storage\n- Tree-shakable utils and tiny core\n- Auto JSON value serialization and deserialization\n- Binary and raw value support\n- State [snapshots](https://unstorage.unjs.io/getting-started/utils#snapshots) and hydration\n- Storage watcher\n- HTTP Storage with [built-in server](https://unstorage.unjs.io/guide/http-server)\n\n## Usage\n\nInstall `unstorage` npm package:\n\n```sh\n# yarn\nyarn add unstorage\n\n# npm\nnpm install unstorage\n\n# pnpm\npnpm add unstorage\n```\n\n```js\nimport { createStorage } from \"unstorage\";\n\nconst storage = createStorage(/* opts */);\n\nawait storage.getItem(\"foo:bar\"); // or storage.getItem('/foo/bar')\n```\n\n👉 Check out the [the documentation](https://unstorage.unjs.io) for usage information.\n\n## Nightly release channel\n\nYou can use the nightly release channel to try the latest changes in the `main` branch via [`unstorage-nightly`](https://www.npmjs.com/package/unstorage-nightly).\n\nIf directly using `unstorage` in your project:\n\n```json\n{\n  \"devDependencies\": {\n    \"unstorage\": \"npm:unstorage-nightly\"\n  }\n}\n```\n\nIf using `unstorage` via another tool in your project:\n\n```json\n{\n  \"resolutions\": {\n    \"unstorage\": \"npm:unstorage-nightly\"\n  }\n}\n```\n\n## Contribution\n\n- Clone repository\n- Install dependencies with `pnpm install`\n- Use `pnpm dev` to start jest watcher verifying changes\n- Use `pnpm test` before pushing to ensure all tests and lint checks passing\n\n## License\n\n[MIT](./LICENSE)\n\n<!-- Badges -->\n\n[npm-version-src]: https://img.shields.io/npm/v/unstorage?style=flat&colorA=18181B&colorB=F0DB4F\n[npm-version-href]: https://npmjs.com/package/unstorage\n[npm-downloads-src]: https://img.shields.io/npm/dm/unstorage?style=flat&colorA=18181B&colorB=F0DB4F\n[npm-downloads-href]: https://npmjs.com/package/unstorage\n[github-actions-src]: https://img.shields.io/github/workflow/status/unjs/unstorage/ci/main?style=flat&colorA=18181B&colorB=F0DB4F\n[github-actions-href]: https://github.com/unjs/unstorage/actions?query=workflow%3Aci\n[codecov-src]: https://img.shields.io/codecov/c/gh/unjs/unstorage/main?style=flat&colorA=18181B&colorB=F0DB4F\n[codecov-href]: https://codecov.io/gh/unjs/unstorage\n[bundle-src]: https://img.shields.io/bundlephobia/minzip/unstorage?style=flat&colorA=18181B&colorB=F0DB4F\n[bundle-href]: https://bundlephobia.com/result?p=unstorage\n[license-src]: https://img.shields.io/github/license/unjs/unstorage.svg?style=flat&colorA=18181B&colorB=F0DB4F\n[license-href]: https://github.com/unjs/unstorage/blob/main/LICENSE\n","readmeFilename":"README.md"}