@faulpeltz/dertunnel 0.7.1 → 0.7.2

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/index.js CHANGED
@@ -3,5 +3,5 @@
3
3
  `:`
4
4
  `)+r,o=e+1,e=t.indexOf(`
5
5
  `,o)}while(e!==-1);return s+=t.slice(o),s}var{stdout:Ge,stderr:Ve}=$e,ce=Symbol("GENERATOR"),U=Symbol("STYLER"),G=Symbol("IS_EMPTY"),Ye=["ansi","ansi","ansi256","ansi16m"],F=Object.create(null),At=(t,n={})=>{if(n.level&&!(Number.isInteger(n.level)&&n.level>=0&&n.level<=3))throw new Error("The `level` option should be an integer from 0 to 3");let r=Ge?Ge.level:0;t.level=n.level===void 0?r:n.level};var Pt=t=>{let n=(...r)=>r.join(" ");return At(n,t),Object.setPrototypeOf(n,V.prototype),n};function V(t){return Pt(t)}Object.setPrototypeOf(V.prototype,Function.prototype);for(let[t,n]of Object.entries(T))F[t]={get(){let r=te(this,ue(n.open,n.close,this[U]),this[G]);return Object.defineProperty(this,t,{value:r}),r}};F.visible={get(){let t=te(this,this[U],!0);return Object.defineProperty(this,"visible",{value:t}),t}};var le=(t,n,r,...e)=>t==="rgb"?n==="ansi16m"?T[r].ansi16m(...e):n==="ansi256"?T[r].ansi256(T.rgbToAnsi256(...e)):T[r].ansi(T.rgbToAnsi(...e)):t==="hex"?le("rgb",n,r,...T.hexToRgb(...e)):T[r][t](...e),Lt=["rgb","hex","ansi256"];for(let t of Lt){F[t]={get(){let{level:r}=this;return function(...e){let o=ue(le(t,Ye[r],"color",...e),T.color.close,this[U]);return te(this,o,this[G])}}};let n="bg"+t[0].toUpperCase()+t.slice(1);F[n]={get(){let{level:r}=this;return function(...e){let o=ue(le(t,Ye[r],"bgColor",...e),T.bgColor.close,this[U]);return te(this,o,this[G])}}}}var Dt=Object.defineProperties(()=>{},{...F,level:{enumerable:!0,get(){return this[ce].level},set(t){this[ce].level=t}}}),ue=(t,n,r)=>{let e,o;return r===void 0?(e=t,o=n):(e=r.openAll+t,o=n+r.closeAll),{open:t,close:n,openAll:e,closeAll:o,parent:r}},te=(t,n,r)=>{let e=(...o)=>kt(e,o.length===1?""+o[0]:o.join(" "));return Object.setPrototypeOf(e,Dt),e[ce]=t,e[U]=n,e[G]=r,e},kt=(t,n)=>{if(t.level<=0||!n)return t[G]?"":n;let r=t[U];if(r===void 0)return n;let{openAll:e,closeAll:o}=r;if(n.includes("\x1B"))for(;r!==void 0;)n=je(n,r.close,r.open),r=r.parent;let s=n.indexOf(`
