rdapify 0.1.3 → 0.1.7

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 (111) hide show
  1. package/CHANGELOG.md +139 -94
  2. package/README.md +168 -146
  3. package/dist/application/client/RDAPClient.d.ts +16 -1
  4. package/dist/application/client/RDAPClient.d.ts.map +1 -1
  5. package/dist/application/client/RDAPClient.js +46 -1
  6. package/dist/application/client/RDAPClient.js.map +1 -1
  7. package/dist/application/deduplication/QueryDeduplicator.d.ts +20 -0
  8. package/dist/application/deduplication/QueryDeduplicator.d.ts.map +1 -0
  9. package/dist/application/deduplication/QueryDeduplicator.js +46 -0
  10. package/dist/application/deduplication/QueryDeduplicator.js.map +1 -0
  11. package/dist/application/hooks/MiddlewareHooks.d.ts +48 -0
  12. package/dist/application/hooks/MiddlewareHooks.d.ts.map +1 -0
  13. package/dist/application/hooks/MiddlewareHooks.js +46 -0
  14. package/dist/application/hooks/MiddlewareHooks.js.map +1 -0
  15. package/dist/application/services/BatchProcessor.d.ts +1 -0
  16. package/dist/application/services/BatchProcessor.d.ts.map +1 -1
  17. package/dist/application/services/BatchProcessor.js +9 -0
  18. package/dist/application/services/BatchProcessor.js.map +1 -1
  19. package/dist/application/services/QueryOrchestrator.d.ts +14 -1
  20. package/dist/application/services/QueryOrchestrator.d.ts.map +1 -1
  21. package/dist/application/services/QueryOrchestrator.js +446 -38
  22. package/dist/application/services/QueryOrchestrator.js.map +1 -1
  23. package/dist/cli/index.d.ts +3 -0
  24. package/dist/cli/index.d.ts.map +1 -0
  25. package/dist/cli/index.js +300 -0
  26. package/dist/cli/index.js.map +1 -0
  27. package/dist/index.d.ts +13 -3
  28. package/dist/index.d.ts.map +1 -1
  29. package/dist/index.js +26 -2
  30. package/dist/index.js.map +1 -1
  31. package/dist/infrastructure/cache/CacheManager.d.ts.map +1 -1
  32. package/dist/infrastructure/cache/CacheManager.js +8 -1
  33. package/dist/infrastructure/cache/CacheManager.js.map +1 -1
  34. package/dist/infrastructure/cache/RedisCache.d.ts +35 -0
  35. package/dist/infrastructure/cache/RedisCache.d.ts.map +1 -0
  36. package/dist/infrastructure/cache/RedisCache.js +75 -0
  37. package/dist/infrastructure/cache/RedisCache.js.map +1 -0
  38. package/dist/infrastructure/cache/index.d.ts +1 -0
  39. package/dist/infrastructure/cache/index.d.ts.map +1 -1
  40. package/dist/infrastructure/cache/index.js +3 -1
  41. package/dist/infrastructure/cache/index.js.map +1 -1
  42. package/dist/infrastructure/http/BootstrapDiscovery.d.ts +1 -0
  43. package/dist/infrastructure/http/BootstrapDiscovery.d.ts.map +1 -1
  44. package/dist/infrastructure/http/BootstrapDiscovery.js +19 -0
  45. package/dist/infrastructure/http/BootstrapDiscovery.js.map +1 -1
  46. package/dist/infrastructure/http/Fetcher.d.ts +2 -0
  47. package/dist/infrastructure/http/Fetcher.d.ts.map +1 -1
  48. package/dist/infrastructure/http/Fetcher.js +5 -3
  49. package/dist/infrastructure/http/Fetcher.js.map +1 -1
  50. package/dist/infrastructure/http/Normalizer.d.ts +2 -0
  51. package/dist/infrastructure/http/Normalizer.d.ts.map +1 -1
  52. package/dist/infrastructure/http/Normalizer.js +57 -0
  53. package/dist/infrastructure/http/Normalizer.js.map +1 -1
  54. package/dist/infrastructure/logging/AuditLogger.d.ts +114 -0
  55. package/dist/infrastructure/logging/AuditLogger.d.ts.map +1 -0
  56. package/dist/infrastructure/logging/AuditLogger.js +195 -0
  57. package/dist/infrastructure/logging/AuditLogger.js.map +1 -0
  58. package/dist/infrastructure/logging/Logger.d.ts.map +1 -1
  59. package/dist/infrastructure/logging/Logger.js +29 -5
  60. package/dist/infrastructure/logging/Logger.js.map +1 -1
  61. package/dist/infrastructure/monitoring/MetricsCollector.d.ts +39 -2
  62. package/dist/infrastructure/monitoring/MetricsCollector.d.ts.map +1 -1
  63. package/dist/infrastructure/monitoring/MetricsCollector.js +179 -0
  64. package/dist/infrastructure/monitoring/MetricsCollector.js.map +1 -1
  65. package/dist/infrastructure/security/PIIRedactor.js +1 -1
  66. package/dist/infrastructure/security/PIIRedactor.js.map +1 -1
  67. package/dist/infrastructure/validation/ResponseValidator.d.ts +38 -0
  68. package/dist/infrastructure/validation/ResponseValidator.d.ts.map +1 -0
  69. package/dist/infrastructure/validation/ResponseValidator.js +200 -0
  70. package/dist/infrastructure/validation/ResponseValidator.js.map +1 -0
  71. package/dist/shared/constants/rdap.constants.d.ts +1 -1
  72. package/dist/shared/constants/rdap.constants.js +1 -1
  73. package/dist/shared/errors/base.error.d.ts +8 -0
  74. package/dist/shared/errors/base.error.d.ts.map +1 -1
  75. package/dist/shared/errors/base.error.js +30 -1
  76. package/dist/shared/errors/base.error.js.map +1 -1
  77. package/dist/shared/types/generics.d.ts +6 -3
  78. package/dist/shared/types/generics.d.ts.map +1 -1
  79. package/dist/shared/types/index.d.ts +1 -1
  80. package/dist/shared/types/index.d.ts.map +1 -1
  81. package/dist/shared/types/options.d.ts +21 -2
  82. package/dist/shared/types/options.d.ts.map +1 -1
  83. package/dist/shared/types/options.js +6 -1
  84. package/dist/shared/types/options.js.map +1 -1
  85. package/dist/shared/types/responses.d.ts +42 -2
  86. package/dist/shared/types/responses.d.ts.map +1 -1
  87. package/dist/shared/utils/helpers/index.d.ts +1 -1
  88. package/dist/shared/utils/helpers/index.d.ts.map +1 -1
  89. package/dist/shared/utils/helpers/index.js +2 -1
  90. package/dist/shared/utils/helpers/index.js.map +1 -1
  91. package/dist/shared/utils/helpers/runtime.d.ts +1 -0
  92. package/dist/shared/utils/helpers/runtime.d.ts.map +1 -1
  93. package/dist/shared/utils/helpers/runtime.js +11 -1
  94. package/dist/shared/utils/helpers/runtime.js.map +1 -1
  95. package/dist/shared/utils/validators/config-validation.d.ts +3 -0
  96. package/dist/shared/utils/validators/config-validation.d.ts.map +1 -0
  97. package/dist/shared/utils/validators/config-validation.js +97 -0
  98. package/dist/shared/utils/validators/config-validation.js.map +1 -0
  99. package/dist/shared/utils/validators/entity.d.ts +3 -0
  100. package/dist/shared/utils/validators/entity.d.ts.map +1 -0
  101. package/dist/shared/utils/validators/entity.js +27 -0
  102. package/dist/shared/utils/validators/entity.js.map +1 -0
  103. package/dist/shared/utils/validators/index.d.ts +3 -0
  104. package/dist/shared/utils/validators/index.d.ts.map +1 -1
  105. package/dist/shared/utils/validators/index.js +9 -1
  106. package/dist/shared/utils/validators/index.js.map +1 -1
  107. package/dist/shared/utils/validators/nameserver.d.ts +3 -0
  108. package/dist/shared/utils/validators/nameserver.d.ts.map +1 -0
  109. package/dist/shared/utils/validators/nameserver.js +49 -0
  110. package/dist/shared/utils/validators/nameserver.js.map +1 -0
  111. package/package.json +9 -10
