@tracetail/angular
Version:
Angular SDK for TraceTail browser fingerprinting - over 99.5% accuracy
201 lines (157 loc) • 4.21 kB
Markdown
Official Angular SDK for TraceTail - Enterprise Browser Fingerprinting with over 99.5% accuracy.
- 🎯 **Over 99.5% Accuracy** - Industry-leading browser fingerprinting
- ⚡ **<25ms Performance** - Lightning-fast fingerprint generation
- 🛡️ **Fraud Detection** - Built-in risk scoring and fraud prevention
- 🔄 **Real-time Updates** - Live visitor tracking and analytics
- 📦 **27KB Bundle** - Lightweight and optimized
- 🏗️ **Angular 14+** - Full support for modern Angular versions
```bash
npm install @tracetail/angular
```
```typescript
import { TraceTailModule } from '@tracetail/angular';
@NgModule({
imports: [
TraceTailModule.forRoot({
apiKey: 'your-api-key-here',
config: {
enhanced: true
}
})
]
})
export class AppModule { }
```
```typescript
import { TraceTailService } from '@tracetail/angular';
@Component({
template: `
<div *ngIf="fingerprint$ | async as fp">
Visitor: {{ fp.visitorId }}
Risk: {{ fp.riskScore }}
</div>
`
})
export class MyComponent {
fingerprint$ = this.traceTail.fingerprint$;
constructor(private traceTail: TraceTailService) {}
}
```
Protect routes from high-risk visitors:
```typescript
const routes: Routes = [
{
path: 'checkout',
component: CheckoutComponent,
canActivate: [FraudProtectionGuard],
data: { maxRiskScore: 0.5 }
}
];
```
Apply fraud detection to any element:
```html
<button
appFraudDetection="high"
[]="true"
class="purchase-btn"
>
Complete Purchase
</button>
```
Automatically add visitor ID to all API requests:
```typescript
// Automatically included when using forRoot()
// Adds X-TraceTail-Visitor-ID header to requests
```
Track user actions with fraud detection:
```typescript
async onLogin(credentials: any) {
const result = await this.traceTail.trackEvent('login', {
username: credentials.username
});
if (result.fraudulent) {
// Handle fraud
}
}
```
- `fingerprint$: Observable<Fingerprint>` - Current fingerprint data
- `loading$: Observable<boolean>` - Loading state
- `error$: Observable<Error>` - Error state
- `getFingerprint(): Promise<Fingerprint>` - Get fingerprint as promise
- `trackEvent(event, data?): Promise<TrackingResult>` - Track events
- `checkFraud(data): Promise<FraudResult>` - Check fraud risk
- `retry(): void` - Retry fingerprinting
- `refresh(): Promise<void>` - Force refresh
```typescript
interface Fingerprint {
visitorId: string;
confidence: number; // 0-1
riskScore: number; // 0-1
fraudulent: boolean;
signals: SignalData;
timestamp: Date;
}
```
```typescript
@Component({
template: `
<form (ngSubmit)="login()">
<div *ngIf="(riskScore$ | async) > 0.7" class="warning">
High risk detected - additional verification required
</div>
<!-- form fields -->
</form>
`
})
export class LoginComponent {
riskScore$ = this.traceTail.fingerprint$.pipe(
map(fp => fp?.riskScore || 0)
);
constructor(private traceTail: TraceTailService) {}
async login() {
const fp = await this.traceTail.getFingerprint();
if (fp.riskScore > 0.7) {
// Require 2FA
}
}
}
```
```typescript
@Injectable()
export class PersonalizationService {
preferences$ = this.traceTail.fingerprint$.pipe(
switchMap(fp => fp ?
this.http.get(`/api/preferences/${fp.visitorId}`) :
of(null)
)
);
constructor(
private traceTail: TraceTailService,
private http: HttpClient
) {}
}
```
- 📚 [Documentation](https://docs.tracetail.com/angular)
- 💬 [Discord Community](https://discord.gg/tracetail)
- 📧 [Email Support](mailto:support@tracetail.com)
- 🐛 [Issue Tracker](https://github.com/tracetail/tracetail/issues)
MIT - see [LICENSE](LICENSE) for details.