snapWONDERS/snapWONDERS-SDK-JavaScript

GitHub: snapWONDERS/snapWONDERS-SDK-JavaScript

snapWONDERS API 的官方 JavaScript/TypeScript 客户端,封装了隐写术、媒体取证分析和格式转换的完整任务编排流程。

Stars: 0 | Forks: 0

snapWONDERS JavaScript / TypeScript SDK

snapWONDERS — 揭示隐藏之物。隐藏属于你的秘密。 # @snapwonders/sdk — snapWONDERS API 的 JavaScript / TypeScript 客户端 snapWONDERS API 的官方 JavaScript/TypeScript 客户端:隐写术、取证媒体 分析,以及格式转换。该客户端封装了可恢复的 TUS 上传和 session → job → poll → download 的编排流程,因此一整个任务只需几个 `await` 即可完成。零 运行时依赖 —— 它使用全局的 `fetch` (Node ≥ 18)。 所有 snapWONDERS API 服务均可通过 Clearnet / **Web** 以及暗网 **Tor** 和 **I2P** 访问。 # 安装与设置 ## snapWONDERS API key 在开始之前,你需要一个 snapWONDERS API key: * 在 [snapWONDERS 注册](https://snapwonders.com/sign-up) 注册并创建一个账户。如果你 希望通过 Tor 或 I2P 创建账户,可以通过 Tor 或 I2P 门户访问 snapWONDERS 来实现。有关暗网链接,请访问 [安全浏览](https://snapwonders.com/browsing-safely)。 * 在你的账户设置中,生成一个 API key。新的 key 以 `sw_` 开头。它会作为 每个请求的 `X-Api-Key` header 发送 —— 请妥善保密。 ## 安装包 ``` npm install @snapwonders/sdk # once published ``` # 快速入门 ``` import { Client } from "@snapwonders/sdk"; const client = new Client("sw_your_key_here"); // baseUrl defaults to https://snapwonders.com console.log(await client.status()); // no key needed for status // Hide a secret inside a cover image (the last file is the cover). const job = await client.stego.hide(["secret.png", "cover.jpg"], { password: "Str0ng!Pass" }); for (const result of await job.results()) { await result.download("out/"); // "out/" is a directory — the server filename is kept } // Reveal it again. const revealed = await client.stego.reveal("out/cover-share.avif", { password: "Str0ng!Pass" }); await (await revealed.results())[0].download("recovered/"); ``` `client.analyse`(取证分析)和 `client.convert`(媒体转换)遵循相同的结构 —— 一次调用输入,结果输出: ``` // Forensic analysis — grade each file A–F. const analysis = await client.analyse.run(["photo.jpg"], { face_detection: true }); for (const item of await analysis.results()) { console.log(item.filename, item.grade, item.faceCount); } // Convert media — the image format key is `image_format` (jpeg/png/webp/avif/heic/jxl). const converted = await client.convert.run(["photo.png"], { image_format: "webp" }); await (await converted.results())[0].download("out/"); ``` # 示例 可运行的端到端示例位于 [`examples/`](examples/) 中 —— 包含隐写术、取证分析 和转换,每个都是一个独立的脚本(纯 ESM)并附带一张示例图片: ``` export SNAPWONDERS_API_KEY=sw_your_key_here node examples/hide-and-reveal.mjs # hide a file in an image, then reveal it node examples/analyse.mjs # grade an image A–F + download overlay assets node examples/convert.mjs # JPEG → WebP ``` 有关真实的输入/输出图片和实时的取证分析 JSON 结果,请参阅 [`examples/WALKTHROUGH.md`](examples/WALKTHROUGH.md);有关如何运行它们,请参阅 [`examples/README.md`](examples/README.md)。 # 错误 SDK 抛出的每个失败都是 `SnapwondersError` 的子类,因此你可以根据失败的 类型进行分支处理,而无需检查 HTTP 状态码:`AuthError`、`ProRequiredError`、 `SessionExpiredError`、`RateLimitError`、`MaintenanceError`、`JobFailedError`、`TusUploadError`、 `NetworkError`、`ApiError`。 # 运行测试 ``` npm install npm run typecheck # tsc --noEmit npm test # offline smoke tests (no key required), via tsx npm run build # emit dist/ ``` # 文档 有用的文档可以在以下位置找到: * 交互式 Swagger UI 和完整的 endpoint 参考: [snapWONDERS API](https://snapwonders.com/api) * 循序渐进的引导式集成演示: [snapWONDERS 开发者](https://snapwonders.com/developers) # 联系方式 ## 关于安全问题 如果你发现了任何安全问题,请通过 [联系 snapWONDERS](https://snapwonders.com/contact) 告知我们,并将主题设置为 **"SECURITY CONCERNS"**,同时提供有关你发现的问题的信息。如果你希望通过 Tor 或 I2P 联系,可以通过 Tor 或 I2P 门户访问 snapWONDERS 来实现。有关暗网 链接,请访问 [安全浏览](https://snapwonders.com/browsing-safely)。 ## 关于 FAQ 和疑问 你的问题可能已经在 [FAQ](https://snapwonders.com/faq) 中得到了解答。请务必 先查看 FAQ 内容。否则,你可以通过 [联系 snapWONDERS](https://snapwonders.com/contact) 与我们取得联系。 ## 联系作者 使用此链接联系作者 [Kenneth Springer](https://kennethbspringer.au/)。 # 许可证 MIT — 版权所有 (c) 2026 Kenneth Springer @ snapWONDERS。详见 [LICENSE](LICENSE)。 **范围。** MIT 许可证仅涵盖**此客户端库**。它不授予与其通信的 snapWONDERS API、服务、数据、模型或算法的任何权利 —— 这些均为**专有** 资产,且仍归 Kenneth Springer @ snapWONDERS 所有。此库仅向 API 发送 HTTP 请求;它不包含其任何实现。使用 API 需要有效的 API key,并 受 [snapWONDERS 服务条款](https://snapwonders.com/terms) 约束。
标签:CMS安全, JavaScript, MITM代理, TypeScript, 多媒体分析, 媒体取证, 安全插件, 数据可视化, 格式转换, 自动化攻击, 隐写术