| Server IP : 217.154.3.148 / Your IP : 216.73.216.90 Web Server : Apache System : Linux blissful-wright.217-154-3-148.plesk.page 6.8.0-124-generic #124-Ubuntu SMP PREEMPT_DYNAMIC Tue May 26 13:00:45 UTC 2026 x86_64 User : gracious-boyd_hfhh1h8vo9n ( 10000) PHP Version : 8.3.31 Disable Function : opcache_get_status MySQL : OFF | cURL : ON | WGET : OFF | Perl : OFF | Python : OFF | Sudo : OFF | Pkexec : OFF Directory : /var/www/vhosts/gracious-boyd.217-154-3-148.plesk.page/nextjs/.next/server/pages/api/ |
Upload File : |
"use strict";(()=>{var a={};a.id=141,a.ids=[141],a.modules={75600:a=>{a.exports=require("next/dist/compiled/next-server/pages-api.runtime.prod.js")},85787:(a,b,c)=>{c.r(b),c.d(b,{config:()=>v,default:()=>u,handler:()=>x});var d={};c.r(d),c.d(d,{config:()=>m,default:()=>r});var e=c(29046),f=c(8667),g=c(33480),h=c(86435);let i=require("sharp");var j=c.n(i);function k(a,b,c){return .299*a+.587*b+.114*c}async function l(a,b={}){let c=b.eps??.001,d=await j()(a).metadata(),e=d.width||0,f=d.height||0;if(!e||!f)throw Error("bad image size");let g=Math.max(12,Math.round(Math.max(e,f)/28)),h=b.blur??g,i=await j()(a).ensureAlpha().raw().toBuffer(),m=new Float32Array(e*f);for(let a=0,b=0;a<e*f;a++,b+=4)m[a]=k(i[b],i[b+1],i[b+2]);let n=await j()(i,{raw:{width:e,height:f,channels:4}}).blur(h).raw().toBuffer(),o=new Float32Array(e*f);for(let a=0,b=0;a<e*f;a++,b+=4)o[a]=k(n[b],n[b+1],n[b+2])+1e-6;let p=null;if(b.fgMask){var q;let a=(q=b.fgMask,Buffer.from(q.replace(/^data:image\/png;base64,/,""),"base64")),c=await j()(a).ensureAlpha().resize(e,f,{fit:"fill"}).raw().toBuffer();p=Array(e*f);for(let a=0,b=3;a<e*f;a++,b+=4)p[a]=+(c[b]<128)}let r=[];for(let a=0;a<e*f;a++)p&&1!==p[a]||r.push(m[a]/o[a]);r.sort((a,b)=>a-b);let s=Math.max(r.length?r.length%2?r[(r.length-1)/2]:.5*(r[r.length/2-1]+r[r.length/2]):1,.001),t=new Float32Array(e*f);for(let a=0;a<e*f;a++)t[a]=Math.max(0,Math.min(2.5,m[a]/(o[a]+c)/s));let u=Buffer.alloc(e*f*4),v=Buffer.alloc(e*f*4);for(let a=0;a<e*f;a++){let b=t[a],c=Math.max(0,Math.min(1,1-Math.min(1,b))),d=Math.max(0,Math.min(1,Math.max(0,Math.min(2,b))-1)),e=4*a;u[e]=255,u[e+1]=255,u[e+2]=255,u[e+3]=Math.round(255*c),v[e]=255,v[e+1]=255,v[e+2]=255,v[e+3]=Math.round(255*d),p&&0===p[a]&&(u[e+3]=0,v[e+3]=0)}let w=await j()(u,{raw:{width:e,height:f,channels:4}}).png().toBuffer(),x=await j()(v,{raw:{width:e,height:f,channels:4}}).png().toBuffer();return{shadow_mask:"data:image/png;base64,"+w.toString("base64"),light_mask:"data:image/png;base64,"+x.toString("base64"),width:e,height:f}}let m={api:{bodyParser:!1}},n=process.env.LOCAL_ANALYZE_URL||"http://127.0.0.1:3001/nextjs/api/analyze-mix?ransac=auto";async function o(a){let b=new FormData,c=new Blob([a.buffer.slice(a.byteOffset,a.byteOffset+a.byteLength)],{type:"application/octet-stream"});b.append("file",c,"img.jpg");let d=await fetch(n,{method:"POST",body:b});if(!d.ok)throw Error("analyze failed "+d.status);return d.json()}async function p(a){let b=[];for await(let c of a)b.push(Buffer.from(c));return Buffer.concat(b)}async function q(a){let b=a.headers["content-type"]||"",c=await p(a);if(/multipart\/form-data/i.test(b)){let a=b.match(/boundary=([^;]+)/i);if(!a)throw Error("multipart boundary missing");return function(a,b){let c=Buffer.from(`--${b}`),d=a.indexOf(c),e={file:Buffer.alloc(0),fields:{}},f=!1;for(;-1!==d&&(45!==a[d+=c.length]||45!==a[d+1]);){13===a[d]&&10===a[d+1]&&(d+=2);let b=a.indexOf(Buffer.from("\r\n\r\n"),d);if(-1===b)break;let g=a.slice(d,b).toString("utf8");d=b+4;let h=a.indexOf(c,d);if(-1===h)break;let i=h;13===a[i-2]&&10===a[i-1]&&(i-=2);let j=a.slice(d,i);d=h;let k=g.split(/\r?\n/).find(a=>/content-disposition/i.test(a))||"",l=k.match(/name="([^"]+)"/i),m=k.match(/filename="([^"]*)"/i),n=l?.[1];m&&n?(e.file=j,f=!0):n&&(e.fields[n]=j.toString("utf8"))}if(!f)throw Error("no file part in multipart payload");return e}(c,a[1])}return{file:c,fields:{}}}async function r(a,b){try{let{file:c,fields:d}=await q(a);if(!c||0===c.length)throw Error("empty image payload");let e=d.fg_mask;try{if(!e){let a=await o(c);e="string"==typeof a.fg_mask?a.fg_mask:void 0}}catch{}let f=await l(c,{fgMask:e});b.status(200).json({ok:!0,...f,source:"illumination@lowfreq"})}catch(c){let a=c instanceof Error?c.message:String(c);b.status(500).json({ok:!1,error:a})}}var s=c(58112),t=c(18766);let u=(0,h.M)(d,"default"),v=(0,h.M)(d,"config"),w=new g.PagesAPIRouteModule({definition:{kind:f.A.PAGES_API,page:"/api/light-masks",pathname:"/api/light-masks",bundlePath:"",filename:""},userland:d,distDir:".next",relativeProjectDir:""});async function x(a,b,c){let d=await w.prepare(a,b,{srcPage:"/api/light-masks"});if(!d){b.statusCode=400,b.end("Bad Request"),null==c.waitUntil||c.waitUntil.call(c,Promise.resolve());return}let{query:f,params:g,prerenderManifest:h,routerServerContext:i}=d;try{let c=a.method||"GET",d=(0,s.getTracer)(),e=d.getActiveScopeSpan(),j=w.instrumentationOnRequestError.bind(w),k=async e=>w.render(a,b,{query:{...f,...g},params:g,allowedRevalidateHeaderKeys:[],multiZoneDraftMode:!1,trustHostHeader:!1,previewProps:h.preview,propagateError:!1,dev:w.isDev,page:"/api/light-masks",internalRevalidate:null==i?void 0:i.revalidate,onError:(...b)=>j(a,...b)}).finally(()=>{if(!e)return;e.setAttributes({"http.status_code":b.statusCode,"next.rsc":!1});let f=d.getRootSpanAttributes();if(!f)return;if(f.get("next.span_type")!==t.BaseServerSpan.handleRequest)return void console.warn(`Unexpected root span type '${f.get("next.span_type")}'. Please report this Next.js issue https://github.com/vercel/next.js`);let g=f.get("next.route");if(g){let a=`${c} ${g}`;e.setAttributes({"next.route":g,"http.route":g,"next.span_name":a}),e.updateName(a)}else e.updateName(`${c} ${a.url}`)});e?await k(e):await d.withPropagatedContext(a.headers,()=>d.trace(t.BaseServerSpan.handleRequest,{spanName:`${c} ${a.url}`,kind:s.SpanKind.SERVER,attributes:{"http.method":c,"http.target":a.url}},k))}catch(a){if(w.isDev)throw a;(0,e.sendError)(b,500,"Internal Server Error")}finally{null==c.waitUntil||c.waitUntil.call(c,Promise.resolve())}}}};var b=require("../../webpack-api-runtime.js");b.C(a);var c=b.X(0,[169],()=>b(b.s=85787));module.exports=c})();