# @authup/errors 中文文档

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

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

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

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

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

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

## 中文简介

Authup的出错分类,出错代码和代码到HTTP状态映射,其中有幸存了JSON的卫士.

## 安装

```sh
npm install @authup/errors
```

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

## README

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

# @ authup/ 错误

**Authup的出错分类,出错代码和代码到HTTP状态映射,其中有幸存了JSON的卫士.**  
一个用于服务器,HTTP客户端和控制台的错误词汇,因此一个呼叫器在代码上分出,而不是消息.

[![npm version](https://img.shields.io/npm/v/@authup/errors)](https://www.npmjs.com/package/@authup/errors) [![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/errors/LICENSE)

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

* * *

## 合适的话

每个丢出或检查出错的工作空间都会导入此软件包: 服务器丢出其类, HTTP 错误的中间软件映射它们 `code` 地位,以及 [`@authup/core-http-kit`](https://github.com/authup/authup/tree/master/packages/core-http-kit) 控制台从响应机构读出同样的代码。 当您自己的代码调用 Authup API 时直接安装它, 并想要在什么出错上分支(`isEntityNotFoundError(error)`, (中文(简体) ), `error.code === ErrorCode.JWT_EXPIRED`),或者当您在Authup的服务器包上构建一个服务,并想要抛出同样的中间软件所理解的错误时.

## 安装

```shell
npm install @authup/errors
```

仅限无害环境管理。 节点.js `>=26.0.0`它有一个运行中的依赖, `@ebec/core`,和无节点专用API.

## 使用量

### 丢入并映射到状态

```typescript
import { EntityNotFoundError, ErrorCode, httpStatusFromCode } from '@authup/errors';

const error = new EntityNotFoundError({ entity: 'user' });

error.message; // 'The user was not found.'
error.code === ErrorCode.ENTITY_NOT_FOUND; // true
httpStatusFromCode(error.code); // 404
httpStatusFromCode(ErrorCode.REGISTRATION_DISABLED); // 400, the fallback
```

-   每门课都延长 `AuthupError` 并设定自己的 `code` 和默认消息。 通过一个字符串来替换信件,或者一个选项对象(`message`, (中文(简体) ), `code`, (中文(简体) ), `data`, (中文(简体) ), `cause`,以及 `entity` 实体类别).
-   `data` 合并为JSON表格,这就是 `LoginThrottledError`, (中文(简体) ), `MfaThrottledError` 财务报告和审定财务报表 `DeviceVerificationThrottledError` 携带 `retryAfter` (秒)给客户.
-   `httpStatusFromCode(code, fallback = 400)` 来自 `ERROR_CODE_TO_STATUS`;没有列出的任何代码都会有倒计时. `codeFromHttpStatus` 错误来自国外来源.

### 识别出过线的错误

```typescript
import { isAuthupError, isEntityNotFoundError, serializeError } from '@authup/errors';

declare const error: Error;

const body = JSON.parse(JSON.stringify(serializeError(error)));

if (isEntityNotFoundError(body)) {
    // body.code === 'entity_not_found'
}

if (isAuthupError(body)) {
    console.log(body.code, body.message);
}
```

-   `serializeError` 电话 `toJSON()` 当错误有一个,否则会扩散自己的属性加 `name` 财务报告和审定财务报表 `message`。当错误变成反应机构时使用它.
-   警卫不需要了 `instanceof`。每类邮票 a `Symbol.for(...)` 标记,和 `toJSON()` 将标记链写为同一键下的字符串,所以一个守护者会识别活出错误和解析过的JSON.
-   `normalizeError(value)` 将任何抛出的东西(字符串、数字、对象)变成真实 `Error`。 。 。 .

## API 密码

| 导出 | 仁爱 | 目的 |
| --- | --- | --- |
| `AuthupError` | 类 | 基类: a `BaseError` 从 `@ebec/core` 带有可选 `data` 记录合并为 `toJSON()` |
| `BadRequestError`, (中文(简体) ), `ValidationError` | 类 | `bad_request` (400个) |
| `UnauthorizedError`, (中文(简体) ), `AuthHeaderError`, (中文(简体) ), `BearerTokenMalformedError` | 类 | `identity_unauthorized`, (中文(简体) ), `unsupported_auth_header_type`, (中文(简体) ), `bearer_token_malformed` (401) (中文(简体) ) |
| `EntityNotFoundError`, (中文(简体) ), `EntityConflictError`, (中文(简体) ), `EntityInactiveError`, (中文(简体) ), `EntityCredentialsInvalidError` | 类 | `entity_not_found` (404个), `entity_conflict` (409个), `entity_inactive`, (中文(简体) ), `invalid_credentials` (400);选项 `entity` 在信件中指定实体 |
| `LoginThrottledError`, (中文(简体) ), `MfaThrottledError`, (中文(简体) ), `DeviceVerificationThrottledError` | 类 | 429辆 `data.retryAfter` |
| `InternalError` | 类 | `internal_error` (500个) |
| `isError`, (中文(简体) ), `isAuthupError`, (中文(简体) ), `is<Class>Error` | 函数 | 鸭式警卫,每班1名 |
| `ErrorCode` | 语句 | 每个代码 Authup 发布:通用,实体,身份,JWT,JWK,OAuth2,许可和政策代码 |
| `ERROR_CODE_TO_STATUS`, (中文(简体) ), `httpStatusFromCode`, (中文(简体) ), `codeFromHttpStatus` | const, 函数 | 代码到状态映射 |
| `serializeError`, (中文(简体) ), `normalizeError` | 函数 | JSON边界和未知价值正常化 |
| `AuthupErrorOptions`, (中文(简体) ), `AuthupErrorInput`, (中文(简体) ), `AuthupEntityErrorOptions`, (中文(简体) ), `AuthupEntityErrorInput` | 类型 | 构造输入类型 |
| `matchesInstanceof`, (中文(简体) ), `hasInstanceof`, (中文(简体) ), `markInstanceof`, (中文(简体) ), `serializeInstanceofChain`, (中文(简体) ), `INSTANCEOF_PROPERTY`, (中文(简体) ), `BASE_ERROR_INSTANCE` | 再出口 | 这个 `@ebec/core` 标记原始的,用于您自己的错误类 |

每个类别还输出其标记符号(`ENTITY_NOT_FOUND_ERROR_INSTANCE`(中文(简体) ).

## 页:1

-   **`isAuthupError` 需要标记链.** 一个没有 `@instanceof` 列表(手建) `{ code, message }`,或者旧服务器上的尸体)不是 `AuthupError`即使它带有Authup代码。 读取 `body.code` 直接在这种情况下.
-   **一个班级警卫也接受平原代码.** `isEntityNotFoundError` 对任何 `AuthupError` 谁 `code` 实值 `entity_not_found`不仅在那种情况下. `ValidationError` 财务报告和审定财务报表 `BadRequestError` 份额 `bad_request`这样 `isValidationError` 财务报告和审定财务报表 `isBadRequestError` 无论是哪门课都一样.
-   **状态存在于映射中,而非出错.** 没有类包含 HTTP 状态; 代码未在 `ERROR_CODE_TO_STATUS` 默认为 400.

## 许可证

由 所制

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

## 常见问题

### @authup/errors 是什么？

Authup的出错分类,出错代码和代码到HTTP状态映射,其中有幸存了JSON的卫士\.

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

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

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

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

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

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

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

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

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

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

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

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

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

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

