Releases: Tuteliq/node
Releases · Tuteliq/node
v2.7.1
Bug Fix
- Fix type re-exports — Synthetic content types and updated verification types (
VerificationResult,DocumentDetails,MrzFields,BarcodeResult,DocumentAuthenticityResult) were not re-exported from the main entry point in v2.7.0. TypeScript consumers would get "has no exported member" errors when importing these types from@tuteliq/sdk. Now all types are correctly exported.
No API or runtime changes — this is a types-only fix.
v2.7.0
Synthetic Content Detection
Five new methods for detecting AI-generated content across all modalities:
detectSyntheticText(input)— Detect AI-generated text with 10 child-safety-focused categories (synthetic CSAM narratives, deepfake impersonation, AI-generated grooming scripts)detectSyntheticImage(input)— 6-signal forensic pipeline: vision AI, EXIF metadata, pixel statistics, C2PA Content Credentials, watermark detection, perceptual hashingdetectSyntheticAudio(input)— Dual-signal audio forensics: transcript analysis + mel spectrogram vision + quantitative audio statisticsdetectSyntheticVideo(input)— 5-track video analysis: per-frame vision, temporal face consistency, lip-sync correlation, spectral audio, transcript detectiongetSyntheticProfile(customerId)— Account-level 30-day rolling window with trend detection and category distribution
Document Intelligence in Verification
getVerificationSession() now returns full document intelligence when verification completes:
- MRZ validation — ICAO 9303 check-digit validation for passports and ID cards (TD1/TD2/TD3)
- PDF417 barcode reading — AAMVA-structured data from US/CA driver's licenses
- 45-country document number validation — Algorithmic validation of document numbers
- Document authenticity — AI-powered assessment with security feature detection and recapture detection
- Cross-referencing — MRZ ↔ OCR ↔ barcode field consistency checks
New Types
SyntheticClassification,SyntheticTextResult,SyntheticImageResult,SyntheticAudioResult,SyntheticVideoResult,SyntheticProfileSyntheticVisionResult,MetadataAnalysis,ProvenanceResult,ForensicSignals,KnownSyntheticMatchAudioStats,TemporalConsistency,LipSyncResultVerificationResult,DocumentDetails,MrzFields,BarcodeResult,DocumentAuthenticityResult
Breaking Changes
VerificationSessionResult.resulttype changed fromAgeVerificationResult | IdentityVerificationResulttoVerificationResult | null. The old types are deprecated but still exported.
Credits
| Method | Credits |
|---|---|
detectSyntheticText() |
2 |
detectSyntheticImage() |
5 |
detectSyntheticAudio() |
4-7 |
detectSyntheticVideo() |
2 + 3/frame + 2 |
getSyntheticProfile() |
0 (read-only) |
v2.5.0
What's New
Added
countrycontext field — Pass ISO 3166-1 alpha-2 country code (e.g.,"GB","US","SE") in thecontextobject to receive geo-localised crisis helpline data in detection responses. Falls back to user profile country if omitted.
Improved
- Action escalation for minors — All detection endpoints now enforce minimum
flag_for_reviewwhen harm is detected and the subject is a minor. Criminal indicators (sextortion, trafficking, CSAM) targeting minors automatically escalate toimmediate_intervention. - Risk score distribution — Detection responses now use graduated scoring across the full 0.0–1.0 range instead of clustering around a single value.
- Evidence tactic format — Evidence tactic fields are now normalised to SCREAMING_SNAKE_CASE (e.g.,
EMOTIONAL_MANIPULATIONinstead ofEmotional Manipulation).
Install
npm install @tuteliq/sdk@2.5.0v2.4.1
Documentation
- Add
sender_trustbehaviour documentation - Add context fields reference table
v2.4.0
What's Changed
- Add
confidencefield toAnalyzeResult(highest from sub-results) - Add optional
risk_leveltoUnsafeResulttype
v2.3.1
Fixes
- Align README verification examples with actual API response (
resultfield instead of removedage_result/identity_result) - Fix
VerificationSessionResulttype to use unifiedresultfield with optionalcreated_at,expires_at, andmode
v2.3.0 — Age & Identity Verification
What's New
Session-Based Verification
A new session-based flow for age and identity verification. The SDK creates a verification session and provides a URL — the user completes the verification (document capture, liveness checks, selfie) in a hosted web UI. Your application polls for the result.
import { Tuteliq, VerificationMode, VerificationSessionStatus } from '@tuteliq/sdk'
const tuteliq = new Tuteliq(process.env.TUTELIQ_API_KEY)
// 1. Create a session
const session = await tuteliq.createVerificationSession({
mode: VerificationMode.AGE,
})
// 2. Open session.url in the user's browser
console.log('Verify at:', session.url)
// 3. Poll for result
const result = await tuteliq.getVerificationSession(session.session_id)
if (result.status === VerificationSessionStatus.COMPLETED) {
console.log('Is minor:', result.age_result?.is_minor)
}New Methods
| Method | Description |
|---|---|
createVerificationSession(input) |
Create a session and get a verification URL |
getVerificationSession(id) |
Poll session status and retrieve the result |
cancelVerificationSession(id) |
Cancel an active session (no credits charged) |
getAgeVerification(id) |
Retrieve a past age verification result |
getIdentityVerification(id) |
Retrieve a past identity verification result |
New Enums
| Enum | Values |
|---|---|
VerificationMode |
AGE, IDENTITY |
DocumentType |
PASSPORT, ID_CARD, DRIVERS_LICENSE |
VerificationStatus |
VERIFIED, FAILED, NEEDS_REVIEW |
VerificationSessionStatus |
PENDING, IN_PROGRESS, COMPLETED, FAILED, EXPIRED, CANCELLED |
Interactive Demo
A new examples/verification-demo/ directory contains a self-contained web app for testing verification locally:
cd examples/verification-demo
npm install && npm start
# Open http://localhost:3456Credits
- Age verification: 10 credits per completed verification
- Identity verification: 15 credits per completed verification
- Credits are only charged when the user completes the flow
Full Changelog: v2.2.2...v2.3.0
v2.2.2
What's Changed
- Add
MessageAnalysisinterface for per-message breakdown returned by conversation-aware detection endpoints - Add
message_analysisoptional field toDetectionResultandGroomingResult - Update README with usage examples
v2.2.1
Add free certification program to documentation
v2.2.0
Added
- Fraud detection: social engineering, app fraud, romance scam, mule recruitment
- Safety extended: gambling harm, coercive control, vulnerability exploitation, radicalisation
- Multi-endpoint analysis (analyse multiple detections in a single call)
- Video analysis support
- Language and LanguageStatus enums
- SUPPORTED_LANGUAGES constant