Skip to content

feat: 脚本过滤/操作支持(QuickJS WASM)+ warn 修复#10

Open
490694561 wants to merge 5 commits into
Yu9191:mainfrom
490694561:main
Open

feat: 脚本过滤/操作支持(QuickJS WASM)+ warn 修复#10
490694561 wants to merge 5 commits into
Yu9191:mainfrom
490694561:main

Conversation

@490694561

Copy link
Copy Markdown

变更内容

新增功能

  • 脚本过滤 / 操作支持:通过 QuickJS WASM 沙箱在 Workers 运行时执行用户脚本,支持 Script Filter 和 Script Operator(含快捷脚本与函数式脚本),弥补 Workers 禁止 eval / new Function 的限制
  • 脚本引擎可切换wrangler.toml 中通过 [vars] SCRIPT_ENGINE 控制,设为 "quickjs" 启用,未设置则禁用并返回引导提示

Bug 修复

  • 适配上游新增依赖:添加 yaml 依赖、esbuild node stubs 补充 dgram
  • OpenAPI 适配层补全:修复 Workers 版 OpenAPI 缺失 warn 方法导致解析订阅时 I.warn is not a function 报错

文件变更

  • src/vendor/quickjs-executor.js:QuickJS WASM 沙箱引擎核心
  • src/vendor/quickjs.wasm:QuickJS WASM 二进制
  • esbuild.js:WASM 加载器、eval 重写优化
  • src/restful/miscs.js:worker-status 报告脚本引擎能力
  • src/vendor/open-api.js:补全 warn 方法
  • wrangler.toml:新增 SCRIPT_ENGINE 环境变量
  • package.json:新增 quickjs-emscripten@jitl/quickjs-wasmfile-release-syncyaml 依赖
  • README.md:新增功能说明章节

@Yu9191

Yu9191 commented Jun 21, 2026

Copy link
Copy Markdown
Owner

感谢 @0xpoker 的 PR,QuickJS WASM Script Operator 适配方向已经确认可行。

我已经基于这个 PR 的思路在 main 分支补充并推送了兼容性修正:

  • 自动同步 GitHub Actions 生成的 wrangler.toml 已默认加入 SCRIPT_ENGINE = "quickjs"
  • wrangler.toml.example 已补充 SCRIPT_ENGINE = "quickjs"
  • README 已补充 QuickJS 启用说明,并在致谢中标注本 PR 贡献者
  • 保留 dgram stub,修复 Workers 构建时报 Could not resolve "dgram" 的问题
  • 移除对 dns-packet 的 stub,改为加入真实依赖,避免 DoH DNS 在运行时无法 encode/decode
  • 已确认 quickjs-executor.js 和 quickjs.wasm 纳入提交
  • 本地 npm run build 验证通过

相关提交:e2a7c23

这个 PR 的核心思路已经采纳到 main,感谢贡献。

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants