Skip to content

v1.2.0 Release

Choose a tag to compare

@dayyanj dayyanj released this 18 Mar 01:54
· 21 commits to main since this 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.