@keeganrelume/partner-embed

中文文档
1.0.0-beta.0发布于 2026/11/01UNLICENSEDTypeScriptES Module零依赖

reume合作伙伴的前端SDK:将reume构建器与一个调用和几个事件处理程序放在您的页面上。

中文使用文档
文档目录7 节
  1. 安装
  2. 快速入门
  3. 它为你做了什么
  4. Relume.init(target, publishableKey, options?)
  5. 事件
  6. 方法
  7. 发展中

@keeganrelume / partner-embed

为remume合作伙伴提供的前端SDK。一个调用将重新构建器放在您的 页面;一些事件处理程序将其绑定到您的钱包。你永远不要碰那个框架 或者 postMessage.

临时包名。 这篇文章发表于 @keeganrelume/partner-embed 直到 @relume 恢复NPM作用域,然后作为 @relume/partner-embed. API不会改变;只有导入路径才会。

的浏览器端 重新启动合作伙伴协议v1 (部分4 和11)。搭配 @keeganrelume/partner-node 在你的后台, 它挂载这个SDK调用的会话路由。

安装

npm install @keeganrelume/partner-embed
import { Relume } from '@keeganrelume/partner-embed';

或者使用script标记,它定义 window.Relume:

<script src="https://cdn.jsdelivr.net/npm/@keeganrelume/[email protected]"></script>

没有运行时依赖项。缩小了大约6 KB。

快速入门

const relume = Relume.init('#relume', 'pk_live_…');

relume.onTopUp(async ({ required, balance }) => {
  await openCheckout(required - (balance ?? 0)); // your checkout
  relume.refreshCredits(); // the builder re-reads the balance
});
relume.onCreditsChanged(({ balance }) => setHeaderBalance(balance));
relume.onExport(({ siteId, downloadUrl }) => toast('Your site is ready'));
relume.onClose(() => router.back());
relume.onError(({ code, message }) => report(code, message));

建造者填充 #relume,所以给它一个大小(例如 height: calc(100vh - 64px)). 在640px以下,它覆盖了整个视口 相反;通过 fullScreenOnMobile: false 把它放在容器里。你的 Page需要一个 <meta name="viewport" content="width=device-width"> 为手机 报告它们的实际宽度。

examples/index.html 是一个完整的合作伙伴页面。

它为你做了什么

  • 上创建iframe https://embed.relume.ai/?pk=… 然后给它大小。
  • 调用会话路由(GET /relume/session,由 @keeganrelume/partner-node),当建造者问:什么时候开门,之前 会话过期,并在401之后。构建器无需重新加载即可更新。
  • 仅从嵌入源上的构建器自己的窗口接受消息,并且 只发往那个原点。来自其他脚本或框架的消息将被忽略。
  • 与构建器同意协议版本,因此任何一方都可以更改其 信息不破坏对方。
  • 根据可发布键的允许起源检查页面的起源。这个 浏览器拒绝任何其他来源的帧,而帧不能说为什么, SDK启动了 onError({ code: 'origin_not_allowed' }) 然后移除它。

Relume.init(target, publishableKey, options?)

target 是一个选择器或元素。抛出一个 TypeError 如果匹配 什么都没有,或者钥匙不是 pk_test_…/pk_live_… 关键。

选项默认的它是做什么的
sessionUrl/relume/session 在你的页面上会话路由。在另一个原点上,它是用凭据获取的,所以它的CORS必须完全允许您的页面的原点(永远不会) *)。
fullScreenOnMobiletrue覆盖640像素以下的视口。
embedUrlhttps://embed.relume.ai建造者的主人。remume为您提供分期(https://embed-staging.relume.ai)。
apiUrl推断出从 embedUrlreume的API,用于允许的起源检查。以Relume的主机而闻名;如果没有,则跳过检查,并应用构建器自己的检查。

事件

每一个 on… 方法添加侦听器并返回删除侦听器的函数。

事件有效载荷当
onTopUp{ required, balance }一项指控被拒绝。 required 是行动的代价在你的信用。
onCreditsChanged{ balance }建造者表现出的平衡改变了。当你的钱包没接电话时,你不会被解雇。
onExport{ siteId, exportId, downloadUrl }导出准备好了。
onClose无用户关闭了构建器。
onError{ code, message }建筑工人无法开工,也无法继续施工。当没有人监听时登录到控制台。

错误代码: session_failed, user_deactivated, user_suspended, partner_suspended, origin_not_allowed, test_cap_reached 和 charge_failed (协议第11节)。 可能会增加新的代码;像对待一个不认识的人 session_failed.

抛出的处理程序将被记录下来,并且不会阻止其他处理程序。

方法

  • open({ site }) 打开用户的一个站点(a siteId 来自合作伙伴 API或 onExport). 构建器在该站点上重新加载。
  • refreshCredits() 让建筑商从你的钱包里重新读取余额 (credits.get),然后开火 onCreditsChanged 如果它改变了。以后再叫它。 充值。
  • destroy() 删除iframe和每个侦听器,并停止任何挂起 会话请求。实例之后什么都不做;呼叫 Relume.init 再次向建造者展示。

发展中

npm ci
npm run typecheck
npm test            # unit tests (happy-dom) and the example's size
npm run test:dist   # builds, then loads the ESM and script-tag output

这个 postMessage 信息存在于 src/protocol.ts 和 镜子 frontend/base/embed/embed_protocol.ts 在remume应用程序中,更改两者 在一起。

出版: npm publish --tag latest 从这个文件夹(它运行所有的 上面第一个)。

版本与发布记录

@keeganrelume/partner-embed 共发布 2 个版本,首次发布于 2026/11/01;过去 12 个月发布了 2 个版本。

版本发布日期距今
1.0.0-beta.0latest2026/11/011 天前
0.0.0-stage2026/11/011 天前

关于 @keeganrelume/partner-embed 的常见问题

@keeganrelume/partner-embed 是什么?

reume合作伙伴的前端SDK:将reume构建器与一个调用和几个事件处理程序放在您的页面上。

如何安装 @keeganrelume/partner-embed?

在项目目录运行 npm install @keeganrelume/partner-embed,或使用 pnpm add / yarn add / bun add。

@keeganrelume/partner-embed 支持 TypeScript 吗?

支持。包内自带 TypeScript 类型声明(package.json 声明了 types 入口),安装后即可获得类型提示,无需再安装 @types 包。

@keeganrelume/partner-embed 支持 ESM 还是 CommonJS?

以 ES Module 形式发布,推荐使用 import 引入。在 CommonJS 项目中,Node.js 20.19+ / 22.12+ 可以直接 require() 不含顶层 await 的 ES Module,更早的版本需要改用动态 import()。

@keeganrelume/partner-embed 可以商用吗?

@keeganrelume/partner-embed 使用 UNLICENSED 许可。作者声明为 UNLICENSED,即不授予公开使用许可(与公共领域的 Unlicense 不同)。使用前需获得作者授权。以上为概括,不构成法律意见,请以许可原文为准。

@keeganrelume/partner-embed 还在维护吗?

最新版本 1.0.0-beta.0 发布于 2026/11/01(1 天前);至今共发布 2 个版本,其中过去 12 个月发布了 2 个;首次发布于 2026/11/01。发布频率只是参考信号:功能稳定的工具可能很少需要更新,建议结合源码仓库的 issue 和提交记录判断。