rdapify 0.1.8 → 0.2.0

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 (97) hide show
  1. package/CHANGELOG.md +126 -10
  2. package/README.md +50 -31
  3. package/dist/application/client/RDAPClient.d.ts +6 -1
  4. package/dist/application/client/RDAPClient.d.ts.map +1 -1
  5. package/dist/application/client/RDAPClient.js +85 -24
  6. package/dist/application/client/RDAPClient.js.map +1 -1
  7. package/dist/application/hooks/MiddlewareHooks.d.ts +4 -2
  8. package/dist/application/hooks/MiddlewareHooks.d.ts.map +1 -1
  9. package/dist/application/hooks/MiddlewareHooks.js +41 -3
  10. package/dist/application/hooks/MiddlewareHooks.js.map +1 -1
  11. package/dist/application/services/BatchProcessor.d.ts +6 -0
  12. package/dist/application/services/BatchProcessor.d.ts.map +1 -1
  13. package/dist/application/services/BatchProcessor.js +54 -2
  14. package/dist/application/services/BatchProcessor.js.map +1 -1
  15. package/dist/application/services/QueryOrchestrator.d.ts +3 -2
  16. package/dist/application/services/QueryOrchestrator.d.ts.map +1 -1
  17. package/dist/application/services/QueryOrchestrator.js +16 -5
  18. package/dist/application/services/QueryOrchestrator.js.map +1 -1
  19. package/dist/index.d.ts +27 -3
  20. package/dist/index.d.ts.map +1 -1
  21. package/dist/index.js +33 -2
  22. package/dist/index.js.map +1 -1
  23. package/dist/infrastructure/cache/RedisCache.d.ts +10 -0
  24. package/dist/infrastructure/cache/RedisCache.d.ts.map +1 -1
  25. package/dist/infrastructure/cache/RedisCache.js +37 -1
  26. package/dist/infrastructure/cache/RedisCache.js.map +1 -1
  27. package/dist/infrastructure/http/BootstrapDiscovery.d.ts +6 -3
  28. package/dist/infrastructure/http/BootstrapDiscovery.d.ts.map +1 -1
  29. package/dist/infrastructure/http/BootstrapDiscovery.js +55 -12
  30. package/dist/infrastructure/http/BootstrapDiscovery.js.map +1 -1
  31. package/dist/infrastructure/http/BrowserFetcher.d.ts +16 -0
  32. package/dist/infrastructure/http/BrowserFetcher.d.ts.map +1 -0
  33. package/dist/infrastructure/http/BrowserFetcher.js +47 -0
  34. package/dist/infrastructure/http/BrowserFetcher.js.map +1 -0
  35. package/dist/infrastructure/http/BunFetcher.d.ts +19 -0
  36. package/dist/infrastructure/http/BunFetcher.d.ts.map +1 -0
  37. package/dist/infrastructure/http/BunFetcher.js +51 -0
  38. package/dist/infrastructure/http/BunFetcher.js.map +1 -0
  39. package/dist/infrastructure/http/CircuitBreaker.d.ts +33 -0
  40. package/dist/infrastructure/http/CircuitBreaker.d.ts.map +1 -0
  41. package/dist/infrastructure/http/CircuitBreaker.js +104 -0
  42. package/dist/infrastructure/http/CircuitBreaker.js.map +1 -0
  43. package/dist/infrastructure/http/CloudflareWorkersFetcher.d.ts +18 -0
  44. package/dist/infrastructure/http/CloudflareWorkersFetcher.d.ts.map +1 -0
  45. package/dist/infrastructure/http/CloudflareWorkersFetcher.js +44 -0
  46. package/dist/infrastructure/http/CloudflareWorkersFetcher.js.map +1 -0
  47. package/dist/infrastructure/http/DenoFetcher.d.ts +18 -0
  48. package/dist/infrastructure/http/DenoFetcher.d.ts.map +1 -0
  49. package/dist/infrastructure/http/DenoFetcher.js +43 -0
  50. package/dist/infrastructure/http/DenoFetcher.js.map +1 -0
  51. package/dist/infrastructure/http/Fetcher.d.ts +2 -0
  52. package/dist/infrastructure/http/Fetcher.d.ts.map +1 -1
  53. package/dist/infrastructure/http/Fetcher.js +5 -0
  54. package/dist/infrastructure/http/Fetcher.js.map +1 -1
  55. package/dist/infrastructure/monitoring/GrafanaDashboard.d.ts +571 -0
  56. package/dist/infrastructure/monitoring/GrafanaDashboard.d.ts.map +1 -0
  57. package/dist/infrastructure/monitoring/GrafanaDashboard.js +119 -0
  58. package/dist/infrastructure/monitoring/GrafanaDashboard.js.map +1 -0
  59. package/dist/infrastructure/monitoring/PrometheusExporter.d.ts +20 -0
  60. package/dist/infrastructure/monitoring/PrometheusExporter.d.ts.map +1 -0
  61. package/dist/infrastructure/monitoring/PrometheusExporter.js +77 -0
  62. package/dist/infrastructure/monitoring/PrometheusExporter.js.map +1 -0
  63. package/dist/infrastructure/monitoring/TelemetryExporter.d.ts +42 -0
  64. package/dist/infrastructure/monitoring/TelemetryExporter.d.ts.map +1 -0
  65. package/dist/infrastructure/monitoring/TelemetryExporter.js +117 -0
  66. package/dist/infrastructure/monitoring/TelemetryExporter.js.map +1 -0
  67. package/dist/infrastructure/native/NativeBackend.js +2 -2
  68. package/dist/infrastructure/native/NativeBackend.js.map +1 -1
  69. package/dist/integrations/express.d.ts +23 -0
  70. package/dist/integrations/express.d.ts.map +1 -0
  71. package/dist/integrations/express.js +49 -0
  72. package/dist/integrations/express.js.map +1 -0
  73. package/dist/integrations/graphql.d.ts +20 -0
  74. package/dist/integrations/graphql.d.ts.map +1 -0
  75. package/dist/integrations/graphql.js +85 -0
  76. package/dist/integrations/graphql.js.map +1 -0
  77. package/dist/integrations/nestjs.d.ts +18 -0
  78. package/dist/integrations/nestjs.d.ts.map +1 -0
  79. package/dist/integrations/nestjs.js +29 -0
  80. package/dist/integrations/nestjs.js.map +1 -0
  81. package/dist/shared/errors/base.error.d.ts +3 -0
  82. package/dist/shared/errors/base.error.d.ts.map +1 -1
  83. package/dist/shared/errors/base.error.js +7 -1
  84. package/dist/shared/errors/base.error.js.map +1 -1
  85. package/dist/shared/types/index.d.ts +1 -1
  86. package/dist/shared/types/index.d.ts.map +1 -1
  87. package/dist/shared/types/options.d.ts +19 -0
  88. package/dist/shared/types/options.d.ts.map +1 -1
  89. package/dist/shared/types/options.js +9 -0
  90. package/dist/shared/types/options.js.map +1 -1
  91. package/dist/shared/types/responses.d.ts +5 -0
  92. package/dist/shared/types/responses.d.ts.map +1 -1
  93. package/dist/shared/utils/deprecation.d.ts +3 -0
  94. package/dist/shared/utils/deprecation.d.ts.map +1 -0
  95. package/dist/shared/utils/deprecation.js +25 -0
  96. package/dist/shared/utils/deprecation.js.map +1 -0
  97. package/package.json +17 -3
