DSH HUB
首页插件商店插件包社区排行榜资源发布指南
插件源码
返回插件目录

ankesu /

dsh-client-url-shim

仅 Topic 仓库

Browser url shim for DeepSeek Harness client bundles: inlines a node:url polyfill (parse/resolve/format/URL) so dependencies like @pixi/utils build and run in the web module table. · DSH 客户端构建的 url 浏览器垫片

★ 0 Stars0 Forks0 IssuesN/A 社区评分0 已确认安装
查看 GitHub项目主页
README来源: main@27b5b126

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

—/ 5

暂无评分

需要先验证清单

Commit 27b5b126ad2d

社区评论

还没有评论,来写第一条。

DSH HUB

社区维护的 DSH 插件索引。不是 GitHub 或 DeepSeek AI 的官方产品。

社区资源API关于