@calimero-network/mero-js

中文文档
29.7.1发布于 2026/11/09MITTypeScriptESM + CJS构建来源已验证近 30 天下载 1.7万

Calimero 1.0 的 JavaScript 客户端: 经认证的 TEE 节点, 一个密封的通道, 密码和 API 密钥

中文使用文档
文档目录8 节
  1. 文档
  2. 安装
  3. 快开始
  4. 连接到集群
  5. 什么客户检查
  6. API( API )
  7. 发展
  8. 许可证

Mero.js — Calimero 1.0 的 JavaScript客户端

JavaScript/ TypeScript 客户端 卡利梅罗 1.0, 密论云. CalimeroClient 验证一个节点的TDX证明, 封存每一份结束的请求(Noise NK, calimero/sealed-http/v2),标志 使用WebAuthn 密码和 API 密钥的机器,并调用应用程序 每一个运行在自己的复制日志。 它运行在浏览器和节点 18+,并且是 与核心字节兼容 calimero-sealed 财务报告和审定财务报表 calimero-client。 。 。 .

27版本仅是Calimero 1.0客户端. 用于 merod 0.x 节点的 v1 SDK (单位:千美元)MeroJs,管理员和认证 API 客户端,JSON-RPC,上下文和命名空间) 是在26x。 见 从v1 移动。 。 。 .

文档

https://calimero-network.github.io/mero-js/ (中文(简体) ):快速启动、向导和 用于每个方法和它所调用的路由的参考。 来源在 docs/。 。 。 .

安装

npm install @calimero-network/mero-js

软件包 ESM、CommonJS和精密浏览器 TypeScript 声明. 它唯一的依赖, @phala/dcap-qvl,验证TDX 引用并被加载在第一个使用上.

快开始

import { CalimeroClient, browserPasskey } from '@calimero-network/mero-js';

// Reach a Calimero Cloud cluster by name.
const client = await CalimeroClient.connect({
  cluster: 'eu-shared-1',
  // Trust the signed mero-tee release the node names, from this one up.
  policy: { release: { minReleaseVersion: '2.3.109' } },
});

await client.signUp(browserPasskey(), 'alice'); // or signIn(browserPasskey())
await client.installPackage('com.example.kv', '1.0.0'); // signed .mpk from the registry
const app = await client.createApp('kv', { package: 'com.example.kv', version: '1.0.0' }, { confirmMethods: ['clear'] });

await client.call(app, 'set', { key: 'a', value: '1' });
const { result } = await client.view(app, 'get', { key: 'a' });
await client.callConfirmed(app, 'clear', {}, browserPasskey()); // passkey consent
for await (const event of client.events(app)) console.log(event);
await client.upgradeApp(app, { version: '1.1.0' }, browserPasskey()); // the owner approves

发展组merod local, (中文(简体) ), merod run --dev以模拟的教训盟誓, 仅通过 policy: { allowMock: true }。从 环境.

连接到集群

CalimeroClient.connect({ cluster, policy }) 建议的实现方式 卡利梅罗云团. 它从公共节点读取集群的节点 目录( e)DEFAULT_DIRECTORY, (中文(简体) ), https://manager.cloud.calimero.network/api/v2/directory· ; directory 名称(另一个),把这些放在 zone 当你给一个,和 按目录的权重加权。 一组 目录不知道,或者一个没有可用的节点,丢出 DirectoryError。 。 。 .

目录只选择要尝试的节点, 选择的顺序 。 没有 信任: 每个节点在下面被验证  policy 在事情发生之前 因此,一个错误或被篡改的列表只能使连接失败.

