pompelmi 0.3.1 → 0.3.3
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 +47 -22
- package/package.json +1 -1
package/README.md
CHANGED
|
@@ -280,22 +280,39 @@ The adapters share the same behavior and defaults:
|
|
|
280
280
|
|
|
281
281
|
## Architecture & UML
|
|
282
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
|
+
|
|
286
|
+
|
|
283
287
|
### Upload scanning flow
|
|
288
|
+
<p align="center">
|
|
289
|
+
<img alt="Upload scanning flow diagram" src="https://mermaid.ink/img/eyJjb2RlIjogImZsb3djaGFydCBURFxuICBBW1wiQ2xpZW50IHVwbG9hZHMgZmlsZShzKVwiXSAtLT4gQltcIldlYiBBcHAgUm91dGVcIl1cbiAgQiAtLT4gQ3tcIlByZS1maWx0ZXJzPGJyLz4oZXh0LCBzaXplLCBNSU1FKVwifVxuICBDIC0tIGZhaWwgLS0+IFhbXCJIVFRQIDR4eFwiXVxuICBDIC0tIHBhc3MgLS0+IER7XCJJcyBaSVA/XCJ9XG4gIEQgLS0geWVzIC0tPiBFW1wiSXRlcmF0ZSBlbnRyaWVzPGJyLz4obGltaXRzICYgc2NhbilcIl1cbiAgRSAtLT4gRntcIlZlcmRpY3Q/XCJ9XG4gIEQgLS0gbm8gLS0+IEZ7XCJTY2FuIGJ5dGVzXCJ9XG4gIEYgLS0gbWFsaWNpb3VzL3N1c3BpY2lvdXMgLS0+IFlbXCJIVFRQIDQyMiBibG9ja2VkXCJdXG4gIEYgLS0gY2xlYW4gLS0+IFpbXCJIVFRQIDIwMCBvayArIHJlc3VsdHNcIl0iLCAibWVybWFpZCI6IHsidGhlbWUiOiAiZGVmYXVsdCJ9fQ==?bgColor=white" />
|
|
290
|
+
</p>
|
|
291
|
+
|
|
292
|
+
<details>
|
|
293
|
+
<summary>Mermaid source</summary>
|
|
284
294
|
|
|
285
295
|
```mermaid
|
|
286
296
|
flowchart TD
|
|
287
|
-
A[Client uploads file(s)] --> B[Web App Route]
|
|
288
|
-
B --> C{Pre-filters<br/>(ext, size, MIME)}
|
|
289
|
-
C -- fail --> X[HTTP 4xx]
|
|
290
|
-
C -- pass --> D{Is ZIP?}
|
|
291
|
-
D -- yes --> E[Iterate entries<br/>(limits & scan)]
|
|
292
|
-
E --> F{Verdict?}
|
|
293
|
-
D -- no --> F{Scan bytes}
|
|
294
|
-
F -- malicious/suspicious --> Y[HTTP 422 blocked]
|
|
295
|
-
F -- clean --> Z[HTTP 200 ok + results]
|
|
297
|
+
A["Client uploads file(s)"] --> B["Web App Route"]
|
|
298
|
+
B --> C{"Pre-filters<br/>(ext, size, MIME)"}
|
|
299
|
+
C -- fail --> X["HTTP 4xx"]
|
|
300
|
+
C -- pass --> D{"Is ZIP?"}
|
|
301
|
+
D -- yes --> E["Iterate entries<br/>(limits & scan)"]
|
|
302
|
+
E --> F{"Verdict?"}
|
|
303
|
+
D -- no --> F{"Scan bytes"}
|
|
304
|
+
F -- malicious/suspicious --> Y["HTTP 422 blocked"]
|
|
305
|
+
F -- clean --> Z["HTTP 200 ok + results"]
|
|
296
306
|
```
|
|
307
|
+
</details>
|
|
297
308
|
|
|
298
309
|
### Sequence (App ↔ pompelmi ↔ YARA)
|
|
310
|
+
<p align="center">
|
|
311
|
+
<img alt="App ↔ pompelmi ↔ YARA sequence diagram" src="https://mermaid.ink/img/eyJjb2RlIjogInNlcXVlbmNlRGlhZ3JhbVxuICBwYXJ0aWNpcGFudCBVIGFzIFVzZXJcbiAgcGFydGljaXBhbnQgQSBhcyBBcHAgUm91dGUgKC91cGxvYWQpXG4gIHBhcnRpY2lwYW50IFAgYXMgcG9tcGVsbWkgKGFkYXB0ZXIpXG4gIHBhcnRpY2lwYW50IFkgYXMgWUFSQSBlbmdpbmVcblxuICBVLT4+QTogUE9TVCBtdWx0aXBhcnQvZm9ybS1kYXRhXG4gIEEtPj5QOiBndWFyZChmaWxlcywgcG9saWNpZXMpXG4gIFAtPj5QOiBNSU1FIHNuaWZmICsgc2l6ZSArIGV4dCBjaGVja3NcbiAgYWx0IFpJUCBhcmNoaXZlXG4gICAgUC0+PlA6IHVucGFjayBlbnRyaWVzIHdpdGggbGltaXRzXG4gIGVuZFxuICBQLT4+WTogc2NhbihieXRlcylcbiAgWS0tPj5QOiBtYXRjaGVzW11cbiAgUC0tPj5BOiB2ZXJkaWN0IChjbGVhbi9zdXNwaWNpb3VzL21hbGljaW91cylcbiAgQS0tPj5VOiAyMDAgb3IgNHh4LzQyMiB3aXRoIHJlYXNvbiIsICJtZXJtYWlkIjogeyJ0aGVtZSI6ICJkZWZhdWx0In19?bgColor=white" />
|
|
312
|
+
</p>
|
|
313
|
+
|
|
314
|
+
<details>
|
|
315
|
+
<summary>Mermaid source</summary>
|
|
299
316
|
|
|
300
317
|
```mermaid
|
|
301
318
|
sequenceDiagram
|
|
@@ -315,21 +332,28 @@ sequenceDiagram
|
|
|
315
332
|
P-->>A: verdict (clean/suspicious/malicious)
|
|
316
333
|
A-->>U: 200 or 4xx/422 with reason
|
|
317
334
|
```
|
|
335
|
+
</details>
|
|
318
336
|
|
|
319
337
|
### Components (monorepo)
|
|
338
|
+
<p align="center">
|
|
339
|
+
<img alt="Monorepo components diagram" src="https://mermaid.ink/img/eyJjb2RlIjogImZsb3djaGFydCBMUlxuICBzdWJncmFwaCBSZXBvXG4gICAgY29yZVtcInBvbXBlbG1pIChjb3JlKVwiXVxuICAgIGV4cHJlc3NbXCJAcG9tcGVsbWkvZXhwcmVzcy1taWRkbGV3YXJlXCJdXG4gICAga29hW1wiQHBvbXBlbG1pL2tvYS1taWRkbGV3YXJlXCJdXG4gICAgbmV4dFtcIkBwb21wZWxtaS9uZXh0LXVwbG9hZFwiXVxuICAgIGZhc3RpZnkoKFwiZmFzdGlmeS1wbHVnaW4gwrcgcGxhbm5lZFwiKSlcbiAgICBuZXN0KChcIm5lc3RqcyDCtyBwbGFubmVkXCIpKVxuICAgIHJlbWl4KChcInJlbWl4IMK3IHBsYW5uZWRcIikpXG4gICAgaGFwaSgoXCJoYXBpLXBsdWdpbiDCtyBwbGFubmVkXCIpKVxuICAgIHN2ZWx0ZSgoXCJzdmVsdGVraXQgwrcgcGxhbm5lZFwiKSlcbiAgZW5kXG4gIGNvcmUgLS0+IGV4cHJlc3NcbiAgY29yZSAtLT4ga29hXG4gIGNvcmUgLS0+IG5leHRcbiAgY29yZSAtLi0+IGZhc3RpZnlcbiAgY29yZSAtLi0+IG5lc3RcbiAgY29yZSAtLi0+IHJlbWl4XG4gIGNvcmUgLS4tPiBoYXBpXG4gIGNvcmUgLS4tPiBzdmVsdGUiLCAibWVybWFpZCI6IHsidGhlbWUiOiAiZGVmYXVsdCJ9fQ==?bgColor=white" />
|
|
340
|
+
</p>
|
|
341
|
+
|
|
342
|
+
<details>
|
|
343
|
+
<summary>Mermaid source</summary>
|
|
320
344
|
|
|
321
345
|
```mermaid
|
|
322
|
-
|
|
346
|
+
flowchart LR
|
|
323
347
|
subgraph Repo
|
|
324
|
-
core[pompelmi (core)]
|
|
325
|
-
express[@pompelmi/express-middleware]
|
|
326
|
-
koa[@pompelmi/koa-middleware]
|
|
327
|
-
next[@pompelmi/next-upload]
|
|
328
|
-
fastify
|
|
329
|
-
nest
|
|
330
|
-
remix
|
|
331
|
-
hapi
|
|
332
|
-
svelte
|
|
348
|
+
core["pompelmi (core)"]
|
|
349
|
+
express["@pompelmi/express-middleware"]
|
|
350
|
+
koa["@pompelmi/koa-middleware"]
|
|
351
|
+
next["@pompelmi/next-upload"]
|
|
352
|
+
fastify(("fastify-plugin · planned"))
|
|
353
|
+
nest(("nestjs · planned"))
|
|
354
|
+
remix(("remix · planned"))
|
|
355
|
+
hapi(("hapi-plugin · planned"))
|
|
356
|
+
svelte(("sveltekit · planned"))
|
|
333
357
|
end
|
|
334
358
|
core --> express
|
|
335
359
|
core --> koa
|
|
@@ -340,6 +364,7 @@ graph LR
|
|
|
340
364
|
core -.-> hapi
|
|
341
365
|
core -.-> svelte
|
|
342
366
|
```
|
|
367
|
+
</details>
|
|
343
368
|
|
|
344
369
|
---
|
|
345
370
|
|
|
@@ -430,12 +455,12 @@ PRs and issues are welcome!
|
|
|
430
455
|
|
|
431
456
|
## Versioning
|
|
432
457
|
|
|
433
|
-
Channel: **`0.
|
|
434
|
-
Expect minor API changes before a stable `0.
|
|
458
|
+
Channel: **`0.3.3`**
|
|
459
|
+
Expect minor API changes before a stable `0.3.3`.
|
|
435
460
|
|
|
436
461
|
Suggested publish:
|
|
437
462
|
```bash
|
|
438
|
-
npm version 0.
|
|
463
|
+
npm version 0.3.3
|
|
439
464
|
npm publish --tag next
|
|
440
465
|
```
|
|
441
466
|
|