@tirs/care
v0.2.11
Published
Customer Care plugin for the Tirs capture runtime: turns captured console + network activity into the extension-compatible wire files.
Readme
@tirs/care
The Customer Care plugin for the Tirs capture runtime. It turns the raw console and network activity captured during a recording session into the log files attached to a Tirs session — applying PII redaction and time-aligning every entry with the recorded video.
What it does
- Builds the session's network log (requests, responses, headers, bodies, timings, per-tab attribution) and console log (level, message, timestamp) when a recording stops.
- Applies redaction before anything leaves the page: JWTs, bearer tokens, API keys, passwords, emails, credit cards (with checksum validation to avoid false positives), IBANs, phone numbers, connection strings, private keys and more. Entries that were redacted are flagged.
- Reports honestly: if capture limits truncated anything, the output says how much was dropped.
How to use
npm i @tirs/core @tirs/care @tirs/recorderimport { init } from '@tirs/core';
import { care } from '@tirs/care';
import { mountRecorder } from '@tirs/recorder';
const tirs = init({ key: 'YOUR-KEY', plugins: [care()] });
mountRecorder(tirs);That's the entire integration — the plugin runs automatically when a recording session ends.
Optional configuration
care() takes no options of its own. What it produces is shaped by the runtime options you
pass to init(), so configure it there:
| Runtime option | Effect on the log files |
| --- | --- |
| redact | true (default) scrubs PII from both log files and flags the affected entries. |
| denyUrls | Matching requests still appear in the network log, but their bodies are replaced with a placeholder. |
| captureBodies | false produces a metadata-only network log — every request listed, no bodies. |
| maxBodyBytes | Bodies above the cap are truncated and marked in place. |
| preroll | Includes activity from before recording began; those entries carry negative time offsets relative to the video. |
init({
key: 'YOUR-KEY',
plugins: [care()],
denyUrls: [/\/auth\//], // keep credentials out of the network log
preroll: 30_000, // include the 30s before the customer hit record
});See the @tirs/core page for the full option list and defaults.
If you use the framework packages (@tirs/react, @tirs/nextjs, @tirs/angular) or the
script-tag install, this plugin is already included; you don't need to add it yourself.
MIT © Tirs