6
- `);return s!==-1&&(n=qe(n,o,e,s)),e+n+o};Object.defineProperties(V.prototype,F);var Bt=V(),nn=V({level:Ve?Ve.level:0});var E=Bt;var We="0.7.1";var g={headerLines:[`/__\\ DERTUNNEL v${We} /__\\`,""],logLines:[],inspectedRequests:[],statusLines:[]};function Ke(){let t=process.stdout,[n,r]=t.getWindowSize();if(g.inspectedRequests.length>r-15){let s=g.inspectedRequests.findIndex(i=>i.type==="http-response-body"||i.type==="http-response-header");g.inspectedRequests.splice(s>=0?s:0,1)}let e=g.inspectedRequests.map(s=>{let i;s.status===0?i="...":s.status<400?i=E.blue(s.status):s.status<500?i=E.yellow(s.status):i=E.redBright(s.status);let u=new Date(s.startAt).toISOString(),d=s.endAt?`${s.endAt-s.startAt}ms`:"",m=u.slice(0,10)+" "+u.slice(11,19),a=s.headers.find(A=>A.name==="content-type")?.value??"(none)",b=a.split(";")[0],O=s.path.slice(0,Math.min(n-45-(a?a.length:2),s.path.length)),R=E.white(s.content?" "+Ae(s.content.length)+"b ":"");return`${E.cyan(`${m} -`)} ${i} ${E.green(s.method)} ${E.white(O)} ${s.content?E.gray(b):""} ${R} ${E.cyanBright(d)}`});for(;g.headerLines.length+g.statusLines.length+e.length+g.logLines.length+2>r&&g.logLines.length>2;)g.logLines.splice(0,1);let o=[...g.headerLines,"",...g.statusLines,...e,"",...g.logLines];t.cursorTo(0,0),t.clearScreenDown(),o.forEach(s=>{t.write(s??""),t.write(`
6
+ `);return s!==-1&&(n=qe(n,o,e,s)),e+n+o};Object.defineProperties(V.prototype,F);var Bt=V(),nn=V({level:Ve?Ve.level:0});var E=Bt;var We="0.7.2";var g={headerLines:[`/__\\ DERTUNNEL v${We} /__\\`,""],logLines:[],inspectedRequests:[],statusLines:[]};function Ke(){let t=process.stdout,[n,r]=t.getWindowSize();if(g.inspectedRequests.length>r-15){let s=g.inspectedRequests.findIndex(i=>i.type==="http-response-body"||i.type==="http-response-header");g.inspectedRequests.splice(s>=0?s:0,1)}let e=g.inspectedRequests.map(s=>{let i;s.status===0?i="...":s.status<400?i=E.blue(s.status):s.status<500?i=E.yellow(s.status):i=E.redBright(s.status);let u=new Date(s.startAt).toISOString(),d=s.endAt?`${s.endAt-s.startAt}ms`:"",m=u.slice(0,10)+" "+u.slice(11,19),a=s.headers.find(A=>A.name==="content-type")?.value??"(none)",b=a.split(";")[0],O=s.path.slice(0,Math.min(n-45-(a?a.length:2),s.path.length)),R=E.white(s.content?" "+Ae(s.content.length)+"b ":"");return`${E.cyan(`${m} -`)} ${i} ${E.green(s.method)} ${E.white(O)} ${s.content?E.gray(b):""} ${R} ${E.cyanBright(d)}`});for(;g.headerLines.length+g.statusLines.length+e.length+g.logLines.length+2>r&&g.logLines.length>2;)g.logLines.splice(0,1);let o=[...g.headerLines,"",...g.statusLines,...e,"",...g.logLines];t.cursorTo(0,0),t.clearScreenDown(),o.forEach(s=>{t.write(s??""),t.write(`
7
7
  `)})}function ze(t){process.stdout.isTTY?(g.logLines.push(t),g.logLines.length>20&&g.logLines.splice(0,1),Ke()):console.log(t)}var ln=new _(200,()=>Ke());async function It(t){let n=!1,r=!1,e,o=300,s=1.4,i=1e4,u={reconnectTime:o};if(!t.endpoint&&!t.endpointPrefix)throw new Error("Must either define 'endpoint' or 'endpointPrefix'");if(!t.clientToken||!t.localPort&&!t.localUrl)throw new Error("Missing required options");let d=Pe(t.clientToken);t.serviceHost??=d.service;let m=d.user,a=d.token,b,O;if(t.localPort)b=t.localServer??"127.0.0.1",O=t.localPort;else{let v=new URL(t.localUrl||"http://localhost");if(v.protocol!=="http:")throw new Error("Local endpoints only support http protocol");b=v.hostname,O=Number.parseInt(v.port??"80")}let R=Oe(),A=t.serviceHost;A.startsWith(ne)||(A=ne+A);let fe=()=>{let v=new _(200,()=>B("data")),y={bytesReceived:0,bytesSent:0,chunksReceived:0,chunksSent:0,currentConnections:0,totalConnections:0,connectionErrors:0};function B(p,D){try{t.onEndpoint?.(p,y,D??"")}catch{}}e?.destroy(),t.ignoreCertErrors&&(process.env.NODE_TLS_REJECT_UNAUTHORIZED="0"),e=Xe.default.connect({timeout:1e4,host:A,port:t.servicePort||443,servername:A,...t.ignoreCertErrors?{checkServerIdentity:()=>{}}:{}},()=>{e&&(e.setKeepAlive(!0,ge),N(e,1,0,{version:me,user:m,token:a,endpoint:t.endpoint,endpointPrefix:t.endpointPrefix}))}),e.setMaxListeners(0);let I=new Map,P,L,Qe=new z(async(p,D,S)=>{if(!n&&p===2){let h=j(S);if(!h.success){e?.destroy();let c="Server connection error: "+(h.error??"Unknown error");R.reject(new Error(c)),t.onError?.(c);return}t.onConnected?.(h.endpoint||""),v.update(void 0,!0),R.resolve(),n=!0,u.reconnectTime=o,P=setInterval(()=>{if(!e){P&&clearInterval(P),L&&clearTimeout(L);return}try{N(e,7,0)}catch{P&&clearInterval(P)}L=setTimeout(()=>{t.onError?.("Server pong timeout"),e?.destroy()},7e3).unref()},15e3).unref()}if(p===3){e?.destroy();let h=j(S);h.error&&t.onError?.(h.error);return}if(n){if(p===7)N(e,8,0);else if(p===8)L&&clearTimeout(L);else if(p===65){let h=I.get(D);if(h){if(y.bytesSent+=S.length,y.chunksSent++,h.bytesSent+=S.length,h.parserOut)try{h.parserOut.onData(S)}catch(c){B("error",c?.message)}h.write(S),v.update(void 0,!1)}}else if(p===4){let h=j(S),c=(0,Je.createConnection)({host:b,port:O,allowHalfOpen:!1});c.channelId=h.channelId,c.wasConnected=!1;let Ze=J(),de=C=>{try{t.onProtocolData?.(C.type,Ze,C)}catch{}};t.protocols?.inspect&&(c.parserIn=new q(de),c.parserOut=new q(de)),c.bytesReceived=c.bytesSent=0,I.set(h.channelId,c),c.on("connect",()=>{c.wasConnected=!0,y.currentConnections++,y.totalConnections++,B("connect"),v.update(void 0,!0)}),c.on("close",()=>{c.wasConnected&&(y.currentConnections=Math.max(0,y.currentConnections-1)),I.delete(h.channelId),N(e,6,0,{channelId:c.channelId}),B("disconnect"),v.update(void 0,!0)}),c.on("data",C=>{if(c.bytesReceived+=C.length,y.bytesReceived+=C.length,y.chunksReceived++,c.parserIn)try{c.parserIn.onData(C)}catch(tt){B("error",tt?.message)}!N(e,66,c.channelId,C)&&!c.isPaused()&&(c.pause(),e.once("drain",()=>{c.resume()})),v.update(void 0,!1)}),c.on("error",C=>{y.connectionErrors++,B("error",C?.message),v.update(void 0,!0)})}else if(p===5){let h=j(S),c=I.get(h.channelId);c&&(I.delete(h.channelId),c.end(()=>c.destroy()))}}});e.on("error",p=>{n=!1,!r&&(R.reject(p),t.onError?.("Server connection error: "+p.message))}),e.on("close",()=>{n=!1,P&&clearInterval(P),L&&clearTimeout(L),I.forEach(p=>p.destroy()),!r&&(setTimeout(fe,u.reconnectTime),u.reconnectTime=Math.min(i,u.reconnectTime*s))}),e.on("data",p=>{r||!e||(e.pause(),Qe.receive(p).then(D=>{D||e?.destroy(),e?.resume()}).catch(D=>ze(`Unexpected parser error: ${D.message}`)))})};return fe(),t.waitForInitialConnection!==!1&&await R,()=>{r=!0,e?.destroy()}}0&&(module.exports={connectTunnel});
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@faulpeltz/dertunnel",
3
- "version": "0.7.1",
3
+ "version": "0.7.2",
4
4
  "description": "A client for the dertunnel public endpoint forwarder",
5
5
  "main": "./index.js",
6
6
  "typings": "./client.d.ts",