@arcjet/redact
v1.4.0
Published
Arcjet sensitive information redaction library
Readme
@arcjet/redact
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 TypeScript and JavaScript sensitive information redaction library.
See docs.arcjet.com for more on the API.
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 @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
@arcjet/analyze-wasm.
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:
npm install @arcjet/redactUse
import { redact } from "@arcjet/redact";
const value = "Hi, my name is John and my email adress is [email protected]";
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 [email protected]"API
This package exports the identifiers
redact.
There is no default export.
This package exports the TypeScript types
ArcjetSensitiveInfoType and
RedactOptions.
ArcjetSensitiveInfoType
This type represents the kinds of sensitive information that can be detected out of the box.
Type
type ArcjetSensitiveInfoType =
| "credit-card-number"
| "email"
| "ip-address"
| "phone-number";RedactOptions
You can pass these options to configure how redact works.
Fields
contextWindowSize(number, default:1) — the number of tokens to consider for contextdetect((tokens: string[]) => ReadonlyArray<string | undefined>, optional) — a custom detection function to identify sensitive informationentities(Array<string>, default: all builtin and detect entities) — which entities to redact; this includes the builtinArcjetSensitiveInfoTypes and any custom types returned by yourdetectfunctionreplace((entity: string, plaintext: string) => string | undefined, optional) — a custom replace function to control how sensitive information is redacted
redact(candidate[, options])
Redacts sensitive information in a string. You can use the returned
unredact function to restore the original values later.
Parameters
candidate(string) — the string to redactoptions(RedactOptions, optional) — configuration for what to redact and how
Returns
This function returns a Promise that resolves to a tuple with the redacted
string and a function to unredact it (Promise<[string, Unredact]>).
