npm package: @libstermynal/transcripts
Description: ⚠️ This is a modified and adapted version of the original `discord-message-transcript` project.
Latest version: 1.4.6

# @libstermynal/transcripts (Modified Version)

⚠️ This is a modified and adapted version of the original `discord-message-transcript` project.

Generate **JSON** or **HTML** transcripts from Discord channels with visual fidelity.

Designed for bots and backend services that need reliable message exports.

This version contains structural and functional modifications tailored for custom usage and extended flexibility.

---

## 🧠 Use cases

This package is ideal for:

- 🎫 Ticket systems
- 🛡️ Moderation logs
- 🧾 Audit trails
- 💾 Channel backups

---

## 📦 Packages

This project provides two packages:

### `@libstermynal/transcripts` (this package)

- Fetches messages directly from Discord
- Requires `discord.js`
- Outputs **HTML** or **JSON** transcripts
- Handles permissions, pagination, and message formatting

👉 **Most users should only install this package.**

---

### `@libstermynal/transcripts-core`

- Renderer-only
- ❌ No `discord.js` dependency
- Converts transcript **JSON → HTML**
- Intended for:
  - Frontend rendering
  - Static sites
  - Post-processing stored transcripts

---

## ✨ Key features

- Discord-like rendering
- Single-file HTML output
- Lightweight JSON format
- Optional image embedding
- Optional CDN upload (customizable)
- Markdown + syntax highlighting
- No tracking or telemetry

---

## 🔐 Permissions

The bot must have access to the channel and the following permissions:

- `ViewChannel`
- `ReadMessageHistory`

Required intents depend on context:

- DMs: `DirectMessages`
- Guild channels: `Guilds`, `GuildMessages`

---

## 🧪 Usage & API

### Installation

```bash
npm install discord-message-transcript
yarn add discord-message-transcript
pnpm add discord-message-transcript
```

### Functions

#### `createTranscript(channel, options)`

```ts
import { createTranscript } from "discord-message-transcript";

const transcript = await createTranscript(channel, {
  returnType: "attachment",
  returnFormat: "HTML"
});

await interaction.reply({ files: [transcript] });
```

#### `renderHTMLFromJSON(jsonString, options)`

```ts
import { renderHTMLFromJSON } from "discord-message-transcript";

const html = await renderHTMLFromJSON(jsonTranscriptString, {
  returnType: "string",
  selfContained: true
});
```

---

## ⚠️ Legal Notice

This project is a modified adaptation of the original `discord-message-transcript` project and is not affiliated with Discord Inc.

You are responsible for ensuring compliance with:

- [Discord Developer Policy](https://support-dev.discord.com/hc/en-us/articles/8563934450327-Discord-Developer-Policy)
- [Discord Developer Terms of Service](https://support-dev.discord.com/hc/en-us/articles/8562894815383-Discord-Developer-Terms-of-Service)
- [Discord Privacy Policy](https://discord.com/privacy)
- Applicable laws and server rules

---

## 📜 License

Licensed under the **Apache License 2.0**.

This project contains modifications of software originally distributed under the same license.  
See the `LICENSE` file for more information.

---

## 🔗 Links

- GitHub: https://github.com/HenriqueMairesse/discord-message-transcript
- Discord: https://discord.gg/4ACFdtRQMy