# @baukit/suite-client 中文文档

规范地址：https://npmcn.com/package/%40baukit/suite-client/

版本：0\.18\.3
npm 元数据更新时间：2026-11-07T02:37:26.355Z
中文译文更新时间：2026-11-07T18:52:46.605Z
软件包许可：MIT

本文由上游 README 翻译，可能存在偏差，请结合原文核对 API、命令与配置。版权与许可归原作者所有。

原始 npm 页面：https://www.npmjs.com/package/%40baukit/suite-client
原文对照：https://npmcn.com/package/%40baukit/suite-client/?lang=original
项目主页：https://github.com/PatrickKoss/baukit#readme
源码仓库：https://github.com/PatrickKoss/baukit

## 关键信息（来自 npm 元数据）

- 包体积（解压后）：326 kB，90 个文件
- 模块格式：ESM + CJS
- TypeScript 类型：包内自带
- Node.js 要求：\>=24\.0\.0
- 运行依赖：1 个
- peer 依赖：@baukit/localization-core ^0\.18\.3，@baukit/integrations-client ^0\.18\.3
- 首次发布：2026-10-08T04:11:08.407Z
- 最新版本发布：2026-11-07T02:37:26.016Z
- 近 30 天下载量：8014（2026-10-08 至 2026-11-06，npm 官方下载统计）
- 已发布版本数：50（近 12 个月 50 个）

## 中文简介

无头套件连接,授权状态和连接的应用客户端.

## 安装

```sh
npm install @baukit/suite-client
```

也可以使用：`pnpm add @baukit/suite-client`、`yarn add @baukit/suite-client`、`bun add @baukit/suite-client`

## README

# @baukit/套接字客户端

无头套件连接网络和本地客户端. 软件包导出一个类型 HTTP 客户端, OAuth 会话处理、 授权和连接应用程序状态, 返回 URL 和本土意向警卫、同行开放、通知、英文、德文和西班牙文 留言。 它不导入 React, Expo 或浏览器环球 .

## 客户和会话

构造 `SuiteClient` 与产品认证的JSON运输。 前缀 带有产品 API 基础的路径。 将 Baukit 错误解码为 `Error` 带字符串 `code`,例如 `ApiError` 从 `@baukit/api-runtime`复放和删除 请求有空机构.

构造一个 `SuiteSession` 每个签到的会话,由本地人分享 auth会话并重定向处理器. 供应 `OAuthSessionCoordinator` 存储,时钟, 非ce、 网页重定向和本地会话适配器 `@baukit/integrations-client`。 。 。 . 网络适配器重定向同分页 。 本地适配器打开验证会话并获得通过 它的结果回来了。 坚持OAuth状态 穿越冷发射。 协调员检查 在完成服务器请求前,返回终点、非ce和10分钟到期.

```ts
import { SuiteClient, ConnectedApps } from '@baukit/suite-client';

// Product adapters supply transport and the configured session instance.
const client = new SuiteClient(transport);
const connectedApps = new ConnectedApps(client, session);
await connectedApps.load();
const result = await connectedApps.connect('beta');
if ((result.type === 'ready' || result.type === 'failed') && result.completed) {
  if (navigation.claimSuiteConnectionAnnouncement(result.completed.requestId)) {
    announceConnected(result.completed.peerApp);
  }
}
```

成功连接可刷新列表 . `connect()` 返回时 `completed: { peerApp, requestId }` 编辑 `ready` 状态,或 `failed` 状态 如果刷新失败。 失败状态 `completed` 表示连接的服务器 应用程序;其 `code` 描述刷新错误。 分别处理错误 从连接通知。 一会儿 `load()` 清除 `completed`。 。 。 .

分享一个 `SuiteNavigationStore` 这名打电话者和 `SuiteLinkedMachine`。 。 。 . 它的公告守护 扭曲了本地的认证结果 并改变方向 以请求编号发出通知。 会话将代码赎回一次,即使两种路径都起火.

## 页面和本地意图

使用 `parseSuiteAuthorizeQuery` 在构建前 `SuiteAuthorizeMachine`。 。 。 . 它的状态涵盖登录,同意,自动批准,账户提示不匹配,拒绝, 拒绝和本地同意必须打开网页。 将那些 在产品UI中声明. `switchSuiteAccount` 在开始登录前登录.

`SuiteLinkedMachine` 将召回的 URL 保留在内存中,并要求产品去除 历史的代码。 等待身份恢复,然后打电话 `restore`完成工作 运行一次, 刷新连接的应用程序并创建通知 `SuiteNavigationStore`。 。 。 . 存储到产品认证会话的范围 .

`createSuiteNativeIntentValidator(scheme)` 仅允许套房授权和链接 页面. `openSuitePeer` 在配置的网络回落前尝试对等方案. 需要HTTPS,除非产品明确允许回回回回回回HTTP.

登记册 `suiteMessages` 与 `@baukit/localization-core`替换产品 `{product}` 并且为自己的事件类型制作标签。 信件密钥和内插 校对:soup `en`, (中文(简体) ), `de` 财务报告和审定财务报表 `es`。 。 。 .

