fix: remove dead upgrade-chain entries from patch-ap-mastodon-misc
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
This commit is contained in:
@@ -373,22 +373,6 @@ const PATCHES = [
|
||||
}`,
|
||||
},
|
||||
|
||||
// ── patch-inbox-skip-view-activity-parse: fromExpressRequest fix ──────────
|
||||
{
|
||||
name: "from-express-request-activity-json-fix",
|
||||
files: apPath("lib/federation-bridge.js"),
|
||||
marker: "// PeerTube activity+json body fix",
|
||||
oldSnippet: ` if (ct.includes("application/json")) {
|
||||
body = JSON.stringify(req.body);
|
||||
} else if (ct.includes("application/x-www-form-urlencoded")) {`,
|
||||
newSnippet: ` // PeerTube activity+json body fix
|
||||
if (ct.includes("application/json") || ct.includes("activity+json") || ct.includes("ld+json")) {
|
||||
// Use original raw bytes when available (set by createFedifyMiddleware buffer guard).
|
||||
// JSON.stringify() changes byte layout, breaking Fedify's HTTP Signature Digest check.
|
||||
body = req._rawBody || JSON.stringify(req.body); // raw body digest fix
|
||||
} else if (ct.includes("application/x-www-form-urlencoded")) {`,
|
||||
},
|
||||
|
||||
// ── patch-inbox-skip-view-activity-parse: upgrade v1 raw-body fix ─────────
|
||||
{
|
||||
name: "from-express-request-raw-body-fix",
|
||||
@@ -427,91 +411,6 @@ const PATCHES = [
|
||||
req.body = JSON.parse(_raw.toString("utf8"));`,
|
||||
},
|
||||
|
||||
// ── patch-inbox-skip-view-activity-parse: v2 guard replacing v1 ───────────
|
||||
{
|
||||
name: "inbox-skip-view-activity-parse-v2",
|
||||
files: apPath("lib/federation-bridge.js"),
|
||||
marker: "// PeerTube View parse skip v2",
|
||||
oldSnippet: ` // Short-circuit PeerTube View (WatchAction) activities before Fedify
|
||||
// attempts JSON-LD parsing. Fedify's vocab parser throws on PeerTube's
|
||||
// Schema.org extensions (e.g. InteractionCounter), causing a
|
||||
// "Failed to parse activity" error. Return 200 to prevent retries.
|
||||
// PeerTube View parse skip
|
||||
if (req.method === "POST" && req.body?.type === "View") {
|
||||
return res.status(200).end();
|
||||
}
|
||||
const request = fromExpressRequest(req);`,
|
||||
newSnippet: ` // Short-circuit PeerTube View (WatchAction) activities before Fedify
|
||||
// attempts JSON-LD parsing. Fedify's vocab parser throws on PeerTube's
|
||||
// Schema.org extensions (e.g. InteractionCounter), causing a
|
||||
// "Failed to parse activity" error. Return 200 to prevent retries.
|
||||
// PeerTube View parse skip v2
|
||||
const _apct = req.headers["content-type"] || "";
|
||||
if (
|
||||
req.method === "POST" &&
|
||||
!req.body &&
|
||||
req.readable &&
|
||||
(_apct.includes("activity+json") || _apct.includes("ld+json"))
|
||||
) {
|
||||
// Express doesn't parse application/activity+json, so buffer it ourselves.
|
||||
const _chunks = [];
|
||||
for await (const _chunk of req) {
|
||||
_chunks.push(Buffer.isBuffer(_chunk) ? _chunk : Buffer.from(_chunk));
|
||||
}
|
||||
const _raw = Buffer.concat(_chunks); // raw body digest fix
|
||||
req._rawBody = _raw; // Preserve original bytes for Fedify HTTP Signature Digest verification
|
||||
try {
|
||||
req.body = JSON.parse(_raw.toString("utf8"));
|
||||
} catch {
|
||||
req.body = {};
|
||||
}
|
||||
}
|
||||
if (req.method === "POST" && req.body?.type === "View") {
|
||||
return res.status(200).end();
|
||||
}
|
||||
const request = fromExpressRequest(req);`,
|
||||
},
|
||||
|
||||
// ── patch-inbox-skip-view-activity-parse: v2 guard on fresh file ──────────
|
||||
{
|
||||
name: "inbox-skip-view-activity-parse-v2-fresh",
|
||||
files: apPath("lib/federation-bridge.js"),
|
||||
marker: "// PeerTube View parse skip v2",
|
||||
oldSnippet: ` return async (req, res, next) => {
|
||||
try {
|
||||
const request = fromExpressRequest(req);`,
|
||||
newSnippet: ` return async (req, res, next) => {
|
||||
try {
|
||||
// Short-circuit PeerTube View (WatchAction) activities before Fedify
|
||||
// attempts JSON-LD parsing. Fedify's vocab parser throws on PeerTube's
|
||||
// Schema.org extensions (e.g. InteractionCounter), causing a
|
||||
// "Failed to parse activity" error. Return 200 to prevent retries.
|
||||
// PeerTube View parse skip v2
|
||||
const _apct = req.headers["content-type"] || "";
|
||||
if (
|
||||
req.method === "POST" &&
|
||||
!req.body &&
|
||||
req.readable &&
|
||||
(_apct.includes("activity+json") || _apct.includes("ld+json"))
|
||||
) {
|
||||
// Express doesn't parse application/activity+json, so buffer it ourselves.
|
||||
const _chunks = [];
|
||||
for await (const _chunk of req) {
|
||||
_chunks.push(Buffer.isBuffer(_chunk) ? _chunk : Buffer.from(_chunk));
|
||||
}
|
||||
const _raw = Buffer.concat(_chunks); // raw body digest fix
|
||||
req._rawBody = _raw; // Preserve original bytes for Fedify HTTP Signature Digest verification
|
||||
try {
|
||||
req.body = JSON.parse(_raw.toString("utf8"));
|
||||
} catch {
|
||||
req.body = {};
|
||||
}
|
||||
}
|
||||
if (req.method === "POST" && req.body?.type === "View") {
|
||||
return res.status(200).end();
|
||||
}
|
||||
const request = fromExpressRequest(req);`,
|
||||
},
|
||||
];
|
||||
|
||||
// ── Run standard patches ───────────────────────────────────────────────────────
|
||||
|
||||
Reference in New Issue
Block a user