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

pdl-editor

v0.53.0

Published

Monaco and React editor integration for PDL browser hosts.

Readme

pdl-editor

Reusable Monaco and React editor integration for PDL 0.39.x browser hosts.

The package owns editor wiring only: language registration, TextMate grammar setup, the default light theme, marker conversion, Monaco providers, structural editor-service runtime types, and a thin <PdlEditor /> component. Hosts keep runtime loading, execution buttons, output panels, routing, and application state.

PDL binding and column highlighting is delivered through the shared editor-service semantic-token ABI exposed by pdl-wasm and consumed here by the Monaco provider. Browser hosts should update these packages instead of adding PDL-specific parser or token classification logic.

Published packages expose dist/index.mjs, dist/index.cjs, and dist/index.d.ts, while static TextMate and language-configuration assets stay available through package subpath exports. Use source mode during local cross-repo development:

import { PdlEditor } from "pdl-editor";
import { loadPdlRuntime } from "pdl-wasm";
import EditorWorker from "monaco-editor/esm/vs/editor/editor.worker?worker";
import onigasmWasmUrl from "onigasm/lib/onigasm.wasm?url";

const runtime = await loadPdlRuntime({ wasmUrl: "/wasm/pdl.wasm" });

const setupOptions = {
  createEditorWorker: () => new EditorWorker(),
  onigasmWasmUrl,
};

The editor package keeps Vite-specific ?worker and ?url imports out of its published dist/ entrypoints. Vite hosts should import those assets in the app and pass them through setupOptions; other bundlers can provide equivalent worker factories and asset URLs.

Use packed mode before publishing by running npm pack --dry-run in packages/wasm and editors/monaco, then inspecting the file lists for dist/, declarations, README, package metadata, and editor assets.