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

@casoon/renderreport

v0.1.0-alpha.1

Published

Data-driven report generation with Typst as embedded render engine

Readme

@casoon/renderreport

Data-driven report generation with Typst as embedded render engine.

Build professional PDF reports without learning Typst. Use components, themes, and template packs to create reports from structured data.

Installation

npm install @casoon/renderreport

The correct binary for your platform is installed automatically.

Usage

Node.js API

const { render, renderSync } = require("@casoon/renderreport");

// Async
const pdf = await render({
  template_id: "default",
  title: "My Report",
  subtitle: "Generated with RenderReport",
  metadata: {
    author: "Casoon",
    date: "2025-01-15"
  },
  components: [
    {
      type: "score-card",
      data: { title: "Performance", score: 92 }
    },
    {
      type: "callout",
      data: { variant: "info", content: "Everything looks great!" }
    }
  ]
});

require("fs").writeFileSync("report.pdf", pdf);

// Sync
const pdfSync = renderSync(reportDefinition);

// Write directly to file
await render(reportDefinition, { output: "report.pdf" });

CLI

# From JSON file
npx renderreport render input.json -o report.pdf

# From stdin
cat input.json | npx renderreport render -o report.pdf

JSON Schema

The report definition follows the RenderRequest format:

{
  "template_id": "default",
  "title": "Report Title",
  "subtitle": "Optional Subtitle",
  "metadata": {
    "author": "Author Name",
    "date": "2025-01-15"
  },
  "components": [
    {
      "type": "component-id",
      "data": { }
    }
  ]
}

Available Components

| Component | ID | Description | |---|---|---| | ScoreCard | score-card | Metric with score visualization | | Finding | finding | Audit finding with severity | | AuditTable | audit-table | Tabular data | | Section | section | Document section heading | | Callout | callout | Highlighted info box | | SummaryBox | summary-box | Executive summary widget | | MetricCard | metric-card | Key metric display | | HeroSummary | hero-summary | Hero section with metrics | | Chart | chart | Bar, Line, Pie, Area, Scatter, Radar | | Sparkline | sparkline | Inline sparkline chart | | Gauge | gauge | Gauge/thermometer visualization | | Barcode | barcode | Code128, QR, EAN-13, and more | | List | list | Ordered/unordered list | | ProgressBar | progress-bar | Progress visualization | | KeyValueList | key-value-list | Key-value pairs | | CoverPage | cover-page | Report cover page | | BenchmarkTable | benchmark-table | Benchmark comparison | | Crosstab | crosstab | Cross-tabulation | | TextBlock | textblock | Multi-line text block | | Label | label | Styled label |

Supported Platforms

| Platform | Package | |---|---| | Linux x64 | @casoon/renderreport-cli-linux-x64 | | Linux ARM64 | @casoon/renderreport-cli-linux-arm64 | | macOS x64 (Intel) | @casoon/renderreport-cli-darwin-x64 | | macOS ARM64 (Apple Silicon) | @casoon/renderreport-cli-darwin-arm64 | | Windows x64 | @casoon/renderreport-cli-win32-x64 |

Rust Library

This is the Node.js wrapper. For the Rust library, see crates.io/crates/renderreport.

License

MIT OR Apache-2.0