# @authup/kit 中文文档

规范地址：https://npmcn.com/package/%40authup/kit/

版本：1\.0\.0-beta\.73
npm 元数据更新时间：2026-11-01T20:46:45.863Z
中文译文更新时间：2026-11-07T06:15:15.384Z
软件包许可：Apache-2\.0

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

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

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

- 包体积（解压后）：105 kB，53 个文件
- 模块格式：ES Module
- TypeScript 类型：包内自带
- Node.js 要求：\>=26\.0\.0
- 运行依赖：2 个
- 首次发布：2024-05-08T08:30:25.032Z
- 最新版本发布：2026-11-01T20:46:45.541Z
- 近 30 天下载量：4341（2026-10-07 至 2026-11-05，npm 官方下载统计）
- 已发布版本数：58（近 12 个月 44 个）

## 中文简介

互通Authup共享的无上下文助手: URL模式匹配,ids,名称和序列化.

## 安装

```sh
npm install @authup/kit
```

也可以使用：`pnpm add @authup/kit`、`yarn add @authup/kit`、`bun add @authup/kit`

## README

![Authup logo](https://raw.githubusercontent.com/authup/authup/master/.github/assets/logo.svg)

# @authup/ kit (英语)

**互通Authup共享的无上下文助手: URL模式匹配,ids,名称和序列化.**  
其余的Authup monrepo是建立在公用事业之上的,没有Authup域的知识.

[![npm version](https://img.shields.io/npm/v/@authup/kit)](https://www.npmjs.com/package/@authup/kit) [![CI](https://github.com/authup/authup/actions/workflows/main.yml/badge.svg)](https://github.com/authup/authup/actions/workflows/main.yml) [![License: Apache-2.0](https://img.shields.io/badge/license-Apache--2.0-blue)](https://npmcn.com/package/%40authup/kit/LICENSE)

[**安装**](https://npmcn.com/package/%40authup/kit/#readme-installation) • 妇女 [使用量](https://npmcn.com/package/%40authup/kit/#readme-usage) • 妇女 [API 密码](https://npmcn.com/package/%40authup/kit/#readme-api) • 妇女 [文档](https://authup.org/)

* * *

## 合适的话

`@authup/kit` 位于 Authup 依赖图的下方 : [`@authup/core-kit`](https://github.com/authup/authup/tree/master/packages/core-kit), (中文(简体) ), [`@authup/access`](https://github.com/authup/authup/tree/master/packages/access),HTTP客户端,服务器包和控制台全部导入. 你和他们中的任何一个人 都会转接过来的 只有在您自己的代码需要相同的方向- 模式匹配或名称生成 Authup 用途时直接安装它, 例如在发送用户到 Authup 之前对照客户端的已注册模式检查方向URI .

## 安装

```shell
npm install @authup/kit
```

仅限无害环境管理。 节点.js `>=26.0.0`; 帮助者只使用 Web API(`URL`, (中文(简体) ), `atob`, (中文(简体) ), `btoa`),因此它们也运行在浏览器中.

## 使用量

### 根据图案匹配重定向 URI

```typescript
import { isSafeRedirectURLScheme, isSimpleMatch, isSimpleURLMatch } from '@authup/kit';

isSimpleURLMatch('https://app.example.com/callback', 'https://*.example.com/**'); // true
isSimpleURLMatch('https://evil.test?.example.com/cb', 'https://*.example.com/**'); // false
isSimpleMatch('users/42', ['users/*', 'roles/*']); // true

isSafeRedirectURLScheme('myapp://cb'); // true
isSafeRedirectURLScheme('javascript:alert(1)'); // false
```

-   `*` 匹配不交叉的字符运行( 包含空运行) `/`· ; `**` 匹配其余值。 一旦数值被耗尽,通配符前面的分隔符是可选的,所以 `https://example.com` 匹配 `https://example.com/**`。 。 。 .
-   `isSimpleMatch` 以敏感的方式比较案件,并知道一个界限, `/`启用 `isSimpleURLMatch` 对于一个 URL 上的任何信任决定: 它首先能够将值和模式( 主机大小写、 默认端口、 用户信息、 点段) 都进行分类, 因此主机中的通配符无法逃入一个查询或片段 .
-   不分析为 URL 从未匹配的值 。 风俗习惯(`myapp://cb`)作逐字记录.
-   `isSafeRedirectURLScheme` 拒绝 `javascript:`, (中文(简体) ), `data:`, (中文(简体) ), `vbscript:`, (中文(简体) ), `blob:`, (中文(简体) ), `filesystem:`, (中文(简体) ), `file:`, (中文(简体) ), `about:` 和任何不解析的东西.

### 生成名称、秘密和标识

```typescript
import { createNanoID, generateName, generateSecret, isUUID } from '@authup/kit';

generateName(); // e.g. 'brave-otter-1a2b3c'
generateName('seed'); // the same name for the same seed
generateSecret(); // 32 characters, never seeded
createNanoID(); // 21 characters of [0-9a-z]
createNanoID(10);
isUUID('7c9e6679-7425-40de-944b-e07fc1f099d6'); // true
```

-   `generateName` 总是返回弹片( e)`[a-z0-9-]`,最多128个字符). 通过水分稳定种子,如Vue's `useId()` 在服务器和客户端渲染上获得同名名称.
-   `generateSecret` 故意不取出种子:一个秘密不得取自可预见值. 只生成客户端.

### 序列化存储值

```typescript
import { deserialize, serialize } from '@authup/kit';

serialize('admin'); // '"admin"'
serialize(false); // 'false'
deserialize<boolean>('false'); // false
deserialize<string>('admin'); // 'admin'
```

`serialize` JSON 引用字符串,写布尔,数字, `null` 财务报告和审定财务报表 `undefined` 赤出一身来 `RegExp` 或者说 `bigint` 输入其字符串形式. `deserialize` 实值 `destr`,所以它既读取了引文,又读取了赤裸裸的遗产串.

### 在子路径下构建 URL

```typescript
import { buildURL, getURLBasePath } from '@authup/kit';

buildURL('https://acme.tld/api', 'authorize').href; // 'https://acme.tld/api/authorize'
getURLBasePath('https://acme.tld/auth/'); // '/auth'
getURLBasePath('https://acme.tld'); // ''
```

`new URL('authorize', 'https://acme.tld/api')` 滴数 `/api`· ; `buildURL` 留着吧 不在或无效的基数抛出, 如 `new URL`。 。 。 .

## API 密码

| 导出 | 仁爱 | 目的 |
| --- | --- | --- |
| `isSimpleMatch`, (中文(简体) ), `isSimpleURLMatch`, (中文(简体) ), `patternHasGlobstarInAuthority` | 函数 | 值和 URL 的 Glob 匹配; 检测 a `**` 在图案的权威中( 在写入时拒绝它) |
| `isSafeRedirectURLScheme` | 函数 | 拒绝脚本能力和本地重定向方案 |
| `generateName`, (中文(简体) ), `generateSecret`, (中文(简体) ), `createNanoID`, (中文(简体) ), `slugify` | 函数 | 可读姓名、客户秘密、随机身份、流言 |
| `isUUID`, (中文(简体) ), `isBCryptHash` | 函数 | 形状检查 |
| `serialize`, (中文(简体) ), `deserialize` | 函数 | 保留类型字符串存储 |
| `buildURL`, (中文(简体) ), `getURLBasePath`, (中文(简体) ), `makeURLPublicAccessible` | 函数 | URL 帮助者 (`makeURLPublicAccessible` 重写 `0.0.0.0` 改为 `127.0.0.1`(中文(简体) ) |
| `base64URLEncode`, (中文(简体) ), `base64URLDecode`, (中文(简体) ), `base64ToArrayBuffer`, (中文(简体) ), `arrayBufferToBase64` | 函数 | Base64和Base64url转换 |
| `template` | 函数 | 替换 `{{key}}` 数据对象的占位符; 未知的密钥保持未动 |
| `toArray`, (中文(简体) ), `toStringArray`, (中文(简体) ), `toArrayElement` | 函数 | 规范一个值或数组 |
| `isObject`, (中文(简体) ), `isScalar`, (中文(简体) ), `hasOwnProperty`, (中文(简体) ), `isPropertySet`, (中文(简体) ), `extendObject`, (中文(简体) ), `flattenObject`, (中文(简体) ), `pickRecord`, (中文(简体) ), `omitRecord`, (中文(简体) ), `omitObjectProperties`, (中文(简体) ), `removeObjectProperty` | 函数 | 对象助手 |
| `wait` | 函数 | 基于承诺的延迟 |
| `DecisionStrategy` | 语句 | `affirmative`, (中文(简体) ), `unanimous`, (中文(简体) ), `consensus` |
| `ValidatorGroup` | 语句 | `create`, (中文(简体) ), `update`, (中文(简体) ), `provisioning` |
| `EnvironmentName` | 语句 | `production`, (中文(简体) ), `test`, (中文(简体) ), `development` |
| `ObjectLiteral`, (中文(简体) ), `Result`, (中文(简体) ), `ObjectRequired`, (中文(简体) ), `ObjectOptional` | 类型 | 共享类型助手; `Result<T>` 实值 `{ success: true, data } | { success: false, error }` |

## 许可证

由 所制

现按 [Apache 2.0 许可证](https://npmcn.com/package/%40authup/kit/LICENSE)。 。 。 .

## 常见问题

### @authup/kit 是什么？

互通Authup共享的无上下文助手: URL模式匹配,ids,名称和序列化\.

### 如何安装 @authup/kit？

在项目目录运行 npm install @authup/kit，或使用 pnpm add / yarn add / bun add。

### @authup/kit 支持 TypeScript 吗？

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

### @authup/kit 支持 ESM 还是 CommonJS？

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

### @authup/kit 需要什么版本的 Node\.js？

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

### @authup/kit 可以商用吗？

@authup/kit 使用 Apache-2\.0 许可。宽松许可：允许商业使用、修改和再分发，并附带明确的专利授权；分发时需保留许可与 NOTICE 文件，修改过的文件要注明改动。以上为概括，不构成法律意见，请以许可原文为准。

### @authup/kit 的下载量有多少？

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

### @authup/kit 还在维护吗？

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

