JSPM

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

Web SDK for Guru SaaS System - Complete JavaScript/TypeScript SDK for building applications with dynamic schema management

Package Exports

  • @mindmakr/gs-websdk
  • @mindmakr/gs-websdk/dist/index.js

This package does not declare an exports field, so the exports above have been automatically detected and optimized by JSPM instead. If any package subpath is missing, it is recommended to post an issue to the original package (@mindmakr/gs-websdk) to support the "exports" field. If that is not possible, create a JSPM override to customize the exports field for this package.

Readme

Guru SaaS Web SDK

npm version TypeScript Tests

A comprehensive TypeScript SDK for the Guru SaaS platform, providing seamless integration with authentication, schema management, AI services, and notifications.

โœจ Features

  • ๐Ÿ” Complete Authentication - User management, RBAC, permissions
  • ๐Ÿ“‹ Dynamic Schemas - Create and manage flexible data structures
  • ๐Ÿค– AI-Powered - Schema generation and field enhancement
  • ๐Ÿ“ง Notifications - Email templates and delivery tracking
  • ๐Ÿ”’ Type-Safe - Full TypeScript support with comprehensive types
  • โšก Production Ready - 100% test coverage with real backend validation
  • ๐Ÿ› ๏ธ Developer Friendly - Intuitive API with excellent documentation

๐Ÿš€ Quick Start

Installation

npm install @mindmakr/gs-websdk

Basic Usage

import { GuruSaaS } from '@mindmakr/gs-websdk';

// Production: Single base URL (with reverse proxy)
const client = new GuruSaaS({
  baseUrl: 'https://your-api-domain.com',
  debug: true
});

// OR Development: Individual service URLs
const devClient = new GuruSaaS({
  authUrl: 'http://localhost:4000',           // Auth Service
  globalDataUrl: 'http://localhost:5010',     // Global Data Service
  aiServiceUrl: 'http://localhost:4001',      // AI Service
  notificationUrl: 'http://localhost:5020',   // Notification Service
  debug: true
});

// Login
const { user, tokens } = await client.login('user@example.com', 'password');
console.log(`Welcome ${user.name}!`);

// Use services
const users = await client.auth.getUsers({ page: 1, limit: 10 });
const templates = await client.schema.getSchemaTemplates({ is_active: true });
const healthStatus = await client.ai.getHealthStatus();

๐Ÿ—๏ธ Core Services

๐Ÿ” Authentication Service

// User management
const users = await client.auth.getUsers();
const user = await client.auth.createUser({
  email: 'new@example.com',
  password: 'secure123',
  name: 'New User'
});

// Role-based access control
const roles = await client.auth.getRoles();
await client.auth.addRoleToUser(user.id, roleId);

// Permission management
const permissions = await client.auth.getPermissions();
const customRole = await client.auth.createRole({
  name: 'Content Editor',
  description: 'Can read and update content',
  tenant_id: 'tenant123',
  permissions: [1, 2, 3] // Permission IDs for schema_instance:read, schema_instance:update
});

๐Ÿ“‹ Schema Service

// Create schema template
const template = await client.schema.createSchemaTemplate({
  name: 'Customer Profile',
  code: 'customer_profile',
  schema_definition: {
    type: 'object',
    properties: {
      firstName: { type: 'string', title: 'First Name' },
      email: { type: 'string', format: 'email', title: 'Email' }
    }
  }
});

๐Ÿค– AI Service

// Get AI field suggestions
const suggestions = await client.ai.getFieldNameSuggestions({
  context: 'customer management',
  existing_fields: ['firstName', 'lastName']
});

๐Ÿ“ง Notification Service

// Send email (only implemented functionality)
const result = await client.notification.sendEmail({
  to: 'user@example.com',
  subject: 'Welcome!',
  html: '<h1>Welcome to our platform!</h1>',
  text: 'Welcome to our platform!' // Optional plain text
});

console.log(result.message); // "Email sent successfully"

๐Ÿ“š Documentation

For Frontend Developers

For DevOps Teams

Reference Materials

๐Ÿงช Testing

# Run all tests
npm test

# Run integration tests (requires backend services)
npm run test:integration

# Run specific integration test
npm run test:integration -- tests/integration/sdk-core-functionality.test.ts

# Generate coverage report
npm run test:coverage

Integration Tests

The SDK includes comprehensive integration tests that demonstrate real-world usage:

  • SDK Core Functionality Test: Demonstrates authentication, user management, schema templates, roles, and permissions
  • Task Management Workflow Test: Complete end-to-end workflow demonstrating custom role creation, permission assignment, and role-based access control
  • Auth Service Test: Tests authentication flows and user management
  • Schema Service Test: Tests schema template and instance operations

Task Management Workflow Test Features:

  • Creates tenant and tenant admin user
  • Creates custom roles with specific permissions (Task Manager: full CRUD, Developer: read/update only)
  • Demonstrates permission enforcement (developers cannot create or delete schema instances)
  • Tests schema template and instance operations with role-based restrictions
  • Validates complete multi-user workflow with proper tenant isolation

Important Notes:

  • Integration tests require backend services to be running
  • User and tenant deletion is not supported by the backend for data integrity
  • System tenant is a pseudo tenant and doesn't support schema instances
  • Permission system uses generic schema_instance permissions (not template-specific)

Test Results: โœ… SDK Core Functionality: 13/13 passing | โœ… Task Management Workflow: 23/23 passing Documentation: See Integration Tests Guide for detailed results and examples

๐Ÿ“ฆ NPM Publishing & Usage

Installation

# Install from npm
npm install @mindmakr/gs-websdk

# Or with yarn
yarn add @mindmakr/gs-websdk

# Or with pnpm
pnpm add @mindmakr/gs-websdk

CDN Usage

<script src="https://unpkg.com/@mindmakr/gs-websdk@latest/dist/index.js"></script>

Publishing (DevOps)

For build and release instructions, see our DevOps Guide.

Quick Release:

# Patch release (1.0.0 -> 1.0.1)
npm run release:patch

# Minor release (1.0.0 -> 1.1.0)
npm run release:minor

# Major release (1.0.0 -> 2.0.0)
npm run release:major

๐Ÿค Contributing

We welcome contributions! Please see our Developer Guide for details.

๐Ÿ“„ License

MIT License - see LICENSE file for details.

๐Ÿ†˜ Support


Ready to get started? Install the SDK and check out our Developer Guide! ๐Ÿš€