@@ -0,0 +1,300 @@
1
+ #!/usr/bin/env node
2
+ "use strict";
3
+ Object.defineProperty(exports, "__esModule", { value: true });
4
+ const index_1 = require("../index");
5
+ const HELP_TEXT = `
6
+ RDAPify v${index_1.VERSION} — RDAP client CLI
7
+
8
+ Usage:
9
+ rdapify domain <name> Query domain registration info
10
+ rdapify ip <address> Query IP address info
11
+ rdapify asn <number> Query ASN info
12
+ rdapify nameserver <hostname> Query nameserver info
13
+ rdapify entity <handle> --server <url> Query entity (contact/registrar) info
14
+
15
+ Options:
16
+ --json Output raw JSON
17
+ --no-cache Disable cache for this query
18
+ --timeout <ms> Request timeout in milliseconds (default: 10000)
19
+ --server <url> RDAP server base URL (required for entity queries)
20
+ --version, -v Show version
21
+ --help, -h Show this help message
22
+
23
+ Examples:
24
+ rdapify domain example.com
25
+ rdapify ip 8.8.8.8
26
+ rdapify asn 15169
27
+ rdapify nameserver ns1.example.com
28
+ rdapify entity ARIN-HN-1 --server https://rdap.arin.net/registry
29
+ rdapify domain example.com --json
30
+ rdapify ip 1.1.1.1 --no-cache --timeout 5000
31
+ `.trimStart();
32
+ function parseArgs(argv) {
33
+ const result = {
34
+ command: null,
35
+ query: null,
36
+ json: false,
37
+ noCache: false,
38
+ timeout: 10000,
39
+ version: false,
40
+ help: false,
41
+ server: null,
42
+ };
43
+ let i = 0;
44
+ while (i < argv.length) {
45
+ const arg = argv[i];
46
+ if (arg === undefined) {
47
+ i++;
48
+ continue;
49
+ }
50
+ switch (arg) {
51
+ case '--json':
52
+ result.json = true;
53
+ break;
54
+ case '--no-cache':
55
+ result.noCache = true;
56
+ break;
57
+ case '--timeout': {
58
+ const next = argv[i + 1];
59
+ if (next === undefined || next.startsWith('-')) {
60
+ fatal('--timeout requires a numeric value in milliseconds');
61
+ }
62
+ const ms = parseInt(next, 10);
63
+ if (isNaN(ms) || ms <= 0) {
64
+ fatal(`--timeout value must be a positive integer, got: ${next}`);
65
+ }
66
+ result.timeout = ms;
67
+ i++;
68
+ break;
69
+ }
70
+ case '--server': {
71
+ const next = argv[i + 1];
72
+ if (next === undefined || next.startsWith('-')) {
73
+ fatal('--server requires a URL value');
74
+ }
75
+ result.server = next;
76
+ i++;
77
+ break;
78
+ }
79
+ case '--version':
80
+ case '-v':
81
+ result.version = true;
82
+ break;
83
+ case '--help':
84
+ case '-h':
85
+ result.help = true;
86
+ break;
87
+ default:
88
+ if (!arg.startsWith('-')) {
89
+ if (result.command === null) {
90
+ if (arg !== 'domain' && arg !== 'ip' && arg !== 'asn' && arg !== 'nameserver' && arg !== 'entity') {
91
+ fatal(`Unknown command: "${arg}". Valid commands are: domain, ip, asn, nameserver, entity`);
92
+ }
93
+ result.command = arg;
94
+ }
95
+ else if (result.query === null) {
96
+ result.query = arg;
97
+ }
98
+ }
99
+ else {
100
+ fatal(`Unknown option: "${arg}". Run rdapify --help for usage.`);
101
+ }
102
+ break;
103
+ }
104
+ i++;
105
+ }
106
+ return result;
107
+ }
108
+ function label(text, width = 13) {
109
+ return `${text}:`.padEnd(width);
110
+ }
111
+ function formatDate(iso) {
112
+ const d = new Date(iso);
113
+ if (isNaN(d.getTime()))
114
+ return iso;
115
+ return d.toISOString().slice(0, 10);
116
+ }
117
+ function getEventDate(events, eventType) {
118
+ if (!events)
119
+ return undefined;
120
+ const ev = events.find((e) => e.type === eventType);
121
+ return ev ? formatDate(ev.date) : undefined;
122
+ }
123
+ function printDomain(res) {
124
+ const name = res.ldhName ?? res.unicodeName ?? res.query;
125
+ const registrar = res.registrar?.name ?? '—';
126
+ const status = res.status?.join(', ') ?? '—';
127
+ const created = getEventDate(res.events, 'registration') ?? '—';
128
+ const expires = getEventDate(res.events, 'expiration') ?? '—';
129
+ const updated = getEventDate(res.events, 'last changed') ?? '—';
130
+ const nameservers = res.nameservers?.join(', ') ?? '—';
131
+ process.stdout.write([
132
+ `${label('Domain')}${name}`,
133
+ `${label('Registrar')}${registrar}`,
134
+ `${label('Status')}${status}`,
135
+ `${label('Created')}${created}`,
136
+ `${label('Expires')}${expires}`,
137
+ `${label('Updated')}${updated}`,
138
+ `${label('Nameservers')}${nameservers}`,
139
+ ].join('\n') + '\n');
140
+ }
141
+ function printIP(res) {
142
+ const ip = res.query;
143
+ const type = res.ipVersion ? `IPv${res.ipVersion.slice(1)}` : '—';
144
+ const handle = res.handle ?? '—';
145
+ const name = res.name ?? '—';
146
+ const country = res.country ?? '—';
147
+ const status = res.status?.join(', ') ?? '—';
148
+ process.stdout.write([
149
+ `${label('IP Address')}${ip}`,
150
+ `${label('Type')}${type}`,
151
+ `${label('Handle')}${handle}`,
152
+ `${label('Name')}${name}`,
153
+ `${label('Country')}${country}`,
154
+ `${label('Status')}${status}`,
155
+ ].join('\n') + '\n');
156
+ }
157
+ function printASN(res) {
158
+ const asn = res.startAutnum ?? res.query;
159
+ const handle = res.handle ?? '—';
160
+ const name = res.name ?? '—';
161
+ const country = res.country ?? '—';
162
+ const status = res.status?.join(', ') ?? '—';
163
+ process.stdout.write([
164
+ `${label('ASN')}${asn}`,
165
+ `${label('Handle')}${handle}`,
166
+ `${label('Name')}${name}`,
167
+ `${label('Country')}${country}`,
168
+ `${label('Status')}${status}`,
169
+ ].join('\n') + '\n');
170
+ }
171
+ function printNameserver(res) {
172
+ const name = res.ldhName ?? res.unicodeName ?? res.query;
173
+ const handle = res.handle ?? '—';
174
+ const status = res.status?.join(', ') ?? '—';
175
+ const v4 = res.ipAddresses?.v4?.join(', ') || '—';
176
+ const v6 = res.ipAddresses?.v6?.join(', ') || '—';
177
+ process.stdout.write([
178
+ `${label('Nameserver')}${name}`,
179
+ `${label('Handle')}${handle}`,
180
+ `${label('Status')}${status}`,
181
+ `${label('IPv4')}${v4}`,
182
+ `${label('IPv6')}${v6}`,
183
+ ].join('\n') + '\n');
184
+ }
185
+ function printEntity(res) {
186
+ const handle = res.handle ?? res.query;
187
+ const roles = res.roles?.join(', ') ?? '—';
188
+ const status = res.status?.join(', ') ?? '—';
189
+ let name = '—';
190
+ if (res.vcardArray && Array.isArray(res.vcardArray) && res.vcardArray.length >= 2) {
191
+ const vcard = res.vcardArray[1];
192
+ if (Array.isArray(vcard)) {
193
+ const fnField = vcard.find((field) => Array.isArray(field) && field[0] === 'fn');
194
+ if (fnField && Array.isArray(fnField) && fnField.length >= 4) {
195
+ name = fnField[3] ?? '—';
196
+ }
197
+ }
198
+ }
199
+ process.stdout.write([
200
+ `${label('Handle')}${handle}`,
201
+ `${label('Name')}${name}`,
202
+ `${label('Roles')}${roles}`,
203
+ `${label('Status')}${status}`,
204
+ ].join('\n') + '\n');
205
+ }
206
+ function fatal(message, code = 1) {
207
+ process.stderr.write(`Error: ${message}\n`);
208
+ process.exit(code);
209
+ }
210
+ async function main() {
211
+ const argv = process.argv.slice(2);
212
+ const args = parseArgs(argv);
213
+ if (args.version) {
214
+ process.stdout.write(`rdapify v${index_1.VERSION}\n`);
215
+ return;
216
+ }
217
+ if (args.help) {
218
+ process.stdout.write(HELP_TEXT);
219
+ return;
220
+ }
221
+ if (args.command === null) {
222
+ process.stdout.write(HELP_TEXT);
223
+ process.exit(0);
224
+ }
225
+ if (args.query === null || args.query.trim() === '') {
226
+ fatal(`Missing argument for command "${args.command}". Example: rdapify ${args.command} <value>`);
227
+ }
228
+ const client = new index_1.RDAPClient({
229
+ cache: args.noCache ? false : true,
230
+ timeout: args.timeout,
231
+ });
232
+ const query = args.query.trim();
233
+ try {
234
+ switch (args.command) {
235
+ case 'domain': {
236
+ const result = await client.domain(query);
237
+ if (args.json) {
238
+ process.stdout.write(JSON.stringify(result, null, 2) + '\n');
239
+ }
240
+ else {
241
+ printDomain(result);
242
+ }
243
+ break;
244
+ }
245
+ case 'ip': {
246
+ const result = await client.ip(query);
247
+ if (args.json) {
248
+ process.stdout.write(JSON.stringify(result, null, 2) + '\n');
249
+ }
250
+ else {
251
+ printIP(result);
252
+ }
253
+ break;
254
+ }
255
+ case 'asn': {
256
+ const result = await client.asn(query);
257
+ if (args.json) {
258
+ process.stdout.write(JSON.stringify(result, null, 2) + '\n');
259
+ }
260
+ else {
261
+ printASN(result);
262
+ }
263
+ break;
264
+ }
265
+ case 'nameserver': {
266
+ const result = await client.nameserver(query);
267
+ if (args.json) {
268
+ process.stdout.write(JSON.stringify(result, null, 2) + '\n');
269
+ }
270
+ else {
271
+ printNameserver(result);
272
+ }
273
+ break;
274
+ }
275
+ case 'entity': {
276
+ if (!args.server) {
277
+ fatal('Entity queries require --server <url>. Example: rdapify entity ARIN-HN-1 --server https://rdap.arin.net/registry');
278
+ }
279
+ const result = await client.entity(query, args.server);
280
+ if (args.json) {
281
+ process.stdout.write(JSON.stringify(result, null, 2) + '\n');
282
+ }
283
+ else {
284
+ printEntity(result);
285
+ }
286
+ break;
287
+ }
288
+ }
289
+ }
290
+ catch (err) {
291
+ const message = err instanceof Error ? err.message : String(err);
292
+ fatal(message);
293
+ }
294
+ }
295
+ main().catch((err) => {
296
+ const message = err instanceof Error ? err.message : String(err);
297
+ process.stderr.write(`Fatal: ${message}\n`);
298
+ process.exit(1);
299
+ });
300
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/cli/index.ts"],"names":[],"mappings":"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"}
package/dist/index.d.ts CHANGED
@@ -1,11 +1,11 @@
1
1
  export { RDAPClient } from './application/client';
