rdapify 0.1.0 → 0.1.2

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (235) hide show
  1. package/CHANGELOG.md +316 -0
  2. package/README.md +456 -69
  3. package/dist/application/client/RDAPClient.d.ts +53 -0
  4. package/dist/application/client/RDAPClient.d.ts.map +1 -0
  5. package/dist/application/client/RDAPClient.js +163 -0
  6. package/dist/application/client/RDAPClient.js.map +1 -0
  7. package/dist/application/client/index.d.ts +2 -0
  8. package/dist/application/client/index.d.ts.map +1 -0
  9. package/dist/application/client/index.js +6 -0
  10. package/dist/application/client/index.js.map +1 -0
  11. package/dist/application/services/BatchProcessor.d.ts +27 -0
  12. package/dist/application/services/BatchProcessor.d.ts.map +1 -0
  13. package/dist/application/services/BatchProcessor.js +89 -0
  14. package/dist/application/services/BatchProcessor.js.map +1 -0
  15. package/dist/application/services/QueryOrchestrator.d.ts +27 -0
  16. package/dist/application/services/QueryOrchestrator.d.ts.map +1 -0
  17. package/dist/application/services/QueryOrchestrator.js +201 -0
  18. package/dist/application/services/QueryOrchestrator.js.map +1 -0
  19. package/dist/application/services/QueryPriority.d.ts +35 -0
  20. package/dist/application/services/QueryPriority.d.ts.map +1 -0
  21. package/dist/application/services/QueryPriority.js +114 -0
  22. package/dist/application/services/QueryPriority.js.map +1 -0
  23. package/dist/application/services/index.d.ts +3 -0
  24. package/dist/application/services/index.d.ts.map +1 -0
  25. package/dist/application/services/index.js +8 -0
  26. package/dist/application/services/index.js.map +1 -0
  27. package/dist/core/ports/bootstrap.port.d.ts +8 -0
  28. package/dist/core/ports/bootstrap.port.d.ts.map +1 -0
  29. package/dist/core/ports/bootstrap.port.js +3 -0
  30. package/dist/core/ports/bootstrap.port.js.map +1 -0
  31. package/dist/core/ports/cache.port.d.ts +10 -0
  32. package/dist/core/ports/cache.port.d.ts.map +1 -0
  33. package/dist/core/ports/cache.port.js +3 -0
  34. package/dist/core/ports/cache.port.js.map +1 -0
  35. package/dist/core/ports/fetcher.port.d.ts +5 -0
  36. package/dist/core/ports/fetcher.port.d.ts.map +1 -0
  37. package/dist/core/ports/fetcher.port.js +3 -0
  38. package/dist/core/ports/fetcher.port.js.map +1 -0
  39. package/dist/core/ports/index.d.ts +6 -0
  40. package/dist/core/ports/index.d.ts.map +1 -0
  41. package/dist/core/ports/index.js +9 -0
  42. package/dist/core/ports/index.js.map +1 -0
  43. package/dist/core/ports/normalizer.port.d.ts +5 -0
  44. package/dist/core/ports/normalizer.port.d.ts.map +1 -0
  45. package/dist/core/ports/normalizer.port.js +3 -0
  46. package/dist/core/ports/normalizer.port.js.map +1 -0
  47. package/dist/core/ports/pii-redactor.port.d.ts +6 -0
  48. package/dist/core/ports/pii-redactor.port.d.ts.map +1 -0
  49. package/dist/core/ports/pii-redactor.port.js +3 -0
  50. package/dist/core/ports/pii-redactor.port.js.map +1 -0
  51. package/dist/index.d.ts +26 -7
  52. package/dist/index.d.ts.map +1 -0
  53. package/dist/index.js +65 -16
  54. package/dist/index.js.map +1 -0
  55. package/dist/infrastructure/cache/CacheManager.d.ts +28 -0
  56. package/dist/infrastructure/cache/CacheManager.d.ts.map +1 -0
  57. package/dist/infrastructure/cache/CacheManager.js +117 -0
  58. package/dist/infrastructure/cache/CacheManager.js.map +1 -0
  59. package/dist/infrastructure/cache/InMemoryCache.d.ts +24 -0
  60. package/dist/infrastructure/cache/InMemoryCache.d.ts.map +1 -0
  61. package/dist/infrastructure/cache/InMemoryCache.js +96 -0
  62. package/dist/infrastructure/cache/InMemoryCache.js.map +1 -0
  63. package/dist/infrastructure/cache/PersistentCache.d.ts +39 -0
  64. package/dist/infrastructure/cache/PersistentCache.d.ts.map +1 -0
  65. package/dist/infrastructure/cache/PersistentCache.js +194 -0
  66. package/dist/infrastructure/cache/PersistentCache.js.map +1 -0
  67. package/dist/infrastructure/cache/index.d.ts +3 -0
  68. package/dist/infrastructure/cache/index.d.ts.map +1 -0
  69. package/dist/infrastructure/cache/index.js +8 -0
  70. package/dist/infrastructure/cache/index.js.map +1 -0
  71. package/dist/infrastructure/http/AuthenticationManager.d.ts +38 -0
  72. package/dist/infrastructure/http/AuthenticationManager.d.ts.map +1 -0
  73. package/dist/infrastructure/http/AuthenticationManager.js +99 -0
  74. package/dist/infrastructure/http/AuthenticationManager.js.map +1 -0
  75. package/dist/infrastructure/http/BootstrapDiscovery.d.ts +21 -0
  76. package/dist/infrastructure/http/BootstrapDiscovery.d.ts.map +1 -0
  77. package/dist/infrastructure/http/BootstrapDiscovery.js +130 -0
  78. package/dist/infrastructure/http/BootstrapDiscovery.js.map +1 -0
  79. package/dist/infrastructure/http/CompressionManager.d.ts +30 -0
  80. package/dist/infrastructure/http/CompressionManager.d.ts.map +1 -0
  81. package/dist/infrastructure/http/CompressionManager.js +86 -0
  82. package/dist/infrastructure/http/CompressionManager.js.map +1 -0
  83. package/dist/infrastructure/http/ConnectionPool.d.ts +25 -0
  84. package/dist/infrastructure/http/ConnectionPool.d.ts.map +1 -0
  85. package/dist/infrastructure/http/ConnectionPool.js +101 -0
  86. package/dist/infrastructure/http/ConnectionPool.js.map +1 -0
  87. package/dist/infrastructure/http/Fetcher.d.ts +29 -0
  88. package/dist/infrastructure/http/Fetcher.d.ts.map +1 -0
  89. package/dist/infrastructure/http/Fetcher.js +114 -0
  90. package/dist/infrastructure/http/Fetcher.js.map +1 -0
  91. package/dist/infrastructure/http/Normalizer.d.ts +11 -0
  92. package/dist/infrastructure/http/Normalizer.d.ts.map +1 -0
  93. package/dist/infrastructure/http/Normalizer.js +151 -0
  94. package/dist/infrastructure/http/Normalizer.js.map +1 -0
  95. package/dist/infrastructure/http/ProxyManager.d.ts +43 -0
  96. package/dist/infrastructure/http/ProxyManager.d.ts.map +1 -0
  97. package/dist/infrastructure/http/ProxyManager.js +87 -0
  98. package/dist/infrastructure/http/ProxyManager.js.map +1 -0
  99. package/dist/infrastructure/http/RateLimiter.d.ts +28 -0
  100. package/dist/infrastructure/http/RateLimiter.d.ts.map +1 -0
  101. package/dist/infrastructure/http/RateLimiter.js +101 -0
  102. package/dist/infrastructure/http/RateLimiter.js.map +1 -0
  103. package/dist/infrastructure/http/RetryStrategy.d.ts +58 -0
  104. package/dist/infrastructure/http/RetryStrategy.d.ts.map +1 -0
  105. package/dist/infrastructure/http/RetryStrategy.js +136 -0
  106. package/dist/infrastructure/http/RetryStrategy.js.map +1 -0
  107. package/dist/infrastructure/http/index.d.ts +4 -0
  108. package/dist/infrastructure/http/index.d.ts.map +1 -0
  109. package/dist/infrastructure/http/index.js +10 -0
  110. package/dist/infrastructure/http/index.js.map +1 -0
  111. package/dist/infrastructure/logging/Logger.d.ts +49 -0
  112. package/dist/infrastructure/logging/Logger.d.ts.map +1 -0
  113. package/dist/infrastructure/logging/Logger.js +126 -0
  114. package/dist/infrastructure/logging/Logger.js.map +1 -0
  115. package/dist/infrastructure/monitoring/MetricsCollector.d.ts +53 -0
  116. package/dist/infrastructure/monitoring/MetricsCollector.d.ts.map +1 -0
  117. package/dist/infrastructure/monitoring/MetricsCollector.js +109 -0
  118. package/dist/infrastructure/monitoring/MetricsCollector.js.map +1 -0
  119. package/dist/infrastructure/security/PIIRedactor.d.ts +13 -0
  120. package/dist/infrastructure/security/PIIRedactor.d.ts.map +1 -0
  121. package/dist/infrastructure/security/PIIRedactor.js +83 -0
  122. package/dist/infrastructure/security/PIIRedactor.js.map +1 -0
  123. package/dist/infrastructure/security/SSRFProtection.d.ts +13 -0
  124. package/dist/infrastructure/security/SSRFProtection.d.ts.map +1 -0
  125. package/dist/infrastructure/security/SSRFProtection.js +142 -0
  126. package/dist/infrastructure/security/SSRFProtection.js.map +1 -0
  127. package/dist/infrastructure/security/index.d.ts +3 -0
  128. package/dist/infrastructure/security/index.d.ts.map +1 -0
  129. package/dist/infrastructure/security/index.js +8 -0
  130. package/dist/infrastructure/security/index.js.map +1 -0
  131. package/dist/shared/constants/http.constants.d.ts +26 -0
  132. package/dist/shared/constants/http.constants.d.ts.map +1 -0
  133. package/dist/shared/constants/http.constants.js +29 -0
  134. package/dist/shared/constants/http.constants.js.map +1 -0
  135. package/dist/shared/constants/index.d.ts +3 -0
  136. package/dist/shared/constants/index.d.ts.map +1 -0
  137. package/dist/shared/constants/index.js +6 -0
  138. package/dist/shared/constants/index.js.map +1 -0
  139. package/dist/shared/constants/rdap.constants.d.ts +9 -0
  140. package/dist/shared/constants/rdap.constants.d.ts.map +1 -0
  141. package/dist/shared/constants/rdap.constants.js +21 -0
  142. package/dist/shared/constants/rdap.constants.js.map +1 -0
  143. package/dist/shared/errors/base.error.d.ts +44 -0
  144. package/dist/shared/errors/base.error.d.ts.map +1 -0
  145. package/dist/shared/errors/base.error.js +122 -0
  146. package/dist/shared/errors/base.error.js.map +1 -0
  147. package/dist/shared/errors/index.d.ts +2 -0
  148. package/dist/shared/errors/index.d.ts.map +1 -0
  149. package/dist/shared/errors/index.js +5 -0
  150. package/dist/shared/errors/index.js.map +1 -0
  151. package/dist/shared/types/entities.d.ts +50 -0
  152. package/dist/shared/types/entities.d.ts.map +1 -0
  153. package/dist/shared/types/entities.js +3 -0
  154. package/dist/shared/types/entities.js.map +1 -0
  155. package/dist/shared/types/enums.d.ts +10 -0
  156. package/dist/shared/types/enums.d.ts.map +1 -0
  157. package/dist/shared/types/enums.js +3 -0
  158. package/dist/shared/types/enums.js.map +1 -0
  159. package/dist/shared/types/errors.d.ts +40 -0
  160. package/dist/shared/types/errors.d.ts.map +1 -0
  161. package/dist/shared/types/errors.js +101 -0
  162. package/dist/shared/types/errors.js.map +1 -0
  163. package/dist/shared/types/generics.d.ts +32 -0
  164. package/dist/shared/types/generics.d.ts.map +1 -0
  165. package/dist/shared/types/generics.js +3 -0
  166. package/dist/shared/types/generics.js.map +1 -0
  167. package/dist/shared/types/index.d.ts +4 -0
  168. package/dist/shared/types/index.d.ts.map +1 -0
  169. package/dist/shared/types/index.js +3 -0
  170. package/dist/shared/types/index.js.map +1 -0
  171. package/dist/shared/types/options.d.ts +60 -0
  172. package/dist/shared/types/options.d.ts.map +1 -0
  173. package/dist/shared/types/options.js +50 -0
  174. package/dist/shared/types/options.js.map +1 -0
  175. package/dist/shared/types/responses.d.ts +76 -0
  176. package/dist/shared/types/responses.d.ts.map +1 -0
  177. package/dist/shared/types/responses.js +3 -0
  178. package/dist/shared/types/responses.js.map +1 -0
  179. package/dist/shared/utils/enhanced-validators.d.ts +18 -0
  180. package/dist/shared/utils/enhanced-validators.d.ts.map +1 -0
  181. package/dist/shared/utils/enhanced-validators.js +162 -0
  182. package/dist/shared/utils/enhanced-validators.js.map +1 -0
  183. package/dist/shared/utils/helpers/async.d.ts +9 -0
  184. package/dist/shared/utils/helpers/async.d.ts.map +1 -0
  185. package/dist/shared/utils/helpers/async.js +47 -0
  186. package/dist/shared/utils/helpers/async.js.map +1 -0
  187. package/dist/shared/utils/helpers/cache.d.ts +2 -0
  188. package/dist/shared/utils/helpers/cache.d.ts.map +1 -0
  189. package/dist/shared/utils/helpers/cache.js +7 -0
  190. package/dist/shared/utils/helpers/cache.js.map +1 -0
  191. package/dist/shared/utils/helpers/format.d.ts +3 -0
  192. package/dist/shared/utils/helpers/format.d.ts.map +1 -0
  193. package/dist/shared/utils/helpers/format.js +22 -0
  194. package/dist/shared/utils/helpers/format.js.map +1 -0
  195. package/dist/shared/utils/helpers/http.d.ts +2 -0
  196. package/dist/shared/utils/helpers/http.d.ts.map +1 -0
  197. package/dist/shared/utils/helpers/http.js +17 -0
  198. package/dist/shared/utils/helpers/http.js.map +1 -0
  199. package/dist/shared/utils/helpers/index.d.ts +8 -0
  200. package/dist/shared/utils/helpers/index.d.ts.map +1 -0
  201. package/dist/shared/utils/helpers/index.js +29 -0
  202. package/dist/shared/utils/helpers/index.js.map +1 -0
  203. package/dist/shared/utils/helpers/object.d.ts +3 -0
  204. package/dist/shared/utils/helpers/object.d.ts.map +1 -0
  205. package/dist/shared/utils/helpers/object.js +24 -0
  206. package/dist/shared/utils/helpers/object.js.map +1 -0
  207. package/dist/shared/utils/helpers/runtime.d.ts +6 -0
  208. package/dist/shared/utils/helpers/runtime.d.ts.map +1 -0
  209. package/dist/shared/utils/helpers/runtime.js +33 -0
  210. package/dist/shared/utils/helpers/runtime.js.map +1 -0
  211. package/dist/shared/utils/helpers/string.d.ts +4 -0
  212. package/dist/shared/utils/helpers/string.d.ts.map +1 -0
  213. package/dist/shared/utils/helpers/string.js +29 -0
  214. package/dist/shared/utils/helpers/string.js.map +1 -0
  215. package/dist/shared/utils/validators/asn.d.ts +3 -0
  216. package/dist/shared/utils/validators/asn.d.ts.map +1 -0
  217. package/dist/shared/utils/validators/asn.js +30 -0
  218. package/dist/shared/utils/validators/asn.js.map +1 -0
  219. package/dist/shared/utils/validators/domain.d.ts +3 -0
  220. package/dist/shared/utils/validators/domain.d.ts.map +1 -0
  221. package/dist/shared/utils/validators/domain.js +34 -0
  222. package/dist/shared/utils/validators/domain.js.map +1 -0
  223. package/dist/shared/utils/validators/index.d.ts +5 -0
  224. package/dist/shared/utils/validators/index.d.ts.map +1 -0
  225. package/dist/shared/utils/validators/index.js +19 -0
  226. package/dist/shared/utils/validators/index.js.map +1 -0
  227. package/dist/shared/utils/validators/ip.d.ts +5 -0
  228. package/dist/shared/utils/validators/ip.d.ts.map +1 -0
  229. package/dist/shared/utils/validators/ip.js +55 -0
  230. package/dist/shared/utils/validators/ip.js.map +1 -0
  231. package/dist/shared/utils/validators/network.d.ts +4 -0
  232. package/dist/shared/utils/validators/network.d.ts.map +1 -0
  233. package/dist/shared/utils/validators/network.js +48 -0
  234. package/dist/shared/utils/validators/network.js.map +1 -0
  235. package/package.json +108 -20
