exportasyncfunctionPOST(request: Request){try{requireSameOrigin(request);constuser=awaitrequireUser();constform=awaitrequest.formData();consttoken=String(form.get("token")||"");consthash=createHash("sha256").update(token).digest("hex");constinvite=db.prepare("SELECT id,source_id,role FROM source_invites WHERE token_hash=? AND used_at IS NULL AND expires_at>CURRENT_TIMESTAMP").get(hash)as{id: number;source_id: number;role: string}|undefined;if(!invite)thrownewError("邀請不存在、已使用或已過期");db.transaction(()=>{db.prepare("INSERT INTO source_members(source_id,user_id,role) VALUES(?,?,?) ON CONFLICT(source_id,user_id) DO UPDATE SET role=excluded.role").run(invite.source_id,user.id,invite.role);db.prepare("UPDATE source_invites SET used_at=CURRENT_TIMESTAMP WHERE id=?").run(invite.id);})();audit(user.id,"source.invite.accept","source",invite.source_id,{role: invite.role});returnNextResponse.redirect(externalUrl(request,"/dashboard?source=joined"));}catch(error){returnNextResponse.redirect(externalUrl(request,"/dashboard?error="+encodeURIComponent(errorinstanceofError?error.message:"invite")));}}