@@ -0,0 +1,119 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.RDAPIFY_GRAFANA_DASHBOARD = void 0;
4
+ exports.RDAPIFY_GRAFANA_DASHBOARD = {
5
+ __inputs: [
6
+ {
7
+ name: 'DS_PROMETHEUS',
8
+ label: 'Prometheus',
9
+ description: '',
10
+ type: 'datasource',
11
+ pluginId: 'prometheus',
12
+ pluginName: 'Prometheus',
13
+ },
14
+ ],
15
+ __requires: [
16
+ { type: 'grafana', id: 'grafana', name: 'Grafana', version: '9.0.0' },
17
+ { type: 'datasource', id: 'prometheus', name: 'Prometheus', version: '1.0.0' },
18
+ { type: 'panel', id: 'timeseries', name: 'Time series', version: '' },
19
+ { type: 'panel', id: 'stat', name: 'Stat', version: '' },
20
+ { type: 'panel', id: 'gauge', name: 'Gauge', version: '' },
21
+ ],
22
+ annotations: { list: [{ builtIn: 1, datasource: { type: 'grafana', uid: '-- Grafana --' }, enable: true, hide: true, iconColor: 'rgba(0, 211, 255, 1)', name: 'Annotations & Alerts', type: 'dashboard' }] },
23
+ description: 'RDAPify RDAP client metrics — query rates, cache performance, and error tracking',
24
+ editable: true,
25
+ fiscalYearStartMonth: 0,
26
+ graphTooltip: 1,
27
+ id: null,
28
+ links: [],
29
+ liveNow: false,
30
+ panels: [
31
+ {
32
+ datasource: { type: 'prometheus', uid: '${DS_PROMETHEUS}' },
33
+ fieldConfig: { defaults: { color: { mode: 'thresholds' }, mappings: [], thresholds: { mode: 'absolute', steps: [{ color: 'green', value: null }] }, unit: 'short' }, overrides: [] },
34
+ gridPos: { h: 4, w: 4, x: 0, y: 0 },
35
+ id: 1,
36
+ options: { colorMode: 'background', graphMode: 'area', justifyMode: 'auto', orientation: 'auto', reduceOptions: { calcs: ['lastNotNull'], fields: '', values: false }, textMode: 'auto' },
37
+ title: 'Total Queries',
38
+ type: 'stat',
39
+ targets: [{ datasource: { type: 'prometheus', uid: '${DS_PROMETHEUS}' }, expr: 'rdapify_queries_total', legendFormat: 'Queries', refId: 'A' }],
40
+ },
41
+ {
42
+ datasource: { type: 'prometheus', uid: '${DS_PROMETHEUS}' },
43
+ fieldConfig: { defaults: { color: { mode: 'thresholds' }, mappings: [], thresholds: { mode: 'absolute', steps: [{ color: 'red', value: null }, { color: 'orange', value: 0.8 }, { color: 'green', value: 0.95 }] }, unit: 'percentunit', max: 1, min: 0 }, overrides: [] },
44
+ gridPos: { h: 4, w: 4, x: 4, y: 0 },
45
+ id: 2,
46
+ options: { colorMode: 'background', graphMode: 'none', justifyMode: 'auto', orientation: 'auto', reduceOptions: { calcs: ['lastNotNull'], fields: '', values: false }, textMode: 'auto' },
47
+ title: 'Success Rate',
48
+ type: 'stat',
49
+ targets: [{ datasource: { type: 'prometheus', uid: '${DS_PROMETHEUS}' }, expr: 'rdapify_success_rate', legendFormat: 'Success Rate', refId: 'A' }],
50
+ },
51
+ {
52
+ datasource: { type: 'prometheus', uid: '${DS_PROMETHEUS}' },
53
+ fieldConfig: { defaults: { color: { mode: 'thresholds' }, mappings: [], thresholds: { mode: 'absolute', steps: [{ color: 'red', value: null }, { color: 'orange', value: 0.3 }, { color: 'green', value: 0.7 }] }, unit: 'percentunit', max: 1, min: 0 }, overrides: [] },
54
+ gridPos: { h: 4, w: 4, x: 8, y: 0 },
55
+ id: 3,
56
+ options: { colorMode: 'background', graphMode: 'none', justifyMode: 'auto', orientation: 'auto', reduceOptions: { calcs: ['lastNotNull'], fields: '', values: false }, textMode: 'auto' },
57
+ title: 'Cache Hit Rate',
58
+ type: 'stat',
59
+ targets: [{ datasource: { type: 'prometheus', uid: '${DS_PROMETHEUS}' }, expr: 'rdapify_cache_hit_rate', legendFormat: 'Cache Hit Rate', refId: 'A' }],
60
+ },
61
+ {
62
+ datasource: { type: 'prometheus', uid: '${DS_PROMETHEUS}' },
63
+ fieldConfig: { defaults: { color: { mode: 'thresholds' }, mappings: [], thresholds: { mode: 'absolute', steps: [{ color: 'green', value: null }, { color: 'orange', value: 500 }, { color: 'red', value: 2000 }] }, unit: 'ms' }, overrides: [] },
64
+ gridPos: { h: 4, w: 4, x: 12, y: 0 },
65
+ id: 4,
66
+ options: { colorMode: 'value', graphMode: 'area', justifyMode: 'auto', orientation: 'auto', reduceOptions: { calcs: ['lastNotNull'], fields: '', values: false }, textMode: 'auto' },
67
+ title: 'Avg Response Time',
68
+ type: 'stat',
69
+ targets: [{ datasource: { type: 'prometheus', uid: '${DS_PROMETHEUS}' }, expr: 'rdapify_response_time_avg_ms', legendFormat: 'Avg', refId: 'A' }],
70
+ },
71
+ {
72
+ datasource: { type: 'prometheus', uid: '${DS_PROMETHEUS}' },
73
+ fieldConfig: { defaults: { color: { mode: 'palette-classic' }, custom: { axisCenteredZero: false, axisColorMode: 'text', axisLabel: '', axisPlacement: 'auto', barAlignment: 0, drawStyle: 'line', fillOpacity: 10, gradientMode: 'none', hideFrom: { legend: false, tooltip: false, viz: false }, lineInterpolation: 'linear', lineWidth: 1, pointSize: 5, scaleDistribution: { type: 'linear' }, showPoints: 'auto', spanNulls: false, stacking: { group: 'A', mode: 'none' }, thresholdsStyle: { mode: 'off' } }, mappings: [], thresholds: { mode: 'absolute', steps: [{ color: 'green', value: null }, { color: 'red', value: 80 }] }, unit: 'ms' }, overrides: [] },
74
+ gridPos: { h: 8, w: 12, x: 0, y: 4 },
75
+ id: 5,
76
+ options: { legend: { calcs: [], displayMode: 'list', placement: 'bottom', showLegend: true }, tooltip: { mode: 'single', sort: 'none' } },
77
+ title: 'Response Time Percentiles',
78
+ type: 'timeseries',
79
+ targets: [
80
+ { datasource: { type: 'prometheus', uid: '${DS_PROMETHEUS}' }, expr: 'rdapify_response_time_p50_ms', legendFormat: 'P50', refId: 'A' },
81
+ { datasource: { type: 'prometheus', uid: '${DS_PROMETHEUS}' }, expr: 'rdapify_response_time_p90_ms', legendFormat: 'P90', refId: 'B' },
82
+ { datasource: { type: 'prometheus', uid: '${DS_PROMETHEUS}' }, expr: 'rdapify_response_time_p99_ms', legendFormat: 'P99', refId: 'C' },
83
+ ],
84
+ },
85
+ {
86
+ datasource: { type: 'prometheus', uid: '${DS_PROMETHEUS}' },
87
+ fieldConfig: { defaults: { color: { mode: 'palette-classic' }, custom: { axisCenteredZero: false, axisColorMode: 'text', axisLabel: '', axisPlacement: 'auto', barAlignment: 0, drawStyle: 'line', fillOpacity: 10, gradientMode: 'none', hideFrom: { legend: false, tooltip: false, viz: false }, lineInterpolation: 'linear', lineWidth: 1, pointSize: 5, scaleDistribution: { type: 'linear' }, showPoints: 'auto', spanNulls: false, stacking: { group: 'A', mode: 'none' }, thresholdsStyle: { mode: 'off' } }, mappings: [], thresholds: { mode: 'absolute', steps: [{ color: 'green', value: null }] }, unit: 'short' }, overrides: [] },
88
+ gridPos: { h: 8, w: 12, x: 12, y: 4 },
89
+ id: 6,
90
+ options: { legend: { calcs: [], displayMode: 'list', placement: 'bottom', showLegend: true }, tooltip: { mode: 'single', sort: 'none' } },
91
+ title: 'Queries by Type',
92
+ type: 'timeseries',
93
+ targets: [{ datasource: { type: 'prometheus', uid: '${DS_PROMETHEUS}' }, expr: 'rdapify_queries_by_type_total', legendFormat: '{{type}}', refId: 'A' }],
94
+ },
95
+ {
96
+ datasource: { type: 'prometheus', uid: '${DS_PROMETHEUS}' },
97
+ fieldConfig: { defaults: { color: { mode: 'palette-classic' }, custom: { axisCenteredZero: false, axisColorMode: 'text', axisLabel: '', axisPlacement: 'auto', barAlignment: 0, drawStyle: 'bars', fillOpacity: 80, gradientMode: 'none', hideFrom: { legend: false, tooltip: false, viz: false }, lineInterpolation: 'linear', lineWidth: 1, pointSize: 5, scaleDistribution: { type: 'linear' }, showPoints: 'auto', spanNulls: false, stacking: { group: 'A', mode: 'normal' }, thresholdsStyle: { mode: 'off' } }, mappings: [], thresholds: { mode: 'absolute', steps: [{ color: 'green', value: null }] }, unit: 'short' }, overrides: [] },
98
+ gridPos: { h: 8, w: 24, x: 0, y: 12 },
99
+ id: 7,
100
+ options: { legend: { calcs: [], displayMode: 'list', placement: 'bottom', showLegend: true }, tooltip: { mode: 'single', sort: 'none' } },
101
+ title: 'Errors by Type',
102
+ type: 'timeseries',
103
+ targets: [{ datasource: { type: 'prometheus', uid: '${DS_PROMETHEUS}' }, expr: 'rdapify_errors_by_type_total', legendFormat: '{{error_type}}', refId: 'A' }],
104
+ },
105
+ ],
106
+ refresh: '30s',
107
+ schemaVersion: 38,
108
+ style: 'dark',
109
+ tags: ['rdapify', 'rdap'],
110
+ templating: { list: [] },
111
+ time: { from: 'now-1h', to: 'now' },
112
+ timepicker: {},
113
+ timezone: '',
114
+ title: 'RDAPify',
115
+ uid: 'rdapify-dashboard',
116
+ version: 1,
117
+ weekStart: '',
118
+ };
119
+ //# sourceMappingURL=GrafanaDashboard.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"GrafanaDashboard.js","sourceRoot":"","sources":["../../../src/infrastructure/monitoring/GrafanaDashboard.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,20 @@
1
+ import type { MetricsSummary } from './MetricsCollector';
2
+ export interface PrometheusExporterOptions {
3
+ prefix?: string;
4
+ labels?: Record<string, string>;
5
+ }
6
+ export declare class PrometheusExporter {
7
+ static readonly CONTENT_TYPE = "text/plain; version=0.0.4; charset=utf-8";
8
+ private readonly prefix;
9
+ private readonly labels;
10
+ private readonly getMetrics;
11
+ constructor(getMetrics: (since?: number) => MetricsSummary, options?: PrometheusExporterOptions);
12
+ export(): string;
13
+ createHttpHandler(): (req: unknown, res: {
14
+ setHeader(k: string, v: string): void;
15
+ end(body: string): void;
16
+ }) => void;
17
+ private formatLabels;
18
+ private escapeLabel;
19
+ }
20
+ //# sourceMappingURL=PrometheusExporter.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"PrometheusExporter.d.ts","sourceRoot":"","sources":["../../../src/infrastructure/monitoring/PrometheusExporter.ts"],"names":[],"mappings":"AA0BA,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,oBAAoB,CAAC;AAQzD,MAAM,WAAW,yBAAyB;IAIxC,MAAM,CAAC,EAAE,MAAM,CAAC;IAKhB,MAAM,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;CACjC;AAKD,qBAAa,kBAAkB;IAC7B,MAAM,CAAC,QAAQ,CAAC,YAAY,8CAAgB;IAE5C,OAAO,CAAC,QAAQ,CAAC,MAAM,CAAS;IAChC,OAAO,CAAC,QAAQ,CAAC,MAAM,CAAyB;IAChD,OAAO,CAAC,QAAQ,CAAC,UAAU,CAAqC;gBAQ9D,UAAU,EAAE,CAAC,KAAK,CAAC,EAAE,MAAM,KAAK,cAAc,EAC9C,OAAO,GAAE,yBAA8B;IAWzC,MAAM,IAAI,MAAM;IAsEhB,iBAAiB,IAAI,CAAC,GAAG,EAAE,OAAO,EAAE,GAAG,EAAE;QAAE,SAAS,CAAC,CAAC,EAAE,MAAM,EAAE,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;QAAC,GAAG,CAAC,IAAI,EAAE,MAAM,GAAG,IAAI,CAAA;KAAE,KAAK,IAAI;IAOpH,OAAO,CAAC,YAAY;IAOpB,OAAO,CAAC,WAAW;CAGpB"}
@@ -0,0 +1,77 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.PrometheusExporter = void 0;
4
+ const CONTENT_TYPE = 'text/plain; version=0.0.4; charset=utf-8';
5
+ class PrometheusExporter {
6
+ constructor(getMetrics, options = {}) {
7
+ this.getMetrics = getMetrics;
8
+ this.prefix = options.prefix ?? 'rdapify';
9
+ this.labels = options.labels ?? {};
10
+ }
11
+ export() {
12
+ const m = this.getMetrics();
13
+ const lbl = this.formatLabels(this.labels);
14
+ const p = this.prefix;
15
+ const lines = [];
16
+ const gauge = (name, help, value, extraLabels = {}) => {
17
+ const fullName = `${p}_${name}`;
18
+ lines.push(`# HELP ${fullName} ${help}`);
19
+ lines.push(`# TYPE ${fullName} gauge`);
20
+ lines.push(`${fullName}${this.formatLabels({ ...this.labels, ...extraLabels })} ${value}`);
21
+ };
22
+ const counter = (name, help, value, extraLabels = {}) => {
23
+ const fullName = `${p}_${name}`;
24
+ lines.push(`# HELP ${fullName} ${help}`);
25
+ lines.push(`# TYPE ${fullName} counter`);
26
+ lines.push(`${fullName}_total${this.formatLabels({ ...this.labels, ...extraLabels })} ${value}`);
27
+ };
28
+ counter('queries', 'Total number of RDAP queries executed', m.total);
29
+ counter('queries_successful', 'Total number of successful RDAP queries', m.successful);
30
+ counter('queries_failed', 'Total number of failed RDAP queries', m.failed);
31
+ const types = Object.entries(m.queriesByType);
32
+ const fullTypeName = `${p}_queries_by_type_total`;
33
+ lines.push(`# HELP ${fullTypeName} Total RDAP queries broken down by query type`);
34
+ lines.push(`# TYPE ${fullTypeName} counter`);
35
+ for (const [type, count] of types) {
36
+ lines.push(`${fullTypeName}${this.formatLabels({ ...this.labels, type })} ${count}`);
37
+ }
38
+ gauge('success_rate', 'Fraction of successful queries (0–1)', m.successRate);
39
+ gauge('cache_hit_rate', 'Fraction of queries served from cache (0–1)', m.cacheHitRate);
40
+ gauge('response_time_avg_ms', 'Average RDAP query response time in milliseconds', m.avgResponseTime);
41
+ gauge('response_time_min_ms', 'Minimum RDAP query response time in milliseconds', m.minResponseTime);
42
+ gauge('response_time_max_ms', 'Maximum RDAP query response time in milliseconds', m.maxResponseTime);
43
+ gauge('response_time_p50_ms', 'P50 (median) RDAP query response time in milliseconds', m.p50ResponseTime);
44
+ gauge('response_time_p90_ms', 'P90 RDAP query response time in milliseconds', m.p90ResponseTime);
45
+ gauge('response_time_p99_ms', 'P99 RDAP query response time in milliseconds', m.p99ResponseTime);
46
+ const errorEntries = Object.entries(m.errorsByType);
47
+ if (errorEntries.length > 0) {
48
+ const fullErrName = `${p}_errors_by_type_total`;
49
+ lines.push(`# HELP ${fullErrName} Total RDAP errors broken down by error type`);
50
+ lines.push(`# TYPE ${fullErrName} counter`);
51
+ for (const [errorType, count] of errorEntries) {
52
+ lines.push(`${fullErrName}${this.formatLabels({ ...this.labels, error_type: errorType })} ${count}`);
53
+ }
54
+ }
55
+ void lbl;
56
+ return lines.join('\n') + '\n';
57
+ }
58
+ createHttpHandler() {
59
+ return (_req, res) => {
60
+ res.setHeader('Content-Type', CONTENT_TYPE);
61
+ res.end(this.export());
62
+ };
63
+ }
64
+ formatLabels(labels) {
65
+ const entries = Object.entries(labels);
66
+ if (entries.length === 0)
67
+ return '';
68
+ const pairs = entries.map(([k, v]) => `${k}="${this.escapeLabel(v)}"`).join(',');
69
+ return `{${pairs}}`;
70
+ }
71
+ escapeLabel(value) {
72
+ return value.replace(/\\/g, '\\\\').replace(/"/g, '\\"').replace(/\n/g, '\\n');
73
+ }
74
+ }
75
+ exports.PrometheusExporter = PrometheusExporter;
76
+ PrometheusExporter.CONTENT_TYPE = CONTENT_TYPE;
77
+ //# sourceMappingURL=PrometheusExporter.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"PrometheusExporter.js","sourceRoot":"","sources":["../../../src/infrastructure/monitoring/PrometheusExporter.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,42 @@
1
+ import type { TelemetryOptions } from '../../shared/types/options';
2
+ export interface SpanData {
3
+ traceId: string;
4
+ spanId: string;
5
+ parentSpanId?: string;
6
+ name: string;
7
+ startTimeUnixNano: string;
8
+ endTimeUnixNano: string;
9
+ attributes?: Array<{
10
+ key: string;
11
+ value: {
12
+ stringValue?: string;
13
+ intValue?: number;
14
+ boolValue?: boolean;
15
+ };
16
+ }>;
17
+ status?: {
18
+ code: 0 | 1 | 2;
19
+ message?: string;
20
+ };
21
+ }
22
+ export declare class TelemetryExporter {
23
+ private readonly endpoint;
24
+ private readonly serviceName;
25
+ private readonly serviceVersion;
26
+ private readonly resourceAttributes;
27
+ private readonly enabled;
28
+ constructor(options: TelemetryOptions);
29
+ isEnabled(): boolean;
30
+ exportSpans(spans: SpanData[]): Promise<void>;
31
+ startSpan(name: string, attributes?: Record<string, string | number | boolean>, parentSpanId?: string): SpanData;
32
+ endSpan(span: SpanData, status?: {
33
+ code: 0 | 1 | 2;
34
+ message?: string;
35
+ }): Promise<void>;
36
+ private buildOtlpPayload;
37
+ private encodeAttributes;
38
+ private sendRequest;
39
+ private generateId;
40
+ private nowNano;
41
+ }
42
+ //# sourceMappingURL=TelemetryExporter.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"TelemetryExporter.d.ts","sourceRoot":"","sources":["../../../src/infrastructure/monitoring/TelemetryExporter.ts"],"names":[],"mappings":"AAyBA,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,4BAA4B,CAAC;AAMnE,MAAM,WAAW,QAAQ;IACvB,OAAO,EAAE,MAAM,CAAC;IAChB,MAAM,EAAE,MAAM,CAAC;IACf,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,IAAI,EAAE,MAAM,CAAC;IACb,iBAAiB,EAAE,MAAM,CAAC;IAC1B,eAAe,EAAE,MAAM,CAAC;IACxB,UAAU,CAAC,EAAE,KAAK,CAAC;QAAE,GAAG,EAAE,MAAM,CAAC;QAAC,KAAK,EAAE;YAAE,WAAW,CAAC,EAAE,MAAM,CAAC;YAAC,QAAQ,CAAC,EAAE,MAAM,CAAC;YAAC,SAAS,CAAC,EAAE,OAAO,CAAA;SAAE,CAAA;KAAE,CAAC,CAAC;IAC7G,MAAM,CAAC,EAAE;QAAE,IAAI,EAAE,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC;QAAC,OAAO,CAAC,EAAE,MAAM,CAAA;KAAE,CAAC;CAChD;AAKD,qBAAa,iBAAiB;IAC5B,OAAO,CAAC,QAAQ,CAAC,QAAQ,CAAS;IAClC,OAAO,CAAC,QAAQ,CAAC,WAAW,CAAS;IACrC,OAAO,CAAC,QAAQ,CAAC,cAAc,CAAS;IACxC,OAAO,CAAC,QAAQ,CAAC,kBAAkB,CAAyB;IAC5D,OAAO,CAAC,QAAQ,CAAC,OAAO,CAAU;gBAEtB,OAAO,EAAE,gBAAgB;IAWrC,SAAS,IAAI,OAAO;IAQd,WAAW,CAAC,KAAK,EAAE,QAAQ,EAAE,GAAG,OAAO,CAAC,IAAI,CAAC;IAgBnD,SAAS,CACP,IAAI,EAAE,MAAM,EACZ,UAAU,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,GAAG,MAAM,GAAG,OAAO,CAAC,EACtD,YAAY,CAAC,EAAE,MAAM,GACpB,QAAQ;IAgBL,OAAO,CACX,IAAI,EAAE,QAAQ,EACd,MAAM,GAAE;QAAE,IAAI,EAAE,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC;QAAC,OAAO,CAAC,EAAE,MAAM,CAAA;KAAgB,GAC1D,OAAO,CAAC,IAAI,CAAC;IAMhB,OAAO,CAAC,gBAAgB;IAkCxB,OAAO,CAAC,gBAAgB;YAcV,WAAW;IAoBzB,OAAO,CAAC,UAAU;IAQlB,OAAO,CAAC,OAAO;CAGhB"}
@@ -0,0 +1,117 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.TelemetryExporter = void 0;
4
+ const RDAPIFY_VERSION = '0.2.3';
5
+ class TelemetryExporter {
6
+ constructor(options) {
7
+ this.endpoint = options.endpoint ?? '';
8
+ this.serviceName = options.serviceName ?? 'rdapify';
9
+ this.serviceVersion = options.serviceVersion ?? RDAPIFY_VERSION;
10
+ this.resourceAttributes = options.resourceAttributes ?? {};
11
+ this.enabled = options.enabled !== false && Boolean(this.endpoint);
12
+ }
13
+ isEnabled() {
14
+ return this.enabled;
15
+ }
16
+ async exportSpans(spans) {
17
+ if (!this.enabled || spans.length === 0)
18
+ return;
19
+ const payload = this.buildOtlpPayload(spans);
20
+ try {
21
+ const body = JSON.stringify(payload);
22
+ await this.sendRequest(body);
23
+ }
24
+ catch {
25
+ }
26
+ }
27
+ startSpan(name, attributes, parentSpanId) {
28
+ const span = {
29
+ traceId: this.generateId(16),
30
+ spanId: this.generateId(8),
31
+ parentSpanId,
32
+ name,
33
+ startTimeUnixNano: this.nowNano(),
34
+ endTimeUnixNano: '0',
35
+ attributes: attributes ? this.encodeAttributes(attributes) : [],
36
+ };
37
+ return span;
38
+ }
39
+ async endSpan(span, status = { code: 0 }) {
40
+ span.endTimeUnixNano = this.nowNano();
41
+ span.status = status;
42
+ await this.exportSpans([span]);
43
+ }
44
+ buildOtlpPayload(spans) {
45
+ const resourceAttrs = this.encodeAttributes({
46
+ 'service.name': this.serviceName,
47
+ 'service.version': this.serviceVersion,
48
+ 'telemetry.sdk.name': 'rdapify',
49
+ 'telemetry.sdk.language': 'javascript',
50
+ ...this.resourceAttributes,
51
+ });
52
+ return {
53
+ resourceSpans: [
54
+ {
55
+ resource: { attributes: resourceAttrs },
56
+ scopeSpans: [
57
+ {
58
+ scope: { name: 'rdapify', version: this.serviceVersion },
59
+ spans: spans.map((s) => ({
60
+ traceId: s.traceId,
61
+ spanId: s.spanId,
62
+ parentSpanId: s.parentSpanId,
63
+ name: s.name,
64
+ kind: 3,
65
+ startTimeUnixNano: s.startTimeUnixNano,
66
+ endTimeUnixNano: s.endTimeUnixNano,
67
+ attributes: s.attributes ?? [],
68
+ status: s.status ?? { code: 0 },
69
+ })),
70
+ },
71
+ ],
72
+ },
73
+ ],
74
+ };
75
+ }
76
+ encodeAttributes(attrs) {
77
+ return Object.entries(attrs).map(([key, value]) => {
78
+ if (typeof value === 'boolean') {
79
+ return { key, value: { boolValue: value } };
80
+ }
81
+ else if (typeof value === 'number') {
82
+ return { key, value: { intValue: value } };
83
+ }
84
+ else {
85
+ return { key, value: { stringValue: String(value) } };
86
+ }
87
+ });
88
+ }
89
+ async sendRequest(body) {
90
+ const fetchFn = typeof globalThis !== 'undefined' && typeof globalThis['fetch'] === 'function'
91
+ ? globalThis['fetch']
92
+ : (() => { throw new Error('No fetch available'); })();
93
+ const response = await fetchFn(this.endpoint, {
94
+ method: 'POST',
95
+ headers: {
96
+ 'Content-Type': 'application/json',
97
+ 'Accept': 'application/json',
98
+ },
99
+ body,
100
+ });
101
+ if (!response.ok) {
102
+ throw new Error(`OTLP export failed: ${response.status} ${response.statusText}`);
103
+ }
104
+ }
105
+ generateId(bytes) {
106
+ const hex = [];
107
+ for (let i = 0; i < bytes * 2; i++) {
108
+ hex.push(Math.floor(Math.random() * 16).toString(16));
109
+ }
110
+ return hex.join('');
111
+ }
112
+ nowNano() {
113
+ return (BigInt(Date.now()) * BigInt(1000000)).toString();
114
+ }
115
+ }
116
+ exports.TelemetryExporter = TelemetryExporter;
117
+ //# sourceMappingURL=TelemetryExporter.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"TelemetryExporter.js","sourceRoot":"","sources":["../../../src/infrastructure/monitoring/TelemetryExporter.ts"],"names":[],"mappings":"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"}
@@ -7,7 +7,7 @@ function tryLoadCore() {
7
7
  if (_module !== undefined)
8
8
  return _module;
9
9
  try {
10
- _module = require('@rdapify/core');
10
+ _module = require('rdapify-nd');
11
11
  }
12
12
  catch {
13
13
  _module = null;
@@ -39,7 +39,7 @@ class NativeBackend {
39
39
  const core = tryLoadCore();
40
40
  if (!core) {
41
41
  if (mode === 'native') {
42
- throw new Error('@rdapify/core is not installed. Run: npm install @rdapify/core\n' +
42
+ throw new Error('rdapify-nd is not installed. Run: npm install rdapify-nd\n' +
43
43
  'Or use backend: "auto" to fall back to the TypeScript backend.');
44
44
  }
45
45
  return null;
@@ -1 +1 @@
1
- {"version":3,"file":"NativeBackend.js","sourceRoot":"","sources":["../../../src/infrastructure/native/NativeBackend.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"NativeBackend.js","sourceRoot":"","sources":["../../../src/infrastructure/native/NativeBackend.ts"],"names":[],"mappings":";;;AAkDA,8CAEC;AAhBD,IAAI,OAAsC,CAAC;AAE3C,SAAS,WAAW;IAClB,IAAI,OAAO,KAAK,SAAS;QAAE,OAAO,OAAO,CAAC;IAC1C,IAAI,CAAC;QAEH,OAAO,GAAG,OAAO,CAAC,YAAY,CAAe,CAAC;IAChD,CAAC;IAAC,MAAM,CAAC;QACP,OAAO,GAAG,IAAI,CAAC;IACjB,CAAC;IACD,OAAO,OAAO,CAAC;AACjB,CAAC;AAGD,SAAgB,iBAAiB;IAC/B,OAAO,WAAW,EAAE,KAAK,IAAI,CAAC;AAChC,CAAC;AAMD,SAAS,SAAS,CAAC,GAA4B;IAC7C,MAAM,IAAI,GAAG,CAAC,GAAG,CAAC,MAAM,CAAC,IAAI,EAAE,CAA4B,CAAC;IAC5D,OAAO;QACL,MAAM,EAAG,IAAI,CAAC,QAAQ,CAAY,IAAI,EAAE;QAExC,SAAS,EAAG,IAAI,CAAC,YAAY,CAAY,IAAI,EAAE;QAC/C,MAAM,EAAG,IAAI,CAAC,QAAQ,CAAa,IAAI,KAAK;KAC7C,CAAC;AACJ,CAAC;AAGD,SAAS,cAAc,CAAC,GAA4B;IAClD,MAAM,EAAE,IAAI,EAAE,KAAK,EAAE,WAAW,EAAE,GAAG,EAAE,GAAG,IAAI,EAAE,GAAG,GAAG,CAAC;IACvD,KAAK,KAAK,CAAC;IACX,KAAK,GAAG,CAAC;IACT,OAAO,IAAI,CAAC;AACd,CAAC;AAQD,MAAa,aAAa;IAGxB,YAAoB,IAAgB;QAClC,IAAI,CAAC,IAAI,GAAG,IAAI,CAAC;IACnB,CAAC;IAQD,MAAM,CAAC,MAAM,CAAC,IAAuB;QACnC,MAAM,IAAI,GAAG,WAAW,EAAE,CAAC;QAC3B,IAAI,CAAC,IAAI,EAAE,CAAC;YACV,IAAI,IAAI,KAAK,QAAQ,EAAE,CAAC;gBACtB,MAAM,IAAI,KAAK,CACb,4DAA4D;oBAC1D,gEAAgE,CACnE,CAAC;YACJ,CAAC;YACD,OAAO,IAAI,CAAC;QACd,CAAC;QACD,OAAO,IAAI,aAAa,CAAC,IAAI,CAAC,CAAC;IACjC,CAAC;IAED,KAAK,CAAC,MAAM,CAAC,KAAa;QACxB,MAAM,GAAG,GAAG,CAAC,MAAM,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,CAA4B,CAAC;QACvE,OAAO;YACL,GAAG,cAAc,CAAC,GAAG,CAAC;YACtB,WAAW,EAAE,QAAQ;YACrB,QAAQ,EAAE,SAAS,CAAC,GAAG,CAAC;SACP,CAAC;IACtB,CAAC;IAED,KAAK,CAAC,EAAE,CAAC,KAAa;QACpB,MAAM,GAAG,GAAG,CAAC,MAAM,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC,KAAK,CAAC,CAA4B,CAAC;QACnE,OAAO;YACL,GAAG,cAAc,CAAC,GAAG,CAAC;YACtB,WAAW,EAAE,YAAY;YACzB,QAAQ,EAAE,SAAS,CAAC,GAAG,CAAC;SACX,CAAC;IAClB,CAAC;IAED,KAAK,CAAC,GAAG,CAAC,KAAsB;QAC9B,MAAM,GAAG,GAAG,CAAC,MAAM,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC,CAA4B,CAAC;QAC5E,OAAO;YACL,GAAG,cAAc,CAAC,GAAG,CAAC;YAEtB,KAAK,EAAE,MAAM,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC;YAC3B,WAAW,EAAE,QAAQ;YACrB,QAAQ,EAAE,SAAS,CAAC,GAAG,CAAC;SACV,CAAC;IACnB,CAAC;IAED,KAAK,CAAC,UAAU,CAAC,KAAa;QAC5B,MAAM,GAAG,GAAG,CAAC,MAAM,IAAI,CAAC,IAAI,CAAC,UAAU,CAAC,KAAK,CAAC,CAA4B,CAAC;QAC3E,OAAO;YACL,GAAG,cAAc,CAAC,GAAG,CAAC;YACtB,WAAW,EAAE,YAAY;YACzB,QAAQ,EAAE,SAAS,CAAC,GAAG,CAAC;SACH,CAAC;IAC1B,CAAC;IAED,KAAK,CAAC,MAAM,CAAC,MAAc,EAAE,SAAiB;QAC5C,MAAM,GAAG,GAAG,CAAC,MAAM,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,MAAM,EAAE,SAAS,CAAC,CAA4B,CAAC;QACnF,OAAO;YACL,GAAG,cAAc,CAAC,GAAG,CAAC;YACtB,WAAW,EAAE,QAAQ;YACrB,QAAQ,EAAE,SAAS,CAAC,GAAG,CAAC;SACP,CAAC;IACtB,CAAC;CACF;AAzED,sCAyEC"}
@@ -0,0 +1,23 @@
1
+ import type { RDAPClient } from '../application/client';
2
+ export interface RouterLike {
3
+ get(path: string, handler: RouteHandler): this;
4
+ }
5
+ export interface RequestLike {
6
+ params: Record<string, string>;
7
+ }
8
+ export interface ResponseLike {
9
+ status(code: number): this;
10
+ json(body: unknown): this;
11
+ }
12
+ type RouteHandler = (req: RequestLike, res: ResponseLike) => void | Promise<void>;
13
+ interface RouteEntry {
14
+ path: string;
15
+ handler: RouteHandler;
16
+ }
17
+ export declare class MinimalRouter implements RouterLike {
18
+ readonly routes: RouteEntry[];
19
+ get(path: string, handler: RouteHandler): this;
20
+ }
21
+ export declare function rdapifyExpress<R extends RouterLike>(client: RDAPClient, router?: R): R | MinimalRouter;
22
+ export {};
23
+ //# sourceMappingURL=express.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"express.d.ts","sourceRoot":"","sources":["../../src/integrations/express.ts"],"names":[],"mappings":"AAuBA,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,uBAAuB,CAAC;AAMxD,MAAM,WAAW,UAAU;IACzB,GAAG,CAAC,IAAI,EAAE,MAAM,EAAE,OAAO,EAAE,YAAY,GAAG,IAAI,CAAC;CAChD;AAED,MAAM,WAAW,WAAW;IAC1B,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;CAChC;AAED,MAAM,WAAW,YAAY;IAC3B,MAAM,CAAC,IAAI,EAAE,MAAM,GAAG,IAAI,CAAC;IAC3B,IAAI,CAAC,IAAI,EAAE,OAAO,GAAG,IAAI,CAAC;CAC3B;AAED,KAAK,YAAY,GAAG,CAAC,GAAG,EAAE,WAAW,EAAE,GAAG,EAAE,YAAY,KAAK,IAAI,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;AAMlF,UAAU,UAAU;IAClB,IAAI,EAAE,MAAM,CAAC;IACb,OAAO,EAAE,YAAY,CAAC;CACvB;AASD,qBAAa,aAAc,YAAW,UAAU;IAC9C,QAAQ,CAAC,MAAM,EAAE,UAAU,EAAE,CAAM;IAEnC,GAAG,CAAC,IAAI,EAAE,MAAM,EAAE,OAAO,EAAE,YAAY,GAAG,IAAI;CAI/C;AAoBD,wBAAgB,cAAc,CAAC,CAAC,SAAS,UAAU,EACjD,MAAM,EAAE,UAAU,EAClB,MAAM,CAAC,EAAE,CAAC,GACT,CAAC,GAAG,aAAa,CAkCnB"}
@@ -0,0 +1,49 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.MinimalRouter = void 0;
4
+ exports.rdapifyExpress = rdapifyExpress;
5
+ class MinimalRouter {
6
+ constructor() {
7
+ this.routes = [];
8
+ }
9
+ get(path, handler) {
10
+ this.routes.push({ path, handler });
11
+ return this;
12
+ }
13
+ }
14
+ exports.MinimalRouter = MinimalRouter;
15
+ function rdapifyExpress(client, router) {
16
+ const r = router ?? new MinimalRouter();
17
+ r.get('/domain/:name', async (req, res) => {
18
+ try {
19
+ const result = await client.domain(req.params['name'] ?? '');
20
+ res.json(result);
21
+ }
22
+ catch (err) {
23
+ const message = err instanceof Error ? err.message : String(err);
24
+ res.status(500).json({ error: message });
25
+ }
26
+ });
27
+ r.get('/ip/:address', async (req, res) => {
28
+ try {
29
+ const result = await client.ip(req.params['address'] ?? '');
30
+ res.json(result);
31
+ }
32
+ catch (err) {
33
+ const message = err instanceof Error ? err.message : String(err);
34
+ res.status(500).json({ error: message });
35
+ }
36
+ });
37
+ r.get('/asn/:number', async (req, res) => {
38
+ try {
39
+ const result = await client.asn(req.params['number'] ?? '');
40
+ res.json(result);
41
+ }
42
+ catch (err) {
43
+ const message = err instanceof Error ? err.message : String(err);
44
+ res.status(500).json({ error: message });
45
+ }
46
+ });
47
+ return r;
48
+ }
49
+ //# sourceMappingURL=express.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"express.js","sourceRoot":"","sources":["../../src/integrations/express.ts"],"names":[],"mappings":";;;AAuFA,wCAqCC;AAhED,MAAa,aAAa;IAA1B;QACW,WAAM,GAAiB,EAAE,CAAC;IAMrC,CAAC;IAJC,GAAG,CAAC,IAAY,EAAE,OAAqB;QACrC,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,EAAE,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC;QACpC,OAAO,IAAI,CAAC;IACd,CAAC;CACF;AAPD,sCAOC;AAoBD,SAAgB,cAAc,CAC5B,MAAkB,EAClB,MAAU;IAEV,MAAM,CAAC,GAAG,MAAM,IAAI,IAAI,aAAa,EAAE,CAAC;IAExC,CAAC,CAAC,GAAG,CAAC,eAAe,EAAE,KAAK,EAAE,GAAgB,EAAE,GAAiB,EAAE,EAAE;QACnE,IAAI,CAAC;YACH,MAAM,MAAM,GAAG,MAAM,MAAM,CAAC,MAAM,CAAC,GAAG,CAAC,MAAM,CAAC,MAAM,CAAC,IAAI,EAAE,CAAC,CAAC;YAC7D,GAAG,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;QACnB,CAAC;QAAC,OAAO,GAAG,EAAE,CAAC;YACb,MAAM,OAAO,GAAG,GAAG,YAAY,KAAK,CAAC,CAAC,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC;YACjE,GAAG,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC,EAAE,KAAK,EAAE,OAAO,EAAE,CAAC,CAAC;QAC3C,CAAC;IACH,CAAC,CAAC,CAAC;IAEH,CAAC,CAAC,GAAG,CAAC,cAAc,EAAE,KAAK,EAAE,GAAgB,EAAE,GAAiB,EAAE,EAAE;QAClE,IAAI,CAAC;YACH,MAAM,MAAM,GAAG,MAAM,MAAM,CAAC,EAAE,CAAC,GAAG,CAAC,MAAM,CAAC,SAAS,CAAC,IAAI,EAAE,CAAC,CAAC;YAC5D,GAAG,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;QACnB,CAAC;QAAC,OAAO,GAAG,EAAE,CAAC;YACb,MAAM,OAAO,GAAG,GAAG,YAAY,KAAK,CAAC,CAAC,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC;YACjE,GAAG,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC,EAAE,KAAK,EAAE,OAAO,EAAE,CAAC,CAAC;QAC3C,CAAC;IACH,CAAC,CAAC,CAAC;IAEH,CAAC,CAAC,GAAG,CAAC,cAAc,EAAE,KAAK,EAAE,GAAgB,EAAE,GAAiB,EAAE,EAAE;QAClE,IAAI,CAAC;YACH,MAAM,MAAM,GAAG,MAAM,MAAM,CAAC,GAAG,CAAC,GAAG,CAAC,MAAM,CAAC,QAAQ,CAAC,IAAI,EAAE,CAAC,CAAC;YAC5D,GAAG,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;QACnB,CAAC;QAAC,OAAO,GAAG,EAAE,CAAC;YACb,MAAM,OAAO,GAAG,GAAG,YAAY,KAAK,CAAC,CAAC,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC;YACjE,GAAG,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC,EAAE,KAAK,EAAE,OAAO,EAAE,CAAC,CAAC;QAC3C,CAAC;IACH,CAAC,CAAC,CAAC;IAEH,OAAO,CAAC,CAAC;AACX,CAAC"}
@@ -0,0 +1,20 @@
1
+ import type { RDAPClient } from '../application/client';
2
+ export declare const RDAPIFY_TYPE_DEFS = "\n type DomainResponse {\n query: String!\n ldhName: String\n registrar: String\n status: [String!]!\n expiresAt: String\n createdAt: String\n updatedAt: String\n }\n\n type IpResponse {\n query: String!\n country: String\n name: String\n status: [String!]!\n startAddress: String\n endAddress: String\n }\n\n type AsnResponse {\n query: String!\n name: String\n status: [String!]!\n startAutnum: Int\n endAutnum: Int\n }\n\n type Query {\n \"\"\"Query RDAP information for a domain name.\"\"\"\n domain(name: String!): DomainResponse\n\n \"\"\"Query RDAP information for an IP address (IPv4 or IPv6).\"\"\"\n ip(address: String!): IpResponse\n\n \"\"\"Query RDAP information for an Autonomous System Number.\"\"\"\n asn(number: String!): AsnResponse\n }\n";
3
+ export interface RdapifyResolvers {
4
+ Query: {
5
+ domain(_: unknown, args: {
6
+ name: string;
7
+ }): Promise<unknown>;
8
+ ip(_: unknown, args: {
9
+ address: string;
10
+ }): Promise<unknown>;
11
+ asn(_: unknown, args: {
12
+ number: string;
13
+ }): Promise<unknown>;
14
+ };
15
+ }
16
+ export declare function createRdapifySchema(client: RDAPClient): {
17
+ typeDefs: string;
18
+ resolvers: RdapifyResolvers;
19
+ };
20
+ //# sourceMappingURL=graphql.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"graphql.d.ts","sourceRoot":"","sources":["../../src/integrations/graphql.ts"],"names":[],"mappings":"AAsBA,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,uBAAuB,CAAC;AAMxD,eAAO,MAAM,iBAAiB,86BAsC7B,CAAC;AAMF,MAAM,WAAW,gBAAgB;IAC/B,KAAK,EAAE;QACL,MAAM,CAAC,CAAC,EAAE,OAAO,EAAE,IAAI,EAAE;YAAE,IAAI,EAAE,MAAM,CAAA;SAAE,GAAG,OAAO,CAAC,OAAO,CAAC,CAAC;QAC7D,EAAE,CAAC,CAAC,EAAE,OAAO,EAAE,IAAI,EAAE;YAAE,OAAO,EAAE,MAAM,CAAA;SAAE,GAAG,OAAO,CAAC,OAAO,CAAC,CAAC;QAC5D,GAAG,CAAC,CAAC,EAAE,OAAO,EAAE,IAAI,EAAE;YAAE,MAAM,EAAE,MAAM,CAAA;SAAE,GAAG,OAAO,CAAC,OAAO,CAAC,CAAC;KAC7D,CAAC;CACH;AAYD,wBAAgB,mBAAmB,CAAC,MAAM,EAAE,UAAU,GAAG;IACvD,QAAQ,EAAE,MAAM,CAAC;IACjB,SAAS,EAAE,gBAAgB,CAAC;CAC7B,CA4CA"}