2
- export type { DomainResponse, IPResponse, ASNResponse, RDAPResponse, RDAPEvent, RDAPEntity, RDAPLink, RDAPRemark, RDAPNameserver, RawRDAPResponse, QueryType, ObjectClass, RDAPStatus, EventType, RoleType, CacheStrategy, BackoffStrategy, LogLevel, } from './shared/types';
2
+ export type { DomainResponse, IPResponse, ASNResponse, NameserverResponse, EntityResponse, RDAPResponse, RDAPEvent, RDAPEntity, RDAPLink, RDAPRemark, RDAPNameserver, RawRDAPResponse, QueryType, ObjectClass, RDAPStatus, EventType, RoleType, CacheStrategy, BackoffStrategy, LogLevel, } from './shared/types';
3
3
  export type { QueryTypeLiteral, QueryResult, QueryResultMap, BatchQueryResult, TypedQueryOptions, } from './shared/types/generics';
4
4
  export type { RDAPClientOptions, RetryOptions, CacheOptions, SSRFProtectionOptions, PrivacyOptions, TimeoutOptions, LoggingOptions, RateLimitOptions, } from './shared/types/options';
5
5
  export { RDAPifyError, SSRFProtectionError, NetworkError, TimeoutError, RDAPServerError, NoServerFoundError, ValidationError, ParseError, CacheError, RateLimitError, isRDAPifyError, isSSRFProtectionError, isNetworkError, isTimeoutError, isRateLimitError, } from './shared/errors';
6
- export { validateDomain, validateIP, validateIPv4, validateIPv6, validateASN, isPrivateIP, isLocalhost, isLinkLocal, normalizeDomain, normalizeIP, normalizeASN, } from './shared/utils/validators';
6
+ export { validateDomain, validateIP, validateIPv4, validateIPv6, validateASN, validateNameserver, validateEntityHandle, isPrivateIP, isLocalhost, isLinkLocal, normalizeDomain, normalizeIP, normalizeASN, normalizeNameserver, normalizeEntityHandle, } from './shared/utils/validators';
7
7
  export type { ICachePort } from './core/ports';
8
- export declare const VERSION = "0.1.3";
8
+ export declare const VERSION = "0.1.7";
9
9
  export { BatchProcessor } from './application/services/BatchProcessor';
