# @baukit/integrations-client 中文文档

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

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

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

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

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

- 包体积（解压后）：87.2 kB，26 个文件
- 模块格式：ES Module
- TypeScript 类型：包内自带
- Node.js 要求：\>=24\.0\.0
- 运行依赖：0 个
- 首次发布：2026-09-03T08:16:41.291Z
- 最新版本发布：2026-11-07T02:36:58.859Z
- 近 30 天下载量：8450（2026-10-08 至 2026-11-06，npm 官方下载统计）
- 已发布版本数：64（近 12 个月 64 个）

## 中文简介

提供者中立连接状态,OAuth会话协调,网络和本地客户端的提供者注册.

## 安装

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

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

## README

# `@baukit/integrations-client`

`@baukit/integrations-client` 为集成设置提供提供者中立的客户端行为:

-   与固定状态和行动的联系减少器;
-   a. OAuth 协调员,持续进行状态检查并严格返回URL验证
-   根据产品数据建立的打字供应商登记册.

软件包没有运行时间依赖性 。 它的根条目不导入 React, Expo, 或浏览器 环球网.

## 连接状态

在应用客户端事件前先映射服务器的连接健康 :

```ts
import { connectionStateFromServer, reduceConnectionState } from '@baukit/integrations-client';

const state = connectionStateFromServer({
  state: 'needs_reconnect',
  diagnosticCode: 'authorization_revoked',
  providerDiagnostic: upstreamError,
});
const connecting = reduceConnectionState(state, { type: 'connect_requested' });
```

`providerDiagnostic` 是不可信的输入,并总是被删除. `diagnostic.code` 只接受一个 绑定的蛇 案例代码. 产品地图 `status` 财务报告和审定财务报表 `availableActions` 给自己的本地化副本. 他们不能提供诊断代码.

## 授权会议

为存储、计时器、非ce创建和网络或 本地授权跑者。 协调员在打开授权 URL 之前保存非ce . 它回来了 `success`, (中文(简体) ), `cancelled`, (中文(简体) ), `timed_out`, (中文(简体) ), `invalid_return`,或 `storage_mismatch`。 。 。 .

```ts
import { OAuthSessionCoordinator, createReturnUrlValidator } from '@baukit/integrations-client';

const coordinator = new OAuthSessionCoordinator({
  storage,
  clock,
  timeoutMs: 15_000,
  createStateNonce,
  validateReturnUrl: createReturnUrlValidator({
    origin: 'https://app.example',
    paths: ['/settings/integrations/callback'],
  }),
  browser,
  native,
  redirect,
});

const outcome = await coordinator.authorize({
  platform: 'web',
  returnUrl: 'https://app.example/settings/integrations/callback',
  createAuthorizationUrl: startConnection,
});
```

网上, `browser.openPlaceholder` 运行在同步工作之前,所以单击可以保留 弹出. 如果它回来了 `null`,协调员使用注入的重定向处理器。 整页之后 返回, 调用 `handleRedirect` 使用当前 URL。 本地产品供应 `native.run` 财务报告和审定财务报表 `native.cancel` 使用他们的认证会话库.

校验器需要精确配置的出处和一个精确的允许列表路径 。 回调检查 拒绝类似外观的源头、路径前缀、 URL 中的证书、 错误的 URL 和重复 参数.

## 供应商登记处

一次登记静态产品数据. 连接器类型属于产品,因此可以持有 OAuth 启动器、 产品钩子、 图标或其他UI 特定值, 不添加这些依赖性 给宝琪:

```ts
import { createProviderRegistry } from '@baukit/integrations-client';

const providerDefinitions = createProviderRegistry([
  {
    id: 'calendar',
    labelKey: 'integrations.calendar',
    capabilities: ['read_events'],
    connector: {
      startOAuth: startCalendarOAuth,
      useConnection: useCalendarConnection,
      icon: CalendarIcon,
    },
  },
  {
    id: 'storage',
    labelKey: 'integrations.storage',
    capabilities: ['read_files'],
    connector: {
      startOAuth: startStorageOAuth,
      useConnection: useStorageConnection,
      icon: StorageIcon,
    },
  },
] as const);

const providers = providerDefinitions.withConnectionStates(
  new Map([
    ['calendar', calendarConnectionState],
    ['storage', storageConnectionState],
  ]),
);

await providers.get('calendar')?.connector?.startOAuth();
```

`list()` 保持注册令. `get()` 返回已键入的连接符并返回 `undefined` 用于 身份不详. `withConnectionStates()` 接受只读地图或部分记录并返回新记录 登记; 不更改 `providerDefinitions`。从国家收藏中省略的提供者有 状态 `disconnected` 并且没有可用的动作。 通过 `connection` 登记仍在工作 给使用0.2.0 API的呼叫者.

登记册复制能力和行动阵列并拒绝重复的ID。 保持连接器 通过引用对象,那么钩子、函数和组件特性保持稳定。 坚持下去, 供应商 OAuth 参数、身份、副本和政策留在产品中.

## 常见问题

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

提供者中立连接状态,OAuth会话协调,网络和本地客户端的提供者注册\.

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

在项目目录运行 npm install @baukit/integrations-client，或使用 pnpm add / yarn add / bun add。

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

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

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

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

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

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

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

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

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

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

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

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

