dsh-tool-encoding¶
⭐ 3 · ✅ active · plugin
| Type | plugin | Category | UI & experience |
| Stars | ⭐ 3 | Status | ✅ active |
| Author | omdsh-dev | Updated | — |
| Subcategory | 💡 Generative UI | Capabilities | coding, ui |
One-liner¶
DSH 编码/哈希工具插件:base64/base64url/url/hex 编解码、md5/sha1/sha256/sha512 哈希、UUID 生成,零依赖
About¶
English DSH 编码/哈希工具插件 —— UTF-8 文本的 base64/base64url/url/hex 编解码 + 哈希 + UUID。零依赖、零进程、纯函数。
✨ Key Features¶
- UTF-8 完整性:解码用 fatal 模式(
TextDecoder('utf-8', { fatal: true })),非法字节抛encoding: invalid UTF-8 output;合法 U+FFFD/控制字符不误伤(00NUL、0a换行、efbfbdU+FFFD 均合 - base64 严格校验:无空白、
=仅末尾且 ≤2、长度必须为 4 的倍数、RFC 4648 canonical unused bits(Zh==等非 canonical 编码拒绝,防多串映射同文本) - 孤立 surrogate 统一拒绝:所有文本输入过
String.prototype.isWellFormed(),避免静默替换与 URIError 行为不一致 - 字节上限:输入 1 MB / 输出 4 MB(各 1,000,000 / 4,000,000 字节,
Buffer.byteLength;输出上限为分配前预估 + 最终检查的保险丝) - 哈希算法白名单:
Object.hasOwn查表(md5/sha1/sha256/sha512) - 错误统一
encoding:前缀,不透传底层URIError/TypeError
📦 Install¶
# 交互式(web)profile
dsh plugin --profile web add github:omdsh-dev/dsh-tool-encoding
# 一次性任务(headless)profile —— dsh run 默认使用 headless
dsh plugin --profile headless add github:omdsh-dev/dsh-tool-encoding
🚀 Quick Start¶
npm pack # 生成 dsh-tool-encoding-*.tgz
dsh plugin --profile web add ./dsh-tool-encoding-*.tgz
dsh plugin --profile headless add ./dsh-tool-encoding-*.tgz
📚 Learn more¶
一次性任务(headless)profile —— dsh run 默认使用 headless
dsh plugin --profile headless add github:omdsh-dev/dsh-tool-encoding 包内 dsh.bundle.patch(指向 cordis.patch.yml)会在安装后自动把插件加入 profile 的 layer stack;插件的 cordis.patch.yml 以 - insert: 插入 tool-encoding 条目。 > ⚠️ web 与 headless 是不同 profile:web 安装不会自动覆盖 headless;dsh run 默认使用 headless profile。
npm pack tarball 安装
npm pack # 生成 dsh-tool-encoding-.tgz dsh plugin --profile web add ./dsh-tool-encoding-.tgz dsh plugin --profile headless add ./dsh-tool-encoding-*.tgz
手动安装与旧版本兼容
仅适用于不支持 Profile Bundle 的旧快照或插件开发调试环境: 1. 放入 monorepo:cp -r encoding ~/.dsh/source/master/packages/tools/encoding(开发调试) 2. apps/cli/package.json 加 "@deepseek-ai/dsh-tool-encoding": "workspace:^";tsconfig.host.json references 加 { "path": "./packages/tools/encoding" } 3. pnpm install && pnpm run build 4. 在 profile 用户层 patch 插入插件(~/.dsh/profiles/<name>/cordis.patch.yml): - id: tool-encod