@baukit/integrations-client

中文文档
0.18.3发布于 2026/11/07MITTypeScriptES Module零依赖构建来源已验证近 30 天下载 8450

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

中文使用文档
文档目录3 节
  1. 连接状态
  2. 授权会议
  3. 供应商登记处

@baukit/integrations-client

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

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

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

连接状态

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

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。 。 。 .

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 特定值, 不添加这些依赖性 给宝琪:

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 共发布 64 个版本,首次发布于 2026/09/03;过去 12 个月发布了 64 个版本。最新版本附带 npm provenance 构建来源证明,可追溯到公开的 CI 构建记录。

版本发布日期距今
0.18.3latest2026/11/07今天
0.18.22026/11/061 天前
0.18.12026/11/062 天前
0.18.02026/11/052 天前
0.17.12026/11/034 天前
0.17.02026/11/025 天前

关于 @baukit/integrations-client 的常见问题

@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 和提交记录判断。