1 line
No EOL
2.4 KiB
JavaScript
1 line
No EOL
2.4 KiB
JavaScript
(()=>{var e={};e.id=4141,e.ids=[4141],e.modules={3295:e=>{"use strict";e.exports=require("next/dist/server/app-render/after-task-async-storage.external.js")},10846:e=>{"use strict";e.exports=require("next/dist/compiled/next-server/app-page.runtime.prod.js")},29294:e=>{"use strict";e.exports=require("next/dist/server/app-render/work-async-storage.external.js")},39061:(e,t,r)=>{"use strict";r.r(t),r.d(t,{patchFetch:()=>w,routeModule:()=>f,serverHooks:()=>m,workAsyncStorage:()=>g,workUnitAsyncStorage:()=>h});var s={};r.r(s),r.d(s,{GET:()=>x});var n=r(96559),a=r(48088),o=r(37719),i=r(32190),p=r(76760),u=r.n(p),l=r(51455),d=r.n(l);let c="/app/files";async function x(e){try{let t=new URL(e.url).searchParams.get("path");if(!t)return i.NextResponse.json({error:"Missing path"},{status:400});let r=u().normalize("/"+t).replace(/^\/+/,"/"),s=u().resolve(c,"."+r);if(!s.startsWith(c))return i.NextResponse.json({error:"Invalid path"},{status:400});let n=await d().stat(s).catch(()=>null);if(!n||!n.isFile())return i.NextResponse.json({error:"Not a file"},{status:400});let a=await d().readFile(s),o=u().extname(s).toLowerCase(),p=".pdf"===o?"application/pdf":".png"===o?"image/png":".jpg"===o||".jpeg"===o?"image/jpeg":".webp"===o?"image/webp":".txt"===o?"text/plain; charset=utf-8":"application/octet-stream";return new Response(a,{headers:{"Content-Type":p,"Content-Length":String(a.byteLength),"Content-Disposition":`inline; filename="${u().basename(s)}"`,"Cache-Control":"no-store"}})}catch(e){return i.NextResponse.json({error:e?.message??"Unknown error"},{status:500})}}let f=new n.AppRouteRouteModule({definition:{kind:a.RouteKind.APP_ROUTE,page:"/api/files/download-file/route",pathname:"/api/files/download-file",filename:"route",bundlePath:"app/api/files/download-file/route"},resolvedPagePath:"/app/app/api/files/download-file/route.ts",nextConfigOutput:"",userland:s}),{workAsyncStorage:g,workUnitAsyncStorage:h,serverHooks:m}=f;function w(){return(0,o.patchFetch)({workAsyncStorage:g,workUnitAsyncStorage:h})}},44870:e=>{"use strict";e.exports=require("next/dist/compiled/next-server/app-route.runtime.prod.js")},51455:e=>{"use strict";e.exports=require("node:fs/promises")},63033:e=>{"use strict";e.exports=require("next/dist/server/app-render/work-unit-async-storage.external.js")},76760:e=>{"use strict";e.exports=require("node:path")},78335:()=>{},96487:()=>{}};var t=require("../../../../webpack-runtime.js");t.C(e);var r=e=>t(t.s=e),s=t.X(0,[7719,580],()=>r(39061));module.exports=s})(); |