馃殌 New Features
-
feat(parse-data): add route-level override and advanced body parsing options
parseData()can now be used globally (app.use(parseData())) or per route (router.post("/x", parseData(...))), allowing fine-grained control over request parsing. -
Added
body.inflateoption for automatic decompression of gzip, deflate, and br-encoded request bodies. -
Added
body.typefilter to restrict parsing to specific MIME types (string or RegExp). -
Added
body.rawoption to store the unparsed request body (Buffer) inreq.rawBody, useful for signature verification (e.g., HMAC webhooks). -
Added
body.limitto enforce a maximum request body size (default 10 MB). -
Added
security.verifycallback to perform custom request verification before parsing (ideal for webhook authentication). -
Added unified MIME-type matching via the new
matchMimeTypehelper function.
馃洝 Security Enhancements
-
Improved
security.escapeSQLto consistently sanitize data across:- Query strings
- Route parameters
- JSON body
- URL-encoded and multipart form data
-
Protection against common SQL injection patterns:
- Tautology (
' OR '1'='1) UNION SELECT- Comment-based and stacked queries
- Time-based injections (
SLEEP,WAITFOR DELAY)
- Tautology (
鈿欙笍 Improvements
-
parseDatais now fully compatible with Express body-parser behavior, supporting:- JSON (
application/json) - URL-encoded (
application/x-www-form-urlencoded) - Multipart form-data (
multipart/form-data) - Raw (
application/octet-stream) and text (text/*)
- JSON (
-
Standardized error responses:
400 Invalid Request Data400 Invalid Compressed Data415 Unsupported Content-Encoding413 Payload Too Large
-
Internal refactor for async-safe stream reading and memory usage.
-
Partial parsing support when type does not match (only params and query are processed).
-
Enhanced error handling for invalid compression and oversized payloads.
馃И Tests
-
Expanded end-to-end test coverage for:
- Global and route-level parsing
- Compression (gzip, deflate, br)
- Raw body capture (
rawBody) - Payload limit enforcement
- MIME type filtering
- SQL injection sanitization and malformed payloads
-
Achieved 100% test coverage for all parsing modes and error scenarios in the
parse-datamodule.