# Changelog ## 2025-05-28 - 7.4.0 - feat(manual socket handling) Add comprehensive manual socket handling documentation for advanced DNS server use cases - Introduced detailed examples for configuring manual UDP and HTTPS socket handling - Provided sample code for load balancing, clustering, custom transport protocols, and multi-interface binding - Updated performance and best practices sections to reflect manual socket handling benefits ## 2025-05-28 - 7.3.0 - feat(dnsserver) Add manual socket mode support to enable external socket control for the DNS server. - Introduced new manualUdpMode and manualHttpsMode options in the server options interface. - Added initializeServers, initializeUdpServer, and initializeHttpsServer methods for manual socket initialization. - Updated start() and stop() methods to handle both automatic and manual socket binding modes. - Enhanced UDP and HTTPS socket error handling and IP address validations. - Removed obsolete internal documentation file (readme.plan2.md). ## 2025-05-28 - 7.2.0 - feat(dns-server) Improve DNS server interface binding by adding explicit IP validation, configurable UDP/HTTPS binding, and enhanced logging. - Added udpBindInterface and httpsBindInterface options to IDnsServerOptions - Implemented IP address validation for both IPv4 and IPv6 in the start() method - Configured UDP and HTTPS servers to bind to specified interfaces with detailed logging - Updated documentation to include interface binding examples (localhost and specific interfaces) - Enhanced tests to cover valid and invalid interface binding scenarios ## 2025-05-27 - 7.1.0 - feat(docs) Improve documentation for advanced DNS features and update usage examples for both DNS client and server. - Revamped readme.hints with expanded architecture overview and detailed explanations of DNSSEC, Let's Encrypt integration, and advanced handler patterns. - Updated readme.md with clearer instructions and code examples for A, AAAA, TXT, MX record queries, DNS propagation checks, and usage of UDP and DNS-over-HTTPS. - Enhanced TAP tests documentation demonstrating both client and server flows. - Bumped version from 7.0.2 to 7.1.0 in preparation for the next release. ## 2025-05-27 - 7.1.0 - feat(docs) Improve documentation for advanced DNS features by updating usage examples for DNS client and server, and enhancing instructions for DNSSEC and Let's Encrypt integration. - Revamped readme.hints with an expanded architecture overview and detailed client/server feature explanations. - Updated readme.md to include clearer instructions and code examples for A, AAAA, TXT, MX record queries and DNS propagation checks. - Enhanced examples for using DNSSEC, including detailed examples for DNSKEY, DS, and RRSIG records. - Added new instructions for setting up DNS-over-HTTPS (DoH), UDP-based resolution, and pattern-based routing for handlers. - Improved testing documentation with updated TAP tests demonstrating both DNS client and server flows. ## 2025-05-27 - 7.0.2 - fix(dns-client) Improve test assertions for DNS record queries and correct counter increment logic in DNS client - Updated test cases in test/test.client.ts to use dynamic assertions with 'google.com' instead of fixed values - Adjusted checkUntilAvailable tests to verify proper behavior when DNS TXT record is missing - Fixed counter increment in ts_client/classes.dnsclient.ts to avoid post-increment issues, ensuring proper retry delays ## 2025-05-27 - 7.0.1 - fix(test & plugins) Rename test client variable and export smartrequest in client plugins - Renamed variable 'testDnsly' to 'testDnsClient' in test/test.client.ts for better clarity. - Added @push.rocks/smartrequest dependency in package.json and updated ts_client/plugins.ts to export it. ## 2025-05-27 - 7.0.0 - BREAKING CHANGE(core) Refactor module entry point and update plugin imports; remove deprecated dnsly.plugins, update dependency versions, and adjust test imports - Changed module export in package.json from './dist_ts_server/index.js' to './dist_ts/index.js' - Updated dependency versions, notably upgrading '@tsclass/tsclass' from 5.0.0 to 9.2.0 and updating tap bundles to '@git.zone/tstest' packages - Removed the redundant ts_client/dnsly.plugins.ts file and replaced its usage with the updated ts_client/plugins.ts - Adjusted test files to use export default tap.start() and updated import paths for tap bundles - Added tspublish.json files in ts, ts_client, and ts_server directories to control publish order ## 2025-03-21 - 6.3.0 - feat(dns-server) Enhance DNS server functionality with advanced DNSSEC signing (supporting both ECDSA and ED25519), improved SSL certificate retrieval using Let's Encrypt, and refined handler management for cleaner shutdowns. - Updated package metadata with expanded keywords and revised dependency versions - Improved DNSSEC signing logic to support both ECDSA and ED25519 algorithms - Added unregisterHandler method for cleaner handler lifecycle management - Enhanced SSL certificate retrieval workflow with better DNS challenge handling - Refined test utilities for more robust DNS operations ## 2025-03-21 - 6.3.0 - feat(dns-server) Enhance DNS server functionality with advanced DNSSEC signing (including ED25519 support), improved certificate retrieval using Let's Encrypt, updated package metadata, and refined test utilities for more robust DNS operations. - Updated package.json and npmextra.json with expanded keywords and revised dependency versions - Improved DNSSEC signing logic to support both ECDSA and ED25519 algorithms - Added unregisterHandler method and enhanced server stop logic for cleaner shutdowns - Enhanced SSL certificate retrieval workflow with better challenge handling and test support ## 2024-09-21 - 6.2.1 - fix(core) Fixing issues with keywords and readme formatting. - Synchronized keywords field between npmextra.json and package.json. - Updated readme.md to fix formatting issues and added new sections. ## 2024-09-19 - 6.2.0 - feat(dnssec) Introduced DNSSEC support with ECDSA algorithm - Added `DnsSec` class for handling DNSSEC operations. - Updated `DnsServer` to support DNSSEC with ECDSA. - Shifted DNS-related helper functions to `DnsServer` class. - Integrated parsing and handling of DNSKEY and RRSIG records in `DnsServer`. ## 2024-09-19 - 6.1.1 - fix(ts_server) Update DnsSec class to fully implement key generation and DNSKEY record creation. - Added complete support for ECDSA and ED25519 algorithms in the DnsSec class. - Implemented DNSKEY generation and KeyTag computation methods. - Improved error handling and initialized the appropriate cryptographic instances based on the algorithm. ## 2024-09-18 - 6.1.0 - feat(smartdns) Add DNS Server and DNSSEC tools with comprehensive unit tests - Updated package dependencies to the latest versions - Introduced DnsServer class for handling DNS requests over both HTTPS and UDP with support for custom handlers - Added DnsSec class for generating and managing DNSSEC keys and DS records - Implemented unit tests for DnsServer and Smartdns classes ## 2024-06-02 - 6.0.0 - server/client Main description here - **Breaking Change:** Move from client only to server + client exports. ## 2024-03-30 - 5.0.4 - maintenance Range contains relevant changes - Switch to new org scheme ## 2023-04-08 - 5.0.4 - core Main description here - Core update - Fixes applied to the system ## 2022-07-27 - 5.0.0 - core Update contains relevant changes - **Breaking Change:** Major update and core changes - Fixes and updates applied ## 2022-07-27 - 4.0.11 - core Range contains relevant changes - **Breaking Change:** Core update and changes applied ## 2021-08-24 - 4.0.10 - core Range contains relevant changes - Fixes applied to the core functionalities ## 2021-01-23 - 4.0.8 - core Range contains relevant changes - Updates and fixes to the core components ## 2020-08-05 - 4.0.4 - core Range contains relevant changes - Multiple core fixes applied ## 2020-02-15 - 4.0.0 - core Main description here - Core updates - Fixes applied across the system ## 2020-02-15 - 3.0.8 - core Core updates with major changes - **Breaking Change:** Now uses Google DNS HTTPS API and handles DNSSEC validation ## 2019-01-07 - 3.0.6 - core Range contains relevant changes - Fixes and updates applied to the core ## 2018-05-13 - 3.0.4 - core Range contains relevant changes - Fixes applied, including `fix .checkUntilAvailable` error ## 2018-05-13 - 3.0.0 - ci Main description here - CI changes and updates to the access level and global packages ## 2017-07-31 - 2.0.10 - package Update to new package name and improved record retrieval - **Breaking Change:** Package name update and record retrieval improvements ## 2017-01-27 - 2.0.1 - maintenance Multiple fixes and merges ## 2017-01-27 - 2.0.0 - core Fix typings and update to better API ## 2016-11-15 - 1.0.7 - initial Initial setup and improvements - Initial deployment - README improvements