pompelmi 0.3.0 → 0.3.2
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 +25 -20
- package/package.json +1 -1
package/README.md
CHANGED
|
@@ -36,6 +36,8 @@
|
|
|
36
36
|
<img alt="ESLint" src="https://img.shields.io/badge/ESLint-4B32C3?style=for-the-badge&logo=eslint&logoColor=white" />
|
|
37
37
|
<img alt="Prettier" src="https://img.shields.io/badge/Prettier-F7B93E?style=for-the-badge&logo=prettier&logoColor=white" />
|
|
38
38
|
</p>
|
|
39
|
+
|
|
40
|
+
|
|
39
41
|
-->
|
|
40
42
|
|
|
41
43
|
<p align="center">
|
|
@@ -43,7 +45,7 @@
|
|
|
43
45
|
<img alt="npm" src="https://img.shields.io/npm/v/pompelmi?label=pompelmi">
|
|
44
46
|
</a>
|
|
45
47
|
<a href="https://www.npmjs.com/package/pompelmi">
|
|
46
|
-
<img alt="downloads" src="https://img.shields.io/npm/
|
|
48
|
+
<img alt="downloads" src="https://img.shields.io/npm/d18m/pompelmi?label=downloads">
|
|
47
49
|
</a>
|
|
48
50
|
<a href="https://github.com/pompelmi/pompelmi/blob/main/LICENSE">
|
|
49
51
|
<img alt="license" src="https://img.shields.io/npm/l/pompelmi">
|
|
@@ -278,19 +280,22 @@ The adapters share the same behavior and defaults:
|
|
|
278
280
|
|
|
279
281
|
## Architecture & UML
|
|
280
282
|
|
|
283
|
+
> **Note:** Diagrams are embedded as images via mermaid.ink so they render on GitHub, npm, and other Markdown viewers. The Mermaid source is included below each image.
|
|
284
|
+
> **Tip:** To avoid parser issues across renderers, labels use quotes inside node shapes (e.g., `A["text"]`, `C{"text"}`) when they include parentheses, slashes, or other symbols.
|
|
285
|
+
|
|
281
286
|
### Upload scanning flow
|
|
282
287
|
|
|
283
288
|
```mermaid
|
|
284
289
|
flowchart TD
|
|
285
|
-
A[Client uploads file(s)] --> B[Web App Route]
|
|
286
|
-
B --> C{Pre-filters<br/>(ext, size, MIME)}
|
|
287
|
-
C -- fail --> X[HTTP 4xx]
|
|
288
|
-
C -- pass --> D{Is ZIP?}
|
|
289
|
-
D -- yes --> E[Iterate entries<br/>(limits & scan)]
|
|
290
|
-
E --> F{Verdict?}
|
|
291
|
-
D -- no --> F{Scan bytes}
|
|
292
|
-
F -- malicious/suspicious --> Y[HTTP 422 blocked]
|
|
293
|
-
F -- clean --> Z[HTTP 200 ok + results]
|
|
290
|
+
A["Client uploads file(s)"] --> B["Web App Route"]
|
|
291
|
+
B --> C{"Pre-filters<br/>(ext, size, MIME)"}
|
|
292
|
+
C -- fail --> X["HTTP 4xx"]
|
|
293
|
+
C -- pass --> D{"Is ZIP?"}
|
|
294
|
+
D -- yes --> E["Iterate entries<br/>(limits & scan)"]
|
|
295
|
+
E --> F{"Verdict?"}
|
|
296
|
+
D -- no --> F{"Scan bytes"}
|
|
297
|
+
F -- malicious/suspicious --> Y["HTTP 422 blocked"]
|
|
298
|
+
F -- clean --> Z["HTTP 200 ok + results"]
|
|
294
299
|
```
|
|
295
300
|
|
|
296
301
|
### Sequence (App ↔ pompelmi ↔ YARA)
|
|
@@ -317,17 +322,17 @@ sequenceDiagram
|
|
|
317
322
|
### Components (monorepo)
|
|
318
323
|
|
|
319
324
|
```mermaid
|
|
320
|
-
|
|
325
|
+
flowchart LR
|
|
321
326
|
subgraph Repo
|
|
322
|
-
core[pompelmi (core)]
|
|
323
|
-
express[@pompelmi/express-middleware]
|
|
324
|
-
koa[@pompelmi/koa-middleware]
|
|
325
|
-
next[@pompelmi/next-upload]
|
|
326
|
-
fastify
|
|
327
|
-
nest
|
|
328
|
-
remix
|
|
329
|
-
hapi
|
|
330
|
-
svelte
|
|
327
|
+
core["pompelmi (core)"]
|
|
328
|
+
express["@pompelmi/express-middleware"]
|
|
329
|
+
koa["@pompelmi/koa-middleware"]
|
|
330
|
+
next["@pompelmi/next-upload"]
|
|
331
|
+
fastify(("fastify-plugin · planned"))
|
|
332
|
+
nest(("nestjs · planned"))
|
|
333
|
+
remix(("remix · planned"))
|
|
334
|
+
hapi(("hapi-plugin · planned"))
|
|
335
|
+
svelte(("sveltekit · planned"))
|
|
331
336
|
end
|
|
332
337
|
core --> express
|
|
333
338
|
core --> koa
|