MooTool

Handy tool set for developers

View on GitHub

JSON 工作区与独立解析引擎

0.4.0 的界面由 SwiftUI / AppKit 实现。工具栏、主编辑器、可折叠检查器、查找替换栏、路径选择和转换结果弹窗,对照 Electron 的 JsonTool.tsxJsonToolbar.tsxJsonInspector.tsxJsonToolDialogs.tsx 实现。

操作语义

依赖与产品边界

查询采用 JSONPath-Plus 10.4.0,XML 转换采用 fast-xml-parser 5.10.1。浏览器发行文件及许可副本全部位于本产品的 Sources/MooToolNextCore/Resources/,具体依赖版本及两个发行文件的 SHA-256 记录在 parser-versions.json

JSONTools.js 是 MooTool 对应纯算法的独立副本,在本产品内维护,包含 Java 字段名/类名冲突处理等原生版修正。构建和运行不读取 next 源码或 node_modules,不要求 Node.js、Electron、浏览器或网络服务。JSON 数据不会发送到远端。

系统 JavaScriptCore 在随应用打包的 MooToolJSONWorker 中执行这些算法。用户输入通过私有临时文件中的 JSON 请求传入,作为函数参数读取;不拼接为脚本源码,不向脚本提供原生文件、网络或进程对象。JSONPath 使用 eval: safe

辅助进程与主应用一同构建为对应架构、分别签名,并使用应用内部资源。每次调用结束删除临时目录,超时或取消终止该次辅助进程。关闭无关窗口不会取消另一窗口的操作;切换文档、恢复工作区或修改正文后,旧结果不会自动覆盖新内容。

能力边界

验证

核心测试对照 Electron 的输入输出用例,并覆盖通配符、递归、筛选、切片、联合查询、特殊键路径、重复键、XML 拒绝项、Java 命名、Unicode 查找替换、工作区兼容,以及辅助进程超时和取消。

本机另用 javac 实际编译辅助进程生成的 Java 文件,覆盖关键字、字段重名、嵌套类型、混合数组和 String/List/Object 命名冲突。

原生验收发送格式化快捷键并操作实际编辑器,验证原地修改、自动保存、撤销/重做、结果弹窗、使用结果、输入转换及文档切换;再通过新进程检查工作区恢复。界面截图包含检查器、查找栏、路径选择器、结果弹窗及深浅色/窄窗口。截图成功不等于所有菜单和系统对话框均已做端到端验证。