UNPKG

dose3

Version:

dose3 is a starter kit for building desktop applications using Tauri, Express, Svelte, React, Hono, Astro, and Next.js. It provides a simple and efficient way to create cross-platform applications with a modern tech stack.

4 lines (3 loc) 2.48 kB
"use strict";var y=Object.create;var a=Object.defineProperty;var E=Object.getOwnPropertyDescriptor;var j=Object.getOwnPropertyNames;var b=Object.getPrototypeOf,I=Object.prototype.hasOwnProperty;var d=(t,n)=>()=>(n||t((n={exports:{}}).exports,n),n.exports),L=(t,n)=>{for(var r in n)a(t,r,{get:n[r],enumerable:!0})},f=(t,n,r,o)=>{if(n&&typeof n=="object"||typeof n=="function")for(let e of j(n))!I.call(t,e)&&e!==r&&a(t,e,{get:()=>n[e],enumerable:!(o=E(n,e))||o.enumerable});return t};var h=(t,n,r)=>(r=t!=null?y(b(t)):{},f(n||!t||!t.__esModule?a(r,"default",{value:t,enumerable:!0}):r,t)),C=t=>f(a({},"__esModule",{value:!0}),t);var m=d((U,P)=>{"use strict";var D=require("child_process");function N(t="",n={}){Array.isArray(t)&&(t=t.join(";")),n=Object.assign({stdio:"pipe",cwd:process.cwd()},n);let r,o=process.platform==="win32"?{cmd:"cmd",arg:"/C"}:{cmd:"sh",arg:"-c"};try{r=D.spawn(o.cmd,[o.arg,t],n)}catch(e){return Promise.reject(e)}return new Promise(e=>{let i="",c="";r.stdout&&r.stdout.on("data",s=>{i+=s}),r.stderr&&r.stderr.on("data",s=>{c+=s}),r.on("error",s=>{e({error:s,stdout:i,stderr:c,cmd:t})}),r.on("close",s=>{e({stdout:i,stderr:c,cmd:t,code:s})})})}P.exports=N});var w=d((F,g)=>{"use strict";var p=m();g.exports=function(t,n="tcp"){return t=Number.parseInt(t),t?process.platform==="win32"?p("netstat -nao").then(r=>{let{stdout:o}=r;if(!o)return r;let e=o.split(` `),i=new RegExp(`^ *${n.toUpperCase()} *[^ ]*:${t}`,"gm"),s=e.filter(l=>l.match(i)).reduce((l,k)=>{let u=k.match(/(\d*)\w*(\n|$)/gm);return u&&u[0]&&!l.includes(u[0])?l.concat(u[0]):l},[]);return p(`TaskKill /F /PID ${s.join(" /PID ")}`)}):p("lsof -i -P").then(r=>{let{stdout:o}=r;return o?o.split(` `).filter(c=>c.match(new RegExp(`:*${t}`))).length>0?p(`lsof -i ${n==="udp"?"udp":"tcp"}:${t} | grep ${n==="udp"?"UDP":"LISTEN"} | awk '{print $2}' | xargs kill -9`):Promise.reject(new Error("No process running on port")):r}):Promise.reject(new Error("Invalid port number provided"))}});var S={};L(S,{kill:()=>R,scan:()=>A});module.exports=C(S);var x=h(w()),$=h(require("node:net"));function R(t){(0,x.default)(t,"tcp").then(()=>console.log(`Closed port ${t}`))}function W(t){return new Promise(n=>{let r=$.default.connect(t,"localhost",()=>{r.end(),n(t)});r.on("error",()=>{n(null)})})}async function q(t,n,r){for(let o=t;o<=n;o++){let e=await W(o);e!==null&&console.log(` --> Port ${e} is open.`)}r()}function A(){q(1,65535,()=>{console.log("Scan finished!")})}0&&(module.exports={kill,scan});