rdapify 0.1.6 → 0.1.8

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 (66) hide show
  1. package/CHANGELOG.md +151 -93
  2. package/README.md +168 -146
  3. package/dist/application/client/RDAPClient.d.ts +4 -1
  4. package/dist/application/client/RDAPClient.d.ts.map +1 -1
  5. package/dist/application/client/RDAPClient.js +22 -0
  6. package/dist/application/client/RDAPClient.js.map +1 -1
  7. package/dist/application/hooks/MiddlewareHooks.d.ts +1 -1
  8. package/dist/application/hooks/MiddlewareHooks.d.ts.map +1 -1
  9. package/dist/application/services/BatchProcessor.d.ts +1 -0
  10. package/dist/application/services/BatchProcessor.d.ts.map +1 -1
  11. package/dist/application/services/BatchProcessor.js +9 -0
  12. package/dist/application/services/BatchProcessor.js.map +1 -1
  13. package/dist/application/services/QueryOrchestrator.d.ts +3 -1
  14. package/dist/application/services/QueryOrchestrator.d.ts.map +1 -1
  15. package/dist/application/services/QueryOrchestrator.js +192 -0
  16. package/dist/application/services/QueryOrchestrator.js.map +1 -1
  17. package/dist/cli/index.js +78 -5
  18. package/dist/cli/index.js.map +1 -1
  19. package/dist/index.d.ts +5 -3
  20. package/dist/index.d.ts.map +1 -1
  21. package/dist/index.js +16 -3
  22. package/dist/index.js.map +1 -1
  23. package/dist/infrastructure/http/BootstrapDiscovery.d.ts +1 -0
  24. package/dist/infrastructure/http/BootstrapDiscovery.d.ts.map +1 -1
  25. package/dist/infrastructure/http/BootstrapDiscovery.js +19 -0
  26. package/dist/infrastructure/http/BootstrapDiscovery.js.map +1 -1
  27. package/dist/infrastructure/http/Fetcher.js +1 -1
  28. package/dist/infrastructure/http/Normalizer.d.ts +2 -0
  29. package/dist/infrastructure/http/Normalizer.d.ts.map +1 -1
  30. package/dist/infrastructure/http/Normalizer.js +57 -0
  31. package/dist/infrastructure/http/Normalizer.js.map +1 -1
  32. package/dist/infrastructure/logging/AuditLogger.d.ts +7 -7
  33. package/dist/infrastructure/logging/AuditLogger.d.ts.map +1 -1
  34. package/dist/infrastructure/logging/AuditLogger.js.map +1 -1
  35. package/dist/infrastructure/monitoring/MetricsCollector.d.ts +3 -3
  36. package/dist/infrastructure/monitoring/MetricsCollector.d.ts.map +1 -1
  37. package/dist/infrastructure/monitoring/MetricsCollector.js.map +1 -1
  38. package/dist/infrastructure/native/NativeBackend.d.ts +13 -0
  39. package/dist/infrastructure/native/NativeBackend.d.ts.map +1 -0
  40. package/dist/infrastructure/native/NativeBackend.js +92 -0
  41. package/dist/infrastructure/native/NativeBackend.js.map +1 -0
  42. package/dist/shared/constants/rdap.constants.d.ts +1 -1
  43. package/dist/shared/constants/rdap.constants.js +1 -1
  44. package/dist/shared/types/generics.d.ts +6 -3
  45. package/dist/shared/types/generics.d.ts.map +1 -1
  46. package/dist/shared/types/index.d.ts +1 -1
  47. package/dist/shared/types/index.d.ts.map +1 -1
  48. package/dist/shared/types/options.d.ts +1 -0
  49. package/dist/shared/types/options.d.ts.map +1 -1
  50. package/dist/shared/types/options.js +2 -1
  51. package/dist/shared/types/options.js.map +1 -1
  52. package/dist/shared/types/responses.d.ts +42 -2
  53. package/dist/shared/types/responses.d.ts.map +1 -1
  54. package/dist/shared/utils/validators/entity.d.ts +3 -0
  55. package/dist/shared/utils/validators/entity.d.ts.map +1 -0
  56. package/dist/shared/utils/validators/entity.js +27 -0
  57. package/dist/shared/utils/validators/entity.js.map +1 -0
  58. package/dist/shared/utils/validators/index.d.ts +2 -0
  59. package/dist/shared/utils/validators/index.d.ts.map +1 -1
  60. package/dist/shared/utils/validators/index.js +7 -1
  61. package/dist/shared/utils/validators/index.js.map +1 -1
  62. package/dist/shared/utils/validators/nameserver.d.ts +3 -0
  63. package/dist/shared/utils/validators/nameserver.d.ts.map +1 -0
  64. package/dist/shared/utils/validators/nameserver.js +49 -0
  65. package/dist/shared/utils/validators/nameserver.js.map +1 -0
  66. package/package.json +14 -10
