{"_id":"@remix-run/file-storage","_rev":"16-f6392a3e8f3f7d08eab5f66da4892f97","name":"@remix-run/file-storage","dist-tags":{"latest":"0.13.7"},"versions":{"0.8.0":{"name":"@remix-run/file-storage","version":"0.8.0","keywords":["file","storage","stream","fs"],"author":{"name":"Michael Jackson","email":"mjijackson@gmail.com"},"license":"MIT","_id":"@remix-run/file-storage@0.8.0","maintainers":[{"name":"mjackson","email":"mjijackson+npm@gmail.com"},{"name":"chancestrickland","email":"hi@chance.dev"}],"homepage":"https://github.com/remix-run/remix/tree/v3/packages/file-storage#readme","bugs":{"url":"https://github.com/remix-run/remix/issues"},"dist":{"shasum":"f185ca9594ac1926d8f83a5ae13d3ccbb76dde81","tarball":"https://registry.npmjs.org/@remix-run/file-storage/-/file-storage-0.8.0.tgz","fileCount":33,"integrity":"sha512-Eq1PhyY/MWLuSWWJHlngBvE8PvdOfdk4l3t+o4Z8XQxoNQ2B3umvvjISTXREw1WQSUW20KDHfKr/xVzT7nxWlQ==","signatures":[{"sig":"MEUCIQDSPxS1ifLv4BbfresZFuJgmBVbJRyJ+PoqBUdFwH1EugIgIRSAFX3ERggaNPhOZD8XJyJI4QyUE5lrufcpl8eNdiQ=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":197782},"main":"./dist/file-storage.cjs","type":"module","_from":"file:remix-run-file-storage-0.8.0.tgz","types":"./dist/file-storage.d.ts","module":"./dist/file-storage.js","exports":{".":{"types":"./dist/file-storage.d.ts","import":"./dist/file-storage.js","default":"./dist/file-storage.js","require":"./dist/file-storage.cjs"},"./local":{"types":"./dist/local.d.ts","import":"./dist/local.js","default":"./dist/local.js","require":"./dist/local.cjs"},"./memory":{"types":"./dist/memory.d.ts","import":"./dist/memory.js","default":"./dist/memory.js","require":"./dist/memory.cjs"},"./package.json":"./package.json"},"scripts":{"test":"node --disable-warning=ExperimentalWarning --test ./src/**/*.test.ts","build":"pnpm run clean && pnpm run build:types && pnpm run build:esm && pnpm run build:cjs && pnpm run build:esm:local && pnpm run build:cjs:local && pnpm run build:esm:memory && pnpm run build:cjs:memory","clean":"rm -rf dist","build:cjs":"esbuild src/file-storage.ts --bundle --outfile=dist/file-storage.cjs --format=cjs --platform=neutral --sourcemap","build:esm":"esbuild src/file-storage.ts --bundle --outfile=dist/file-storage.js --format=esm --platform=neutral --sourcemap","build:types":"tsc --project tsconfig.build.json","build:cjs:local":"esbuild src/local.ts --bundle --outfile=dist/local.cjs --format=cjs --platform=node --sourcemap","build:esm:local":"esbuild src/local.ts --bundle --outfile=dist/local.js --format=esm --platform=node --sourcemap","build:cjs:memory":"esbuild src/memory.ts --bundle --outfile=dist/memory.cjs --format=cjs --platform=neutral --sourcemap","build:esm:memory":"esbuild src/memory.ts --bundle --outfile=dist/memory.js --format=esm --platform=neutral --sourcemap"},"_npmUser":{"name":"mjackson","email":"mjijackson+npm@gmail.com"},"_resolved":"/private/var/folders/n5/1lxhnzk56hg6b7vnl558364m0000gn/T/07b885fa72aa51a2fb2596edac2b39c1/remix-run-file-storage-0.8.0.tgz","_integrity":"sha512-Eq1PhyY/MWLuSWWJHlngBvE8PvdOfdk4l3t+o4Z8XQxoNQ2B3umvvjISTXREw1WQSUW20KDHfKr/xVzT7nxWlQ==","repository":{"url":"git+https://github.com/remix-run/remix.git","type":"git","directory":"packages/file-storage"},"_npmVersion":"11.4.2","description":"Key/value storage for JavaScript File objects","directories":{},"_nodeVersion":"24.2.0","dependencies":{"@remix-run/lazy-file":"^3.5.0"},"_hasShrinkwrap":false,"devDependencies":{"esbuild":"^0.25.5","@types/node":"^20.14.10","@remix-run/form-data-parser":"^0.9.1"},"_npmOperationalInternal":{"tmp":"tmp/file-storage_0.8.0_1753129933396_0.39906145076661437","host":"s3://npm-registry-packages-npm-production"}},"0.9.0":{"name":"@remix-run/file-storage","version":"0.9.0","keywords":["file","storage","stream","fs"],"author":{"name":"Michael Jackson","email":"mjijackson@gmail.com"},"license":"MIT","_id":"@remix-run/file-storage@0.9.0","maintainers":[{"name":"mjackson","email":"mjijackson+npm@gmail.com"},{"name":"chancestrickland","email":"hi@chance.dev"}],"homepage":"https://github.com/remix-run/remix/tree/v3/packages/file-storage#readme","bugs":{"url":"https://github.com/remix-run/remix/issues"},"dist":{"shasum":"1676b79153641f0a081ce39eca399067825c413e","tarball":"https://registry.npmjs.org/@remix-run/file-storage/-/file-storage-0.9.0.tgz","fileCount":33,"integrity":"sha512-GbrmqGTdgevRMqkcTzGG9eyUn3eo32ST/jmqdh2g8h5MNKmONF6TJpVDZvtGhrvl93kX/k01WigUk/R8j58/eA==","signatures":[{"sig":"MEQCIDpeOGOvR5OFZTjeIfQ8OfURlYRDcGBRlpr6AtO33o3eAiBBaltnWuLxVe8gGW/qL1Vt+tuOsgfpmUh7u0DF6OygoA==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":198178},"main":"./dist/file-storage.cjs","type":"module","_from":"file:remix-run-file-storage-0.9.0.tgz","types":"./dist/file-storage.d.ts","module":"./dist/file-storage.js","exports":{".":{"types":"./dist/file-storage.d.ts","import":"./dist/file-storage.js","default":"./dist/file-storage.js","require":"./dist/file-storage.cjs"},"./local":{"types":"./dist/local.d.ts","import":"./dist/local.js","default":"./dist/local.js","require":"./dist/local.cjs"},"./memory":{"types":"./dist/memory.d.ts","import":"./dist/memory.js","default":"./dist/memory.js","require":"./dist/memory.cjs"},"./package.json":"./package.json"},"scripts":{"test":"node --disable-warning=ExperimentalWarning --test ./src/**/*.test.ts","build":"pnpm run clean && pnpm run build:types && pnpm run build:esm && pnpm run build:cjs && pnpm run build:esm:local && pnpm run build:cjs:local && pnpm run build:esm:memory && pnpm run build:cjs:memory","clean":"rm -rf dist","build:cjs":"esbuild src/file-storage.ts --bundle --outfile=dist/file-storage.cjs --format=cjs --platform=neutral --sourcemap","build:esm":"esbuild src/file-storage.ts --bundle --outfile=dist/file-storage.js --format=esm --platform=neutral --sourcemap","build:types":"tsc --project tsconfig.build.json","build:cjs:local":"esbuild src/local.ts --bundle --outfile=dist/local.cjs --format=cjs --platform=node --sourcemap","build:esm:local":"esbuild src/local.ts --bundle --outfile=dist/local.js --format=esm --platform=node --sourcemap","build:cjs:memory":"esbuild src/memory.ts --bundle --outfile=dist/memory.cjs --format=cjs --platform=neutral --sourcemap","build:esm:memory":"esbuild src/memory.ts --bundle --outfile=dist/memory.js --format=esm --platform=neutral --sourcemap"},"_npmUser":{"name":"mjackson","email":"mjijackson+npm@gmail.com"},"_resolved":"/private/var/folders/n5/1lxhnzk56hg6b7vnl558364m0000gn/T/1317ae8553804be916519ef7241d5791/remix-run-file-storage-0.9.0.tgz","_integrity":"sha512-GbrmqGTdgevRMqkcTzGG9eyUn3eo32ST/jmqdh2g8h5MNKmONF6TJpVDZvtGhrvl93kX/k01WigUk/R8j58/eA==","repository":{"url":"git+https://github.com/remix-run/remix.git","type":"git","directory":"packages/file-storage"},"_npmVersion":"11.4.2","description":"Key/value storage for JavaScript File objects","directories":{},"_nodeVersion":"24.2.0","dependencies":{"@remix-run/lazy-file":"^3.5.0"},"_hasShrinkwrap":false,"devDependencies":{"esbuild":"^0.25.5","@types/node":"^20.14.10","@remix-run/form-data-parser":"^0.10.1"},"_npmOperationalInternal":{"tmp":"tmp/file-storage_0.9.0_1753404836553_0.10170690684910078","host":"s3://npm-registry-packages-npm-production"}},"0.10.0":{"name":"@remix-run/file-storage","version":"0.10.0","keywords":["file","storage","stream","fs"],"author":{"name":"Michael Jackson","email":"mjijackson@gmail.com"},"license":"MIT","_id":"@remix-run/file-storage@0.10.0","maintainers":[{"name":"mjackson","email":"mjijackson+npm@gmail.com"},{"name":"ryanflorence","email":"rpflorence@gmail.com"}],"homepage":"https://github.com/remix-run/remix/tree/main/packages/file-storage#readme","bugs":{"url":"https://github.com/remix-run/remix/issues"},"dist":{"shasum":"d30c8592a010c2014e61c298d27cd659fe906956","tarball":"https://registry.npmjs.org/@remix-run/file-storage/-/file-storage-0.10.0.tgz","fileCount":27,"integrity":"sha512-s+xNp1Tu0HQJcbuN3ASD3ri+6GET+HAU3IIpenUmazXnRAeXe2qBpOp3+nyUZrZXp1kr3wBUnvl0DS8OyFQW/Q==","signatures":[{"sig":"MEUCID2bE2IaTQUf/vz9S6fNAh3Kc4ppYTBczzGstmJqvfKPAiEAuqNYez2QoTAjjcWOLk0BWzYFH6RKOmHDUwcwY2/5hd4=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":110604},"type":"module","_from":"file:remix-run-file-storage-0.10.0.tgz","exports":{".":{"types":"./dist/index.d.ts","default":"./dist/index.js"},"./local":{"types":"./dist/local.d.ts","default":"./dist/local.js"},"./memory":{"types":"./dist/memory.d.ts","default":"./dist/memory.js"},"./package.json":"./package.json"},"scripts":{"test":"node --disable-warning=ExperimentalWarning --test './src/**/*.test.ts'","build":"pnpm run clean && pnpm run build:types && pnpm run build:esm && pnpm run build:esm:local && pnpm run build:esm:memory","clean":"rm -rf dist","build:esm":"esbuild src/index.ts --bundle --outfile=dist/index.js --format=esm --platform=neutral --sourcemap","typecheck":"tsc --noEmit","build:types":"tsc --project tsconfig.build.json","build:esm:local":"esbuild src/local.ts --bundle --outfile=dist/local.js --format=esm --platform=node --sourcemap","build:esm:memory":"esbuild src/memory.ts --bundle --outfile=dist/memory.js --format=esm --platform=neutral --sourcemap"},"_npmUser":{"name":"mjackson","email":"mjijackson+npm@gmail.com"},"_resolved":"/tmp/fd699e936e539c69900ef74e3ad507cc/remix-run-file-storage-0.10.0.tgz","_integrity":"sha512-s+xNp1Tu0HQJcbuN3ASD3ri+6GET+HAU3IIpenUmazXnRAeXe2qBpOp3+nyUZrZXp1kr3wBUnvl0DS8OyFQW/Q==","repository":{"url":"git+https://github.com/remix-run/remix.git","type":"git","directory":"packages/file-storage"},"_npmVersion":"11.6.1","description":"Key/value storage for JavaScript File objects","directories":{},"_nodeVersion":"24.10.0","dependencies":{"@remix-run/lazy-file":"^3.6.0"},"_hasShrinkwrap":false,"devDependencies":{"esbuild":"^0.25.10","@types/node":"^24.6.0","@remix-run/form-data-parser":"^0.12.0"},"_npmOperationalInternal":{"tmp":"tmp/file-storage_0.10.0_1761152600188_0.12567680709857254","host":"s3://npm-registry-packages-npm-production"}},"0.11.0":{"name":"@remix-run/file-storage","version":"0.11.0","keywords":["file","storage","stream","fs"],"author":{"name":"Michael Jackson","email":"mjijackson@gmail.com"},"license":"MIT","_id":"@remix-run/file-storage@0.11.0","maintainers":[{"name":"mjackson","email":"mjijackson+npm@gmail.com"},{"name":"ryanflorence","email":"rpflorence@gmail.com"}],"homepage":"https://github.com/remix-run/remix/tree/main/packages/file-storage#readme","bugs":{"url":"https://github.com/remix-run/remix/issues"},"dist":{"shasum":"98549f057f3620e4e23c1f26f4fdada5a786399f","tarball":"https://registry.npmjs.org/@remix-run/file-storage/-/file-storage-0.11.0.tgz","fileCount":27,"integrity":"sha512-D8YT4sb4ILQXNpki6XQjpZ9JX4Y70WZS7vEiFSAFzC9UmWLWhOrRuJttG7o9la3w0wfo2Wdp19L1XAalIWbcqg==","signatures":[{"sig":"MEUCIESgvkq/kArZO/3VSzDPqXcRmD/0X7X7RJ0dlKSB4ceEAiEAob7W7xjKn5AH/ivTXiSKC93ZGnS7UGkhgdQEyNlZtaw=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@remix-run%2ffile-storage@0.11.0","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":35217},"type":"module","_from":"file:remix-run-file-storage-0.11.0.tgz","exports":{".":{"types":"./dist/index.d.ts","default":"./dist/index.js"},"./local":{"types":"./dist/local.d.ts","default":"./dist/local.js"},"./memory":{"types":"./dist/memory.d.ts","default":"./dist/memory.js"},"./package.json":"./package.json"},"scripts":{"test":"node --disable-warning=ExperimentalWarning --test './src/**/*.test.ts'","build":"tsc -p tsconfig.build.json","clean":"git clean -fdX","typecheck":"tsc --noEmit"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:70eb1f96-7bfb-42a8-b52a-dccf3d02adf3"}},"_resolved":"/tmp/a3fa260c272240291bfeee62e6edebea/remix-run-file-storage-0.11.0.tgz","_integrity":"sha512-D8YT4sb4ILQXNpki6XQjpZ9JX4Y70WZS7vEiFSAFzC9UmWLWhOrRuJttG7o9la3w0wfo2Wdp19L1XAalIWbcqg==","repository":{"url":"git+https://github.com/remix-run/remix.git","type":"git","directory":"packages/file-storage"},"_npmVersion":"11.6.1","description":"Key/value storage for JavaScript File objects","directories":{},"_nodeVersion":"24.11.0","_hasShrinkwrap":false,"devDependencies":{"typescript":"^5.9.3","@types/node":"^24.6.0","@remix-run/form-data-parser":"^0.14.0"},"peerDependencies":{"@remix-run/lazy-file":"^3.7.0"},"_npmOperationalInternal":{"tmp":"tmp/file-storage_0.11.0_1762301326533_0.26496915471315785","host":"s3://npm-registry-packages-npm-production"}},"0.12.0":{"name":"@remix-run/file-storage","version":"0.12.0","keywords":["file","storage","stream","fs"],"author":{"name":"Michael Jackson","email":"mjijackson@gmail.com"},"license":"MIT","_id":"@remix-run/file-storage@0.12.0","maintainers":[{"name":"mjackson","email":"mjijackson+npm@gmail.com"},{"name":"ryanflorence","email":"rpflorence@gmail.com"}],"homepage":"https://github.com/remix-run/remix/tree/main/packages/file-storage#readme","bugs":{"url":"https://github.com/remix-run/remix/issues"},"dist":{"shasum":"03edcd0f1311229cbe223b3e1b7772ebc885ea91","tarball":"https://registry.npmjs.org/@remix-run/file-storage/-/file-storage-0.12.0.tgz","fileCount":27,"integrity":"sha512-eWLALrsGW9iJZxp7Xf9g+vLSBM8Erg8/uJJorljOBt71FR8Vl9HZ3CJN255VKY947bVfGRRx36q/73Hqq0Sg6w==","signatures":[{"sig":"MEUCIHyRhjmg+DjwCkI/h1ctH1nZS22T1Xmju5t+986CP02TAiEA7g3tOftugg0o4AIUaqiZxKy9+ZAhTf3K9Gw8eSR8T5E=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@remix-run%2ffile-storage@0.12.0","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":35703},"type":"module","_from":"file:remix-run-file-storage-0.12.0.tgz","exports":{".":{"types":"./dist/index.d.ts","default":"./dist/index.js"},"./local":{"types":"./dist/local.d.ts","default":"./dist/local.js"},"./memory":{"types":"./dist/memory.d.ts","default":"./dist/memory.js"},"./package.json":"./package.json"},"scripts":{"test":"node --disable-warning=ExperimentalWarning --test './src/**/*.test.ts'","build":"tsc -p tsconfig.build.json","clean":"git clean -fdX","typecheck":"tsc --noEmit"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:70eb1f96-7bfb-42a8-b52a-dccf3d02adf3"}},"_resolved":"/tmp/b4c7a9830dcac0a5a47191530ae15d52/remix-run-file-storage-0.12.0.tgz","_integrity":"sha512-eWLALrsGW9iJZxp7Xf9g+vLSBM8Erg8/uJJorljOBt71FR8Vl9HZ3CJN255VKY947bVfGRRx36q/73Hqq0Sg6w==","repository":{"url":"git+https://github.com/remix-run/remix.git","type":"git","directory":"packages/file-storage"},"_npmVersion":"11.6.2","description":"Key/value storage for JavaScript File objects","directories":{},"_nodeVersion":"24.11.1","_hasShrinkwrap":false,"devDependencies":{"typescript":"^5.9.3","@types/node":"^24.6.0","@remix-run/form-data-parser":"^0.14.0"},"peerDependencies":{"@remix-run/fs":"^0.1.0","@remix-run/lazy-file":"^4.0.0"},"_npmOperationalInternal":{"tmp":"tmp/file-storage_0.12.0_1763611917568_0.32284611639658944","host":"s3://npm-registry-packages-npm-production"}},"0.13.0":{"name":"@remix-run/file-storage","version":"0.13.0","keywords":["file","storage","stream","fs"],"author":{"name":"Michael Jackson","email":"mjijackson@gmail.com"},"license":"MIT","_id":"@remix-run/file-storage@0.13.0","maintainers":[{"name":"mjackson","email":"mjijackson+npm@gmail.com"},{"name":"ryanflorence","email":"rpflorence@gmail.com"}],"homepage":"https://github.com/remix-run/remix/tree/main/packages/file-storage#readme","bugs":{"url":"https://github.com/remix-run/remix/issues"},"dist":{"shasum":"139464c30b0d746952091a7078f3ca9e595ecf07","tarball":"https://registry.npmjs.org/@remix-run/file-storage/-/file-storage-0.13.0.tgz","fileCount":27,"integrity":"sha512-mL00sQhCeF95x61roVeuTAnHYZ0R6lZnoWE1es10+Hef5wPkVGgOVTKIn5+A/5EtQVa8GHiVe7ldKfoq9izgrQ==","signatures":[{"sig":"MEUCIQDjBF06lkgcnOl16O5BUYXQi9FqEo4266JPJDaeqs82MgIgO/I455J1ktQTZM8x9YThVwPuob1KTZ3OnoQqZ4seznk=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@remix-run%2ffile-storage@0.13.0","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":34957},"type":"module","_from":"file:remix-run-file-storage-0.13.0.tgz","exports":{".":{"types":"./dist/index.d.ts","default":"./dist/index.js"},"./fs":{"types":"./dist/fs.d.ts","default":"./dist/fs.js"},"./memory":{"types":"./dist/memory.d.ts","default":"./dist/memory.js"},"./package.json":"./package.json"},"scripts":{"test":"node --disable-warning=ExperimentalWarning --test './src/**/*.test.ts'","build":"tsc -p tsconfig.build.json","clean":"git clean -fdX","typecheck":"tsc --noEmit"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:70eb1f96-7bfb-42a8-b52a-dccf3d02adf3"}},"_resolved":"/tmp/7ce004b8eb55b8f3137c5b6cf0f52562/remix-run-file-storage-0.13.0.tgz","_integrity":"sha512-mL00sQhCeF95x61roVeuTAnHYZ0R6lZnoWE1es10+Hef5wPkVGgOVTKIn5+A/5EtQVa8GHiVe7ldKfoq9izgrQ==","repository":{"url":"git+https://github.com/remix-run/remix.git","type":"git","directory":"packages/file-storage"},"_npmVersion":"11.6.2","description":"Key/value storage for JavaScript File objects","directories":{},"_nodeVersion":"24.11.1","_hasShrinkwrap":false,"devDependencies":{"typescript":"^5.9.3","@types/node":"^24.6.0","@remix-run/form-data-parser":"^0.14.0"},"peerDependencies":{"@remix-run/fs":"^0.1.0","@remix-run/lazy-file":"^4.0.0"},"_npmOperationalInternal":{"tmp":"tmp/file-storage_0.13.0_1764045002407_0.7086108666522808","host":"s3://npm-registry-packages-npm-production"}},"0.13.1":{"name":"@remix-run/file-storage","version":"0.13.1","keywords":["file","storage","stream","fs"],"author":{"name":"Michael Jackson","email":"mjijackson@gmail.com"},"license":"MIT","_id":"@remix-run/file-storage@0.13.1","maintainers":[{"name":"mjackson","email":"mjijackson+npm@gmail.com"},{"name":"ryanflorence","email":"rpflorence@gmail.com"}],"homepage":"https://github.com/remix-run/remix/tree/main/packages/file-storage#readme","bugs":{"url":"https://github.com/remix-run/remix/issues"},"dist":{"shasum":"47f7cb2cacc0cf94f76e4952ddf731c1ccd4406e","tarball":"https://registry.npmjs.org/@remix-run/file-storage/-/file-storage-0.13.1.tgz","fileCount":27,"integrity":"sha512-4xbHNRFUkrjawEkHS/R4skxMW/e6OJiJASlu4gOoyPjqNkV/NuH6FzgF0taPH0E9Im2PE3I5m2WFsg/jBc64bQ==","signatures":[{"sig":"MEQCIFG34rMX1mwZ1Z4Lr9KHpwnykZpHq5B0kO0IgF9usYIFAiAOa7TvtnSuNgjMNsKpmUMtjPr+5vnNLO081dpyC6gO+A==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@remix-run%2ffile-storage@0.13.1","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":35125},"type":"module","_from":"file:remix-run-file-storage-0.13.1.tgz","exports":{".":{"types":"./dist/index.d.ts","default":"./dist/index.js"},"./fs":{"types":"./dist/fs.d.ts","default":"./dist/fs.js"},"./memory":{"types":"./dist/memory.d.ts","default":"./dist/memory.js"},"./package.json":"./package.json"},"scripts":{"test":"node --disable-warning=ExperimentalWarning --test","build":"tsgo -p tsconfig.build.json","clean":"git clean -fdX","typecheck":"tsgo --noEmit"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:70eb1f96-7bfb-42a8-b52a-dccf3d02adf3"}},"_resolved":"/tmp/a609e2e74542f2fd80e132693fd1c3fc/remix-run-file-storage-0.13.1.tgz","_integrity":"sha512-4xbHNRFUkrjawEkHS/R4skxMW/e6OJiJASlu4gOoyPjqNkV/NuH6FzgF0taPH0E9Im2PE3I5m2WFsg/jBc64bQ==","repository":{"url":"git+https://github.com/remix-run/remix.git","type":"git","directory":"packages/file-storage"},"_npmVersion":"11.6.2","description":"Key/value storage for JavaScript File objects","directories":{},"_nodeVersion":"24.12.0","_hasShrinkwrap":false,"devDependencies":{"@types/node":"^24.6.0","@typescript/native-preview":"7.0.0-dev.20251125.1","@remix-run/form-data-parser":"0.14.0"},"peerDependencies":{"@remix-run/fs":"^0.4.0","@remix-run/lazy-file":"^5.0.0"},"_npmOperationalInternal":{"tmp":"tmp/file-storage_0.13.1_1768948115608_0.3393535099779281","host":"s3://npm-registry-packages-npm-production"}},"0.13.2":{"name":"@remix-run/file-storage","version":"0.13.2","keywords":["file","storage","stream","fs"],"author":{"name":"Michael Jackson","email":"mjijackson@gmail.com"},"license":"MIT","_id":"@remix-run/file-storage@0.13.2","maintainers":[{"name":"mjackson","email":"mjijackson+npm@gmail.com"},{"name":"ryanflorence","email":"rpflorence@gmail.com"}],"homepage":"https://github.com/remix-run/remix/tree/main/packages/file-storage#readme","bugs":{"url":"https://github.com/remix-run/remix/issues"},"dist":{"shasum":"c79e9b52134ce84d09aa70043f50f457382052fb","tarball":"https://registry.npmjs.org/@remix-run/file-storage/-/file-storage-0.13.2.tgz","fileCount":27,"integrity":"sha512-1j2ZFdXjuLraMcEqU/bQFhkDwERlZNF5IuYiDmMpubOQXqwA1gIWNyWQnPO+iaRZPcxHWuZhWYSR5477BsT76A==","signatures":[{"sig":"MEUCIQDxuMp5a5Nx8sp+QsD3jXvjuXDS461+APeZfYRfvEfoHwIgHm2kvuIGCKv5pZKY752MFilXkM3Sf+XifxFyV48K1cE=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@remix-run%2ffile-storage@0.13.2","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":35121},"type":"module","_from":"file:remix-run-file-storage-0.13.2.tgz","exports":{".":{"types":"./dist/index.d.ts","default":"./dist/index.js"},"./fs":{"types":"./dist/fs.d.ts","default":"./dist/fs.js"},"./memory":{"types":"./dist/memory.d.ts","default":"./dist/memory.js"},"./package.json":"./package.json"},"scripts":{"test":"node --disable-warning=ExperimentalWarning --test","build":"tsgo -p tsconfig.build.json","clean":"git clean -fdX","typecheck":"tsgo --noEmit"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:70eb1f96-7bfb-42a8-b52a-dccf3d02adf3"}},"_resolved":"/tmp/65a1f196f5b094bb42264f9f0dc6c850/remix-run-file-storage-0.13.2.tgz","_integrity":"sha512-1j2ZFdXjuLraMcEqU/bQFhkDwERlZNF5IuYiDmMpubOQXqwA1gIWNyWQnPO+iaRZPcxHWuZhWYSR5477BsT76A==","repository":{"url":"git+https://github.com/remix-run/remix.git","type":"git","directory":"packages/file-storage"},"_npmVersion":"11.6.2","description":"Key/value storage for JavaScript File objects","directories":{},"_nodeVersion":"24.13.0","dependencies":{"@remix-run/fs":"^0.4.1","@remix-run/lazy-file":"^5.0.1"},"_hasShrinkwrap":false,"devDependencies":{"@types/node":"^24.6.0","@typescript/native-preview":"7.0.0-dev.20251125.1","@remix-run/form-data-parser":"0.14.0"},"_npmOperationalInternal":{"tmp":"tmp/file-storage_0.13.2_1769471924476_0.9046646890967638","host":"s3://npm-registry-packages-npm-production"}},"0.13.3":{"name":"@remix-run/file-storage","version":"0.13.3","keywords":["file","storage","stream","fs"],"author":{"name":"Michael Jackson","email":"mjijackson@gmail.com"},"license":"MIT","_id":"@remix-run/file-storage@0.13.3","maintainers":[{"name":"mjackson","email":"mjijackson+npm@gmail.com"}],"homepage":"https://github.com/remix-run/remix/tree/main/packages/file-storage#readme","bugs":{"url":"https://github.com/remix-run/remix/issues"},"dist":{"shasum":"7ed9c811dec0c288def06731ce12c742bcdf0f53","tarball":"https://registry.npmjs.org/@remix-run/file-storage/-/file-storage-0.13.3.tgz","fileCount":27,"integrity":"sha512-HBDz9RRsFRvI6EoeasklxH/NleGy0QZBXBcA4gQBW8ueucop21TQI4wvGlhZmXcnJ3nP4RkhdF2Gff2/HD5eiA==","signatures":[{"sig":"MEUCIQCns+7MdfsNhbZe8S4V1uWullo46UkuO8SXNwOlVC8KowIgEMkVaA/aOkq5M7gJ2Wrh4EPfaHkm3YMOnxWJW76cDxM=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@remix-run%2ffile-storage@0.13.3","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":34577},"type":"module","_from":"file:remix-run-file-storage-0.13.3.tgz","exports":{".":{"types":"./dist/index.d.ts","default":"./dist/index.js"},"./fs":{"types":"./dist/fs.d.ts","default":"./dist/fs.js"},"./memory":{"types":"./dist/memory.d.ts","default":"./dist/memory.js"},"./package.json":"./package.json"},"scripts":{"test":"node --disable-warning=ExperimentalWarning --test","build":"tsgo -p tsconfig.build.json","clean":"git clean -fdX","typecheck":"tsgo --noEmit"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:70eb1f96-7bfb-42a8-b52a-dccf3d02adf3"}},"_resolved":"/tmp/b02d3fe811a4a1917bbe3298d55b9b66/remix-run-file-storage-0.13.3.tgz","_integrity":"sha512-HBDz9RRsFRvI6EoeasklxH/NleGy0QZBXBcA4gQBW8ueucop21TQI4wvGlhZmXcnJ3nP4RkhdF2Gff2/HD5eiA==","repository":{"url":"git+https://github.com/remix-run/remix.git","type":"git","directory":"packages/file-storage"},"_npmVersion":"11.10.1","description":"Key/value storage for JavaScript File objects","directories":{},"_nodeVersion":"25.7.0","dependencies":{"@remix-run/fs":"^0.4.2","@remix-run/lazy-file":"^5.0.2"},"_hasShrinkwrap":false,"devDependencies":{"@types/node":"^24.6.0","@typescript/native-preview":"7.0.0-dev.20251125.1","@remix-run/form-data-parser":"0.15.0"},"_npmOperationalInternal":{"tmp":"tmp/file-storage_0.13.3_1772241739501_0.7097052472428917","host":"s3://npm-registry-packages-npm-production"}},"0.13.4":{"name":"@remix-run/file-storage","version":"0.13.4","keywords":["file","storage","stream","fs"],"author":{"name":"Michael Jackson","email":"mjijackson@gmail.com"},"license":"MIT","_id":"@remix-run/file-storage@0.13.4","maintainers":[{"name":"mjackson","email":"mjijackson+npm@gmail.com"}],"homepage":"https://github.com/remix-run/remix/tree/main/packages/file-storage#readme","bugs":{"url":"https://github.com/remix-run/remix/issues"},"dist":{"shasum":"4b32425576d3f75665e1bde3b042fa029519d04f","tarball":"https://registry.npmjs.org/@remix-run/file-storage/-/file-storage-0.13.4.tgz","fileCount":27,"integrity":"sha512-DunIIfs5/qpxQRvlxs5OT1I8TMiZqf7zbCOzKz6LJconD5lC97P58UKOfwS69hfxhg3NyBGFqhBuQ+QhYUCAOQ==","signatures":[{"sig":"MEYCIQCvPcIzwORpawfP657qviTV46bT3WXBOzJPdBI95ZFkoQIhALHRpoqJfKEKrZU0aHoPzSlVnOKJ7xAscz2dGgjfS8Fz","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@remix-run%2ffile-storage@0.13.4","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":34740},"type":"module","_from":"file:remix-run-file-storage-0.13.4.tgz","exports":{".":{"types":"./dist/index.d.ts","default":"./dist/index.js"},"./fs":{"types":"./dist/fs.d.ts","default":"./dist/fs.js"},"./memory":{"types":"./dist/memory.d.ts","default":"./dist/memory.js"},"./package.json":"./package.json"},"scripts":{"test":"remix-test","build":"tsgo -p tsconfig.build.json","clean":"git clean -fdX","test:bun":"bun x --bun remix-test","typecheck":"tsgo --noEmit"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:70eb1f96-7bfb-42a8-b52a-dccf3d02adf3"}},"_resolved":"/tmp/ae061fb6d4561113f6f2652ec77fd334/remix-run-file-storage-0.13.4.tgz","_integrity":"sha512-DunIIfs5/qpxQRvlxs5OT1I8TMiZqf7zbCOzKz6LJconD5lC97P58UKOfwS69hfxhg3NyBGFqhBuQ+QhYUCAOQ==","repository":{"url":"git+https://github.com/remix-run/remix.git","type":"git","directory":"packages/file-storage"},"_npmVersion":"11.11.0","description":"Key/value storage for JavaScript File objects","directories":{},"_nodeVersion":"24.14.1","dependencies":{"@remix-run/fs":"^0.4.3","@remix-run/lazy-file":"^5.0.3"},"_hasShrinkwrap":false,"devDependencies":{"@types/node":"^24.6.0","@remix-run/test":"0.2.0","@remix-run/assert":"0.1.0","@typescript/native-preview":"7.0.0-dev.20251125.1","@remix-run/form-data-parser":"0.17.0"},"_npmOperationalInternal":{"tmp":"tmp/file-storage_0.13.4_1777483817368_0.4921338835467548","host":"s3://npm-registry-packages-npm-production"}},"0.13.5":{"name":"@remix-run/file-storage","version":"0.13.5","keywords":["file","storage","stream","fs"],"author":{"name":"Michael Jackson","email":"mjijackson@gmail.com"},"license":"MIT","_id":"@remix-run/file-storage@0.13.5","maintainers":[{"name":"mjackson","email":"mjijackson+npm@gmail.com"}],"homepage":"https://github.com/remix-run/remix/tree/main/packages/file-storage#readme","bugs":{"url":"https://github.com/remix-run/remix/issues"},"dist":{"shasum":"25e7f4fbabc4b540ed07b106ccf964584659754f","tarball":"https://registry.npmjs.org/@remix-run/file-storage/-/file-storage-0.13.5.tgz","fileCount":27,"integrity":"sha512-xESA575OMf7F3TIxmmWrTkuj7CAgq9VKKXAhjHvvpQJmEUOXPE+yjEcG7TxbIe3gE+/KC1Hxbtqm9DHYyW/otg==","signatures":[{"sig":"MEUCIDTzTZi4a7h2vdesAFe1MZ1+4l862xp4A/DyjVkSywk3AiEAyxdGQna8FNgYbWnhyHscNGxPNqYLcVysnFdIOOSWmOE=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@remix-run%2ffile-storage@0.13.5","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":35253},"type":"module","_from":"file:remix-run-file-storage-0.13.5.tgz","exports":{".":{"types":"./dist/index.d.ts","default":"./dist/index.js"},"./fs":{"types":"./dist/fs.d.ts","default":"./dist/fs.js"},"./memory":{"types":"./dist/memory.d.ts","default":"./dist/memory.js"},"./package.json":"./package.json"},"scripts":{"test":"remix-test","build":"tsgo -p tsconfig.build.json","clean":"git clean -fdX","test:bun":"bun x --bun remix-test","typecheck":"tsgo --noEmit"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:70eb1f96-7bfb-42a8-b52a-dccf3d02adf3"}},"_resolved":"/tmp/92cd38d90791c41a7404eba958efe3cf/remix-run-file-storage-0.13.5.tgz","_integrity":"sha512-xESA575OMf7F3TIxmmWrTkuj7CAgq9VKKXAhjHvvpQJmEUOXPE+yjEcG7TxbIe3gE+/KC1Hxbtqm9DHYyW/otg==","repository":{"url":"git+https://github.com/remix-run/remix.git","type":"git","directory":"packages/file-storage"},"_npmVersion":"11.12.1","description":"Key/value storage for JavaScript File objects","directories":{},"_nodeVersion":"24.15.0","dependencies":{"@remix-run/fs":"^0.4.4","@remix-run/lazy-file":"^5.0.4"},"_hasShrinkwrap":false,"devDependencies":{"@types/node":"^24.6.0","@remix-run/test":"0.4.1","@remix-run/assert":"0.2.1","@typescript/native-preview":"7.0.0-dev.20251125.1","@remix-run/form-data-parser":"0.17.2"},"_npmOperationalInternal":{"tmp":"tmp/file-storage_0.13.5_1779308315641_0.33813481044575777","host":"s3://npm-registry-packages-npm-production"}},"0.13.6":{"name":"@remix-run/file-storage","version":"0.13.6","keywords":["file","storage","stream","fs"],"author":{"name":"Michael Jackson","email":"mjijackson@gmail.com"},"license":"MIT","_id":"@remix-run/file-storage@0.13.6","maintainers":[{"name":"mjackson","email":"mjijackson+npm@gmail.com"}],"homepage":"https://github.com/remix-run/remix/tree/main/packages/file-storage#readme","bugs":{"url":"https://github.com/remix-run/remix/issues"},"dist":{"shasum":"c6512fd2c62e4192991a725131f1480e46ecd13a","tarball":"https://registry.npmjs.org/@remix-run/file-storage/-/file-storage-0.13.6.tgz","fileCount":27,"integrity":"sha512-dXX7gcoPPWFa/041U/fCW9jHS11v8oC8UCrMRpbkyltz+tI55KvJ60oHYPUqnu75b9Ep60lZHvNviqlSn1Iv4w==","signatures":[{"sig":"MEUCIQDRZtoH9g3VBGl1pwWdPPolPR+4nwT2cC75XU5YzLcwqwIgF3gCXQX0uDzo+Xi4FHNa6G1yS44iUPJ6iAYJNltVslg=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@remix-run%2ffile-storage@0.13.6","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":35253},"type":"module","_from":"file:remix-run-file-storage-0.13.6.tgz","exports":{".":{"types":"./dist/index.d.ts","default":"./dist/index.js"},"./fs":{"types":"./dist/fs.d.ts","default":"./dist/fs.js"},"./memory":{"types":"./dist/memory.d.ts","default":"./dist/memory.js"},"./package.json":"./package.json"},"scripts":{"test":"remix-test","build":"tsgo -p tsconfig.build.json","clean":"git clean -fdX","test:bun":"bun x --bun remix-test","typecheck":"tsgo --noEmit"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:70eb1f96-7bfb-42a8-b52a-dccf3d02adf3"}},"_resolved":"/tmp/55f36eff13550a8e54a9c89c0986866c/remix-run-file-storage-0.13.6.tgz","_integrity":"sha512-dXX7gcoPPWFa/041U/fCW9jHS11v8oC8UCrMRpbkyltz+tI55KvJ60oHYPUqnu75b9Ep60lZHvNviqlSn1Iv4w==","repository":{"url":"git+https://github.com/remix-run/remix.git","type":"git","directory":"packages/file-storage"},"_npmVersion":"11.13.0","description":"Key/value storage for JavaScript File objects","directories":{},"_nodeVersion":"24.16.0","dependencies":{"@remix-run/fs":"^0.4.5","@remix-run/lazy-file":"^5.0.5"},"_hasShrinkwrap":false,"devDependencies":{"@types/node":"^24.6.0","@remix-run/test":"0.4.2","@remix-run/assert":"0.2.1","@typescript/native-preview":"7.0.0-dev.20251125.1","@remix-run/form-data-parser":"0.17.3"},"_npmOperationalInternal":{"tmp":"tmp/file-storage_0.13.6_1780078664858_0.16626764189809973","host":"s3://npm-registry-packages-npm-production"}},"0.13.7":{"name":"@remix-run/file-storage","version":"0.13.7","description":"Key/value storage for JavaScript File objects","author":{"name":"Michael Jackson","email":"mjijackson@gmail.com"},"repository":{"type":"git","url":"git+https://github.com/remix-run/remix.git","directory":"packages/file-storage"},"homepage":"https://github.com/remix-run/remix/tree/main/packages/file-storage#readme","license":"MIT","type":"module","exports":{".":{"types":"./dist/index.d.ts","default":"./dist/index.js"},"./fs":{"types":"./dist/fs.d.ts","default":"./dist/fs.js"},"./memory":{"types":"./dist/memory.d.ts","default":"./dist/memory.js"},"./package.json":"./package.json"},"dependencies":{"@remix-run/lazy-file":"^5.0.6","@remix-run/fs":"^0.4.6"},"devDependencies":{"@types/node":"^24.6.0","@typescript/native-preview":"7.0.0-dev.20251125.1","@remix-run/assert":"0.3.0","@remix-run/test":"0.5.0","@remix-run/form-data-parser":"0.17.4"},"keywords":["file","storage","stream","fs"],"scripts":{"build":"tsgo -p tsconfig.build.json","clean":"git clean -fdX","test":"remix-test","test:bun":"bun x --bun remix-test","typecheck":"tsgo --noEmit"},"_id":"@remix-run/file-storage@0.13.7","bugs":{"url":"https://github.com/remix-run/remix/issues"},"_integrity":"sha512-7tDgyzs1v0dQgfMt+lpbIzEVkrgrcKJLGbBeXrpJITuCeWoc0XgFfDTp6gghS3s8aWQTm5XHbgnldLoQCEU9Mw==","_resolved":"/tmp/f2c3a8e9a70430daa489f7946686625d/remix-run-file-storage-0.13.7.tgz","_from":"file:remix-run-file-storage-0.13.7.tgz","_nodeVersion":"24.17.0","_npmVersion":"11.13.0","dist":{"integrity":"sha512-7tDgyzs1v0dQgfMt+lpbIzEVkrgrcKJLGbBeXrpJITuCeWoc0XgFfDTp6gghS3s8aWQTm5XHbgnldLoQCEU9Mw==","shasum":"6e25b7358b808f81abfea0215a900af6fc801a70","tarball":"https://registry.npmjs.org/@remix-run/file-storage/-/file-storage-0.13.7.tgz","fileCount":27,"unpackedSize":35253,"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@remix-run%2ffile-storage@0.13.7","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"signatures":[{"keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U","sig":"MEUCIQC/sM7/AhgT9U4n2w22sC8VWv3f1tgLC+/cvlp5q9p9cAIgA1msOhtVQDVtSaMFvRpzijKHOrCknLf7spn5POJd2HI="}]},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:70eb1f96-7bfb-42a8-b52a-dccf3d02adf3"}},"directories":{},"maintainers":[{"name":"mjackson","email":"mjijackson+npm@gmail.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages-npm-production","tmp":"tmp/file-storage_0.13.7_1782932591755_0.34850694229829204"},"_hasShrinkwrap":false}},"time":{"created":"2025-07-21T20:32:13.279Z","modified":"2026-07-01T19:03:12.211Z","0.8.0":"2025-07-21T20:32:13.597Z","0.9.0":"2025-07-25T00:53:56.744Z","0.10.0":"2025-10-22T17:03:20.366Z","0.11.0":"2025-11-05T00:08:46.749Z","0.12.0":"2025-11-20T04:11:57.741Z","0.13.0":"2025-11-25T04:30:02.699Z","0.13.1":"2026-01-20T22:28:35.811Z","0.13.2":"2026-01-26T23:58:44.615Z","0.13.3":"2026-02-28T01:22:19.644Z","0.13.4":"2026-04-29T17:30:17.547Z","0.13.5":"2026-05-20T20:18:35.822Z","0.13.6":"2026-05-29T18:17:45.015Z","0.13.7":"2026-07-01T19:03:11.904Z"},"bugs":{"url":"https://github.com/remix-run/remix/issues"},"author":{"name":"Michael Jackson","email":"mjijackson@gmail.com"},"license":"MIT","homepage":"https://github.com/remix-run/remix/tree/main/packages/file-storage#readme","keywords":["file","storage","stream","fs"],"repository":{"type":"git","url":"git+https://github.com/remix-run/remix.git","directory":"packages/file-storage"},"description":"Key/value storage for JavaScript File objects","maintainers":[{"name":"mjackson","email":"mjijackson+npm@gmail.com"}],"readme":"# file-storage\n\nKey/value storage interfaces for server-side [`File` objects](https://developer.mozilla.org/en-US/docs/Web/API/File). `file-storage` gives Remix apps one consistent API across local disk and memory backends.\n\n## Features\n\n- **Simple API** - Intuitive key/value API (like [Web Storage](https://developer.mozilla.org/en-US/docs/Web/API/Web_Storage_API), but for `File`s instead of strings)\n- **Multiple Backends** - Built-in filesystem and memory backends\n- **Streaming Support** - Stream file content to and from storage\n- **Metadata Preservation** - Preserves all `File` metadata including `file.name`, `file.type`, `file.size`, and `file.lastModified`\n\n## Installation\n\n```sh\nnpm i remix\n```\n\n## Usage\n\n### File System\n\n```ts\nimport { createFsFileStorage } from 'remix/file-storage/fs'\n\nlet storage = createFsFileStorage('./user/files')\n\nlet file = new File(['hello world'], 'hello.txt', { type: 'text/plain' })\nlet key = 'hello-key'\n\n// Put the file in storage.\nawait storage.set(key, file)\n\n// Then, sometime later...\nlet fileFromStorage = await storage.get(key)\n\nif (fileFromStorage != null) {\n  // All of the original file's metadata is intact\n  fileFromStorage.name // 'hello.txt'\n  fileFromStorage.type // 'text/plain'\n\n  // The filesystem backend returns a LazyFile, so you can stream it directly.\n  let response = new Response(fileFromStorage.stream())\n}\n\n// To remove from storage\nawait storage.remove(key)\n```\n\n## Related Packages\n\n- [`file-storage-s3`](https://github.com/remix-run/remix/tree/main/packages/file-storage-s3) - S3 backend for `file-storage`\n- [`form-data-parser`](https://github.com/remix-run/remix/tree/main/packages/form-data-parser) - Pairs well with this library for storing `FileUpload` objects received in `multipart/form-data` requests\n- [`lazy-file`](https://github.com/remix-run/remix/tree/main/packages/lazy-file) - The streaming `File` implementation used internally to stream files from storage\n\n## License\n\nSee [LICENSE](https://github.com/remix-run/remix/blob/main/LICENSE)\n","readmeFilename":"README.md"}