{"_id":"@borderlessdev/filecoin-storage-sdk","name":"@borderlessdev/filecoin-storage-sdk","dist-tags":{"latest":"1.0.0"},"versions":{"1.0.0":{"name":"@borderlessdev/filecoin-storage-sdk","version":"1.0.0","description":"Comprehensive Filecoin storage SDK with Synapse integration. Simplifies decentralized file storage on Filecoin with wallet management, upload/download, and IPFS pinning.","main":"dist/FileStorage.umd.js","module":"dist/FileStorage.esm.js","type":"module","scripts":{"build":"rollup -c","build:dev":"rollup -c --environment NODE_ENV:development","test":"node examples/test.js","prepublishOnly":"npm run build && npm test","lint":"eslint . --ext .js","format":"prettier --write ."},"keywords":["filecoin","ipfs","decentralized-storage","web3-storage","synapse-sdk","blockchain","dapp","storage-sdk","file-upload","web3","usdfc","pinata"],"author":{"name":"Nworah Chimzuruoke Gabriel","email":"gabrielnworah@gmail.com"},"license":"MIT","repository":{"type":"git","url":"git+https://github.com/Nworah-Gabriel/filecoin-storage-sdk.git"},"bugs":{"url":"https://github.com/Nworah-Gabriel/filecoin-storage-sdk/issues"},"homepage":"https://github.com/Nworah-Gabriel/filecoin-storage-sdk#readme","dependencies":{"@filoz/synapse-sdk":"^0.24.11","dotenv":"^17.2.2","ethers":"^6.15.0"},"devDependencies":{"@rollup/plugin-commonjs":"^28.0.3","@rollup/plugin-node-resolve":"^16.0.1","@rollup/plugin-terser":"^0.4.4","eslint":"^8.57.0","prettier":"^3.2.5","rollup":"^2.79.2","rollup-plugin-node-polyfills":"^0.2.1"},"engines":{"node":">=16.0.0"},"publishConfig":{"access":"public"},"_id":"@borderlessdev/filecoin-storage-sdk@1.0.0","gitHead":"fc373adf98626282e116145db49bdf27ff960fe4","_nodeVersion":"18.20.8","_npmVersion":"10.8.2","dist":{"integrity":"sha512-yvXgp21FnknHQoSswDh5oRNJ9zUfWZ2I19okJQCfRL9N1tSAfe7hI7tX7eWRW9fYJ6b5ONtkdFqOCmkmoqgiFg==","shasum":"a26826de1ccc5559c24aee053b790c64abcd29f5","tarball":"https://registry.npmjs.org/@borderlessdev/filecoin-storage-sdk/-/filecoin-storage-sdk-1.0.0.tgz","fileCount":13,"unpackedSize":9331831,"signatures":[{"keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U","sig":"MEUCIQCkSJgNAzkpZozm2X5mWXBuLWxNSxWwn4fGvWCNqlztggIgKDcnwWvIk4jtHxRfePnDl+6S4TAE/o/Exn8LYYLoXIg="}]},"_npmUser":{"name":"saggio","email":"gabrielnworah6@gmail.com"},"directories":{},"maintainers":[{"name":"saggio","email":"gabrielnworah6@gmail.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages-npm-production","tmp":"tmp/filecoin-storage-sdk_1.0.0_1757914167300_0.7061148099039585"},"_hasShrinkwrap":false}},"time":{"created":"2025-09-15T05:29:27.242Z","1.0.0":"2025-09-15T05:29:27.509Z","modified":"2025-09-15T05:29:27.741Z"},"maintainers":[{"name":"saggio","email":"gabrielnworah6@gmail.com"}],"description":"Comprehensive Filecoin storage SDK with Synapse integration. Simplifies decentralized file storage on Filecoin with wallet management, upload/download, and IPFS pinning.","homepage":"https://github.com/Nworah-Gabriel/filecoin-storage-sdk#readme","keywords":["filecoin","ipfs","decentralized-storage","web3-storage","synapse-sdk","blockchain","dapp","storage-sdk","file-upload","web3","usdfc","pinata"],"repository":{"type":"git","url":"git+https://github.com/Nworah-Gabriel/filecoin-storage-sdk.git"},"author":{"name":"Nworah Chimzuruoke Gabriel","email":"gabrielnworah@gmail.com"},"bugs":{"url":"https://github.com/Nworah-Gabriel/filecoin-storage-sdk/issues"},"license":"MIT","readme":"# Filecoin Storage SDK\n\nA comprehensive JavaScript/TypeScript SDK for decentralized file storage on Filecoin using Synapse Protocol. Simplify Filecoin integration with easy-to-use methods for uploading, downloading, and managing files on the decentralized web.\n\n## Features\n\n- 📁 **Multi-format Support**: Upload files, images, JSON data, and more\n- 🔐 **Wallet Integration**: Seamless USDFC deposit and service approval\n- 🌐 **Multi-network**: Support for Filecoin mainnet and calibration testnet\n- 📍 **IPFS Pinning**: Automatic Pinata integration for gateway access\n- ⚡ **CDN Enabled**: Fast retrievals with built-in content delivery\n- 🛡️ **Type Safety**: Full TypeScript support with comprehensive types\n- 🔍 **File Management**: Check file existence, get storage info, and monitor balances\n- 🎯 **Error Handling**: Robust error handling with detailed logging\n\n## Installation\n\n```bash\nnpm install @borderlessdev/filecoin-storage-sdk\n```\n\n# Quickstart\n\n## nodejs usage\n\n```javascript\nimport fileStorage from '@borderlessdev/filecoin-storage-sdk';\nimport { config } from \"dotenv\";\nimport fs from 'fs';\nimport path from 'path';\nimport { fileURLToPath } from 'url';\n\n// Load environment variables\nconfig();\n\nconsole.log(\"PRIVATE_KEY:\", process.env.PRIVATE_KEY ? \"Loaded\" : \"Missing\");\n\n// Fix __dirname in ES modules\nconst __filename = fileURLToPath(import.meta.url);\nconst __dirname = path.dirname(__filename);\n\nasync function main() {\n  try {\n    // Initialize with private key\n    await fileStorage.initialize({\n      privateKey: process.env.PRIVATE_KEY,\n      network: 'calibration' // Filecoin testnet\n    });\n\n    // ---------- Upload JSON ----------\n    const jsonPath = path.resolve(__dirname, 'files/my-data.json');\n    if (fs.existsSync(jsonPath)) {\n      let jsonBuffer = fs.readFileSync(jsonPath);\n\n      // Ensure minimum size of 1 byte\n      if (jsonBuffer.length < 1) {\n        const padding = Buffer.alloc(1 - jsonBuffer.length, \" \");\n        jsonBuffer = Buffer.concat([jsonBuffer, padding]);\n      }\n\n      const jsonResult = await fileStorage.uploadFile(jsonBuffer, 'my-data.json');\n      console.log('✅ JSON uploaded:', jsonResult);\n\n      // ---------- Download JSON ----------\n      const downloadedJSON = await fileStorage.downloadJSON(jsonResult.pieceCid);\n      console.log('📥 Downloaded JSON:', downloadedJSON);\n    } else {\n      console.warn(\"⚠️ my-data.json not found in examples/files/, skipping JSON upload\");\n    }\n\n    // ---------- Upload an image ----------\n    const imagePath = path.resolve(__dirname, 'files/image.png');\n    if (fs.existsSync(imagePath)) {\n      const imageBuffer = fs.readFileSync(imagePath);\n      const imageResult = await fileStorage.uploadFile(imageBuffer, 'image.png');\n      console.log('✅ Image uploaded:', imageResult);\n    } else {\n      console.warn(\"⚠️ image.png not found in examples/files/, skipping image upload\");\n    }\n\n    // ---------- Get storage info ----------\n    try {\n      const info = await fileStorage.getStorageInfo();\n      console.log('ℹ️ Storage info:', info);\n    } catch (err) {\n      console.error(\"⚠️ Could not fetch storage info:\", err.message);\n    }\n\n  } catch (error) {\n    console.error('❌ Error:', error);\n  }\n}\n\nmain();\n```\n","readmeFilename":"README.md","_rev":"1-443d524f0cd3c1a68c20e8857fb3e4f7"}