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

dsh-client-url-shim

v0.1.0

Published

Browser url shim for DeepSeek Harness client bundles: a tsdown plugin that inlines a node:url polyfill so dependencies like @pixi/utils build and run in the web module table.

Readme

dsh-client-url-shim

Browser url shim for DeepSeek Harness client bundles — a tsdown plugin that inlines a node:url polyfill so dependencies like @pixi/utils build and run inside the DSH web module table.

DSH 客户端 bundle 的 url 浏览器垫片——把依赖里 node:url 的导入替换成浏览器安全实现, 解决 require("url") missed the module table 崩溃。

Problem / 问题

DSH client bundles are CJS artifacts executed by the harness's own module loader. The loader only answers requires from a frozen module table (platform seed modules). A dependency that imports Node builtins — e.g. @pixi/utils does import { parse } from 'url' — compiles to require("url"), which the table cannot answer:

client-modules: require("url") missed the module table — not a platform seed
word, not a shell-own module, and no registered factory

DSH 客户端 bundle 由 DSH 自己的模块加载器执行,只认冻结的模块表。依赖里 import node:url 会编译成 require("url"),模块表没有 url → 整个插件加载失败。

Solution / 方案

A small tsdown/Rolldown plugin intercepts url / node:url imports at build time and replaces them with a virtual browser-safe module:

  • parse — Node-style URL decomposition (falls back to new URL)
  • resolve — Node-style path resolution (absolute → URL, relative → join with .. handling)
  • format — best-effort href/pathname serialization
  • fileURLToPath / pathToFileURL — trivial browser equivalents
  • URL / URLSearchParams — the real browser globals

Usage / 用法

// tsdown.config.ts
import { defineConfig } from 'tsdown'
import { urlShim } from 'dsh-client-url-shim'

export default defineConfig({
  entry: { client: 'src/client/index.ts' },
  format: 'cjs',
  platform: 'browser',
  plugins: [urlShim()],
})

Or add the plugin object directly to an existing tsdown plugins array (see example/tsdown.config.ts for a full DSH plugin client build).

Verified with / 实测验证

  • DSH (DeepSeek Harness) web profile, tsdown 0.22.2 / rolldown 1.1.5
  • @pixi/utils 6.5.10 (import { parse } from 'url') — the exact dependency that blew up before the shim
  • pixi.js 6.5.10 + pixi-live2d-display 0.4.0 fully inlined client bundle, ~1.5 MB, boots and renders in the harness

How the shim was born / 来历

Built in an isolated test profile after a live1d table crash — the first of nine mines cleared while integrating Live2D into DSH. Full war story in the companion blog post (TBD).

License

MIT