///////////////////////////////18/6/2024

Quality Web Development

Parallax Solutions

2024
Compromised in crafting high quality websites with functional design for businesses looking to digitalize or rethink their software needs.
We are a software design studio based in Barcelona
Aa
Aa
Aa
Aa
DESIGNDevelopment
We have a main focus on connecting these two aspects of our work, making a seamless connection between them and the interaction and communication between these two departments and maximize each member's expertise
'usestrict';const{ArrayPrototypeIncludes,ArrayPrototypeIndexOf,ArrayPrototypePop,ArrayPrototypePush,ArrayPrototypeShift,ArrayPrototypeSome,ArrayPrototypeSplice,FunctionPrototypeCall,NumberParseInt,Obj'usestrict';const{ArrayPrototypeIncludes,ArrayPrototypeIndexOf,ArrayPrototypePop,ArrayPrototypePush,ArrayPrototypeShift,ArrayPrototypeSome,ArrayPrototypeSplice,FunctionPrototypeCall,NumberParseInt,Obj
ectKeys,ObjectSetPrototypeOf,ObjectValues,RegExpPrototypeExec,StringPrototypeIndexOf,StringPrototypeSplit,StringPrototypeStartsWith,StringPrototypeSubstring,Symbol,}=primordials;constnet=require('net'ectKeys,ObjectSetPrototypeOf,ObjectValues,RegExpPrototypeExec,StringPrototypeIndexOf,StringPrototypeSplit,StringPrototypeStartsWith,StringPrototypeSubstring,Symbol,}=primordials;constnet=require('net'
);constEventEmitter=require('events');letdebug=require('internal/util/debuglog').debuglog('http',(fn)=>{debug=fn;});const{AsyncResource}=require('async_hooks');const{async_id_symbol}=require('internal);constEventEmitter=require('events');letdebug=require('internal/util/debuglog').debuglog('http',(fn)=>{debug=fn;});const{AsyncResource}=require('async_hooks');const{async_id_symbol}=require('internal
/async_hooks').symbols;const{kEmptyObject,once,}=require('internal/util');const{validateNumber,validateOneOf,validateString,}=require('internal/validators');constkOnKeylog=Symbol('onkeylog');constkReq/async_hooks').symbols;const{kEmptyObject,once,}=require('internal/util');const{validateNumber,validateOneOf,validateString,}=require('internal/validators');constkOnKeylog=Symbol('onkeylog');constkReq
uestOptions=Symbol('requestOptions');constkRequestAsyncResource=Symbol('requestAsyncResource');classReusedHandle{constructor(type,handle){this.type=type;this.handle=handle;}}functionfreeSocketErrorLisuestOptions=Symbol('requestOptions');constkRequestAsyncResource=Symbol('requestAsyncResource');classReusedHandle{constructor(type,handle){this.type=type;this.handle=handle;}}functionfreeSocketErrorLis
tener(err){constsocket=this;debug('SOCKETERRORonFREEsocket:',err.message,err.stack);socket.destroy();socket.emit('agentRemove');}functionAgent(options){if(!(thisinstanceofAgent))returnnewAgent(optionstener(err){constsocket=this;debug('SOCKETERRORonFREEsocket:',err.message,err.stack);socket.destroy();socket.emit('agentRemove');}functionAgent(options){if(!(thisinstanceofAgent))returnnewAgent(options
);FunctionPrototypeCall(EventEmitter,this);this.defaultPort=80;this.protocol='http:';this.options={__proto__:null,...options};if(this.options.noDelay===undefined)this.options.noDelay=true;this.options);FunctionPrototypeCall(EventEmitter,this);this.defaultPort=80;this.protocol='http:';this.options={__proto__:null,...options};if(this.options.noDelay===undefined)this.options.noDelay=true;this.options
.path=null;this.requests={__proto__:null};this.sockets={__proto__:null};this.freeSockets={__proto__:null};this.keepAliveMsecs=this.options.keepAliveMsecs||1000;this.keepAlive=this.options.keepAlive||f.path=null;this.requests={__proto__:null};this.sockets={__proto__:null};this.freeSockets={__proto__:null};this.keepAliveMsecs=this.options.keepAliveMsecs||1000;this.keepAlive=this.options.keepAlive||f
alse;this.maxSockets=this.options.maxSockets||Agent.defaultMaxSockets;this.maxFreeSockets=this.options.maxFreeSockets||256;this.scheduling=this.options.scheduling||'lifo';this.maxTotalSockets=this.optalse;this.maxSockets=this.options.maxSockets||Agent.defaultMaxSockets;this.maxFreeSockets=this.options.maxFreeSockets||256;this.scheduling=this.options.scheduling||'lifo';this.maxTotalSockets=this.opt
ions.maxTotalSockets;this.totalSocketCount=0;validateOneOf(this.scheduling,'scheduling',['fifo','lifo']);if(this.maxTotalSockets!==undefined){validateNumber(this.maxTotalSockets,'maxTotalSockets',1);}ions.maxTotalSockets;this.totalSocketCount=0;validateOneOf(this.scheduling,'scheduling',['fifo','lifo']);if(this.maxTotalSockets!==undefined){validateNumber(this.maxTotalSockets,'maxTotalSockets',1);}
else{this.maxTotalSockets=Infinity;}this.on('free',(socket,options)=>{constname=this.getName(options);debug('agent.on(free)',name);if(!socket.writable){socket.destroy();return;}constrequests=this.requelse{this.maxTotalSockets=Infinity;}this.on('free',(socket,options)=>{constname=this.getName(options);debug('agent.on(free)',name);if(!socket.writable){socket.destroy();return;}constrequests=this.requ
ests[name];if(requests&&requests.length){constreq=ArrayPrototypeShift(requests);constreqAsyncRes=req[kRequestAsyncResource];if(reqAsyncRes){reqAsyncRes.runInAsyncScope(()=>{asyncResetHandle(socket);seests[name];if(requests&&requests.length){constreq=ArrayPrototypeShift(requests);constreqAsyncRes=req[kRequestAsyncResource];if(reqAsyncRes){reqAsyncRes.runInAsyncScope(()=>{asyncResetHandle(socket);se
tRequestSocket(this,req,socket);});req[kRequestAsyncResource]=null;}else{setRequestSocket(this,req,socket);}if(requests.length===0){deletethis.requests[name];}return;}constreq=socket._httpMessage;if(!tRequestSocket(this,req,socket);});req[kRequestAsyncResource]=null;}else{setRequestSocket(this,req,socket);}if(requests.length===0){deletethis.requests[name];}return;}constreq=socket._httpMessage;if(!
req||!req.shouldKeepAlive||!this.keepAlive){socket.destroy();return;}constfreeSockets=this.freeSockets[name]||[];constfreeLen=freeSockets.length;letcount=freeLen;if(this.sockets[name])count+=this.sockreq||!req.shouldKeepAlive||!this.keepAlive){socket.destroy();return;}constfreeSockets=this.freeSockets[name]||[];constfreeLen=freeSockets.length;letcount=freeLen;if(this.sockets[name])count+=this.sock
ets[name].length;if(this.totalSocketCount>this.maxTotalSockets||count>this.maxSockets||freeLen>=this.maxFreeSockets||!this.keepSocketAlive(socket)){socket.destroy();return;}this.freeSockets[name]=freeets[name].length;if(this.totalSocketCount>this.maxTotalSockets||count>this.maxSockets||freeLen>=this.maxFreeSockets||!this.keepSocketAlive(socket)){socket.destroy();return;}this.freeSockets[name]=free
Sockets;socket[async_id_symbol]=-1;socket._httpMessage=null;this.removeSocket(socket,options);socket.once('error',freeSocketErrorListener);ArrayPrototypePush(freeSockets,socket);});this.on('newListeneSockets;socket[async_id_symbol]=-1;socket._httpMessage=null;this.removeSocket(socket,options);socket.once('error',freeSocketErrorListener);ArrayPrototypePush(freeSockets,socket);});this.on('newListene
r',maybeEnableKeylog);}ObjectSetPrototypeOf(Agent.prototype,EventEmitter.prototype);ObjectSetPrototypeOf(Agent,EventEmitter);functionmaybeEnableKeylog(eventName){if(eventName==='keylog'){this.removeLir',maybeEnableKeylog);}ObjectSetPrototypeOf(Agent.prototype,EventEmitter.prototype);ObjectSetPrototypeOf(Agent,EventEmitter);functionmaybeEnableKeylog(eventName){if(eventName==='keylog'){this.removeLi
stener('newListener',maybeEnableKeylog);constagent=this;this[kOnKeylog]=functiononkeylog(keylog){agent.emit('keylog',keylog,this);};constsockets=ObjectValues(this.sockets);for(leti=0;i<sockets.length;stener('newListener',maybeEnableKeylog);constagent=this;this[kOnKeylog]=functiononkeylog(keylog){agent.emit('keylog',keylog,this);};constsockets=ObjectValues(this.sockets);for(leti=0;i<sockets.length;
i++){sockets[i].on('keylog',this[kOnKeylog]);}}}Agent.defaultMaxSockets=Infinity;Agent.prototype.createConnection=net.createConnection;Agent.prototype.getName=functiongetName(options=kEmptyObject){leti++){sockets[i].on('keylog',this[kOnKeylog]);}}}Agent.defaultMaxSockets=Infinity;Agent.prototype.createConnection=net.createConnection;Agent.prototype.getName=functiongetName(options=kEmptyObject){let
name=options.host||'localhost';name+=':';if(options.port)name+=options.port;name+=':';if(options.localAddress)name+=options.localAddress;if(options.family===4||options.family===6)name+=`:${options.fname=options.host||'localhost';name+=':';if(options.port)name+=options.port;name+=':';if(options.localAddress)name+=options.localAddress;if(options.family===4||options.family===6)name+=`:${options.f
ily}`,if(options.socketPath)name+=`:${options.socketPath}`,returnname;};Agent.prototype.addRequest=functionaddRequest(req,options,port,localAddress){if(typeofoptions==='string'){options={__proto__ily}`,if(options.socketPath)name+=`:${options.socketPath}`,returnname;};Agent.prototype.addRequest=functionaddRequest(req,options,port,localAddress){if(typeofoptions==='string'){options={__proto__
l,host:options,port,localAddress,};}options={__proto__:null,...options,...this.options};if(options.socketPath)options.path=options.socketPath;normalizeServerName(options,req);constname=this.getName(opl,host:options,port,localAddress,};}options={__proto__:null,...options,...this.options};if(options.socketPath)options.path=options.socketPath;normalizeServerName(options,req);constname=this.getName(op
tions);if(!this.sockets[name]){this.sockets[name]=[];}constfreeSockets=this.freeSockets[name];letsocket;if(freeSockets){while(freeSockets.length&&freeSockets[0].destroyed){ArrayPrototypeShift(freeSocktions);if(!this.sockets[name]){this.sockets[name]=[];}constfreeSockets=this.freeSockets[name];letsocket;if(freeSockets){while(freeSockets.length&&freeSockets[0].destroyed){ArrayPrototypeShift(freeSock
ets);}socket=this.scheduling==='fifo'?ArrayPrototypeShift(freeSockets):ArrayPrototypePop(freeSockets);if(!freeSockets.length)deletethis.freeSockets[name];}constfreeLen=freeSockets?freeSockets.length:0ets);}socket=this.scheduling==='fifo'?ArrayPrototypeShift(freeSockets):ArrayPrototypePop(freeSockets);if(!freeSockets.length)deletethis.freeSockets[name];}constfreeLen=freeSockets?freeSockets.length:0
,constsockLen=freeLen+this.sockets[name].length;if(socket){asyncResetHandle(socket);this.reuseSocket(socket,req);setRequestSocket(this,req,socket);ArrayPrototypePush(this.sockets[name],socket);}elseif,constsockLen=freeLen+this.sockets[name].length;if(socket){asyncResetHandle(socket);this.reuseSocket(socket,req);setRequestSocket(this,req,socket);ArrayPrototypePush(this.sockets[name],socket);}elseif
(sockLen<this.maxSockets&&this.totalSocketCount<this.maxTotalSockets){debug('callonSocket',sockLen,freeLen);this.createSocket(req,options,(err,socket)=>{if(err)req.onSocket(socket,err);elsesetRequestS(sockLen<this.maxSockets&&this.totalSocketCount<this.maxTotalSockets){debug('callonSocket',sockLen,freeLen);this.createSocket(req,options,(err,socket)=>{if(err)req.onSocket(socket,err);elsesetRequestS
ocket(this,req,socket);});}else{debug('waitforsocket');if(!this.requests[name]){this.requests[name]=[];}req[kRequestOptions]=options;req[kRequestAsyncResource]=newAsyncResource('QueuedRequest');ArrayPocket(this,req,socket);});}else{debug('waitforsocket');if(!this.requests[name]){this.requests[name]=[];}req[kRequestOptions]=options;req[kRequestAsyncResource]=newAsyncResource('QueuedRequest');ArrayP
rototypePush(this.requests[name],req);}};Agent.prototype.createSocket=functioncreateSocket(req,options,cb){options={__proto__:null,...options,...this.options};if(options.socketPath)options.path=optionrototypePush(this.requests[name],req);}};Agent.prototype.createSocket=functioncreateSocket(req,options,cb){options={__proto__:null,...options,...this.options};if(options.socketPath)options.path=option
s.socketPath;normalizeServerName(options,req);constname=this.getName(options);options._agentKey=name;debug('createConnection',name,options);options.encoding=null;constoncreate=once((err,s)=>{if(err)res.socketPath;normalizeServerName(options,req);constname=this.getName(options);options._agentKey=name;debug('createConnection',name,options);options.encoding=null;constoncreate=once((err,s)=>{if(err)re
turncb(err);if(!this.sockets[name]){this.sockets[name]=[];}ArrayPrototypePush(this.sockets[name],s);this.totalSocketCount++;debug('sockets',name,this.sockets[name].length,this.totalSocketCount);instalturncb(err);if(!this.sockets[name]){this.sockets[name]=[];}ArrayPrototypePush(this.sockets[name],s);this.totalSocketCount++;debug('sockets',name,this.sockets[name].length,this.totalSocketCount);instal
lListeners(this,s,options);cb(null,s);});if(this.keepAlive){options.keepAlive=this.keepAlive;options.keepAliveInitialDelay=this.keepAliveMsecs;}constnewSocket=this.createConnection(options,oncreate);ilListeners(this,s,options);cb(null,s);});if(this.keepAlive){options.keepAlive=this.keepAlive;options.keepAliveInitialDelay=this.keepAliveMsecs;}constnewSocket=this.createConnection(options,oncreate);i
f(newSocket)oncreate(null,newSocket);};functionnormalizeServerName(options,req){if(!options.servername&&options.servername!=='')options.servername=calculateServerName(options,req);}functioncalculateSef(newSocket)oncreate(null,newSocket);};functionnormalizeServerName(options,req){if(!options.servername&&options.servername!=='')options.servername=calculateServerName(options,req);}functioncalculateSe
rverName(options,req){letservername=options.host;consthostHeader=req.getHeader('host');if(hostHeader){validateString(hostHeader,'options.headers.host');if(StringPrototypeStartsWith(hostHeader,'[')){corverName(options,req){letservername=options.host;consthostHeader=req.getHeader('host');if(hostHeader){validateString(hostHeader,'options.headers.host');if(StringPrototypeStartsWith(hostHeader,'[')){co
nstindex=StringPrototypeIndexOf(hostHeader,']');if(index===-1){servername=hostHeader;}else{servername=StringPrototypeSubstring(hostHeader,1,index);}}else{servername=StringPrototypeSplit(hostHeader,':'nstindex=StringPrototypeIndexOf(hostHeader,']');if(index===-1){servername=hostHeader;}else{servername=StringPrototypeSubstring(hostHeader,1,index);}}else{servername=StringPrototypeSplit(hostHeader,':'
,1)[0];}}if(net.isIP(servername))servername='';returnservername;}functioninstallListeners(agent,s,options){functiononFree(){debug('CLIENTsocketonFree');agent.emit('free',s,options);}s.on('free',onFree,1)[0];}}if(net.isIP(servername))servername='';returnservername;}functioninstallListeners(agent,s,options){functiononFree(){debug('CLIENTsocketonFree');agent.emit('free',s,options);}s.on('free',onFree
);functiononClose(err){debug('CLIENTsocketonClose');agent.totalSocketCount--;agent.removeSocket(s,options);}s.on('close',onClose);functiononTimeout(){debug('CLIENTsocketonTimeout');constsockets=agent.);functiononClose(err){debug('CLIENTsocketonClose');agent.totalSocketCount--;agent.removeSocket(s,options);}s.on('close',onClose);functiononTimeout(){debug('CLIENTsocketonTimeout');constsockets=agent.
freeSockets;if(ArrayPrototypeSome(ObjectKeys(sockets),(name)=>ArrayPrototypeIncludes(sockets[name],s),)){returns.destroy();}}s.on('timeout',onTimeout);functiononRemove(){debug('CLIENTsocketonRemove');freeSockets;if(ArrayPrototypeSome(ObjectKeys(sockets),(name)=>ArrayPrototypeIncludes(sockets[name],s),)){returns.destroy();}}s.on('timeout',onTimeout);functiononRemove(){debug('CLIENTsocketonRemove');
agent.totalSocketCount--;agent.removeSocket(s,options);s.removeListener('close',onClose);s.removeListener('free',onFree);s.removeListener('timeout',onTimeout);s.removeListener('agentRemove',onRemove);agent.totalSocketCount--;agent.removeSocket(s,options);s.removeListener('close',onClose);s.removeListener('free',onFree);s.removeListener('timeout',onTimeout);s.removeListener('agentRemove',onRemove);
}s.on('agentRemove',onRemove);if(agent[kOnKeylog]){s.on('keylog',agent[kOnKeylog]);}}Agent.prototype.removeSocket=functionremoveSocket(s,options){constname=this.getName(options);debug('removeSocket',n}s.on('agentRemove',onRemove);if(agent[kOnKeylog]){s.on('keylog',agent[kOnKeylog]);}}Agent.prototype.removeSocket=functionremoveSocket(s,options){constname=this.getName(options);debug('removeSocket',n
ame,'writable:',s.writable);constsets=[this.sockets];if(!s.writable)ArrayPrototypePush(sets,this.freeSockets);for(letsk=0;sk<sets.length;sk++){constsockets=sets[sk];if(sockets[name]){constindex=ArrayPame,'writable:',s.writable);constsets=[this.sockets];if(!s.writable)ArrayPrototypePush(sets,this.freeSockets);for(letsk=0;sk<sets.length;sk++){constsockets=sets[sk];if(sockets[name]){constindex=ArrayP
rototypeIndexOf(sockets[name],s);if(index!==-1){ArrayPrototypeSplice(sockets[name],index,1);if(sockets[name].length===0)deletesockets[name];}}}letreq;if(this.requests[name]&&this.requests[name].lengthrototypeIndexOf(sockets[name],s);if(index!==-1){ArrayPrototypeSplice(sockets[name],index,1);if(sockets[name].length===0)deletesockets[name];}}}letreq;if(this.requests[name]&&this.requests[name].length
){debug('removeSocket,havearequest,makeasocket');req=this.requests[name][0];}else{constkeys=ObjectKeys(this.requests);for(leti=0;i<keys.length;i++){constprop=keys[i];if(this.sockets[prop]&&this.socket){debug('removeSocket,havearequest,makeasocket');req=this.requests[name][0];}else{constkeys=ObjectKeys(this.requests);for(leti=0;i<keys.length;i++){constprop=keys[i];if(this.sockets[prop]&&this.socket
s[prop].length)break;debug('removeSocket,havearequestwithdifferentorigin,'+'makeasocket');req=this.requests[prop][0];options=req[kRequestOptions];break;}}if(req&&options){req[kRequestOptions]=undefines[prop].length)break;debug('removeSocket,havearequestwithdifferentorigin,'+'makeasocket');req=this.requests[prop][0];options=req[kRequestOptions];break;}}if(req&&options){req[kRequestOptions]=undefine
d;this.createSocket(req,options,(err,socket)=>{if(err)req.onSocket(socket,err);elsesocket.emit('free');});}};Agent.prototype.keepSocketAlive=functionkeepSocketAlive(socket){socket.setKeepAlive(true,thd;this.createSocket(req,options,(err,socket)=>{if(err)req.onSocket(socket,err);elsesocket.emit('free');});}};Agent.prototype.keepSocketAlive=functionkeepSocketAlive(socket){socket.setKeepAlive(true,th
is.keepAliveMsecs);socket.unref();letagentTimeout=this.options.timeout||0;if(socket._httpMessage?.res){constkeepAliveHint=socket._httpMessage.res.headers['keep-alive'];if(keepAliveHint){consthint=RegEis.keepAliveMsecs);socket.unref();letagentTimeout=this.options.timeout||0;if(socket._httpMessage?.res){constkeepAliveHint=socket._httpMessage.res.headers['keep-alive'];if(keepAliveHint){consthint=RegE
xpPrototypeExec(/^timeout=(d+)/,keepAliveHint)?.[1];if(hint){constserverHintTimeout=NumberParseInt(hint)*1000;if(serverHintTimeout<agentTimeout){agentTimeout=serverHintTimeout;}}}}if(socket.timeout!=xpPrototypeExec(/^timeout=(d+)/,keepAliveHint)?.[1];if(hint){constserverHintTimeout=NumberParseInt(hint)*1000;if(serverHintTimeout<agentTimeout){agentTimeout=serverHintTimeout;}}}}if(socket.timeout!=
=agentTimeout){socket.setTimeout(agentTimeout);}returntrue;};Agent.prototype.reuseSocket=functionreuseSocket(socket,req){debug('havefreesocket');socket.removeListener('error',freeSocketErrorListener);=agentTimeout){socket.setTimeout(agentTimeout);}returntrue;};Agent.prototype.reuseSocket=functionreuseSocket(socket,req){debug('havefreesocket');socket.removeListener('error',freeSocketErrorListener);
req.reusedSocket=true;socket.ref();};Agent.prototype.destroy=functiondestroy(){constsets=[this.freeSockets,this.sockets];for(lets=0;s<sets.length;s++){constset=sets[s];constkeys=ObjectKeys(set);for(lereq.reusedSocket=true;socket.ref();};Agent.prototype.destroy=functiondestroy(){constsets=[this.freeSockets,this.sockets];for(lets=0;s<sets.length;s++){constset=sets[s];constkeys=ObjectKeys(set);for(le
tv=0;v<keys.length;v++){constsetName=set[keys[v]];for(letn=0;n<setName.length;n++){setName[n].destroy();}}}};functionsetRequestSocket(agent,req,socket){req.onSocket(socket);constagentTimeout=agent.opttv=0;v<keys.length;v++){constsetName=set[keys[v]];for(letn=0;n<setName.length;n++){setName[n].destroy();}}}};functionsetRequestSocket(agent,req,socket){req.onSocket(socket);constagentTimeout=agent.opt
ions.timeout||0;if(req.timeout===undefined||req.timeout===agentTimeout){return;}socket.setTimeout(req.timeout);}functionasyncResetHandle(socket){consthandle=socket._handle;if(handle&&typeofhandle.asynions.timeout||0;if(req.timeout===undefined||req.timeout===agentTimeout){return;}socket.setTimeout(req.timeout);}functionasyncResetHandle(socket){consthandle=socket._handle;if(handle&&typeofhandle.asyn
cReset==='function'){handle.asyncReset(newReusedHandle(handle.getProviderType(),handle));socket[async_id_symbol]=handle.getAsyncId();}}module.exports={Agent,globalAgent:newAgent({keepAlive:true,})}}};cReset==='function'){handle.asyncReset(newReusedHandle(handle.getProviderType(),handle));socket[async_id_symbol]=handle.getAsyncId();}}module.exports={Agent,globalAgent:newAgent({keepAlive:true,})}}};
ectKeys,ObjectSetPrototypeOf,ObjectValues,RegExpPrototypeExec,StringPrototypeIndexOf,StringPrototypeSplit,StringPrototypeStartsWith,StringPrototypeSubstring,Symbol,}=primordials;constnet=require('net'ectKeys,ObjectSetPrototypeOf,ObjectValues,RegExpPrototypeExec,StringPrototypeIndexOf,StringPrototypeSplit,StringPrototypeStartsWith,StringPrototypeSubstring,Symbol,}=primordials;constnet=require('net'
);constEventEmitter=require('events');letdebug=require('internal/util/debuglog').debuglog('http',(fn)=>{debug=fn;});const{AsyncResource}=require('async_hooks');const{async_id_symbol}=require('internal);constEventEmitter=require('events');letdebug=require('internal/util/debuglog').debuglog('http',(fn)=>{debug=fn;});const{AsyncResource}=require('async_hooks');const{async_id_symbol}=require('internal
/async_hooks').symbols;const{kEmptyObject,once,}=require('internal/util');const{validateNumber,validateOneOf,validateString,}=require('internal/validators');constkOnKeylog=Symbol('onkeylog');constkReq/async_hooks').symbols;const{kEmptyObject,once,}=require('internal/util');const{validateNumber,validateOneOf,validateString,}=require('internal/validators');constkOnKeylog=Symbol('onkeylog');constkReq
uestOptions=Symbol('requestOptions');constkRequestAsyncResource=Symbol('requestAsyncResource');classReusedHandle{constructor(type,handle){this.type=type;this.handle=handle;}}functionfreeSocketErrorLisuestOptions=Symbol('requestOptions');constkRequestAsyncResource=Symbol('requestAsyncResource');classReusedHandle{constructor(type,handle){this.type=type;this.handle=handle;}}functionfreeSocketErrorLis
tener(err){constsocket=this;debug('SOCKETERRORonFREEsocket:',err.message,err.stack);socket.destroy();socket.emit('agentRemove');}functionAgent(options){if(!(thisinstanceofAgent))returnnewAgent(optionstener(err){constsocket=this;debug('SOCKETERRORonFREEsocket:',err.message,err.stack);socket.destroy();socket.emit('agentRemove');}functionAgent(options){if(!(thisinstanceofAgent))returnnewAgent(options
);FunctionPrototypeCall(EventEmitter,this);this.defaultPort=80;this.protocol='http:';this.options={__proto__:null,...options};if(this.options.noDelay===undefined)this.options.noDelay=true;this.options);FunctionPrototypeCall(EventEmitter,this);this.defaultPort=80;this.protocol='http:';this.options={__proto__:null,...options};if(this.options.noDelay===undefined)this.options.noDelay=true;this.options
.path=null;this.requests={__proto__:null};this.sockets={__proto__:null};this.freeSockets={__proto__:null};this.keepAliveMsecs=this.options.keepAliveMsecs||1000;this.keepAlive=this.options.keepAlive||f.path=null;this.requests={__proto__:null};this.sockets={__proto__:null};this.freeSockets={__proto__:null};this.keepAliveMsecs=this.options.keepAliveMsecs||1000;this.keepAlive=this.options.keepAlive||f
alse;this.maxSockets=this.options.maxSockets||Agent.defaultMaxSockets;this.maxFreeSockets=this.options.maxFreeSockets||256;this.scheduling=this.options.scheduling||'lifo';this.maxTotalSockets=this.optalse;this.maxSockets=this.options.maxSockets||Agent.defaultMaxSockets;this.maxFreeSockets=this.options.maxFreeSockets||256;this.scheduling=this.options.scheduling||'lifo';this.maxTotalSockets=this.opt
ions.maxTotalSockets;this.totalSocketCount=0;validateOneOf(this.scheduling,'scheduling',['fifo','lifo']);if(this.maxTotalSockets!==undefined){validateNumber(this.maxTotalSockets,'maxTotalSockets',1);}ions.maxTotalSockets;this.totalSocketCount=0;validateOneOf(this.scheduling,'scheduling',['fifo','lifo']);if(this.maxTotalSockets!==undefined){validateNumber(this.maxTotalSockets,'maxTotalSockets',1);}
else{this.maxTotalSockets=Infinity;}this.on('free',(socket,options)=>{constname=this.getName(options);debug('agent.on(free)',name);if(!socket.writable){socket.destroy();return;}constrequests=this.requelse{this.maxTotalSockets=Infinity;}this.on('free',(socket,options)=>{constname=this.getName(options);debug('agent.on(free)',name);if(!socket.writable){socket.destroy();return;}constrequests=this.requ
ests[name];if(requests&&requests.length){constreq=ArrayPrototypeShift(requests);constreqAsyncRes=req[kRequestAsyncResource];if(reqAsyncRes){reqAsyncRes.runInAsyncScope(()=>{asyncResetHandle(socket);seests[name];if(requests&&requests.length){constreq=ArrayPrototypeShift(requests);constreqAsyncRes=req[kRequestAsyncResource];if(reqAsyncRes){reqAsyncRes.runInAsyncScope(()=>{asyncResetHandle(socket);se
tRequestSocket(this,req,socket);});req[kRequestAsyncResource]=null;}else{setRequestSocket(this,req,socket);}if(requests.length===0){deletethis.requests[name];}return;}constreq=socket._httpMessage;if(!tRequestSocket(this,req,socket);});req[kRequestAsyncResource]=null;}else{setRequestSocket(this,req,socket);}if(requests.length===0){deletethis.requests[name];}return;}constreq=socket._httpMessage;if(!
req||!req.shouldKeepAlive||!this.keepAlive){socket.destroy();return;}constfreeSockets=this.freeSockets[name]||[];constfreeLen=freeSockets.length;letcount=freeLen;if(this.sockets[name])count+=this.sockreq||!req.shouldKeepAlive||!this.keepAlive){socket.destroy();return;}constfreeSockets=this.freeSockets[name]||[];constfreeLen=freeSockets.length;letcount=freeLen;if(this.sockets[name])count+=this.sock
ets[name].length;if(this.totalSocketCount>this.maxTotalSockets||count>this.maxSockets||freeLen>=this.maxFreeSockets||!this.keepSocketAlive(socket)){socket.destroy();return;}this.freeSockets[name]=freeets[name].length;if(this.totalSocketCount>this.maxTotalSockets||count>this.maxSockets||freeLen>=this.maxFreeSockets||!this.keepSocketAlive(socket)){socket.destroy();return;}this.freeSockets[name]=free
Sockets;socket[async_id_symbol]=-1;socket._httpMessage=null;this.removeSocket(socket,options);socket.once('error',freeSocketErrorListener);ArrayPrototypePush(freeSockets,socket);});this.on('newListeneSockets;socket[async_id_symbol]=-1;socket._httpMessage=null;this.removeSocket(socket,options);socket.once('error',freeSocketErrorListener);ArrayPrototypePush(freeSockets,socket);});this.on('newListene
r',maybeEnableKeylog);}ObjectSetPrototypeOf(Agent.prototype,EventEmitter.prototype);ObjectSetPrototypeOf(Agent,EventEmitter);functionmaybeEnableKeylog(eventName){if(eventName==='keylog'){this.removeLir',maybeEnableKeylog);}ObjectSetPrototypeOf(Agent.prototype,EventEmitter.prototype);ObjectSetPrototypeOf(Agent,EventEmitter);functionmaybeEnableKeylog(eventName){if(eventName==='keylog'){this.removeLi
stener('newListener',maybeEnableKeylog);constagent=this;this[kOnKeylog]=functiononkeylog(keylog){agent.emit('keylog',keylog,this);};constsockets=ObjectValues(this.sockets);for(leti=0;i<sockets.length;stener('newListener',maybeEnableKeylog);constagent=this;this[kOnKeylog]=functiononkeylog(keylog){agent.emit('keylog',keylog,this);};constsockets=ObjectValues(this.sockets);for(leti=0;i<sockets.length;
i++){sockets[i].on('keylog',this[kOnKeylog]);}}}Agent.defaultMaxSockets=Infinity;Agent.prototype.createConnection=net.createConnection;Agent.prototype.getName=functiongetName(options=kEmptyObject){leti++){sockets[i].on('keylog',this[kOnKeylog]);}}}Agent.defaultMaxSockets=Infinity;Agent.prototype.createConnection=net.createConnection;Agent.prototype.getName=functiongetName(options=kEmptyObject){let
name=options.host||'localhost';name+=':';if(options.port)name+=options.port;name+=':';if(options.localAddress)name+=options.localAddress;if(options.family===4||options.family===6)name+=`:${options.fname=options.host||'localhost';name+=':';if(options.port)name+=options.port;name+=':';if(options.localAddress)name+=options.localAddress;if(options.family===4||options.family===6)name+=`:${options.f
ily}`,if(options.socketPath)name+=`:${options.socketPath}`,returnname;};Agent.prototype.addRequest=functionaddRequest(req,options,port,localAddress){if(typeofoptions==='string'){options={__proto__ily}`,if(options.socketPath)name+=`:${options.socketPath}`,returnname;};Agent.prototype.addRequest=functionaddRequest(req,options,port,localAddress){if(typeofoptions==='string'){options={__proto__
l,host:options,port,localAddress,};}options={__proto__:null,...options,...this.options};if(options.socketPath)options.path=options.socketPath;normalizeServerName(options,req);constname=this.getName(opl,host:options,port,localAddress,};}options={__proto__:null,...options,...this.options};if(options.socketPath)options.path=options.socketPath;normalizeServerName(options,req);constname=this.getName(op
tions);if(!this.sockets[name]){this.sockets[name]=[];}constfreeSockets=this.freeSockets[name];letsocket;if(freeSockets){while(freeSockets.length&&freeSockets[0].destroyed){ArrayPrototypeShift(freeSocktions);if(!this.sockets[name]){this.sockets[name]=[];}constfreeSockets=this.freeSockets[name];letsocket;if(freeSockets){while(freeSockets.length&&freeSockets[0].destroyed){ArrayPrototypeShift(freeSock
ets);}socket=this.scheduling==='fifo'?ArrayPrototypeShift(freeSockets):ArrayPrototypePop(freeSockets);if(!freeSockets.length)deletethis.freeSockets[name];}constfreeLen=freeSockets?freeSockets.length:0ets);}socket=this.scheduling==='fifo'?ArrayPrototypeShift(freeSockets):ArrayPrototypePop(freeSockets);if(!freeSockets.length)deletethis.freeSockets[name];}constfreeLen=freeSockets?freeSockets.length:0
,constsockLen=freeLen+this.sockets[name].length;if(socket){asyncResetHandle(socket);this.reuseSocket(socket,req);setRequestSocket(this,req,socket);ArrayPrototypePush(this.sockets[name],socket);}elseif,constsockLen=freeLen+this.sockets[name].length;if(socket){asyncResetHandle(socket);this.reuseSocket(socket,req);setRequestSocket(this,req,socket);ArrayPrototypePush(this.sockets[name],socket);}elseif
(sockLen<this.maxSockets&&this.totalSocketCount<this.maxTotalSockets){debug('callonSocket',sockLen,freeLen);this.createSocket(req,options,(err,socket)=>{if(err)req.onSocket(socket,err);elsesetRequestS(sockLen<this.maxSockets&&this.totalSocketCount<this.maxTotalSockets){debug('callonSocket',sockLen,freeLen);this.createSocket(req,options,(err,socket)=>{if(err)req.onSocket(socket,err);elsesetRequestS
ocket(this,req,socket);});}else{debug('waitforsocket');if(!this.requests[name]){this.requests[name]=[];}req[kRequestOptions]=options;req[kRequestAsyncResource]=newAsyncResource('QueuedRequest');ArrayPocket(this,req,socket);});}else{debug('waitforsocket');if(!this.requests[name]){this.requests[name]=[];}req[kRequestOptions]=options;req[kRequestAsyncResource]=newAsyncResource('QueuedRequest');ArrayP
rototypePush(this.requests[name],req);}};Agent.prototype.createSocket=functioncreateSocket(req,options,cb){options={__proto__:null,...options,...this.options};if(options.socketPath)options.path=optionrototypePush(this.requests[name],req);}};Agent.prototype.createSocket=functioncreateSocket(req,options,cb){options={__proto__:null,...options,...this.options};if(options.socketPath)options.path=option
s.socketPath;normalizeServerName(options,req);constname=this.getName(options);options._agentKey=name;debug('createConnection',name,options);options.encoding=null;constoncreate=once((err,s)=>{if(err)res.socketPath;normalizeServerName(options,req);constname=this.getName(options);options._agentKey=name;debug('createConnection',name,options);options.encoding=null;constoncreate=once((err,s)=>{if(err)re
turncb(err);if(!this.sockets[name]){this.sockets[name]=[];}ArrayPrototypePush(this.sockets[name],s);this.totalSocketCount++;debug('sockets',name,this.sockets[name].length,this.totalSocketCount);instalturncb(err);if(!this.sockets[name]){this.sockets[name]=[];}ArrayPrototypePush(this.sockets[name],s);this.totalSocketCount++;debug('sockets',name,this.sockets[name].length,this.totalSocketCount);instal
lListeners(this,s,options);cb(null,s);});if(this.keepAlive){options.keepAlive=this.keepAlive;options.keepAliveInitialDelay=this.keepAliveMsecs;}constnewSocket=this.createConnection(options,oncreate);ilListeners(this,s,options);cb(null,s);});if(this.keepAlive){options.keepAlive=this.keepAlive;options.keepAliveInitialDelay=this.keepAliveMsecs;}constnewSocket=this.createConnection(options,oncreate);i
f(newSocket)oncreate(null,newSocket);};functionnormalizeServerName(options,req){if(!options.servername&&options.servername!=='')options.servername=calculateServerName(options,req);}functioncalculateSef(newSocket)oncreate(null,newSocket);};functionnormalizeServerName(options,req){if(!options.servername&&options.servername!=='')options.servername=calculateServerName(options,req);}functioncalculateSe
rverName(options,req){letservername=options.host;consthostHeader=req.getHeader('host');if(hostHeader){validateString(hostHeader,'options.headers.host');if(StringPrototypeStartsWith(hostHeader,'[')){corverName(options,req){letservername=options.host;consthostHeader=req.getHeader('host');if(hostHeader){validateString(hostHeader,'options.headers.host');if(StringPrototypeStartsWith(hostHeader,'[')){co
nstindex=StringPrototypeIndexOf(hostHeader,']');if(index===-1){servername=hostHeader;}else{servername=StringPrototypeSubstring(hostHeader,1,index);}}else{servername=StringPrototypeSplit(hostHeader,':'nstindex=StringPrototypeIndexOf(hostHeader,']');if(index===-1){servername=hostHeader;}else{servername=StringPrototypeSubstring(hostHeader,1,index);}}else{servername=StringPrototypeSplit(hostHeader,':'
,1)[0];}}if(net.isIP(servername))servername='';returnservername;}functioninstallListeners(agent,s,options){functiononFree(){debug('CLIENTsocketonFree');agent.emit('free',s,options);}s.on('free',onFree,1)[0];}}if(net.isIP(servername))servername='';returnservername;}functioninstallListeners(agent,s,options){functiononFree(){debug('CLIENTsocketonFree');agent.emit('free',s,options);}s.on('free',onFree
);functiononClose(err){debug('CLIENTsocketonClose');agent.totalSocketCount--;agent.removeSocket(s,options);}s.on('close',onClose);functiononTimeout(){debug('CLIENTsocketonTimeout');constsockets=agent.);functiononClose(err){debug('CLIENTsocketonClose');agent.totalSocketCount--;agent.removeSocket(s,options);}s.on('close',onClose);functiononTimeout(){debug('CLIENTsocketonTimeout');constsockets=agent.
freeSockets;if(ArrayPrototypeSome(ObjectKeys(sockets),(name)=>ArrayPrototypeIncludes(sockets[name],s),)){returns.destroy();}}s.on('timeout',onTimeout);functiononRemove(){debug('CLIENTsocketonRemove');freeSockets;if(ArrayPrototypeSome(ObjectKeys(sockets),(name)=>ArrayPrototypeIncludes(sockets[name],s),)){returns.destroy();}}s.on('timeout',onTimeout);functiononRemove(){debug('CLIENTsocketonRemove');
agent.totalSocketCount--;agent.removeSocket(s,options);s.removeListener('close',onClose);s.removeListener('free',onFree);s.removeListener('timeout',onTimeout);s.removeListener('agentRemove',onRemove);agent.totalSocketCount--;agent.removeSocket(s,options);s.removeListener('close',onClose);s.removeListener('free',onFree);s.removeListener('timeout',onTimeout);s.removeListener('agentRemove',onRemove);
}s.on('agentRemove',onRemove);if(agent[kOnKeylog]){s.on('keylog',agent[kOnKeylog]);}}Agent.prototype.removeSocket=functionremoveSocket(s,options){constname=this.getName(options);debug('removeSocket',n}s.on('agentRemove',onRemove);if(agent[kOnKeylog]){s.on('keylog',agent[kOnKeylog]);}}Agent.prototype.removeSocket=functionremoveSocket(s,options){constname=this.getName(options);debug('removeSocket',n
ame,'writable:',s.writable);constsets=[this.sockets];if(!s.writable)ArrayPrototypePush(sets,this.freeSockets);for(letsk=0;sk<sets.length;sk++){constsockets=sets[sk];if(sockets[name]){constindex=ArrayPame,'writable:',s.writable);constsets=[this.sockets];if(!s.writable)ArrayPrototypePush(sets,this.freeSockets);for(letsk=0;sk<sets.length;sk++){constsockets=sets[sk];if(sockets[name]){constindex=ArrayP
rototypeIndexOf(sockets[name],s);if(index!==-1){ArrayPrototypeSplice(sockets[name],index,1);if(sockets[name].length===0)deletesockets[name];}}}letreq;if(this.requests[name]&&this.requests[name].lengthrototypeIndexOf(sockets[name],s);if(index!==-1){ArrayPrototypeSplice(sockets[name],index,1);if(sockets[name].length===0)deletesockets[name];}}}letreq;if(this.requests[name]&&this.requests[name].length
){debug('removeSocket,havearequest,makeasocket');req=this.requests[name][0];}else{constkeys=ObjectKeys(this.requests);for(leti=0;i<keys.length;i++){constprop=keys[i];if(this.sockets[prop]&&this.socket){debug('removeSocket,havearequest,makeasocket');req=this.requests[name][0];}else{constkeys=ObjectKeys(this.requests);for(leti=0;i<keys.length;i++){constprop=keys[i];if(this.sockets[prop]&&this.socket
s[prop].length)break;debug('removeSocket,havearequestwithdifferentorigin,'+'makeasocket');req=this.requests[prop][0];options=req[kRequestOptions];break;}}if(req&&options){req[kRequestOptions]=undefines[prop].length)break;debug('removeSocket,havearequestwithdifferentorigin,'+'makeasocket');req=this.requests[prop][0];options=req[kRequestOptions];break;}}if(req&&options){req[kRequestOptions]=undefine
d;this.createSocket(req,options,(err,socket)=>{if(err)req.onSocket(socket,err);elsesocket.emit('free');});}};Agent.prototype.keepSocketAlive=functionkeepSocketAlive(socket){socket.setKeepAlive(true,thd;this.createSocket(req,options,(err,socket)=>{if(err)req.onSocket(socket,err);elsesocket.emit('free');});}};Agent.prototype.keepSocketAlive=functionkeepSocketAlive(socket){socket.setKeepAlive(true,th
is.keepAliveMsecs);socket.unref();letagentTimeout=this.options.timeout||0;if(socket._httpMessage?.res){constkeepAliveHint=socket._httpMessage.res.headers['keep-alive'];if(keepAliveHint){consthint=RegEis.keepAliveMsecs);socket.unref();letagentTimeout=this.options.timeout||0;if(socket._httpMessage?.res){constkeepAliveHint=socket._httpMessage.res.headers['keep-alive'];if(keepAliveHint){consthint=RegE
xpPrototypeExec(/^timeout=(d+)/,keepAliveHint)?.[1];if(hint){constserverHintTimeout=NumberParseInt(hint)*1000;if(serverHintTimeout<agentTimeout){agentTimeout=serverHintTimeout;}}}}if(socket.timeout!=xpPrototypeExec(/^timeout=(d+)/,keepAliveHint)?.[1];if(hint){constserverHintTimeout=NumberParseInt(hint)*1000;if(serverHintTimeout<agentTimeout){agentTimeout=serverHintTimeout;}}}}if(socket.timeout!=
=agentTimeout){socket.setTimeout(agentTimeout);}returntrue;};Agent.prototype.reuseSocket=functionreuseSocket(socket,req){debug('havefreesocket');socket.removeListener('error',freeSocketErrorListener);=agentTimeout){socket.setTimeout(agentTimeout);}returntrue;};Agent.prototype.reuseSocket=functionreuseSocket(socket,req){debug('havefreesocket');socket.removeListener('error',freeSocketErrorListener);
req.reusedSocket=true;socket.ref();};Agent.prototype.destroy=functiondestroy(){constsets=[this.freeSockets,this.sockets];for(lets=0;s<sets.length;s++){constset=sets[s];constkeys=ObjectKeys(set);for(lereq.reusedSocket=true;socket.ref();};Agent.prototype.destroy=functiondestroy(){constsets=[this.freeSockets,this.sockets];for(lets=0;s<sets.length;s++){constset=sets[s];constkeys=ObjectKeys(set);for(le
tv=0;v<keys.length;v++){constsetName=set[keys[v]];for(letn=0;n<setName.length;n++){setName[n].destroy();}}}};functionsetRequestSocket(agent,req,socket){req.onSocket(socket);constagentTimeout=agent.opttv=0;v<keys.length;v++){constsetName=set[keys[v]];for(letn=0;n<setName.length;n++){setName[n].destroy();}}}};functionsetRequestSocket(agent,req,socket){req.onSocket(socket);constagentTimeout=agent.opt
ions.timeout||0;if(req.timeout===undefined||req.timeout===agentTimeout){return;}socket.setTimeout(req.timeout);}functionasyncResetHandle(socket){consthandle=socket._handle;if(handle&&typeofhandle.asynions.timeout||0;if(req.timeout===undefined||req.timeout===agentTimeout){return;}socket.setTimeout(req.timeout);}functionasyncResetHandle(socket){consthandle=socket._handle;if(handle&&typeofhandle.asyn
cReset==='function'){handle.asyncReset(newReusedHandle(handle.getProviderType(),handle));socket[async_id_symbol]=handle.getAsyncId();}}module.exports={Agent,globalAgent:newAgent({keepAlive:true,})}}};cReset==='function'){handle.asyncReset(newReusedHandle(handle.getProviderType(),handle));socket[async_id_symbol]=handle.getAsyncId();}}module.exports={Agent,globalAgent:newAgent({keepAlive:true,})}}};

