<!-- start pr-codex -->
## PR-Codex overview
The focus of this PR is to update dependencies across multiple packages and fix minor code issues.
### Detailed summary
- Updated `typedoc` to versions `0.26.7`.
- Updated `tsup` to versions `8.2.4`.
- Updated `typescript` to versions `5.6.2`.
- Updated various packages to use the latest TypeScript version.
- Fixed minor code issues like handling `delete` operations and eslint comments.
> The following files were skipped due to too many changes: `packages/thirdweb/src/wallets/in-app/core/eip5972/in-app-wallet-calls.ts`, `legacy_packages/wallets/src/evm/connectors/gcp-kms/utils/gcp-kms-utils.ts`, `apps/dashboard/package.json`, `packages/thirdweb/package.json`, `legacy_packages/contracts-js/package.json`, `pnpm-lock.yaml`
> ✨ Ask PR-Codex anything about this PR by commenting with `/codex {your question}`
<!-- end pr-codex -->
thirdweb Storage
Best in class decentralized storage SDK for Browser and Node
Installation
Install the latest version of the SDK with either npm or yarn:
npm install @thirdweb-dev/storage
yarn add @thirdweb-dev/storage
Quick Start
Once you have the thirdweb Storage SDK installed, you can use it to easily upload and download files and other data using decentralized storage systems.
Here's a simple example using the SDK to upload and download a file from IPFS:
import { ThirdwebStorage } from "@thirdweb-dev/storage";
// First, instantiate the SDK
const storage = new ThirdwebStorage();
// Now we can upload a file and get the upload URI
const file = readFileSync("path/to/file.jpg");
const uri = await storage.upload(file);
// Finally we can download the file data again
const res = await storage.download(uri);
const data = await res.text();
Alternatively, we can use the SDK to upload and download metadata and JSON objects, and we can also upload multiple items at once:
// We define metadata for 2 different NFTs
const metadata = [
{
name: "NFT #1",
description: "This is my first NFT",
image: readFileSync("path/to/file.jpg"),
properties: {
coolness: 100,
},
},
{
name: "NFT #2",
description: "This is my second NFT",
image: readFileSync("path/to/file.jpg"),
properties: {
coolness: 200,
},
},
];
// And now we can upload it all at once to a single directory
const uris = await storage.uploadBatch(metadata);
// And easily retrieve the metadata
const metadata = await storage.downloadJSON(uris);
Learn More
You can learn more about thirdweb and the Storage SDK with the following resources: