pompelmi 0.29.1 → 0.30.1
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/README.md +191 -180
- package/dist/pompelmi.cjs +2 -2
- package/dist/pompelmi.cjs.map +1 -1
- package/dist/pompelmi.esm.js +2 -2
- package/dist/pompelmi.esm.js.map +1 -1
- package/dist/types/utils/threat-intelligence.d.ts +12 -1
- package/package.json +91 -36
|
@@ -21,13 +21,24 @@ export interface ThreatInfo {
|
|
|
21
21
|
/** Detection timestamp */
|
|
22
22
|
detectedAt?: Date;
|
|
23
23
|
}
|
|
24
|
-
export interface EnhancedScanReport
|
|
24
|
+
export interface EnhancedScanReport {
|
|
25
25
|
/** Threat intelligence findings */
|
|
26
26
|
threatIntel?: ThreatInfo[];
|
|
27
27
|
/** File hash (SHA-256) */
|
|
28
28
|
fileHash?: string;
|
|
29
29
|
/** Risk score (0-100) */
|
|
30
30
|
riskScore?: number;
|
|
31
|
+
/** Include all properties from ScanReport */
|
|
32
|
+
verdict: import('../types').Verdict;
|
|
33
|
+
matches: import('../types').YaraMatch[];
|
|
34
|
+
reasons?: string[];
|
|
35
|
+
file?: import('../types').FileInfo;
|
|
36
|
+
durationMs?: number;
|
|
37
|
+
error?: string;
|
|
38
|
+
ok: boolean;
|
|
39
|
+
truncated?: boolean;
|
|
40
|
+
timedOut?: boolean;
|
|
41
|
+
engine?: string;
|
|
31
42
|
}
|
|
32
43
|
/**
|
|
33
44
|
* Built-in threat intelligence - known malware hashes
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "pompelmi",
|
|
3
|
-
"version": "0.
|
|
3
|
+
"version": "0.30.1",
|
|
4
4
|
"description": "Fast, private malware scanner for Node.js file uploads. TypeScript-first library with Express, Koa, Fastify, Next.js & Nuxt/Nitro adapters. Features deep ZIP inspection, YARA integration, ZIP bomb protection, and real-time threat detection. Zero cloud dependencies - scan files in-process before they hit disk. Perfect for GDPR/HIPAA compliance.",
|
|
5
5
|
"main": "./dist/pompelmi.cjs",
|
|
6
6
|
"module": "./dist/pompelmi.esm.js",
|
|
@@ -14,10 +14,95 @@
|
|
|
14
14
|
"url": "https://github.com/pompelmi/pompelmi.git"
|
|
15
15
|
},
|
|
16
16
|
"homepage": "https://pompelmi.github.io/pompelmi/",
|
|
17
|
+
"funding": {
|
|
18
|
+
"type": "github",
|
|
19
|
+
"url": "https://github.com/sponsors/pompelmi"
|
|
20
|
+
},
|
|
21
|
+
"pnpm": {
|
|
22
|
+
"overrides": {
|
|
23
|
+
"process": "0.11.10",
|
|
24
|
+
"regjsgen": "0.8.0",
|
|
25
|
+
"fflate": "0.8.2",
|
|
26
|
+
"@tokenizer/inflate>fflate": "0.8.2",
|
|
27
|
+
"file-type>fflate": "0.8.2",
|
|
28
|
+
"regexpu-core>regjsgen": "0.8.0",
|
|
29
|
+
"@babel/helper-create-regexp-features-plugin>regjsgen": "0.8.0",
|
|
30
|
+
"vitest": "2.1.9",
|
|
31
|
+
"@vitest/coverage-v8": "2.1.9",
|
|
32
|
+
"babel-plugin-polyfill-corejs3": "^0.13.0",
|
|
33
|
+
"@types/cookies": "0.9.1",
|
|
34
|
+
"@types/koa>@types/cookies": "0.9.1",
|
|
35
|
+
"pompelmi": "workspace:*",
|
|
36
|
+
"@pompelmi/core": "workspace:*",
|
|
37
|
+
"katex": "0.16.21",
|
|
38
|
+
"react": "^19.2.0",
|
|
39
|
+
"react-dom": "^19.2.0",
|
|
40
|
+
"@types/react": "^19.2.0",
|
|
41
|
+
"@types/react-dom": "^19.2.0",
|
|
42
|
+
"esbuild@<=0.24.2": ">=0.25.0",
|
|
43
|
+
"devalue@<5.3.2": ">=5.3.2",
|
|
44
|
+
"vite@>=6.0.0 <=6.3.5": ">=6.3.6",
|
|
45
|
+
"katex@>=0.12.0 <=0.16.20": ">=0.16.21",
|
|
46
|
+
"astro@<5.14.3": ">=5.14.3",
|
|
47
|
+
"vite@>=6.0.0 <=6.4.0": ">=6.4.1",
|
|
48
|
+
"astro@>=2.16.0 <5.15.5": ">=5.15.5",
|
|
49
|
+
"js-yaml@<3.14.2": ">=3.14.2",
|
|
50
|
+
"js-yaml@>=4.0.0 <4.1.1": ">=4.1.1",
|
|
51
|
+
"glob@>=10.2.0 <10.5.0": ">=10.5.0",
|
|
52
|
+
"astro@<=5.15.6": ">=5.15.8",
|
|
53
|
+
"body-parser@>=2.2.0 <2.2.1": ">=2.2.1",
|
|
54
|
+
"astro@<5.15.9": ">=5.15.9",
|
|
55
|
+
"astro@<5.15.8": ">=5.15.8",
|
|
56
|
+
"astro@>=5.2.0 <5.15.6": ">=5.15.6",
|
|
57
|
+
"mdast-util-to-hast@>=13.0.0 <13.2.1": ">=13.2.1",
|
|
58
|
+
"next@>=16.0.0-canary.0 <16.0.7": ">=16.0.7",
|
|
59
|
+
"next@>=16.0.0-beta.0 <16.0.9": ">=16.0.9",
|
|
60
|
+
"qs@<6.14.1": ">=6.14.1",
|
|
61
|
+
"preact@>=10.28.0 <10.28.2": ">=10.28.2",
|
|
62
|
+
"devalue@>=5.1.0 <5.6.2": ">=5.6.2",
|
|
63
|
+
"h3@<=1.15.4": ">=1.15.5",
|
|
64
|
+
"koa@>=2.16.2 <2.16.3": ">=2.16.3",
|
|
65
|
+
"lodash-es@>=4.0.0 <=4.17.22": ">=4.17.23",
|
|
66
|
+
"lodash@>=4.0.0 <=4.17.22": ">=4.17.23",
|
|
67
|
+
"diff@>=5.0.0 <5.2.2": ">=5.2.2"
|
|
68
|
+
}
|
|
69
|
+
},
|
|
70
|
+
"scripts": {
|
|
71
|
+
"build": "rollup -c",
|
|
72
|
+
"prepublishOnly": "npm run build && npm run pack:strict",
|
|
73
|
+
"yara:node:smoke": "tsx scripts/yara-node-smoke.ts",
|
|
74
|
+
"yara:int:smoke": "tsx scripts/yara-integration-smoke.ts",
|
|
75
|
+
"dev:remote": "tsx examples/remote-yara-server.ts",
|
|
76
|
+
"docs:build": "hugo -s docs -D -d docs",
|
|
77
|
+
"predocs:deploy": "npm run docs:build",
|
|
78
|
+
"docs:deploy": "gh-pages -d docs -b gh-pages",
|
|
79
|
+
"yara:check": "node scripts/yara-quick-check-cli.mjs",
|
|
80
|
+
"build:core": "pnpm -r --filter '!./examples/*' --if-present build",
|
|
81
|
+
"preview": "npm pack --dry-run",
|
|
82
|
+
"typecheck": "tsc -p tsconfig.json --noEmit || tsc -p tsconfig.build.json --noEmit",
|
|
83
|
+
"typecheck:strict": "tsc -p tsconfig.strict.json --noEmit",
|
|
84
|
+
"smoke": "node scripts/smoke.mjs",
|
|
85
|
+
"test:e2e": "node scripts/e2e.mjs",
|
|
86
|
+
"repo:doctor": "pnpm install --frozen-lockfile && pnpm -r --if-present build && pnpm -r --if-present test && npm run -s preview || true && node scripts/smoke.mjs && node scripts/e2e.mjs || true",
|
|
87
|
+
"audit:deps": "depcheck --skip-missing true || true",
|
|
88
|
+
"audit:code": "knip --reporter compact || true",
|
|
89
|
+
"audit:exports": "ts-prune -p tsconfig.json || true",
|
|
90
|
+
"repo:audit": "node scripts/audit.mjs",
|
|
91
|
+
"pack:check": "node scripts/pack-check.mjs",
|
|
92
|
+
"pack:list": "pnpm -r --filter \"@pompelmi/*\" --if-present pack --json --dry-run",
|
|
93
|
+
"pack:strict": "node scripts/pack-check.mjs --strict",
|
|
94
|
+
"clean": "rimraf dist",
|
|
95
|
+
"mentions:find": "node scripts/find-mentions.mjs",
|
|
96
|
+
"mentions:render": "node scripts/render-mentions-readme.mjs",
|
|
97
|
+
"mentions:inject": "node scripts/inject-mentions-readme.mjs",
|
|
98
|
+
"mentions:update": "npm run mentions:find && npm run mentions:render && npm run mentions:inject"
|
|
99
|
+
},
|
|
17
100
|
"license": "MIT",
|
|
18
101
|
"devDependencies": {
|
|
19
102
|
"@biomejs/biome": "^2.2.4",
|
|
20
|
-
"@pompelmi/
|
|
103
|
+
"@pompelmi/core": "workspace:*",
|
|
104
|
+
"@pompelmi/engine": "workspace:*",
|
|
105
|
+
"@pompelmi/engine-heuristics": "workspace:^0.1.0",
|
|
21
106
|
"@rollup/plugin-commonjs": "^28.0.6",
|
|
22
107
|
"@rollup/plugin-node-resolve": "^16.0.1",
|
|
23
108
|
"@rollup/plugin-typescript": "^12.1.4",
|
|
@@ -41,9 +126,7 @@
|
|
|
41
126
|
"tsup": "^8",
|
|
42
127
|
"tsx": "^4.20.3",
|
|
43
128
|
"typescript": "^5.9.2",
|
|
44
|
-
"vitest": "2.1.9"
|
|
45
|
-
"@pompelmi/core": "0.26.0",
|
|
46
|
-
"@pompelmi/engine": "0.17.0-dev.6"
|
|
129
|
+
"vitest": "2.1.9"
|
|
47
130
|
},
|
|
48
131
|
"peerDependencies": {
|
|
49
132
|
"react": "^18.0.0 || ^19.0.0",
|
|
@@ -110,6 +193,7 @@
|
|
|
110
193
|
"example": "examples"
|
|
111
194
|
},
|
|
112
195
|
"author": "",
|
|
196
|
+
"packageManager": "pnpm@9.12.0",
|
|
113
197
|
"resolutions": {
|
|
114
198
|
"process": "0.11.10"
|
|
115
199
|
},
|
|
@@ -120,34 +204,5 @@
|
|
|
120
204
|
"publishConfig": {
|
|
121
205
|
"access": "public"
|
|
122
206
|
},
|
|
123
|
-
"types": "./dist/types/index.d.ts"
|
|
124
|
-
|
|
125
|
-
"build": "rollup -c",
|
|
126
|
-
"yara:node:smoke": "tsx scripts/yara-node-smoke.ts",
|
|
127
|
-
"yara:int:smoke": "tsx scripts/yara-integration-smoke.ts",
|
|
128
|
-
"dev:remote": "tsx examples/remote-yara-server.ts",
|
|
129
|
-
"docs:build": "hugo -s docs -D -d docs",
|
|
130
|
-
"predocs:deploy": "npm run docs:build",
|
|
131
|
-
"docs:deploy": "gh-pages -d docs -b gh-pages",
|
|
132
|
-
"yara:check": "node scripts/yara-quick-check-cli.mjs",
|
|
133
|
-
"build:core": "pnpm -r --filter '!./examples/*' --if-present build",
|
|
134
|
-
"preview": "npm pack --dry-run",
|
|
135
|
-
"typecheck": "tsc -p tsconfig.json --noEmit || tsc -p tsconfig.build.json --noEmit",
|
|
136
|
-
"typecheck:strict": "tsc -p tsconfig.strict.json --noEmit",
|
|
137
|
-
"smoke": "node scripts/smoke.mjs",
|
|
138
|
-
"test:e2e": "node scripts/e2e.mjs",
|
|
139
|
-
"repo:doctor": "pnpm install --frozen-lockfile && pnpm -r --if-present build && pnpm -r --if-present test && npm run -s preview || true && node scripts/smoke.mjs && node scripts/e2e.mjs || true",
|
|
140
|
-
"audit:deps": "depcheck --skip-missing true || true",
|
|
141
|
-
"audit:code": "knip --reporter compact || true",
|
|
142
|
-
"audit:exports": "ts-prune -p tsconfig.json || true",
|
|
143
|
-
"repo:audit": "node scripts/audit.mjs",
|
|
144
|
-
"pack:check": "node scripts/pack-check.mjs",
|
|
145
|
-
"pack:list": "pnpm -r --filter \"@pompelmi/*\" --if-present pack --json --dry-run",
|
|
146
|
-
"pack:strict": "node scripts/pack-check.mjs --strict",
|
|
147
|
-
"clean": "rimraf dist",
|
|
148
|
-
"mentions:find": "node scripts/find-mentions.mjs",
|
|
149
|
-
"mentions:render": "node scripts/render-mentions-readme.mjs",
|
|
150
|
-
"mentions:inject": "node scripts/inject-mentions-readme.mjs",
|
|
151
|
-
"mentions:update": "npm run mentions:find && npm run mentions:render && npm run mentions:inject"
|
|
152
|
-
}
|
|
153
|
-
}
|
|
207
|
+
"types": "./dist/types/index.d.ts"
|
|
208
|
+
}
|