10
10
  export { RateLimiter } from './infrastructure/http/RateLimiter';
11
11
  export { ConnectionPool } from './infrastructure/http/ConnectionPool';
@@ -21,6 +21,16 @@ export { ProxyManager } from './infrastructure/http/ProxyManager';
21
21
  export type { ProxyOptions, ProxyProtocol } from './infrastructure/http/ProxyManager';
22
22
  export { CompressionManager } from './infrastructure/http/CompressionManager';
23
23
  export type { CompressionOptions, CompressionType } from './infrastructure/http/CompressionManager';
24
+ export { RedisCache } from './infrastructure/cache/RedisCache';
25
+ export type { RedisClientLike, RedisCacheOptions } from './infrastructure/cache/RedisCache';
26
+ export { MiddlewareManager } from './application/hooks/MiddlewareHooks';
27
+ export type { MiddlewareOptions, QueryContext, QueryResultContext, HookFn, } from './application/hooks/MiddlewareHooks';
28
+ export { QueryDeduplicator } from './application/deduplication/QueryDeduplicator';
29
+ export { AuditLogger, InMemoryAuditAdapter, FileAuditAdapter, } from './infrastructure/logging/AuditLogger';
30
+ export type { AuditEvent, AuditEventType, AuditLogAdapter, AuditLoggerOptions, } from './infrastructure/logging/AuditLogger';
31
+ export { ResponseValidator } from './infrastructure/validation/ResponseValidator';
32
+ export type { ValidationResult, ValidationMode, ResponseValidatorOptions, } from './infrastructure/validation/ResponseValidator';
33
+ export { isNode, isBrowser, isDeno, isBun, isCloudflareWorkers, getRuntimeName, } from './shared/utils/helpers/runtime';
24
34
  import { RDAPClient as RDAPClientClass } from './application/client';
25
35
  export default RDAPClientClass;
26
36
  //# sourceMappingURL=index.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AA4CA,OAAO,EAAE,UAAU,EAAE,MAAM,sBAAsB,CAAC;AAMlD,YAAY,EAEV,cAAc,EACd,UAAU,EACV,WAAW,EACX,YAAY,EACZ,SAAS,EACT,UAAU,EACV,QAAQ,EACR,UAAU,EACV,cAAc,EACd,eAAe,EAGf,SAAS,EACT,WAAW,EACX,UAAU,EACV,SAAS,EACT,QAAQ,EACR,aAAa,EACb,eAAe,EACf,QAAQ,GACT,MAAM,gBAAgB,CAAC;AAExB,YAAY,EAEV,gBAAgB,EAChB,WAAW,EACX,cAAc,EACd,gBAAgB,EAChB,iBAAiB,GAClB,MAAM,yBAAyB,CAAC;AAEjC,YAAY,EAEV,iBAAiB,EACjB,YAAY,EACZ,YAAY,EACZ,qBAAqB,EACrB,cAAc,EACd,cAAc,EACd,cAAc,EACd,gBAAgB,GACjB,MAAM,wBAAwB,CAAC;AAoBhC,OAAO,EACL,YAAY,EACZ,mBAAmB,EACnB,YAAY,EACZ,YAAY,EACZ,eAAe,EACf,kBAAkB,EAClB,eAAe,EACf,UAAU,EACV,UAAU,EACV,cAAc,EAGd,cAAc,EACd,qBAAqB,EACrB,cAAc,EACd,cAAc,EACd,gBAAgB,GACjB,MAAM,iBAAiB,CAAC;AAiBzB,OAAO,EACL,cAAc,EACd,UAAU,EACV,YAAY,EACZ,YAAY,EACZ,WAAW,EACX,WAAW,EACX,WAAW,EACX,WAAW,EACX,eAAe,EACf,WAAW,EACX,YAAY,GACb,MAAM,2BAA2B,CAAC;AAoBnC,YAAY,EAAE,UAAU,EAAE,MAAM,cAAc,CAAC;AAS/C,eAAO,MAAM,OAAO,UAAU,CAAC;AAsB/B,OAAO,EAAE,cAAc,EAAE,MAAM,uCAAuC,CAAC;AAkBvE,OAAO,EAAE,WAAW,EAAE,MAAM,mCAAmC,CAAC;AAKhE,OAAO,EAAE,cAAc,EAAE,MAAM,sCAAsC,CAAC;AAKtE,OAAO,EAAE,gBAAgB,EAAE,MAAM,8CAA8C,CAAC;AAKhF,OAAO,EAAE,MAAM,EAAE,MAAM,iCAAiC,CAAC;AAKzD,OAAO,EAAE,aAAa,EAAE,MAAM,qCAAqC,CAAC;AAKpE,OAAO,EAAE,kBAAkB,EAAE,MAAM,sCAAsC,CAAC;AAK1E,OAAO,EAAE,eAAe,EAAE,MAAM,wCAAwC,CAAC;AAKzE,OAAO,EACL,iBAAiB,EACjB,oBAAoB,EACpB,gBAAgB,EAChB,WAAW,EACX,gBAAgB,EAChB,UAAU,EACV,UAAU,GACX,MAAM,oCAAoC,CAAC;AAK5C,OAAO,EAAE,qBAAqB,EAAE,MAAM,6CAA6C,CAAC;AACpF,YAAY,EAAE,qBAAqB,EAAE,QAAQ,EAAE,aAAa,EAAE,MAAM,6CAA6C,CAAC;AAKlH,OAAO,EAAE,YAAY,EAAE,MAAM,oCAAoC,CAAC;AAClE,YAAY,EAAE,YAAY,EAAE,aAAa,EAAE,MAAM,oCAAoC,CAAC;AAKtF,OAAO,EAAE,kBAAkB,EAAE,MAAM,0CAA0C,CAAC;AAC9E,YAAY,EAAE,kBAAkB,EAAE,eAAe,EAAE,MAAM,0CAA0C,CAAC;AAgBpG,OAAO,EAAE,UAAU,IAAI,eAAe,EAAE,MAAM,sBAAsB,CAAC;AACrE,eAAe,eAAe,CAAC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
