Repository navigation
v1.2.0 Release
@spwig/sdk v1.2.0
New Modules
Customer Wallet (spwig.wallet)
getBalance() — Get wallet balance (auto-creates wallet if none exists)
listTransactions(params?) — List transaction history with filtering by type, source, status
Admin API (spwig.admin)
Full staff/merchant management API with 9 sub-modules:
admin.auth — Staff login, 2FA verification, token refresh, logout, password reset, SSO
admin.analytics — Dashboard KPIs, quick stats, sales comparisons, top products, daily chart data
admin.orders — Order listing with pagination, status updates, tracking, cancellations, refunds, notes
admin.products — Product CRUD, bulk operations, stock adjustments, image management, variants, attributes
admin.categories — Category CRUD, bulk creation, image/banner uploads
admin.brands — Brand CRUD, bulk creation
admin.messages — Unified inbox (contact forms + order notes), read status, replies
admin.settings — App config, device registration, push notifications, session management
admin.wallets — Customer wallet management, manual credit/debit, freeze/unfreeze, transaction history
New Export Path
Tree-shakeable admin import:
import { AdminModule } from '@spwig/sdk/admin';
Usage
const spwig = new SpwigClient({ baseUrl: 'https://store.example.com' });
// Customer wallet
const balance = await spwig.wallet.getBalance();
const txns = await spwig.wallet.listTransactions({ limit: 10 });
// Staff login (with 2FA support)
const result = await spwig.admin.auth.login({
email: 'staff@example.com',
password: 'secret',
device_id: 'device-123',
device_name: 'iPhone 15 Pro',
});
if ('tokens' in result) {
spwig.setToken(result.tokens.access_token);
} else {
// 2FA required — use result.pending_token with admin.auth.verify2fa()
}
// Dashboard
const stats = await spwig.admin.analytics.getQuickStats();
// Orders with pagination
const { orders, pagination } = await spwig.admin.orders.list({
filter_type: 'open',
page: 1,
page_size: 20,
});
// Product management
const { products } = await spwig.admin.products.products.list({ status: 'published' });
await spwig.admin.products.images.upload(productId, formData);
await spwig.admin.products.variants.create(productId, variantData);
Breaking Changes
None — this is a purely additive release. All existing v1.1.0 APIs are unchanged.