Skip to content

HbarSuite/users-types

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

1 Commit
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

@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: 2.0.0
  • @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

Property Type Required Description
email string Yes User's email address (unique, validated)
username string Yes Unique username for the user account
created_at number Yes Unix timestamp of user account creation
updated_at number Yes Unix timestamp of last user account update
confirmed boolean Yes Indicates if user has confirmed their account
type IAuth.ICredentials.IUser.IType Yes Type of user account
role 'user' | 'admin' | 'owner' Yes User's role in the system
tags Array<Auth.Credentials.User.Tags> No Tags for categorizing users
banned boolean No Indicates if user is banned
twoFactorAuth Auth.TwoFactor.Auth Yes Two-factor authentication configuration

Example

const user: User.Safe = {
  email: "[email protected]",
  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.


Built with ❤️ by the HbarSuite Team
Copyright © 2024 HbarSuite. All rights reserved.

About

Public repository for users-types

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published