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
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/infrastructure/cache/index.ts"],"names":[],"mappings":";;;AAKA,iDAAgD;AAAvC,8GAAA,aAAa,OAAA;AACtB,+CAA2D;AAAlD,4GAAA,YAAY,OAAA"}
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/infrastructure/cache/index.ts"],"names":[],"mappings":";;;AAKA,iDAAgD;AAAvC,8GAAA,aAAa,OAAA;AACtB,+CAA2D;AAAlD,4GAAA,YAAY,OAAA;AACrB,2CAAwF;AAA/E,wGAAA,UAAU,OAAA"}
|
|
@@ -9,6 +9,7 @@ export declare class BootstrapDiscovery {
|
|
|
9
9
|
discoverDomain(domain: string): Promise<string>;
|
|
10
10
|
discoverIPv4(ip: string): Promise<string>;
|
|
11
11
|
discoverIPv6(ip: string): Promise<string>;
|
|
12
|
+
discoverNameserver(nameserver: string): Promise<string>;
|
|
12
13
|
discoverASN(asn: number): Promise<string>;
|
|
13
14
|
private getBootstrapData;
|
|
14
15
|
private ipMatchesCIDR;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"BootstrapDiscovery.d.ts","sourceRoot":"","sources":["../../../src/infrastructure/http/BootstrapDiscovery.ts"],"names":[],"mappings":"AAUA,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AAuBpC,qBAAa,kBAAkB;IAC7B,OAAO,CAAC,QAAQ,CAAC,OAAO,CAAS;IACjC,OAAO,CAAC,QAAQ,CAAC,OAAO,CAAU;IAClC,OAAO,CAAC,KAAK,CAAgC;IAC7C,OAAO,CAAC,WAAW,CAAsB;IACzC,OAAO,CAAC,QAAQ,CAAC,QAAQ,CAAoB;gBAEjC,OAAO,GAAE,MAAqC,EAAE,OAAO,CAAC,EAAE,OAAO;IAUvE,cAAc,CAAC,MAAM,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC;IAmB/C,YAAY,CAAC,EAAE,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC;IAqBzC,YAAY,CAAC,EAAE,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC;
|
|
1
|
+
{"version":3,"file":"BootstrapDiscovery.d.ts","sourceRoot":"","sources":["../../../src/infrastructure/http/BootstrapDiscovery.ts"],"names":[],"mappings":"AAUA,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AAuBpC,qBAAa,kBAAkB;IAC7B,OAAO,CAAC,QAAQ,CAAC,OAAO,CAAS;IACjC,OAAO,CAAC,QAAQ,CAAC,OAAO,CAAU;IAClC,OAAO,CAAC,KAAK,CAAgC;IAC7C,OAAO,CAAC,WAAW,CAAsB;IACzC,OAAO,CAAC,QAAQ,CAAC,QAAQ,CAAoB;gBAEjC,OAAO,GAAE,MAAqC,EAAE,OAAO,CAAC,EAAE,OAAO;IAUvE,cAAc,CAAC,MAAM,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC;IAmB/C,YAAY,CAAC,EAAE,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC;IAqBzC,YAAY,CAAC,EAAE,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC;IAuBzC,kBAAkB,CAAC,UAAU,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC;IAyBvD,WAAW,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC;YA6BjC,gBAAgB;IA+C9B,OAAO,CAAC,aAAa;IAwBrB,UAAU,IAAI,IAAI;IAQlB,aAAa,IAAI;QACf,IAAI,EAAE,MAAM,CAAC;QACb,KAAK,EAAE,MAAM,EAAE,CAAC;KACjB;CAMF"}
|
|
@@ -55,6 +55,25 @@ class BootstrapDiscovery {
|
|
|
55
55
|
}
|
|
56
56
|
throw new errors_1.NoServerFoundError(`No RDAP server found for IPv6: ${ip}`, { ip });
|
|
57
57
|
}
|
|
58
|
+
async discoverNameserver(nameserver) {
|
|
59
|
+
const tld = (0, helpers_1.extractTLD)(nameserver);
|
|
60
|
+
const entries = await this.getBootstrapData('dns');
|
|
61
|
+
for (const entry of entries) {
|
|
62
|
+
if (entry.patterns.includes(tld.toLowerCase())) {
|
|
63
|
+
if (entry.servers.length === 0 || !entry.servers[0]) {
|
|
64
|
+
throw new errors_1.NoServerFoundError(`No RDAP server found for nameserver TLD: ${tld}`, {
|
|
65
|
+
nameserver,
|
|
66
|
+
tld,
|
|
67
|
+
});
|
|
68
|
+
}
|
|
69
|
+
return entry.servers[0];
|
|
70
|
+
}
|
|
71
|
+
}
|
|
72
|
+
throw new errors_1.NoServerFoundError(`No RDAP server found for nameserver: ${nameserver}`, {
|
|
73
|
+
nameserver,
|
|
74
|
+
tld,
|
|
75
|
+
});
|
|
76
|
+
}
|
|
58
77
|
async discoverASN(asn) {
|
|
59
78
|
const entries = await this.getBootstrapData('asn');
|
|
60
79
|
for (const entry of entries) {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"BootstrapDiscovery.js","sourceRoot":"","sources":["../../../src/infrastructure/http/BootstrapDiscovery.ts"],"names":[],"mappings":";;;;AAKA,0DAAoC;AAEpC,gDAAuE;AACvE,wDAAwD;AAExD,uCAAoC;AAuBpC,MAAa,kBAAkB;IAO7B,YAAY,UAAkB,4BAA4B,EAAE,OAAiB;QAF5D,aAAQ,GAAW,QAAQ,CAAC;QAG3C,IAAI,CAAC,OAAO,GAAG,OAAO,CAAC;QACvB,IAAI,CAAC,OAAO,GAAG,OAAO,IAAI,IAAI,iBAAO,EAAE,CAAC;QACxC,IAAI,CAAC,KAAK,GAAG,IAAI,GAAG,EAAE,CAAC;QACvB,IAAI,CAAC,WAAW,GAAG,IAAI,GAAG,EAAE,CAAC;IAC/B,CAAC;IAKD,KAAK,CAAC,cAAc,CAAC,MAAc;QACjC,MAAM,GAAG,GAAG,IAAA,oBAAU,EAAC,MAAM,CAAC,CAAC;QAC/B,MAAM,OAAO,GAAG,MAAM,IAAI,CAAC,gBAAgB,CAAC,KAAK,CAAC,CAAC;QAEnD,KAAK,MAAM,KAAK,IAAI,OAAO,EAAE,CAAC;YAC5B,IAAI,KAAK,CAAC,QAAQ,CAAC,QAAQ,CAAC,GAAG,CAAC,WAAW,EAAE,CAAC,EAAE,CAAC;gBAC/C,IAAI,KAAK,CAAC,OAAO,CAAC,MAAM,KAAK,CAAC,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE,CAAC;oBACpD,MAAM,IAAI,2BAAkB,CAAC,iCAAiC,GAAG,EAAE,EAAE,EAAE,MAAM,EAAE,GAAG,EAAE,CAAC,CAAC;gBACxF,CAAC;gBACD,OAAO,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC;YAC1B,CAAC;QACH,CAAC;QAED,MAAM,IAAI,2BAAkB,CAAC,oCAAoC,MAAM,EAAE,EAAE,EAAE,MAAM,EAAE,GAAG,EAAE,CAAC,CAAC;IAC9F,CAAC;IAKD,KAAK,CAAC,YAAY,CAAC,EAAU;QAC3B,MAAM,OAAO,GAAG,MAAM,IAAI,CAAC,gBAAgB,CAAC,MAAM,CAAC,CAAC;QAGpD,KAAK,MAAM,KAAK,IAAI,OAAO,EAAE,CAAC;YAC5B,KAAK,MAAM,OAAO,IAAI,KAAK,CAAC,QAAQ,EAAE,CAAC;gBACrC,IAAI,IAAI,CAAC,aAAa,CAAC,EAAE,EAAE,OAAO,CAAC,EAAE,CAAC;oBACpC,IAAI,KAAK,CAAC,OAAO,CAAC,MAAM,KAAK,CAAC,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE,CAAC;wBACpD,MAAM,IAAI,2BAAkB,CAAC,kCAAkC,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,OAAO,EAAE,CAAC,CAAC;oBACxF,CAAC;oBACD,OAAO,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC;gBAC1B,CAAC;YACH,CAAC;QACH,CAAC;QAED,MAAM,IAAI,2BAAkB,CAAC,kCAAkC,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,CAAC,CAAC;IAC/E,CAAC;IAKD,KAAK,CAAC,YAAY,CAAC,EAAU;QAC3B,MAAM,OAAO,GAAG,MAAM,IAAI,CAAC,gBAAgB,CAAC,MAAM,CAAC,CAAC;QAGpD,KAAK,MAAM,KAAK,IAAI,OAAO,EAAE,CAAC;YAC5B,KAAK,MAAM,OAAO,IAAI,KAAK,CAAC,QAAQ,EAAE,CAAC;gBACrC,IAAI,IAAI,CAAC,aAAa,CAAC,EAAE,EAAE,OAAO,CAAC,EAAE,CAAC;oBACpC,IAAI,KAAK,CAAC,OAAO,CAAC,MAAM,KAAK,CAAC,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE,CAAC;wBACpD,MAAM,IAAI,2BAAkB,CAAC,kCAAkC,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,OAAO,EAAE,CAAC,CAAC;oBACxF,CAAC;oBACD,OAAO,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC;gBAC1B,CAAC;YACH,CAAC;QACH,CAAC;QAED,MAAM,IAAI,2BAAkB,CAAC,kCAAkC,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,CAAC,CAAC;IAC/E,CAAC;IAKD,KAAK,CAAC,WAAW,CAAC,GAAW;QAC3B,MAAM,OAAO,GAAG,MAAM,IAAI,CAAC,gBAAgB,CAAC,KAAK,CAAC,CAAC;QAEnD,KAAK,MAAM,KAAK,IAAI,OAAO,EAAE,CAAC;YAC5B,KAAK,MAAM,OAAO,IAAI,KAAK,CAAC,QAAQ,EAAE,CAAC;gBACrC,MAAM,KAAK,GAAG,OAAO,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,QAAQ,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC;gBAC7D,MAAM,KAAK,GAAG,KAAK,CAAC,CAAC,CAAC,CAAC;gBACvB,MAAM,GAAG,GAAG,KAAK,CAAC,CAAC,CAAC,CAAC;gBAGrB,IAAI,KAAK,KAAK,SAAS,IAAI,GAAG,KAAK,SAAS,IAAI,KAAK,CAAC,KAAK,CAAC,IAAI,KAAK,CAAC,GAAG,CAAC,EAAE,CAAC;oBAC3E,SAAS;gBACX,CAAC;gBAED,IAAI,GAAG,IAAI,KAAK,IAAI,GAAG,IAAI,GAAG,EAAE,CAAC;oBAC/B,IAAI,KAAK,CAAC,OAAO,CAAC,MAAM,KAAK,CAAC,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE,CAAC;wBACpD,MAAM,IAAI,2BAAkB,CAAC,iCAAiC,GAAG,EAAE,EAAE,EAAE,GAAG,EAAE,OAAO,EAAE,CAAC,CAAC;oBACzF,CAAC;oBACD,OAAO,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC;gBAC1B,CAAC;YACH,CAAC;QACH,CAAC;QAED,MAAM,IAAI,2BAAkB,CAAC,iCAAiC,GAAG,EAAE,EAAE,EAAE,GAAG,EAAE,CAAC,CAAC;IAChF,CAAC;IAKO,KAAK,CAAC,gBAAgB,CAAC,IAAY;QAEzC,MAAM,MAAM,GAAG,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC;QACpC,MAAM,MAAM,GAAG,IAAI,CAAC,WAAW,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC;QAE1C,IAAI,MAAM,IAAI,MAAM,IAAI,IAAI,CAAC,GAAG,EAAE,GAAG,MAAM,EAAE,CAAC;YAC5C,OAAO,MAAM,CAAC;QAChB,CAAC;QAGD,MAAM,GAAG,GAAG,GAAG,IAAI,CAAC,OAAO,IAAI,IAAI,OAAO,CAAC;QAE3C,IAAI,QAAa,CAAC;QAClB,IAAI,CAAC;YACH,QAAQ,GAAG,MAAM,IAAI,CAAC,OAAO,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;QAC3C,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACf,MAAM,IAAI,qBAAY,CAAC,sCAAsC,IAAI,EAAE,EAAE,SAAS,EAAE;gBAC9E,IAAI;gBACJ,GAAG;gBACH,aAAa,EAAE,KAAK;aACrB,CAAC,CAAC;QACL,CAAC;QAGD,MAAM,aAAa,GAAG,QAA6B,CAAC;QAEpD,IAAI,CAAC,aAAa,CAAC,QAAQ,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,aAAa,CAAC,QAAQ,CAAC,EAAE,CAAC;YACtE,MAAM,IAAI,qBAAY,CAAC,qCAAqC,IAAI,EAAE,EAAE,SAAS,EAAE,EAAE,IAAI,EAAE,GAAG,EAAE,CAAC,CAAC;QAChG,CAAC;QAGD,MAAM,OAAO,GAAqB,aAAa,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAC,OAAO,EAAE,EAAE,CAAC,CAAC;YACzE,QAAQ,EAAE,OAAO,CAAC,CAAC,CAAC;YACpB,OAAO,EAAE,OAAO,CAAC,CAAC,CAAC;SACpB,CAAC,CAAC,CAAC;QAGJ,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,IAAI,EAAE,OAAO,CAAC,CAAC;QAC9B,IAAI,CAAC,WAAW,CAAC,GAAG,CAAC,IAAI,EAAE,IAAI,CAAC,GAAG,EAAE,GAAG,IAAI,CAAC,QAAQ,CAAC,CAAC;QAEvD,OAAO,OAAO,CAAC;IACjB,CAAC;IAMO,aAAa,CAAC,EAAU,EAAE,IAAY;QAC5C,IAAI,CAAC;YAEH,IAAI,CAAC,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,EAAE,CAAC;gBACxB,OAAO,EAAE,KAAK,IAAI,CAAC;YACrB,CAAC;YAGD,MAAM,IAAI,GAAG,MAAM,CAAC,OAAO,CAAC,EAAE,CAAC,CAAC;YAGhC,MAAM,KAAK,GAAG,MAAM,CAAC,SAAS,CAAC,IAAI,CAAC,CAAC;YAGrC,OAAO,IAAI,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC;QAC3B,CAAC;QAAC,MAAM,CAAC;YAEP,OAAO,KAAK,CAAC;QACf,CAAC;IACH,CAAC;IAKD,UAAU;QACR,IAAI,CAAC,KAAK,CAAC,KAAK,EAAE,CAAC;QACnB,IAAI,CAAC,WAAW,CAAC,KAAK,EAAE,CAAC;IAC3B,CAAC;IAKD,aAAa;QAIX,OAAO;YACL,IAAI,EAAE,IAAI,CAAC,KAAK,CAAC,IAAI;YACrB,KAAK,EAAE,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,IAAI,EAAE,CAAC;SACrC,CAAC;IACJ,CAAC;CACF;
|
|
1
|
+
{"version":3,"file":"BootstrapDiscovery.js","sourceRoot":"","sources":["../../../src/infrastructure/http/BootstrapDiscovery.ts"],"names":[],"mappings":"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"}
|
|
@@ -8,6 +8,7 @@ export interface FetcherOptions {
|
|
|
8
8
|
followRedirects?: boolean;
|
|
9
9
|
maxRedirects?: number;
|
|
10
10
|
ssrfProtection?: SSRFProtection;
|
|
11
|
+
logRedirect?: (fromUrl: string, toUrl: string) => void;
|
|
11
12
|
}
|
|
12
13
|
export declare class Fetcher {
|
|
13
14
|
private readonly timeout;
|
|
@@ -16,6 +17,7 @@ export declare class Fetcher {
|
|
|
16
17
|
private readonly followRedirects;
|
|
17
18
|
private readonly maxRedirects;
|
|
18
19
|
private readonly ssrfProtection?;
|
|
20
|
+
private readonly logRedirect?;
|
|
19
21
|
constructor(options?: FetcherOptions);
|
|
20
22
|
fetch(url: string): Promise<RawRDAPResponse>;
|
|
21
23
|
private makeRequest;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Fetcher.d.ts","sourceRoot":"","sources":["../../../src/infrastructure/http/Fetcher.ts"],"names":[],"mappings":"AAKA,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,oBAAoB,CAAC;AAE1D,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,4BAA4B,CAAC;AAGjE,OAAO,EAAE,cAAc,EAAE,MAAM,4BAA4B,CAAC;AAM5D,MAAM,WAAW,cAAc;IAC7B,OAAO,CAAC,EAAE,cAAc,CAAC;IACzB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,OAAO,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IACjC,eAAe,CAAC,EAAE,OAAO,CAAC;IAC1B,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,cAAc,CAAC,EAAE,cAAc,CAAC;
|
|
1
|
+
{"version":3,"file":"Fetcher.d.ts","sourceRoot":"","sources":["../../../src/infrastructure/http/Fetcher.ts"],"names":[],"mappings":"AAKA,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,oBAAoB,CAAC;AAE1D,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,4BAA4B,CAAC;AAGjE,OAAO,EAAE,cAAc,EAAE,MAAM,4BAA4B,CAAC;AAM5D,MAAM,WAAW,cAAc;IAC7B,OAAO,CAAC,EAAE,cAAc,CAAC;IACzB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,OAAO,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IACjC,eAAe,CAAC,EAAE,OAAO,CAAC;IAC1B,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,cAAc,CAAC,EAAE,cAAc,CAAC;IAChC,WAAW,CAAC,EAAE,CAAC,OAAO,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,KAAK,IAAI,CAAC;CACxD;AAKD,qBAAa,OAAO;IAClB,OAAO,CAAC,QAAQ,CAAC,OAAO,CAA2B;IACnD,OAAO,CAAC,QAAQ,CAAC,SAAS,CAAS;IACnC,OAAO,CAAC,QAAQ,CAAC,OAAO,CAAyB;IACjD,OAAO,CAAC,QAAQ,CAAC,eAAe,CAAU;IAC1C,OAAO,CAAC,QAAQ,CAAC,YAAY,CAAS;IACtC,OAAO,CAAC,QAAQ,CAAC,cAAc,CAAC,CAAiB;IACjD,OAAO,CAAC,QAAQ,CAAC,WAAW,CAAC,CAA2C;gBAE5D,OAAO,GAAE,cAAmB;IAkBlC,KAAK,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAAC,eAAe,CAAC;YAyBpC,WAAW;IAgHzB,SAAS,IAAI;QACX,OAAO,EAAE,QAAQ,CAAC,cAAc,CAAC,CAAC;QAClC,SAAS,EAAE,MAAM,CAAC;QAClB,eAAe,EAAE,OAAO,CAAC;QACzB,YAAY,EAAE,MAAM,CAAC;KACtB;CAQF"}
|
|
@@ -10,11 +10,12 @@ class Fetcher {
|
|
|
10
10
|
request: options.timeout?.request || 10000,
|
|
11
11
|
dns: options.timeout?.dns || 3000,
|
|
12
12
|
};
|
|
13
|
-
this.userAgent = options.userAgent || 'RDAPify/0.1.
|
|
13
|
+
this.userAgent = options.userAgent || 'RDAPify/0.1.7 (https://rdapify.com)';
|
|
14
14
|
this.headers = options.headers || {};
|
|
15
15
|
this.followRedirects = options.followRedirects ?? true;
|
|
16
16
|
this.maxRedirects = options.maxRedirects || 5;
|
|
17
17
|
this.ssrfProtection = options.ssrfProtection;
|
|
18
|
+
this.logRedirect = options.logRedirect;
|
|
18
19
|
}
|
|
19
20
|
async fetch(url) {
|
|
20
21
|
if (this.ssrfProtection) {
|
|
@@ -25,7 +26,7 @@ class Fetcher {
|
|
|
25
26
|
return response;
|
|
26
27
|
}
|
|
27
28
|
catch (error) {
|
|
28
|
-
if (error instanceof errors_1.
|
|
29
|
+
if (error instanceof errors_1.RDAPifyError) {
|
|
29
30
|
throw error;
|
|
30
31
|
}
|
|
31
32
|
throw new errors_1.NetworkError(`Failed to fetch RDAP data: ${error instanceof Error ? error.message : 'Unknown error'}`, undefined, { url, originalError: error });
|
|
@@ -55,6 +56,7 @@ class Fetcher {
|
|
|
55
56
|
throw error;
|
|
56
57
|
}
|
|
57
58
|
if (response.status >= 300 && response.status < 400) {
|
|
59
|
+
const fromUrl = url;
|
|
58
60
|
if (!this.followRedirects) {
|
|
59
61
|
throw new errors_1.NetworkError(`Redirect not allowed (status: ${response.status})`, response.status, { url });
|
|
60
62
|
}
|
|
@@ -72,6 +74,7 @@ class Fetcher {
|
|
|
72
74
|
if (this.ssrfProtection) {
|
|
73
75
|
await this.ssrfProtection.validateUrl(redirectUrl);
|
|
74
76
|
}
|
|
77
|
+
this.logRedirect?.(fromUrl, redirectUrl);
|
|
75
78
|
return this.makeRequest(redirectUrl, redirectCount + 1);
|
|
76
79
|
}
|
|
77
80
|
if (!response.ok) {
|
|
@@ -102,7 +105,6 @@ class Fetcher {
|
|
|
102
105
|
if (!data || typeof data !== 'object') {
|
|
103
106
|
throw new errors_1.NetworkError('Invalid RDAP response: not an object', response.status, {
|
|
104
107
|
url,
|
|
105
|
-
data,
|
|
106
108
|
});
|
|
107
109
|
}
|
|
108
110
|
return data;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Fetcher.js","sourceRoot":"","sources":["../../../src/infrastructure/http/Fetcher.ts"],"names":[],"mappings":";;;AAMA,
|
|
1
|
+
{"version":3,"file":"Fetcher.js","sourceRoot":"","sources":["../../../src/infrastructure/http/Fetcher.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Normalizer.d.ts","sourceRoot":"","sources":["../../../src/infrastructure/http/Normalizer.ts"],"names":[],"mappings":"AAKA,OAAO,KAAK,EACV,eAAe,
|
|
1
|
+
{"version":3,"file":"Normalizer.d.ts","sourceRoot":"","sources":["../../../src/infrastructure/http/Normalizer.ts"],"names":[],"mappings":"AAKA,OAAO,KAAK,EACV,eAAe,EAMf,YAAY,EAGb,MAAM,oBAAoB,CAAC;AAM5B,qBAAa,UAAU;IAIrB,SAAS,CACP,GAAG,EAAE,eAAe,EACpB,KAAK,EAAE,MAAM,EACb,MAAM,EAAE,MAAM,EACd,MAAM,GAAE,OAAe,EACvB,UAAU,GAAE,OAAe,GAC1B,YAAY;IA+Bf,OAAO,CAAC,eAAe;IAqCvB,OAAO,CAAC,WAAW;IAuCnB,OAAO,CAAC,YAAY;IAsCpB,OAAO,CAAC,mBAAmB;IA0C3B,OAAO,CAAC,eAAe;IAmCvB,OAAO,CAAC,kBAAkB;IAmB1B,OAAO,CAAC,gBAAgB;IA+CxB,OAAO,CAAC,eAAe;CAWxB"}
|
|
@@ -15,6 +15,10 @@ class Normalizer {
|
|
|
15
15
|
return this.normalizeIP(raw, query, source, cached, includeRaw);
|
|
16
16
|
case 'autnum':
|
|
17
17
|
return this.normalizeASN(raw, query, source, cached, includeRaw);
|
|
18
|
+
case 'nameserver':
|
|
19
|
+
return this.normalizeNameserver(raw, query, source, cached, includeRaw);
|
|
20
|
+
case 'entity':
|
|
21
|
+
return this.normalizeEntity(raw, query, source, cached, includeRaw);
|
|
18
22
|
default:
|
|
19
23
|
throw new errors_1.ParseError(`Unsupported object class: ${objectClass}`, { objectClass, raw });
|
|
20
24
|
}
|
|
@@ -97,6 +101,59 @@ class Normalizer {
|
|
|
97
101
|
}
|
|
98
102
|
return response;
|
|
99
103
|
}
|
|
104
|
+
normalizeNameserver(raw, query, source, cached, includeRaw) {
|
|
105
|
+
const ipAddresses = raw['ipAddresses'];
|
|
106
|
+
const response = {
|
|
107
|
+
query,
|
|
108
|
+
objectClass: 'nameserver',
|
|
109
|
+
handle: raw.handle,
|
|
110
|
+
ldhName: raw['ldhName'],
|
|
111
|
+
unicodeName: raw['unicodeName'],
|
|
112
|
+
status: raw['status'] || [],
|
|
113
|
+
ipAddresses: ipAddresses
|
|
114
|
+
? {
|
|
115
|
+
v4: ipAddresses.v4 || [],
|
|
116
|
+
v6: ipAddresses.v6 || [],
|
|
117
|
+
}
|
|
118
|
+
: undefined,
|
|
119
|
+
entities: raw['entities'] || [],
|
|
120
|
+
events: this.normalizeEvents(raw['events'] || []),
|
|
121
|
+
links: raw['links'] || [],
|
|
122
|
+
remarks: raw['remarks'] || [],
|
|
123
|
+
metadata: {
|
|
124
|
+
source,
|
|
125
|
+
timestamp: new Date().toISOString(),
|
|
126
|
+
cached,
|
|
127
|
+
},
|
|
128
|
+
};
|
|
129
|
+
if (includeRaw) {
|
|
130
|
+
response.raw = raw;
|
|
131
|
+
}
|
|
132
|
+
return response;
|
|
133
|
+
}
|
|
134
|
+
normalizeEntity(raw, query, source, cached, includeRaw) {
|
|
135
|
+
const response = {
|
|
136
|
+
query,
|
|
137
|
+
objectClass: 'entity',
|
|
138
|
+
handle: raw.handle,
|
|
139
|
+
vcardArray: raw['vcardArray'],
|
|
140
|
+
roles: raw['roles'] || [],
|
|
141
|
+
status: raw['status'] || [],
|
|
142
|
+
entities: raw['entities'] || [],
|
|
143
|
+
events: this.normalizeEvents(raw['events'] || []),
|
|
144
|
+
links: raw['links'] || [],
|
|
145
|
+
remarks: raw['remarks'] || [],
|
|
146
|
+
metadata: {
|
|
147
|
+
source,
|
|
148
|
+
timestamp: new Date().toISOString(),
|
|
149
|
+
cached,
|
|
150
|
+
},
|
|
151
|
+
};
|
|
152
|
+
if (includeRaw) {
|
|
153
|
+
response.raw = raw;
|
|
154
|
+
}
|
|
155
|
+
return response;
|
|
156
|
+
}
|
|
100
157
|
extractNameservers(raw) {
|
|
101
158
|
const nameservers = raw['nameservers'];
|
|
102
159
|
if (!nameservers || !Array.isArray(nameservers)) {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Normalizer.js","sourceRoot":"","sources":["../../../src/infrastructure/http/Normalizer.ts"],"names":[],"mappings":";;;
|
|
1
|
+
{"version":3,"file":"Normalizer.js","sourceRoot":"","sources":["../../../src/infrastructure/http/Normalizer.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,114 @@
|
|
|
1
|
+
export type AuditEventType = 'QUERY_START' | 'QUERY_SUCCESS' | 'QUERY_FAILURE' | 'CACHE_HIT' | 'CACHE_MISS' | 'RATE_LIMIT_EXCEEDED' | 'SSRF_BLOCKED' | 'PII_REDACTED';
|
|
2
|
+
export interface AuditEvent {
|
|
3
|
+
id: string;
|
|
4
|
+
timestamp: string;
|
|
5
|
+
eventType: AuditEventType;
|
|
6
|
+
queryType: 'domain' | 'ip' | 'asn' | 'nameserver' | 'entity';
|
|
7
|
+
query: string;
|
|
8
|
+
normalizedQuery?: string;
|
|
9
|
+
success: boolean;
|
|
10
|
+
durationMs: number;
|
|
11
|
+
cached: boolean;
|
|
12
|
+
serverUrl?: string;
|
|
13
|
+
errorCode?: string;
|
|
14
|
+
errorMessage?: string;
|
|
15
|
+
requestHeaders?: Record<string, string>;
|
|
16
|
+
responseSize?: number;
|
|
17
|
+
sessionId?: string;
|
|
18
|
+
clientId?: string;
|
|
19
|
+
tags?: Record<string, string>;
|
|
20
|
+
}
|
|
21
|
+
export interface AuditLogAdapter {
|
|
22
|
+
write(event: AuditEvent): Promise<void> | void;
|
|
23
|
+
flush?(): Promise<void> | void;
|
|
24
|
+
}
|
|
25
|
+
export interface AuditLoggerOptions {
|
|
26
|
+
enabled?: boolean;
|
|
27
|
+
adapter?: AuditLogAdapter;
|
|
28
|
+
includeRequestHeaders?: boolean;
|
|
29
|
+
includeResponseSize?: boolean;
|
|
30
|
+
sensitiveFields?: string[];
|
|
31
|
+
sessionId?: string;
|
|
32
|
+
clientId?: string;
|
|
33
|
+
tags?: Record<string, string>;
|
|
34
|
+
retentionHours?: number;
|
|
35
|
+
}
|
|
36
|
+
export declare class InMemoryAuditAdapter implements AuditLogAdapter {
|
|
37
|
+
private events;
|
|
38
|
+
private readonly maxEvents;
|
|
39
|
+
private readonly retentionMs;
|
|
40
|
+
constructor(options?: {
|
|
41
|
+
maxEvents?: number;
|
|
42
|
+
retentionHours?: number;
|
|
43
|
+
});
|
|
44
|
+
write(event: AuditEvent): void;
|
|
45
|
+
getEvents(since?: string): AuditEvent[];
|
|
46
|
+
getEventsByType(type: AuditEventType): AuditEvent[];
|
|
47
|
+
clear(): void;
|
|
48
|
+
size(): number;
|
|
49
|
+
private evict;
|
|
50
|
+
}
|
|
51
|
+
export declare class FileAuditAdapter implements AuditLogAdapter {
|
|
52
|
+
private readonly filePath;
|
|
53
|
+
constructor(filePath: string);
|
|
54
|
+
write(event: AuditEvent): Promise<void>;
|
|
55
|
+
flush(): Promise<void>;
|
|
56
|
+
}
|
|
57
|
+
export declare class AuditLogger {
|
|
58
|
+
private readonly enabled;
|
|
59
|
+
private readonly adapter;
|
|
60
|
+
private readonly includeRequestHeaders;
|
|
61
|
+
private readonly includeResponseSize;
|
|
62
|
+
private readonly sessionId?;
|
|
63
|
+
private readonly clientId?;
|
|
64
|
+
private readonly tags?;
|
|
65
|
+
private eventsLogged;
|
|
66
|
+
constructor(options?: AuditLoggerOptions);
|
|
67
|
+
log(event: Omit<AuditEvent, 'id' | 'timestamp'>): void;
|
|
68
|
+
logQueryStart(params: {
|
|
69
|
+
queryType: 'domain' | 'ip' | 'asn' | 'nameserver' | 'entity';
|
|
70
|
+
query: string;
|
|
71
|
+
sessionId?: string;
|
|
72
|
+
clientId?: string;
|
|
73
|
+
}): void;
|
|
74
|
+
logQuerySuccess(params: {
|
|
75
|
+
queryType: 'domain' | 'ip' | 'asn' | 'nameserver' | 'entity';
|
|
76
|
+
query: string;
|
|
77
|
+
normalizedQuery: string;
|
|
78
|
+
durationMs: number;
|
|
79
|
+
cached: boolean;
|
|
80
|
+
serverUrl?: string;
|
|
81
|
+
responseSize?: number;
|
|
82
|
+
}): void;
|
|
83
|
+
logQueryFailure(params: {
|
|
84
|
+
queryType: 'domain' | 'ip' | 'asn' | 'nameserver' | 'entity';
|
|
85
|
+
query: string;
|
|
86
|
+
durationMs: number;
|
|
87
|
+
errorCode: string;
|
|
88
|
+
errorMessage: string;
|
|
89
|
+
}): void;
|
|
90
|
+
logCacheHit(params: {
|
|
91
|
+
queryType: 'domain' | 'ip' | 'asn' | 'nameserver' | 'entity';
|
|
92
|
+
query: string;
|
|
93
|
+
}): void;
|
|
94
|
+
logRateLimitExceeded(params: {
|
|
95
|
+
queryType: 'domain' | 'ip' | 'asn' | 'nameserver' | 'entity';
|
|
96
|
+
query: string;
|
|
97
|
+
}): void;
|
|
98
|
+
logSSRFBlocked(params: {
|
|
99
|
+
url: string;
|
|
100
|
+
}): void;
|
|
101
|
+
logPIIRedacted(params: {
|
|
102
|
+
queryType: 'domain' | 'ip' | 'asn' | 'nameserver' | 'entity';
|
|
103
|
+
query: string;
|
|
104
|
+
fieldsRedacted: number;
|
|
105
|
+
}): void;
|
|
106
|
+
flush(): Promise<void>;
|
|
107
|
+
isEnabled(): boolean;
|
|
108
|
+
getStats(): {
|
|
109
|
+
enabled: boolean;
|
|
110
|
+
eventsLogged: number;
|
|
111
|
+
};
|
|
112
|
+
private generateId;
|
|
113
|
+
}
|
|
114
|
+
//# sourceMappingURL=AuditLogger.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"AuditLogger.d.ts","sourceRoot":"","sources":["../../../src/infrastructure/logging/AuditLogger.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,195 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.AuditLogger = exports.FileAuditAdapter = exports.InMemoryAuditAdapter = void 0;
|
|
4
|
+
const tslib_1 = require("tslib");
|
|
5
|
+
const fs = tslib_1.__importStar(require("fs/promises"));
|
|
6
|
+
class InMemoryAuditAdapter {
|
|
7
|
+
constructor(options) {
|
|
8
|
+
this.events = [];
|
|
9
|
+
this.maxEvents = options?.maxEvents ?? 10000;
|
|
10
|
+
this.retentionMs = (options?.retentionHours ?? 24) * 60 * 60 * 1000;
|
|
11
|
+
}
|
|
12
|
+
write(event) {
|
|
13
|
+
this.evict();
|
|
14
|
+
this.events.push(event);
|
|
15
|
+
if (this.events.length > this.maxEvents) {
|
|
16
|
+
this.events = this.events.slice(-this.maxEvents);
|
|
17
|
+
}
|
|
18
|
+
}
|
|
19
|
+
getEvents(since) {
|
|
20
|
+
if (!since) {
|
|
21
|
+
return [...this.events];
|
|
22
|
+
}
|
|
23
|
+
const sinceMs = new Date(since).getTime();
|
|
24
|
+
return this.events.filter((e) => new Date(e.timestamp).getTime() >= sinceMs);
|
|
25
|
+
}
|
|
26
|
+
getEventsByType(type) {
|
|
27
|
+
return this.events.filter((e) => e.eventType === type);
|
|
28
|
+
}
|
|
29
|
+
clear() {
|
|
30
|
+
this.events = [];
|
|
31
|
+
}
|
|
32
|
+
size() {
|
|
33
|
+
return this.events.length;
|
|
34
|
+
}
|
|
35
|
+
evict() {
|
|
36
|
+
const cutoff = Date.now() - this.retentionMs;
|
|
37
|
+
this.events = this.events.filter((e) => new Date(e.timestamp).getTime() >= cutoff);
|
|
38
|
+
}
|
|
39
|
+
}
|
|
40
|
+
exports.InMemoryAuditAdapter = InMemoryAuditAdapter;
|
|
41
|
+
class FileAuditAdapter {
|
|
42
|
+
constructor(filePath) {
|
|
43
|
+
this.filePath = filePath;
|
|
44
|
+
}
|
|
45
|
+
async write(event) {
|
|
46
|
+
const line = JSON.stringify(event) + '\n';
|
|
47
|
+
await fs.appendFile(this.filePath, line, 'utf8');
|
|
48
|
+
}
|
|
49
|
+
async flush() {
|
|
50
|
+
}
|
|
51
|
+
}
|
|
52
|
+
exports.FileAuditAdapter = FileAuditAdapter;
|
|
53
|
+
class AuditLogger {
|
|
54
|
+
constructor(options) {
|
|
55
|
+
this.eventsLogged = 0;
|
|
56
|
+
this.enabled = options?.enabled ?? true;
|
|
57
|
+
this.adapter = options?.adapter ?? new InMemoryAuditAdapter({
|
|
58
|
+
retentionHours: options?.retentionHours ?? 24,
|
|
59
|
+
});
|
|
60
|
+
this.includeRequestHeaders = options?.includeRequestHeaders ?? false;
|
|
61
|
+
this.includeResponseSize = options?.includeResponseSize ?? false;
|
|
62
|
+
this.sessionId = options?.sessionId;
|
|
63
|
+
this.clientId = options?.clientId;
|
|
64
|
+
this.tags = options?.tags;
|
|
65
|
+
}
|
|
66
|
+
log(event) {
|
|
67
|
+
if (!this.enabled)
|
|
68
|
+
return;
|
|
69
|
+
const fullEvent = {
|
|
70
|
+
...event,
|
|
71
|
+
id: this.generateId(),
|
|
72
|
+
timestamp: new Date().toISOString(),
|
|
73
|
+
};
|
|
74
|
+
if (!this.includeRequestHeaders) {
|
|
75
|
+
delete fullEvent.requestHeaders;
|
|
76
|
+
}
|
|
77
|
+
if (!this.includeResponseSize) {
|
|
78
|
+
delete fullEvent.responseSize;
|
|
79
|
+
}
|
|
80
|
+
if (this.tags) {
|
|
81
|
+
fullEvent.tags = { ...this.tags, ...fullEvent.tags };
|
|
82
|
+
}
|
|
83
|
+
this.adapter.write(fullEvent);
|
|
84
|
+
this.eventsLogged++;
|
|
85
|
+
}
|
|
86
|
+
logQueryStart(params) {
|
|
87
|
+
this.log({
|
|
88
|
+
eventType: 'QUERY_START',
|
|
89
|
+
queryType: params.queryType,
|
|
90
|
+
query: params.query,
|
|
91
|
+
success: false,
|
|
92
|
+
durationMs: 0,
|
|
93
|
+
cached: false,
|
|
94
|
+
sessionId: params.sessionId ?? this.sessionId,
|
|
95
|
+
clientId: params.clientId ?? this.clientId,
|
|
96
|
+
});
|
|
97
|
+
}
|
|
98
|
+
logQuerySuccess(params) {
|
|
99
|
+
this.log({
|
|
100
|
+
eventType: 'QUERY_SUCCESS',
|
|
101
|
+
queryType: params.queryType,
|
|
102
|
+
query: params.query,
|
|
103
|
+
normalizedQuery: params.normalizedQuery,
|
|
104
|
+
success: true,
|
|
105
|
+
durationMs: params.durationMs,
|
|
106
|
+
cached: params.cached,
|
|
107
|
+
serverUrl: params.serverUrl,
|
|
108
|
+
responseSize: this.includeResponseSize ? params.responseSize : undefined,
|
|
109
|
+
sessionId: this.sessionId,
|
|
110
|
+
clientId: this.clientId,
|
|
111
|
+
});
|
|
112
|
+
}
|
|
113
|
+
logQueryFailure(params) {
|
|
114
|
+
this.log({
|
|
115
|
+
eventType: 'QUERY_FAILURE',
|
|
116
|
+
queryType: params.queryType,
|
|
117
|
+
query: params.query,
|
|
118
|
+
success: false,
|
|
119
|
+
durationMs: params.durationMs,
|
|
120
|
+
cached: false,
|
|
121
|
+
errorCode: params.errorCode,
|
|
122
|
+
errorMessage: params.errorMessage,
|
|
123
|
+
sessionId: this.sessionId,
|
|
124
|
+
clientId: this.clientId,
|
|
125
|
+
});
|
|
126
|
+
}
|
|
127
|
+
logCacheHit(params) {
|
|
128
|
+
this.log({
|
|
129
|
+
eventType: 'CACHE_HIT',
|
|
130
|
+
queryType: params.queryType,
|
|
131
|
+
query: params.query,
|
|
132
|
+
success: true,
|
|
133
|
+
durationMs: 0,
|
|
134
|
+
cached: true,
|
|
135
|
+
sessionId: this.sessionId,
|
|
136
|
+
clientId: this.clientId,
|
|
137
|
+
});
|
|
138
|
+
}
|
|
139
|
+
logRateLimitExceeded(params) {
|
|
140
|
+
this.log({
|
|
141
|
+
eventType: 'RATE_LIMIT_EXCEEDED',
|
|
142
|
+
queryType: params.queryType,
|
|
143
|
+
query: params.query,
|
|
144
|
+
success: false,
|
|
145
|
+
durationMs: 0,
|
|
146
|
+
cached: false,
|
|
147
|
+
sessionId: this.sessionId,
|
|
148
|
+
clientId: this.clientId,
|
|
149
|
+
});
|
|
150
|
+
}
|
|
151
|
+
logSSRFBlocked(params) {
|
|
152
|
+
this.log({
|
|
153
|
+
eventType: 'SSRF_BLOCKED',
|
|
154
|
+
queryType: 'domain',
|
|
155
|
+
query: params.url,
|
|
156
|
+
success: false,
|
|
157
|
+
durationMs: 0,
|
|
158
|
+
cached: false,
|
|
159
|
+
sessionId: this.sessionId,
|
|
160
|
+
clientId: this.clientId,
|
|
161
|
+
});
|
|
162
|
+
}
|
|
163
|
+
logPIIRedacted(params) {
|
|
164
|
+
this.log({
|
|
165
|
+
eventType: 'PII_REDACTED',
|
|
166
|
+
queryType: params.queryType,
|
|
167
|
+
query: params.query,
|
|
168
|
+
success: true,
|
|
169
|
+
durationMs: 0,
|
|
170
|
+
cached: false,
|
|
171
|
+
tags: { fieldsRedacted: String(params.fieldsRedacted) },
|
|
172
|
+
sessionId: this.sessionId,
|
|
173
|
+
clientId: this.clientId,
|
|
174
|
+
});
|
|
175
|
+
}
|
|
176
|
+
async flush() {
|
|
177
|
+
if (this.adapter.flush) {
|
|
178
|
+
await this.adapter.flush();
|
|
179
|
+
}
|
|
180
|
+
}
|
|
181
|
+
isEnabled() {
|
|
182
|
+
return this.enabled;
|
|
183
|
+
}
|
|
184
|
+
getStats() {
|
|
185
|
+
return {
|
|
186
|
+
enabled: this.enabled,
|
|
187
|
+
eventsLogged: this.eventsLogged,
|
|
188
|
+
};
|
|
189
|
+
}
|
|
190
|
+
generateId() {
|
|
191
|
+
return Date.now().toString(36) + Math.random().toString(36).slice(2, 9);
|
|
192
|
+
}
|
|
193
|
+
}
|
|
194
|
+
exports.AuditLogger = AuditLogger;
|
|
195
|
+
//# sourceMappingURL=AuditLogger.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"AuditLogger.js","sourceRoot":"","sources":["../../../src/infrastructure/logging/AuditLogger.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Logger.d.ts","sourceRoot":"","sources":["../../../src/infrastructure/logging/Logger.ts"],"names":[],"mappings":"AAKA,MAAM,MAAM,QAAQ,GAAG,OAAO,GAAG,MAAM,GAAG,MAAM,GAAG,OAAO,CAAC;AAE3D,MAAM,WAAW,QAAQ;IACvB,KAAK,EAAE,QAAQ,CAAC;IAChB,OAAO,EAAE,MAAM,CAAC;IAChB,SAAS,EAAE,MAAM,CAAC;IAClB,OAAO,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,CAAC;CAC/B;AAED,MAAM,WAAW,aAAa;IAC5B,KAAK,CAAC,EAAE,QAAQ,CAAC;IACjB,OAAO,CAAC,EAAE,OAAO,CAAC;IAClB,WAAW,CAAC,EAAE,OAAO,CAAC;IACtB,YAAY,CAAC,EAAE,OAAO,CAAC;IACvB,MAAM,CAAC,EAAE,MAAM,GAAG,MAAM,CAAC;IACzB,MAAM,CAAC,EAAE,CAAC,KAAK,EAAE,QAAQ,KAAK,IAAI,CAAC;CACpC;AAKD,qBAAa,MAAM;IACjB,OAAO,CAAC,QAAQ,CAAC,KAAK,CAAW;IACjC,OAAO,CAAC,QAAQ,CAAC,OAAO,CAAU;IAClC,OAAO,CAAC,QAAQ,CAAC,WAAW,CAAU;IACtC,OAAO,CAAC,QAAQ,CAAC,YAAY,CAAU;IACvC,OAAO,CAAC,QAAQ,CAAC,MAAM,CAAkB;IACzC,OAAO,CAAC,QAAQ,CAAC,MAAM,CAA4B;IACnD,OAAO,CAAC,IAAI,CAAkB;IAC9B,OAAO,CAAC,QAAQ,CAAC,OAAO,CAAgB;IAExC,OAAO,CAAC,QAAQ,CAAC,aAAa,CAK5B;gBAEU,OAAO,GAAE,aAAkB;IAYvC,KAAK,CAAC,OAAO,EAAE,MAAM,EAAE,OAAO,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,GAAG,IAAI;IAO3D,IAAI,CAAC,OAAO,EAAE,MAAM,EAAE,OAAO,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,GAAG,IAAI;IAO1D,IAAI,CAAC,OAAO,EAAE,MAAM,EAAE,OAAO,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,GAAG,IAAI;IAO1D,KAAK,CAAC,OAAO,EAAE,MAAM,EAAE,OAAO,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,GAAG,IAAI;IAO3D,UAAU,CAAC,IAAI,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,EAAE,OAAO,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,GAAG,IAAI;
|
|
1
|
+
{"version":3,"file":"Logger.d.ts","sourceRoot":"","sources":["../../../src/infrastructure/logging/Logger.ts"],"names":[],"mappings":"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"}
|