package/dist/index.js CHANGED
@@ -1,6 +1,7 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.CompressionManager = exports.ProxyManager = exports.AuthenticationManager = exports.asciiToIdn = exports.idnToAscii = exports.isPunycodeDomain = exports.isIdnDomain = exports.validateAsnRange = exports.validateIpv6WithZone = exports.validateIdnDomain = exports.PersistentCache = exports.QueryPriorityQueue = exports.RetryStrategy = exports.Logger = exports.MetricsCollector = exports.ConnectionPool = exports.RateLimiter = exports.BatchProcessor = exports.VERSION = exports.normalizeASN = exports.normalizeIP = exports.normalizeDomain = exports.isLinkLocal = exports.isLocalhost = exports.isPrivateIP = exports.validateASN = exports.validateIPv6 = exports.validateIPv4 = exports.validateIP = exports.validateDomain = exports.isRateLimitError = exports.isTimeoutError = exports.isNetworkError = exports.isSSRFProtectionError = exports.isRDAPifyError = exports.RateLimitError = exports.CacheError = exports.ParseError = exports.ValidationError = exports.NoServerFoundError = exports.RDAPServerError = exports.TimeoutError = exports.NetworkError = exports.SSRFProtectionError = exports.RDAPifyError = exports.RDAPClient = void 0;
3
+ exports.CompressionManager = exports.ProxyManager = exports.AuthenticationManager = exports.asciiToIdn = exports.idnToAscii = exports.isPunycodeDomain = exports.isIdnDomain = exports.validateAsnRange = exports.validateIpv6WithZone = exports.validateIdnDomain = exports.PersistentCache = exports.QueryPriorityQueue = exports.RetryStrategy = exports.Logger = exports.MetricsCollector = exports.ConnectionPool = exports.RateLimiter = exports.BatchProcessor = exports.VERSION = exports.normalizeEntityHandle = exports.normalizeNameserver = exports.normalizeASN = exports.normalizeIP = exports.normalizeDomain = exports.isLinkLocal = exports.isLocalhost = exports.isPrivateIP = exports.validateEntityHandle = exports.validateNameserver = exports.validateASN = exports.validateIPv6 = exports.validateIPv4 = exports.validateIP = exports.validateDomain = exports.isRateLimitError = exports.isTimeoutError = exports.isNetworkError = exports.isSSRFProtectionError = exports.isRDAPifyError = exports.RateLimitError = exports.CacheError = exports.ParseError = exports.ValidationError = exports.NoServerFoundError = exports.RDAPServerError = exports.TimeoutError = exports.NetworkError = exports.SSRFProtectionError = exports.RDAPifyError = exports.RDAPClient = void 0;
4
+ exports.getRuntimeName = exports.isCloudflareWorkers = exports.isBun = exports.isDeno = exports.isBrowser = exports.isNode = exports.ResponseValidator = exports.FileAuditAdapter = exports.InMemoryAuditAdapter = exports.AuditLogger = exports.QueryDeduplicator = exports.MiddlewareManager = exports.RedisCache = void 0;
4
5
  var client_1 = require("./application/client");
5
6
  Object.defineProperty(exports, "RDAPClient", { enumerable: true, get: function () { return client_1.RDAPClient; } });
6
7
  var errors_1 = require("./shared/errors");
