# @datadog/native-iast-rewriter 中文文档

规范地址：https://npmcn.com/package/%40datadog/native-iast-rewriter/

版本：2\.8\.0
npm 元数据更新时间：2025-10-24T07:42:09.326Z
中文译文更新时间：2026-11-11T13:24:52.310Z
软件包许可：Apache-2\.0

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

原始 npm 页面：https://www.npmjs.com/package/%40datadog/native-iast-rewriter
原文对照：https://npmcn.com/package/%40datadog/native-iast-rewriter/?lang=original
项目主页：https://github.com/DataDog/dd-native-iast-rewriter-js/blob/main/README.md
源码仓库：https://github.com/DataDog/dd-native-iast-rewriter-js

弃用说明：Package no longer supported\. Contact Support at https://www\.npmjs\.com/support for more info\.

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

- 包体积（解压后）：2.6 MB，17 个文件
- 模块格式：CommonJS
- TypeScript 类型：包内自带
- Node.js 要求：\>= 10
- 运行依赖：2 个
- 首次发布：2022-10-31T14:21:15.833Z
- 最新版本发布：2025-01-13T11:05:04.285Z
- 近 30 天下载量：2396731（2026-10-12 至 2026-11-10，npm 官方下载统计）
- 已发布版本数：32（近 12 个月 0 个）

## 中文简介

节点JS 的数据犬 IAST 仪器附加

## 安装

```sh
npm install @datadog/native-iast-rewriter
```

也可以使用：`pnpm add @datadog/native-iast-rewriter`、`yarn add @datadog/native-iast-rewriter`、`bun add @datadog/native-iast-rewriter`

## README

# dd-native-iast-rewrite-js (英语)

Nodejs 本地 AST 重写基于 [快速网络编译器 o SWC 编译器](https://github.com/swc-project/swc) 用于仪器Javascript源文件.

## 工作流程

1.  解析 Javascript 代码以获取 AST
2.  替换某些 AST 表达式 - > 目前它集中于某些操作者,例如: `+` 财务报告和审定财务报表 `+=`,模板文字和一些字符串方法
3.  从修改的 AST 生成新的 Javascript 代码 - > 除了Javascript代码之外,相应的源图在必要时会用原始源图将其与链接回.

## 使用量

```javascript
const Rewriter = require('@datadog/native-iast-rewriter')

const rewriter = new Rewriter(rewriterConfig)
const result = rewriter.rewrite(code, filename)
```

## 配置选项

```javascript

RewriterConfig {
  // enable/disable sourceMap chaining - false by default
  chainSourceMap?: boolean

  // enable/disable comments printing - false by default
  comments?: boolean

  // establishes the prefix for the injected local variables - 6 random characters by default
  localVarPrefix?: string

  // sets the list of methods or operators to be rewritten
  csiMethods?: Array<CsiMethod>

  // extracts hardcoded string literals - true by default
  literals?: boolean
}

CsiMethod {
  // name of the String method to rewrite
  src: string

  // optional name of the replacement method. If not specified a convention shall be used
  dst?: string

  // indicates if it is an operator like +
  operator?: boolean
}
```

## 示例

```javascript
const Rewriter = require('@datadog/native-iast-rewriter')

const rewriterConfig = {
  csiMethods: [{ src: 'substring' }],
  localVarPrefix: 'test',
}

const rewriter = new Rewriter(rewriterConfig)

const code = `function sub(a) {
  return a.substring(1)
}`
const result = rewriter.rewrite(code, filename)

console.log(result.content)
/*
function sub(a) {
  let __datadog_test_0, __datadog_test_1;
  return (__datadog_test_0 = a, __datadog_test_1 = __datadog_test_0.substring, _ddiast.stringSubstring(__datadog_test_1.call(__datadog_test_0, 1), __datadog_test_1, __datadog_test_0, 1));
}
*/
```

## 本地设置

要在当地设置工程,请安装 `cargo` 财务报告和审定财务报表 `wasm-pack`数字 :

```
$ curl https://sh.rustup.rs -sSf | sh

$ cargo install wasm-pack
```

和项目依赖关系:

```
$ npm install
```

### 构建

以

```
$ npm run build
```

它默认会编译 WASM 二进制 然后就可以用

```
$ npm t
```

## 常见问题

### @datadog/native-iast-rewriter 是什么？

节点JS 的数据犬 IAST 仪器附加注意：该包已被作者标记为弃用——Package no longer supported\. Contact Support at https://www\.npmjs\.com/support for more info\.

### 如何安装 @datadog/native-iast-rewriter？

在项目目录运行 npm install @datadog/native-iast-rewriter，或使用 pnpm add / yarn add / bun add。

### @datadog/native-iast-rewriter 支持 TypeScript 吗？

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

### @datadog/native-iast-rewriter 支持 ESM 还是 CommonJS？

以 CommonJS 形式发布，可以直接 require\(\)；在 ES Module 项目中也可以用 import 引入（Node\.js 会把 module\.exports 作为默认导出）。

### @datadog/native-iast-rewriter 需要什么版本的 Node\.js？

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

### @datadog/native-iast-rewriter 可以商用吗？

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

### @datadog/native-iast-rewriter 的下载量有多少？

根据 npm 官方下载统计，@datadog/native-iast-rewriter 在 2026/10/12 – 2026/11/10 这 30 天内被下载 2,396,731 次，日均约 79,891 次。下载量会把 CI 构建、镜像同步和作为其他包依赖的安装一并计入，适合横向比较热度，不能直接等同于使用人数。

### @datadog/native-iast-rewriter 还在维护吗？

最新版本 2\.8\.0 发布于 2025/01/13（1\.8 年前）；至今共发布 32 个版本，其中过去 12 个月发布了 0 个；首次发布于 2022/10/31。作者已将其标记为弃用，新项目建议寻找替代方案。