## 主机授权 URL

使用 `validateSuiteAuthorizePeer(peer, options)` 当装入对等配置时. `peer` 已经 `webUrl` 和可选 `authorizeUrl`。后者是完全主机 页面 URL,包括授权的产品ID. 需要HTTPS; 启用 `options.allowLoopback` 用于回放 HTTP 开发。 全权证书、查询和 碎片被拒绝.

```ts
import { suiteAuthorizeUrl, validateSuiteAuthorizePeer } from '@baukit/suite-client';

const peer = {
  webUrl: 'https://beta.example',
  authorizeUrl: 'https://account.example/suite/authorize/beta',
};
validateSuiteAuthorizePeer(peer);
const url = suiteAuthorizeUrl(peer, {
  client: 'alpha', state, codeChallenge, hint, hintDomain,
});
```

所配置的路径被保存,包括后端斜线. 查询使用 `client`, (中文(简体) ), `state`, (中文(简体) ), `code_challenge`选项 `hint` 财务报告和审定财务报表 `hint_domain`。 。 。 . 无 `authorizeUrl`,终点不变 `${webUrl}/suite/authorize`。 。 。 . `SuiteClient.start` 已返回服务器配置 `authorizeUrl`· ; `SuiteSession` 直接使用它。 产品构建 URL 本身可以使用 帮手 在未经主机同意的情况下,保持本地授权的部署页面.

## 配置时的对等元数据

无依赖性 `@baukit/suite-client/peers` 子路径有无害环境管理和共同JS 出口。 Expo 配置插件无需装入客户端或客户端即可要求它 依赖性。 产品拥有同级文件;本包中没有船.

```js
const { readFileSync } = require('node:fs');
const { parsePeersFile, peerLinkQuerySchemes } = require('@baukit/suite-client/peers');

const peers = parsePeersFile(JSON.parse(readFileSync(peersPath, 'utf8')));
const schemes = peerLinkQuerySchemes(peers, ownAppId);
```

`parsePeersFile(json: unknown): PeerMetadata[]` 验证 schema-version-1 带有 Rust 注册规则的文件. `peerLinkQuerySchemes(peers: readonly PeerMetadata[], ownAppId: string): string[]` 由 id 排除自己的应用程序,然后 减员和各种计划。 对 iOS 使用结果 `LSApplicationQueriesSchemes` 和 Android 数据 `<queries>`。收养指南有一个 保存已存在的条目的配置插件 .

见 [成套收养](https://npmcn.com/docs/platform/suite-events.md) 用于服务器接线 和协议合同。 此软件包没有添加 CLI 模板能力 .

## 离线应享权利票

导入 `verifyTicket` 财务报告和审定财务报表 `TicketVerificationError` 从 `@baukit/suite-client/entitlements`。通过紧凑的票,信任 `TicketJwks` 财务报告和审定财务报表 `{ issuer, audience, now }`,与 `now` 在Unix秒内。 结果是 `TicketClaims`; 比较其 `sub` 在授予前使用当前套件科目 进入。 产品拥有公用钥匙刷新和票房.

校验在网络和Hermes上使用纯 JavaScript Ed25519, 不使用 WebCrypto 或 节点环球. 它执行枢纽 严格的过期,七天最长寿命, 60秒的发行时间津贴和确切的索赔计划。 见 [平台通过](https://npmcn.com/docs/platform/platform-receiver.md) 用于服务器设置 和稳定的出错代码.

## 常见问题

### @baukit/suite-client 是什么？

无头套件连接,授权状态和连接的应用客户端\.

### 如何安装 @baukit/suite-client？

在项目目录运行 npm install @baukit/suite-client，或使用 pnpm add / yarn add / bun add。它还需要宿主项目提供 peer 依赖：@baukit/localization-core（^0\.18\.3）、@baukit/integrations-client（^0\.18\.3）。npm 7 及以上与 pnpm 8 及以上默认会自动安装必需的 peer 依赖，Yarn 需要手动安装。

### @baukit/suite-client 支持 TypeScript 吗？

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

### @baukit/suite-client 支持 ESM 还是 CommonJS？

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

### @baukit/suite-client 需要什么版本的 Node\.js？

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

### @baukit/suite-client 可以商用吗？

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

### @baukit/suite-client 的下载量有多少？

根据 npm 官方下载统计，@baukit/suite-client 在 2026/10/08 – 2026/11/06 这 30 天内被下载 8,014 次，日均约 267 次。下载量会把 CI 构建、镜像同步和作为其他包依赖的安装一并计入，适合横向比较热度，不能直接等同于使用人数。

### @baukit/suite-client 还在维护吗？

最新版本 0\.18\.3 发布于 2026/11/07（今天）；至今共发布 50 个版本，其中过去 12 个月发布了 50 个；首次发布于 2026/10/08。发布频率只是参考信号：功能稳定的工具可能很少需要更新，建议结合源码仓库的 issue 和提交记录判断。