集群的任何节点都满足任何请求。 使用中的节点答案 503 或无法到达, 呼叫或视图被重审到那里(retry; 当这些 再试一次,它失败了 到下一个节点,然后重新开始那里, 与 不变 一能键,应用程序复制的日志解答一次 整个集群。 每个节点每个请求都尝试一次;当全部失败时 最后一个 UnavailableError 到达你。 失败后,一旦目录 refreshAfterSeconds 客户端已经通过(在下次请求时选中) 在背景中再次读取目录: 使用中的节点先保留, 不再列出的节点被删除 . client.nodeUrl 是正在使用的节点, client.nodes 名单.

对于固定的节点列表或集群,您自己运行,构建客户端 直接 : new CalimeroClient({ baseUrl, nodes, policy })失败结束 介于 baseUrl 财务报告和审定财务报表 nodes 永远不要读目录.

什么客户检查

就像核心的Rust客户端所做的那样 在它把任何东西送到节点之前Measurements::Release:

  1. 节点名称是它运行的地铁释放。 以下发布 minReleaseVersion 在获取任何物品之前被拒绝.
  2. 释放 published-mrtds.json 正在获取,其Sigstore 签名将对照 mero-tee 节点发布工作流程检查. 默认它来自 cloud.calimero.network 镜像; releaseSource: 'github' 读取 GitHub 版本取而代之(仅节点: GitHub 发送无 CORS 头 ).
  3. 引文与英特尔的抵押物核对 @phala/dcap-qvl:签名链和TCB状态. 担保品出自"云镜"("相克")DEFAULT_COLLATERAL_MIRROR),浏览器可以读取;它只携带由英特尔签名的项目. collateralSource: 'intel' 询问 Intel 的 PCS (没有 CORS: 不在浏览器中), fetchCollateral 替换获取,以及 maxCollateralAgeDays 拒绝更早前发布的抵押情报.
  4. 拒绝调试 TD .
  5. 登记簿必须是释放的 locked-read-only 图像; 仅信任调试配置文件 allowDebugProfile。 。 。 .
  6. 引文中的报告数据绑定了客户端的非ce和密封信道打开的传输密钥.

固定测量通过 policy.verifyQuote (单位:千美元)createQuoteVerifier) (中文(简体) ).