@@ -25,13 +26,17 @@ Object.defineProperty(exports, "validateIP", { enumerable: true, get: function (
25
26
  Object.defineProperty(exports, "validateIPv4", { enumerable: true, get: function () { return validators_1.validateIPv4; } });
26
27
  Object.defineProperty(exports, "validateIPv6", { enumerable: true, get: function () { return validators_1.validateIPv6; } });
27
28
  Object.defineProperty(exports, "validateASN", { enumerable: true, get: function () { return validators_1.validateASN; } });
29
+ Object.defineProperty(exports, "validateNameserver", { enumerable: true, get: function () { return validators_1.validateNameserver; } });
30
+ Object.defineProperty(exports, "validateEntityHandle", { enumerable: true, get: function () { return validators_1.validateEntityHandle; } });
28
31
  Object.defineProperty(exports, "isPrivateIP", { enumerable: true, get: function () { return validators_1.isPrivateIP; } });
29
32
  Object.defineProperty(exports, "isLocalhost", { enumerable: true, get: function () { return validators_1.isLocalhost; } });
30
33
  Object.defineProperty(exports, "isLinkLocal", { enumerable: true, get: function () { return validators_1.isLinkLocal; } });
31
34
  Object.defineProperty(exports, "normalizeDomain", { enumerable: true, get: function () { return validators_1.normalizeDomain; } });
32
35
  Object.defineProperty(exports, "normalizeIP", { enumerable: true, get: function () { return validators_1.normalizeIP; } });
33
36
  Object.defineProperty(exports, "normalizeASN", { enumerable: true, get: function () { return validators_1.normalizeASN; } });
34
- exports.VERSION = '0.1.3';
37
+ Object.defineProperty(exports, "normalizeNameserver", { enumerable: true, get: function () { return validators_1.normalizeNameserver; } });
38
+ Object.defineProperty(exports, "normalizeEntityHandle", { enumerable: true, get: function () { return validators_1.normalizeEntityHandle; } });
39
+ exports.VERSION = '0.1.7';
35
40
  var BatchProcessor_1 = require("./application/services/BatchProcessor");
36
41
  Object.defineProperty(exports, "BatchProcessor", { enumerable: true, get: function () { return BatchProcessor_1.BatchProcessor; } });
37
42
  var RateLimiter_1 = require("./infrastructure/http/RateLimiter");
@@ -62,6 +67,25 @@ var ProxyManager_1 = require("./infrastructure/http/ProxyManager");
62
67
  Object.defineProperty(exports, "ProxyManager", { enumerable: true, get: function () { return ProxyManager_1.ProxyManager; } });
63
68
  var CompressionManager_1 = require("./infrastructure/http/CompressionManager");
64
69
  Object.defineProperty(exports, "CompressionManager", { enumerable: true, get: function () { return CompressionManager_1.CompressionManager; } });
70
+ var RedisCache_1 = require("./infrastructure/cache/RedisCache");
71
+ Object.defineProperty(exports, "RedisCache", { enumerable: true, get: function () { return RedisCache_1.RedisCache; } });
72
+ var MiddlewareHooks_1 = require("./application/hooks/MiddlewareHooks");
73
+ Object.defineProperty(exports, "MiddlewareManager", { enumerable: true, get: function () { return MiddlewareHooks_1.MiddlewareManager; } });
74
+ var QueryDeduplicator_1 = require("./application/deduplication/QueryDeduplicator");
75
+ Object.defineProperty(exports, "QueryDeduplicator", { enumerable: true, get: function () { return QueryDeduplicator_1.QueryDeduplicator; } });
76
+ var AuditLogger_1 = require("./infrastructure/logging/AuditLogger");
77
+ Object.defineProperty(exports, "AuditLogger", { enumerable: true, get: function () { return AuditLogger_1.AuditLogger; } });
78
+ Object.defineProperty(exports, "InMemoryAuditAdapter", { enumerable: true, get: function () { return AuditLogger_1.InMemoryAuditAdapter; } });
79
+ Object.defineProperty(exports, "FileAuditAdapter", { enumerable: true, get: function () { return AuditLogger_1.FileAuditAdapter; } });
80
+ var ResponseValidator_1 = require("./infrastructure/validation/ResponseValidator");
81
+ Object.defineProperty(exports, "ResponseValidator", { enumerable: true, get: function () { return ResponseValidator_1.ResponseValidator; } });
82
+ var runtime_1 = require("./shared/utils/helpers/runtime");
83
+ Object.defineProperty(exports, "isNode", { enumerable: true, get: function () { return runtime_1.isNode; } });
84
+ Object.defineProperty(exports, "isBrowser", { enumerable: true, get: function () { return runtime_1.isBrowser; } });
85
+ Object.defineProperty(exports, "isDeno", { enumerable: true, get: function () { return runtime_1.isDeno; } });
86
+ Object.defineProperty(exports, "isBun", { enumerable: true, get: function () { return runtime_1.isBun; } });
87
+ Object.defineProperty(exports, "isCloudflareWorkers", { enumerable: true, get: function () { return runtime_1.isCloudflareWorkers; } });
88
+ Object.defineProperty(exports, "getRuntimeName", { enumerable: true, get: function () { return runtime_1.getRuntimeName; } });
65
89
  const client_2 = require("./application/client");
66
90
  exports.default = client_2.RDAPClient;
67
91
  //# sourceMappingURL=index.js.map
package/dist/index.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":";;;AA4CA,+CAAkD;AAAzC,oGAAA,UAAU,OAAA;AAqEnB,0CAkByB;AAjBvB,sGAAA,YAAY,OAAA;AACZ,6GAAA,mBAAmB,OAAA;AACnB,sGAAA,YAAY,OAAA;AACZ,sGAAA,YAAY,OAAA;AACZ,yGAAA,eAAe,OAAA;AACf,4GAAA,kBAAkB,OAAA;AAClB,yGAAA,eAAe,OAAA;AACf,oGAAA,UAAU,OAAA;AACV,oGAAA,UAAU,OAAA;AACV,wGAAA,cAAc,OAAA;AAGd,wGAAA,cAAc,OAAA;AACd,+GAAA,qBAAqB,OAAA;AACrB,wGAAA,cAAc,OAAA;AACd,wGAAA,cAAc,OAAA;AACd,0GAAA,gBAAgB,OAAA;AAkBlB,wDAYmC;AAXjC,4GAAA,cAAc,OAAA;AACd,wGAAA,UAAU,OAAA;AACV,0GAAA,YAAY,OAAA;AACZ,0GAAA,YAAY,OAAA;AACZ,yGAAA,WAAW,OAAA;AACX,yGAAA,WAAW,OAAA;AACX,yGAAA,WAAW,OAAA;AACX,yGAAA,WAAW,OAAA;AACX,6GAAA,eAAe,OAAA;AACf,yGAAA,WAAW,OAAA;AACX,0GAAA,YAAY,OAAA;AA8BD,QAAA,OAAO,GAAG,OAAO,CAAC;AAsB/B,wEAAuE;AAA9D,gHAAA,cAAc,OAAA;AAkBvB,iEAAgE;AAAvD,0GAAA,WAAW,OAAA;AAKpB,uEAAsE;AAA7D,gHAAA,cAAc,OAAA;AAKvB,iFAAgF;AAAvE,oHAAA,gBAAgB,OAAA;AAKzB,0DAAyD;AAAhD,gGAAA,MAAM,OAAA;AAKf,qEAAoE;AAA3D,8GAAA,aAAa,OAAA;AAKtB,sEAA0E;AAAjE,mHAAA,kBAAkB,OAAA;AAK3B,0EAAyE;AAAhE,kHAAA,eAAe,OAAA;AAKxB,0EAQ4C;AAP1C,wHAAA,iBAAiB,OAAA;AACjB,2HAAA,oBAAoB,OAAA;AACpB,uHAAA,gBAAgB,OAAA;AAChB,kHAAA,WAAW,OAAA;AACX,uHAAA,gBAAgB,OAAA;AAChB,iHAAA,UAAU,OAAA;AACV,iHAAA,UAAU,OAAA;AAMZ,qFAAoF;AAA3E,8HAAA,qBAAqB,OAAA;AAM9B,mEAAkE;AAAzD,4GAAA,YAAY,OAAA;AAMrB,+EAA8E;AAArE,wHAAA,kBAAkB,OAAA;AAiB3B,iDAAqE;AACrE,kBAAe,mBAAe,CAAC"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":";;;;AA4CA,+CAAkD;AAAzC,oGAAA,UAAU,OAAA;AAuEnB,0CAkByB;AAjBvB,sGAAA,YAAY,OAAA;AACZ,6GAAA,mBAAmB,OAAA;AACnB,sGAAA,YAAY,OAAA;AACZ,sGAAA,YAAY,OAAA;AACZ,yGAAA,eAAe,OAAA;AACf,4GAAA,kBAAkB,OAAA;AAClB,yGAAA,eAAe,OAAA;AACf,oGAAA,UAAU,OAAA;AACV,oGAAA,UAAU,OAAA;AACV,wGAAA,cAAc,OAAA;AAGd,wGAAA,cAAc,OAAA;AACd,+GAAA,qBAAqB,OAAA;AACrB,wGAAA,cAAc,OAAA;AACd,wGAAA,cAAc,OAAA;AACd,0GAAA,gBAAgB,OAAA;AAkBlB,wDAgBmC;AAfjC,4GAAA,cAAc,OAAA;AACd,wGAAA,UAAU,OAAA;AACV,0GAAA,YAAY,OAAA;AACZ,0GAAA,YAAY,OAAA;AACZ,yGAAA,WAAW,OAAA;AACX,gHAAA,kBAAkB,OAAA;AAClB,kHAAA,oBAAoB,OAAA;AACpB,yGAAA,WAAW,OAAA;AACX,yGAAA,WAAW,OAAA;AACX,yGAAA,WAAW,OAAA;AACX,6GAAA,eAAe,OAAA;AACf,yGAAA,WAAW,OAAA;AACX,0GAAA,YAAY,OAAA;AACZ,iHAAA,mBAAmB,OAAA;AACnB,mHAAA,qBAAqB,OAAA;AA8BV,QAAA,OAAO,GAAG,OAAO,CAAC;AAsB/B,wEAAuE;AAA9D,gHAAA,cAAc,OAAA;AAkBvB,iEAAgE;AAAvD,0GAAA,WAAW,OAAA;AAKpB,uEAAsE;AAA7D,gHAAA,cAAc,OAAA;AAKvB,iFAAgF;AAAvE,oHAAA,gBAAgB,OAAA;AAKzB,0DAAyD;AAAhD,gGAAA,MAAM,OAAA;AAKf,qEAAoE;AAA3D,8GAAA,aAAa,OAAA;AAKtB,sEAA0E;AAAjE,mHAAA,kBAAkB,OAAA;AAK3B,0EAAyE;AAAhE,kHAAA,eAAe,OAAA;AAKxB,0EAQ4C;AAP1C,wHAAA,iBAAiB,OAAA;AACjB,2HAAA,oBAAoB,OAAA;AACpB,uHAAA,gBAAgB,OAAA;AAChB,kHAAA,WAAW,OAAA;AACX,uHAAA,gBAAgB,OAAA;AAChB,iHAAA,UAAU,OAAA;AACV,iHAAA,UAAU,OAAA;AAMZ,qFAAoF;AAA3E,8HAAA,qBAAqB,OAAA;AAM9B,mEAAkE;AAAzD,4GAAA,YAAY,OAAA;AAMrB,+EAA8E;AAArE,wHAAA,kBAAkB,OAAA;AAU3B,gEAA+D;AAAtD,wGAAA,UAAU,OAAA;AAMnB,uEAAwE;AAA/D,oHAAA,iBAAiB,OAAA;AAW1B,mFAAkF;AAAzE,sHAAA,iBAAiB,OAAA;AAK1B,oEAI8C;AAH5C,0GAAA,WAAW,OAAA;AACX,mHAAA,oBAAoB,OAAA;AACpB,+GAAA,gBAAgB,OAAA;AAYlB,mFAAkF;AAAzE,sHAAA,iBAAiB,OAAA;AAwB1B,0DAOwC;AANtC,iGAAA,MAAM,OAAA;AACN,oGAAA,SAAS,OAAA;AACT,iGAAA,MAAM,OAAA;AACN,gGAAA,KAAK,OAAA;AACL,8GAAA,mBAAmB,OAAA;AACnB,yGAAA,cAAc,OAAA;AAiBhB,iDAAqE;AACrE,kBAAe,mBAAe,CAAC"}
@@ -1 +1 @@
1
- {"version":3,"file":"CacheManager.d.ts","sourceRoot":"","sources":["../../../src/infrastructure/cache/CacheManager.ts"],"names":[],"mappings":"AAKA,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,oBAAoB,CAAC;AAEvD,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,4BAA4B,CAAC;AAO/D,MAAM,WAAW,MAAM;IACrB,GAAG,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAAC,YAAY,GAAG,IAAI,CAAC,CAAC;IAC/C,GAAG,CAAC,GAAG,EAAE,MAAM,EAAE,KAAK,EAAE,YAAY,EAAE,GAAG,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;IACnE,MAAM,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;IACnC,KAAK,IAAI,OAAO,CAAC,IAAI,CAAC,CAAC;IACvB,GAAG,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAAC,OAAO,CAAC,CAAC;IACnC,IAAI,IAAI,OAAO,CAAC,MAAM,CAAC,CAAC;CACzB;AAKD,qBAAa,YAAa,YAAW,MAAM;IACzC,OAAO,CAAC,KAAK,CAAS;IACtB,OAAO,CAAC,QAAQ,CAAC,GAAG,CAAS;IAC7B,OAAO,CAAC,QAAQ,CAAC,OAAO,CAAU;gBAEtB,OAAO,GAAE,YAAiB;IAiChC,GAAG,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAAC,YAAY,GAAG,IAAI,CAAC;IAe9C,GAAG,CAAC,GAAG,EAAE,MAAM,EAAE,KAAK,EAAE,YAAY,EAAE,GAAG,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IAclE,MAAM,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IAalC,KAAK,IAAI,OAAO,CAAC,IAAI,CAAC;IAatB,GAAG,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAAC,OAAO,CAAC;IAclC,IAAI,IAAI,OAAO,CAAC,MAAM,CAAC;IAcvB,QAAQ,IAAI,OAAO,CAAC;QACxB,IAAI,EAAE,MAAM,CAAC;QACb,OAAO,EAAE,OAAO,CAAC;QACjB,GAAG,EAAE,MAAM,CAAC;KACb,CAAC;CAOH"}
1
+ {"version":3,"file":"CacheManager.d.ts","sourceRoot":"","sources":["../../../src/infrastructure/cache/CacheManager.ts"],"names":[],"mappings":"AAKA,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,oBAAoB,CAAC;AAEvD,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,4BAA4B,CAAC;AAQ/D,MAAM,WAAW,MAAM;IACrB,GAAG,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAAC,YAAY,GAAG,IAAI,CAAC,CAAC;IAC/C,GAAG,CAAC,GAAG,EAAE,MAAM,EAAE,KAAK,EAAE,YAAY,EAAE,GAAG,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;IACnE,MAAM,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;IACnC,KAAK,IAAI,OAAO,CAAC,IAAI,CAAC,CAAC;IACvB,GAAG,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAAC,OAAO,CAAC,CAAC;IACnC,IAAI,IAAI,OAAO,CAAC,MAAM,CAAC,CAAC;CACzB;AAKD,qBAAa,YAAa,YAAW,MAAM;IACzC,OAAO,CAAC,KAAK,CAAS;IACtB,OAAO,CAAC,QAAQ,CAAC,GAAG,CAAS;IAC7B,OAAO,CAAC,QAAQ,CAAC,OAAO,CAAU;gBAEtB,OAAO,GAAE,YAAiB;IAuChC,GAAG,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAAC,YAAY,GAAG,IAAI,CAAC;IAe9C,GAAG,CAAC,GAAG,EAAE,MAAM,EAAE,KAAK,EAAE,YAAY,EAAE,GAAG,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IAclE,MAAM,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IAalC,KAAK,IAAI,OAAO,CAAC,IAAI,CAAC;IAatB,GAAG,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAAC,OAAO,CAAC;IAclC,IAAI,IAAI,OAAO,CAAC,MAAM,CAAC;IAcvB,QAAQ,IAAI,OAAO,CAAC;QACxB,IAAI,EAAE,MAAM,CAAC;QACb,OAAO,EAAE,OAAO,CAAC;QACjB,GAAG,EAAE,MAAM,CAAC;KACb,CAAC;CAOH"}
@@ -3,6 +3,7 @@ Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.CacheManager = void 0;
4
4
  const errors_1 = require("../../shared/errors");
5
5
  const InMemoryCache_1 = require("./InMemoryCache");
6
+ const RedisCache_1 = require("./RedisCache");
6
7
  class CacheManager {
7
8
  constructor(options = {}) {
8
9
  this.ttl = options.ttl || 3600;
@@ -13,7 +14,13 @@ class CacheManager {
13
14
  this.cache = new InMemoryCache_1.InMemoryCache(options.maxSize || 1000);
14
15
  break;
15
16
  case 'redis':
16
- throw new errors_1.CacheError('Redis cache not yet implemented in v0.1.2. Use "memory" cache type or provide a custom cache implementation. Redis support is planned for v0.2.0.');
17
+ if (!options.redisClient) {
18
+ throw new errors_1.CacheError('Redis strategy requires a "redisClient" option. Pass your Redis client instance (ioredis, redis, etc.).');
19
+ }
20
+ this.cache = new RedisCache_1.RedisCache(options.redisClient, {
21
+ keyPrefix: options.keyPrefix,
22
+ });
23
+ break;
17
24
  case 'custom':
18
25
  if (!options.customCache) {
19
26
  throw new errors_1.CacheError('Custom cache implementation required');
@@ -1 +1 @@
1
- {"version":3,"file":"CacheManager.js","sourceRoot":"","sources":["../../../src/infrastructure/cache/CacheManager.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"CacheManager.js","sourceRoot":"","sources":["../../../src/infrastructure/cache/CacheManager.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,35 @@
1
+ import type { RDAPResponse } from '../../shared/types';
2
+ import type { ICache } from './CacheManager';
3
+ export interface RedisClientLike {
4
+ get(key: string): Promise<string | null>;
5
+ set(key: string, value: string, options?: {
6
+ EX?: number;
7
+ PX?: number;
8
+ }): Promise<unknown>;
9
+ del(...keys: string[]): Promise<number>;
10
+ exists(...keys: string[]): Promise<number>;
11
+ keys(pattern: string): Promise<string[]>;
12
+ scan?(cursor: string, matchOption: 'MATCH', pattern: string, countOption: 'COUNT', count: number): Promise<[string, string[]]>;
13
+ }
14
+ export interface RedisCacheOptions {
15
+ keyPrefix?: string;
16
+ }
17
+ export declare class RedisCache implements ICache {
18
+ private readonly client;
19
+ private readonly keyPrefix;
20
+ constructor(client: RedisClientLike, options?: RedisCacheOptions);
21
+ private prefixed;
22
+ private patternAll;
23
+ private scanAll;
24
+ get(key: string): Promise<RDAPResponse | null>;
25
+ set(key: string, value: RDAPResponse, ttl?: number): Promise<void>;
26
+ delete(key: string): Promise<void>;
27
+ clear(): Promise<void>;
28
+ has(key: string): Promise<boolean>;
29
+ size(): Promise<number>;
30
+ getStats(): Promise<{
31
+ keyPrefix: string;
32
+ size: number;
33
+ }>;
34
+ }
35
+ //# sourceMappingURL=RedisCache.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"RedisCache.d.ts","sourceRoot":"","sources":["../../../src/infrastructure/cache/RedisCache.ts"],"names":[],"mappings":"AAKA,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,oBAAoB,CAAC;AAEvD,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,gBAAgB,CAAC;AAmB7C,MAAM,WAAW,eAAe;IAE9B,GAAG,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,GAAG,IAAI,CAAC,CAAC;IAEzC,GAAG,CAAC,GAAG,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,EAAE,OAAO,CAAC,EAAE;QAAE,EAAE,CAAC,EAAE,MAAM,CAAC;QAAC,EAAE,CAAC,EAAE,MAAM,CAAA;KAAE,GAAG,OAAO,CAAC,OAAO,CAAC,CAAC;IAE1F,GAAG,CAAC,GAAG,IAAI,EAAE,MAAM,EAAE,GAAG,OAAO,CAAC,MAAM,CAAC,CAAC;IAExC,MAAM,CAAC,GAAG,IAAI,EAAE,MAAM,EAAE,GAAG,OAAO,CAAC,MAAM,CAAC,CAAC;IAE3C,IAAI,CAAC,OAAO,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,EAAE,CAAC,CAAC;IAKzC,IAAI,CAAC,CAAC,MAAM,EAAE,MAAM,EAAE,WAAW,EAAE,OAAO,EAAE,OAAO,EAAE,MAAM,EAAE,WAAW,EAAE,OAAO,EAAE,KAAK,EAAE,MAAM,GAAG,OAAO,CAAC,CAAC,MAAM,EAAE,MAAM,EAAE,CAAC,CAAC,CAAC;CAChI;AAKD,MAAM,WAAW,iBAAiB;IAMhC,SAAS,CAAC,EAAE,MAAM,CAAC;CACpB;AAgBD,qBAAa,UAAW,YAAW,MAAM;IACvC,OAAO,CAAC,QAAQ,CAAC,MAAM,CAAkB;IACzC,OAAO,CAAC,QAAQ,CAAC,SAAS,CAAS;gBAEvB,MAAM,EAAE,eAAe,EAAE,OAAO,GAAE,iBAAsB;IAYpE,OAAO,CAAC,QAAQ;IAOhB,OAAO,CAAC,UAAU;YAYJ,OAAO;IAyBf,GAAG,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAAC,YAAY,GAAG,IAAI,CAAC;IAsB9C,GAAG,CAAC,GAAG,EAAE,MAAM,EAAE,KAAK,EAAE,YAAY,EAAE,GAAG,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IAclE,MAAM,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IAYlC,KAAK,IAAI,OAAO,CAAC,IAAI,CAAC;IAWtB,GAAG,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAAC,OAAO,CAAC;IAalC,IAAI,IAAI,OAAO,CAAC,MAAM,CAAC;IAYvB,QAAQ,IAAI,OAAO,CAAC;QACxB,SAAS,EAAE,MAAM,CAAC;QAClB,IAAI,EAAE,MAAM,CAAC;KACd,CAAC;CAMH"}
@@ -0,0 +1,75 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.RedisCache = void 0;
4
+ class RedisCache {
5
+ constructor(client, options = {}) {
6
+ this.client = client;
7
+ this.keyPrefix = options.keyPrefix ?? 'rdapify:';
8
+ }
9
+ prefixed(key) {
10
+ return `${this.keyPrefix}${key}`;
11
+ }
12
+ patternAll() {
13
+ return `${this.keyPrefix}*`;
14
+ }
15
+ async scanAll(pattern) {
16
+ if (typeof this.client.scan === 'function') {
17
+ const collected = [];
18
+ let cursor = '0';
19
+ do {
20
+ const [nextCursor, keys] = await this.client.scan(cursor, 'MATCH', pattern, 'COUNT', 100);
21
+ cursor = nextCursor;
22
+ collected.push(...keys);
23
+ } while (cursor !== '0');
24
+ return collected;
25
+ }
26
+ return this.client.keys(pattern);
27
+ }
28
+ async get(key) {
29
+ const raw = await this.client.get(this.prefixed(key));
30
+ if (raw === null) {
31
+ return null;
32
+ }
33
+ try {
34
+ return JSON.parse(raw);
35
+ }
36
+ catch {
37
+ return null;
38
+ }
39
+ }
40
+ async set(key, value, ttl) {
41
+ const serialised = JSON.stringify(value);
42
+ const prefixedKey = this.prefixed(key);
43
+ if (ttl !== undefined && ttl > 0) {
44
+ await this.client.set(prefixedKey, serialised, { EX: ttl });
45
+ }
46
+ else {
47
+ await this.client.set(prefixedKey, serialised);
48
+ }
49
+ }
50
+ async delete(key) {
51
+ await this.client.del(this.prefixed(key));
52
+ }
53
+ async clear() {
54
+ const matchingKeys = await this.scanAll(this.patternAll());
55
+ if (matchingKeys.length > 0) {
56
+ await this.client.del(...matchingKeys);
57
+ }
58
+ }
59
+ async has(key) {
60
+ const count = await this.client.exists(this.prefixed(key));
61
+ return count > 0;
62
+ }
63
+ async size() {
64
+ const matchingKeys = await this.scanAll(this.patternAll());
65
+ return matchingKeys.length;
66
+ }
67
+ async getStats() {
68
+ return {
69
+ keyPrefix: this.keyPrefix,
70
+ size: await this.size(),
71
+ };
72
+ }
73
+ }
74
+ exports.RedisCache = RedisCache;
75
+ //# sourceMappingURL=RedisCache.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"RedisCache.js","sourceRoot":"","sources":["../../../src/infrastructure/cache/RedisCache.ts"],"names":[],"mappings":"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"}
@@ -1,3 +1,4 @@
1
1
  export { InMemoryCache } from './InMemoryCache';
2
2
  export { CacheManager, type ICache } from './CacheManager';
3
+ export { RedisCache, type RedisClientLike, type RedisCacheOptions } from './RedisCache';
3
4
  //# sourceMappingURL=index.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/infrastructure/cache/index.ts"],"names":[],"mappings":"AAKA,OAAO,EAAE,aAAa,EAAE,MAAM,iBAAiB,CAAC;AAChD,OAAO,EAAE,YAAY,EAAE,KAAK,MAAM,EAAE,MAAM,gBAAgB,CAAC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/infrastructure/cache/index.ts"],"names":[],"mappings":"AAKA,OAAO,EAAE,aAAa,EAAE,MAAM,iBAAiB,CAAC;AAChD,OAAO,EAAE,YAAY,EAAE,KAAK,MAAM,EAAE,MAAM,gBAAgB,CAAC;AAC3D,OAAO,EAAE,UAAU,EAAE,KAAK,eAAe,EAAE,KAAK,iBAAiB,EAAE,MAAM,cAAc,CAAC"}
@@ -1,8 +1,10 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.CacheManager = exports.InMemoryCache = void 0;
3
+ exports.RedisCache = exports.CacheManager = exports.InMemoryCache = void 0;
4
4
  var InMemoryCache_1 = require("./InMemoryCache");
5
5
  Object.defineProperty(exports, "InMemoryCache", { enumerable: true, get: function () { return InMemoryCache_1.InMemoryCache; } });
6
6
  var CacheManager_1 = require("./CacheManager");
7
7
  Object.defineProperty(exports, "CacheManager", { enumerable: true, get: function () { return CacheManager_1.CacheManager; } });
8
+ var RedisCache_1 = require("./RedisCache");
9
+ Object.defineProperty(exports, "RedisCache", { enumerable: true, get: function () { return RedisCache_1.RedisCache; } });
8
10
  //# sourceMappingURL=index.js.map