From 56c77e078f4d7be8ba8693f76e86fa882f6ed50f Mon Sep 17 00:00:00 2001 From: Moon Date: Wed, 27 Dec 2023 15:54:35 +0000 Subject: [PATCH] bodyparser --- package-lock.json | 54 ++++++++++++++++++++++++++++++++++++++++------- package.json | 1 + src/activity.ts | 9 ++++++-- src/index.ts | 3 ++- 4 files changed, 56 insertions(+), 11 deletions(-) diff --git a/package-lock.json b/package-lock.json index 812d97a..ab1fcef 100644 --- a/package-lock.json +++ b/package-lock.json @@ -11,6 +11,7 @@ "dependencies": { "activitypub-http-signatures": "^2.0.1", "better-sqlite3": "^9.2.2", + "body-parser": "^1.20.2", "express": "^4.18.2", "knex": "^3.1.0", "markdown-it": "^14.0.0", @@ -900,12 +901,12 @@ } }, "node_modules/body-parser": { - "version": "1.20.1", - "resolved": "https://registry.npmjs.org/body-parser/-/body-parser-1.20.1.tgz", - "integrity": "sha512-jWi7abTbYwajOytWCQc37VulmWiRae5RyTpaCyDcS5/lMdtwSz5lOpDE67srw/HYe35f1z3fDQw+3txg7gNtWw==", + "version": "1.20.2", + "resolved": "https://registry.npmjs.org/body-parser/-/body-parser-1.20.2.tgz", + "integrity": "sha512-ml9pReCu3M61kGlqoTm2umSXTlRTuGTx0bfYj+uIUKKYycG5NtSbeetV3faSU6R7ajOPw0g/J1PvK4qNy7s5bA==", "dependencies": { "bytes": "3.1.2", - "content-type": "~1.0.4", + "content-type": "~1.0.5", "debug": "2.6.9", "depd": "2.0.0", "destroy": "1.2.0", @@ -913,7 +914,7 @@ "iconv-lite": "0.4.24", "on-finished": "2.4.1", "qs": "6.11.0", - "raw-body": "2.5.1", + "raw-body": "2.5.2", "type-is": "~1.6.18", "unpipe": "1.0.0" }, @@ -1741,6 +1742,29 @@ "node": ">= 0.10.0" } }, + "node_modules/express/node_modules/body-parser": { + "version": "1.20.1", + "resolved": "https://registry.npmjs.org/body-parser/-/body-parser-1.20.1.tgz", + "integrity": "sha512-jWi7abTbYwajOytWCQc37VulmWiRae5RyTpaCyDcS5/lMdtwSz5lOpDE67srw/HYe35f1z3fDQw+3txg7gNtWw==", + "dependencies": { + "bytes": "3.1.2", + "content-type": "~1.0.4", + "debug": "2.6.9", + "depd": "2.0.0", + "destroy": "1.2.0", + "http-errors": "2.0.0", + "iconv-lite": "0.4.24", + "on-finished": "2.4.1", + "qs": "6.11.0", + "raw-body": "2.5.1", + "type-is": "~1.6.18", + "unpipe": "1.0.0" + }, + "engines": { + "node": ">= 0.8", + "npm": "1.2.8000 || >= 1.4.16" + } + }, "node_modules/express/node_modules/debug": { "version": "2.6.9", "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz", @@ -1754,6 +1778,20 @@ "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", "integrity": "sha512-Tpp60P6IUJDTuOq/5Z8cdskzJujfwqfOTkrwIwj7IRISpnkJnT6SyJ4PCPnGMoFjC9ddhal5KVIYtAt97ix05A==" }, + "node_modules/express/node_modules/raw-body": { + "version": "2.5.1", + "resolved": "https://registry.npmjs.org/raw-body/-/raw-body-2.5.1.tgz", + "integrity": "sha512-qqJBtEyVgS0ZmPGdCFPWJ3FreoqvG4MVQln/kCgF7Olq95IbOp0/BWyMwbdtn4VTvkM8Y7khCQ2Xgk/tcrCXig==", + "dependencies": { + "bytes": "3.1.2", + "http-errors": "2.0.0", + "iconv-lite": "0.4.24", + "unpipe": "1.0.0" + }, + "engines": { + "node": ">= 0.8" + } + }, "node_modules/fast-deep-equal": { "version": "3.1.3", "resolved": "https://registry.npmjs.org/fast-deep-equal/-/fast-deep-equal-3.1.3.tgz", @@ -3490,9 +3528,9 @@ } }, "node_modules/raw-body": { - "version": "2.5.1", - "resolved": "https://registry.npmjs.org/raw-body/-/raw-body-2.5.1.tgz", - "integrity": "sha512-qqJBtEyVgS0ZmPGdCFPWJ3FreoqvG4MVQln/kCgF7Olq95IbOp0/BWyMwbdtn4VTvkM8Y7khCQ2Xgk/tcrCXig==", + "version": "2.5.2", + "resolved": "https://registry.npmjs.org/raw-body/-/raw-body-2.5.2.tgz", + "integrity": "sha512-8zGqypfENjCIqGhgXToC8aB2r7YrBX+AQAfIPs/Mlk+BtPTztOvTS01NRW/3Eh60J+a48lt8qsCzirQ6loCVfA==", "dependencies": { "bytes": "3.1.2", "http-errors": "2.0.0", diff --git a/package.json b/package.json index ace95e5..a693f13 100644 --- a/package.json +++ b/package.json @@ -30,6 +30,7 @@ "dependencies": { "activitypub-http-signatures": "^2.0.1", "better-sqlite3": "^9.2.2", + "body-parser": "^1.20.2", "express": "^4.18.2", "knex": "^3.1.0", "markdown-it": "^14.0.0", diff --git a/src/activity.ts b/src/activity.ts index 63ca258..5ede2ed 100644 --- a/src/activity.ts +++ b/src/activity.ts @@ -21,13 +21,15 @@ export const handleInboxPost = async (req: Request, res: Response) => { return; } - const body = await streamToString(req.body); + const body = req.body; // await streamToString(req.body); let activity: Record; try { activity = JSON.parse(body); } catch (e) { console.warn("body json parse failed"); + console.error(typeof req.body); + console.error(req.body, body); res.status(403).end(); return; } @@ -75,6 +77,9 @@ export const handleInboxPost = async (req: Request, res: Response) => { await addFollower(actor.id, follower.id, follower.preferredUsername, follower.name, follower.inbox, follower.endpoints?.sharedInbox); + const response = { + }; + console.log("Done handling inbox POST follow request"); res.status(200); return; @@ -223,4 +228,4 @@ export const userToPerson = (user: User) => { publicKeyPem: user.public_key } }; -}; \ No newline at end of file +}; diff --git a/src/index.ts b/src/index.ts index af91e73..03aa903 100644 --- a/src/index.ts +++ b/src/index.ts @@ -1,4 +1,5 @@ import express, { Request } from "express"; +import bodyParser from "body-parser"; import { toCollection as getOutbox } from "./outbox.js"; import { getById as getUserById, getNickname, get as getUserByNickname, getId as getUserId, User } from "./user.js"; import { Routes } from "./router.js"; @@ -11,7 +12,7 @@ const port = parseInt(process.env.port || "8080"); const app = express(); app.use( - express.urlencoded({ extended: true }) + bodyParser.text({ type: "*/*" }) ); app.post(Routes.inbox, handleInboxPost);