@taprsvp/types Changelog
All notable changes to the TypeScript package are documented in this file.
[1.13.0] - 2025-09-05
Enhanced
- TAIP-14 Payment supportedAssets: Enhanced supportedAssets field with flexible pricing support
- Added new
SupportedAssetPricing
interface for assets with specific pricing and expiration - Enhanced
supportedAssets
array to support both simple strings and pricing objects - Added support for CAIP-19, DTI, and ISO-4217 currency codes in pricing objects
- Enables cross-currency payments (e.g., USD invoice accepting EUR at specific rate)
- Supports volatile asset pricing (e.g., ETH, BTC) with precise amounts and rate expiration
- Updated Payment interface examples to demonstrate mixed asset types
- Maintains backward compatibility with existing string-only supportedAssets arrays
- Enables merchant specification of exact exchange rates with optional expiration timestamps
- Added new
[1.12.1] - 2025-09-03
Added
- Property-Based Testing Support: Added comprehensive fast-check arbitraries for enhanced testing
- New
arbitraries.ts
module with generators for all TAP message types and components - Fast-check v4 arbitraries for fundamental types (DID, CAIP-10, CAIP-19, UUID, ISO currencies)
- Participant arbitraries (Person, Organization, Party, Agent) with realistic data generation
- Message body arbitraries for all TAP transactions (Transfer, Payment, Exchange, Quote, etc.)
- Complete DIDComm message wrappers with proper threading and metadata
- Integration with ivms101 library arbitraries for compliance data structures
- Organized arbitrary exports by category for easy discovery and usage
- Property-based tests integrated into existing test suite for robust validation
- Comprehensive documentation in README.md with usage examples and testing patterns
- Enables developers to write property-based tests for TAP protocol implementations
- Automatically discovers edge cases and validates protocol compliance across wide input ranges
- New
Enhanced
- TAIP-12 Name Hashing with IVMS101 Integration: Extended nameHash module for travel rule compliance
- Enhanced
generateNameHash()
function now supports IVMS101 originator/beneficiary structures - Seamless integration with both IVMS101 2020 and 2023 data formats
- Intelligent name extraction from complex IVMS101 structures (natural/legal persons)
- Multi-person handling with automatic name combination and legal name prioritization
- Cross-format consistency ensuring identical hashes for equivalent names
- Comprehensive property-based testing with 21 new tests using ivms101 arbitraries
- Maintained backward compatibility with existing string-based name hashing
- Enhanced API supports: strings, IVMS101 originators, and IVMS101 beneficiaries
- Performance optimized for large structures (100+ persons) with Unicode support
- Enables unified privacy-preserving name matching across TAP and IVMS101 systems
- Enhanced
[1.12.0] - 2025-09-01
Added
- TAIP-18 Asset Exchange: Added Exchange and Quote message types for cross-asset transactions
- Added
Exchange
interface supporting multi-asset arrays for source and target assets - Added
Quote
interface for liquidity provider responses with pricing and expiration - Support for CAIP-19, DTI, and ISO-4217 currency codes in asset arrays
- Added
ExchangeMessage
andQuoteMessage
DIDComm wrappers - Updated
Transactions
union type to includeExchange
- Updated
TAPMessage
union type to includeExchangeMessage
andQuoteMessage
- Enhanced TAIP specification cross-reference documentation
- Enables cross-asset quotes (USDC to EURC), FX transactions, on/off-ramp services, and cross-chain bridging
- Added
[1.11.0] - 2025-08-23
Enhanced
- TAIP-15 Transaction Constraints: Enhanced TransactionConstraints interface for improved connection security
- Added
allowedBeneficiaries
field: Array of TAIP-6 Party objects for approved payment recipients - Added
allowedSettlementAddresses
field: Array of CAIP-10 addresses for approved settlement addresses - Added
allowedAssets
field: Array of CAIP-19 asset identifiers for approved transaction assets - Enhanced Zod validator schemas to validate new constraint fields
- Added
validateTransactionConstraints()
function for standalone constraint validation - Updated Connect interface examples and JSDoc documentation
- Comprehensive constraint validation enables granular control over agent connection permissions
- Added
[1.10.0] - 2025-08-21
Added
- Enhanced Zod v4 Validation: Comprehensive runtime validation for TAP messages
- New
validator
module available at@taprsvp/types/validator
- Zod v4 schemas for all TAP message types (Transfer, Payment, Authorize, etc.)
- Strict ISO Standards Validation: Proper validation using actual ISO code sets
- ISO 4217 currency code validation (156 valid codes: USD, EUR, GBP, etc.)
- ISO 20022 purpose code validation (367 valid codes: SALA, TRAD, RENT, etc.)
- ISO 20022 category purpose code validation (38 valid codes)
- Validation functions:
validateTAPMessage()
,parseTAPMessage()
,isTAPMessage()
- Message-specific validators for each TAP message type
- Full CAIP-10, CAIP-19, PayTo URI, and DID validation
- Comprehensive test suite with 74 test cases covering all validation scenarios
- Separate module path keeps validators optional for bundle size optimization
- New
[1.9.0] - 2025-08-21
Changed
- Updated Connect Interface: Restructured to support new TAIP-15 requester/principal/agents pattern
- Added
requester
andprincipal
Party fields to Connect interface - Replaced single
agent
field with requiredagents
array - Agents array must include at least one agent with
@id
matching DIDCommfrom
field andfor
attribute set to requester DID - Updated JSDoc documentation to reflect TAIP-15 specification changes
- Maintained backward compatibility for existing message types
- Added
Enhanced
- Enhanced Agent Interface: Updated agent structure to support multi-party connections
- Clarified
for
attribute usage in agent definitions - Updated documentation to reference TAIP-5 specification for agent details
- Consistent agent array patterns across Transfer, Payment, and Connect messages
- Updated TypeScript interfaces, JSON schemas, and test vectors to match new structure
- Removed
type
attributes from all agent examples across codebase for consistency with TAIP-5 specification
- Clarified
[1.8.0] - 2025-08-21
Added
- DIDComm Attachments Support: Added full DIDComm v2.1 attachments support
- Added
Attachment
interface following DIDComm v2.1 specification - Added optional
attachments
array toDIDCommMessage
interface - Supports inline data (base64, JSON), external links, and cryptographic integrity verification (JWS, hash)
- Includes comprehensive documentation with usage examples for different attachment types
- Enables inclusion of supplementary documents like KYC verification, receipts, and compliance documentation
- Added
- DIDComm Out-of-Band Messages: Added support for out-of-band invitation messages
- Added
OutOfBandInvitation
interface extendingDIDCommMessage<OutOfBandGoal>
- Added
OutOfBandGoal
interface for invitation body fields - Supports QR codes, URLs, emails for sharing invitations
- Enables bundling initial protocol messages (like Connect requests) with invitations
- Compatible with TAIP-15 Agent Connection Protocol for TAP-specific connections
- Added
- Presentation Message: Added support for verifiable credential presentations per TAIP-8
- Added
PresentationMessage
interface implementing DIDCommReply with empty body - Requires attachments containing verifiable presentations
- Follows WACI Present Proof protocol v3.0 specification
- Enables selective disclosure for privacy-preserving identity verification
- Added
- Enhanced Message Type Support: Expanded TAPMessage union type to include 19 message types
- Added PresentationMessage to support TAIP-8 selective disclosure
- Improved cross-reference documentation for all TAIP specifications
[1.7.0] - 2025-08-18
Added
- Comprehensive Documentation: Enhanced TypeScript library with complete documentation and guides
- Added comprehensive README.md with installation guide, quick start examples, and complete API reference
- Enhanced examples with current type definitions (Person, Organization, Agent, Party)
- Added nameHash examples for travel rule compliance with privacy-preserving name matching
- Updated participant type documentation to reflect current schema.org-based interfaces
- Added complete participant interfaces documentation (Person, Organization, Agent, Party)
- Enhanced travel rule compliance examples with IVMS101 data structures
- Improved developer experience with detailed usage examples and standards compliance information
Fixed
- Payment Message Type: Removed erroneous
defaultAddress
field from Payment interface- Fixed Payment interface to comply with TAIP-14 specification
- Settlement addresses should be provided by agents with SettlementAddress role, not as direct fields
- Maintained
fallbackSettlementAddresses
field as specified in TAIP-14 - Updated JSDoc examples to remove invalid
defaultAddress
references
[1.6.0] - 2025-08-04
Added
- Comprehensive JSDoc Documentation: Enhanced TypeScript library with comprehensive documentation
- Added comprehensive JSDoc documentation to all TAP message types
- File-level overview with protocol explanation, features, and usage examples
- Organized code into logical sections with clear headers
- Practical usage examples for Transfer, Payment, DIDCommMessage, and Agent interfaces
- Complete TAIP specification cross-reference mapping
- Enhanced IntelliSense and documentation tooltips for better developer experience
Enhanced
- TAIP-12 Name Hashing Implementation: Added production-ready TypeScript implementation for privacy-preserving name matching
- Added
generateNameHash()
function with SHA-256 hashing using Web Crypto API and Node.js crypto fallback - Added
normalizeForHashing()
function for TAIP-12 compliant name normalization (uppercase, whitespace removal) - Cross-platform compatibility supporting browsers and Node.js environments without additional dependencies
- Comprehensive test suite with 19 test cases including TAIP-12 specification test vectors
- Support for non-Western names (Arabic, Chinese, Korean, Japanese scripts)
- Compatible with VerifyVASP and GTR networks per TAIP-12 specification
- Added Vitest testing framework for comprehensive validation
- Added
[1.5.0] - 2025-08-03
Changed
- AuthorizationRequired Message: Enhanced interface for both transaction and connection authorization
- Updated TypeScript interface with enhanced documentation for both transaction and connection authorization
- AuthorizationRequired moved from TAIP-15 to TAIP-4 as standard authorization message
- Added optional
from
field to specify party type (customer, principal, originator) required to open URL
[1.4.0] - 2025-07-28
Added
- RFC 8905 PayTo URI Support: Settlement addresses now support both blockchain (CAIP-10) and traditional payment systems (RFC 8905)
- Settlement addresses in Transfer, Authorize, Settle, Revert, and Capture messages now accept PayTo URIs
- Payment messages support
fallbackSettlementAddresses
field with mixed CAIP-10 and RFC 8905 addresses - Enables failover mechanisms for fiat payments and crypto transfers
- Purpose Code Types: Added ISO 20022 External Purpose Code union types
- ExternalPurposeCode: 331 standardized purpose codes
- ExternalCategoryPurposeCode: 48 category purpose codes
- schema.org Organization Attributes: Added optional organization metadata fields to Agents and Parties
- Based on schema.org/Organization standard
- Added fields:
name
,url
,logo
,description
,email
,telephone
- Available for both Agent (TAIP-5) and Party (TAIP-6) entities