@arcjet/redact
Version:
Arcjet sensitive information redaction library
85 lines (61 loc) • 3 kB
Markdown
<a href="https://arcjet.com" target="_arcjet-home">
<picture>
<source media="(prefers-color-scheme: dark)" srcset="https://arcjet.com/logo/arcjet-dark-lockup-voyage-horizontal.svg">
<img src="https://arcjet.com/logo/arcjet-light-lockup-voyage-horizontal.svg" alt="Arcjet Logo" height="128" width="auto">
</picture>
</a>
# `/redact`
<p>
<a href="https://www.npmjs.com/package/@arcjet/redact">
<picture>
<source media="(prefers-color-scheme: dark)" srcset="https://img.shields.io/npm/v/%40arcjet%2Fredact?style=flat-square&label=%E2%9C%A6Aj&labelColor=000000&color=5C5866">
<img alt="npm badge" src="https://img.shields.io/npm/v/%40arcjet%2Fredact?style=flat-square&label=%E2%9C%A6Aj&labelColor=ECE6F0&color=ECE6F0">
</picture>
</a>
</p>
[Arcjet][arcjet] helps developers protect their apps in just a few lines of
code. Implement rate limiting, bot protection, email verification, and defense
against common attacks.
This is the [Arcjet][arcjet] TypeScript and JavaScript sensitive information
redaction library.
- [npm package (`/redact`)](https://www.npmjs.com/package/@arcjet/redact)
- [GitHub source code (`redact/` in `arcjet/arcjet-js`)](https://github.com/arcjet/arcjet-js/tree/main/redact)
## What is this?
This package provides functionality to redact sensitive info.
The work is done in WebAssembly but is called here from JavaScript.
The WebAssembly files are in [`/redact-wasm`][github-arcjet-redact-wasm].
For more info on why we maintain our WebAssembly and JavaScript projects like
this,
see [“What is this?” in the readme of
`/analyze-wasm`][github-arcjet-analyze-wasm-what].
## When should I use this?
You can use this package to redact sensitive information locally.
You can redact email addresses, credit card numbers, and more.
It is also possible to reverse the process: to un-redact what was found.
## Install
This package is ESM only.
Install with npm in Node.js:
```sh
npm install /redact
```
## Reference
The full reference documentation can be found in the [Arcjet docs][redact-ref].
## Use
```ts
import { redact } from "@arcjet/redact";
const value = "Hi, my name is John and my email adress is john@example.com";
const [redacted, unredact] = await redact(value, {
entities: ["email", "phone-number"],
});
console.log(redacted);
// => "Hi, my name is John and my email adress is <Redacted email #0>"
const unredacted = unredact("Your email address is <Redacted email #0>");
console.log(unredacted); // "Your email address is john@example.com"
```
## License
[Apache License, Version 2.0][apache-license] © [Arcjet Labs, Inc.][arcjet]
[apache-license]: http://www.apache.org/licenses/LICENSE-2.0
[arcjet]: https://arcjet.com
[redact-ref]: https://docs.arcjet.com/redact/reference
[github-arcjet-analyze-wasm-what]: https://github.com/arcjet/arcjet-js/tree/main/analyze-wasm#what-is-this
[github-arcjet-redact-wasm]: https://github.com/arcjet/arcjet-js/tree/main/redact-wasm