{"_id":"@airdraft/media-adapter-local","_rev":"7-9bb063e6cbb778ec16e9bff9264497f8","name":"@airdraft/media-adapter-local","dist-tags":{"latest":"0.1.6"},"versions":{"0.1.0":{"name":"@airdraft/media-adapter-local","version":"0.1.0","license":"MIT","_id":"@airdraft/media-adapter-local@0.1.0","maintainers":[{"name":"miracleio","email":"miracleficient@gmail.com"}],"dist":{"shasum":"83ff4260867311717eda7a647098702f2f882a4b","tarball":"https://registry.npmjs.org/@airdraft/media-adapter-local/-/media-adapter-local-0.1.0.tgz","fileCount":10,"integrity":"sha512-eR2AdGI73kMUpSnG+W0S4yr5TvQe68kCv7IzfmhcqZSXL9M+hxVYurds3TUaJK1NyIAAdk7E4IO102+IIJbUFw==","signatures":[{"sig":"MEQCIGS7jAc74yQOEZ1P1EuNMGZUW31WDI3CtTp+O4T6XPmDAiBK4y458BXQfSPLiRKtHmO8SMMgkKFjdJ66qwYdeASbwQ==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":14439},"main":"./dist/index.js","type":"module","types":"./dist/index.d.ts","engines":{"node":">=18.0.0"},"exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js"}},"gitHead":"d6c85dfed37f11c42151c93b49a80ede90699616","scripts":{"dev":"tsc --watch","test":"vitest run","build":"tsc","clean":"rm -rf dist","release":"standard-version","typecheck":"tsc --noEmit","test:watch":"vitest","release:major":"standard-version --release-as major","release:minor":"standard-version --release-as minor","release:patch":"standard-version --release-as patch","prepublishOnly":"npm run build"},"_npmUser":{"name":"miracleio","email":"miracleficient@gmail.com"},"_npmVersion":"11.9.0","description":"Airdraft local filesystem media adapter — for development and testing","directories":{},"_nodeVersion":"24.14.0","dependencies":{"@airdraft/core":"*"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"tsx":"^4.7.0","vitest":"^1.5.0","typescript":"^5.4.0","@types/node":"^20.0.0","standard-version":"^9.5.0"},"_npmOperationalInternal":{"tmp":"tmp/media-adapter-local_0.1.0_1779387947597_0.1609329207702339","host":"s3://npm-registry-packages-npm-production"}},"0.1.1":{"name":"@airdraft/media-adapter-local","version":"0.1.1","license":"MIT","_id":"@airdraft/media-adapter-local@0.1.1","maintainers":[{"name":"miracleio","email":"miracleficient@gmail.com"}],"dist":{"shasum":"49ec76984ee69a78b359a63a6582a55410395b3d","tarball":"https://registry.npmjs.org/@airdraft/media-adapter-local/-/media-adapter-local-0.1.1.tgz","fileCount":10,"integrity":"sha512-DZCV3oKV5ph64Ae9HqAchzx+XK/7qn/gBnNMOYSSo0K7VJIoJGsA6jC3BSKKWU69UVs7Q0KxThGw/zyGNYGObw==","signatures":[{"sig":"MEUCIQDizsVsB1oE+fY4FiMqts45WBXjHgDDOLKewtCUrYq7gAIgJg7zIyPgeu6X/FYrf942eEChufcBcJBdwlJAKn0krH0=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":18067},"main":"./dist/index.js","type":"module","types":"./dist/index.d.ts","engines":{"node":">=18.0.0"},"exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js"}},"gitHead":"277e16b37c997996b49d90ec64fa3f5c023f4d0a","scripts":{"dev":"tsc --watch","test":"vitest run","build":"tsc","clean":"rm -rf dist","release":"standard-version","typecheck":"tsc --noEmit","test:watch":"vitest","release:major":"standard-version --release-as major","release:minor":"standard-version --release-as minor","release:patch":"standard-version --release-as patch","prepublishOnly":"npm run build"},"_npmUser":{"name":"miracleio","email":"miracleficient@gmail.com"},"_npmVersion":"11.9.0","description":"Airdraft local filesystem media adapter — for development and testing","directories":{},"_nodeVersion":"24.14.0","dependencies":{"@airdraft/core":"*"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"tsx":"^4.7.0","vitest":"^1.5.0","typescript":"^5.4.0","@types/node":"^20.0.0","standard-version":"^9.5.0"},"_npmOperationalInternal":{"tmp":"tmp/media-adapter-local_0.1.1_1779521548781_0.7925097349913319","host":"s3://npm-registry-packages-npm-production"}},"0.1.2":{"name":"@airdraft/media-adapter-local","version":"0.1.2","license":"MIT","_id":"@airdraft/media-adapter-local@0.1.2","maintainers":[{"name":"miracleio","email":"miracleficient@gmail.com"}],"dist":{"shasum":"58a9cd10d23f3ffd0b887e76791688f4f43b2714","tarball":"https://registry.npmjs.org/@airdraft/media-adapter-local/-/media-adapter-local-0.1.2.tgz","fileCount":10,"integrity":"sha512-ercXSrEwtPzzjqfLg3hLCsNH2vQG0EXhl/d41GDujkcK9JkGV+DuNhLnAxINi7J0mxrfRFCI40UcDf+pCwTRcg==","signatures":[{"sig":"MEQCIBZ7e6WNojmiqeY2eUakkSjxX53GTDAk0PpKD/Gb1A1OAiBKXEVUsgVNV93s1LStlHzNUgNfsMgrUHOzU2ioJdBwCA==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":19429},"main":"./dist/index.js","type":"module","types":"./dist/index.d.ts","engines":{"node":">=18.0.0"},"exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js"}},"gitHead":"8d692f6e9c48b0c7886d404b7bbc9f1b0a79ca7b","scripts":{"dev":"tsc --watch","test":"vitest run","build":"tsc","clean":"rm -rf dist","release":"standard-version","typecheck":"tsc --noEmit","test:watch":"vitest","release:major":"standard-version --release-as major","release:minor":"standard-version --release-as minor","release:patch":"standard-version --release-as patch","prepublishOnly":"npm run build"},"_npmUser":{"name":"miracleio","email":"miracleficient@gmail.com"},"_npmVersion":"11.9.0","description":"Airdraft local filesystem media adapter — for development and testing","directories":{},"_nodeVersion":"24.14.0","dependencies":{"@airdraft/core":"*"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"tsx":"^4.7.0","vitest":"^1.5.0","typescript":"^5.4.0","@types/node":"^20.0.0","standard-version":"^9.5.0"},"_npmOperationalInternal":{"tmp":"tmp/media-adapter-local_0.1.2_1779557531248_0.6770033260214303","host":"s3://npm-registry-packages-npm-production"}},"0.1.3":{"name":"@airdraft/media-adapter-local","version":"0.1.3","license":"MIT","_id":"@airdraft/media-adapter-local@0.1.3","maintainers":[{"name":"miracleio","email":"miracleficient@gmail.com"}],"dist":{"shasum":"a7d9935fcee606c266b6a58227e9c7dd7aa026f1","tarball":"https://registry.npmjs.org/@airdraft/media-adapter-local/-/media-adapter-local-0.1.3.tgz","fileCount":10,"integrity":"sha512-XAnjDWOwF3yTGe9YdMsjD1iBdDfcxJVvYHqplsF5vKTVq9NwHxNOM7aUx3wiewOYV7JbopVzQiWsnnYBmvkTyA==","signatures":[{"sig":"MEYCIQCkSMwPcX+EyEBG291V+ZzVkJ+6CpSKkOT6n+GkkP/fHAIhAJiTuFodzQSc9vPFFReRORMedoUGZ/jibhLDp3hEvwk6","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":20289},"main":"./dist/index.js","type":"module","types":"./dist/index.d.ts","engines":{"node":">=18.0.0"},"exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js"}},"gitHead":"88185ba7e7a5ed54561a09a53f6d13367587bbfb","scripts":{"dev":"tsc --watch","test":"vitest run","build":"tsc","clean":"rm -rf dist","release":"standard-version","typecheck":"tsc --noEmit","test:watch":"vitest","release:major":"standard-version --release-as major","release:minor":"standard-version --release-as minor","release:patch":"standard-version --release-as patch","prepublishOnly":"npm run build"},"_npmUser":{"name":"miracleio","email":"miracleficient@gmail.com"},"_npmVersion":"11.9.0","description":"Airdraft local filesystem media adapter — for development and testing","directories":{},"_nodeVersion":"24.14.0","publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"tsx":"^4.7.0","vitest":"^1.5.0","typescript":"^5.4.0","@types/node":"^20.0.0","@airdraft/core":"*","standard-version":"^9.5.0"},"peerDependencies":{"@airdraft/core":">=0.1.8"},"_npmOperationalInternal":{"tmp":"tmp/media-adapter-local_0.1.3_1779564473318_0.20489367829378846","host":"s3://npm-registry-packages-npm-production"}},"0.1.4":{"name":"@airdraft/media-adapter-local","version":"0.1.4","license":"MIT","_id":"@airdraft/media-adapter-local@0.1.4","maintainers":[{"name":"miracleio","email":"miracleficient@gmail.com"}],"dist":{"shasum":"2f72bd52a2f84a5e965300cb448367b1976fb371","tarball":"https://registry.npmjs.org/@airdraft/media-adapter-local/-/media-adapter-local-0.1.4.tgz","fileCount":10,"integrity":"sha512-D/WMudjYfAmp+kxTkpe+Mwh8bKeLvNjQb+JJQevP/oa/mFcrKmyWs8r50eLh9EhyZbPuZ1sAtRB4GQCQmGw1ug==","signatures":[{"sig":"MEQCIA1N2qqUt6xlLcmwtxmrRkwQY4BCUoFEfDC/g67LdeX1AiBovacQ2gKXKkR5e/AaZKKX1dJoJ390wS1ShoKEQUmgVg==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":20989},"main":"./dist/index.js","type":"module","types":"./dist/index.d.ts","engines":{"node":">=18.0.0"},"exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js"}},"gitHead":"829aab190f831c8d252be75e35c26b42715babe2","scripts":{"dev":"tsc --watch","test":"vitest run","build":"tsc","clean":"rm -rf dist","release":"standard-version","typecheck":"tsc --noEmit","test:watch":"vitest","release:major":"standard-version --release-as major","release:minor":"standard-version --release-as minor","release:patch":"standard-version --release-as patch","prepublishOnly":"npm run build"},"_npmUser":{"name":"miracleio","email":"miracleficient@gmail.com"},"_npmVersion":"11.9.0","description":"Airdraft local filesystem media adapter — for development and testing","directories":{},"_nodeVersion":"24.14.0","publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"tsx":"^4.7.0","vitest":"^1.5.0","typescript":"^5.4.0","@types/node":"^20.0.0","@airdraft/core":"*","standard-version":"^9.5.0"},"peerDependencies":{"@airdraft/core":">=0.1.8"},"_npmOperationalInternal":{"tmp":"tmp/media-adapter-local_0.1.4_1779570875433_0.630489327298893","host":"s3://npm-registry-packages-npm-production"}},"0.1.5":{"name":"@airdraft/media-adapter-local","version":"0.1.5","license":"MIT","_id":"@airdraft/media-adapter-local@0.1.5","maintainers":[{"name":"miracleio","email":"miracleficient@gmail.com"}],"dist":{"shasum":"a0fc2ea10b874eeba348d5f95ccd30834fbefd93","tarball":"https://registry.npmjs.org/@airdraft/media-adapter-local/-/media-adapter-local-0.1.5.tgz","fileCount":11,"integrity":"sha512-IeDp9ETPBeZcwyKoGtvX5xvfosHTVFlZiiPflvKknw+JQnE2/xzONjsM3qgynuucN1o+R6k5a9ljju9E7IR7zw==","signatures":[{"sig":"MEUCIQC/rjq4UJCgHGJ6gZFs9u+GNpoMt4jFEUjIzkqOBKLc8wIgEJTokgr25AosCUWBmspTR8o31lVRyfe8X0cebcjFG7g=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":28485},"main":"./dist/index.js","type":"module","types":"./dist/index.d.ts","engines":{"node":">=18.0.0"},"exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js"}},"gitHead":"8c9d4744b92db08fa725d40bc50f9ef0f1392e59","scripts":{"dev":"tsc --watch","test":"vitest run","build":"tsc","clean":"rm -rf dist","release":"standard-version","typecheck":"tsc --noEmit","test:watch":"vitest","release:major":"standard-version --release-as major","release:minor":"standard-version --release-as minor","release:patch":"standard-version --release-as patch","prepublishOnly":"npm run build"},"_npmUser":{"name":"miracleio","email":"miracleficient@gmail.com"},"_npmVersion":"11.9.0","description":"Airdraft local filesystem media adapter — for development and testing","directories":{},"_nodeVersion":"24.14.0","publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"tsx":"^4.7.0","vitest":"^1.5.0","typescript":"^5.4.0","@types/node":"^20.0.0","@airdraft/core":"*","standard-version":"^9.5.0"},"peerDependencies":{"@airdraft/core":">=0.1.8"},"_npmOperationalInternal":{"tmp":"tmp/media-adapter-local_0.1.5_1780221084732_0.7187516443378721","host":"s3://npm-registry-packages-npm-production"}},"0.1.6":{"name":"@airdraft/media-adapter-local","version":"0.1.6","description":"Airdraft local filesystem media adapter — for development and testing","type":"module","main":"./dist/index.js","types":"./dist/index.d.ts","exports":{".":{"import":"./dist/index.js","types":"./dist/index.d.ts"}},"scripts":{"build":"tsc","dev":"tsc --watch","clean":"rm -rf dist","test":"vitest run","test:watch":"vitest","typecheck":"tsc --noEmit","prepublishOnly":"npm run build","release":"standard-version","release:patch":"standard-version --release-as patch","release:minor":"standard-version --release-as minor","release:major":"standard-version --release-as major"},"publishConfig":{"access":"public"},"license":"MIT","devDependencies":{"@types/node":"^20.0.0","standard-version":"^9.5.0","tsx":"^4.7.0","typescript":"^5.4.0","vitest":"^1.5.0","@airdraft/core":"*"},"engines":{"node":">=18.0.0"},"peerDependencies":{"@airdraft/core":">=0.1.8"},"gitHead":"9fdb3e0fbca1e58bb84aca8dd92155d0057ca4b1","_id":"@airdraft/media-adapter-local@0.1.6","_nodeVersion":"24.14.0","_npmVersion":"11.9.0","dist":{"integrity":"sha512-bb09Rw0tcbwZD/rqwIEj0BHQ6Iqxs2QeMB8YHYKT+xaB5+abK6e6B6/06psDZ9jaMH8JipfQDMb2kTncL7ujjA==","shasum":"6b605853ed1862276fd8f159613fa13be035b98d","tarball":"https://registry.npmjs.org/@airdraft/media-adapter-local/-/media-adapter-local-0.1.6.tgz","fileCount":11,"unpackedSize":32378,"signatures":[{"keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U","sig":"MEUCIF14dIYnjI/tDY5VfOKTLplsT58fhbpgIOVRR64p3wPFAiEA6tmAOri8oW2ABE2E03FZUm3C0leLyNcfQYWd23mzUiI="}]},"_npmUser":{"name":"miracleio","email":"miracleficient@gmail.com"},"directories":{},"maintainers":[{"name":"miracleio","email":"miracleficient@gmail.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages-npm-production","tmp":"tmp/media-adapter-local_0.1.6_1782407249921_0.9156211588268832"},"_hasShrinkwrap":false}},"time":{"created":"2026-05-21T18:25:47.390Z","modified":"2026-06-25T17:07:30.195Z","0.1.0":"2026-05-21T18:25:47.743Z","0.1.1":"2026-05-23T07:32:28.919Z","0.1.2":"2026-05-23T17:32:11.394Z","0.1.3":"2026-05-23T19:27:53.472Z","0.1.4":"2026-05-23T21:14:35.623Z","0.1.5":"2026-05-31T09:51:24.863Z","0.1.6":"2026-06-25T17:07:30.077Z"},"license":"MIT","description":"Airdraft local filesystem media adapter — for development and testing","maintainers":[{"name":"miracleio","email":"miracleficient@gmail.com"}],"readme":"# @airdraft/media-adapter-local\n\nLocal filesystem media storage adapter for Airdraft. Saves uploaded files to a directory on disk and serves them as static assets. Intended for local development; use `@airdraft/media-adapter-files-sdk` or `@airdraft/media-adapter-github` in production.\n\n## Installation\n\n```bash\nnpm install @airdraft/media-adapter-local\n```\n\n## Usage\n\n```ts\nimport { LocalMediaAdapter } from '@airdraft/media-adapter-local'\nimport { withMedia } from '@airdraft/plugin-media'\n\nconst media = withMedia({\n  adapter: new LocalMediaAdapter({\n    root: process.cwd() + '/public',\n    publicBaseUrl: '',      // default: '' → URLs are '/{key}'\n  }),\n  storageAdapter: contentAdapter,\n  prefix: 'uploads',\n})\n```\n\n### Options\n\n| Option | Type | Default | Description |\n|---|---|---|---|\n| `root` | `string` | required | Absolute filesystem path that maps to the URL root. For Next.js: `process.cwd() + '/public'`. |\n| `publicBaseUrl?` | `string` | `''` | Base URL prepended to keys. Empty string → `/{key}` (relative). Set to `'https://cdn.example.com'` for absolute URLs. |\n\n## URL resolution\n\nGiven `root = '/app/public'` and a file uploaded as `uploads/hero.jpg`:\n\n- File written to: `/app/public/uploads/hero.jpg`\n- URL (default): `/uploads/hero.jpg`\n- URL (with `publicBaseUrl = 'https://cdn.example.com'`): `https://cdn.example.com/uploads/hero.jpg`\n\n## Exports\n\n| Export | Description |\n|---|---|\n| `LocalMediaAdapter` | Adapter class implementing `MediaAdapter` from `@airdraft/core` |\n| `LocalMediaAdapterOptions` | Options type |\n\n## Changelog\n\nSee [CHANGELOG.md](./CHANGELOG.md).\n","readmeFilename":"README.md"}