@prudra/core
v0.2.0
Published
Prudra core SDK — initialise, HTTP client, types
Downloads
439
Readme
@prudra/core
Core SDK for Prudra — provides initialisation, a typed HTTP client, all TypeScript types, error classes, and quota constants shared across every @prudra/* package.
Installation
npm install @prudra/coreInitialisation
Call initialise() once at your application startup, before using any other Prudra SDK functions:
import { initialise } from '@prudra/core';
initialise({
apiKey: process.env.PRUDRA_API_KEY!,
// Optional overrides:
// timeout: 30000,
});Using PrudraClient directly
For advanced use cases, you can use PrudraClient directly to make authenticated requests:
import { getConfig, PrudraClient } from '@prudra/core';
const client = new PrudraClient(getConfig());
// GET request
const data = await client.get<MyResponseType>('/my-endpoint');
// POST request
const result = await client.post<MyResponseType>('/my-endpoint', {
field: 'value',
});
// With vault access token (overrides API key)
const vaultData = await client.get<VaultManifest>('/vaults/abc123', {
accessToken: 'eyJhbGci...',
});Error handling
All errors thrown by the SDK are subclasses of PrudraError. Use instanceof to handle specific error types:
import {
PrudraAuthError,
PrudraNotFoundError,
PrudraValidationError,
PrudraPaymentRequiredError,
PrudraConflictError,
PrudraGoneError,
PrudraRateLimitError,
PrudraNetworkError,
} from '@prudra/core';
try {
const wallet = await getWallet();
} catch (error) {
if (error instanceof PrudraAuthError) {
// 401 — invalid or missing API key
} else if (error instanceof PrudraNotFoundError) {
// 404 — wallet not provisioned yet
} else if (error instanceof PrudraRateLimitError) {
// 429 — retry after error.retryAfter seconds
console.log(`Retry after ${error.retryAfter}s`);
} else if (error instanceof PrudraNetworkError) {
// Network failure — DNS, connection refused, timeout
}
}Types
All types are exported from @prudra/core. Import them directly:
import type {
// Wallet
Wallet, WalletBalance, WalletCoin, PaymentRecord, WithdrawalResult,
// Vault
Vault, VaultManifest, VaultDocument, VaultFile, VaultEvent, VaultStatus,
VaultQuotaStatus,
// Payment
PaymentReceipt, VerifyReceiptResult, PaymentLog, PaymentLogSummary,
// Webhook
Webhook, WebhookDelivery,
// Organisation & Billing
Account, Organisation, OrganisationMember, Subscription,
OrganisationWithSubscription, UsageMetrics,
// API
PaginatedResponse, Problem,
} from '@prudra/core';Documentation
Full documentation: docs.prudra.dev
