JSPM

  • ESM via JSPM
  • ES Module Entrypoint
  • Export Map
  • Keywords
  • License
  • Repository URL
  • TypeScript Types
  • README
  • Created
  • Published
  • Downloads 3431
  • Score
    100M100P100Q107167F
  • License MIT

Official JavaScript/TypeScript SDK for the Space Invoices API

Package Exports

  • @spaceinvoices/js-sdk

Readme

@spaceinvoices/js-sdk

Official JavaScript/TypeScript SDK for the Space Invoices API.

Installation

npm install @spaceinvoices/js-sdk
# or
bun add @spaceinvoices/js-sdk

Usage

import SpaceInvoices from '@spaceinvoices/js-sdk';

const sdk = new SpaceInvoices({ accessToken: 'your-api-key' });

// List invoices
const invoices = await sdk.invoices.list();

// Create an invoice
const invoice = await sdk.invoices.create({
  entityId: 'entity_123',
  body: {
    date: '2024-01-15',
    items: [{ name: 'Service', price: 100 }]
  }
});

Tree-Shakeable Import (Smaller Bundles)

import { initSDK, invoices, customers } from '@spaceinvoices/js-sdk';

// Initialize once at app startup
initSDK({ accessToken: 'your-api-key' });

// Use individual modules anywhere
const result = await invoices.list();

Configuration Options

const sdk = new SpaceInvoices({
  accessToken: 'your-api-key',
  // Optional: custom API base URL
  basePath: 'https://eu.spaceinvoices.com',
  // Optional: callback for 401 responses
  onUnauthorized: (response) => {
    console.log('Token expired, refreshing...');
  }
});

Dynamic Token

const sdk = new SpaceInvoices({
  accessToken: async () => {
    // Fetch token from your auth system
    return await getAccessToken();
  }
});

Features

  • Full TypeScript Support - Complete type definitions for all API methods
  • Tree-Shakeable - Import only what you need for smaller bundles
  • ESM & CJS - Works in Node.js, browsers, and modern bundlers
  • Zod Schemas - Optional Zod schemas for form validation

Zod Schemas

For form validation, import Zod schemas:

import { zod } from '@spaceinvoices/js-sdk';

// Validate invoice creation data
const result = zod.invoices.CreateInvoiceBody.safeParse(formData);
if (!result.success) {
  console.log(result.error.issues);
}

// Available schemas follow PascalCase naming:
// - zod.invoices.CreateInvoiceBody
// - zod.customers.CreateCustomerBody
// - zod.items.CreateItemBody
// - etc.

Documentation

Development

# Generate SDK (requires API running at localhost:3000)
bun run generate

# Build for distribution
bun run build

License

MIT