rdapify 0.1.1 → 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.
- package/CHANGELOG.md +166 -0
- package/README.md +206 -18
- package/dist/application/client/RDAPClient.d.ts +21 -0
- package/dist/application/client/RDAPClient.d.ts.map +1 -1
- package/dist/application/client/RDAPClient.js +60 -6
- package/dist/application/client/RDAPClient.js.map +1 -1
- package/dist/application/services/BatchProcessor.d.ts +27 -0
- package/dist/application/services/BatchProcessor.d.ts.map +1 -0
- package/dist/application/services/BatchProcessor.js +89 -0
- package/dist/application/services/BatchProcessor.js.map +1 -0
- package/dist/application/services/QueryOrchestrator.d.ts +7 -3
- package/dist/application/services/QueryOrchestrator.d.ts.map +1 -1
- package/dist/application/services/QueryOrchestrator.js +183 -41
- package/dist/application/services/QueryOrchestrator.js.map +1 -1
- package/dist/application/services/QueryPriority.d.ts +35 -0
- package/dist/application/services/QueryPriority.d.ts.map +1 -0
- package/dist/application/services/QueryPriority.js +114 -0
- package/dist/application/services/QueryPriority.js.map +1 -0
- package/dist/application/services/index.d.ts +1 -0
- package/dist/application/services/index.d.ts.map +1 -1
- package/dist/application/services/index.js +3 -1
- package/dist/application/services/index.js.map +1 -1
- package/dist/index.d.ts +16 -0
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +31 -1
- package/dist/index.js.map +1 -1
- package/dist/infrastructure/cache/PersistentCache.d.ts +39 -0
- package/dist/infrastructure/cache/PersistentCache.d.ts.map +1 -0
- package/dist/infrastructure/cache/PersistentCache.js +194 -0
- package/dist/infrastructure/cache/PersistentCache.js.map +1 -0
- package/dist/infrastructure/http/AuthenticationManager.d.ts +38 -0
- package/dist/infrastructure/http/AuthenticationManager.d.ts.map +1 -0
- package/dist/infrastructure/http/AuthenticationManager.js +99 -0
- package/dist/infrastructure/http/AuthenticationManager.js.map +1 -0
- package/dist/infrastructure/http/CompressionManager.d.ts +30 -0
- package/dist/infrastructure/http/CompressionManager.d.ts.map +1 -0
- package/dist/infrastructure/http/CompressionManager.js +86 -0
- package/dist/infrastructure/http/CompressionManager.js.map +1 -0
- package/dist/infrastructure/http/ConnectionPool.d.ts +25 -0
- package/dist/infrastructure/http/ConnectionPool.d.ts.map +1 -0
- package/dist/infrastructure/http/ConnectionPool.js +101 -0
- package/dist/infrastructure/http/ConnectionPool.js.map +1 -0
- package/dist/infrastructure/http/ProxyManager.d.ts +43 -0
- package/dist/infrastructure/http/ProxyManager.d.ts.map +1 -0
- package/dist/infrastructure/http/ProxyManager.js +87 -0
- package/dist/infrastructure/http/ProxyManager.js.map +1 -0
- package/dist/infrastructure/http/RateLimiter.d.ts +28 -0
- package/dist/infrastructure/http/RateLimiter.d.ts.map +1 -0
- package/dist/infrastructure/http/RateLimiter.js +101 -0
- package/dist/infrastructure/http/RateLimiter.js.map +1 -0
- package/dist/infrastructure/http/RetryStrategy.d.ts +58 -0
- package/dist/infrastructure/http/RetryStrategy.d.ts.map +1 -0
- package/dist/infrastructure/http/RetryStrategy.js +136 -0
- package/dist/infrastructure/http/RetryStrategy.js.map +1 -0
- package/dist/infrastructure/logging/Logger.d.ts +49 -0
- package/dist/infrastructure/logging/Logger.d.ts.map +1 -0
- package/dist/infrastructure/logging/Logger.js +126 -0
- package/dist/infrastructure/logging/Logger.js.map +1 -0
- package/dist/infrastructure/monitoring/MetricsCollector.d.ts +53 -0
- package/dist/infrastructure/monitoring/MetricsCollector.d.ts.map +1 -0
- package/dist/infrastructure/monitoring/MetricsCollector.js +109 -0
- package/dist/infrastructure/monitoring/MetricsCollector.js.map +1 -0
- package/dist/infrastructure/security/SSRFProtection.js +1 -1
- package/dist/infrastructure/security/SSRFProtection.js.map +1 -1
- package/dist/shared/errors/base.error.d.ts +11 -6
- package/dist/shared/errors/base.error.d.ts.map +1 -1
- package/dist/shared/errors/base.error.js +42 -11
- package/dist/shared/errors/base.error.js.map +1 -1
- package/dist/shared/types/generics.d.ts +32 -0
- package/dist/shared/types/generics.d.ts.map +1 -0
- package/dist/shared/types/generics.js +3 -0
- package/dist/shared/types/generics.js.map +1 -0
- package/dist/shared/utils/enhanced-validators.d.ts +18 -0
- package/dist/shared/utils/enhanced-validators.d.ts.map +1 -0
- package/dist/shared/utils/enhanced-validators.js +162 -0
- package/dist/shared/utils/enhanced-validators.js.map +1 -0
- package/package.json +20 -3
package/CHANGELOG.md
CHANGED
|
@@ -7,6 +7,172 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0
|
|
|
7
7
|
|
|
8
8
|
## [Unreleased]
|
|
9
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
|
+
|
|
10
176
|
## [0.1.0] - 2025-01-25
|
|
11
177
|
|
|
12
178
|
### Added
|
package/README.md
CHANGED
|
@@ -1,10 +1,11 @@
|
|
|
1
1
|
# RDAPify - Unified, Secure, High-Performance RDAP Client for Enterprise Applications
|
|
2
2
|
|
|
3
|
-
> **🎉
|
|
3
|
+
> **🎉 LATEST RELEASE**: v0.1.2 — Production-ready with interactive playground, advanced features including authentication, proxy support, compression, retry strategies, and comprehensive monitoring. See [What's New in v0.1.2](#-whats-new-in-v012) below.
|
|
4
4
|
|
|
5
5
|
[](https://www.npmjs.com/package/rdapify)
|
|
6
6
|
[](LICENSE)
|
|
7
7
|
[](SECURITY.md)
|
|
8
|
+
[](#)
|
|
8
9
|
[](https://rdapify.com)
|
|
9
10
|
[](https://github.com/rdapify/RDAPify)
|
|
10
11
|
|
|
@@ -109,6 +110,123 @@ const asn = await client.asn('AS15169');
|
|
|
109
110
|
}
|
|
110
111
|
```
|
|
111
112
|
|
|
113
|
+
### With Monitoring & Metrics (v0.1.2+)
|
|
114
|
+
|
|
115
|
+
```typescript
|
|
116
|
+
import { RDAPClient } from 'rdapify';
|
|
117
|
+
|
|
118
|
+
// Create client with monitoring enabled
|
|
119
|
+
const client = new RDAPClient({
|
|
120
|
+
cache: true,
|
|
121
|
+
logging: {
|
|
122
|
+
level: 'info', // debug, info, warn, error
|
|
123
|
+
enabled: true,
|
|
124
|
+
},
|
|
125
|
+
});
|
|
126
|
+
|
|
127
|
+
// Perform queries
|
|
128
|
+
await client.domain('example.com');
|
|
129
|
+
await client.ip('8.8.8.8');
|
|
130
|
+
|
|
131
|
+
// Get performance metrics
|
|
132
|
+
const metrics = client.getMetrics();
|
|
133
|
+
console.log(`Success Rate: ${metrics.successRate}%`);
|
|
134
|
+
console.log(`Avg Response Time: ${metrics.avgResponseTime}ms`);
|
|
135
|
+
console.log(`Cache Hit Rate: ${metrics.cacheHitRate}%`);
|
|
136
|
+
|
|
137
|
+
// Get connection pool statistics
|
|
138
|
+
const poolStats = client.getConnectionPoolStats();
|
|
139
|
+
console.log(`Active Connections: ${poolStats.activeConnections}`);
|
|
140
|
+
|
|
141
|
+
// Get recent logs
|
|
142
|
+
const logs = client.getLogs(10);
|
|
143
|
+
logs.forEach((log) => {
|
|
144
|
+
console.log(`[${log.level}] ${log.message}`);
|
|
145
|
+
});
|
|
146
|
+
|
|
147
|
+
// Clean up resources
|
|
148
|
+
client.destroy();
|
|
149
|
+
```
|
|
150
|
+
|
|
151
|
+
### With Authentication & Proxy (v0.1.3+)
|
|
152
|
+
|
|
153
|
+
```typescript
|
|
154
|
+
import { RDAPClient, AuthenticationManager, ProxyManager } from 'rdapify';
|
|
155
|
+
|
|
156
|
+
// Setup authentication
|
|
157
|
+
const auth = new AuthenticationManager({
|
|
158
|
+
type: 'bearer', // 'basic' | 'bearer' | 'apiKey' | 'oauth2'
|
|
159
|
+
token: 'your-api-token',
|
|
160
|
+
});
|
|
161
|
+
|
|
162
|
+
// Setup proxy
|
|
163
|
+
const proxy = new ProxyManager({
|
|
164
|
+
host: 'proxy.example.com',
|
|
165
|
+
port: 8080,
|
|
166
|
+
protocol: 'http', // 'http' | 'https' | 'socks4' | 'socks5'
|
|
167
|
+
auth: {
|
|
168
|
+
username: 'proxyuser',
|
|
169
|
+
password: 'proxypass',
|
|
170
|
+
},
|
|
171
|
+
});
|
|
172
|
+
|
|
173
|
+
// Add bypass patterns
|
|
174
|
+
proxy.addBypass('*.internal.com');
|
|
175
|
+
|
|
176
|
+
// Use in your HTTP client configuration
|
|
177
|
+
const headers = auth.getAuthHeaders();
|
|
178
|
+
const proxyUrl = proxy.shouldBypass('example.com')
|
|
179
|
+
? undefined
|
|
180
|
+
: proxy.getProxyUrl();
|
|
181
|
+
```
|
|
182
|
+
|
|
183
|
+
### With Advanced Features (v0.1.3+)
|
|
184
|
+
|
|
185
|
+
```typescript
|
|
186
|
+
import {
|
|
187
|
+
RDAPClient,
|
|
188
|
+
RetryStrategy,
|
|
189
|
+
QueryPriorityQueue,
|
|
190
|
+
PersistentCache,
|
|
191
|
+
CompressionManager,
|
|
192
|
+
} from 'rdapify';
|
|
193
|
+
|
|
194
|
+
// Setup retry strategy with circuit breaker
|
|
195
|
+
const retry = new RetryStrategy({
|
|
196
|
+
strategy: 'exponential-jitter',
|
|
197
|
+
maxAttempts: 5,
|
|
198
|
+
circuitBreaker: {
|
|
199
|
+
enabled: true,
|
|
200
|
+
threshold: 3,
|
|
201
|
+
timeout: 60000,
|
|
202
|
+
},
|
|
203
|
+
});
|
|
204
|
+
|
|
205
|
+
// Setup priority queue
|
|
206
|
+
const queue = new QueryPriorityQueue(5, async (domain) => {
|
|
207
|
+
return await client.domain(domain);
|
|
208
|
+
});
|
|
209
|
+
|
|
210
|
+
// Enqueue with priority
|
|
211
|
+
await queue.enqueue('critical.com', 'high');
|
|
212
|
+
await queue.enqueue('normal.com', 'normal');
|
|
213
|
+
await queue.enqueue('background.com', 'low');
|
|
214
|
+
|
|
215
|
+
// Setup persistent cache
|
|
216
|
+
const cache = new PersistentCache({
|
|
217
|
+
storage: 'file',
|
|
218
|
+
path: './cache/rdap-cache.json',
|
|
219
|
+
ttl: 3600000, // 1 hour
|
|
220
|
+
autoSave: true,
|
|
221
|
+
});
|
|
222
|
+
|
|
223
|
+
// Setup compression
|
|
224
|
+
const compression = new CompressionManager({
|
|
225
|
+
enabled: true,
|
|
226
|
+
types: ['br', 'gzip', 'deflate'],
|
|
227
|
+
});
|
|
228
|
+
```
|
|
229
|
+
|
|
112
230
|
## 🌟 Core Features
|
|
113
231
|
|
|
114
232
|
### 🔒 Enterprise Security
|
|
@@ -117,20 +235,36 @@ const asn = await client.asn('AS15169');
|
|
|
117
235
|
- **Certificate Validation**: Reject insecure connections to RDAP servers
|
|
118
236
|
- **Rate Limiting**: Prevent service blocking due to excessive requests
|
|
119
237
|
- **Secure Data Handling**: PII redaction according to GDPR/CCPA requirements
|
|
238
|
+
- **Authentication Support** (v0.1.3+): Basic, Bearer Token, API Key, OAuth2
|
|
239
|
+
- **Proxy Support** (v0.1.3+): HTTP/HTTPS/SOCKS4/SOCKS5 with authentication
|
|
120
240
|
- **Full Audit Trail**: Track all critical operations for compliance purposes
|
|
121
241
|
|
|
122
242
|
### ⚡ Exceptional Performance
|
|
123
243
|
|
|
124
|
-
- **Smart Caching**: In-memory LRU cache with configurable TTL
|
|
125
|
-
- **
|
|
244
|
+
- **Smart Caching**: In-memory LRU cache with configurable TTL
|
|
245
|
+
- **Persistent Cache** (v0.1.3+): File-based cache that survives restarts
|
|
246
|
+
- **Connection Pooling** (v0.1.2+): HTTP connection reuse for 30-40% performance improvement
|
|
247
|
+
- **Batch Processing**: Process multiple queries efficiently (5-10x faster)
|
|
248
|
+
- **Response Compression** (v0.1.3+): gzip/brotli support for 60-80% bandwidth reduction
|
|
249
|
+
- **Retry Strategies** (v0.1.3+): Circuit breaker with exponential backoff
|
|
250
|
+
- **Query Prioritization** (v0.1.3+): High/normal/low priority queue
|
|
126
251
|
- **Registry Discovery**: Automatic IANA Bootstrap for finding the correct registry
|
|
127
|
-
- **Offline Mode**: Work with cached data during network outages (planned)
|
|
128
252
|
- **Optimized Parsing**: Fast JSONPath-based normalization
|
|
129
253
|
|
|
254
|
+
### 📊 Monitoring & Observability (v0.1.2+)
|
|
255
|
+
|
|
256
|
+
- **Metrics Collection**: Track query performance, success rates, and cache effectiveness
|
|
257
|
+
- **Request/Response Logging**: Detailed logging with configurable levels (debug, info, warn, error)
|
|
258
|
+
- **Performance Analysis**: Monitor response times, identify bottlenecks, and optimize queries
|
|
259
|
+
- **Connection Pool Stats**: Track connection reuse and resource utilization
|
|
260
|
+
- **Time-based Filtering**: Analyze metrics over specific time periods
|
|
261
|
+
- **Export Capabilities**: Export metrics and logs for external analysis
|
|
262
|
+
|
|
130
263
|
### 🧩 Seamless Integration
|
|
131
264
|
|
|
132
265
|
- **Full TypeScript Support**: Strongly typed with embedded documentation
|
|
133
|
-
- **Node.js Support**: Verified working (target: Node.js
|
|
266
|
+
- **Node.js Support**: Verified working (target: Node.js 20+)
|
|
267
|
+
- **Enhanced Validation** (v0.1.3+): IDN domains, IPv6 zones, ASN ranges
|
|
134
268
|
- **Interactive CLI**: For quick queries and testing (planned)
|
|
135
269
|
- **Web Playground**: Try the library directly in your browser (planned)
|
|
136
270
|
- **Pre-built Templates**: For AWS Lambda, Azure Functions, Kubernetes, and more (planned)
|
|
@@ -231,21 +365,65 @@ Start by reading our [Contribution Guide](CONTRIBUTING.md) and [Code of Conduct]
|
|
|
231
365
|
|
|
232
366
|
## 🚧 Project Status
|
|
233
367
|
|
|
234
|
-
**Current Release**: v0.1.
|
|
368
|
+
**Current Release**: v0.1.2 (Production Ready)
|
|
369
|
+
|
|
370
|
+
### 🎉 What's New in v0.1.2
|
|
235
371
|
|
|
236
|
-
|
|
372
|
+
**Interactive Playground & Developer Experience**
|
|
373
|
+
- ✅ **Try Before Install**: Interactive playground at rdapify.com/playground
|
|
374
|
+
- ✅ **Client ID Tracking**: Stable browser identification with localStorage
|
|
375
|
+
- ✅ **Quota Management**: Real-time quota display (remainingToday, resetAt)
|
|
376
|
+
- ✅ **Rate Limit Handling**: Graceful 429 responses with retry hints
|
|
377
|
+
- ✅ **Multi-Package Manager**: npm, yarn, and pnpm install commands
|
|
378
|
+
- ✅ **Website Integration**: Playground accessible from main navigation
|
|
379
|
+
- ✅ **Code Quality**: ESLint errors resolved (6 issues fixed)
|
|
380
|
+
|
|
381
|
+
**Previous Releases**
|
|
382
|
+
|
|
383
|
+
**Phase 3: Authentication & Network** (52 new tests - v0.1.1+)
|
|
384
|
+
- ✅ **Authentication Support**: Basic, Bearer Token, API Key, OAuth2
|
|
385
|
+
- ✅ **Proxy Support**: HTTP/HTTPS/SOCKS4/SOCKS5 with bypass lists
|
|
386
|
+
- ✅ **Response Compression**: gzip, brotli, deflate (60-80% bandwidth reduction)
|
|
387
|
+
|
|
388
|
+
**Phase 2: Advanced Features** (55 new tests)
|
|
389
|
+
- ✅ **Retry Strategies**: Circuit breaker with exponential backoff
|
|
390
|
+
- ✅ **Query Prioritization**: High/normal/low priority queue
|
|
391
|
+
- ✅ **Enhanced Validation**: IDN domains, IPv6 zones, ASN ranges
|
|
392
|
+
- ✅ **Persistent Cache**: File-based storage that survives restarts
|
|
393
|
+
|
|
394
|
+
**Phase 1: Core Improvements** (38 new tests)
|
|
395
|
+
- ✅ **Connection Pooling**: 30-40% performance improvement
|
|
396
|
+
- ✅ **Metrics & Monitoring**: Comprehensive query tracking
|
|
397
|
+
- ✅ **Request/Response Logging**: Detailed debugging capabilities
|
|
398
|
+
|
|
399
|
+
**Total Improvements**: 11 major features, 145+ tests (all passing)
|
|
400
|
+
|
|
401
|
+
See [ALL_PHASES_COMPLETE.md](./docs/releases/ALL_PHASES_COMPLETE.md) for detailed documentation.
|
|
402
|
+
|
|
403
|
+
### ✅ What's Ready in v0.1.2
|
|
237
404
|
|
|
238
405
|
Core functionality is production-ready and fully tested:
|
|
239
406
|
|
|
407
|
+
- ✅ **Interactive Playground**: Try RDAPify without installing (rdapify.com/playground)
|
|
240
408
|
- ✅ **RDAP Client**: Domain, IP, and ASN queries with automatic bootstrap discovery
|
|
241
409
|
- ✅ **SSRF Protection**: Blocks private IPs, localhost, link-local, with proper CIDR matching (IPv4/IPv6)
|
|
242
410
|
- ✅ **Data Normalization**: Consistent response format across all registries
|
|
243
411
|
- ✅ **PII Redaction**: Automatic redaction of emails, phones, addresses
|
|
244
412
|
- ✅ **In-Memory Caching**: LRU cache with TTL support
|
|
245
|
-
- ✅ **
|
|
413
|
+
- ✅ **Persistent Cache**: File-based cache that survives restarts
|
|
414
|
+
- ✅ **Connection Pooling**: HTTP connection reuse (30-40% faster)
|
|
415
|
+
- ✅ **Metrics & Monitoring**: Comprehensive query tracking and analysis
|
|
416
|
+
- ✅ **Request/Response Logging**: Detailed logging with multiple levels
|
|
417
|
+
- ✅ **Retry Strategies**: Circuit breaker with exponential backoff
|
|
418
|
+
- ✅ **Query Prioritization**: High/normal/low priority queue
|
|
419
|
+
- ✅ **Enhanced Validation**: IDN domains, IPv6 zones, ASN ranges
|
|
420
|
+
- ✅ **Authentication Support**: Basic, Bearer, API Key, OAuth2
|
|
421
|
+
- ✅ **Proxy Support**: HTTP/HTTPS/SOCKS4/SOCKS5
|
|
422
|
+
- ✅ **Response Compression**: gzip, brotli, deflate
|
|
423
|
+
- ✅ **Error Handling**: Structured errors with retry logic
|
|
246
424
|
- ✅ **TypeScript Support**: Full type definitions and strict mode
|
|
247
|
-
- ✅ **Test Coverage**:
|
|
248
|
-
- ✅ **Node.js Support**: Verified working (
|
|
425
|
+
- ✅ **Test Coverage**: 145+ new tests passing (unit + integration)
|
|
426
|
+
- ✅ **Node.js Support**: Verified working (Node.js 20+)
|
|
249
427
|
|
|
250
428
|
### 🔄 Planned Features
|
|
251
429
|
|
|
@@ -253,19 +431,21 @@ These features are planned for future releases:
|
|
|
253
431
|
|
|
254
432
|
- ⏳ **Redis/External Cache**: External cache adapters coming in v0.2.0
|
|
255
433
|
- ⏳ **CLI Tool**: Command-line interface planned
|
|
256
|
-
- ⏳ **Interactive Playground**: Web-based testing environment
|
|
257
434
|
- ⏳ **Bun/Deno/Cloudflare Workers**: Additional runtime support
|
|
258
435
|
- ⏳ **Advanced Analytics**: Dashboard and reporting features
|
|
259
436
|
- ⏳ **Geo-distributed Caching**: Multi-region cache support
|
|
437
|
+
- ⏳ **Smart Caching**: Predictive caching with adaptive TTL
|
|
438
|
+
- ⏳ **Real-time Updates**: WebSocket/SSE support
|
|
260
439
|
|
|
261
440
|
### 📋 Roadmap to v0.2.0
|
|
262
441
|
|
|
263
442
|
- Redis cache adapter
|
|
264
|
-
- CLI tool
|
|
443
|
+
- CLI tool with interactive mode
|
|
265
444
|
- Rate limiting improvements
|
|
266
445
|
- Batch processing optimization
|
|
446
|
+
- Bun/Deno runtime compatibility testing
|
|
267
447
|
|
|
268
|
-
See [ROADMAP.md](ROADMAP.md) for the complete roadmap.
|
|
448
|
+
See [ROADMAP.md](ROADMAP.md) for the complete roadmap and [CHANGELOG.md](CHANGELOG.md) for detailed version history.
|
|
269
449
|
|
|
270
450
|
## 🏗️ Code Architecture
|
|
271
451
|
|
|
@@ -338,14 +518,22 @@ src/
|
|
|
338
518
|
See [REFACTOR_STATUS.md](REFACTOR_STATUS.md) for detailed refactoring progress.
|
|
339
519
|
|
|
340
520
|
### 📋 Roadmap to v0.2.0 (Continued)
|
|
341
|
-
- CLI tool with interactive mode
|
|
342
|
-
- Bun/Deno runtime compatibility testing
|
|
343
521
|
- Live integration tests (optional via LIVE_TESTS=1)
|
|
344
522
|
- Performance benchmarks with real data
|
|
345
|
-
-
|
|
523
|
+
- Advanced analytics dashboard
|
|
346
524
|
|
|
347
525
|
**Want to contribute?** Check out our [CONTRIBUTING.md](CONTRIBUTING.md) and [ROADMAP.md](ROADMAP.md)!
|
|
348
526
|
|
|
527
|
+
## 📚 Additional Documentation
|
|
528
|
+
|
|
529
|
+
- **[Release Documentation](./docs/releases/)** - Complete phase documentation
|
|
530
|
+
- **[ALL_PHASES_COMPLETE.md](./docs/releases/ALL_PHASES_COMPLETE.md)** - Complete overview
|
|
531
|
+
- **[PHASE_1_COMPLETE.md](./docs/releases/PHASE_1_COMPLETE.md)** - Core improvements
|
|
532
|
+
- **[PHASE_2_COMPLETE.md](./docs/releases/PHASE_2_COMPLETE.md)** - Advanced features
|
|
533
|
+
- **[PHASE_3_COMPLETE.md](./docs/releases/PHASE_3_COMPLETE.md)** - Authentication & network
|
|
534
|
+
- **[CHANGELOG.md](./CHANGELOG.md)** - Detailed version history
|
|
535
|
+
- **[ADDITIONAL_IMPROVEMENTS.md](./ADDITIONAL_IMPROVEMENTS.md)** - Implementation status
|
|
536
|
+
|
|
349
537
|
## 🔍 Version Verification
|
|
350
538
|
|
|
351
539
|
RDAPify intentionally does **not** export `./package.json` in the package exports for security and API surface minimization. Attempting to import it will throw an expected error:
|
|
@@ -402,10 +590,10 @@ We're looking for early adopters and beta testers! If you're interested in:
|
|
|
402
590
|
|
|
403
591
|
### Known Issues & Limitations
|
|
404
592
|
|
|
405
|
-
- Only in-memory caching available (Redis adapter planned for v0.2.0)
|
|
406
|
-
- No CLI tool yet (programmatic API only)
|
|
407
593
|
- Bun/Deno/Cloudflare Workers compatibility not yet tested
|
|
408
594
|
- Live RDAP server tests disabled by default (use `LIVE_TESTS=1` to enable)
|
|
595
|
+
- CLI tool not yet available (programmatic API only)
|
|
596
|
+
- Redis cache adapter planned for v0.2.0
|
|
409
597
|
|
|
410
598
|
## 📜 License
|
|
411
599
|
|
|
@@ -1,5 +1,8 @@
|
|
|
1
|
+
import { RateLimiter } from '../../infrastructure/http/RateLimiter';
|
|
2
|
+
import { Logger } from '../../infrastructure/logging/Logger';
|
|
1
3
|
import type { DomainResponse, IPResponse, ASNResponse } from '../../shared/types';
|
|
2
4
|
import type { RDAPClientOptions } from '../../shared/types/options';
|
|
5
|
+
import { BatchProcessor } from '../services/BatchProcessor';
|
|
3
6
|
export declare class RDAPClient {
|
|
4
7
|
private readonly options;
|
|
5
8
|
private readonly cache;
|
|
@@ -9,6 +12,11 @@ export declare class RDAPClient {
|
|
|
9
12
|
private readonly normalizer;
|
|
10
13
|
private readonly piiRedactor;
|
|
11
14
|
private readonly orchestrator;
|
|
15
|
+
private readonly rateLimiter;
|
|
16
|
+
private readonly batchProcessor;
|
|
17
|
+
private readonly connectionPool;
|
|
18
|
+
private readonly metricsCollector;
|
|
19
|
+
private readonly logger;
|
|
12
20
|
constructor(options?: RDAPClientOptions);
|
|
13
21
|
domain(domain: string): Promise<DomainResponse>;
|
|
14
22
|
ip(ip: string): Promise<IPResponse>;
|
|
@@ -28,5 +36,18 @@ export declare class RDAPClient {
|
|
|
28
36
|
};
|
|
29
37
|
}>;
|
|
30
38
|
getConfig(): Required<RDAPClientOptions>;
|
|
39
|
+
getRateLimiter(): RateLimiter;
|
|
40
|
+
getBatchProcessor(): BatchProcessor;
|
|
41
|
+
getMetrics(since?: number): import("../../infrastructure/monitoring/MetricsCollector").MetricsSummary;
|
|
42
|
+
getConnectionPoolStats(): {
|
|
43
|
+
totalConnections: number;
|
|
44
|
+
activeConnections: number;
|
|
45
|
+
idleConnections: number;
|
|
46
|
+
hosts: number;
|
|
47
|
+
};
|
|
48
|
+
getLogger(): Logger;
|
|
49
|
+
getLogs(count?: number): import("../../infrastructure/logging/Logger").LogEntry[];
|
|
50
|
+
clearAll(): Promise<void>;
|
|
51
|
+
destroy(): void;
|
|
31
52
|
}
|
|
32
53
|
//# sourceMappingURL=RDAPClient.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"RDAPClient.d.ts","sourceRoot":"","sources":["../../../src/application/client/RDAPClient.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"RDAPClient.d.ts","sourceRoot":"","sources":["../../../src/application/client/RDAPClient.ts"],"names":[],"mappings":"AAOA,OAAO,EAAE,WAAW,EAAE,MAAM,uCAAuC,CAAC;AAIpE,OAAO,EAAE,MAAM,EAAE,MAAM,qCAAqC,CAAC;AAC7D,OAAO,KAAK,EAAE,cAAc,EAAE,UAAU,EAAE,WAAW,EAAE,MAAM,oBAAoB,CAAC;AAGlF,OAAO,KAAK,EACV,iBAAiB,EAIlB,MAAM,4BAA4B,CAAC;AAGpC,OAAO,EAAE,cAAc,EAAE,MAAM,4BAA4B,CAAC;AAgB5D,qBAAa,UAAU;IACrB,OAAO,CAAC,QAAQ,CAAC,OAAO,CAA8B;IACtD,OAAO,CAAC,QAAQ,CAAC,KAAK,CAAe;IACrC,OAAO,CAAC,QAAQ,CAAC,OAAO,CAAU;IAClC,OAAO,CAAC,QAAQ,CAAC,cAAc,CAAiB;IAChD,OAAO,CAAC,QAAQ,CAAC,SAAS,CAAqB;IAC/C,OAAO,CAAC,QAAQ,CAAC,UAAU,CAAa;IACxC,OAAO,CAAC,QAAQ,CAAC,WAAW,CAAc;IAC1C,OAAO,CAAC,QAAQ,CAAC,YAAY,CAAoB;IACjD,OAAO,CAAC,QAAQ,CAAC,WAAW,CAAc;IAC1C,OAAO,CAAC,QAAQ,CAAC,cAAc,CAAiB;IAChD,OAAO,CAAC,QAAQ,CAAC,cAAc,CAAiB;IAChD,OAAO,CAAC,QAAQ,CAAC,gBAAgB,CAAmB;IACpD,OAAO,CAAC,QAAQ,CAAC,MAAM,CAAS;gBACpB,OAAO,GAAE,iBAAsB;IA8GrC,MAAM,CAAC,MAAM,EAAE,MAAM,GAAG,OAAO,CAAC,cAAc,CAAC;IAiB/C,EAAE,CAAC,EAAE,EAAE,MAAM,GAAG,OAAO,CAAC,UAAU,CAAC;IAgBnC,GAAG,CAAC,GAAG,EAAE,MAAM,GAAG,MAAM,GAAG,OAAO,CAAC,WAAW,CAAC;YAOvC,cAAc;IA0C5B,OAAO,CAAC,gBAAgB;IAOlB,UAAU,IAAI,OAAO,CAAC,IAAI,CAAC;IAQ3B,QAAQ,IAAI,OAAO,CAAC;QACxB,KAAK,EAAE;YACL,IAAI,EAAE,MAAM,CAAC;YACb,OAAO,EAAE,OAAO,CAAC;YACjB,GAAG,EAAE,MAAM,CAAC;SACb,CAAC;QACF,SAAS,EAAE;YACT,IAAI,EAAE,MAAM,CAAC;YACb,KAAK,EAAE,MAAM,EAAE,CAAC;SACjB,CAAC;KACH,CAAC;IAUF,SAAS,IAAI,QAAQ,CAAC,iBAAiB,CAAC;IAOxC,cAAc,IAAI,WAAW;IAO7B,iBAAiB,IAAI,cAAc;IAOnC,UAAU,CAAC,KAAK,CAAC,EAAE,MAAM;IAOzB,sBAAsB;;;;;;IAOtB,SAAS,IAAI,MAAM;IAOnB,OAAO,CAAC,KAAK,CAAC,EAAE,MAAM;IAOhB,QAAQ,IAAI,OAAO,CAAC,IAAI,CAAC;IAU/B,OAAO,IAAI,IAAI;CAIhB"}
|
|
@@ -3,14 +3,16 @@ Object.defineProperty(exports, "__esModule", { value: true });
|
|
|
3
3
|
exports.RDAPClient = void 0;
|
|
4
4
|
const cache_1 = require("../../infrastructure/cache");
|
|
5
5
|
const http_1 = require("../../infrastructure/http");
|
|
6
|
-
const
|
|
6
|
+
const RateLimiter_1 = require("../../infrastructure/http/RateLimiter");
|
|
7
|
+
const ConnectionPool_1 = require("../../infrastructure/http/ConnectionPool");
|
|
7
8
|
const security_1 = require("../../infrastructure/security");
|
|
8
|
-
const
|
|
9
|
-
const
|
|
9
|
+
const MetricsCollector_1 = require("../../infrastructure/monitoring/MetricsCollector");
|
|
10
|
+
const Logger_1 = require("../../infrastructure/logging/Logger");
|
|
10
11
|
const errors_1 = require("../../shared/errors");
|
|
11
12
|
const options_1 = require("../../shared/types/options");
|
|
12
13
|
const helpers_1 = require("../../shared/utils/helpers");
|
|
13
14
|
const services_1 = require("../services");
|
|
15
|
+
const BatchProcessor_1 = require("../services/BatchProcessor");
|
|
14
16
|
class RDAPClient {
|
|
15
17
|
constructor(options = {}) {
|
|
16
18
|
this.options = this.normalizeOptions(options);
|
|
@@ -18,7 +20,7 @@ class RDAPClient {
|
|
|
18
20
|
? { enabled: this.options.ssrfProtection }
|
|
19
21
|
: this.options.ssrfProtection;
|
|
20
22
|
this.ssrfProtection = new security_1.SSRFProtection(ssrfOptions);
|
|
21
|
-
this.fetcher = new
|
|
23
|
+
this.fetcher = new http_1.Fetcher({
|
|
22
24
|
timeout: typeof this.options.timeout === 'number'
|
|
23
25
|
? {
|
|
24
26
|
request: this.options.timeout,
|
|
@@ -39,11 +41,32 @@ class RDAPClient {
|
|
|
39
41
|
: { strategy: 'none' }
|
|
40
42
|
: this.options.cache;
|
|
41
43
|
this.cache = new cache_1.CacheManager(cacheOptions);
|
|
42
|
-
this.normalizer = new
|
|
44
|
+
this.normalizer = new http_1.Normalizer();
|
|
43
45
|
const privacyOptions = typeof this.options.privacy === 'boolean'
|
|
44
46
|
? { redactPII: this.options.privacy }
|
|
45
47
|
: this.options.privacy;
|
|
46
|
-
this.piiRedactor = new
|
|
48
|
+
this.piiRedactor = new security_1.PIIRedactor(privacyOptions);
|
|
49
|
+
const rateLimitOptions = typeof this.options.rateLimit === 'boolean'
|
|
50
|
+
? this.options.rateLimit
|
|
51
|
+
? options_1.DEFAULT_OPTIONS.rateLimit
|
|
52
|
+
: { enabled: false }
|
|
53
|
+
: this.options.rateLimit;
|
|
54
|
+
this.rateLimiter = new RateLimiter_1.RateLimiter(rateLimitOptions);
|
|
55
|
+
this.connectionPool = new ConnectionPool_1.ConnectionPool({
|
|
56
|
+
maxConnections: 10,
|
|
57
|
+
keepAlive: true,
|
|
58
|
+
});
|
|
59
|
+
this.metricsCollector = new MetricsCollector_1.MetricsCollector({
|
|
60
|
+
enabled: true,
|
|
61
|
+
maxMetrics: 10000,
|
|
62
|
+
});
|
|
63
|
+
this.logger = new Logger_1.Logger({
|
|
64
|
+
level: this.options.logging?.level || 'info',
|
|
65
|
+
enabled: true,
|
|
66
|
+
logRequests: true,
|
|
67
|
+
logResponses: true,
|
|
68
|
+
});
|
|
69
|
+
this.batchProcessor = new BatchProcessor_1.BatchProcessor(this);
|
|
47
70
|
this.orchestrator = new services_1.QueryOrchestrator({
|
|
48
71
|
cache: this.cache,
|
|
49
72
|
bootstrap: this.bootstrap,
|
|
@@ -52,6 +75,9 @@ class RDAPClient {
|
|
|
52
75
|
piiRedactor: this.piiRedactor,
|
|
53
76
|
includeRaw: this.options.includeRaw,
|
|
54
77
|
fetchWithRetry: this.fetchWithRetry.bind(this),
|
|
78
|
+
rateLimiter: this.rateLimiter,
|
|
79
|
+
metricsCollector: this.metricsCollector,
|
|
80
|
+
logger: this.logger,
|
|
55
81
|
});
|
|
56
82
|
}
|
|
57
83
|
async domain(domain) {
|
|
@@ -104,6 +130,34 @@ class RDAPClient {
|
|
|
104
130
|
getConfig() {
|
|
105
131
|
return { ...this.options };
|
|
106
132
|
}
|
|
133
|
+
getRateLimiter() {
|
|
134
|
+
return this.rateLimiter;
|
|
135
|
+
}
|
|
136
|
+
getBatchProcessor() {
|
|
137
|
+
return this.batchProcessor;
|
|
138
|
+
}
|
|
139
|
+
getMetrics(since) {
|
|
140
|
+
return this.metricsCollector.getSummary(since);
|
|
141
|
+
}
|
|
142
|
+
getConnectionPoolStats() {
|
|
143
|
+
return this.connectionPool.getStats();
|
|
144
|
+
}
|
|
145
|
+
getLogger() {
|
|
146
|
+
return this.logger;
|
|
147
|
+
}
|
|
148
|
+
getLogs(count) {
|
|
149
|
+
return this.logger.getLogs(count);
|
|
150
|
+
}
|
|
151
|
+
async clearAll() {
|
|
152
|
+
await this.cache.clear();
|
|
153
|
+
this.bootstrap.clearCache();
|
|
154
|
+
this.metricsCollector.clear();
|
|
155
|
+
this.logger.clear();
|
|
156
|
+
}
|
|
157
|
+
destroy() {
|
|
158
|
+
this.rateLimiter.destroy();
|
|
159
|
+
this.connectionPool.destroy();
|
|
160
|
+
}
|
|
107
161
|
}
|
|
108
162
|
exports.RDAPClient = RDAPClient;
|
|
109
163
|
//# sourceMappingURL=RDAPClient.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"RDAPClient.js","sourceRoot":"","sources":["../../../src/application/client/RDAPClient.ts"],"names":[],"mappings":";;;AAKA,sDAA0D;AAC1D,
|
|
1
|
+
{"version":3,"file":"RDAPClient.js","sourceRoot":"","sources":["../../../src/application/client/RDAPClient.ts"],"names":[],"mappings":"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"}
|