Skip to content

Releases: zemzemi/CryptoBox

v1.0.1 - Bundler Compatibility Fix

03 Dec 21:57

Choose a tag to compare

🐛 Bug Fixes

Fixed compatibility issues with Next.js, Vite, Webpack, and other modern bundlers by switching from TypeScript compiler to tsup.

Affected Frameworks (v1.0.0)

This fix resolves "Module not found" errors in:

  • Next.js (App Router & Pages Router)
  • Vite (React, Vue, Svelte projects)
  • Create React App (Webpack)
  • Angular (Webpack)
  • Parcel, Turbopack, Rollup

What Changed

  • ✅ Migrated build system from tsc to tsup (esbuild-based)
  • ✅ Resolved path alias issues (@core, @crypto, @storage)
  • ✅ Generated correct ESM (.js) and CommonJS (.cjs) outputs
  • ✅ Package now works seamlessly in all JavaScript projects with bundlers

Technical Details

Before (v1.0.0):

// Compiled output had unresolved aliases
import { X } from '@core/constants'; // ❌ Module not found

After (v1.0.1):

// Properly resolved to relative paths
import { X } from './core/constants.js'; // ✅ Works everywhere

Breaking Changes

None - This is a bug fix release. All APIs remain unchanged.

Installation

npm install @azemzemi/[email protected]

Verification

Test in your project:

import { createSecureLocalStorage } from '@azemzemi/cryptobox';

const storage = createSecureLocalStorage();
await storage.setSecure('token', { jwt: 'xxx' }, 'password');
const token = await storage.getSecure('token', 'password');

Links


Full Changelog: v1.0.0...v1.0.1

v1.0.0 - Initial Release

29 Nov 15:37

Choose a tag to compare

🎉 CryptoBox v1.0.0 - Initial Release

Zero-dependency encryption library for JavaScript & TypeScript.

✨ Features

  • 🔒 AES-256-GCM Encryption - Military-grade authenticated encryption
  • 📦 Zero Dependencies - No supply chain vulnerabilities
  • 🎯 Type-Safe - Full TypeScript support with strict typing
  • ⚡ Simple API - 3 lines to encrypt localStorage
  • 🌐 Universal - Works in Browser, Node.js, Deno, and Bun

🔧 Core Functionality

  • AES-256-GCM authenticated encryption via Web Crypto API
  • PBKDF2-HMAC-SHA256 key derivation (100,000 iterations)
  • Random salt and IV per operation
  • Timing-attack protection with constant-time comparisons
  • Device fingerprinting for passwordless authentication
  • Secure base64 encoding (supports all bytes 0-255)

📊 Quality Metrics

  • ✅ 93.93% test coverage (77 unit tests)
  • ✅ 0 vulnerabilities (npm audit)
  • ✅ 0 ESLint warnings
  • ✅ 100% TypeScript with strict mode
  • ✅ CI/CD with GitHub Actions

📦 Installation

npm install @azemzemi/cryptobox

🚀 Quick Start

import { createSecureLocalStorage } from '@azemzemi/cryptobox';

const storage = createSecureLocalStorage();

await storage.setSecure('user', { id: 123 }, 'password');
const user = await storage.getSecure('user', 'password');

📚 Documentation

🙏 Thank You

Thank you for using CryptoBox! If you find it useful, please ⭐ star the repo and consider sponsoring.