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

br-class-validator

v1.0.4

Published

Decorator for CPF

Readme

br-class-validator

npm version License: MIT TypeScript

Uma biblioteca de validação para dados do Brasil desenvolvida para integrar com o class-validator.

Instalação

Você pode instalar o pacote via npm, yarn ou pnpm:

npm install br-class-validator
# ou
yarn add br-class-validator
# ou
pnpm add br-class-validator

Nota: O class-validator é uma peer dependency necessária para o funcionamento desta biblioteca. Versões compatíveis: ^0.13.0, ^0.14.0, ou ^0.15.0.

Como usar

1. Configuração do NestJS

Para que os decoradores funcionem corretamente interceptando as requisições, é obrigatório ativar o ValidationPipe globalmente no arquivo de inicialização do NestJS (main.ts), ou localmente em seus controllers (caso não use o pipe global).

// src/main.ts
import { NestFactory } from "@nestjs/core";
import { ValidationPipe } from "@nestjs/common";
import { AppModule } from "./app.module";

async function bootstrap() {
  const app = await NestFactory.create(AppModule);

  // Habilita a validação global
  app.useGlobalPipes(new ValidationPipe());

  await app.listen(3000);
}
bootstrap();

2. Validação de DTO (Data Transfer Object)

Importe o decorador @IsCPF e aplique-o às propriedades do seu DTO. O decorador valida o CPF verificando tanto o formato (com ou sem pontuação) quanto a integridade matemática dos dígitos verificadores.

// src/users/dto/create-user.dto.ts
import { IsString, IsNotEmpty } from "class-validator";
import { IsCPF } from "br-class-validator";

export class CreateUserDto {
  @IsString()
  @IsNotEmpty()
  name: string;

  @IsCPF()
  cpf: string;
}

3. Integração no Controller

Utilize o DTO tipado no seu controller. O NestJS processará a validação automaticamente antes que o método seja executado.

// src/users/users.controller.ts
import { Controller, Post, Body } from "@nestjs/common";
import { CreateUserDto } from "./dto/create-user.dto";

@Controller("users")
export class UsersController {
  @Post()
  create(@Body() createUserDto: CreateUserDto) {
    return {
      message: "Usuário criado com sucesso",
      data: createUserDto,
    };
  }
}

Customização de Mensagens

O decorador suporta a interface ValidationOptions original do class-validator, permitindo a customização completa da mensagem de erro retornada para o cliente em caso de invalidez.

// src/users/dto/update-user.dto.ts
import { IsCPF } from "br-class-validator";

export class UpdateUserDto {
  @IsCPF({ message: "O documento fornecido não é um CPF válido." })
  cpf: string;
}

Decoradores Disponíveis

  • @IsCPF(): Valida se a string fornecida é um CPF brasileiro válido (avalia os dígitos verificadores e formato com ou sem pontuação).

Próximos Passos

A biblioteca está em constante evolução. Nossa próxima atualização incluirá:

  • @IsCNPJ(): (Em desenvolvimento) Validador de Cadastro Nacional da Pessoa Jurídica (CNPJ), que irá suportar checagem dos dígitos verificadores matemáticos, bem como formatos com ou sem máscara de pontuação.

Contribuição

Contribuições, issues e pedidos de novas funcionalidades são bem-vindos! Sinta-se à vontade para verificar a página de issues.

Autor