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.
- package/CHANGELOG.md +139 -94
- package/README.md +168 -146
- package/dist/application/client/RDAPClient.d.ts +16 -1
- package/dist/application/client/RDAPClient.d.ts.map +1 -1
- package/dist/application/client/RDAPClient.js +46 -1
- package/dist/application/client/RDAPClient.js.map +1 -1
- package/dist/application/deduplication/QueryDeduplicator.d.ts +20 -0
- package/dist/application/deduplication/QueryDeduplicator.d.ts.map +1 -0
- package/dist/application/deduplication/QueryDeduplicator.js +46 -0
- package/dist/application/deduplication/QueryDeduplicator.js.map +1 -0
- package/dist/application/hooks/MiddlewareHooks.d.ts +48 -0
- package/dist/application/hooks/MiddlewareHooks.d.ts.map +1 -0
- package/dist/application/hooks/MiddlewareHooks.js +46 -0
- package/dist/application/hooks/MiddlewareHooks.js.map +1 -0
- package/dist/application/services/BatchProcessor.d.ts +1 -0
- package/dist/application/services/BatchProcessor.d.ts.map +1 -1
- package/dist/application/services/BatchProcessor.js +9 -0
- package/dist/application/services/BatchProcessor.js.map +1 -1
- package/dist/application/services/QueryOrchestrator.d.ts +14 -1
- package/dist/application/services/QueryOrchestrator.d.ts.map +1 -1
- package/dist/application/services/QueryOrchestrator.js +446 -38
- package/dist/application/services/QueryOrchestrator.js.map +1 -1
- package/dist/cli/index.d.ts +3 -0
- package/dist/cli/index.d.ts.map +1 -0
- package/dist/cli/index.js +300 -0
- package/dist/cli/index.js.map +1 -0
- package/dist/index.d.ts +13 -3
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +26 -2
- package/dist/index.js.map +1 -1
- package/dist/infrastructure/cache/CacheManager.d.ts.map +1 -1
- package/dist/infrastructure/cache/CacheManager.js +8 -1
- package/dist/infrastructure/cache/CacheManager.js.map +1 -1
- package/dist/infrastructure/cache/RedisCache.d.ts +35 -0
- package/dist/infrastructure/cache/RedisCache.d.ts.map +1 -0
- package/dist/infrastructure/cache/RedisCache.js +75 -0
- package/dist/infrastructure/cache/RedisCache.js.map +1 -0
- package/dist/infrastructure/cache/index.d.ts +1 -0
- package/dist/infrastructure/cache/index.d.ts.map +1 -1
- package/dist/infrastructure/cache/index.js +3 -1
- package/dist/infrastructure/cache/index.js.map +1 -1
- package/dist/infrastructure/http/BootstrapDiscovery.d.ts +1 -0
- package/dist/infrastructure/http/BootstrapDiscovery.d.ts.map +1 -1
- package/dist/infrastructure/http/BootstrapDiscovery.js +19 -0
- package/dist/infrastructure/http/BootstrapDiscovery.js.map +1 -1
- package/dist/infrastructure/http/Fetcher.d.ts +2 -0
- package/dist/infrastructure/http/Fetcher.d.ts.map +1 -1
- package/dist/infrastructure/http/Fetcher.js +5 -3
- package/dist/infrastructure/http/Fetcher.js.map +1 -1
- package/dist/infrastructure/http/Normalizer.d.ts +2 -0
- package/dist/infrastructure/http/Normalizer.d.ts.map +1 -1
- package/dist/infrastructure/http/Normalizer.js +57 -0
- package/dist/infrastructure/http/Normalizer.js.map +1 -1
- package/dist/infrastructure/logging/AuditLogger.d.ts +114 -0
- package/dist/infrastructure/logging/AuditLogger.d.ts.map +1 -0
- package/dist/infrastructure/logging/AuditLogger.js +195 -0
- package/dist/infrastructure/logging/AuditLogger.js.map +1 -0
- package/dist/infrastructure/logging/Logger.d.ts.map +1 -1
- package/dist/infrastructure/logging/Logger.js +29 -5
- package/dist/infrastructure/logging/Logger.js.map +1 -1
- package/dist/infrastructure/monitoring/MetricsCollector.d.ts +39 -2
- package/dist/infrastructure/monitoring/MetricsCollector.d.ts.map +1 -1
- package/dist/infrastructure/monitoring/MetricsCollector.js +179 -0
- package/dist/infrastructure/monitoring/MetricsCollector.js.map +1 -1
- package/dist/infrastructure/security/PIIRedactor.js +1 -1
- package/dist/infrastructure/security/PIIRedactor.js.map +1 -1
- package/dist/infrastructure/validation/ResponseValidator.d.ts +38 -0
- package/dist/infrastructure/validation/ResponseValidator.d.ts.map +1 -0
- package/dist/infrastructure/validation/ResponseValidator.js +200 -0
- package/dist/infrastructure/validation/ResponseValidator.js.map +1 -0
- package/dist/shared/constants/rdap.constants.d.ts +1 -1
- package/dist/shared/constants/rdap.constants.js +1 -1
- package/dist/shared/errors/base.error.d.ts +8 -0
- package/dist/shared/errors/base.error.d.ts.map +1 -1
- package/dist/shared/errors/base.error.js +30 -1
- package/dist/shared/errors/base.error.js.map +1 -1
- package/dist/shared/types/generics.d.ts +6 -3
- package/dist/shared/types/generics.d.ts.map +1 -1
- package/dist/shared/types/index.d.ts +1 -1
- package/dist/shared/types/index.d.ts.map +1 -1
- package/dist/shared/types/options.d.ts +21 -2
- package/dist/shared/types/options.d.ts.map +1 -1
- package/dist/shared/types/options.js +6 -1
- package/dist/shared/types/options.js.map +1 -1
- package/dist/shared/types/responses.d.ts +42 -2
- package/dist/shared/types/responses.d.ts.map +1 -1
- package/dist/shared/utils/helpers/index.d.ts +1 -1
- package/dist/shared/utils/helpers/index.d.ts.map +1 -1
- package/dist/shared/utils/helpers/index.js +2 -1
- package/dist/shared/utils/helpers/index.js.map +1 -1
- package/dist/shared/utils/helpers/runtime.d.ts +1 -0
- package/dist/shared/utils/helpers/runtime.d.ts.map +1 -1
- package/dist/shared/utils/helpers/runtime.js +11 -1
- package/dist/shared/utils/helpers/runtime.js.map +1 -1
- package/dist/shared/utils/validators/config-validation.d.ts +3 -0
- package/dist/shared/utils/validators/config-validation.d.ts.map +1 -0
- package/dist/shared/utils/validators/config-validation.js +97 -0
- package/dist/shared/utils/validators/config-validation.js.map +1 -0
- package/dist/shared/utils/validators/entity.d.ts +3 -0
- package/dist/shared/utils/validators/entity.d.ts.map +1 -0
- package/dist/shared/utils/validators/entity.js +27 -0
- package/dist/shared/utils/validators/entity.js.map +1 -0
- package/dist/shared/utils/validators/index.d.ts +3 -0
- package/dist/shared/utils/validators/index.d.ts.map +1 -1
- package/dist/shared/utils/validators/index.js +9 -1
- package/dist/shared/utils/validators/index.js.map +1 -1
- package/dist/shared/utils/validators/nameserver.d.ts +3 -0
- package/dist/shared/utils/validators/nameserver.d.ts.map +1 -0
- package/dist/shared/utils/validators/nameserver.js +49 -0
- package/dist/shared/utils/validators/nameserver.js.map +1 -0
- package/package.json +9 -10
|
@@ -0,0 +1,20 @@
|
|
|
1
|
+
export interface DeduplicatorOptions {
|
|
2
|
+
windowMs?: number;
|
|
3
|
+
enabled?: boolean;
|
|
4
|
+
}
|
|
5
|
+
export declare class QueryDeduplicator {
|
|
6
|
+
private readonly inflight;
|
|
7
|
+
private readonly windowMs;
|
|
8
|
+
private readonly enabled;
|
|
9
|
+
constructor(options?: DeduplicatorOptions);
|
|
10
|
+
deduplicate<T>(key: string, fn: () => Promise<T>): Promise<T>;
|
|
11
|
+
getInflightCount(): number;
|
|
12
|
+
getInflightKeys(): string[];
|
|
13
|
+
clear(): void;
|
|
14
|
+
getStats(): {
|
|
15
|
+
enabled: boolean;
|
|
16
|
+
inflight: number;
|
|
17
|
+
windowMs: number;
|
|
18
|
+
};
|
|
19
|
+
}
|
|
20
|
+
//# sourceMappingURL=QueryDeduplicator.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"QueryDeduplicator.d.ts","sourceRoot":"","sources":["../../../src/application/deduplication/QueryDeduplicator.ts"],"names":[],"mappings":"AAKA,MAAM,WAAW,mBAAmB;IAElC,QAAQ,CAAC,EAAE,MAAM,CAAC;IAElB,OAAO,CAAC,EAAE,OAAO,CAAC;CACnB;AAQD,qBAAa,iBAAiB;IAC5B,OAAO,CAAC,QAAQ,CAAC,QAAQ,CAAgC;IACzD,OAAO,CAAC,QAAQ,CAAC,QAAQ,CAAS;IAClC,OAAO,CAAC,QAAQ,CAAC,OAAO,CAAU;gBAEtB,OAAO,CAAC,EAAE,mBAAmB;IAiBzC,WAAW,CAAC,CAAC,EAAE,GAAG,EAAE,MAAM,EAAE,EAAE,EAAE,MAAM,OAAO,CAAC,CAAC,CAAC,GAAG,OAAO,CAAC,CAAC,CAAC;IAwB7D,gBAAgB,IAAI,MAAM;IAK1B,eAAe,IAAI,MAAM,EAAE;IAK3B,KAAK,IAAI,IAAI;IAIb,QAAQ,IAAI;QAAE,OAAO,EAAE,OAAO,CAAC;QAAC,QAAQ,EAAE,MAAM,CAAC;QAAC,QAAQ,EAAE,MAAM,CAAA;KAAE;CAOrE"}
|
|
@@ -0,0 +1,46 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.QueryDeduplicator = void 0;
|
|
4
|
+
class QueryDeduplicator {
|
|
5
|
+
constructor(options) {
|
|
6
|
+
this.inflight = new Map();
|
|
7
|
+
this.windowMs = options?.windowMs ?? 100;
|
|
8
|
+
this.enabled = options?.enabled ?? true;
|
|
9
|
+
}
|
|
10
|
+
deduplicate(key, fn) {
|
|
11
|
+
if (!this.enabled) {
|
|
12
|
+
return fn();
|
|
13
|
+
}
|
|
14
|
+
const existing = this.inflight.get(key);
|
|
15
|
+
if (existing !== undefined) {
|
|
16
|
+
return existing;
|
|
17
|
+
}
|
|
18
|
+
const promise = fn().finally(() => {
|
|
19
|
+
setTimeout(() => {
|
|
20
|
+
if (this.inflight.get(key) === promise) {
|
|
21
|
+
this.inflight.delete(key);
|
|
22
|
+
}
|
|
23
|
+
}, this.windowMs);
|
|
24
|
+
});
|
|
25
|
+
this.inflight.set(key, promise);
|
|
26
|
+
return promise;
|
|
27
|
+
}
|
|
28
|
+
getInflightCount() {
|
|
29
|
+
return this.inflight.size;
|
|
30
|
+
}
|
|
31
|
+
getInflightKeys() {
|
|
32
|
+
return Array.from(this.inflight.keys());
|
|
33
|
+
}
|
|
34
|
+
clear() {
|
|
35
|
+
this.inflight.clear();
|
|
36
|
+
}
|
|
37
|
+
getStats() {
|
|
38
|
+
return {
|
|
39
|
+
enabled: this.enabled,
|
|
40
|
+
inflight: this.inflight.size,
|
|
41
|
+
windowMs: this.windowMs,
|
|
42
|
+
};
|
|
43
|
+
}
|
|
44
|
+
}
|
|
45
|
+
exports.QueryDeduplicator = QueryDeduplicator;
|
|
46
|
+
//# sourceMappingURL=QueryDeduplicator.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"QueryDeduplicator.js","sourceRoot":"","sources":["../../../src/application/deduplication/QueryDeduplicator.ts"],"names":[],"mappings":";;;AAkBA,MAAa,iBAAiB;IAK5B,YAAY,OAA6B;QACvC,IAAI,CAAC,QAAQ,GAAG,IAAI,GAAG,EAAE,CAAC;QAC1B,IAAI,CAAC,QAAQ,GAAG,OAAO,EAAE,QAAQ,IAAI,GAAG,CAAC;QACzC,IAAI,CAAC,OAAO,GAAG,OAAO,EAAE,OAAO,IAAI,IAAI,CAAC;IAC1C,CAAC;IAaD,WAAW,CAAI,GAAW,EAAE,EAAoB;QAC9C,IAAI,CAAC,IAAI,CAAC,OAAO,EAAE,CAAC;YAClB,OAAO,EAAE,EAAE,CAAC;QACd,CAAC;QAED,MAAM,QAAQ,GAAG,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC;QACxC,IAAI,QAAQ,KAAK,SAAS,EAAE,CAAC;YAC3B,OAAO,QAAsB,CAAC;QAChC,CAAC;QAED,MAAM,OAAO,GAAe,EAAE,EAAE,CAAC,OAAO,CAAC,GAAG,EAAE;YAE5C,UAAU,CAAC,GAAG,EAAE;gBACd,IAAI,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,GAAG,CAAC,KAAK,OAAO,EAAE,CAAC;oBACvC,IAAI,CAAC,QAAQ,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC;gBAC5B,CAAC;YACH,CAAC,EAAE,IAAI,CAAC,QAAQ,CAAC,CAAC;QACpB,CAAC,CAAC,CAAC;QAEH,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,GAAG,EAAE,OAAO,CAAC,CAAC;QAChC,OAAO,OAAO,CAAC;IACjB,CAAC;IAGD,gBAAgB;QACd,OAAO,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC;IAC5B,CAAC;IAGD,eAAe;QACb,OAAO,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,QAAQ,CAAC,IAAI,EAAE,CAAC,CAAC;IAC1C,CAAC;IAGD,KAAK;QACH,IAAI,CAAC,QAAQ,CAAC,KAAK,EAAE,CAAC;IACxB,CAAC;IAED,QAAQ;QACN,OAAO;YACL,OAAO,EAAE,IAAI,CAAC,OAAO;YACrB,QAAQ,EAAE,IAAI,CAAC,QAAQ,CAAC,IAAI;YAC5B,QAAQ,EAAE,IAAI,CAAC,QAAQ;SACxB,CAAC;IACJ,CAAC;CACF;AAnED,8CAmEC"}
|
|
@@ -0,0 +1,48 @@
|
|
|
1
|
+
import type { RDAPResponse } from '../../shared/types/responses';
|
|
2
|
+
export interface QueryContext {
|
|
3
|
+
queryType: 'domain' | 'ip' | 'asn' | 'nameserver' | 'entity';
|
|
4
|
+
query: string;
|
|
5
|
+
normalized: string;
|
|
6
|
+
startTime: number;
|
|
7
|
+
cached?: boolean;
|
|
8
|
+
serverUrl?: string;
|
|
9
|
+
attempt?: number;
|
|
10
|
+
}
|
|
11
|
+
export interface QueryResultContext extends QueryContext {
|
|
12
|
+
duration: number;
|
|
13
|
+
result?: RDAPResponse;
|
|
14
|
+
error?: Error;
|
|
15
|
+
fromCache: boolean;
|
|
16
|
+
}
|
|
17
|
+
export interface HookFn<T = void> {
|
|
18
|
+
(context: T): Promise<void> | void;
|
|
19
|
+
}
|
|
20
|
+
export interface MiddlewareOptions {
|
|
21
|
+
beforeQuery?: HookFn<QueryContext>;
|
|
22
|
+
afterQuery?: HookFn<QueryResultContext>;
|
|
23
|
+
onError?: HookFn<QueryResultContext>;
|
|
24
|
+
onCacheHit?: HookFn<QueryContext>;
|
|
25
|
+
onCacheMiss?: HookFn<QueryContext>;
|
|
26
|
+
onRetry?: HookFn<QueryContext & {
|
|
27
|
+
attempt: number;
|
|
28
|
+
delay: number;
|
|
29
|
+
}>;
|
|
30
|
+
}
|
|
31
|
+
export declare class MiddlewareManager {
|
|
32
|
+
private hooks;
|
|
33
|
+
constructor(hooks?: MiddlewareOptions);
|
|
34
|
+
private safeRun;
|
|
35
|
+
runBeforeQuery(ctx: QueryContext): Promise<void>;
|
|
36
|
+
runAfterQuery(ctx: QueryResultContext): Promise<void>;
|
|
37
|
+
runOnError(ctx: QueryResultContext): Promise<void>;
|
|
38
|
+
runOnCacheHit(ctx: QueryContext): Promise<void>;
|
|
39
|
+
runOnCacheMiss(ctx: QueryContext): Promise<void>;
|
|
40
|
+
runOnRetry(ctx: QueryContext & {
|
|
41
|
+
attempt: number;
|
|
42
|
+
delay: number;
|
|
43
|
+
}): Promise<void>;
|
|
44
|
+
use(hooks: Partial<MiddlewareOptions>): void;
|
|
45
|
+
clear(): void;
|
|
46
|
+
getRegisteredHooks(): string[];
|
|
47
|
+
}
|
|
48
|
+
//# sourceMappingURL=MiddlewareHooks.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"MiddlewareHooks.d.ts","sourceRoot":"","sources":["../../../src/application/hooks/MiddlewareHooks.ts"],"names":[],"mappings":"AAKA,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,8BAA8B,CAAC;AAKjE,MAAM,WAAW,YAAY;IAC3B,SAAS,EAAE,QAAQ,GAAG,IAAI,GAAG,KAAK,GAAG,YAAY,GAAG,QAAQ,CAAC;IAC7D,KAAK,EAAE,MAAM,CAAC;IACd,UAAU,EAAE,MAAM,CAAC;IACnB,SAAS,EAAE,MAAM,CAAC;IAClB,MAAM,CAAC,EAAE,OAAO,CAAC;IACjB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,OAAO,CAAC,EAAE,MAAM,CAAC;CAClB;AAKD,MAAM,WAAW,kBAAmB,SAAQ,YAAY;IACtD,QAAQ,EAAE,MAAM,CAAC;IACjB,MAAM,CAAC,EAAE,YAAY,CAAC;IACtB,KAAK,CAAC,EAAE,KAAK,CAAC;IACd,SAAS,EAAE,OAAO,CAAC;CACpB;AAKD,MAAM,WAAW,MAAM,CAAC,CAAC,GAAG,IAAI;IAC9B,CAAC,OAAO,EAAE,CAAC,GAAG,OAAO,CAAC,IAAI,CAAC,GAAG,IAAI,CAAC;CACpC;AAKD,MAAM,WAAW,iBAAiB;IAEhC,WAAW,CAAC,EAAE,MAAM,CAAC,YAAY,CAAC,CAAC;IAEnC,UAAU,CAAC,EAAE,MAAM,CAAC,kBAAkB,CAAC,CAAC;IAExC,OAAO,CAAC,EAAE,MAAM,CAAC,kBAAkB,CAAC,CAAC;IAErC,UAAU,CAAC,EAAE,MAAM,CAAC,YAAY,CAAC,CAAC;IAElC,WAAW,CAAC,EAAE,MAAM,CAAC,YAAY,CAAC,CAAC;IAEnC,OAAO,CAAC,EAAE,MAAM,CAAC,YAAY,GAAG;QAAE,OAAO,EAAE,MAAM,CAAC;QAAC,KAAK,EAAE,MAAM,CAAA;KAAE,CAAC,CAAC;CACrE;AAMD,qBAAa,iBAAiB;IAC5B,OAAO,CAAC,KAAK,CAAoB;gBAErB,KAAK,CAAC,EAAE,iBAAiB;YAMvB,OAAO;IAcf,cAAc,CAAC,GAAG,EAAE,YAAY,GAAG,OAAO,CAAC,IAAI,CAAC;IAIhD,aAAa,CAAC,GAAG,EAAE,kBAAkB,GAAG,OAAO,CAAC,IAAI,CAAC;IAIrD,UAAU,CAAC,GAAG,EAAE,kBAAkB,GAAG,OAAO,CAAC,IAAI,CAAC;IAIlD,aAAa,CAAC,GAAG,EAAE,YAAY,GAAG,OAAO,CAAC,IAAI,CAAC;IAI/C,cAAc,CAAC,GAAG,EAAE,YAAY,GAAG,OAAO,CAAC,IAAI,CAAC;IAIhD,UAAU,CACd,GAAG,EAAE,YAAY,GAAG;QAAE,OAAO,EAAE,MAAM,CAAC;QAAC,KAAK,EAAE,MAAM,CAAA;KAAE,GACrD,OAAO,CAAC,IAAI,CAAC;IAUhB,GAAG,CAAC,KAAK,EAAE,OAAO,CAAC,iBAAiB,CAAC,GAAG,IAAI;IAK5C,KAAK,IAAI,IAAI;IAKb,kBAAkB,IAAI,MAAM,EAAE;CAK/B"}
|
|
@@ -0,0 +1,46 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.MiddlewareManager = void 0;
|
|
4
|
+
class MiddlewareManager {
|
|
5
|
+
constructor(hooks) {
|
|
6
|
+
this.hooks = hooks ?? {};
|
|
7
|
+
}
|
|
8
|
+
async safeRun(fn, ctx) {
|
|
9
|
+
if (!fn)
|
|
10
|
+
return;
|
|
11
|
+
try {
|
|
12
|
+
await fn(ctx);
|
|
13
|
+
}
|
|
14
|
+
catch {
|
|
15
|
+
}
|
|
16
|
+
}
|
|
17
|
+
async runBeforeQuery(ctx) {
|
|
18
|
+
await this.safeRun(this.hooks.beforeQuery, ctx);
|
|
19
|
+
}
|
|
20
|
+
async runAfterQuery(ctx) {
|
|
21
|
+
await this.safeRun(this.hooks.afterQuery, ctx);
|
|
22
|
+
}
|
|
23
|
+
async runOnError(ctx) {
|
|
24
|
+
await this.safeRun(this.hooks.onError, ctx);
|
|
25
|
+
}
|
|
26
|
+
async runOnCacheHit(ctx) {
|
|
27
|
+
await this.safeRun(this.hooks.onCacheHit, ctx);
|
|
28
|
+
}
|
|
29
|
+
async runOnCacheMiss(ctx) {
|
|
30
|
+
await this.safeRun(this.hooks.onCacheMiss, ctx);
|
|
31
|
+
}
|
|
32
|
+
async runOnRetry(ctx) {
|
|
33
|
+
await this.safeRun(this.hooks.onRetry, ctx);
|
|
34
|
+
}
|
|
35
|
+
use(hooks) {
|
|
36
|
+
this.hooks = { ...this.hooks, ...hooks };
|
|
37
|
+
}
|
|
38
|
+
clear() {
|
|
39
|
+
this.hooks = {};
|
|
40
|
+
}
|
|
41
|
+
getRegisteredHooks() {
|
|
42
|
+
return Object.keys(this.hooks).filter((k) => this.hooks[k] !== undefined);
|
|
43
|
+
}
|
|
44
|
+
}
|
|
45
|
+
exports.MiddlewareManager = MiddlewareManager;
|
|
46
|
+
//# sourceMappingURL=MiddlewareHooks.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"MiddlewareHooks.js","sourceRoot":"","sources":["../../../src/application/hooks/MiddlewareHooks.ts"],"names":[],"mappings":";;;AA2DA,MAAa,iBAAiB;IAG5B,YAAY,KAAyB;QACnC,IAAI,CAAC,KAAK,GAAG,KAAK,IAAI,EAAE,CAAC;IAC3B,CAAC;IAIO,KAAK,CAAC,OAAO,CACnB,EAAyB,EACzB,GAAM;QAEN,IAAI,CAAC,EAAE;YAAE,OAAO;QAChB,IAAI,CAAC;YACH,MAAM,EAAE,CAAC,GAAG,CAAC,CAAC;QAChB,CAAC;QAAC,MAAM,CAAC;QAET,CAAC;IACH,CAAC;IAID,KAAK,CAAC,cAAc,CAAC,GAAiB;QACpC,MAAM,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,KAAK,CAAC,WAAW,EAAE,GAAG,CAAC,CAAC;IAClD,CAAC;IAED,KAAK,CAAC,aAAa,CAAC,GAAuB;QACzC,MAAM,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,KAAK,CAAC,UAAU,EAAE,GAAG,CAAC,CAAC;IACjD,CAAC;IAED,KAAK,CAAC,UAAU,CAAC,GAAuB;QACtC,MAAM,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,KAAK,CAAC,OAAO,EAAE,GAAG,CAAC,CAAC;IAC9C,CAAC;IAED,KAAK,CAAC,aAAa,CAAC,GAAiB;QACnC,MAAM,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,KAAK,CAAC,UAAU,EAAE,GAAG,CAAC,CAAC;IACjD,CAAC;IAED,KAAK,CAAC,cAAc,CAAC,GAAiB;QACpC,MAAM,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,KAAK,CAAC,WAAW,EAAE,GAAG,CAAC,CAAC;IAClD,CAAC;IAED,KAAK,CAAC,UAAU,CACd,GAAsD;QAEtD,MAAM,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,KAAK,CAAC,OAAO,EAAE,GAAG,CAAC,CAAC;IAC9C,CAAC;IAQD,GAAG,CAAC,KAAiC;QACnC,IAAI,CAAC,KAAK,GAAG,EAAE,GAAG,IAAI,CAAC,KAAK,EAAE,GAAG,KAAK,EAAE,CAAC;IAC3C,CAAC;IAGD,KAAK;QACH,IAAI,CAAC,KAAK,GAAG,EAAE,CAAC;IAClB,CAAC;IAGD,kBAAkB;QAChB,OAAQ,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,KAAK,CAAoC,CAAC,MAAM,CACvE,CAAC,CAAC,EAAE,EAAE,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,KAAK,SAAS,CACnC,CAAC;IACJ,CAAC;CACF;AAtED,8CAsEC"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"BatchProcessor.d.ts","sourceRoot":"","sources":["../../../src/application/services/BatchProcessor.ts"],"names":[],"mappings":"AAKA,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,sBAAsB,CAAC;AACvD,OAAO,KAAK,EAAE,gBAAgB,EAAe,gBAAgB,EAAE,MAAM,6BAA6B,CAAC;AAKnG,MAAM,WAAW,iBAAiB,CAAC,CAAC,SAAS,gBAAgB,GAAG,gBAAgB;IAC9E,IAAI,EAAE,CAAC,CAAC;IACR,KAAK,EAAE,MAAM,CAAC;IACd,EAAE,CAAC,EAAE,MAAM,CAAC;
|
|
1
|
+
{"version":3,"file":"BatchProcessor.d.ts","sourceRoot":"","sources":["../../../src/application/services/BatchProcessor.ts"],"names":[],"mappings":"AAKA,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,sBAAsB,CAAC;AACvD,OAAO,KAAK,EAAE,gBAAgB,EAAe,gBAAgB,EAAE,MAAM,6BAA6B,CAAC;AAKnG,MAAM,WAAW,iBAAiB,CAAC,CAAC,SAAS,gBAAgB,GAAG,gBAAgB;IAC9E,IAAI,EAAE,CAAC,CAAC;IACR,KAAK,EAAE,MAAM,CAAC;IACd,EAAE,CAAC,EAAE,MAAM,CAAC;IAEZ,SAAS,CAAC,EAAE,MAAM,CAAC;CACpB;AAKD,MAAM,WAAW,YAAY;IAE3B,WAAW,CAAC,EAAE,MAAM,CAAC;IAErB,eAAe,CAAC,EAAE,OAAO,CAAC;IAE1B,OAAO,CAAC,EAAE,MAAM,CAAC;CAClB;AAKD,qBAAa,cAAc;IACzB,OAAO,CAAC,QAAQ,CAAC,MAAM,CAAa;gBAExB,MAAM,EAAE,UAAU;IAOxB,YAAY,CAAC,CAAC,SAAS,gBAAgB,EAC3C,QAAQ,EAAE,iBAAiB,CAAC,CAAC,CAAC,EAAE,EAChC,OAAO,GAAE,YAAiB,GACzB,OAAO,CAAC,gBAAgB,CAAC,CAAC,CAAC,EAAE,CAAC;IAwF3B,uBAAuB,CAAC,CAAC,SAAS,gBAAgB,EACtD,QAAQ,EAAE,iBAAiB,CAAC,CAAC,CAAC,EAAE,EAChC,SAAS,EAAE,MAAM,EACjB,OAAO,GAAE,IAAI,CAAC,YAAY,EAAE,SAAS,CAAM,GAC1C,OAAO,CAAC,gBAAgB,CAAC,CAAC,CAAC,EAAE,CAAC;IAYjC,mBAAmB,CAAC,CAAC,SAAS,gBAAgB,EAC5C,OAAO,EAAE,gBAAgB,CAAC,CAAC,CAAC,EAAE,GAC7B;QACD,KAAK,EAAE,MAAM,CAAC;QACd,UAAU,EAAE,MAAM,CAAC;QACnB,MAAM,EAAE,MAAM,CAAC;QACf,eAAe,EAAE,MAAM,CAAC;QACxB,aAAa,EAAE,MAAM,CAAC;QACtB,WAAW,EAAE,MAAM,CAAC;KACrB;CAeF"}
|
|
@@ -24,6 +24,15 @@ class BatchProcessor {
|
|
|
24
24
|
case 'asn':
|
|
25
25
|
result = await this.client.asn(request.query);
|
|
26
26
|
break;
|
|
27
|
+
case 'nameserver':
|
|
28
|
+
result = await this.client.nameserver(request.query);
|
|
29
|
+
break;
|
|
30
|
+
case 'entity':
|
|
31
|
+
if (!request.serverUrl) {
|
|
32
|
+
throw new Error(`Entity queries require a serverUrl. Set { type: 'entity', query: '${request.query}', serverUrl: 'https://...' }`);
|
|
33
|
+
}
|
|
34
|
+
result = await this.client.entity(request.query, request.serverUrl);
|
|
35
|
+
break;
|
|
27
36
|
default:
|
|
28
37
|
throw new Error(`Unknown query type: ${request.type}`);
|
|
29
38
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"BatchProcessor.js","sourceRoot":"","sources":["../../../src/application/services/BatchProcessor.ts"],"names":[],"mappings":";;;
|
|
1
|
+
{"version":3,"file":"BatchProcessor.js","sourceRoot":"","sources":["../../../src/application/services/BatchProcessor.ts"],"names":[],"mappings":"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"}
|
|
@@ -4,7 +4,9 @@ import type { RateLimiter } from '../../infrastructure/http/RateLimiter';
|
|
|
4
4
|
import type { PIIRedactor } from '../../infrastructure/security';
|
|
5
5
|
import type { MetricsCollector } from '../../infrastructure/monitoring/MetricsCollector';
|
|
6
6
|
import type { Logger } from '../../infrastructure/logging/Logger';
|
|
7
|
-
import type { DomainResponse, IPResponse, ASNResponse } from '../../shared/types';
|
|
7
|
+
import type { DomainResponse, IPResponse, ASNResponse, NameserverResponse, EntityResponse } from '../../shared/types';
|
|
8
|
+
import type { MiddlewareManager } from '../hooks/MiddlewareHooks';
|
|
9
|
+
import type { QueryDeduplicator } from '../deduplication/QueryDeduplicator';
|
|
8
10
|
export interface QueryOrchestratorConfig {
|
|
9
11
|
cache: CacheManager;
|
|
10
12
|
bootstrap: BootstrapDiscovery;
|
|
@@ -16,6 +18,15 @@ export interface QueryOrchestratorConfig {
|
|
|
16
18
|
rateLimiter?: RateLimiter;
|
|
17
19
|
metricsCollector?: MetricsCollector;
|
|
18
20
|
logger?: Logger;
|
|
21
|
+
middleware?: MiddlewareManager;
|
|
22
|
+
deduplicator?: QueryDeduplicator;
|
|
23
|
+
debugEnabled: boolean;
|
|
24
|
+
debugLogger?: {
|
|
25
|
+
debug: (message: string, metadata?: Record<string, unknown>) => void;
|
|
26
|
+
info: (message: string, metadata?: Record<string, unknown>) => void;
|
|
27
|
+
warn: (message: string, metadata?: Record<string, unknown>) => void;
|
|
28
|
+
error: (message: string, metadata?: Record<string, unknown>) => void;
|
|
29
|
+
};
|
|
19
30
|
}
|
|
20
31
|
export declare class QueryOrchestrator {
|
|
21
32
|
private readonly config;
|
|
@@ -23,5 +34,7 @@ export declare class QueryOrchestrator {
|
|
|
23
34
|
queryDomain(domain: string): Promise<DomainResponse>;
|
|
24
35
|
queryIP(ip: string): Promise<IPResponse>;
|
|
25
36
|
queryASN(asn: string | number): Promise<ASNResponse>;
|
|
37
|
+
queryNameserver(nameserver: string): Promise<NameserverResponse>;
|
|
38
|
+
queryEntity(handle: string, serverUrl: string): Promise<EntityResponse>;
|
|
26
39
|
}
|
|
27
40
|
//# sourceMappingURL=QueryOrchestrator.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"QueryOrchestrator.d.ts","sourceRoot":"","sources":["../../../src/application/services/QueryOrchestrator.ts"],"names":[],"mappings":"AAMA,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,4BAA4B,CAAC;AAC/D,OAAO,KAAK,EAAE,kBAAkB,EAAE,OAAO,EAAE,UAAU,EAAE,MAAM,2BAA2B,CAAC;AACzF,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,uCAAuC,CAAC;AACzE,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,+BAA+B,CAAC;AACjE,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,kDAAkD,CAAC;AACzF,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,qCAAqC,CAAC;AAClE,OAAO,KAAK,EAAE,cAAc,EAAE,UAAU,EAAE,WAAW,EAAE,MAAM,oBAAoB,CAAC;
|
|
1
|
+
{"version":3,"file":"QueryOrchestrator.d.ts","sourceRoot":"","sources":["../../../src/application/services/QueryOrchestrator.ts"],"names":[],"mappings":"AAMA,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,4BAA4B,CAAC;AAC/D,OAAO,KAAK,EAAE,kBAAkB,EAAE,OAAO,EAAE,UAAU,EAAE,MAAM,2BAA2B,CAAC;AACzF,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,uCAAuC,CAAC;AACzE,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,+BAA+B,CAAC;AACjE,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,kDAAkD,CAAC;AACzF,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,qCAAqC,CAAC;AAClE,OAAO,KAAK,EAAE,cAAc,EAAE,UAAU,EAAE,WAAW,EAAE,kBAAkB,EAAE,cAAc,EAAE,MAAM,oBAAoB,CAAC;AActH,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,0BAA0B,CAAC;AAClE,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,oCAAoC,CAAC;AAK5E,MAAM,WAAW,uBAAuB;IACtC,KAAK,EAAE,YAAY,CAAC;IACpB,SAAS,EAAE,kBAAkB,CAAC;IAC9B,OAAO,EAAE,OAAO,CAAC;IACjB,UAAU,EAAE,UAAU,CAAC;IACvB,WAAW,EAAE,WAAW,CAAC;IACzB,UAAU,EAAE,OAAO,CAAC;IAEpB,cAAc,EAAE,CAAC,GAAG,EAAE,MAAM,KAAK,OAAO,CAAC,GAAG,CAAC,CAAC;IAC9C,WAAW,CAAC,EAAE,WAAW,CAAC;IAC1B,gBAAgB,CAAC,EAAE,gBAAgB,CAAC;IACpC,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,UAAU,CAAC,EAAE,iBAAiB,CAAC;IAC/B,YAAY,CAAC,EAAE,iBAAiB,CAAC;IACjC,YAAY,EAAE,OAAO,CAAC;IACtB,WAAW,CAAC,EAAE;QACZ,KAAK,EAAE,CAAC,OAAO,EAAE,MAAM,EAAE,QAAQ,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,KAAK,IAAI,CAAC;QACrE,IAAI,EAAE,CAAC,OAAO,EAAE,MAAM,EAAE,QAAQ,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,KAAK,IAAI,CAAC;QACpE,IAAI,EAAE,CAAC,OAAO,EAAE,MAAM,EAAE,QAAQ,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,KAAK,IAAI,CAAC;QACpE,KAAK,EAAE,CAAC,OAAO,EAAE,MAAM,EAAE,QAAQ,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,KAAK,IAAI,CAAC;KACtE,CAAC;CACH;AAMD,qBAAa,iBAAiB;IAC5B,OAAO,CAAC,QAAQ,CAAC,MAAM,CAA0B;gBAErC,MAAM,EAAE,uBAAuB;IAOrC,WAAW,CAAC,MAAM,EAAE,MAAM,GAAG,OAAO,CAAC,cAAc,CAAC;IAkMpD,OAAO,CAAC,EAAE,EAAE,MAAM,GAAG,OAAO,CAAC,UAAU,CAAC;IAqMxC,QAAQ,CAAC,GAAG,EAAE,MAAM,GAAG,MAAM,GAAG,OAAO,CAAC,WAAW,CAAC;IAmMpD,eAAe,CAAC,UAAU,EAAE,MAAM,GAAG,OAAO,CAAC,kBAAkB,CAAC;IAsIhE,WAAW,CAAC,MAAM,EAAE,MAAM,EAAE,SAAS,EAAE,MAAM,GAAG,OAAO,CAAC,cAAc,CAAC;CA8H9E"}
|