From 6be3b2751401e529fce6ccf8a406a057472c10a9 Mon Sep 17 00:00:00 2001 From: Snyk bot Date: Wed, 6 Jan 2021 20:46:21 +0200 Subject: [PATCH] fix: cloudevents from 3.2.0 to 4.0.0 (#376) * fix: examples/express-ex/package.json to reduce vulnerabilities The following vulnerabilities are fixed with an upgrade: - https://snyk.io/vuln/SNYK-JS-AXIOS-1038255 * fix(examples): remove the body-parser module. * When a structured formatted CloudEvent comes in, the body parser module does know how to parse it since the content type is not application/json, which resulted in an empty request body Signed-off-by: Lucas Holmquist Co-authored-by: Lucas Holmquist --- examples/express-ex/index.js | 20 ++++++++++++++++---- examples/express-ex/package.json | 3 +-- 2 files changed, 17 insertions(+), 6 deletions(-) diff --git a/examples/express-ex/index.js b/examples/express-ex/index.js index cc8e234..10ef860 100644 --- a/examples/express-ex/index.js +++ b/examples/express-ex/index.js @@ -1,17 +1,29 @@ /* eslint-disable */ const express = require("express"); -const { Receiver } = require("cloudevents"); +const { CloudEvent, HTTP } = require("cloudevents"); const app = express(); -const bodyParser = require('body-parser') -app.use(bodyParser.json()) + +app.use((req, res, next) => { + let data = ""; + + req.setEncoding("utf8"); + req.on("data", function (chunk) { + data += chunk; + }); + + req.on("end", function () { + req.body = data; + next(); + }); +}); app.post("/", (req, res) => { console.log("HEADERS", req.headers); console.log("BODY", req.body); try { - const event = Receiver.accept(req.headers, req.body); + const event = HTTP.toEvent({ headers: req.headers, body: req.body }); // respond as an event const responseEventMessage = new CloudEvent({ source: '/', diff --git a/examples/express-ex/package.json b/examples/express-ex/package.json index 74fa523..963560a 100644 --- a/examples/express-ex/package.json +++ b/examples/express-ex/package.json @@ -14,8 +14,7 @@ "author": "fabiojose@gmail.com", "license": "Apache-2.0", "dependencies": { - "body-parser": "^1.19.0", - "cloudevents": "^3.1.0", + "cloudevents": "^4.0.0", "express": "^4.17.1" } }