fingerprint-mcp 0.1.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.
- package/LICENSE +663 -0
- package/README.ar.md +767 -0
- package/README.bn.md +767 -0
- package/README.bs.md +767 -0
- package/README.da.md +767 -0
- package/README.de.md +770 -0
- package/README.el.md +767 -0
- package/README.es.md +769 -0
- package/README.fr.md +769 -0
- package/README.hi.md +767 -0
- package/README.it.md +767 -0
- package/README.ja.md +767 -0
- package/README.ko.md +772 -0
- package/README.md +767 -0
- package/README.no.md +767 -0
- package/README.pl.md +767 -0
- package/README.pt-BR.md +767 -0
- package/README.ru.md +767 -0
- package/README.th.md +767 -0
- package/README.tr.md +767 -0
- package/README.uk.md +767 -0
- package/README.vi.md +767 -0
- package/README.zh-TW.md +768 -0
- package/README.zh.md +768 -0
- package/dist/app/index.d.ts +3 -0
- package/dist/app/index.d.ts.map +1 -0
- package/dist/app/index.js +614 -0
- package/dist/app/index.js.map +1 -0
- package/dist/composite/analyze.d.ts +3 -0
- package/dist/composite/analyze.d.ts.map +1 -0
- package/dist/composite/analyze.js +59 -0
- package/dist/composite/analyze.js.map +1 -0
- package/dist/composite/correlate.d.ts +3 -0
- package/dist/composite/correlate.d.ts.map +1 -0
- package/dist/composite/correlate.js +184 -0
- package/dist/composite/correlate.js.map +1 -0
- package/dist/composite/enumerate.d.ts +3 -0
- package/dist/composite/enumerate.d.ts.map +1 -0
- package/dist/composite/enumerate.js +94 -0
- package/dist/composite/enumerate.js.map +1 -0
- package/dist/composite/helpers.d.ts +22 -0
- package/dist/composite/helpers.d.ts.map +1 -0
- package/dist/composite/helpers.js +111 -0
- package/dist/composite/helpers.js.map +1 -0
- package/dist/composite/index.d.ts +3 -0
- package/dist/composite/index.d.ts.map +1 -0
- package/dist/composite/index.js +29 -0
- package/dist/composite/index.js.map +1 -0
- package/dist/composite/meta.d.ts +3 -0
- package/dist/composite/meta.d.ts.map +1 -0
- package/dist/composite/meta.js +23 -0
- package/dist/composite/meta.js.map +1 -0
- package/dist/composite/osint.d.ts +3 -0
- package/dist/composite/osint.d.ts.map +1 -0
- package/dist/composite/osint.js +40 -0
- package/dist/composite/osint.js.map +1 -0
- package/dist/composite/recon.d.ts +3 -0
- package/dist/composite/recon.d.ts.map +1 -0
- package/dist/composite/recon.js +131 -0
- package/dist/composite/recon.js.map +1 -0
- package/dist/composite/scan-dns.d.ts +3 -0
- package/dist/composite/scan-dns.d.ts.map +1 -0
- package/dist/composite/scan-dns.js +44 -0
- package/dist/composite/scan-dns.js.map +1 -0
- package/dist/composite/scan-http.d.ts +3 -0
- package/dist/composite/scan-http.d.ts.map +1 -0
- package/dist/composite/scan-http.js +68 -0
- package/dist/composite/scan-http.js.map +1 -0
- package/dist/composite/scan-paths.d.ts +3 -0
- package/dist/composite/scan-paths.d.ts.map +1 -0
- package/dist/composite/scan-paths.js +32 -0
- package/dist/composite/scan-paths.js.map +1 -0
- package/dist/composite/scan-ports.d.ts +3 -0
- package/dist/composite/scan-ports.d.ts.map +1 -0
- package/dist/composite/scan-ports.js +79 -0
- package/dist/composite/scan-ports.js.map +1 -0
- package/dist/composite/scan-services.d.ts +3 -0
- package/dist/composite/scan-services.d.ts.map +1 -0
- package/dist/composite/scan-services.js +111 -0
- package/dist/composite/scan-services.js.map +1 -0
- package/dist/composite/scan-tls.d.ts +3 -0
- package/dist/composite/scan-tls.d.ts.map +1 -0
- package/dist/composite/scan-tls.js +32 -0
- package/dist/composite/scan-tls.js.map +1 -0
- package/dist/composite/scan-waf.d.ts +3 -0
- package/dist/composite/scan-waf.d.ts.map +1 -0
- package/dist/composite/scan-waf.js +35 -0
- package/dist/composite/scan-waf.js.map +1 -0
- package/dist/correlation/index.d.ts +3 -0
- package/dist/correlation/index.d.ts.map +1 -0
- package/dist/correlation/index.js +1044 -0
- package/dist/correlation/index.js.map +1 -0
- package/dist/data/analytics-patterns.d.ts +21 -0
- package/dist/data/analytics-patterns.d.ts.map +1 -0
- package/dist/data/analytics-patterns.js +449 -0
- package/dist/data/analytics-patterns.js.map +1 -0
- package/dist/data/app-signatures.d.ts +52 -0
- package/dist/data/app-signatures.d.ts.map +1 -0
- package/dist/data/app-signatures.js +1143 -0
- package/dist/data/app-signatures.js.map +1 -0
- package/dist/data/c2-signatures.d.ts +54 -0
- package/dist/data/c2-signatures.d.ts.map +1 -0
- package/dist/data/c2-signatures.js +256 -0
- package/dist/data/c2-signatures.js.map +1 -0
- package/dist/data/cloud-ranges.d.ts +34 -0
- package/dist/data/cloud-ranges.d.ts.map +1 -0
- package/dist/data/cloud-ranges.js +628 -0
- package/dist/data/cloud-ranges.js.map +1 -0
- package/dist/data/cookie-patterns.d.ts +28 -0
- package/dist/data/cookie-patterns.d.ts.map +1 -0
- package/dist/data/cookie-patterns.js +225 -0
- package/dist/data/cookie-patterns.js.map +1 -0
- package/dist/data/error-signatures.d.ts +19 -0
- package/dist/data/error-signatures.d.ts.map +1 -0
- package/dist/data/error-signatures.js +321 -0
- package/dist/data/error-signatures.js.map +1 -0
- package/dist/data/favicon-hashes.d.ts +25 -0
- package/dist/data/favicon-hashes.d.ts.map +1 -0
- package/dist/data/favicon-hashes.js +249 -0
- package/dist/data/favicon-hashes.js.map +1 -0
- package/dist/data/h2-signatures.d.ts +50 -0
- package/dist/data/h2-signatures.d.ts.map +1 -0
- package/dist/data/h2-signatures.js +211 -0
- package/dist/data/h2-signatures.js.map +1 -0
- package/dist/data/header-order.d.ts +38 -0
- package/dist/data/header-order.d.ts.map +1 -0
- package/dist/data/header-order.js +185 -0
- package/dist/data/header-order.js.map +1 -0
- package/dist/data/jarm-signatures.d.ts +25 -0
- package/dist/data/jarm-signatures.d.ts.map +1 -0
- package/dist/data/jarm-signatures.js +213 -0
- package/dist/data/jarm-signatures.js.map +1 -0
- package/dist/data/saas-patterns.d.ts +23 -0
- package/dist/data/saas-patterns.d.ts.map +1 -0
- package/dist/data/saas-patterns.js +139 -0
- package/dist/data/saas-patterns.js.map +1 -0
- package/dist/data/sensitive-paths.d.ts +12 -0
- package/dist/data/sensitive-paths.d.ts.map +1 -0
- package/dist/data/sensitive-paths.js +1539 -0
- package/dist/data/sensitive-paths.js.map +1 -0
- package/dist/data/service-banners.d.ts +59 -0
- package/dist/data/service-banners.d.ts.map +1 -0
- package/dist/data/service-banners.js +323 -0
- package/dist/data/service-banners.js.map +1 -0
- package/dist/data/smtp-signatures.d.ts +12 -0
- package/dist/data/smtp-signatures.d.ts.map +1 -0
- package/dist/data/smtp-signatures.js +350 -0
- package/dist/data/smtp-signatures.js.map +1 -0
- package/dist/data/takeover-patterns.d.ts +37 -0
- package/dist/data/takeover-patterns.d.ts.map +1 -0
- package/dist/data/takeover-patterns.js +249 -0
- package/dist/data/takeover-patterns.js.map +1 -0
- package/dist/data/tech-patterns.d.ts +44 -0
- package/dist/data/tech-patterns.d.ts.map +1 -0
- package/dist/data/tech-patterns.js +690 -0
- package/dist/data/tech-patterns.js.map +1 -0
- package/dist/data/waf-signatures.d.ts +21 -0
- package/dist/data/waf-signatures.d.ts.map +1 -0
- package/dist/data/waf-signatures.js +318 -0
- package/dist/data/waf-signatures.js.map +1 -0
- package/dist/dns/index.d.ts +3 -0
- package/dist/dns/index.d.ts.map +1 -0
- package/dist/dns/index.js +1067 -0
- package/dist/dns/index.js.map +1 -0
- package/dist/enum/index.d.ts +3 -0
- package/dist/enum/index.d.ts.map +1 -0
- package/dist/enum/index.js +818 -0
- package/dist/enum/index.js.map +1 -0
- package/dist/h2/index.d.ts +3 -0
- package/dist/h2/index.d.ts.map +1 -0
- package/dist/h2/index.js +414 -0
- package/dist/h2/index.js.map +1 -0
- package/dist/http/index.d.ts +3 -0
- package/dist/http/index.d.ts.map +1 -0
- package/dist/http/index.js +2444 -0
- package/dist/http/index.js.map +1 -0
- package/dist/identify/index.d.ts +3 -0
- package/dist/identify/index.d.ts.map +1 -0
- package/dist/identify/index.js +447 -0
- package/dist/identify/index.js.map +1 -0
- package/dist/index.d.ts +3 -0
- package/dist/index.d.ts.map +1 -0
- package/dist/index.js +165 -0
- package/dist/index.js.map +1 -0
- package/dist/infra/index.d.ts +3 -0
- package/dist/infra/index.d.ts.map +1 -0
- package/dist/infra/index.js +989 -0
- package/dist/infra/index.js.map +1 -0
- package/dist/iot/index.d.ts +3 -0
- package/dist/iot/index.d.ts.map +1 -0
- package/dist/iot/index.js +610 -0
- package/dist/iot/index.js.map +1 -0
- package/dist/meta/index.d.ts +3 -0
- package/dist/meta/index.d.ts.map +1 -0
- package/dist/meta/index.js +442 -0
- package/dist/meta/index.js.map +1 -0
- package/dist/osint/index.d.ts +3 -0
- package/dist/osint/index.d.ts.map +1 -0
- package/dist/osint/index.js +687 -0
- package/dist/osint/index.js.map +1 -0
- package/dist/passive/index.d.ts +3 -0
- package/dist/passive/index.d.ts.map +1 -0
- package/dist/passive/index.js +944 -0
- package/dist/passive/index.js.map +1 -0
- package/dist/path/index.d.ts +3 -0
- package/dist/path/index.d.ts.map +1 -0
- package/dist/path/index.js +878 -0
- package/dist/path/index.js.map +1 -0
- package/dist/protocol/mcp-server.d.ts +4 -0
- package/dist/protocol/mcp-server.d.ts.map +1 -0
- package/dist/protocol/mcp-server.js +32 -0
- package/dist/protocol/mcp-server.js.map +1 -0
- package/dist/protocol/tools.d.ts +3 -0
- package/dist/protocol/tools.d.ts.map +1 -0
- package/dist/protocol/tools.js +5 -0
- package/dist/protocol/tools.js.map +1 -0
- package/dist/service/index.d.ts +3 -0
- package/dist/service/index.d.ts.map +1 -0
- package/dist/service/index.js +1053 -0
- package/dist/service/index.js.map +1 -0
- package/dist/smtp/index.d.ts +3 -0
- package/dist/smtp/index.d.ts.map +1 -0
- package/dist/smtp/index.js +437 -0
- package/dist/smtp/index.js.map +1 -0
- package/dist/ssh/index.d.ts +3 -0
- package/dist/ssh/index.d.ts.map +1 -0
- package/dist/ssh/index.js +676 -0
- package/dist/ssh/index.js.map +1 -0
- package/dist/tcp/index.d.ts +3 -0
- package/dist/tcp/index.d.ts.map +1 -0
- package/dist/tcp/index.js +369 -0
- package/dist/tcp/index.js.map +1 -0
- package/dist/timing/index.d.ts +3 -0
- package/dist/timing/index.d.ts.map +1 -0
- package/dist/timing/index.js +425 -0
- package/dist/timing/index.js.map +1 -0
- package/dist/tls/index.d.ts +3 -0
- package/dist/tls/index.d.ts.map +1 -0
- package/dist/tls/index.js +1332 -0
- package/dist/tls/index.js.map +1 -0
- package/dist/types/index.d.ts +26 -0
- package/dist/types/index.d.ts.map +1 -0
- package/dist/types/index.js +8 -0
- package/dist/types/index.js.map +1 -0
- package/dist/utils/cache.d.ts +11 -0
- package/dist/utils/cache.d.ts.map +1 -0
- package/dist/utils/cache.js +35 -0
- package/dist/utils/cache.js.map +1 -0
- package/dist/utils/murmurhash3.d.ts +3 -0
- package/dist/utils/murmurhash3.d.ts.map +1 -0
- package/dist/utils/murmurhash3.js +57 -0
- package/dist/utils/murmurhash3.js.map +1 -0
- package/dist/utils/rate-limiter.d.ts +10 -0
- package/dist/utils/rate-limiter.d.ts.map +1 -0
- package/dist/utils/rate-limiter.js +35 -0
- package/dist/utils/rate-limiter.js.map +1 -0
- package/dist/utils/require-key.d.ts +2 -0
- package/dist/utils/require-key.d.ts.map +1 -0
- package/dist/utils/require-key.js +8 -0
- package/dist/utils/require-key.js.map +1 -0
- package/dist/waf/index.d.ts +3 -0
- package/dist/waf/index.d.ts.map +1 -0
- package/dist/waf/index.js +767 -0
- package/dist/waf/index.js.map +1 -0
- package/dist/web/index.d.ts +3 -0
- package/dist/web/index.d.ts.map +1 -0
- package/dist/web/index.js +1366 -0
- package/dist/web/index.js.map +1 -0
- package/package.json +66 -0
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/tls/index.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,26 @@
|
|
|
1
|
+
import type { z } from "zod";
|
|
2
|
+
export interface ToolDef {
|
|
3
|
+
name: string;
|
|
4
|
+
description: string;
|
|
5
|
+
schema: Record<string, z.ZodType>;
|
|
6
|
+
execute: (args: Record<string, unknown>, ctx: ToolContext) => Promise<ToolResult>;
|
|
7
|
+
}
|
|
8
|
+
export interface ToolContext {
|
|
9
|
+
config: {
|
|
10
|
+
shodanApiKey?: string;
|
|
11
|
+
censysApiId?: string;
|
|
12
|
+
censysApiSecret?: string;
|
|
13
|
+
securitytrailsApiKey?: string;
|
|
14
|
+
virustotalApiKey?: string;
|
|
15
|
+
};
|
|
16
|
+
}
|
|
17
|
+
export interface ToolResult {
|
|
18
|
+
[key: string]: unknown;
|
|
19
|
+
content: {
|
|
20
|
+
type: "text";
|
|
21
|
+
text: string;
|
|
22
|
+
}[];
|
|
23
|
+
}
|
|
24
|
+
export declare function text(msg: string): ToolResult;
|
|
25
|
+
export declare function json(data: unknown): ToolResult;
|
|
26
|
+
//# sourceMappingURL=index.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/types/index.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAI7B,MAAM,WAAW,OAAO;IACtB,IAAI,EAAE,MAAM,CAAC;IACb,WAAW,EAAE,MAAM,CAAC;IACpB,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,CAAC,CAAC,OAAO,CAAC,CAAC;IAClC,OAAO,EAAE,CAAC,IAAI,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EAAE,GAAG,EAAE,WAAW,KAAK,OAAO,CAAC,UAAU,CAAC,CAAC;CACnF;AAED,MAAM,WAAW,WAAW;IAC1B,MAAM,EAAE;QAEN,YAAY,CAAC,EAAE,MAAM,CAAC;QACtB,WAAW,CAAC,EAAE,MAAM,CAAC;QACrB,eAAe,CAAC,EAAE,MAAM,CAAC;QACzB,oBAAoB,CAAC,EAAE,MAAM,CAAC;QAC9B,gBAAgB,CAAC,EAAE,MAAM,CAAC;KAC3B,CAAC;CACH;AAED,MAAM,WAAW,UAAU;IACzB,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAAC;IACvB,OAAO,EAAE;QAAE,IAAI,EAAE,MAAM,CAAC;QAAC,IAAI,EAAE,MAAM,CAAA;KAAE,EAAE,CAAC;CAC3C;AAID,wBAAgB,IAAI,CAAC,GAAG,EAAE,MAAM,GAAG,UAAU,CAE5C;AAED,wBAAgB,IAAI,CAAC,IAAI,EAAE,OAAO,GAAG,UAAU,CAE9C"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/types/index.ts"],"names":[],"mappings":"AA2BA,2BAA2B;AAE3B,MAAM,UAAU,IAAI,CAAC,GAAW;IAC9B,OAAO,EAAE,OAAO,EAAE,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,GAAG,EAAE,CAAC,EAAE,CAAC;AACpD,CAAC;AAED,MAAM,UAAU,IAAI,CAAC,IAAa;IAChC,OAAO,IAAI,CAAC,IAAI,CAAC,SAAS,CAAC,IAAI,EAAE,IAAI,EAAE,CAAC,CAAC,CAAC,CAAC;AAC7C,CAAC"}
|
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
export declare class TTLCache<T> {
|
|
2
|
+
private ttlMs;
|
|
3
|
+
private store;
|
|
4
|
+
constructor(ttlMs: number);
|
|
5
|
+
get(key: string): T | undefined;
|
|
6
|
+
set(key: string, value: T): void;
|
|
7
|
+
has(key: string): boolean;
|
|
8
|
+
clear(): void;
|
|
9
|
+
get size(): number;
|
|
10
|
+
}
|
|
11
|
+
//# sourceMappingURL=cache.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"cache.d.ts","sourceRoot":"","sources":["../../src/utils/cache.ts"],"names":[],"mappings":"AACA,qBAAa,QAAQ,CAAC,CAAC;IAGT,OAAO,CAAC,KAAK;IAFzB,OAAO,CAAC,KAAK,CAAoD;gBAE7C,KAAK,EAAE,MAAM;IAEjC,GAAG,CAAC,GAAG,EAAE,MAAM,GAAG,CAAC,GAAG,SAAS;IAU/B,GAAG,CAAC,GAAG,EAAE,MAAM,EAAE,KAAK,EAAE,CAAC,GAAG,IAAI;IAIhC,GAAG,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO;IAIzB,KAAK,IAAI,IAAI;IAIb,IAAI,IAAI,IAAI,MAAM,CAKjB;CACF"}
|
|
@@ -0,0 +1,35 @@
|
|
|
1
|
+
// Simple in-memory TTL cache
|
|
2
|
+
export class TTLCache {
|
|
3
|
+
ttlMs;
|
|
4
|
+
store = new Map();
|
|
5
|
+
constructor(ttlMs) {
|
|
6
|
+
this.ttlMs = ttlMs;
|
|
7
|
+
}
|
|
8
|
+
get(key) {
|
|
9
|
+
const entry = this.store.get(key);
|
|
10
|
+
if (!entry)
|
|
11
|
+
return undefined;
|
|
12
|
+
if (Date.now() > entry.expires) {
|
|
13
|
+
this.store.delete(key);
|
|
14
|
+
return undefined;
|
|
15
|
+
}
|
|
16
|
+
return entry.value;
|
|
17
|
+
}
|
|
18
|
+
set(key, value) {
|
|
19
|
+
this.store.set(key, { value, expires: Date.now() + this.ttlMs });
|
|
20
|
+
}
|
|
21
|
+
has(key) {
|
|
22
|
+
return this.get(key) !== undefined;
|
|
23
|
+
}
|
|
24
|
+
clear() {
|
|
25
|
+
this.store.clear();
|
|
26
|
+
}
|
|
27
|
+
get size() {
|
|
28
|
+
for (const [key, entry] of this.store) {
|
|
29
|
+
if (Date.now() > entry.expires)
|
|
30
|
+
this.store.delete(key);
|
|
31
|
+
}
|
|
32
|
+
return this.store.size;
|
|
33
|
+
}
|
|
34
|
+
}
|
|
35
|
+
//# sourceMappingURL=cache.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"cache.js","sourceRoot":"","sources":["../../src/utils/cache.ts"],"names":[],"mappings":"AAAA,6BAA6B;AAC7B,MAAM,OAAO,QAAQ;IAGC;IAFZ,KAAK,GAAG,IAAI,GAAG,EAAyC,CAAC;IAEjE,YAAoB,KAAa;QAAb,UAAK,GAAL,KAAK,CAAQ;IAAG,CAAC;IAErC,GAAG,CAAC,GAAW;QACb,MAAM,KAAK,GAAG,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC;QAClC,IAAI,CAAC,KAAK;YAAE,OAAO,SAAS,CAAC;QAC7B,IAAI,IAAI,CAAC,GAAG,EAAE,GAAG,KAAK,CAAC,OAAO,EAAE,CAAC;YAC/B,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC;YACvB,OAAO,SAAS,CAAC;QACnB,CAAC;QACD,OAAO,KAAK,CAAC,KAAK,CAAC;IACrB,CAAC;IAED,GAAG,CAAC,GAAW,EAAE,KAAQ;QACvB,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,GAAG,EAAE,EAAE,KAAK,EAAE,OAAO,EAAE,IAAI,CAAC,GAAG,EAAE,GAAG,IAAI,CAAC,KAAK,EAAE,CAAC,CAAC;IACnE,CAAC;IAED,GAAG,CAAC,GAAW;QACb,OAAO,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,KAAK,SAAS,CAAC;IACrC,CAAC;IAED,KAAK;QACH,IAAI,CAAC,KAAK,CAAC,KAAK,EAAE,CAAC;IACrB,CAAC;IAED,IAAI,IAAI;QACN,KAAK,MAAM,CAAC,GAAG,EAAE,KAAK,CAAC,IAAI,IAAI,CAAC,KAAK,EAAE,CAAC;YACtC,IAAI,IAAI,CAAC,GAAG,EAAE,GAAG,KAAK,CAAC,OAAO;gBAAE,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC;QACzD,CAAC;QACD,OAAO,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC;IACzB,CAAC;CACF"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"murmurhash3.d.ts","sourceRoot":"","sources":["../../src/utils/murmurhash3.ts"],"names":[],"mappings":"AACA,wBAAgB,kBAAkB,CAAC,IAAI,EAAE,MAAM,EAAE,IAAI,SAAI,GAAG,MAAM,CAoDjE;AAGD,wBAAgB,iBAAiB,CAAC,QAAQ,EAAE,MAAM,GAAG,MAAM,CAS1D"}
|
|
@@ -0,0 +1,57 @@
|
|
|
1
|
+
// Pure TypeScript MurmurHash3 x86 32-bit — Shodan-compatible favicon hashing
|
|
2
|
+
export function murmurhash3_x86_32(data, seed = 0) {
|
|
3
|
+
const nblocks = Math.floor(data.length / 4);
|
|
4
|
+
let h1 = seed >>> 0;
|
|
5
|
+
const c1 = 0xcc9e2d51;
|
|
6
|
+
const c2 = 0x1b873593;
|
|
7
|
+
// Body
|
|
8
|
+
for (let i = 0; i < nblocks; i++) {
|
|
9
|
+
let k1 = data[i * 4] |
|
|
10
|
+
(data[i * 4 + 1] << 8) |
|
|
11
|
+
(data[i * 4 + 2] << 16) |
|
|
12
|
+
(data[i * 4 + 3] << 24);
|
|
13
|
+
k1 = Math.imul(k1, c1);
|
|
14
|
+
k1 = (k1 << 15) | (k1 >>> 17);
|
|
15
|
+
k1 = Math.imul(k1, c2);
|
|
16
|
+
h1 ^= k1;
|
|
17
|
+
h1 = (h1 << 13) | (h1 >>> 19);
|
|
18
|
+
h1 = Math.imul(h1, 5) + 0xe6546b64;
|
|
19
|
+
}
|
|
20
|
+
// Tail
|
|
21
|
+
const tail = nblocks * 4;
|
|
22
|
+
let k1 = 0;
|
|
23
|
+
switch (data.length & 3) {
|
|
24
|
+
case 3:
|
|
25
|
+
k1 ^= data[tail + 2] << 16;
|
|
26
|
+
// fallthrough
|
|
27
|
+
case 2:
|
|
28
|
+
k1 ^= data[tail + 1] << 8;
|
|
29
|
+
// fallthrough
|
|
30
|
+
case 1:
|
|
31
|
+
k1 ^= data[tail];
|
|
32
|
+
k1 = Math.imul(k1, c1);
|
|
33
|
+
k1 = (k1 << 15) | (k1 >>> 17);
|
|
34
|
+
k1 = Math.imul(k1, c2);
|
|
35
|
+
h1 ^= k1;
|
|
36
|
+
}
|
|
37
|
+
// Finalization
|
|
38
|
+
h1 ^= data.length;
|
|
39
|
+
h1 ^= h1 >>> 16;
|
|
40
|
+
h1 = Math.imul(h1, 0x85ebca6b);
|
|
41
|
+
h1 ^= h1 >>> 13;
|
|
42
|
+
h1 = Math.imul(h1, 0xc2b2ae35);
|
|
43
|
+
h1 ^= h1 >>> 16;
|
|
44
|
+
return h1 | 0; // Signed 32-bit (Shodan convention)
|
|
45
|
+
}
|
|
46
|
+
// Shodan favicon hash: base64-encode the raw bytes, then MurmurHash3 the base64 string
|
|
47
|
+
export function shodanFaviconHash(rawBytes) {
|
|
48
|
+
const b64 = rawBytes.toString("base64");
|
|
49
|
+
// Shodan uses the base64 string with standard line breaks every 76 chars
|
|
50
|
+
const lines = [];
|
|
51
|
+
for (let i = 0; i < b64.length; i += 76) {
|
|
52
|
+
lines.push(b64.slice(i, i + 76));
|
|
53
|
+
}
|
|
54
|
+
const encoded = lines.join("\n") + "\n";
|
|
55
|
+
return murmurhash3_x86_32(Buffer.from(encoded));
|
|
56
|
+
}
|
|
57
|
+
//# sourceMappingURL=murmurhash3.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"murmurhash3.js","sourceRoot":"","sources":["../../src/utils/murmurhash3.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"rate-limiter.d.ts","sourceRoot":"","sources":["../../src/utils/rate-limiter.ts"],"names":[],"mappings":"AACA,qBAAa,WAAW;IAKV,OAAO,CAAC,UAAU;IAJ9B,OAAO,CAAC,WAAW,CAAK;IACxB,OAAO,CAAC,KAAK,CAAsB;IACnC,OAAO,CAAC,UAAU,CAAS;gBAEP,UAAU,EAAE,MAAM;IAEhC,OAAO,IAAI,OAAO,CAAC,IAAI,CAAC;YAOhB,YAAY;CAc3B"}
|
|
@@ -0,0 +1,35 @@
|
|
|
1
|
+
// Queue-based rate limiter — ensures minimum delay between requests
|
|
2
|
+
export class RateLimiter {
|
|
3
|
+
minDelayMs;
|
|
4
|
+
lastRequest = 0;
|
|
5
|
+
queue = [];
|
|
6
|
+
processing = false;
|
|
7
|
+
constructor(minDelayMs) {
|
|
8
|
+
this.minDelayMs = minDelayMs;
|
|
9
|
+
}
|
|
10
|
+
async acquire() {
|
|
11
|
+
return new Promise((resolve) => {
|
|
12
|
+
this.queue.push(resolve);
|
|
13
|
+
if (!this.processing)
|
|
14
|
+
this.processQueue();
|
|
15
|
+
});
|
|
16
|
+
}
|
|
17
|
+
async processQueue() {
|
|
18
|
+
this.processing = true;
|
|
19
|
+
while (this.queue.length > 0) {
|
|
20
|
+
const now = Date.now();
|
|
21
|
+
const elapsed = now - this.lastRequest;
|
|
22
|
+
if (elapsed < this.minDelayMs) {
|
|
23
|
+
await sleep(this.minDelayMs - elapsed);
|
|
24
|
+
}
|
|
25
|
+
this.lastRequest = Date.now();
|
|
26
|
+
const resolve = this.queue.shift();
|
|
27
|
+
resolve?.();
|
|
28
|
+
}
|
|
29
|
+
this.processing = false;
|
|
30
|
+
}
|
|
31
|
+
}
|
|
32
|
+
function sleep(ms) {
|
|
33
|
+
return new Promise((r) => setTimeout(r, ms));
|
|
34
|
+
}
|
|
35
|
+
//# sourceMappingURL=rate-limiter.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"rate-limiter.js","sourceRoot":"","sources":["../../src/utils/rate-limiter.ts"],"names":[],"mappings":"AAAA,oEAAoE;AACpE,MAAM,OAAO,WAAW;IAKF;IAJZ,WAAW,GAAG,CAAC,CAAC;IAChB,KAAK,GAAmB,EAAE,CAAC;IAC3B,UAAU,GAAG,KAAK,CAAC;IAE3B,YAAoB,UAAkB;QAAlB,eAAU,GAAV,UAAU,CAAQ;IAAG,CAAC;IAE1C,KAAK,CAAC,OAAO;QACX,OAAO,IAAI,OAAO,CAAO,CAAC,OAAO,EAAE,EAAE;YACnC,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;YACzB,IAAI,CAAC,IAAI,CAAC,UAAU;gBAAE,IAAI,CAAC,YAAY,EAAE,CAAC;QAC5C,CAAC,CAAC,CAAC;IACL,CAAC;IAEO,KAAK,CAAC,YAAY;QACxB,IAAI,CAAC,UAAU,GAAG,IAAI,CAAC;QACvB,OAAO,IAAI,CAAC,KAAK,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;YAC7B,MAAM,GAAG,GAAG,IAAI,CAAC,GAAG,EAAE,CAAC;YACvB,MAAM,OAAO,GAAG,GAAG,GAAG,IAAI,CAAC,WAAW,CAAC;YACvC,IAAI,OAAO,GAAG,IAAI,CAAC,UAAU,EAAE,CAAC;gBAC9B,MAAM,KAAK,CAAC,IAAI,CAAC,UAAU,GAAG,OAAO,CAAC,CAAC;YACzC,CAAC;YACD,IAAI,CAAC,WAAW,GAAG,IAAI,CAAC,GAAG,EAAE,CAAC;YAC9B,MAAM,OAAO,GAAG,IAAI,CAAC,KAAK,CAAC,KAAK,EAAE,CAAC;YACnC,OAAO,EAAE,EAAE,CAAC;QACd,CAAC;QACD,IAAI,CAAC,UAAU,GAAG,KAAK,CAAC;IAC1B,CAAC;CACF;AAED,SAAS,KAAK,CAAC,EAAU;IACvB,OAAO,IAAI,OAAO,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,UAAU,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC;AAC/C,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"require-key.d.ts","sourceRoot":"","sources":["../../src/utils/require-key.ts"],"names":[],"mappings":"AACA,wBAAgB,aAAa,CAAC,GAAG,EAAE,MAAM,GAAG,SAAS,EAAE,QAAQ,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,GAAG,MAAM,CAO/F"}
|
|
@@ -0,0 +1,8 @@
|
|
|
1
|
+
// Shared helper for API key validation
|
|
2
|
+
export function requireApiKey(key, provider, envVar) {
|
|
3
|
+
if (!key) {
|
|
4
|
+
throw new Error(`${provider} API key required. Set ${envVar} environment variable to enable ${provider} tools.`);
|
|
5
|
+
}
|
|
6
|
+
return key;
|
|
7
|
+
}
|
|
8
|
+
//# sourceMappingURL=require-key.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"require-key.js","sourceRoot":"","sources":["../../src/utils/require-key.ts"],"names":[],"mappings":"AAAA,uCAAuC;AACvC,MAAM,UAAU,aAAa,CAAC,GAAuB,EAAE,QAAgB,EAAE,MAAc;IACrF,IAAI,CAAC,GAAG,EAAE,CAAC;QACT,MAAM,IAAI,KAAK,CACb,GAAG,QAAQ,0BAA0B,MAAM,mCAAmC,QAAQ,SAAS,CAChG,CAAC;IACJ,CAAC;IACD,OAAO,GAAG,CAAC;AACb,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/waf/index.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,OAAO,EAA2B,MAAM,mBAAmB,CAAC;AAi3B1E,eAAO,MAAM,QAAQ,EAAE,OAAO,EAK7B,CAAC"}
|