API( API )

  • 全权证书数字 : signUp (与 invite(a) 通过邀请获取新账户的集群; signUpPolicy 读到, signIn, (中文(简体) ), refresh, (中文(简体) ), signOut, (中文(简体) ), signOutEverywhere, (中文(简体) ), useSession, (中文(简体) ), useApiKey, (中文(简体) ), me, (中文(简体) ), usage, (中文(简体) ), addPasskey, (中文(简体) ), labelPasskey, (中文(简体) ), removePasskey, (中文(简体) ), createApiKey, (中文(简体) ), listApiKeys, (中文(简体) ), revokeApiKey。添加或去除密码并创建 API 密钥时,会使用该账户已有的密码.
  • 账户回收 (核心号4844): createRecoveryCode, (中文(简体) ), removeRecoveryCode (密码核准;代码显示一次),然后签出 startAccountRecovery(code, passkey) 72小时后, finishAccountRecovery(passkey, accountId?);账户的密码在两者之间仍然被取消(cancelAccountRecovery· ; me() 显示 recoveryCode 财务报告和审定财务报表 recoveryPending) (中文(简体) ).
  • 软件包来源数字 : packageOrigins.list, (中文(简体) ), packageOrigins.add, (中文(简体) ), packageOrigins.remove. 软件包的管理人员登记他们自己主机的前端的网络来源(用密码核准); signUp 财务报告和审定财务报表 signIn 在这样的页面上发送其来源,为该来源的依赖方编号签名,并打开一个与软件包相绑的会话(me() 答对它 app 财务报告和审定财务报表 origin) (中文(简体) ). 拒绝提供未登记来源 OriginNotRegistered。 。 。 . packageOrigins.add(pkg, origin, passkey, { served: true }) 注册自定义域: 集群还服务于软件包的前端, 从它所签名的捆绑(https://host,无端口;密码的许可名称 served: true(三); list 答题 served 并且额外的拒绝是 NotServing (组别无前端), ClusterNotUpgraded (节点在旧版上), QuotaExceeded (每包4份,每组64份) OriginTaken (与他人持有) served) (中文(简体) ).
  • 软件包数字 : installPackage, (中文(简体) ), uploadPackage, (中文(简体) ), packages, (中文(简体) ), package, (中文(简体) ), uninstallPackage· ; uploadBundle (raw WASM,只开发集群).
  • 应用程序数字 : createApp, (中文(简体) ), listApps, (中文(简体) ), getApp, (中文(简体) ), deleteApp, (中文(简体) ), setAccess, (中文(简体) ), setAppMetadata, (中文(简体) ), appStorage, (中文(简体) ), appAbi, (中文(简体) ), upgradeApp, (中文(简体) ), transferApp。 。 。 .
  • 电话数字 : call, (中文(简体) ), callConfirmed, (中文(简体) ), view, (中文(简体) ), events。一个电话总是带一个“一能”密钥,在节点回答时随它再次发出 503,然后转到下一个节点.
  • 集团和存在数字 : uploadBlob, (中文(简体) ), downloadBlob, (中文(简体) ), listBlobs, (中文(简体) ), blobInfo, (中文(简体) ), deleteBlob· ; publishPresence, (中文(简体) ), presence, (中文(简体) ), presenceStream。 。 。 .
  • 组织数字 : createOrg, (中文(简体) ), getOrg, (中文(简体) ), deleteOrg, (中文(简体) ), setOrgMetadata, (中文(简体) ), setMember, (中文(简体) ), removeMember, (中文(简体) ), setMemberMetadata, (中文(简体) ), setCapabilities (单位:千美元)ORG_CAPABILITIES),团队, invite, (中文(简体) ), redeemInvite恢复(setRecoveryKey, (中文(简体) ), startRecovery, (中文(简体) ), cancelRecovery, (中文(简体) ), finishRecovery· ; newRecoverySeed, (中文(简体) ), recoveryPublicKey) (中文(简体) ). 设置或删除成员或团队成员,能力和邀请书由呼叫者的密码批准;赎回邀请书不是.
  • 所有人的决定 (passkey批准,从未从应用程序的前端): upgradeOrg, (中文(简体) ), upgradeRun, (中文(简体) ), retryUpgradeRun, (中文(简体) ), approveRelease, (中文(简体) ), approveOutbound, (中文(简体) ), bindPublisher, (中文(简体) ), upgradePublished。 。 。 .
  • 应用程序的核准数字 : appsReport, (中文(简体) ), releaseRules, (中文(简体) ), pendingApprovals,则 requestConsent 编号 : openConsentPage 将用户发送到节点的同意页面,以及 consentResult显示答案 code 发送给用户之前 url (单位:千美元)openConsentPage是因为 confirm 钩;它们应该在页面上看到相同的代码(confirmationCode(requestId) 检查它。 见 请用户批准节点图像和应用程序升级。 。 。 .
  • 运算符 (ops sorders): (原始内容存档于2018-03-21) opsApps, (中文(简体) ), opsOrgs, (中文(简体) ), opsServedOrigins (每个自定义域 日志持有, 通过包标签), setReleaseDeadline, (中文(简体) ), liftReleaseDeadline。 。 。 .
  • 任何路线数字 : get, (中文(简体) ), post, (中文(简体) ), put, (中文(简体) ), delete· ; postConfirmed 财务报告和审定财务报表 deleteConfirmed 答复 a 412 CONFIRM_REQUIRED 有钥匙.

拒绝的打字(LoginRequired, (中文(简体) ), PasskeyUnknownHere, (中文(简体) ), WrongNode, (中文(简体) ), NotFound, (中文(简体) ), ConfirmRequired, (中文(简体) ), ConfirmCancelled, (中文(简体) ), ArgsTooLarge, (中文(简体) ), IdempotencyMismatch, (中文(简体) ), ReleaseDeadlineError, (中文(简体) ), ConsentStale, (中文(简体) ), AppError, (中文(简体) ), TrapError, (中文(简体) ), UnavailableError, (中文(简体) ), OriginNotRegistered, (中文(简体) ), BadOrigin, (中文(简体) ), OriginTaken, (中文(简体) ), QuotaExceeded, (中文(简体) ), 所有扩展 CalimeroError 与节点 status 财务报告和审定财务报表 codeA级 401 一次 发布会话的节点被替换或无法到达的节点由一个解答 刷新并重复; a 421 WRONG_NODE 移动到下一个 nodes 客户是 给出。 见 错误模型。 。 。 .

由它建造的部件也出口:密封运输 (单位:千美元)createSealedFetch,引文和签名释放核查 (单位:千美元)createQuoteVerifier, (中文(简体) ), createSignedReleaseVerifier, (中文(简体) ), trustSignedRelease),以及 梅罗泰私人代理大门的客户端(attestAgent, (中文(简体) ), provisionAgent, (中文(简体) ), releaseAgent) (中文(简体) ).

发展

pnpm install
pnpm build
pnpm test:unit   # unit tests, against a stand-in node over a real sealed channel
pnpm lint
pnpm typecheck
pnpm typecheck:consumer

组群测试tests/cloud-v2开始 3 merod run --dev 节点和 运行客户端反对他们:

MEROD_BINARY=/path/to/merod KV_STORE_WASM=/path/to/kv_store.wasm pnpm test:cloud-v2

没有他们使用的变量 ../core/target/debug/merod 财务报告和审定财务报表 ../core/target/wasm32-unknown-unknown/app-release/kv_store.wasm 从一个兄弟 核心检出. scripts/download-released-merod.sh 获取最新发布的 1.0 国家 merod 和它的kv-商店的固定, 这是CI运行 他们与;核心的 e2e.yml 运行同一个套房 与核心自己的树.

许可证

麻省理工学院——见 自由主义。 。 。 .

版本与发布记录

@calimero-network/mero-js 共发布 210 个版本,首次发布于 2026/01/23;过去 12 个月发布了 210 个版本。最新版本附带 npm provenance 构建来源证明,可追溯到公开的 CI 构建记录。

版本发布日期距今
29.7.1latest2026/11/09今天
29.7.02026/11/062 天前
29.6.02026/11/053 天前
29.4.02026/11/054 天前
29.5.02026/11/054 天前
29.3.02026/11/054 天前

其他发布通道:beta → 2.0.0-beta.1。

关于 @calimero-network/mero-js 的常见问题

@calimero-network/mero-js 是什么?

Calimero 1.0 的 JavaScript 客户端: 经认证的 TEE 节点, 一个密封的通道, 密码和 API 密钥

如何安装 @calimero-network/mero-js?

在项目目录运行 npm install @calimero-network/mero-js,或使用 pnpm add / yarn add / bun add。

@calimero-network/mero-js 支持 TypeScript 吗?

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

@calimero-network/mero-js 支持 ESM 还是 CommonJS?

同时提供 ES Module 与 CommonJS 入口,import 和 require() 都可以使用,打包工具会自动选择合适的版本。

@calimero-network/mero-js 需要什么版本的 Node.js?

package.json 的 engines 字段要求 Node.js >=18.0.0。版本不符时 npm 默认只给出警告,开启 engine-strict 后会拒绝安装。

@calimero-network/mero-js 可以商用吗?

@calimero-network/mero-js 使用 MIT 许可。宽松许可:允许商业使用、修改和再分发,通常只需在分发时保留原版权与许可声明。以上为概括,不构成法律意见,请以许可原文为准。

@calimero-network/mero-js 的下载量有多少?

根据 npm 官方下载统计,@calimero-network/mero-js 在 2026/10/09 – 2026/11/07 这 30 天内被下载 16,907 次,日均约 564 次。下载量会把 CI 构建、镜像同步和作为其他包依赖的安装一并计入,适合横向比较热度,不能直接等同于使用人数。

@calimero-network/mero-js 还在维护吗?

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