1 line
No EOL
2.4 KiB
JavaScript
1 line
No EOL
2.4 KiB
JavaScript
(()=>{var e={};e.id=9662,e.ids=[9662],e.modules={7413:(e,t,r)=>{"use strict";r.r(t),r.d(t,{patchFetch:()=>g,routeModule:()=>m,serverHooks:()=>x,workAsyncStorage:()=>v,workUnitAsyncStorage:()=>w});var s={};r.r(s),r.d(s,{GET:()=>h,dynamic:()=>l,revalidate:()=>c});var n=r(96559),o=r(48088),a=r(37719);let i=require("fs/promises");var p=r(29021),u=r(33873),d=r.n(u);let l="force-dynamic",c=0,f=process.env.FILES_ROOT||"/app/files";async function h(e){try{let{searchParams:t}=new URL(e.url),r=t.get("path");if(!r)return new Response(JSON.stringify({error:"Missing path"}),{status:400});let s=function(e,t){let r=d().normalize("/"+(t||"/")),s=d().resolve(e,"."+r);if(!s.startsWith(d().resolve(e)))throw Error("Invalid path");return s}(f,r),n=await (0,i.stat)(s);if(n.isDirectory())return new Response(JSON.stringify({error:"Is a directory"}),{status:400});let o=(0,p.createReadStream)(s),a=d().basename(s);return new Response(o,{headers:{"Content-Type":"application/octet-stream","Content-Length":String(n.size),"Content-Disposition":`attachment; filename*=UTF-8''${encodeURIComponent(a)}`,"Cache-Control":"no-store"}})}catch(t){let e=t?.message||"Not found";return new Response(JSON.stringify({error:e}),{status:"Invalid path"===e?400:404,headers:{"Cache-Control":"no-store"}})}}let m=new n.AppRouteRouteModule({definition:{kind:o.RouteKind.APP_ROUTE,page:"/api/files/download/route",pathname:"/api/files/download",filename:"route",bundlePath:"app/api/files/download/route"},resolvedPagePath:"/app/app/api/files/download/route.ts",nextConfigOutput:"",userland:s}),{workAsyncStorage:v,workUnitAsyncStorage:w,serverHooks:x}=m;function g(){return(0,a.patchFetch)({workAsyncStorage:v,workUnitAsyncStorage:w})}},10846:e=>{"use strict";e.exports=require("next/dist/compiled/next-server/app-page.runtime.prod.js")},29021:e=>{"use strict";e.exports=require("fs")},29294:e=>{"use strict";e.exports=require("next/dist/server/app-render/work-async-storage.external.js")},33873:e=>{"use strict";e.exports=require("path")},44870:e=>{"use strict";e.exports=require("next/dist/compiled/next-server/app-route.runtime.prod.js")},63033:e=>{"use strict";e.exports=require("next/dist/server/app-render/work-unit-async-storage.external.js")},78335:()=>{},96487:()=>{},96559:(e,t,r)=>{"use strict";e.exports=r(44870)}};var t=require("../../../../webpack-runtime.js");t.C(e);var r=e=>t(t.s=e),s=t.X(0,[7719],()=>r(7413));module.exports=s})(); |