@c15t/node-sdk

中文文档
3.2.2发布于 2026/11/02Apache-2.0TypeScriptES Module构建来源已验证近 30 天下载 3.2万

C15t同意API的节点.js SDK. 在发送电子邮件前检查同意,链接用户,记录同意和从服务器代码发布法律文件.

中文使用文档
文档目录11 节
  1. 关键特性
  2. 先决条件
  3. 安装
  4. 使用量
  5. 文档
  6. 方法
  7. 从 v2 升级
  8. 支助
  9. 捐款
  10. 警卫
  11. 许可证

c15t: the open standard for cookie banners

@c15t/node-sdk:c15t同意API的Node.js客户端

Latest NPM Version Stars License Discord Skills Made by Inth

为主机和自控的c15t后端打入了客户端. 发送电子邮件前检查同意,签入后链接用户,输出用户同意记录,发布CI的法律文件发布并读取横幅实验结果.

c15t用于 2 100个以上地点包括expo.dev, sed.dev, unkey.dev, mintlify.com, 和 sazabi.com.

关键特性

  • 一个 createC15tClient() 调用一个明确的后端 URL。 没有读取环境变量
  • 方法决心 { ok: true, data } 或者说 { ok: false, error } 绝不拒绝。 按方法输入出错代码
  • 仅限键方法( E)consents.check, (中文(简体) ), subjects.list, (中文(简体) ), experiments.summary, (中文(简体) ), legalDocuments.publish) 只存在于使用 API 密钥创建的客户端上
  • 在发送任何信息之前验证输入,答复日期为 Date 对象
  • 网络出错、出错和408起、429起、500起、502起、503起和504起故障的超时和复试 Retry-After
  • 输入的模拟客户端 @c15t/node-sdk/testing

先决条件

  • 节点.js 20.19或以后,或与 fetch, (中文(简体) ), AbortSignal.any 财务报告和审定财务报表 crypto.randomUUID
  • 一个主持人 c15t 实例 或一个 自备后端

安装

pnpm add @c15t/node-sdk

使用量

  1. 创建一个包含后端的 URL 客户端 。 过 apiKey 只有按键方法
  2. 调用方法并检查 result.ok 读取前 result.data,或使用 unwrap(result) 将错误扔出
// server.ts
import { createC15tClient } from '@c15t/node-sdk';

const apiKey = process.env.C15T_API_KEY;
if (!apiKey) throw new Error('Set C15T_API_KEY');

const c15t = createC15tClient({
  baseUrl: 'https://app.example.com/api/c15t',
  apiKey,
});

const result = await c15t.consents.check({
  externalId: user.id,
  types: ['marketing_communications'],
});

if (result.ok && result.data.results.marketing_communications.hasConsent) {
  await sendNewsletter(user);
} else if (!result.ok) {
  console.error(result.error.code, result.error.requestId);
}

文档

见 文档 用于指南、API参考和示例.

方法

方法API 密钥
consents.check({ externalId, types })需求
subjects.identify(id, { externalId, identityProvider, identityToken })否;仅用密钥或令牌验证
subjects.get(id, { types })没有
subjects.create(input)没有
subjects.list({ externalId })需求
legalDocuments.publish(type, { version, hash, effectiveDate })需求
experiments.summary(id, { from, to, domain })需求
status(), (中文(简体) ), init(), (中文(简体) ), manifest()没有

每一个方法 { signal, timeoutMs, headers, retry, requestId } 作为其最后的论点.

createIdentityToken(user, { signingKey }) 是一个单独的导出,而不是客户端方法。 它在本地为浏览器签名 identify()并丢出一个 TypeError 输入无效.

从 v2 升级

c15tClient() 编辑 C15TClient 类被替换为 createC15tClient()结果替换 ResponseContext, (中文(简体) ), C15TError 现在 C15tError,以及 subjects.patch 现在 subjects.identify见 移徙指南。 。 。 .

支助

捐款

警卫

不为安全弱点打开一个公共问题。 私下通过报告 GitHub 的脆弱性报告我们审查所有的报告.

  • 不在公共论坛、议题或请求中分担脆弱性
  • 给它复制的步骤 和它影响的版本
  • 在你透露之前给我们点时间

许可证

Apache 许可证 2.0


由 输入

版本与发布记录

@c15t/node-sdk 共发布 77 个版本,首次发布于 2025/05/09;过去 12 个月发布了 44 个版本。最新版本附带 npm provenance 构建来源证明,可追溯到公开的 CI 构建记录。

版本发布日期距今
3.2.2latest2026/11/027 天前
3.2.12026/10/319 天前
3.2.02026/10/3010 天前
3.2.0-canary.0canary2026/10/2316 天前
3.1.02026/10/1723 天前
3.1.0-canary.02026/10/1525 天前

其他发布通道:rc → 2.0.0-rc.10,alpha → 3.0.0-alpha.11,canary → 3.2.0-canary.0。

关于 @c15t/node-sdk 的常见问题

@c15t/node-sdk 是什么?

C15t同意API的节点.js SDK. 在发送电子邮件前检查同意,链接用户,记录同意和从服务器代码发布法律文件.

如何安装 @c15t/node-sdk?

在项目目录运行 npm install @c15t/node-sdk,或使用 pnpm add / yarn add / bun add。

@c15t/node-sdk 支持 TypeScript 吗?

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

@c15t/node-sdk 支持 ESM 还是 CommonJS?

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

@c15t/node-sdk 可以商用吗?

@c15t/node-sdk 使用 Apache-2.0 许可。宽松许可:允许商业使用、修改和再分发,并附带明确的专利授权;分发时需保留许可与 NOTICE 文件,修改过的文件要注明改动。以上为概括,不构成法律意见,请以许可原文为准。

@c15t/node-sdk 的下载量有多少?

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

@c15t/node-sdk 还在维护吗?

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