2.0.11 • Published 5 months ago

@hsuite/users-types v2.0.11

Weekly downloads
-
License
-
Repository
github
Last release
5 months ago

@hsuite/users-types

A comprehensive TypeScript library providing type definitions and interfaces for user management in the HSuite ecosystem.

Overview

The @hsuite/users-types library provides a robust set of TypeScript types, interfaces, and models for handling user-related data structures. It is designed to ensure type safety and consistency across applications using the HSuite platform.

Installation

npm install @hsuite/users-types

Dependencies

Peer Dependencies

  • @nestjs/common: ^10.4.2
  • @nestjs/core: ^10.4.2

Dependencies

  • @hsuite/nestjs-swagger: 1.0.3
  • @hsuite/auth-types: 2.0.0

Development Dependencies

  • @compodoc/compodoc: ^1.1.23

Features

  • Type-safe user entity definitions
  • Mongoose schema decorators for database integration
  • Swagger/OpenAPI documentation support
  • Integration with HSuite authentication system
  • Two-factor authentication type support

Usage

Importing Types

import { User, IUser } from '@hsuite/users-types';

User Model

The library provides a User.Safe class that implements the IAuth.ICredentials.IUser.IEntity interface. This class represents a safe version of the User entity with public properties:

Properties

PropertyTypeRequiredDescription
emailstringYesUser's email address (unique, validated)
usernamestringYesUnique username for the user account
created_atnumberYesUnix timestamp of user account creation
updated_atnumberYesUnix timestamp of last user account update
confirmedbooleanYesIndicates if user has confirmed their account
typeIAuth.ICredentials.IUser.ITypeYesType of user account
role'user' | 'admin' | 'owner'YesUser's role in the system
tagsArray<Auth.Credentials.User.Tags>NoTags for categorizing users
bannedbooleanNoIndicates if user is banned
twoFactorAuthAuth.TwoFactor.AuthYesTwo-factor authentication configuration

Example

const user: User.Safe = {
  email: "user@example.com",
  username: "johndoe",
  created_at: 1634567890,
  updated_at: 1634567890,
  confirmed: true,
  type: "standard",
  role: "user",
  tags: ["premium", "beta"],
  banned: false,
  twoFactorAuth: {
    // Two-factor authentication configuration
  }
};

Documentation

Generate detailed documentation using:

npm run compodoc

View documentation coverage:

npm run compodoc:coverage

Type Definitions

The library is organized into two main namespaces:

IUser Namespace

Contains interfaces and type definitions for user-related data structures.

User Namespace

Contains concrete implementations and models, including the User.Safe class for public user data representation.

Database Integration

The library uses @nestjs/mongoose decorators for MongoDB schema definition:

  • @Prop() decorators for property definitions
  • Built-in validation (e.g., email validation)
  • Support for unique constraints
  • Type safety with Mongoose schemas

API Documentation

The library includes Swagger/OpenAPI decorators (@ApiProperty) for automatic API documentation generation, making it compatible with NestJS Swagger integration.

Version

Current Version: 2.0.0

License

This package is part of the HbarSuite ecosystem and is covered by its license terms.


2.0.11

5 months ago

2.0.10

5 months ago

2.0.9

6 months ago

2.0.8

9 months ago

2.0.7

9 months ago