aleph-client
v0.0.1
Published
TypeScript client library for Aleph Backend
Downloads
5
Readme
Aleph Client Library
A lightweight TypeScript client library for the Aleph Backend API with automatic code generation from Swagger specifications.
Features
- ✅ Auto-generated TypeScript client from Swagger/OpenAPI specs
- ✅ Type-safe API calls with full IntelliSense support
- ✅ Authentication support (username/password, Privy)
- ✅ Environment management (dev/staging/prod)
- ✅ Zero dependencies for code generation
Quick Start
Installation
pnpm install aleph-clientBasic Usage
import { AlephClient } from 'aleph-client';
// Create client (configuration via environment variables)
const client = new AlephClient({
// Optional: override defaults
// baseUrl: 'https://api.aleph.finance',
// timeout: 15000,
// privateKey: 'your-wallet-private-key',
// privyAppId: 'your-privy-app-id'
});
// Health check (no authentication required)
const health = await client.api.health.healthControllerCheck();
// Machine authentication with wallet (like a real user)
const authResult = await client.authenticateWithWallet('manager');
// Use generated API methods (JWT token automatically included)
const manager = await client.api.api.managerControllerIdentifyManager();
const vaults = await client.api.api.vaultManagerControllerGetVaults();
const kycFlows = await client.api.api.managerControllerGetManagerKycFlows();Development
Setup
# Install dependencies
pnpm install
# Generate client from Swagger
pnpm run generate
# Build the library
pnpm run build
# Run tests
pnpm test
# Run example
pnpm run exampleAvailable Scripts
pnpm run build- Build the librarypnpm run dev- Watch mode for developmentpnpm run test- Run testspnpm run generate- Generate client from Swaggerpnpm run example- Run usage example
API Reference
Client Configuration
interface AlephClientConfig {
baseUrl?: string; // API base URL (default: ALEPH_API_URL or localhost:3000)
timeout?: number; // Request timeout (default: ALEPH_TIMEOUT or 10000ms)
privateKey?: string; // Wallet private key (default: PRIVATE_KEY env var)
privyAppId?: string; // Privy App ID (default: PRIVY_APP_ID env var)
}Authentication Methods
// Method 1: Machine authentication with wallet (recommended)
// This simulates a real user login using wallet private key
const authResult = await client.authenticateWithWallet('manager');
// Method 2: Direct Privy token authentication
await client.connectWithPrivy('your-privy-token', 'manager');
// Check authentication
const isAuth = client.isAuthenticated();
const token = client.getAuthToken();
// Logout
client.logout();Environment Variables
Create a .env file in the project root:
# Copy the example file
cp env.example .env
# Edit the .env file with your configuration
ALEPH_API_URL=http://localhost:3000
PRIVATE_KEY=0x1234567890abcdef1234567890abcdef1234567890abcdef1234567890abcdef
PRIVY_APP_ID=clxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxxOr set environment variables manually:
export PRIVATE_KEY="0x1234567890abcdef..."
export PRIVY_APP_ID="clxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx"Then run the example:
npm run exampleGenerated API Methods
All API methods are automatically generated from your Swagger specification:
// Manager APIs
await client.api.api.managerControllerIdentifyManager();
await client.api.api.managerControllerGetManagerKycFlows();
// Vault APIs
await client.api.api.vaultManagerControllerGetVaults();
await client.api.api.vaultManagerControllerGetVaultById('123');
// Allocator APIs
await client.api.api.allocatorControllerIdentifyAllocator();
await client.api.api.vaultAllocatorControllerOnboard('123');Code Generation
The client automatically generates TypeScript code from your Swagger specification:
# Generate client
npm run generateThis creates:
- TypeScript interfaces for all API types
- Type-safe API methods
- HTTP client with authentication
License
ISC
