# @arcjet/inspect 中文文档

规范地址：https://npmcn.com/package/%40arcjet/inspect/

版本：1\.15\.0
npm 元数据更新时间：2026-10-28T18:47:27.967Z
中文译文更新时间：2026-11-06T14:45:52.234Z
软件包许可：Apache-2\.0

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

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

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

- 包体积（解压后）：37.5 kB，5 个文件
- 模块格式：ES Module
- TypeScript 类型：包内自带
- Node.js 要求：\>=22\.21\.0 \<23 \|\| \>=24\.5\.0
- 运行依赖：1 个
- 首次发布：2025-03-05T21:32:15.264Z
- 最新版本发布：2026-10-28T18:47:23.116Z
- 近 30 天下载量：40876（2026-10-07 至 2026-11-05，npm 官方下载统计）
- 已发布版本数：42（近 12 个月 30 个）

## 中文简介

检查决定的Arcjet公司作出了SDK

## 安装

```sh
npm install @arcjet/inspect
```

也可以使用：`pnpm add @arcjet/inspect`、`yarn add @arcjet/inspect`、`bun add @arcjet/inspect`

## README

[![Arcjet Logo](https://arcjet.com/logo/arcjet-light-lockup-voyage-horizontal.svg)](https://arcjet.com/)

# `@arcjet/inspect`

[![npm badge](https://img.shields.io/npm/v/%40arcjet%2Finspect?style=flat-square&label=%E2%9C%A6Aj&labelColor=ECE6F0&color=ECE6F0)](https://www.npmjs.com/package/@arcjet/inspect)

[弧喷](https://arcjet.com/) 检查SDK所作决定的公用事业.

-   [npm 软件包 (`@arcjet/inspect`(中文(简体) )](https://www.npmjs.com/package/@arcjet/inspect)
-   [GitHub 源代码 (`inspect/` 内 `arcjet/arcjet-js`(中文(简体) )](https://github.com/arcjet/arcjet-js/tree/main/inspect)

## 这是什么?

Arcjet将大量的元数据附于每个决定中. 此软件包的存在可以更容易地与Arcjet 决策进行互动, 以便通用 模式.

## 我什么时候用这个?

您可以直接访问决定的元数据, 但您可以使用此软件包 常见模式.

## 安装

这套方案只是无害环境管理. 在 Node.js 用 npm 安装 :

```sh
npm install @arcjet/inspect
```

## 使用

```ts
import http from "node:http";
import arcjet, { detectBot } from "@arcjet/next";
import { isMissingUserAgent } from "@arcjet/inspect";

// Get your Arcjet key at <https://app.arcjet.com>.
// Set it as an environment variable instead of hard coding it.
const arcjetKey = process.env.ARCJET_KEY;

if (!arcjetKey) {
  throw new Error("Cannot find `ARCJET_KEY` environment variable");
}

const aj = arcjet({
  key: arcjetKey,
  rules: [
    // `detectBot` lets you manage automated clients and bots.
    detectBot({ allow: [], mode: "LIVE" }),
  ],
});

const server = http.createServer(async function (
  request: http.IncomingMessage,
  response: http.ServerResponse,
) {
  const decision = await aj.protect(request);

  if (decision.isDenied()) {
    response.writeHead(403, { "Content-Type": "application/json" });
    response.end(JSON.stringify({ message: "Forbidden" }));
    return;
  }

  if (decision.results.some(isMissingUserAgent)) {
    response.writeHead(403, { "Content-Type": "application/json" });
    response.end(JSON.stringify({ message: "You are a bot!" }));
    return;
  }

  response.writeHead(200, { "Content-Type": "application/json" });
  response.end(JSON.stringify({ message: "Hello world" }));
});

server.listen(8000);
```

## API 密码

此软件包导出标识符 [`isMissingUserAgent`](https://npmcn.com/package/%40arcjet/inspect/#readme-ismissinguseragentresult), (中文(简体) ), [`isSpoofedBot`](https://npmcn.com/package/%40arcjet/inspect/#readme-isspoofedbotresult),以及 [`isVerifiedBot`](https://npmcn.com/package/%40arcjet/inspect/#readme-isverifiedbotresult)。 。 。 . 没有默认导出 .

此套件导出否 [类型脚本](https://www.typescriptlang.org/) 类型.

### `isMissingUserAgent(result)`

确定机器人规则是否检测到缺失的请求 `User-Agent` 头曰. 您可能想要屏蔽这样的请求, 因为缺少 `User-Agent` 信头是恶意请求的好指标,因为它是 建议 [_HTTP 语义学_ 从 IETF 调取](https://datatracker.ietf.org/doc/html/rfc9110#field.user-agent)。 。 。 .

###### 参数

-   `result` (单位:千美元)`ArcjetRuleResult`(中文(简体) ) ——由Arcjet决定产生的规则

###### 回返

此函数返回 `true` 如果机器人规则的结果是 `LIVE` 编辑 请求没有 `User-Agent` 标题, `false` 如果机器人规则的结果是 `LIVE` 请求中有一个 `User-Agent` 页眉,或 `undefined` 如果规则 结果是非机器人或 `DRY_RUN` (单位:千美元)`boolean | undefined`) (中文(简体) ).

###### 可用性

使用时可用瓶保护 `detectBot`。 。 。 . 见 [_瓶装保护_ 打开 `docs.arcjet.com`](https://docs.arcjet.com/bot-protection/quick-start) 需要更多信息.

### `isSpoofedBot(result)`

确定一个机器人规则结果是否检测到被窃取的请求 。 你也许想 封锁这些请求,因为这些请求很可能被窃取.

###### 参数

-   `result` (单位:千美元)`ArcjetRuleResult`(中文(简体) ) ——由Arcjet决定产生的规则

###### 回返

此函数返回 `true` 如果机器人规则的结果是 `LIVE` 检测 一个被刺穿的机器人, `false` 如果机器人规则的结果是 `LIVE` 没有检测到 被刺杀的机器人,或 `undefined` 如果规则结果是非机器人或 `DRY_RUN` (单位:千美元)`boolean | undefined`) (中文(简体) ).

###### 可用性

使用时可用瓶保护 `detectBot`。 。 。 . 见 [_瓶装保护_ 打开 `docs.arcjet.com`](https://docs.arcjet.com/bot-protection/quick-start) 需要更多信息.

### `isVerifiedBot(result)`

确定一个bot规则结果是否检测到一个经过验证的bot. 你也许想 允许此类请求或忽略其他信号.

###### 参数

-   `result` (单位:千美元)`ArcjetRuleResult`(中文(简体) ) ——由Arcjet决定产生的规则

###### 回返

此函数返回 `true` 如果机器人规则的结果是 `LIVE` 检测 一个经证实的机器人, `false` 如果机器人规则的结果是 `LIVE` 没有检测到 经核实的机器人,或 `undefined` 如果规则结果是非机器人或 `DRY_RUN` (单位:千美元)`boolean | undefined`) (中文(简体) ).

###### 可用性

使用时可用瓶保护 `detectBot`。 。 。 . 见 [_瓶装保护_ 打开 `docs.arcjet.com`](https://docs.arcjet.com/bot-protection/quick-start) 需要更多信息.

## 许可证

[Apache 许可证,2.0版本](http://www.apache.org/licenses/LICENSE-2.0) © [Arcjet实验室股份有限公司.](https://arcjet.com/)

## 常见问题

### @arcjet/inspect 是什么？

检查决定的Arcjet公司作出了SDK

### 如何安装 @arcjet/inspect？

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

### @arcjet/inspect 支持 TypeScript 吗？

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

### @arcjet/inspect 支持 ESM 还是 CommonJS？

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

### @arcjet/inspect 需要什么版本的 Node\.js？

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

### @arcjet/inspect 可以商用吗？

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

### @arcjet/inspect 的下载量有多少？

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

### @arcjet/inspect 还在维护吗？

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