1

Business Digitalization

STREAMLINE YOUR BUSINSESSTransform your operations with our business digitalization services. We leverage cutting-edge technology to streamline your processes, enhance efficiency, and drive growth.

2

Website Redesign

REVITALIZE YOUR ONLINE PRESENCEGive your website a fresh look and improved functionality with our redesign services. Our expert team will revitalize your online presence, ensuring a modern, user-friendly experience that captivates your audience.

3

Software development

CUSTOM SOLUTIONSElevate your business with our custom desktop and mobile app development services. We specialize in crafting bespoke applications, meticulously designed to meet your unique business requirements and enhance your operational efficiency.

4

Corporate Image

CRAFTING YOUR BRAND IDENTITYShape a compelling brand identity with our corporate image services. Whether you're establishing a new brand or rebranding an existing one, we'll work closely with you to create a cohesive and memorable identity that resonates with your audience.

Our Values

Commitment with quality

At Parallax Solutions, we pride ourselves on our unwavering commitment to quality. From the initial concept to the final deliverable, we prioritize excellence in every aspect of our work. We believe that quality is not just a goal to achieve but a standard to uphold, and it is reflected in the meticulous attention to detail and dedication to perfection that defines our approach to every project.
Commitment with quality
Innovation
Intuitive Design
Streamlined user flows
User-Centric Approach
Attention to detail
Elegant design solutions
Focus on functionality

Let's Work Together

Project Summary