@taprsvp/types Changelog
All notable changes to the TypeScript package are documented in this file.
[1.14.0] - 2025-11-23
Changed
- IVMS101 2023 Only: Updated to use only IVMS101 2023 version per specification, removed legacy 2020 support
- Updated all IVMS101 imports to use cleaned-up ivms101 v2.0 exports
- Updated Person and Organization interfaces to use 2023 types exclusively
- Updated nameHash module to handle 2023 structure (name as object with nameIdentifier array)
- All 144 tests pass with full type safety
[1.13.0] - 2025-09-05
Enhanced
- TAIP-14 Payment supportedAssets: Enhanced supportedAssets field with flexible pricing support
- Added new
SupportedAssetPricinginterface for assets with specific pricing and expiration - Enhanced
supportedAssetsarray 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.tsmodule 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
Exchangeinterface supporting multi-asset arrays for source and target assets - Added
Quoteinterface for liquidity provider responses with pricing and expiration - Support for CAIP-19, DTI, and ISO-4217 currency codes in asset arrays
- Added
ExchangeMessageandQuoteMessageDIDComm wrappers - Updated
Transactionsunion type to includeExchange - Updated
TAPMessageunion type to includeExchangeMessageandQuoteMessage - 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
allowedBeneficiariesfield: Array of TAIP-6 Party objects for approved payment recipients - Added
allowedSettlementAddressesfield: Array of CAIP-10 addresses for approved settlement addresses - Added
allowedAssetsfield: 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
validatormodule 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
requesterandprincipalParty fields to Connect interface - Replaced single
agentfield with requiredagentsarray - Agents array must include at least one agent with
@idmatching DIDCommfromfield andforattribute 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
forattribute 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
typeattributes 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
Attachmentinterface following DIDComm v2.1 specification - Added optional
attachmentsarray toDIDCommMessageinterface - 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
OutOfBandInvitationinterface extendingDIDCommMessage<OutOfBandGoal> - Added
OutOfBandGoalinterface 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
PresentationMessageinterface 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
defaultAddressfield 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
fallbackSettlementAddressesfield as specified in TAIP-14 - Updated JSDoc examples to remove invalid
defaultAddressreferences
[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
fromfield 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
fallbackSettlementAddressesfield 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