npm package discovery and stats viewer.

Discover Tips

  • General search

    [free text search, go nuts!]

  • Package details

    pkg:[package-name]

  • User packages

    @[username]

Sponsor

Optimize Toolset

I’ve always been into building performant and accessible sites, but lately I’ve been taking it extremely seriously. So much so that I’ve been building a tool to help me optimize and monitor the sites that I build to make sure that I’m making an attempt to offer the best experience to those who visit them. If you’re into performant, accessible and SEO friendly sites, you might like it too! You can check it out at Optimize Toolset.

About

Hi, 👋, I’m Ryan Hefner  and I built this site for me, and you! The goal of this site was to provide an easy way for me to check the stats on my npm packages, both for prioritizing issues and updates, and to give me a little kick in the pants to keep up on stuff.

As I was building it, I realized that I was actually using the tool to build the tool, and figured I might as well put this out there and hopefully others will find it to be a fast and useful way to search and browse npm packages as I have.

If you’re interested in other things I’m working on, follow me on Twitter or check out the open source projects I’ve been publishing on GitHub.

I am also working on a Twitter bot for this site to tweet the most popular, newest, random packages from npm. Please follow that account now and it will start sending out packages soon–ish.

Open Software & Tools

This site wouldn’t be possible without the immense generosity and tireless efforts from the people who make contributions to the world and share their work via open source initiatives. Thank you 🙏

© 2026 – Pkg Stats / Ryan Hefner

@ansospace/types

v0.5.0

Published

Shared TypeScript type definitions for the AnsoSpace platform

Readme

@ansospace/types

This package provides shared TypeScript type definitions and Zod validation schemas for the AnsoSpace platform. It is intended for internal use across the monorepo to ensure consistent and reusable type safety for core entities, authentication, notifications, and more.

Overview

  • Defines interfaces and types for key domain models including authentication, users, roles, permissions, notifications, OTP, tokens, and socket events.
  • Provides Zod schemas for validation with branded types for enhanced type safety.
  • Enables type-safe imports throughout the codebase.
  • Compiled to JavaScript and declaration files for consumption by other packages.
  • Restructured for better readability, consistency, and maintainability with renamed types, grouped related schemas, and optimized code.

Features

  • Modular Structure: Organized into logical modules (auth, user, notification, etc.) for better maintainability.
  • Branded Types: Uses Zod's .brand() to create distinct types (e.g., Username, Password) instead of plain strings.
  • Validation Schemas: Comprehensive Zod schemas for data validation and parsing, all consistently named with 'Schema' suffix.
  • Consistent Naming: PascalCase for types, camelCase for schemas, descriptive names.
  • Grouped Related Types: Token payloads moved to token.ts, auth-related in auth.ts.
  • Refactored Repeated Structures: Branded schemas used consistently, removed duplicates.
  • No Heavy Dependencies: Removed mongoose and socket.io dependencies, using regex for ObjectId validation and keeping only interfaces for sockets.

Installation

Since this package is private and used internally, it is typically installed as part of the monorepo workspace.

Usage

Import the types and schemas as needed:

// Import specific types
import type { User, RegisterRequest } from "@ansospace/types";
import { registerRequestSchema, usernameSchema, validateProfileSchema } from "@ansospace/types";

// Use branded types by parsing through schemas
const user: User = { ... };
const validUser = registerRequestSchema.parse(userData); // For simple schemas

// For complex schemas with custom validation, use validate functions
const validProfile = validateProfileSchema(profileData);

// Create branded types
const uname: Username = usernameSchema.parse("validusername");

Available Modules

  • auth: Authentication-related types and schemas (Username, Password, Email, LoginRequest, Session, etc.)
  • user: User management (User, Role, Permission, Profile, etc.)
  • notification: Notification types and email validation schemas
  • otp: OTP-related schemas and events
  • token: Token schemas, payloads, and types
  • socket: Socket.io event interfaces (without dependencies)
  • common: Shared utilities like ObjectId, DeviceInfo, Pagination

Development

  • Source files are located in the src/ directory, organized by module.
  • Build the package using:
pnpm run build
  • The compiled output is in the dist/ directory.

Best Practices

  • Always use schema parsing (.parse()) to create branded types instead of direct assignment.
  • Keep this package focused on types and validation schemas only.
  • Avoid adding runtime code to maintain lightweight builds.
  • Update the version and changesets carefully to reflect breaking changes.
  • Use semantic versioning to communicate changes to consumers.
  • Follow consistent naming: Schemas with 'Schema' suffix, types PascalCase, descriptive names.

Contributing

Contributions should follow the monorepo guidelines and ensure type safety and consistency.

License

This package is private and intended for internal use only.