Skip to content

v3.1.0

Choose a tag to compare

@kunstmusik kunstmusik released this 22 Oct 18:51
· 4 commits to master since this release
b2a316a

[3.1.0] - 2025-10-22

Added

  • Browser bundle support: New ardrive-core-js/web export provides browser-compatible API via esbuild bundling with Node.js polyfills
  • Web-specific implementations: ArDriveWeb, ArFSDAOAuthenticatedWeb, crypto operations (aesGcmEncrypt, aesGcmDecrypt, deriveDriveKeyV2), and JWKWalletWeb
  • File wrapper utilities for browser: wrapFile() and wrapFiles() for File/FileList objects
  • Factory functions: arDriveFactory() and arDriveAnonymousFactory() for web environment initialization
  • Playwright test suite for cross-platform validation (22 tests covering crypto, file operations, anonymous/authenticated workflows)
  • Support for Wander and custom signers via ArDriveSigner interface
  • Public and private drive operations: create drives/folders, upload/list files, rename/move entities, upload manifests
  • Turbo-only uploads: All authenticated uploads use Turbo SDK; traditional Arweave transaction uploads not supported in browser build
  • TypeScript declaration generation via tsconfig.web.json for accurate browser API types

Changed

  • Refactored core classes to be browser-compatible: ArDriveAnonymous, ArFSDAOAnonymous, GatewayAPI now work in both Node.js and browser
  • Extracted browser-compatible utilities to common_browser.ts module
  • Updated package.json exports to include ./web entry point with proper type definitions
  • Build system: Added build:web, build:all, and test:playwright scripts
  • Fixed content type fallback in wrapFile() to match core builder behavior (uses || instead of ??)

Limitations

  • No download operations: File/folder download methods not implemented in browser build
  • Turbo-only: Browser uploads require Turbo; no support for direct Arweave transaction submission
  • Wallet signing: JWKWalletWeb.sign() not implemented; use ArweaveSigner or ArconnectSigner instead
  • Incomplete core parity: Some Node.js-only features (e.g., CommunityOracle, certain pricing estimators) excluded from web bundle