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

@diegofemello/bitbot-types

v1.3.30

Published

Interfaces e tipos compartilhados do Bit Bot

Readme

n# BitBot Types

Interfaces e tipos compartilhados do Bit Bot - Uma biblioteca TypeScript profissional para desenvolvimento de bots Discord.

📦 Instalação

Via NPM (Recomendado)

npm install @diegofemello/bitbot-types

Via Yarn

yarn add @diegofemello/bitbot-types

Via GitHub (Desenvolvimento)

npm install github:diegofemello/bitbot-types#master

🚀 Uso

// Importando interfaces e enums específicos
import { IUser, Bot, Card, Pokemon, Auction, UserRole, CommandIndex } from '@diegofemello/bitbot-types';

// Importando funções utilitárias
import { logUserInfo, hasUserRole, formatBitCoins, logCommandExecution, logCardInfo } from '@diegofemello/bitbot-types';

// Importando tudo
import * as BitBotTypes from '@diegofemello/bitbot-types';

// Exemplos de uso das interfaces
const user: BitBotTypes.IUser = {
  // ... propriedades do usuário
  roles: [UserRole.User, UserRole.Vip]
};

// Exemplos de uso das funções utilitárias
logUserInfo(user, '[DEBUG]');
hasUserRole(user, UserRole.Admin);
formatBitCoins(12500); // "12.500 BitCoins"
logCommandExecution(CommandIndex.abracar, user.lid, true);

🔄 Geração Automática de Exports

Esta biblioteca utiliza geração automática de exports, ou seja, você NÃO precisa editar manualmente os arquivos index.ts quando adicionar novas interfaces, enums ou funções utilitárias!

Como Funciona

  1. Detecção Automática: Scripts escaneiam automaticamente todos os arquivos .ts nos diretórios
  2. Geração de Exports: Criam automaticamente export * from "./seu-arquivo"
  3. Integração com Build: Roda automaticamente antes de cada build
  4. Watch Mode: Para desenvolvimento, monitora mudanças em tempo real

Scripts Disponíveis

# Regenera exports manualmente
npm run generate-exports

# Inicia watch mode (regenera automaticamente quando arquivos mudam)
npm run dev

# Versão alternativa com padrões glob
npm run generate-exports:glob

Para Desenvolvedores da Biblioteca

Quando você adicionar um novo arquivo como nova-interface.interface.ts, simplesmente:

  1. Crie o arquivo normalmente na pasta apropriada
  2. Execute npm run generate-exports (ou use npm run dev para auto-regeneração)
  3. Pronto! O arquivo será automaticamente incluído nos exports

Não edite os arquivos index.ts - eles são auto-gerados e serão sobrescritos!

📋 Interfaces Disponíveis

| Interface | Descrição | |-----------|-----------| | User | Interface do usuário do bot | | Bot | Interface de configuração do bot | | Card | Interface de cartas colecionáveis | | Pokemon | Interface de Pokémon | | Auction | Interface de leilões | | Tournament | Interface de torneios | | RPGPlayer | Interface do jogador RPG | | Raid | Interface de raids | | Group | Interface de grupos | | E muitas outras... | Veja todos os tipos no código fonte |

🎮 Enums Disponíveis

| Enum | Descrição | Valores | |------|-----------|---------| | CommandIndex | Índice de comandos do bot | abracar, addgrupo, atividade, etc. | | UserRole | Níveis de acesso do usuário | User, Admin, GameMaster, SuperAdmin, Moderator, Vip |

🛠️ Funções Utilitárias

👤 User Utils

  • logUserInfo(user, prefix?) - Faz log das informações do usuário
  • hasUserRole(user, role) - Verifica se usuário tem uma role específica
  • formatBitCoins(amount) - Formata valor de BitCoins com separadores

⚡ Command Utils

  • logCommandExecution(command, lid, success?) - Loga execução de comandos
  • isGameCommand(command) - Verifica se é um comando de jogo
  • formatExecutionTime(startTime, endTime?) - Formata tempo de execução

🃏 Card Utils

  • logCardInfo(card, context?) - Faz log das informações da carta
  • isRareCard(card) - Verifica se a carta é rara (raridade >= 8)
  • calculateCardValue(card, baseValue?) - Calcula valor da carta baseado na raridade
  • getCardsStats(cards) - Gera estatísticas de múltiplas cartas

✅ Testando a Instalação

Para testar se a instalação funcionou corretamente, você pode criar um arquivo de teste:

// test.ts
import { 
  IUser, 
  CommandIndex, 
  UserRole, 
  logUserInfo, 
  hasUserRole, 
  formatBitCoins,
  logCommandExecution 
} from '@diegofemello/bitbot-types';

// Teste de interface e funções utilitárias
const user: IUser = {
  _id: '123',
  lid: 'user123',
  nome: 'João',
  bitbcoins: 12500,
  slots: 5,
  frags: 10,
  xp: 500,
  createdAt: new Date(),
  updatedAt: new Date(),
  pontuacao: 100,
  discord_id: 'discord123',
  roles: [UserRole.User, UserRole.Vip]
};

// Testando as funções utilitárias
logUserInfo(user, '[TEST]');
hasUserRole(user, UserRole.Admin);
console.log(formatBitCoins(user.bitbcoins));
logCommandExecution(CommandIndex.abracar, user.lid, true);

console.log('✅ Tipos e funções importados com sucesso!');

🛠️ Desenvolvimento

Para contribuir com este projeto:

  1. Clone o repositório

    git clone https://github.com/diegofemello/bitbot-types.git
    cd bitbot-types
  2. Instale as dependências

    npm install
  3. Faça suas alterações nos arquivos TypeScript

    • Edite os arquivos em src/interfaces/ ou src/enum/
  4. Compile e teste localmente

    npm run build
    npm test
  5. Faça commit e push das mudanças

    git add .
    git commit -m "Descrição das mudanças"
    git push origin master
  6. 📦 Publicação Automática

    • O GitHub Actions irá automaticamente:
      • Fazer build do projeto
      • Executar testes
      • Publicar no NPM (se a versão não existir)
      • Criar uma release no GitHub

Scripts Disponíveis

  • npm run build - Compila o TypeScript
  • npm run clean - Remove o diretório dist
  • npm test - Executa os testes
  • npm run prepare - Build automático antes de install

🔄 CI/CD com GitHub Actions

Este projeto utiliza GitHub Actions para:

  • Build automático a cada push/PR
  • Testes em múltiplas versões do Node.js (18.x, 20.x)
  • Publicação automática no NPM quando há push na master
  • Criação de releases automáticas no GitHub
  • Verificação de versão - só publica se a versão não existir

📝 Versionamento

Para publicar uma nova versão:

  1. Atualize a versão no package.json manualmente

    {
      "version": "1.0.1"  // ou 1.1.0, 2.0.0, etc.
    }
  2. Faça commit e push

    git add package.json
    git commit -m "Bump version to 1.0.1"
    git push origin master
  3. A publicação será automática via GitHub Actions

📄 Licença

MIT - Veja o arquivo LICENSE para mais detalhes.

🤝 Contribuição

Contribuições são bem-vindas! Por favor, abra uma issue ou faça um pull request.

📞 Suporte

Se você encontrar algum problema ou tiver dúvidas, por favor abra uma issue no GitHub.