@@ -43,7 +43,7 @@ exports.DEFAULT_OPTIONS = {
43
43
  debug: {
44
44
  enabled: false,
45
45
  },
46
- userAgent: 'RDAPify/0.1.4 (https://rdapify.com)',
46
+ userAgent: 'RDAPify/0.1.8 (https://rdapify.com)',
47
47
  includeRaw: false,
48
48
  followRedirects: true,
49
49
  maxRedirects: 5,
@@ -51,5 +51,6 @@ exports.DEFAULT_OPTIONS = {
51
51
  bootstrapUrl: 'https://data.iana.org/rdap',
52
52
  middleware: {},
53
53
  deduplication: false,
54
+ backend: 'auto',
54
55
  };
55
56
  //# sourceMappingURL=options.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"options.js","sourceRoot":"","sources":["../../../src/shared/types/options.ts"],"names":[],"mappings":";;;AA0Na,QAAA,eAAe,GAAgC;IAC1D,KAAK,EAAE;QACL,QAAQ,EAAE,QAAQ;QAClB,GAAG,EAAE,IAAI;QACT,OAAO,EAAE,IAAI;KACd;IACD,KAAK,EAAE;QACL,WAAW,EAAE,CAAC;QACd,YAAY,EAAE,IAAI;QAClB,QAAQ,EAAE,KAAK;QACf,OAAO,EAAE,aAAa;QACtB,oBAAoB,EAAE,CAAC,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,CAAC;KACrD;IACD,cAAc,EAAE;QACd,OAAO,EAAE,IAAI;QACb,eAAe,EAAE,IAAI;QACrB,cAAc,EAAE,IAAI;QACpB,cAAc,EAAE,IAAI;QACpB,cAAc,EAAE,EAAE;QAClB,cAAc,EAAE,EAAE;KACnB;IACD,OAAO,EAAE;QACP,SAAS,EAAE,IAAI;QACf,YAAY,EAAE,CAAC,OAAO,EAAE,OAAO,EAAE,KAAK,CAAC;QACvC,aAAa,EAAE,YAAY;KAC5B;IACD,OAAO,EAAE;QACP,OAAO,EAAE,IAAI;QACb,OAAO,EAAE,KAAK;QACd,GAAG,EAAE,IAAI;KACV;IACD,OAAO,EAAE;QACP,KAAK,EAAE,MAAM;KACd;IACD,SAAS,EAAE;QACT,OAAO,EAAE,KAAK;QACd,WAAW,EAAE,GAAG;QAChB,QAAQ,EAAE,KAAK;KAChB;IACD,KAAK,EAAE;QACL,OAAO,EAAE,KAAK;KACf;IACD,SAAS,EAAE,qCAAqC;IAChD,UAAU,EAAE,KAAK;IACjB,eAAe,EAAE,IAAI;IACrB,YAAY,EAAE,CAAC;IACf,OAAO,EAAE,EAAE;IACX,YAAY,EAAE,4BAA4B;IAC1C,UAAU,EAAE,EAAE;IACd,aAAa,EAAE,KAAK;CACrB,CAAC"}
1
+ {"version":3,"file":"options.js","sourceRoot":"","sources":["../../../src/shared/types/options.ts"],"names":[],"mappings":";;;AA8Oa,QAAA,eAAe,GAAgC;IAC1D,KAAK,EAAE;QACL,QAAQ,EAAE,QAAQ;QAClB,GAAG,EAAE,IAAI;QACT,OAAO,EAAE,IAAI;KACd;IACD,KAAK,EAAE;QACL,WAAW,EAAE,CAAC;QACd,YAAY,EAAE,IAAI;QAClB,QAAQ,EAAE,KAAK;QACf,OAAO,EAAE,aAAa;QACtB,oBAAoB,EAAE,CAAC,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,CAAC;KACrD;IACD,cAAc,EAAE;QACd,OAAO,EAAE,IAAI;QACb,eAAe,EAAE,IAAI;QACrB,cAAc,EAAE,IAAI;QACpB,cAAc,EAAE,IAAI;QACpB,cAAc,EAAE,EAAE;QAClB,cAAc,EAAE,EAAE;KACnB;IACD,OAAO,EAAE;QACP,SAAS,EAAE,IAAI;QACf,YAAY,EAAE,CAAC,OAAO,EAAE,OAAO,EAAE,KAAK,CAAC;QACvC,aAAa,EAAE,YAAY;KAC5B;IACD,OAAO,EAAE;QACP,OAAO,EAAE,IAAI;QACb,OAAO,EAAE,KAAK;QACd,GAAG,EAAE,IAAI;KACV;IACD,OAAO,EAAE;QACP,KAAK,EAAE,MAAM;KACd;IACD,SAAS,EAAE;QACT,OAAO,EAAE,KAAK;QACd,WAAW,EAAE,GAAG;QAChB,QAAQ,EAAE,KAAK;KAChB;IACD,KAAK,EAAE;QACL,OAAO,EAAE,KAAK;KACf;IACD,SAAS,EAAE,qCAAqC;IAChD,UAAU,EAAE,KAAK;IACjB,eAAe,EAAE,IAAI;IACrB,YAAY,EAAE,CAAC;IACf,OAAO,EAAE,EAAE;IACX,YAAY,EAAE,4BAA4B;IAC1C,UAAU,EAAE,EAAE;IACd,aAAa,EAAE,KAAK;IACpB,OAAO,EAAE,MAAM;CAChB,CAAC"}
@@ -1,4 +1,4 @@
1
- import type { RDAPStatus } from './enums';
1
+ import type { RDAPStatus, RoleType } from './enums';
2
2
  import type { RDAPEntity, RDAPEvent, RDAPLink, RDAPRemark } from './entities';
3
3
  export interface DomainResponse {
4
4
  query: string;
@@ -67,7 +67,47 @@ export interface ASNResponse {
67
67
  cached: boolean;
68
68
  };
69
69
  }
70
- export type RDAPResponse = DomainResponse | IPResponse | ASNResponse;
70
+ export interface NameserverResponse {
71
+ query: string;
72
+ objectClass: 'nameserver';
73
+ handle?: string;
74
+ ldhName?: string;
75
+ unicodeName?: string;
76
+ status?: RDAPStatus[];
77
+ ipAddresses?: {
78
+ v4?: string[];
79
+ v6?: string[];
80
+ };
81
+ entities?: RDAPEntity[];
82
+ events?: RDAPEvent[];
83
+ links?: RDAPLink[];
84
+ remarks?: RDAPRemark[];
85
+ raw?: any;
86
+ metadata: {
87
+ source: string;
88
+ timestamp: string;
89
+ cached: boolean;
90
+ };
91
+ }
92
+ export interface EntityResponse {
93
+ query: string;
94
+ objectClass: 'entity';
95
+ handle?: string;
96
+ vcardArray?: any[];
97
+ roles?: RoleType[];
98
+ status?: RDAPStatus[];
99
+ entities?: RDAPEntity[];
100
+ events?: RDAPEvent[];
101
+ links?: RDAPLink[];
102
+ remarks?: RDAPRemark[];
103
+ raw?: any;
104
+ metadata: {
105
+ source: string;
106
+ timestamp: string;
107
+ cached: boolean;
108
+ };
109
+ }
110
+ export type RDAPResponse = DomainResponse | IPResponse | ASNResponse | NameserverResponse | EntityResponse;
71
111
  export interface RawRDAPResponse {
72
112
  objectClassName: string;
73
113
  handle?: string;
@@ -1 +1 @@
1
- {"version":3,"file":"responses.d.ts","sourceRoot":"","sources":["../../../src/shared/types/responses.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"responses.d.ts","sourceRoot":"","sources":["../../../src/shared/types/responses.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,3 @@
1
+ export declare function validateEntityHandle(handle: string): void;
2
+ export declare function normalizeEntityHandle(handle: string): string;
3
+ //# sourceMappingURL=entity.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"entity.d.ts","sourceRoot":"","sources":["../../../../src/shared/utils/validators/entity.ts"],"names":[],"mappings":"AAcA,wBAAgB,oBAAoB,CAAC,MAAM,EAAE,MAAM,GAAG,IAAI,CAyBzD;AAQD,wBAAgB,qBAAqB,CAAC,MAAM,EAAE,MAAM,GAAG,MAAM,CAE5D"}
@@ -0,0 +1,27 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.validateEntityHandle = validateEntityHandle;
4
+ exports.normalizeEntityHandle = normalizeEntityHandle;
5
+ const errors_1 = require("../../types/errors");
6
+ function validateEntityHandle(handle) {
7
+ if (!handle || typeof handle !== 'string') {
8
+ throw new errors_1.ValidationError('Entity handle must be a non-empty string', { handle });
9
+ }
10
+ const trimmed = handle.trim();
11
+ if (trimmed.length === 0) {
12
+ throw new errors_1.ValidationError('Entity handle cannot be empty', { handle });
13
+ }
14
+ if (trimmed.length > 255) {
15
+ throw new errors_1.ValidationError('Entity handle exceeds maximum length of 255 characters', {
16
+ handle,
17
+ length: trimmed.length,
18
+ });
19
+ }
20
+ if (!/^[a-zA-Z0-9][\w\-.]*$/.test(trimmed)) {
21
+ throw new errors_1.ValidationError('Entity handle contains invalid characters. Must start with alphanumeric and contain only letters, digits, hyphens, underscores, or dots.', { handle });
22
+ }
23
+ }
24
+ function normalizeEntityHandle(handle) {
25
+ return handle.trim();
26
+ }
27
+ //# sourceMappingURL=entity.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"entity.js","sourceRoot":"","sources":["../../../../src/shared/utils/validators/entity.ts"],"names":[],"mappings":";;AAcA,oDAyBC;AAQD,sDAEC;AA5CD,+CAAqD;AASrD,SAAgB,oBAAoB,CAAC,MAAc;IACjD,IAAI,CAAC,MAAM,IAAI,OAAO,MAAM,KAAK,QAAQ,EAAE,CAAC;QAC1C,MAAM,IAAI,wBAAe,CAAC,0CAA0C,EAAE,EAAE,MAAM,EAAE,CAAC,CAAC;IACpF,CAAC;IAED,MAAM,OAAO,GAAG,MAAM,CAAC,IAAI,EAAE,CAAC;IAE9B,IAAI,OAAO,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;QACzB,MAAM,IAAI,wBAAe,CAAC,+BAA+B,EAAE,EAAE,MAAM,EAAE,CAAC,CAAC;IACzE,CAAC;IAED,IAAI,OAAO,CAAC,MAAM,GAAG,GAAG,EAAE,CAAC;QACzB,MAAM,IAAI,wBAAe,CAAC,wDAAwD,EAAE;YAClF,MAAM;YACN,MAAM,EAAE,OAAO,CAAC,MAAM;SACvB,CAAC,CAAC;IACL,CAAC;IAGD,IAAI,CAAC,uBAAuB,CAAC,IAAI,CAAC,OAAO,CAAC,EAAE,CAAC;QAC3C,MAAM,IAAI,wBAAe,CACvB,0IAA0I,EAC1I,EAAE,MAAM,EAAE,CACX,CAAC;IACJ,CAAC;AACH,CAAC;AAQD,SAAgB,qBAAqB,CAAC,MAAc;IAClD,OAAO,MAAM,CAAC,IAAI,EAAE,CAAC;AACvB,CAAC"}
@@ -1,6 +1,8 @@
1
1
  export { validateDomain, normalizeDomain } from './domain';
2
2
  export { validateIP, validateIPv4, validateIPv6, normalizeIP } from './ip';
3
3
  export { validateASN, normalizeASN } from './asn';
4
+ export { validateNameserver, normalizeNameserver } from './nameserver';
5
+ export { validateEntityHandle, normalizeEntityHandle } from './entity';
4
6
  export { isPrivateIP, isLocalhost, isLinkLocal } from './network';
5
7
  export { validateClientOptions } from './config-validation';
6
8
  //# sourceMappingURL=index.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../src/shared/utils/validators/index.ts"],"names":[],"mappings":"AAKA,OAAO,EAAE,cAAc,EAAE,eAAe,EAAE,MAAM,UAAU,CAAC;AAC3D,OAAO,EAAE,UAAU,EAAE,YAAY,EAAE,YAAY,EAAE,WAAW,EAAE,MAAM,MAAM,CAAC;AAC3E,OAAO,EAAE,WAAW,EAAE,YAAY,EAAE,MAAM,OAAO,CAAC;AAClD,OAAO,EAAE,WAAW,EAAE,WAAW,EAAE,WAAW,EAAE,MAAM,WAAW,CAAC;AAGlE,OAAO,EAAE,qBAAqB,EAAE,MAAM,qBAAqB,CAAC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../src/shared/utils/validators/index.ts"],"names":[],"mappings":"AAKA,OAAO,EAAE,cAAc,EAAE,eAAe,EAAE,MAAM,UAAU,CAAC;AAC3D,OAAO,EAAE,UAAU,EAAE,YAAY,EAAE,YAAY,EAAE,WAAW,EAAE,MAAM,MAAM,CAAC;AAC3E,OAAO,EAAE,WAAW,EAAE,YAAY,EAAE,MAAM,OAAO,CAAC;AAClD,OAAO,EAAE,kBAAkB,EAAE,mBAAmB,EAAE,MAAM,cAAc,CAAC;AACvE,OAAO,EAAE,oBAAoB,EAAE,qBAAqB,EAAE,MAAM,UAAU,CAAC;AACvE,OAAO,EAAE,WAAW,EAAE,WAAW,EAAE,WAAW,EAAE,MAAM,WAAW,CAAC;AAGlE,OAAO,EAAE,qBAAqB,EAAE,MAAM,qBAAqB,CAAC"}
@@ -1,6 +1,6 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.validateClientOptions = exports.isLinkLocal = exports.isLocalhost = exports.isPrivateIP = exports.normalizeASN = exports.validateASN = exports.normalizeIP = exports.validateIPv6 = exports.validateIPv4 = exports.validateIP = exports.normalizeDomain = exports.validateDomain = void 0;
3
+ exports.validateClientOptions = exports.isLinkLocal = exports.isLocalhost = exports.isPrivateIP = exports.normalizeEntityHandle = exports.validateEntityHandle = exports.normalizeNameserver = exports.validateNameserver = exports.normalizeASN = exports.validateASN = exports.normalizeIP = exports.validateIPv6 = exports.validateIPv4 = exports.validateIP = exports.normalizeDomain = exports.validateDomain = void 0;
4
4
  var domain_1 = require("./domain");
5
5
  Object.defineProperty(exports, "validateDomain", { enumerable: true, get: function () { return domain_1.validateDomain; } });
6
6
  Object.defineProperty(exports, "normalizeDomain", { enumerable: true, get: function () { return domain_1.normalizeDomain; } });
@@ -12,6 +12,12 @@ Object.defineProperty(exports, "normalizeIP", { enumerable: true, get: function
12
12
  var asn_1 = require("./asn");
13
13
  Object.defineProperty(exports, "validateASN", { enumerable: true, get: function () { return asn_1.validateASN; } });
14
14
  Object.defineProperty(exports, "normalizeASN", { enumerable: true, get: function () { return asn_1.normalizeASN; } });
15
+ var nameserver_1 = require("./nameserver");
16
+ Object.defineProperty(exports, "validateNameserver", { enumerable: true, get: function () { return nameserver_1.validateNameserver; } });
17
+ Object.defineProperty(exports, "normalizeNameserver", { enumerable: true, get: function () { return nameserver_1.normalizeNameserver; } });
18
+ var entity_1 = require("./entity");
19
+ Object.defineProperty(exports, "validateEntityHandle", { enumerable: true, get: function () { return entity_1.validateEntityHandle; } });
20
+ Object.defineProperty(exports, "normalizeEntityHandle", { enumerable: true, get: function () { return entity_1.normalizeEntityHandle; } });
15
21
  var network_1 = require("./network");
16
22
  Object.defineProperty(exports, "isPrivateIP", { enumerable: true, get: function () { return network_1.isPrivateIP; } });
17
23
  Object.defineProperty(exports, "isLocalhost", { enumerable: true, get: function () { return network_1.isLocalhost; } });
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../src/shared/utils/validators/index.ts"],"names":[],"mappings":";;;AAKA,mCAA2D;AAAlD,wGAAA,cAAc,OAAA;AAAE,yGAAA,eAAe,OAAA;AACxC,2BAA2E;AAAlE,gGAAA,UAAU,OAAA;AAAE,kGAAA,YAAY,OAAA;AAAE,kGAAA,YAAY,OAAA;AAAE,iGAAA,WAAW,OAAA;AAC5D,6BAAkD;AAAzC,kGAAA,WAAW,OAAA;AAAE,mGAAA,YAAY,OAAA;AAClC,qCAAkE;AAAzD,sGAAA,WAAW,OAAA;AAAE,sGAAA,WAAW,OAAA;AAAE,sGAAA,WAAW,OAAA;AAG9C,yDAA4D;AAAnD,0HAAA,qBAAqB,OAAA"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../src/shared/utils/validators/index.ts"],"names":[],"mappings":";;;AAKA,mCAA2D;AAAlD,wGAAA,cAAc,OAAA;AAAE,yGAAA,eAAe,OAAA;AACxC,2BAA2E;AAAlE,gGAAA,UAAU,OAAA;AAAE,kGAAA,YAAY,OAAA;AAAE,kGAAA,YAAY,OAAA;AAAE,iGAAA,WAAW,OAAA;AAC5D,6BAAkD;AAAzC,kGAAA,WAAW,OAAA;AAAE,mGAAA,YAAY,OAAA;AAClC,2CAAuE;AAA9D,gHAAA,kBAAkB,OAAA;AAAE,iHAAA,mBAAmB,OAAA;AAChD,mCAAuE;AAA9D,8GAAA,oBAAoB,OAAA;AAAE,+GAAA,qBAAqB,OAAA;AACpD,qCAAkE;AAAzD,sGAAA,WAAW,OAAA;AAAE,sGAAA,WAAW,OAAA;AAAE,sGAAA,WAAW,OAAA;AAG9C,yDAA4D;AAAnD,0HAAA,qBAAqB,OAAA"}
@@ -0,0 +1,3 @@
1
+ export declare function validateNameserver(nameserver: string): void;
2
+ export declare function normalizeNameserver(nameserver: string): string;
3
+ //# sourceMappingURL=nameserver.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"nameserver.d.ts","sourceRoot":"","sources":["../../../../src/shared/utils/validators/nameserver.ts"],"names":[],"mappings":"AAcA,wBAAgB,kBAAkB,CAAC,UAAU,EAAE,MAAM,GAAG,IAAI,CAmD3D;AAQD,wBAAgB,mBAAmB,CAAC,UAAU,EAAE,MAAM,GAAG,MAAM,CAE9D"}
@@ -0,0 +1,49 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.validateNameserver = validateNameserver;
4
+ exports.normalizeNameserver = normalizeNameserver;
5
+ const errors_1 = require("../../types/errors");
6
+ function validateNameserver(nameserver) {
7
+ if (!nameserver || typeof nameserver !== 'string') {
8
+ throw new errors_1.ValidationError('Nameserver must be a non-empty string', { nameserver });
9
+ }
10
+ const trimmed = nameserver.trim();
11
+ if (trimmed.length === 0) {
12
+ throw new errors_1.ValidationError('Nameserver cannot be empty', { nameserver });
13
+ }
14
+ if (trimmed.length > 253) {
15
+ throw new errors_1.ValidationError('Nameserver hostname exceeds maximum length of 253 characters', {
16
+ nameserver,
17
+ length: trimmed.length,
18
+ });
19
+ }
20
+ if (!trimmed.includes('.')) {
21
+ throw new errors_1.ValidationError('Nameserver must be a fully-qualified hostname (e.g., ns1.example.com)', { nameserver });
22
+ }
23
+ const labels = trimmed.split('.');
24
+ for (const label of labels) {
25
+ if (label.length === 0) {
26
+ throw new errors_1.ValidationError('Nameserver hostname contains empty label (double dot or leading/trailing dot)', {
27
+ nameserver,
28
+ });
29
+ }
30
+ if (label.length > 63) {
31
+ throw new errors_1.ValidationError(`Nameserver label "${label}" exceeds maximum length of 63 characters`, {
32
+ nameserver,
33
+ label,
34
+ });
35
+ }
36
+ if (!/^[a-zA-Z0-9]([a-zA-Z0-9-]*[a-zA-Z0-9])?$/.test(label) && !/^[a-zA-Z0-9]$/.test(label)) {
37
+ if (!/^[a-zA-Z0-9][a-zA-Z0-9-]*$/.test(label)) {
38
+ throw new errors_1.ValidationError(`Nameserver label "${label}" contains invalid characters`, {
39
+ nameserver,
40
+ label,
41
+ });
42
+ }
43
+ }
44
+ }
45
+ }
46
+ function normalizeNameserver(nameserver) {
47
+ return nameserver.trim().toLowerCase();
48
+ }
49
+ //# sourceMappingURL=nameserver.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"nameserver.js","sourceRoot":"","sources":["../../../../src/shared/utils/validators/nameserver.ts"],"names":[],"mappings":";;AAcA,gDAmDC;AAQD,kDAEC;AAtED,+CAAqD;AASrD,SAAgB,kBAAkB,CAAC,UAAkB;IACnD,IAAI,CAAC,UAAU,IAAI,OAAO,UAAU,KAAK,QAAQ,EAAE,CAAC;QAClD,MAAM,IAAI,wBAAe,CAAC,uCAAuC,EAAE,EAAE,UAAU,EAAE,CAAC,CAAC;IACrF,CAAC;IAED,MAAM,OAAO,GAAG,UAAU,CAAC,IAAI,EAAE,CAAC;IAElC,IAAI,OAAO,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;QACzB,MAAM,IAAI,wBAAe,CAAC,4BAA4B,EAAE,EAAE,UAAU,EAAE,CAAC,CAAC;IAC1E,CAAC;IAED,IAAI,OAAO,CAAC,MAAM,GAAG,GAAG,EAAE,CAAC;QACzB,MAAM,IAAI,wBAAe,CAAC,8DAA8D,EAAE;YACxF,UAAU;YACV,MAAM,EAAE,OAAO,CAAC,MAAM;SACvB,CAAC,CAAC;IACL,CAAC;IAGD,IAAI,CAAC,OAAO,CAAC,QAAQ,CAAC,GAAG,CAAC,EAAE,CAAC;QAC3B,MAAM,IAAI,wBAAe,CACvB,uEAAuE,EACvE,EAAE,UAAU,EAAE,CACf,CAAC;IACJ,CAAC;IAGD,MAAM,MAAM,GAAG,OAAO,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;IAClC,KAAK,MAAM,KAAK,IAAI,MAAM,EAAE,CAAC;QAC3B,IAAI,KAAK,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;YACvB,MAAM,IAAI,wBAAe,CAAC,+EAA+E,EAAE;gBACzG,UAAU;aACX,CAAC,CAAC;QACL,CAAC;QACD,IAAI,KAAK,CAAC,MAAM,GAAG,EAAE,EAAE,CAAC;YACtB,MAAM,IAAI,wBAAe,CAAC,qBAAqB,KAAK,2CAA2C,EAAE;gBAC/F,UAAU;gBACV,KAAK;aACN,CAAC,CAAC;QACL,CAAC;QAED,IAAI,CAAC,0CAA0C,CAAC,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,eAAe,CAAC,IAAI,CAAC,KAAK,CAAC,EAAE,CAAC;YAE5F,IAAI,CAAC,4BAA4B,CAAC,IAAI,CAAC,KAAK,CAAC,EAAE,CAAC;gBAC9C,MAAM,IAAI,wBAAe,CAAC,qBAAqB,KAAK,+BAA+B,EAAE;oBACnF,UAAU;oBACV,KAAK;iBACN,CAAC,CAAC;YACL,CAAC;QACH,CAAC;IACH,CAAC;AACH,CAAC;AAQD,SAAgB,mBAAmB,CAAC,UAAkB;IACpD,OAAO,UAAU,CAAC,IAAI,EAAE,CAAC,WAAW,EAAE,CAAC;AACzC,CAAC"}
package/package.json CHANGED
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "name": "rdapify",
3
- "version": "0.1.6",
4
- "description": "Unified, secure, high-performance RDAP client for enterprise applications with built-in privacy controls",
3
+ "version": "0.1.8",
4
+ "description": "Unified, secure, high-performance RDAP client with built-in SSRF protection and privacy controls",
5
5
  "main": "dist/index.js",
6
6
  "types": "dist/index.d.ts",
7
7
  "exports": {
@@ -104,27 +104,31 @@
104
104
  },
105
105
  "devDependencies": {
106
106
  "@types/jest": "^29.5.11",
107
- "@types/node": "^20.11.5",
107
+ "@types/node": "^25.5.0",
108
108
  "@typescript-eslint/eslint-plugin": "^8.53.1",
109
109
  "@typescript-eslint/parser": "^8.53.1",
110
110
  "eslint": "^8.56.0",
111
- "eslint-config-prettier": "^9.1.0",
111
+ "eslint-config-prettier": "^10.1.8",
112
112
  "eslint-plugin-import": "^2.32.0",
113
113
  "eslint-plugin-prettier": "^5.1.3",
114
114
  "eslint-plugin-security": "^3.0.1",
115
- "husky": "^8.0.3",
115
+ "husky": "^9.1.7",
116
116
  "jest": "^29.7.0",
117
117
  "prettier": "^3.2.4",
118
- "rimraf": "^5.0.5",
118
+ "rimraf": "^6.1.3",
119
119
  "ts-jest": "^29.1.1",
120
120
  "typescript": "^5.9.3"
121
121
  },
122
- "funding": {
123
- "type": "opencollective",
124
- "url": "https://opencollective.com/rdapify"
125
- },
126
122
  "dependencies": {
127
123
  "ipaddr.js": "^2.3.0",
128
124
  "tslib": "^2.8.1"
125
+ },
126
+ "peerDependencies": {
127
+ "@rdapify/core": ">=0.1.0"
128
+ },
129
+ "peerDependenciesMeta": {
130
+ "@rdapify/core": {
131
+ "optional": true
132
+ }
129
133
  }
130
134
  }