tcpie 11.0.2 → 12.0.0
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/dist/tcpie.js +4 -4
- package/package.json +14 -13
package/dist/tcpie.js
CHANGED
|
@@ -1,9 +1,9 @@
|
|
|
1
1
|
#!/usr/bin/env node
|
|
2
2
|
import {createRequire} from 'module';const require = createRequire(import.meta.url);
|
|
3
|
-
var vt=Object.create;var j=Object.defineProperty;var Rt=Object.getOwnPropertyDescriptor;var $t=Object.getOwnPropertyNames;var Ot=Object.getPrototypeOf,It=Object.prototype.hasOwnProperty;var k=(t,o)=>()=>(o||t((o={exports:{}}).exports,o),o.exports);var Ct=(t,o,e,s)=>{if(o&&typeof o=="object"||typeof o=="function")for(let n of $t(o))!It.call(t,n)&&n!==e&&j(t,n,{get:()=>o[n],enumerable:!(s=Rt(o,n))||s.enumerable});return t};var tt=(t,o,e)=>(e=t!=null?vt(Ot(t)):{},Ct(o||!t||!t.__esModule?j(e,"default",{value:t,enumerable:!0}):e,t));var it=k((Zt,st)=>{(function(){"use strict";function t(o){if(!Array.isArray(o))throw new TypeError("stdev()::invalid input argument. Must provide an array.");var e=o.length,s=0,n=0,c=0,r=0;if(e<2)return 0;for(var A=0;A<e;A++)s+=1,r=o[A]-n,n+=r/s,c+=r*(o[A]-n);return Math.sqrt(c/(s-1))}st.exports=t})()});var lt=k((kt,ut)=>{"use strict";function At(t,o){var e=t;o.slice(0,-1).forEach(function(n){e=e[n]||{}});var s=o[o.length-1];return s in e}function ct(t){return typeof t=="number"||/^0x[0-9a-f]+$/i.test(t)?!0:/^[-+]?(?:\d+(?:\.\d*)?|\.\d+)(e[-+]?\d+)?$/.test(t)}function ft(t,o){return o==="constructor"&&typeof t[o]=="function"||o==="__proto__"}ut.exports=function(t,o){o||(o={});var e={bools:{},strings:{},unknownFn:null};typeof o.unknown=="function"&&(e.unknownFn=o.unknown),typeof o.boolean=="boolean"&&o.boolean?e.allBools=!0:[].concat(o.boolean).filter(Boolean).forEach(function(i){e.bools[i]=!0});var s={};function n(i){return s[i].some(function(m){return e.bools[m]})}Object.keys(o.alias||{}).forEach(function(i){s[i]=[].concat(o.alias[i]),s[i].forEach(function(m){s[m]=[i].concat(s[i].filter(function(I){return m!==I}))})}),[].concat(o.string).filter(Boolean).forEach(function(i){e.strings[i]=!0,s[i]&&[].concat(s[i]).forEach(function(m){e.strings[m]=!0})});var c=o.default||{},r={_:[]};function A(i,m){return e.allBools&&/^--[^=]+$/.test(m)||e.strings[i]||e.bools[i]||s[i]}function B(i,m,I){for(var u=i,S=0;S<m.length-1;S++){var $=m[S];if(ft(u,$))return;u[$]===void 0&&(u[$]={}),(u[$]===Object.prototype||u[$]===Number.prototype||u[$]===String.prototype)&&(u[$]={}),u[$]===Array.prototype&&(u[$]=[]),u=u[$]}var C=m[m.length-1];ft(u,C)||((u===Object.prototype||u===Number.prototype||u===String.prototype)&&(u={}),u===Array.prototype&&(u=[]),u[C]===void 0||e.bools[C]||typeof u[C]=="boolean"?u[C]=I:Array.isArray(u[C])?u[C].push(I):u[C]=[u[C],I])}function h(i,m,I){if(!(I&&e.unknownFn&&!A(i,I)&&e.unknownFn(I)===!1)){var u=!e.strings[i]&&ct(m)?Number(m):m;B(r,i.split("."),u),(s[i]||[]).forEach(function(S){B(r,S.split("."),u)})}}Object.keys(e.bools).forEach(function(i){h(i,c[i]===void 0?!1:c[i])});var U=[];t.indexOf("--")!==-1&&(U=t.slice(t.indexOf("--")+1),t=t.slice(0,t.indexOf("--")));for(var d=0;d<t.length;d++){var f=t[d],p,
|
|
4
|
-
`);a.v&&(console.info(Yt),O(0));(!a._.length||a._.length>2||a._[1]&&Number.isNaN(parseInt(a._[1])))&&
|
|
3
|
+
var vt=Object.create;var j=Object.defineProperty;var Rt=Object.getOwnPropertyDescriptor;var $t=Object.getOwnPropertyNames;var Ot=Object.getPrototypeOf,It=Object.prototype.hasOwnProperty;var k=(t,o)=>()=>(o||t((o={exports:{}}).exports,o),o.exports);var Ct=(t,o,e,s)=>{if(o&&typeof o=="object"||typeof o=="function")for(let n of $t(o))!It.call(t,n)&&n!==e&&j(t,n,{get:()=>o[n],enumerable:!(s=Rt(o,n))||s.enumerable});return t};var tt=(t,o,e)=>(e=t!=null?vt(Ot(t)):{},Ct(o||!t||!t.__esModule?j(e,"default",{value:t,enumerable:!0}):e,t));var it=k((Zt,st)=>{(function(){"use strict";function t(o){if(!Array.isArray(o))throw new TypeError("stdev()::invalid input argument. Must provide an array.");var e=o.length,s=0,n=0,c=0,r=0;if(e<2)return 0;for(var A=0;A<e;A++)s+=1,r=o[A]-n,n+=r/s,c+=r*(o[A]-n);return Math.sqrt(c/(s-1))}st.exports=t})()});var lt=k((kt,ut)=>{"use strict";function At(t,o){var e=t;o.slice(0,-1).forEach(function(n){e=e[n]||{}});var s=o[o.length-1];return s in e}function ct(t){return typeof t=="number"||/^0x[0-9a-f]+$/i.test(t)?!0:/^[-+]?(?:\d+(?:\.\d*)?|\.\d+)(e[-+]?\d+)?$/.test(t)}function ft(t,o){return o==="constructor"&&typeof t[o]=="function"||o==="__proto__"}ut.exports=function(t,o){o||(o={});var e={bools:{},strings:{},unknownFn:null};typeof o.unknown=="function"&&(e.unknownFn=o.unknown),typeof o.boolean=="boolean"&&o.boolean?e.allBools=!0:[].concat(o.boolean).filter(Boolean).forEach(function(i){e.bools[i]=!0});var s={};function n(i){return s[i].some(function(m){return e.bools[m]})}Object.keys(o.alias||{}).forEach(function(i){s[i]=[].concat(o.alias[i]),s[i].forEach(function(m){s[m]=[i].concat(s[i].filter(function(I){return m!==I}))})}),[].concat(o.string).filter(Boolean).forEach(function(i){e.strings[i]=!0,s[i]&&[].concat(s[i]).forEach(function(m){e.strings[m]=!0})});var c=o.default||{},r={_:[]};function A(i,m){return e.allBools&&/^--[^=]+$/.test(m)||e.strings[i]||e.bools[i]||s[i]}function B(i,m,I){for(var u=i,S=0;S<m.length-1;S++){var $=m[S];if(ft(u,$))return;u[$]===void 0&&(u[$]={}),(u[$]===Object.prototype||u[$]===Number.prototype||u[$]===String.prototype)&&(u[$]={}),u[$]===Array.prototype&&(u[$]=[]),u=u[$]}var C=m[m.length-1];ft(u,C)||((u===Object.prototype||u===Number.prototype||u===String.prototype)&&(u={}),u===Array.prototype&&(u=[]),u[C]===void 0||e.bools[C]||typeof u[C]=="boolean"?u[C]=I:Array.isArray(u[C])?u[C].push(I):u[C]=[u[C],I])}function h(i,m,I){if(!(I&&e.unknownFn&&!A(i,I)&&e.unknownFn(I)===!1)){var u=!e.strings[i]&&ct(m)?Number(m):m;B(r,i.split("."),u),(s[i]||[]).forEach(function(S){B(r,S.split("."),u)})}}Object.keys(e.bools).forEach(function(i){h(i,c[i]===void 0?!1:c[i])});var U=[];t.indexOf("--")!==-1&&(U=t.slice(t.indexOf("--")+1),t=t.slice(0,t.indexOf("--")));for(var d=0;d<t.length;d++){var f=t[d],p,_;if(/^--.+=/.test(f)){var X=f.match(/^--([^=]+)=([\s\S]*)$/);p=X[1];var V=X[2];e.bools[p]&&(V=V!=="false"),h(p,V,f)}else if(/^--no-.+/.test(f))p=f.match(/^--no-(.+)/)[1],h(p,!1,f);else if(/^--.+/.test(f))p=f.match(/^--(.+)/)[1],_=t[d+1],_!==void 0&&!/^(-|--)[^-]/.test(_)&&!e.bools[p]&&!e.allBools&&(!s[p]||!n(p))?(h(p,_,f),d+=1):/^(true|false)$/.test(_)?(h(p,_==="true",f),d+=1):h(p,e.strings[p]?"":!0,f);else if(/^-[^-]+/.test(f)){for(var v=f.slice(1,-1).split(""),G=!1,b=0;b<v.length;b++){if(_=f.slice(b+2),_==="-"){h(v[b],_,f);continue}if(/[A-Za-z]/.test(v[b])&&_[0]==="="){h(v[b],_.slice(1),f),G=!0;break}if(/[A-Za-z]/.test(v[b])&&/-?\d+(\.\d*)?(e-?\d+)?$/.test(_)){h(v[b],_,f),G=!0;break}if(v[b+1]&&v[b+1].match(/\W/)){h(v[b],f.slice(b+2),f),G=!0;break}else h(v[b],e.strings[v[b]]?"":!0,f)}p=f.slice(-1)[0],!G&&p!=="-"&&(t[d+1]&&!/^(-|--)[^-]/.test(t[d+1])&&!e.bools[p]&&(!s[p]||!n(p))?(h(p,t[d+1],f),d+=1):t[d+1]&&/^(true|false)$/.test(t[d+1])?(h(p,t[d+1]==="true",f),d+=1):h(p,e.strings[p]?"":!0,f))}else if((!e.unknownFn||e.unknownFn(f)!==!1)&&r._.push(e.strings._||!ct(f)?f:Number(f)),o.stopEarly){r._.push.apply(r._,t.slice(d+1));break}}return Object.keys(c).forEach(function(i){At(r,i.split("."))||(B(r,i.split("."),c[i]),(s[i]||[]).forEach(function(m){B(r,m.split("."),c[i])}))}),o["--"]?r["--"]=U.slice():U.forEach(function(i){r._.push(i)}),r}});var ot=!0;function et(){ot=!1}function q(t,o,e){let s=t.join(" ");return ot?`\x1B[${o}m${s}\x1B[${e}m`:s}var w=(...t)=>q(t,31,39),K=(...t)=>q(t,32,39),nt=(...t)=>q(t,33,39);var bt=tt(it(),1);import{isIP as Bt}from"node:net";import{lookup as Gt}from"node:dns";import x,{exit as O,argv as Lt,stdin as W,stdout as Q,stderr as Dt}from"node:process";import{EventEmitter as Nt}from"node:events";import{Socket as wt}from"node:net";import{inherits as gt}from"node:util";var M=function(t,o,e){if(!(this instanceof M))return new M;if(typeof t!="string")throw new Error("host is required");o===void 0&&(o=80),this.host=t,this.port=o,this.opts={interval:1e3,timeout:3e3,count:1/0,...e},this.stats={sent:0,success:0,failed:0}};gt(M,Nt);M.prototype.start=function t(o){return o||(this.stats.sent=0,this.stats.success=0,this.stats.failed=0),this._next=setTimeout(t.bind(this,!0),this.opts.interval),this._done=!1,this._abort=!1,this._socket=new wt,this._startTime=performance.now(),this._socket.setTimeout(this.opts.timeout),this._socket.on("timeout",()=>{this._done||(this._done=!0,this.stats.sent++,this.stats.failed++,this.emit("timeout",z(this,this)),this._socket.destroy(),L(this))}),this._socket.on("error",e=>{this._done||(this._done=!0,this.stats.sent++,this.stats.failed++,this.emit("error",e,z(this,this)),this._socket.destroy(),L(this))}),this._socket.connect(this.port,this.host,()=>{this._done||(this._done=!0,this.stats.sent++,this.stats.success++,this.stats.rtt=performance.now()-this._startTime,this.emit("connect",z(this,this)),this._socket.end(),L(this))}),this};M.prototype.stop=function(){return this._abort=!0,this._socket.end(),L(this),this};function rt(...t){return new M(...t)}function z(t,o){let e=t.stats;return e.target={host:t.host,port:t.port},e.socket={localAddress:o.localAddress,localPort:o.localPort,remoteAddress:o.remoteAddress,remotePort:o.remotePort},e}function L(t){(t._abort||t.stats.failed+t.stats.success>=t.opts.count)&&(t._next&&clearTimeout(t._next),t.emit("end",{sent:t.stats.sent,success:t.stats.success,failed:t.stats.failed,target:{host:t.host,port:t.port}}))}var _t=tt(lt(),1);import H from"node:process";import Mt from"node:os";import at from"node:tty";function T(t,o=globalThis.Deno?globalThis.Deno.args:H.argv){let e=t.startsWith("-")?"":t.length===1?"-":"--",s=o.indexOf(e+t),n=o.indexOf("--");return s!==-1&&(n===-1||s<n)}var{env:l}=H,D;T("no-color")||T("no-colors")||T("color=false")||T("color=never")?D=0:(T("color")||T("colors")||T("color=true")||T("color=always"))&&(D=1);function Ft(){if(!("FORCE_COLOR"in l))return;if(l.FORCE_COLOR==="true")return 1;if(l.FORCE_COLOR==="false")return 0;if(l.FORCE_COLOR.length===0)return 1;let t=Math.min(Number.parseInt(l.FORCE_COLOR,10),3);if([0,1,2,3].includes(t))return t}function St(t){return t===0?!1:{level:t,hasBasic:!0,has256:t>=2,has16m:t>=3}}function xt(t,{streamIsTTY:o,sniffFlags:e=!0}={}){let s=Ft();s!==void 0&&(D=s);let n=e?D:s;if(n===0)return 0;if(e){if(T("color=16m")||T("color=full")||T("color=truecolor"))return 3;if(T("color=256"))return 2}if("TF_BUILD"in l&&"AGENT_NAME"in l)return 1;if(t&&!o&&n===void 0)return 0;let c=n||0;if(l.TERM==="dumb")return c;if(H.platform==="win32"){let r=Mt.release().split(".");return Number(r[0])>=10&&Number(r[2])>=10586?Number(r[2])>=14931?3:2:1}if("CI"in l)return["GITHUB_ACTIONS","GITEA_ACTIONS","CIRCLECI"].some(r=>r in l)?3:["TRAVIS","APPVEYOR","GITLAB_CI","BUILDKITE","DRONE"].some(r=>r in l)||l.CI_NAME==="codeship"?1:c;if("TEAMCITY_VERSION"in l)return/^(9\.(0*[1-9]\d*)\.|\d{2,}\.)/.test(l.TEAMCITY_VERSION)?1:0;if(l.COLORTERM==="truecolor"||l.TERM==="xterm-kitty"||l.TERM==="xterm-ghostty"||l.TERM==="wezterm")return 3;if("TERM_PROGRAM"in l){let r=Number.parseInt((l.TERM_PROGRAM_VERSION||"").split(".")[0],10);switch(l.TERM_PROGRAM){case"iTerm.app":return r>=3?3:2;case"Apple_Terminal":return 2}}return/-256(color)?$/i.test(l.TERM)?2:/^screen|^xterm|^vt100|^vt220|^rxvt|color|ansi|cygwin|linux/i.test(l.TERM)||"COLORTERM"in l?1:c}function pt(t,o={}){let e=xt(t,{streamIsTTY:t&&t.isTTY,...o});return St(e)}var Pt={stdout:pt({isTTY:at.isatty(1)}),stderr:pt({isTTY:at.isatty(2)})},mt=Pt;var a=(0,_t.default)(Lt.slice(2),{boolean:["color","C","timestamp","T","flood","f","version","v"]}),Yt="12.0.0",yt=1,Y=3,Ut=0,Vt=22,qt=[""," Usage: tcpie [options] host[:port] [port|22]",""," Options:",""," -v, --version output version"," -c, --count <n> number of connects (default: infinite)"," -i, --interval <n> wait n seconds between connects (default: 1)"," -t, --timeout <n> connection timeout in seconds (default: 3)"," -T, --timestamp add timestamps to output"," -f, --flood flood mode, connect as fast as possible"," -C, --no-color disable color output",""," Examples:",""," $ tcpie google.com"," $ tcpie -i .1 8.8.8.8:53"," $ tcpie -c5 -t.05 aspmx.l.google.com 25","",""].join(`
|
|
4
|
+
`);a.v&&(console.info(Yt),O(0));(!a._.length||a._.length>2||a._[1]&&Number.isNaN(Number.parseInt(a._[1])))&&Tt();var E=a._[0],F={},N=Number.parseInt(a._[1]),J=!1,y=[],R;typeof E!="string"&&Tt();var P=/^(.+):(\d+)$/.exec(E);(P==null?void 0:P.length)===3&&!N&&(E=P[1],N=P[2]);N||(N=Vt);(a.count||a.c)&&(F.count=Number.parseInt(a.count||a.c));(a.interval||a.i)&&(F.interval=Et(a.interval||a.i));(a.timeout||a.t)&&(F.timeout=Et(a.timeout||a.t));(a.flood||a.f)&&(F.interval=0);(a.C||!mt.stdout)&&et();Bt(E)?(ht(E,E,N),dt(E,N,F)):Gt(E,(t,o)=>{t?(t.code==="ENOTFOUND"?g(w("ERROR:"),`Host '${E}' not found`):g(w("ERROR:"),t.code,t.syscall||""),O(1)):(ht(E,o,N),dt(E,N,F))});function dt(t,o,e){let s=rt(t,o,e);s.on("error",(n,c)=>{R=c,g(w("error connecting to",`${c.target.host}:${c.target.port}`),`seq=${c.sent}`,`error=${w(n.code)}`)}).on("connect",n=>{R=n,y.push(n.rtt),g(K("connected to",`${n.target.host}:${n.target.port}`),`seq=${n.sent}`,n.socket.localPort!==void 0?`srcport=${n.socket.localPort}`:"",`time=${Kt(n.rtt.toFixed(yt))}`)}).on("timeout",n=>{R=n,g(w("timeout connecting to",`${n.target.host}:${n.target.port}`),`seq=${n.sent}`,n.socket.localPort&&`srcport=${n.socket.localPort}`)}),W.isTTY?(W.setRawMode(!0),W.on("data",n=>{let c=[3,4,26,28];for(let r of n)c.includes(r)&&Z()})):(x.on("SIGINT",O),x.on("SIGQUIT",O),x.on("SIGTERM",O),x.on("SIGTSTP",O)),x.on("exit",Z),s.on("end",Z).start()}function ht(t,o,e){g("TCPIE",t,`(${o})`,"port",String(e))}function Z(){let t=0,o=1/0,e=0,s,n;if(J&&O(R.success===0&&1||0),R&&R.sent>0){for(let c of y)c<=o&&(o=c.toFixed(Y)),c>=e&&(e=c.toFixed(Y)),t+=c;s=(t/y.length).toFixed(Y),n=(0,bt.default)(y).toFixed(Y),o===1/0&&(o="0"),Number.isNaN(s)&&(s="0"),J=!0,g(`
|
|
5
5
|
---`,E,"tcpie statistics","---",`
|
|
6
6
|
${R.sent}`,"handshakes attempted,",R.success||"0","succeeded,",`${(R.failed/R.sent*100).toFixed(Ut)}% failed`,`
|
|
7
|
-
rtt min/avg/max/stdev =`,`${o}/${s}/${e}/${n}`,"ms"),O(R.success===0&&1||0)}else O(1)}function Kt(t){return t>=150?`${
|
|
7
|
+
rtt min/avg/max/stdev =`,`${o}/${s}/${e}/${n}`,"ms"),O(R.success===0&&1||0)}else O(1)}function Kt(t){return t>=150?`${w(t)} ms`:t>=75?`${nt(t)} ms`:`${K(t)} ms`}function g(...t){t=t.filter(Boolean),(a.timeout||a.T)&&t[0][0]!==`
|
|
8
8
|
`&&t.unshift(zt()),t.push(`
|
|
9
|
-
`),(Q._type==="pipe"&&J?Dt:Q).write(t.join(" "))}function
|
|
9
|
+
`),(Q._type==="pipe"&&J?Dt:Q).write(t.join(" "))}function Tt(){Q.write(qt),O(1)}function Et(t){return Number.parseFloat(t)*1e3}function zt(){let t=new Date,o=t.getFullYear(),e=t.getMonth()+1,s=t.getDate(),n=t.getHours(),c=t.getMinutes(),r=t.getSeconds();return e<10&&(e=`0${e}`),s<10&&(s=`0${s}`),n<10&&(n=`0${n}`),c<10&&(c=`0${c}`),r<10&&(r=`0${r}`),`${o}-${e}-${s} ${n}:${c}:${r}`}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "tcpie",
|
|
3
|
-
"version": "
|
|
3
|
+
"version": "12.0.0",
|
|
4
4
|
"description": "Ping any TCP port",
|
|
5
5
|
"author": "silverwind <me@silverwind.io>",
|
|
6
6
|
"repository": "silverwind/tcpie",
|
|
@@ -10,7 +10,7 @@
|
|
|
10
10
|
"type": "module",
|
|
11
11
|
"sideEffects": false,
|
|
12
12
|
"engines": {
|
|
13
|
-
"node": ">=
|
|
13
|
+
"node": ">=22"
|
|
14
14
|
},
|
|
15
15
|
"files": [
|
|
16
16
|
"./index.js",
|
|
@@ -18,20 +18,21 @@
|
|
|
18
18
|
],
|
|
19
19
|
"dependencies": {
|
|
20
20
|
"compute-stdev": "1.0.0",
|
|
21
|
-
"glowie": "1.3.
|
|
21
|
+
"glowie": "1.3.4",
|
|
22
22
|
"minimist": "1.2.8",
|
|
23
23
|
"supports-color": "10.2.2"
|
|
24
24
|
},
|
|
25
25
|
"devDependencies": {
|
|
26
|
-
"esbuild": "0.
|
|
27
|
-
"eslint": "9.39.
|
|
28
|
-
"eslint-config-silverwind": "
|
|
29
|
-
"
|
|
30
|
-
"typescript
|
|
31
|
-
"
|
|
32
|
-
"updates
|
|
33
|
-
"
|
|
34
|
-
"
|
|
35
|
-
"vitest
|
|
26
|
+
"esbuild": "0.28.0",
|
|
27
|
+
"eslint": "9.39.4",
|
|
28
|
+
"eslint-config-silverwind": "131.0.4",
|
|
29
|
+
"jest-extended": "7.0.0",
|
|
30
|
+
"typescript": "6.0.2",
|
|
31
|
+
"typescript-config-silverwind": "17.0.0",
|
|
32
|
+
"updates": "17.15.2",
|
|
33
|
+
"updates-config-silverwind": "3.0.0",
|
|
34
|
+
"versions": "15.0.0",
|
|
35
|
+
"vitest": "4.1.4",
|
|
36
|
+
"vitest-config-silverwind": "11.3.3"
|
|
36
37
|
}
|
|
37
38
|
}
|