@tirs/angular
v0.2.11
Published
Angular bindings for the Tirs Care SDK: provideTirs(config) + TirsService.
Readme
@tirs/angular
Angular bindings for the Tirs Customer Care SDK. Adds console + network capture to your app so customer recordings made through Tirs care links arrive with full technical context.
What it does
provideTirs(config)initializes the SDK eagerly at application bootstrap — before your own code runs — and mounts the recording panel support. SSR-safe (inert on the server), no module imports, works with standalone bootstrap.TirsServiceexposes the live SDK state through DI.
How to use
npm i @tirs/angular// app.config.ts
import { ApplicationConfig } from '@angular/core';
import { provideTirs } from '@tirs/angular';
export const appConfig: ApplicationConfig = {
providers: [
provideTirs({ key: 'YOUR-KEY' }),
// …your other providers
],
};Your key comes from the Tirs app: Customer care → Domains & Install.
Optionally, read SDK state anywhere:
import { Component, inject } from '@angular/core';
import { TirsService } from '@tirs/angular';
@Component({ /* … */ })
export class SupportIndicatorComponent {
private tirs = inject(TirsService);
get recording(): boolean {
return this.tirs.status === 'capturing';
}
// this.tirs.on('session-start', () => …) // also: 'session-stop', 'status'
}Optional configuration
provideTirs() accepts the capture runtime options, plus a recorder key for panel placement.
| Option | Type | Default | What it does |
| --- | --- | --- | --- |
| key | string | — | Your workspace key. |
| redact | boolean | true | Scrub PII from captured logs before anything leaves the page. |
| preroll | number (ms) | 0 | Keep a rolling window of activity from before recording starts. |
| denyUrls | (RegExp \| string)[] | [] | Never capture bodies for matching URLs. The request is still logged; only the body is withheld. |
| captureBodies | boolean | true | false records metadata only — no bodies anywhere. |
| maxBodyBytes | number | 65536 | Per-body cap; larger bodies are truncated and marked. |
| debug | boolean | false | Log the SDK's own lifecycle. Useful while installing. |
| recorder | RecorderOptions | — | Panel placement: position, offset, zIndex. |
provideTirs({
key: 'YOUR-KEY',
preroll: 30_000, // include the 30s before recording started
denyUrls: [/\/auth\//, '/billing/'], // keep credentials out of the logs
recorder: { position: 'bottom-left' } // our chat widget owns bottom-right
})Panel option details are on the @tirs/recorder page.
TirsService
tirs.status; // 'dormant' | 'armed' | 'capturing' | 'finalizing'
tirs.on('session-start', () => {}); // also: 'session-stop', 'status' — returns unsubscribe
tirs.stop(); // abort a live capture and drop buffersMIT © Tirs