package/CHANGELOG.md ADDED
@@ -0,0 +1,316 @@
1
+ # Changelog
2
+
3
+ All notable changes to this project will be documented in this file.
4
+
5
+ The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.0.0/),
6
+ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0.html).
7
+
8
+ ## [Unreleased]
9
+
10
+ ## [0.1.2] - 2026-01-27
11
+
12
+ ### Added
13
+ - **Interactive Playground**: Try-before-install experience for rdapify.com
14
+ - Client ID management with localStorage persistence
15
+ - Real-time quota tracking (remainingToday, resetAt)
16
+ - 429 rate limit handling with retry hints
17
+ - Multiple package manager support (npm, yarn, pnpm)
18
+ - Integrated into website navigation
19
+ - Production-ready documentation and testing guides
20
+
21
+ ### Changed
22
+ - Updated website navigation to include Playground link
23
+ - Enhanced documentation for production deployment
24
+
25
+ ### Fixed
26
+ - ESLint errors in Logger.ts and enhanced-validators.ts (6 issues resolved)
27
+
28
+ ## [0.1.1] - 2026-01-25
29
+
30
+ ### Added - Phase 3 Improvements
31
+ - **Authentication Support**: Multiple authentication methods for RDAP servers
32
+ - Basic Authentication (username/password)
33
+ - Bearer Token authentication
34
+ - API Key authentication (custom header support)
35
+ - OAuth2 authentication with token expiration checking
36
+ - Secure header generation without exposing credentials
37
+ - **Proxy Support**: HTTP/HTTPS/SOCKS proxy configuration
38
+ - Support for HTTP, HTTPS, SOCKS4, and SOCKS5 protocols
39
+ - Proxy authentication (username/password)
40
+ - Bypass list with wildcard pattern matching
41
+ - Proxy URL generation with credential encoding
42
+ - **Response Compression**: Automatic compression/decompression
43
+ - Support for gzip, brotli, and deflate compression
44
+ - Automatic Accept-Encoding header generation
45
+ - Automatic response decompression
46
+ - Compression statistics and ratio calculation
47
+ - Configurable compression threshold
48
+
49
+ ### Added - Phase 2 Improvements
50
+ - **Retry Strategies**: Advanced retry logic with circuit breaker pattern
51
+ - Exponential, linear, and fixed backoff strategies
52
+ - Exponential backoff with jitter to prevent thundering herd
53
+ - Circuit breaker pattern for failing services
54
+ - Configurable retry based on error type and status code
55
+ - Half-open state for gradual recovery
56
+ - **Query Prioritization**: Priority queue system for managing query execution
57
+ - High, normal, and low priority levels
58
+ - Configurable concurrency control
59
+ - Automatic queue processing
60
+ - Queue statistics and monitoring
61
+ - **Enhanced Validation**: Improved input validation with international support
62
+ - IDN (Internationalized Domain Names) support with punycode conversion
63
+ - IPv6 with zone ID support (e.g., fe80::1%eth0)
64
+ - ASN range validation (e.g., AS15169-AS15200)
65
+ - Email and phone number validation
66
+ - URL validation
67
+ - **Persistent Cache**: Cache that survives application restarts
68
+ - File-based and memory-based storage
69
+ - Automatic save intervals
70
+ - TTL and max size enforcement
71
+ - LRU eviction policy
72
+ - Cache statistics and cleanup
73
+
74
+ ### Changed
75
+ - **Exports**: Added new exports for Phase 2 features in index.ts
76
+
77
+ ### Tests
78
+ - Added comprehensive test suites for Phase 3 features:
79
+ - `authentication-manager.test.ts`: 17 tests covering all auth methods
80
+ - `proxy-manager.test.ts`: 16 tests covering proxy configuration
81
+ - `compression-manager.test.ts`: 19 tests covering compression/decompression
82
+ - Added comprehensive test suites for Phase 2 features:
83
+ - `retry-strategy.test.ts`: 13 tests covering retry logic and circuit breaker
84
+ - `query-priority.test.ts`: 8 tests covering priority queue functionality
85
+ - `enhanced-validators.test.ts`: 21 tests covering validation enhancements
86
+ - `persistent-cache.test.ts`: 13 tests covering persistent storage
87
+
88
+ ### Performance
89
+ - **Retry Strategies**: Intelligent retry reduces failed requests
90
+ - **Query Prioritization**: Critical queries execute first
91
+ - **Persistent Cache**: Faster startup with pre-loaded cache
92
+
93
+ ## [0.1.2] - 2026-01-26
94
+
95
+ ### Added - Phase 1 Improvements
96
+ - **Connection Pooling**: HTTP connection reuse for 30-40% performance improvement
97
+ - Configurable max connections per host
98
+ - Automatic idle connection cleanup
99
+ - Keep-alive support for persistent connections
100
+ - **Metrics & Monitoring**: Comprehensive query metrics tracking
101
+ - Success/failure rates and response times
102
+ - Cache hit/miss statistics
103
+ - Query type distribution (domain/IP/ASN)
104
+ - Error type tracking
105
+ - Time-based filtering and analysis
106
+ - **Request/Response Logging**: Detailed logging system with multiple levels
107
+ - Configurable log levels (debug, info, warn, error)
108
+ - Request/response logging with timing
109
+ - Cache operation logging
110
+ - Performance metrics logging
111
+ - JSON and text output formats
112
+ - Log filtering and export capabilities
113
+ - **Client API Extensions**: New methods for monitoring and debugging
114
+ - `getMetrics()`: Get query metrics summary
115
+ - `getConnectionPoolStats()`: Get connection pool statistics
116
+ - `getLogger()`: Access logger instance
117
+ - `getLogs()`: Retrieve recent logs
118
+ - `clearAll()`: Clear all caches, metrics, and logs
119
+ - `destroy()`: Clean up resources
120
+
121
+ ### Changed
122
+ - **QueryOrchestrator**: Integrated logging and metrics collection into all query methods
123
+ - **RDAPClient**: Added connection pool, metrics collector, and logger initialization
124
+
125
+ ### Tests
126
+ - Added comprehensive test suites for new features:
127
+ - `connection-pool.test.ts`: 9 tests covering connection management
128
+ - `metrics-collector.test.ts`: 11 tests covering metrics tracking
129
+ - `logger.test.ts`: 18 tests covering logging functionality
130
+
131
+ ## [0.1.1] - 2026-01-25
132
+
133
+ ### Added
134
+ - **Rate Limiting**: Token bucket rate limiter with multi-key support and auto-cleanup
135
+ - **Batch Processing**: Efficient concurrent processing of multiple RDAP queries
136
+ - **Enhanced Error Handling**: Errors now include suggestions, timestamps, and user-friendly messages
137
+ - **Generic Types**: Type-safe query functions with automatic result type inference
138
+ - **Tree Shaking Support**: Modular exports for smaller bundle sizes
139
+ - **Comprehensive Tests**: Added 37+ new tests for PIIRedactor, CacheManager, and RateLimiter
140
+
141
+ ### Changed
142
+ - **Error Classes**: All errors now include `suggestion`, `timestamp`, and `getUserMessage()` method
143
+ - **RateLimitError**: Added `retryAfter` field to indicate when to retry
144
+ - **Package Exports**: Added modular exports for errors, types, and validators
145
+ - **TypeScript Config**: Optimized for better tree shaking and smaller output
146
+
147
+ ### Improved
148
+ - **Test Coverage**: Increased from 76.74% to ~85-90% (estimated)
149
+ - **Type Safety**: Better generic types for query operations
150
+ - **Developer Experience**: More helpful error messages and suggestions
151
+ - **Performance**: Batch processing with configurable concurrency
152
+
153
+ ### Fixed
154
+ - Fixed prism-react-renderer theme import in Docusaurus configuration
155
+ - Fixed MDX compilation errors caused by unescaped `<` and `>` characters in markdown tables
156
+ - Fixed self-closing HTML tags (`<br>` → `<br/>`) in documentation
157
+ - Fixed deprecated GitHub Actions (upload-artifact@v3 → v4, actions/create-release → softprops/action-gh-release)
158
+ - Fixed empty workflow file (examples.yml)
159
+ - Fixed missing sidebars.js configuration
160
+ - Removed empty pages causing build failures
161
+
162
+ ### Changed
163
+ - Standardized Node.js version to v20 across all GitHub Actions workflows
164
+ - Updated all workflows to use `node-version-file: .nvmrc` for consistency
165
+ - Improved npm caching in CI/CD workflows for faster builds
166
+ - Added `NODE_ENV: production` to website build workflow
167
+ - Added `onBrokenMarkdownImages: 'warn'` to Docusaurus config
168
+ - Enhanced release workflow with better error handling
169
+
170
+ ### Added
171
+ - Created SVG placeholder icons for homepage features (typescript, performance, security, multi-env, unified, privacy)
172
+ - Added examples validation workflow
173
+ - Added fork check for Snyk security scans to prevent token exposure
174
+ - Added comprehensive CI/CD fixes documentation
175
+
176
+ ## [0.1.0] - 2025-01-25
177
+
178
+ ### Added
179
+ - Initial public release of RDAPify
180
+ - Core RDAP client with domain, IP, and ASN query support
181
+ - Automatic RDAP server discovery via IANA Bootstrap
182
+ - SSRF protection with proper CIDR matching for IPv4 and IPv6
183
+ - PII redaction for GDPR/CCPA compliance
184
+ - In-memory caching with configurable TTL
185
+ - Data normalization for consistent response format
186
+ - Comprehensive TypeScript types and interfaces
187
+ - Input validation for domains, IPs, and ASNs
188
+ - Retry logic with configurable backoff strategies
189
+ - Interactive playground for testing RDAP queries
190
+ - Playground API proxy server with Express
191
+ - Comprehensive community health files (SECURITY.md, CONTRIBUTING.md, CODE_OF_CONDUCT.md, SUPPORT.md)
192
+ - Issue templates (bug report, feature request, question)
193
+ - Pull request template with comprehensive checklist
194
+ - Funding configuration for GitHub Sponsors and Open Collective
195
+ - Organization profile with professional presentation
196
+
197
+ ### Infrastructure
198
+ - CI/CD workflows for Node.js 16, 18, and 20
199
+ - CodeQL security analysis (weekly scans)
200
+ - Dependabot for automated dependency updates
201
+ - Dependency review for pull requests
202
+ - Automated testing and linting
203
+ - GitHub Actions for release automation
204
+
205
+ ### Security
206
+ - SSRF protection blocks private IPs, localhost, and internal domains
207
+ - Certificate validation enforced (HTTPS only)
208
+ - Proper CIDR matching using ipaddr.js library
209
+ - Input validation prevents injection attacks
210
+ - Automated security scanning with CodeQL
211
+ - Secret scanning configuration
212
+ - Dependabot security updates
213
+
214
+ ### Documentation
215
+ - Comprehensive README with examples
216
+ - API documentation
217
+ - Security policy
218
+ - Contributing guidelines
219
+ - Code of conduct
220
+ - Support resources
221
+
222
+ ### Testing
223
+ - 146+ unit and integration tests
224
+ - Mocked fixtures for reliable testing
225
+ - Coverage reporting
226
+
227
+ ## [0.1.0-alpha.4] - 2025-01-25
228
+
229
+ ### Added
230
+ - Dependabot configuration for automated dependency updates
231
+ - Enhanced CI/CD workflows with multi-version Node.js testing (Node.js 16, 18, 20)
232
+ - CodeQL security analysis workflow (weekly scans)
233
+ - Dependency review workflow for pull requests
234
+ - Interactive playground for testing RDAP queries
235
+ - Playground API proxy server with Express
236
+ - Comprehensive community health files (SECURITY.md, CONTRIBUTING.md, CODE_OF_CONDUCT.md, SUPPORT.md)
237
+ - Issue templates (bug report, feature request, question)
238
+ - Pull request template with comprehensive checklist
239
+ - Funding configuration for GitHub Sponsors and Open Collective
240
+ - Organization profile with professional presentation
241
+
242
+ ### Changed
243
+ - Improved CI workflow to test on multiple Node.js versions
244
+ - Simplified CodeQL configuration
245
+ - Updated organization profile with professional presentation
246
+ - Enhanced documentation structure
247
+ - Improved .gitignore to exclude .kiro directory
248
+
249
+ ### Security
250
+ - Added automated security scanning with CodeQL
251
+ - Enabled dependency review for pull requests
252
+ - Configured Dependabot for security updates
253
+ - Set up weekly security scans
254
+
255
+ ### Infrastructure
256
+ - Added CI/CD workflows for automated testing
257
+ - Configured Dependabot for dependency management
258
+ - Set up CodeQL for security analysis
259
+
260
+ ## [0.1.0-alpha.2] - 2026-01-22
261
+
262
+ ### Fixed
263
+ - Cancel timeout timer in `withTimeout()` to prevent Jest exit warning
264
+ - Improve integration test fetch mock cleanup with proper `beforeEach`/`afterEach`
265
+
266
+ ## [0.1.0-alpha.1] - 2026-01-22
267
+
268
+ ### Added
269
+ - Initial alpha release of RDAPify
270
+ - Core RDAP client with domain, IP, and ASN query support
271
+ - Automatic RDAP server discovery via IANA Bootstrap
272
+ - SSRF protection with proper CIDR matching for IPv4 and IPv6
273
+ - PII redaction for GDPR/CCPA compliance
274
+ - In-memory caching with configurable TTL
275
+ - Data normalization for consistent response format
276
+ - Comprehensive TypeScript types and interfaces
277
+ - Input validation for domains, IPs, and ASNs
278
+ - Retry logic with configurable backoff strategies
279
+ - 146 unit and integration tests with mocked fixtures
280
+
281
+ ### Security
282
+ - SSRF protection blocks private IPs, localhost, and internal domains
283
+ - Certificate validation enforced (HTTPS only)
284
+ - Proper CIDR matching using ipaddr.js library
285
+ - Input validation prevents injection attacks
286
+
287
+ ### Known Limitations
288
+ - Redis cache not yet implemented (in-memory only)
289
+ - No CLI tool in this release
290
+ - Bun/Deno/Cloudflare Workers support untested
291
+ - Live integration tests not included in CI
292
+ - Documentation references features not yet available
293
+
294
+ ### Dependencies
295
+ - ipaddr.js: ^2.2.0 (for CIDR matching)
296
+ - tslib: ^2.8.1 (TypeScript runtime)
297
+
298
+ ### Development
299
+ - TypeScript 5.3.3 with strict mode
300
+ - Jest for testing
301
+ - ESLint for code quality
302
+ - Prettier for code formatting
303
+
304
+ ## [Unreleased]
305
+
306
+ ### Planned for v0.2.0
307
+ - Redis cache implementation
308
+ - CLI tool for quick queries
309
+ - Live integration tests
310
+ - Improved error messages
311
+ - Performance benchmarks
312
+ - Additional runtime support (Bun, Deno)
313
+
314
+ ---
315
+
316
+ [0.1.0-alpha.1]: https://github.com/rdapify/rdapify/releases/tag/v0.1.0-alpha.1