Skip to content

Releases: Tuteliq/node

v2.7.1

09 Apr 19:24

Choose a tag to compare

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

09 Apr 14:59

Choose a tag to compare

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 hashing
  • detectSyntheticAudio(input) — Dual-signal audio forensics: transcript analysis + mel spectrogram vision + quantitative audio statistics
  • detectSyntheticVideo(input) — 5-track video analysis: per-frame vision, temporal face consistency, lip-sync correlation, spectral audio, transcript detection
  • getSyntheticProfile(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, SyntheticProfile
  • SyntheticVisionResult, MetadataAnalysis, ProvenanceResult, ForensicSignals, KnownSyntheticMatch
  • AudioStats, TemporalConsistency, LipSyncResult
  • VerificationResult, DocumentDetails, MrzFields, BarcodeResult, DocumentAuthenticityResult

Breaking Changes

  • VerificationSessionResult.result type changed from AgeVerificationResult | IdentityVerificationResult to VerificationResult | 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

15 Mar 08:21

Choose a tag to compare

What's New

Added

  • country context field — Pass ISO 3166-1 alpha-2 country code (e.g., "GB", "US", "SE") in the context object 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_review when harm is detected and the subject is a minor. Criminal indicators (sextortion, trafficking, CSAM) targeting minors automatically escalate to immediate_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_MANIPULATION instead of Emotional Manipulation).

Install

npm install @tuteliq/sdk@2.5.0

v2.4.1

14 Mar 07:00

Choose a tag to compare

Documentation

  • Add sender_trust behaviour documentation
  • Add context fields reference table

v2.4.0

13 Mar 20:15

Choose a tag to compare

What's Changed

  • Add confidence field to AnalyzeResult (highest from sub-results)
  • Add optional risk_level to UnsafeResult type

v2.3.1

06 Mar 13:01
a39f08a

Choose a tag to compare

Fixes

  • Align README verification examples with actual API response (result field instead of removed age_result/identity_result)
  • Fix VerificationSessionResult type to use unified result field with optional created_at, expires_at, and mode

v2.3.0 — Age & Identity Verification

05 Mar 16:35
b33fd7a

Choose a tag to compare

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:3456

Credits

  • 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

25 Feb 16:36

Choose a tag to compare

What's Changed

  • Add MessageAnalysis interface for per-message breakdown returned by conversation-aware detection endpoints
  • Add message_analysis optional field to DetectionResult and GroomingResult
  • Update README with usage examples

v2.2.1

18 Feb 19:17

Choose a tag to compare

Add free certification program to documentation

v2.2.0

17 Feb 15:19

Choose a tag to compare

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