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

discord-v2-transcript

v1.0.0

Published

Discord Ticket Transcript renderer with Components V2 support (container/section/text/divider/media/buttons).

Readme

📄 discord-v2-transcript

A solução definitiva para gerar transcripts HTML modernos do Discord, com suporte exclusivo aos novos Components V2.

NPM Version License

Muitas bibliotecas de transcript ficaram paradas no tempo. O discord-v2-transcript foi criado para preencher essa lacuna, renderizando fielmente elementos como Containers, Sections e Text Displays que outras libs simplesmente ignoram.


🔥 Por que usar esta biblioteca?

Diferente de outros pacotes, nós focamos na fidelidade visual e no suporte aos componentes mais recentes do Discord:

  • Components V2 Full Support: Renderiza perfeitamente os Types 17 (Container), 9 (Section), 10 (Text), 14 (Divider), 11 (Media), além de botões e action rows.
  • Alta Performance: Gerado em puro HTML/CSS, sem dependências pesadas no cliente.
  • Totalmente Customizável: Altere cores, fontes, títulos e até a lógica de menções.
  • Pronto para Produção: Ideal para sistemas de tickets, logs de auditoria e arquivamento de canais.

🚀 Começando

Instalação

npm install discord-v2-transcript

Requisitos: Node.js 18 ou superior.


📖 Guia de Uso Detalhado

1. Usando com Discord.js (O jeito mais fácil)

O adapter integrado cuida de todo o trabalho sujo: busca as mensagens, processa anexos e gera o arquivo.

import { createTranscriptFromChannel } from 'discord-v2-transcript/discordjs';

// Dentro de um comando ou evento
const result = await createTranscriptFromChannel(interaction.channel, interaction.user, {
  limit: 100,           // Quantidade de mensagens a buscar
  saveJson: true,       // Salva um arquivo .json extra com os dados brutos
  outDir: './logs',     // Onde os arquivos serão salvos
  filterOnlyThisBot: false // Se deve filtrar apenas mensagens deste bot (default: true)
});

console.log(`HTML gerado em: ${result.htmlPath}`);

2. Uso Manual (Para maior controle)

Se você já tem os dados das mensagens ou quer usar fora do Discord.js:

import { renderTranscriptHTML } from 'discord-v2-transcript';

const payload = {
  serverId: '123456789',
  channelName: 'suporte-vip',
  userAvatar: 'https://cdn.discordapp.com/...',
  messageCount: 1,
  messages: [
    {
      id: '001',
      content: 'Olá, como posso ajudar?',
      author: { 
        username: 'Pit', 
        avatar: '...', 
        color: '#ff0000', 
        bot: true 
      },
      timestamp: new Date().toISOString(),
      embeds: [],
      attachments: [],
      components: [] // Aqui você pode passar os componentes V2 brutos do Discord
    }
  ]
};

const html = renderTranscriptHTML(payload, {
  title: 'Log de Atendimento',
  maxWidth: 800
});

🛠️ Customização Avançada

🎨 Temas e Estilização (CSS)

Você pode personalizar o visual usando variáveis CSS ou injetando um estilo completo.

| Variável | Descrição | Valor Padrão | | :--- | :--- | :--- | | --bg | Fundo principal da página | #313338 | | --card | Fundo de cada mensagem | #2b2d31 | | --text | Cor do texto principal | #dbdee1 | | --button-bg | Cor de fundo dos botões | #5865f2 |

Exemplo de Tema Claro:

const lightTheme = `
  :root {
    --bg: #ffffff;
    --text: #2e3338;
    --card: #f2f3f5;
    --border: rgba(0,0,0,0.1);
  }
`;

const html = renderTranscriptHTML(payload, { themeCss: lightTheme });

⚙️ Opções de Renderização

| Opção | Tipo | Descrição | | :--- | :--- | :--- | | title | string | O título que aparece no topo do documento. | | maxWidth | number | Largura máxima da página (em pixels). | | panelMaxWidth | number | Largura máxima dos containers de componentes V2. | | resolveMention | function | Função para converter IDs de menção em texto legível. |


🏗️ Publicação e Distribuição

Além do NPM, você pode encontrar ou publicar esta lib em:

  • JSR: Para projetos Deno/TypeScript modernos.
  • GitHub: Para contribuir com o código fonte.
  • Discord: Em comunidades de desenvolvedores como a do discord.js.

🤝 Suporte e Contato

Desenvolvido com ❤️ por desenvolvedores para desenvolvedores.

Se você encontrar algum bug, tiver uma sugestão ou precisar de ajuda para implementar em seu bot, não hesite em entrar em contato:

💬 Discord: @invejos0s.


📄 Licença

Este projeto está sob a licença MIT. Veja o arquivo [LICENSE](file:///C:/Users/Pit First/Desktop/Nova pasta/discord-v2-transcript/LICENSE) para mais detalhes.