next-ws 2.0.13 → 2.1.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/cli.cjs CHANGED
@@ -1,33 +1,960 @@
1
1
  #!/usr/bin/env node
2
- "use strict";var wr=Object.create;var Ke=Object.defineProperty;var vr=Object.getOwnPropertyDescriptor;var Ar=Object.getOwnPropertyNames;var Sr=Object.getPrototypeOf,Lr=Object.prototype.hasOwnProperty;var x=(r,e)=>()=>(e||r((e={exports:{}}).exports,e),e.exports);var Cr=(r,e,t,s)=>{if(e&&typeof e=="object"||typeof e=="function")for(let n of Ar(e))!Lr.call(r,n)&&n!==t&&Ke(r,n,{get:()=>e[n],enumerable:!(s=vr(e,n))||s.enumerable});return r};var S=(r,e,t)=>(t=r!=null?wr(Sr(r)):{},Cr(e||!r||!r.__esModule?Ke(t,"default",{value:r,enumerable:!0}):t,r));var et=x((bn,Qe)=>{"use strict";function yr(r,e){var t=r;e.slice(0,-1).forEach(function(n){t=t[n]||{}});var s=e[e.length-1];return s in t}function Ze(r){return typeof r=="number"||/^0x[0-9a-f]+$/i.test(r)?!0:/^[-+]?(?:\d+(?:\.\d*)?|\.\d+)(e[-+]?\d+)?$/.test(r)}function Je(r,e){return e==="constructor"&&typeof r[e]=="function"||e==="__proto__"}Qe.exports=function(r,e){e||(e={});var t={bools:{},strings:{},unknownFn:null};typeof e.unknown=="function"&&(t.unknownFn=e.unknown),typeof e.boolean=="boolean"&&e.boolean?t.allBools=!0:[].concat(e.boolean).filter(Boolean).forEach(function(d){t.bools[d]=!0});var s={};function n(d){return s[d].some(function(I){return t.bools[I]})}Object.keys(e.alias||{}).forEach(function(d){s[d]=[].concat(e.alias[d]),s[d].forEach(function(I){s[I]=[d].concat(s[d].filter(function(F){return I!==F}))})}),[].concat(e.string).filter(Boolean).forEach(function(d){t.strings[d]=!0,s[d]&&[].concat(s[d]).forEach(function(I){t.strings[I]=!0})});var o=e.default||{},i={_:[]};function l(d,I){return t.allBools&&/^--[^=]+$/.test(I)||t.strings[d]||t.bools[d]||s[d]}function u(d,I,F){for(var $=d,z=0;z<I.length-1;z++){var P=I[z];if(Je($,P))return;$[P]===void 0&&($[P]={}),($[P]===Object.prototype||$[P]===Number.prototype||$[P]===String.prototype)&&($[P]={}),$[P]===Array.prototype&&($[P]=[]),$=$[P]}var G=I[I.length-1];Je($,G)||(($===Object.prototype||$===Number.prototype||$===String.prototype)&&($={}),$===Array.prototype&&($=[]),$[G]===void 0||t.bools[G]||typeof $[G]=="boolean"?$[G]=F:Array.isArray($[G])?$[G].push(F):$[G]=[$[G],F])}function m(d,I,F){if(!(F&&t.unknownFn&&!l(d,F)&&t.unknownFn(F)===!1)){var $=!t.strings[d]&&Ze(I)?Number(I):I;u(i,d.split("."),$),(s[d]||[]).forEach(function(z){u(i,z.split("."),$)})}}Object.keys(t.bools).forEach(function(d){m(d,o[d]===void 0?!1:o[d])});var N=[];r.indexOf("--")!==-1&&(N=r.slice(r.indexOf("--")+1),r=r.slice(0,r.indexOf("--")));for(var p=0;p<r.length;p++){var f=r[p],E,A;if(/^--.+=/.test(f)){var ze=f.match(/^--([^=]+)=([\s\S]*)$/);E=ze[1];var xe=ze[2];t.bools[E]&&(xe=xe!=="false"),m(E,xe,f)}else if(/^--no-.+/.test(f))E=f.match(/^--no-(.+)/)[1],m(E,!1,f);else if(/^--.+/.test(f))E=f.match(/^--(.+)/)[1],A=r[p+1],A!==void 0&&!/^(-|--)[^-]/.test(A)&&!t.bools[E]&&!t.allBools&&(!s[E]||!n(E))?(m(E,A,f),p+=1):/^(true|false)$/.test(A)?(m(E,A==="true",f),p+=1):m(E,t.strings[E]?"":!0,f);else if(/^-[^-]+/.test(f)){for(var C=f.slice(1,-1).split(""),ne=!1,w=0;w<C.length;w++){if(A=f.slice(w+2),A==="-"){m(C[w],A,f);continue}if(/[A-Za-z]/.test(C[w])&&A[0]==="="){m(C[w],A.slice(1),f),ne=!0;break}if(/[A-Za-z]/.test(C[w])&&/-?\d+(\.\d*)?(e-?\d+)?$/.test(A)){m(C[w],A,f),ne=!0;break}if(C[w+1]&&C[w+1].match(/\W/)){m(C[w],f.slice(w+2),f),ne=!0;break}else m(C[w],t.strings[C[w]]?"":!0,f)}E=f.slice(-1)[0],!ne&&E!=="-"&&(r[p+1]&&!/^(-|--)[^-]/.test(r[p+1])&&!t.bools[E]&&(!s[E]||!n(E))?(m(E,r[p+1],f),p+=1):r[p+1]&&/^(true|false)$/.test(r[p+1])?(m(E,r[p+1]==="true",f),p+=1):m(E,t.strings[E]?"":!0,f))}else if((!t.unknownFn||t.unknownFn(f)!==!1)&&i._.push(t.strings._||!Ze(f)?f:Number(f)),e.stopEarly){i._.push.apply(i._,r.slice(p+1));break}}return Object.keys(o).forEach(function(d){yr(i,d.split("."))||(u(i,d.split("."),o[d]),(s[d]||[]).forEach(function(I){u(i,I.split("."),o[d])}))}),e["--"]?i["--"]=N.slice():N.forEach(function(d){i._.push(d)}),i}});var vt=x((Jn,wt)=>{"use strict";var Se=class{constructor(){this.max=1e3,this.map=new Map}get(e){let t=this.map.get(e);if(t!==void 0)return this.map.delete(e),this.map.set(e,t),t}delete(e){return this.map.delete(e)}set(e,t){if(!this.delete(e)&&t!==void 0){if(this.map.size>=this.max){let n=this.map.keys().next().value;this.delete(n)}this.map.set(e,t)}return this}};wt.exports=Se});var he=x((Qn,At)=>{"use strict";var es=Object.freeze({loose:!0}),ts=Object.freeze({}),rs=r=>r?typeof r!="object"?es:r:ts;At.exports=rs});var me=x((eo,St)=>{"use strict";var ss="2.0.0",ns=Number.MAX_SAFE_INTEGER||9007199254740991,os=16,is=250,as=["major","premajor","minor","preminor","patch","prepatch","prerelease"];St.exports={MAX_LENGTH:256,MAX_SAFE_COMPONENT_LENGTH:os,MAX_SAFE_BUILD_LENGTH:is,MAX_SAFE_INTEGER:ns,RELEASE_TYPES:as,SEMVER_SPEC_VERSION:ss,FLAG_INCLUDE_PRERELEASE:1,FLAG_LOOSE:2}});var te=x((to,Lt)=>{"use strict";var cs=typeof process=="object"&&process.env&&process.env.NODE_DEBUG&&/\bsemver\b/i.test(process.env.NODE_DEBUG)?(...r)=>console.error("SEMVER",...r):()=>{};Lt.exports=cs});var de=x((D,Ct)=>{"use strict";var{MAX_SAFE_COMPONENT_LENGTH:Le,MAX_SAFE_BUILD_LENGTH:ls,MAX_LENGTH:us}=me(),fs=te();D=Ct.exports={};var ps=D.re=[],hs=D.safeRe=[],a=D.src=[],ms=D.safeSrc=[],c=D.t={},ds=0,Ce="[a-zA-Z0-9-]",Es=[["\\s",1],["\\d",us],[Ce,ls]],$s=r=>{for(let[e,t]of Es)r=r.split(`${e}*`).join(`${e}{0,${t}}`).split(`${e}+`).join(`${e}{1,${t}}`);return r},h=(r,e,t)=>{let s=$s(e),n=ds++;fs(r,n,e),c[r]=n,a[n]=e,ms[n]=s,ps[n]=new RegExp(e,t?"g":void 0),hs[n]=new RegExp(s,t?"g":void 0)};h("NUMERICIDENTIFIER","0|[1-9]\\d*");h("NUMERICIDENTIFIERLOOSE","\\d+");h("NONNUMERICIDENTIFIER",`\\d*[a-zA-Z-]${Ce}*`);h("MAINVERSION",`(${a[c.NUMERICIDENTIFIER]})\\.(${a[c.NUMERICIDENTIFIER]})\\.(${a[c.NUMERICIDENTIFIER]})`);h("MAINVERSIONLOOSE",`(${a[c.NUMERICIDENTIFIERLOOSE]})\\.(${a[c.NUMERICIDENTIFIERLOOSE]})\\.(${a[c.NUMERICIDENTIFIERLOOSE]})`);h("PRERELEASEIDENTIFIER",`(?:${a[c.NUMERICIDENTIFIER]}|${a[c.NONNUMERICIDENTIFIER]})`);h("PRERELEASEIDENTIFIERLOOSE",`(?:${a[c.NUMERICIDENTIFIERLOOSE]}|${a[c.NONNUMERICIDENTIFIER]})`);h("PRERELEASE",`(?:-(${a[c.PRERELEASEIDENTIFIER]}(?:\\.${a[c.PRERELEASEIDENTIFIER]})*))`);h("PRERELEASELOOSE",`(?:-?(${a[c.PRERELEASEIDENTIFIERLOOSE]}(?:\\.${a[c.PRERELEASEIDENTIFIERLOOSE]})*))`);h("BUILDIDENTIFIER",`${Ce}+`);h("BUILD",`(?:\\+(${a[c.BUILDIDENTIFIER]}(?:\\.${a[c.BUILDIDENTIFIER]})*))`);h("FULLPLAIN",`v?${a[c.MAINVERSION]}${a[c.PRERELEASE]}?${a[c.BUILD]}?`);h("FULL",`^${a[c.FULLPLAIN]}$`);h("LOOSEPLAIN",`[v=\\s]*${a[c.MAINVERSIONLOOSE]}${a[c.PRERELEASELOOSE]}?${a[c.BUILD]}?`);h("LOOSE",`^${a[c.LOOSEPLAIN]}$`);h("GTLT","((?:<|>)?=?)");h("XRANGEIDENTIFIERLOOSE",`${a[c.NUMERICIDENTIFIERLOOSE]}|x|X|\\*`);h("XRANGEIDENTIFIER",`${a[c.NUMERICIDENTIFIER]}|x|X|\\*`);h("XRANGEPLAIN",`[v=\\s]*(${a[c.XRANGEIDENTIFIER]})(?:\\.(${a[c.XRANGEIDENTIFIER]})(?:\\.(${a[c.XRANGEIDENTIFIER]})(?:${a[c.PRERELEASE]})?${a[c.BUILD]}?)?)?`);h("XRANGEPLAINLOOSE",`[v=\\s]*(${a[c.XRANGEIDENTIFIERLOOSE]})(?:\\.(${a[c.XRANGEIDENTIFIERLOOSE]})(?:\\.(${a[c.XRANGEIDENTIFIERLOOSE]})(?:${a[c.PRERELEASELOOSE]})?${a[c.BUILD]}?)?)?`);h("XRANGE",`^${a[c.GTLT]}\\s*${a[c.XRANGEPLAIN]}$`);h("XRANGELOOSE",`^${a[c.GTLT]}\\s*${a[c.XRANGEPLAINLOOSE]}$`);h("COERCEPLAIN",`(^|[^\\d])(\\d{1,${Le}})(?:\\.(\\d{1,${Le}}))?(?:\\.(\\d{1,${Le}}))?`);h("COERCE",`${a[c.COERCEPLAIN]}(?:$|[^\\d])`);h("COERCEFULL",a[c.COERCEPLAIN]+`(?:${a[c.PRERELEASE]})?(?:${a[c.BUILD]})?(?:$|[^\\d])`);h("COERCERTL",a[c.COERCE],!0);h("COERCERTLFULL",a[c.COERCEFULL],!0);h("LONETILDE","(?:~>?)");h("TILDETRIM",`(\\s*)${a[c.LONETILDE]}\\s+`,!0);D.tildeTrimReplace="$1~";h("TILDE",`^${a[c.LONETILDE]}${a[c.XRANGEPLAIN]}$`);h("TILDELOOSE",`^${a[c.LONETILDE]}${a[c.XRANGEPLAINLOOSE]}$`);h("LONECARET","(?:\\^)");h("CARETTRIM",`(\\s*)${a[c.LONECARET]}\\s+`,!0);D.caretTrimReplace="$1^";h("CARET",`^${a[c.LONECARET]}${a[c.XRANGEPLAIN]}$`);h("CARETLOOSE",`^${a[c.LONECARET]}${a[c.XRANGEPLAINLOOSE]}$`);h("COMPARATORLOOSE",`^${a[c.GTLT]}\\s*(${a[c.LOOSEPLAIN]})$|^$`);h("COMPARATOR",`^${a[c.GTLT]}\\s*(${a[c.FULLPLAIN]})$|^$`);h("COMPARATORTRIM",`(\\s*)${a[c.GTLT]}\\s*(${a[c.LOOSEPLAIN]}|${a[c.XRANGEPLAIN]})`,!0);D.comparatorTrimReplace="$1$2$3";h("HYPHENRANGE",`^\\s*(${a[c.XRANGEPLAIN]})\\s+-\\s+(${a[c.XRANGEPLAIN]})\\s*$`);h("HYPHENRANGELOOSE",`^\\s*(${a[c.XRANGEPLAINLOOSE]})\\s+-\\s+(${a[c.XRANGEPLAINLOOSE]})\\s*$`);h("STAR","(<|>)?=?\\s*\\*");h("GTE0","^\\s*>=\\s*0\\.0\\.0\\s*$");h("GTE0PRE","^\\s*>=\\s*0\\.0\\.0-0\\s*$")});var Ft=x((ro,Dt)=>{"use strict";var yt=/^[0-9]+$/,Pt=(r,e)=>{let t=yt.test(r),s=yt.test(e);return t&&s&&(r=+r,e=+e),r===e?0:t&&!s?-1:s&&!t?1:r<e?-1:1},Rs=(r,e)=>Pt(e,r);Dt.exports={compareIdentifiers:Pt,rcompareIdentifiers:Rs}});var M=x((so,_t)=>{"use strict";var Ee=te(),{MAX_LENGTH:Gt,MAX_SAFE_INTEGER:$e}=me(),{safeRe:jt,safeSrc:qt,t:Re}=de(),Os=he(),{compareIdentifiers:Y}=Ft(),ye=class r{constructor(e,t){if(t=Os(t),e instanceof r){if(e.loose===!!t.loose&&e.includePrerelease===!!t.includePrerelease)return e;e=e.version}else if(typeof e!="string")throw new TypeError(`Invalid version. Must be a string. Got type "${typeof e}".`);if(e.length>Gt)throw new TypeError(`version is longer than ${Gt} characters`);Ee("SemVer",e,t),this.options=t,this.loose=!!t.loose,this.includePrerelease=!!t.includePrerelease;let s=e.trim().match(t.loose?jt[Re.LOOSE]:jt[Re.FULL]);if(!s)throw new TypeError(`Invalid Version: ${e}`);if(this.raw=e,this.major=+s[1],this.minor=+s[2],this.patch=+s[3],this.major>$e||this.major<0)throw new TypeError("Invalid major version");if(this.minor>$e||this.minor<0)throw new TypeError("Invalid minor version");if(this.patch>$e||this.patch<0)throw new TypeError("Invalid patch version");s[4]?this.prerelease=s[4].split(".").map(n=>{if(/^[0-9]+$/.test(n)){let o=+n;if(o>=0&&o<$e)return o}return n}):this.prerelease=[],this.build=s[5]?s[5].split("."):[],this.format()}format(){return this.version=`${this.major}.${this.minor}.${this.patch}`,this.prerelease.length&&(this.version+=`-${this.prerelease.join(".")}`),this.version}toString(){return this.version}compare(e){if(Ee("SemVer.compare",this.version,this.options,e),!(e instanceof r)){if(typeof e=="string"&&e===this.version)return 0;e=new r(e,this.options)}return e.version===this.version?0:this.compareMain(e)||this.comparePre(e)}compareMain(e){return e instanceof r||(e=new r(e,this.options)),Y(this.major,e.major)||Y(this.minor,e.minor)||Y(this.patch,e.patch)}comparePre(e){if(e instanceof r||(e=new r(e,this.options)),this.prerelease.length&&!e.prerelease.length)return-1;if(!this.prerelease.length&&e.prerelease.length)return 1;if(!this.prerelease.length&&!e.prerelease.length)return 0;let t=0;do{let s=this.prerelease[t],n=e.prerelease[t];if(Ee("prerelease compare",t,s,n),s===void 0&&n===void 0)return 0;if(n===void 0)return 1;if(s===void 0)return-1;if(s===n)continue;return Y(s,n)}while(++t)}compareBuild(e){e instanceof r||(e=new r(e,this.options));let t=0;do{let s=this.build[t],n=e.build[t];if(Ee("build compare",t,s,n),s===void 0&&n===void 0)return 0;if(n===void 0)return 1;if(s===void 0)return-1;if(s===n)continue;return Y(s,n)}while(++t)}inc(e,t,s){if(e.startsWith("pre")){if(!t&&s===!1)throw new Error("invalid increment argument: identifier is empty");if(t){let n=new RegExp(`^${this.options.loose?qt[Re.PRERELEASELOOSE]:qt[Re.PRERELEASE]}$`),o=`-${t}`.match(n);if(!o||o[1]!==t)throw new Error(`invalid identifier: ${t}`)}}switch(e){case"premajor":this.prerelease.length=0,this.patch=0,this.minor=0,this.major++,this.inc("pre",t,s);break;case"preminor":this.prerelease.length=0,this.patch=0,this.minor++,this.inc("pre",t,s);break;case"prepatch":this.prerelease.length=0,this.inc("patch",t,s),this.inc("pre",t,s);break;case"prerelease":this.prerelease.length===0&&this.inc("patch",t,s),this.inc("pre",t,s);break;case"release":if(this.prerelease.length===0)throw new Error(`version ${this.raw} is not a prerelease`);this.prerelease.length=0;break;case"major":(this.minor!==0||this.patch!==0||this.prerelease.length===0)&&this.major++,this.minor=0,this.patch=0,this.prerelease=[];break;case"minor":(this.patch!==0||this.prerelease.length===0)&&this.minor++,this.patch=0,this.prerelease=[];break;case"patch":this.prerelease.length===0&&this.patch++,this.prerelease=[];break;case"pre":{let n=Number(s)?1:0;if(this.prerelease.length===0)this.prerelease=[n];else{let o=this.prerelease.length;for(;--o>=0;)typeof this.prerelease[o]=="number"&&(this.prerelease[o]++,o=-2);if(o===-1){if(t===this.prerelease.join(".")&&s===!1)throw new Error("invalid increment argument: identifier already exists");this.prerelease.push(n)}}if(t){let o=[t,n];s===!1&&(o=[t]),Y(this.prerelease[0],t)===0?isNaN(this.prerelease[1])&&(this.prerelease=o):this.prerelease=o}break}default:throw new Error(`invalid increment argument: ${e}`)}return this.raw=this.format(),this.build.length&&(this.raw+=`+${this.build.join(".")}`),this}};_t.exports=ye});var X=x((no,Ut)=>{"use strict";var Bt=M(),xs=(r,e,t)=>new Bt(r,t).compare(new Bt(e,t));Ut.exports=xs});var Xt=x((oo,Mt)=>{"use strict";var gs=X(),Ns=(r,e,t)=>gs(r,e,t)===0;Mt.exports=Ns});var Vt=x((io,kt)=>{"use strict";var Is=X(),Ts=(r,e,t)=>Is(r,e,t)!==0;kt.exports=Ts});var re=x((ao,Wt)=>{"use strict";var bs=X(),ws=(r,e,t)=>bs(r,e,t)>0;Wt.exports=ws});var Pe=x((co,Yt)=>{"use strict";var vs=X(),As=(r,e,t)=>vs(r,e,t)>=0;Yt.exports=As});var De=x((lo,Ht)=>{"use strict";var Ss=X(),Ls=(r,e,t)=>Ss(r,e,t)<0;Ht.exports=Ls});var Fe=x((uo,zt)=>{"use strict";var Cs=X(),ys=(r,e,t)=>Cs(r,e,t)<=0;zt.exports=ys});var Zt=x((fo,Kt)=>{"use strict";var Ps=Xt(),Ds=Vt(),Fs=re(),Gs=Pe(),js=De(),qs=Fe(),_s=(r,e,t,s)=>{switch(e){case"===":return typeof r=="object"&&(r=r.version),typeof t=="object"&&(t=t.version),r===t;case"!==":return typeof r=="object"&&(r=r.version),typeof t=="object"&&(t=t.version),r!==t;case"":case"=":case"==":return Ps(r,t,s);case"!=":return Ds(r,t,s);case">":return Fs(r,t,s);case">=":return Gs(r,t,s);case"<":return js(r,t,s);case"<=":return qs(r,t,s);default:throw new TypeError(`Invalid operator: ${e}`)}};Kt.exports=_s});var _e=x((po,sr)=>{"use strict";var se=Symbol("SemVer ANY"),qe=class r{static get ANY(){return se}constructor(e,t){if(t=Jt(t),e instanceof r){if(e.loose===!!t.loose)return e;e=e.value}e=e.trim().split(/\s+/).join(" "),je("comparator",e,t),this.options=t,this.loose=!!t.loose,this.parse(e),this.semver===se?this.value="":this.value=this.operator+this.semver.version,je("comp",this)}parse(e){let t=this.options.loose?Qt[er.COMPARATORLOOSE]:Qt[er.COMPARATOR],s=e.match(t);if(!s)throw new TypeError(`Invalid comparator: ${e}`);this.operator=s[1]!==void 0?s[1]:"",this.operator==="="&&(this.operator=""),s[2]?this.semver=new tr(s[2],this.options.loose):this.semver=se}toString(){return this.value}test(e){if(je("Comparator.test",e,this.options.loose),this.semver===se||e===se)return!0;if(typeof e=="string")try{e=new tr(e,this.options)}catch{return!1}return Ge(e,this.operator,this.semver,this.options)}intersects(e,t){if(!(e instanceof r))throw new TypeError("a Comparator is required");return this.operator===""?this.value===""?!0:new rr(e.value,t).test(this.value):e.operator===""?e.value===""?!0:new rr(this.value,t).test(e.semver):(t=Jt(t),t.includePrerelease&&(this.value==="<0.0.0-0"||e.value==="<0.0.0-0")||!t.includePrerelease&&(this.value.startsWith("<0.0.0")||e.value.startsWith("<0.0.0"))?!1:!!(this.operator.startsWith(">")&&e.operator.startsWith(">")||this.operator.startsWith("<")&&e.operator.startsWith("<")||this.semver.version===e.semver.version&&this.operator.includes("=")&&e.operator.includes("=")||Ge(this.semver,"<",e.semver,t)&&this.operator.startsWith(">")&&e.operator.startsWith("<")||Ge(this.semver,">",e.semver,t)&&this.operator.startsWith("<")&&e.operator.startsWith(">")))}};sr.exports=qe;var Jt=he(),{safeRe:Qt,t:er}=de(),Ge=Zt(),je=te(),tr=M(),rr=H()});var H=x((ho,ar)=>{"use strict";var Bs=/\s+/g,Be=class r{constructor(e,t){if(t=Ms(t),e instanceof r)return e.loose===!!t.loose&&e.includePrerelease===!!t.includePrerelease?e:new r(e.raw,t);if(e instanceof Ue)return this.raw=e.value,this.set=[[e]],this.formatted=void 0,this;if(this.options=t,this.loose=!!t.loose,this.includePrerelease=!!t.includePrerelease,this.raw=e.trim().replace(Bs," "),this.set=this.raw.split("||").map(s=>this.parseRange(s.trim())).filter(s=>s.length),!this.set.length)throw new TypeError(`Invalid SemVer Range: ${this.raw}`);if(this.set.length>1){let s=this.set[0];if(this.set=this.set.filter(n=>!or(n[0])),this.set.length===0)this.set=[s];else if(this.set.length>1){for(let n of this.set)if(n.length===1&&zs(n[0])){this.set=[n];break}}}this.formatted=void 0}get range(){if(this.formatted===void 0){this.formatted="";for(let e=0;e<this.set.length;e++){e>0&&(this.formatted+="||");let t=this.set[e];for(let s=0;s<t.length;s++)s>0&&(this.formatted+=" "),this.formatted+=t[s].toString().trim()}}return this.formatted}format(){return this.range}toString(){return this.range}parseRange(e){let s=((this.options.includePrerelease&&Ys)|(this.options.loose&&Hs))+":"+e,n=nr.get(s);if(n)return n;let o=this.options.loose,i=o?v[T.HYPHENRANGELOOSE]:v[T.HYPHENRANGE];e=e.replace(i,on(this.options.includePrerelease)),R("hyphen replace",e),e=e.replace(v[T.COMPARATORTRIM],ks),R("comparator trim",e),e=e.replace(v[T.TILDETRIM],Vs),R("tilde trim",e),e=e.replace(v[T.CARETTRIM],Ws),R("caret trim",e);let l=e.split(" ").map(p=>Ks(p,this.options)).join(" ").split(/\s+/).map(p=>nn(p,this.options));o&&(l=l.filter(p=>(R("loose invalid filter",p,this.options),!!p.match(v[T.COMPARATORLOOSE])))),R("range list",l);let u=new Map,m=l.map(p=>new Ue(p,this.options));for(let p of m){if(or(p))return[p];u.set(p.value,p)}u.size>1&&u.has("")&&u.delete("");let N=[...u.values()];return nr.set(s,N),N}intersects(e,t){if(!(e instanceof r))throw new TypeError("a Range is required");return this.set.some(s=>ir(s,t)&&e.set.some(n=>ir(n,t)&&s.every(o=>n.every(i=>o.intersects(i,t)))))}test(e){if(!e)return!1;if(typeof e=="string")try{e=new Xs(e,this.options)}catch{return!1}for(let t=0;t<this.set.length;t++)if(an(this.set[t],e,this.options))return!0;return!1}};ar.exports=Be;var Us=vt(),nr=new Us,Ms=he(),Ue=_e(),R=te(),Xs=M(),{safeRe:v,t:T,comparatorTrimReplace:ks,tildeTrimReplace:Vs,caretTrimReplace:Ws}=de(),{FLAG_INCLUDE_PRERELEASE:Ys,FLAG_LOOSE:Hs}=me(),or=r=>r.value==="<0.0.0-0",zs=r=>r.value==="",ir=(r,e)=>{let t=!0,s=r.slice(),n=s.pop();for(;t&&s.length;)t=s.every(o=>n.intersects(o,e)),n=s.pop();return t},Ks=(r,e)=>(R("comp",r,e),r=Qs(r,e),R("caret",r),r=Zs(r,e),R("tildes",r),r=tn(r,e),R("xrange",r),r=sn(r,e),R("stars",r),r),b=r=>!r||r.toLowerCase()==="x"||r==="*",Zs=(r,e)=>r.trim().split(/\s+/).map(t=>Js(t,e)).join(" "),Js=(r,e)=>{let t=e.loose?v[T.TILDELOOSE]:v[T.TILDE];return r.replace(t,(s,n,o,i,l)=>{R("tilde",r,s,n,o,i,l);let u;return b(n)?u="":b(o)?u=`>=${n}.0.0 <${+n+1}.0.0-0`:b(i)?u=`>=${n}.${o}.0 <${n}.${+o+1}.0-0`:l?(R("replaceTilde pr",l),u=`>=${n}.${o}.${i}-${l} <${n}.${+o+1}.0-0`):u=`>=${n}.${o}.${i} <${n}.${+o+1}.0-0`,R("tilde return",u),u})},Qs=(r,e)=>r.trim().split(/\s+/).map(t=>en(t,e)).join(" "),en=(r,e)=>{R("caret",r,e);let t=e.loose?v[T.CARETLOOSE]:v[T.CARET],s=e.includePrerelease?"-0":"";return r.replace(t,(n,o,i,l,u)=>{R("caret",r,n,o,i,l,u);let m;return b(o)?m="":b(i)?m=`>=${o}.0.0${s} <${+o+1}.0.0-0`:b(l)?o==="0"?m=`>=${o}.${i}.0${s} <${o}.${+i+1}.0-0`:m=`>=${o}.${i}.0${s} <${+o+1}.0.0-0`:u?(R("replaceCaret pr",u),o==="0"?i==="0"?m=`>=${o}.${i}.${l}-${u} <${o}.${i}.${+l+1}-0`:m=`>=${o}.${i}.${l}-${u} <${o}.${+i+1}.0-0`:m=`>=${o}.${i}.${l}-${u} <${+o+1}.0.0-0`):(R("no pr"),o==="0"?i==="0"?m=`>=${o}.${i}.${l}${s} <${o}.${i}.${+l+1}-0`:m=`>=${o}.${i}.${l}${s} <${o}.${+i+1}.0-0`:m=`>=${o}.${i}.${l} <${+o+1}.0.0-0`),R("caret return",m),m})},tn=(r,e)=>(R("replaceXRanges",r,e),r.split(/\s+/).map(t=>rn(t,e)).join(" ")),rn=(r,e)=>{r=r.trim();let t=e.loose?v[T.XRANGELOOSE]:v[T.XRANGE];return r.replace(t,(s,n,o,i,l,u)=>{R("xRange",r,s,n,o,i,l,u);let m=b(o),N=m||b(i),p=N||b(l),f=p;return n==="="&&f&&(n=""),u=e.includePrerelease?"-0":"",m?n===">"||n==="<"?s="<0.0.0-0":s="*":n&&f?(N&&(i=0),l=0,n===">"?(n=">=",N?(o=+o+1,i=0,l=0):(i=+i+1,l=0)):n==="<="&&(n="<",N?o=+o+1:i=+i+1),n==="<"&&(u="-0"),s=`${n+o}.${i}.${l}${u}`):N?s=`>=${o}.0.0${u} <${+o+1}.0.0-0`:p&&(s=`>=${o}.${i}.0${u} <${o}.${+i+1}.0-0`),R("xRange return",s),s})},sn=(r,e)=>(R("replaceStars",r,e),r.trim().replace(v[T.STAR],"")),nn=(r,e)=>(R("replaceGTE0",r,e),r.trim().replace(v[e.includePrerelease?T.GTE0PRE:T.GTE0],"")),on=r=>(e,t,s,n,o,i,l,u,m,N,p,f)=>(b(s)?t="":b(n)?t=`>=${s}.0.0${r?"-0":""}`:b(o)?t=`>=${s}.${n}.0${r?"-0":""}`:i?t=`>=${t}`:t=`>=${t}${r?"-0":""}`,b(m)?u="":b(N)?u=`<${+m+1}.0.0-0`:b(p)?u=`<${m}.${+N+1}.0-0`:f?u=`<=${m}.${N}.${p}-${f}`:r?u=`<${m}.${N}.${+p+1}-0`:u=`<=${u}`,`${t} ${u}`.trim()),an=(r,e,t)=>{for(let s=0;s<r.length;s++)if(!r[s].test(e))return!1;if(e.prerelease.length&&!t.includePrerelease){for(let s=0;s<r.length;s++)if(R(r[s].semver),r[s].semver!==Ue.ANY&&r[s].semver.prerelease.length>0){let n=r[s].semver;if(n.major===e.major&&n.minor===e.minor&&n.patch===e.patch)return!0}return!1}return!0}});var ur=x((mo,lr)=>{"use strict";var Me=M(),cn=H(),cr=re(),ln=(r,e)=>{r=new cn(r,e);let t=new Me("0.0.0");if(r.test(t)||(t=new Me("0.0.0-0"),r.test(t)))return t;t=null;for(let s=0;s<r.set.length;++s){let n=r.set[s],o=null;n.forEach(i=>{let l=new Me(i.semver.version);switch(i.operator){case">":l.prerelease.length===0?l.patch++:l.prerelease.push(0),l.raw=l.format();case"":case">=":(!o||cr(l,o))&&(o=l);break;case"<":case"<=":break;default:throw new Error(`Unexpected operation: ${i.operator}`)}}),o&&(!t||cr(t,o))&&(t=o)}return t&&r.test(t)?t:null};lr.exports=ln});var Xe=x((Eo,fr)=>{"use strict";var un=H(),fn=(r,e,t)=>{try{e=new un(e,t)}catch{return!1}return e.test(r)};fr.exports=fn});var ke=x(($o,dr)=>{"use strict";var pn=M(),mr=_e(),{ANY:hn}=mr,mn=H(),dn=Xe(),pr=re(),hr=De(),En=Fe(),$n=Pe(),Rn=(r,e,t,s)=>{r=new pn(r,s),e=new mn(e,s);let n,o,i,l,u;switch(t){case">":n=pr,o=En,i=hr,l=">",u=">=";break;case"<":n=hr,o=$n,i=pr,l="<",u="<=";break;default:throw new TypeError('Must provide a hilo val of "<" or ">"')}if(dn(r,e,s))return!1;for(let m=0;m<e.set.length;++m){let N=e.set[m],p=null,f=null;if(N.forEach(E=>{E.semver===hn&&(E=new mr(">=0.0.0")),p=p||E,f=f||E,n(E.semver,p.semver,s)?p=E:i(E.semver,f.semver,s)&&(f=E)}),p.operator===l||p.operator===u||(!f.operator||f.operator===l)&&o(r,f.semver))return!1;if(f.operator===u&&i(r,f.semver))return!1}return!0};dr.exports=Rn});var $r=x((Ro,Er)=>{"use strict";var On=ke(),xn=(r,e,t)=>On(r,e,"<",t);Er.exports=xn});var Or=x((Oo,Rr)=>{"use strict";var gn=ke(),Nn=(r,e,t)=>gn(r,e,">",t);Rr.exports=Nn});var ge=S(et(),1);var tt="2.0.13";function st(r){return{...r,parse(e,t){let s=(0,ge.default)(t);for(let n of this.children)if(s._[0]===n.name)return void n.parse(e.concat(this),t.slice(1));return s.help?void console.log(rt(e,this)):s.v||s.version?void console.log(tt):void console.log(rt(e,this))}}}function rt(r,e){return`Usage: ${[...r,e].map(t=>t.name).join(" ")} [command] [options]
2
+ "use strict";
3
+ var __create = Object.create;
4
+ var __defProp = Object.defineProperty;
5
+ var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
6
+ var __getOwnPropNames = Object.getOwnPropertyNames;
7
+ var __getProtoOf = Object.getPrototypeOf;
8
+ var __hasOwnProp = Object.prototype.hasOwnProperty;
9
+ var __copyProps = (to, from, except, desc) => {
10
+ if (from && typeof from === "object" || typeof from === "function") {
11
+ for (let key of __getOwnPropNames(from))
12
+ if (!__hasOwnProp.call(to, key) && key !== except)
13
+ __defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable });
14
+ }
15
+ return to;
16
+ };
17
+ var __toESM = (mod, isNodeMode, target) => (target = mod != null ? __create(__getProtoOf(mod)) : {}, __copyProps(
18
+ // If the importer is in node compatibility mode or this is not an ESM
19
+ // file that has been converted to a CommonJS file using a Babel-
20
+ // compatible transform (i.e. "__esModule" has not been set), then set
21
+ // "default" to the CommonJS "module.exports" for node compatibility.
22
+ isNodeMode || !mod || !mod.__esModule ? __defProp(target, "default", { value: mod, enumerable: true }) : target,
23
+ mod
24
+ ));
3
25
 
4
- ${e.description}
26
+ // src/commands/helpers/define.ts
27
+ var import_minimist = __toESM(require("minimist"));
28
+
29
+ // package.json
30
+ var version = "2.1.0";
31
+
32
+ // src/commands/helpers/define.ts
33
+ function defineCommandGroup(definition) {
34
+ return {
35
+ ...definition,
36
+ parse(parents, argv) {
37
+ const parsed = (0, import_minimist.default)(argv);
38
+ for (const child of this.children)
39
+ if (parsed._[0] === child.name)
40
+ return void child.parse(parents.concat(this), argv.slice(1));
41
+ if (parsed.help)
42
+ return void console.log(buildCommandGroupHelp(parents, this));
43
+ if (parsed.v || parsed.version) return void console.log(version);
44
+ return void console.log(buildCommandGroupHelp(parents, this));
45
+ }
46
+ };
47
+ }
48
+ function buildCommandGroupHelp(parents, group) {
49
+ return `Usage: ${[...parents, group].map((p) => p.name).join(" ")} [command] [options]
50
+
51
+ ${group.description}
5
52
 
6
53
  Commands:
7
- ${e.children.map(t=>`${t.name} | ${t.description}`).join(`
8
- `)}
54
+ ${group.children.map((c) => `${c.name} | ${c.description}`).join("\n ")}
9
55
 
10
56
  Options:
11
57
  --help | Show this help message and exit.
12
58
  --version | Show the version number and exit.
13
- `}function oe(r){return{...r,parse(e,t){let s=(0,ge.default)(t);return s.help?void console.log(Dr(e,this)):this.action(s)}}}function Dr(r,e){return`Usage: ${[...r,e].map(t=>t.name).join(" ")} [options]
59
+ `;
60
+ }
61
+ function defineCommand(definition) {
62
+ return {
63
+ ...definition,
64
+ parse(parents, argv) {
65
+ const parsed = (0, import_minimist.default)(argv);
66
+ if (parsed.help) return void console.log(buildCommandHelp(parents, this));
67
+ return this.action(parsed);
68
+ }
69
+ };
70
+ }
71
+ function buildCommandHelp(parents, command) {
72
+ return `Usage: ${[...parents, command].map((p) => p.name).join(" ")} [options]
14
73
 
15
- ${e.description}
74
+ ${command.description}
16
75
 
17
76
  Options:
18
77
  --help | Show this help message and exit.
19
- ${e.options.map(t=>`--${t.name} | ${t.description}`).join(`
20
- `)}
21
- `}var fe=require("fs/promises"),It=require("path");var q=S(require("readline"),1),dt=require("util");var nt=(r=0)=>e=>`\x1B[${e+r}m`,ot=(r=0)=>e=>`\x1B[${38+r};5;${e}m`,it=(r=0)=>(e,t,s)=>`\x1B[${38+r};2;${e};${t};${s}m`,O={modifier:{reset:[0,0],bold:[1,22],dim:[2,22],italic:[3,23],underline:[4,24],overline:[53,55],inverse:[7,27],hidden:[8,28],strikethrough:[9,29]},color:{black:[30,39],red:[31,39],green:[32,39],yellow:[33,39],blue:[34,39],magenta:[35,39],cyan:[36,39],white:[37,39],blackBright:[90,39],gray:[90,39],grey:[90,39],redBright:[91,39],greenBright:[92,39],yellowBright:[93,39],blueBright:[94,39],magentaBright:[95,39],cyanBright:[96,39],whiteBright:[97,39]},bgColor:{bgBlack:[40,49],bgRed:[41,49],bgGreen:[42,49],bgYellow:[43,49],bgBlue:[44,49],bgMagenta:[45,49],bgCyan:[46,49],bgWhite:[47,49],bgBlackBright:[100,49],bgGray:[100,49],bgGrey:[100,49],bgRedBright:[101,49],bgGreenBright:[102,49],bgYellowBright:[103,49],bgBlueBright:[104,49],bgMagentaBright:[105,49],bgCyanBright:[106,49],bgWhiteBright:[107,49]}},Sn=Object.keys(O.modifier),Fr=Object.keys(O.color),Gr=Object.keys(O.bgColor),Ln=[...Fr,...Gr];function jr(){let r=new Map;for(let[e,t]of Object.entries(O)){for(let[s,n]of Object.entries(t))O[s]={open:`\x1B[${n[0]}m`,close:`\x1B[${n[1]}m`},t[s]=O[s],r.set(n[0],n[1]);Object.defineProperty(O,e,{value:t,enumerable:!1})}return Object.defineProperty(O,"codes",{value:r,enumerable:!1}),O.color.close="\x1B[39m",O.bgColor.close="\x1B[49m",O.color.ansi=nt(),O.color.ansi256=ot(),O.color.ansi16m=it(),O.bgColor.ansi=nt(10),O.bgColor.ansi256=ot(10),O.bgColor.ansi16m=it(10),Object.defineProperties(O,{rgbToAnsi256:{value(e,t,s){return e===t&&t===s?e<8?16:e>248?231:Math.round((e-8)/247*24)+232:16+36*Math.round(e/255*5)+6*Math.round(t/255*5)+Math.round(s/255*5)},enumerable:!1},hexToRgb:{value(e){let t=/[a-f\d]{6}|[a-f\d]{3}/i.exec(e.toString(16));if(!t)return[0,0,0];let[s]=t;s.length===3&&(s=[...s].map(o=>o+o).join(""));let n=Number.parseInt(s,16);return[n>>16&255,n>>8&255,n&255]},enumerable:!1},hexToAnsi256:{value:e=>O.rgbToAnsi256(...O.hexToRgb(e)),enumerable:!1},ansi256ToAnsi:{value(e){if(e<8)return 30+e;if(e<16)return 90+(e-8);let t,s,n;if(e>=232)t=((e-232)*10+8)/255,s=t,n=t;else{e-=16;let l=e%36;t=Math.floor(e/36)/5,s=Math.floor(l/6)/5,n=l%6/5}let o=Math.max(t,s,n)*2;if(o===0)return 30;let i=30+(Math.round(n)<<2|Math.round(s)<<1|Math.round(t));return o===2&&(i+=60),i},enumerable:!1},rgbToAnsi:{value:(e,t,s)=>O.ansi256ToAnsi(O.rgbToAnsi256(e,t,s)),enumerable:!1},hexToAnsi:{value:e=>O.ansi256ToAnsi(O.hexToAnsi256(e)),enumerable:!1}}),O}var qr=jr(),y=qr;var ae=S(require("process"),1),ct=S(require("os"),1),Ne=S(require("tty"),1);function L(r,e=globalThis.Deno?globalThis.Deno.args:ae.default.argv){let t=r.startsWith("-")?"":r.length===1?"-":"--",s=e.indexOf(t+r),n=e.indexOf("--");return s!==-1&&(n===-1||s<n)}var{env:g}=ae.default,ie;L("no-color")||L("no-colors")||L("color=false")||L("color=never")?ie=0:(L("color")||L("colors")||L("color=true")||L("color=always"))&&(ie=1);function _r(){if("FORCE_COLOR"in g)return g.FORCE_COLOR==="true"?1:g.FORCE_COLOR==="false"?0:g.FORCE_COLOR.length===0?1:Math.min(Number.parseInt(g.FORCE_COLOR,10),3)}function Br(r){return r===0?!1:{level:r,hasBasic:!0,has256:r>=2,has16m:r>=3}}function Ur(r,{streamIsTTY:e,sniffFlags:t=!0}={}){let s=_r();s!==void 0&&(ie=s);let n=t?ie:s;if(n===0)return 0;if(t){if(L("color=16m")||L("color=full")||L("color=truecolor"))return 3;if(L("color=256"))return 2}if("TF_BUILD"in g&&"AGENT_NAME"in g)return 1;if(r&&!e&&n===void 0)return 0;let o=n||0;if(g.TERM==="dumb")return o;if(ae.default.platform==="win32"){let i=ct.default.release().split(".");return Number(i[0])>=10&&Number(i[2])>=10586?Number(i[2])>=14931?3:2:1}if("CI"in g)return["GITHUB_ACTIONS","GITEA_ACTIONS","CIRCLECI"].some(i=>i in g)?3:["TRAVIS","APPVEYOR","GITLAB_CI","BUILDKITE","DRONE"].some(i=>i in g)||g.CI_NAME==="codeship"?1:o;if("TEAMCITY_VERSION"in g)return/^(9\.(0*[1-9]\d*)\.|\d{2,}\.)/.test(g.TEAMCITY_VERSION)?1:0;if(g.COLORTERM==="truecolor"||g.TERM==="xterm-kitty")return 3;if("TERM_PROGRAM"in g){let i=Number.parseInt((g.TERM_PROGRAM_VERSION||"").split(".")[0],10);switch(g.TERM_PROGRAM){case"iTerm.app":return i>=3?3:2;case"Apple_Terminal":return 2}}return/-256(color)?$/i.test(g.TERM)?2:/^screen|^xterm|^vt100|^vt220|^rxvt|color|ansi|cygwin|linux/i.test(g.TERM)||"COLORTERM"in g?1:o}function at(r,e={}){let t=Ur(r,{streamIsTTY:r&&r.isTTY,...e});return Br(t)}var Mr={stdout:at({isTTY:Ne.default.isatty(1)}),stderr:at({isTTY:Ne.default.isatty(2)})},lt=Mr;function ut(r,e,t){let s=r.indexOf(e);if(s===-1)return r;let n=e.length,o=0,i="";do i+=r.slice(o,s)+e+t,o=s+n,s=r.indexOf(e,o);while(s!==-1);return i+=r.slice(o),i}function ft(r,e,t,s){let n=0,o="";do{let i=r[s-1]==="\r";o+=r.slice(n,i?s-1:s)+e+(i?`\r
22
- `:`
23
- `)+t,n=s+1,s=r.indexOf(`
24
- `,n)}while(s!==-1);return o+=r.slice(n),o}var{stdout:pt,stderr:ht}=lt,Ie=Symbol("GENERATOR"),k=Symbol("STYLER"),K=Symbol("IS_EMPTY"),mt=["ansi","ansi","ansi256","ansi16m"],V=Object.create(null),Xr=(r,e={})=>{if(e.level&&!(Number.isInteger(e.level)&&e.level>=0&&e.level<=3))throw new Error("The `level` option should be an integer from 0 to 3");let t=pt?pt.level:0;r.level=e.level===void 0?t:e.level};var kr=r=>{let e=(...t)=>t.join(" ");return Xr(e,r),Object.setPrototypeOf(e,Z.prototype),e};function Z(r){return kr(r)}Object.setPrototypeOf(Z.prototype,Function.prototype);for(let[r,e]of Object.entries(y))V[r]={get(){let t=ce(this,be(e.open,e.close,this[k]),this[K]);return Object.defineProperty(this,r,{value:t}),t}};V.visible={get(){let r=ce(this,this[k],!0);return Object.defineProperty(this,"visible",{value:r}),r}};var Te=(r,e,t,...s)=>r==="rgb"?e==="ansi16m"?y[t].ansi16m(...s):e==="ansi256"?y[t].ansi256(y.rgbToAnsi256(...s)):y[t].ansi(y.rgbToAnsi(...s)):r==="hex"?Te("rgb",e,t,...y.hexToRgb(...s)):y[t][r](...s),Vr=["rgb","hex","ansi256"];for(let r of Vr){V[r]={get(){let{level:t}=this;return function(...s){let n=be(Te(r,mt[t],"color",...s),y.color.close,this[k]);return ce(this,n,this[K])}}};let e="bg"+r[0].toUpperCase()+r.slice(1);V[e]={get(){let{level:t}=this;return function(...s){let n=be(Te(r,mt[t],"bgColor",...s),y.bgColor.close,this[k]);return ce(this,n,this[K])}}}}var Wr=Object.defineProperties(()=>{},{...V,level:{enumerable:!0,get(){return this[Ie].level},set(r){this[Ie].level=r}}}),be=(r,e,t)=>{let s,n;return t===void 0?(s=r,n=e):(s=t.openAll+r,n=e+t.closeAll),{open:r,close:e,openAll:s,closeAll:n,parent:t}},ce=(r,e,t)=>{let s=(...n)=>Yr(s,n.length===1?""+n[0]:n.join(" "));return Object.setPrototypeOf(s,Wr),s[Ie]=r,s[k]=e,s[K]=t,s},Yr=(r,e)=>{if(r.level<=0||!e)return r[K]?"":e;let t=r[k];if(t===void 0)return e;let{openAll:s,closeAll:n}=t;if(e.includes("\x1B"))for(;t!==void 0;)e=ut(e,t.close,t.open),t=t.parent;let o=e.indexOf(`
25
- `);return o!==-1&&(e=ft(e,n,s,o)),s+e+n};Object.defineProperties(Z.prototype,V);var Hr=Z(),jn=Z({level:ht?ht.level:0});var j=Hr;function Et(...r){console.log("[next-ws]",...r)}function _(...r){console.log(j.blue("[next-ws]"),...r)}function le(...r){console.log(j.yellow("[next-ws]"),...r)}function B(...r){console.log(j.red("[next-ws]"),...r)}var $t=(0,dt.debuglog)("next-ws");function zr(...r){console.log(j.green("[next-ws]","\u2714"),...r)}function Kr(...r){console.log(j.red("[next-ws]","\u2716"),...r)}async function Rt(...r){let e=q.default.createInterface({input:process.stdin,output:process.stdout});return new Promise(t=>{let s=j.yellow("[next-ws]",...r),n=j.cyan("[y/N]");e.question(`${s} ${n}`,o=>{let i=o.trim().toLowerCase();t(i==="y"),e.close()})})}async function Ot(r,...e){process.stdout.write("\x1B[?25l");let t=["\u280B","\u2819","\u2839","\u2838","\u283C","\u2834","\u2826","\u2827"],s=0,n=setInterval(()=>{q.default.cursorTo(process.stdout,0);let o=t[s++%t.length];process.stdout.write(j.cyan("[next-ws]",o,...e))},100);return r.then(o=>(clearInterval(n),q.default.cursorTo(process.stdout,0),q.default.clearLine(process.stdout,0),zr(...e),o)).catch(o=>{throw clearInterval(n),q.default.cursorTo(process.stdout,0),q.default.clearLine(process.stdout,0),Kr(...e),o}).finally(()=>{process.stdout.write("\x1B[?25h")})}var J=require("fs/promises"),U=require("path");function xt(){let r={paths:[process.cwd()]},e=require.resolve("next-ws/package.json",r);return`${(0,U.dirname)(e)}/dist`.replace(/\\/g,"/").replace(/'/g,"\\'")}async function Q(){let r={paths:[process.cwd()]},e=require.resolve("next/package.json",r);return(0,U.dirname)(e)}async function ue(){let r=await Q(),e=(0,U.join)(r,"package.json"),t=await(0,J.readFile)(e,"utf-8").then(JSON.parse);return String(t.version.split("-")[0])}async function gt(){let r=await Q(),e=(0,U.join)(r,".next-ws-trace.json");return(0,J.readFile)(e,"utf-8").then(JSON.parse).catch(()=>null)}async function Nt(r){let e=await Q(),t=(0,U.join)(e,".next-ws-trace.json");await(0,J.writeFile)(t,JSON.stringify(r,null,2))}function pe(r){return{...r,async execute(){let e=[];for(let t of this.steps)await Ot(t.execute(),t.title).then(s=>e.push(s));return e.every(t=>t)}}}function W(r){return{...r,async execute(){let e=await Zr(this.path);$t("Applying",`"${this.title}"`,"to",`"${e}"`);let t=await(0,fe.readFile)(e,"utf-8");if(this.ignore&&t.includes(this.ignore))return!1;let s=await this.modify(t);return await(0,fe.writeFile)(e,s),!0}}}async function Zr(r){switch(r.split(":")[0]){case"next":{let e=await Q(),t=r.slice(5);return(0,It.resolve)(e,t)}default:return r}}var ve=W({title:"Add WebSocket server setup script to NextNodeServer constructor.",path:"next:dist/server/next-server.js",ignore:"setupWebSocketServer(this)",async modify(r){let e=r.split(`
26
- `),t=!1,s=-1,n=0;for(let l=0;l<e.length;l++){let u=e[l]??"";if(!t&&u.includes("constructor(")&&(t=!0,n=0),t&&(n+=(u.match(/{/g)||[]).length,n-=(u.match(/}/g)||[]).length,n===0)){s=l;break}}if(s===-1)throw new Error("Could not find constructor end index.");let o=`;{
78
+ ${command.options.map((o) => `--${o.name} | ${o.description}`).join("\n ")}
79
+ `;
80
+ }
81
+
82
+ // src/patches/helpers/next.ts
83
+ var import_promises = require("fs/promises");
84
+ var import_node_path = require("path");
85
+ function resolveNextWsDirectory() {
86
+ const id = (
87
+ //
88
+ require.resolve("next-ws/package.json", { paths: [process.cwd()] })
89
+ );
90
+ return (0, import_node_path.dirname)(id);
91
+ }
92
+ function resolveNextDirectory() {
93
+ const id = (
94
+ //
95
+ require.resolve("next/package.json", { paths: [process.cwd()] })
96
+ );
97
+ return (0, import_node_path.dirname)(id);
98
+ }
99
+ async function getInstalledNextVersion() {
100
+ const id = (0, import_node_path.join)(resolveNextDirectory(), "package.json");
101
+ const pkg = await (0, import_promises.readFile)(id, "utf8").then(JSON.parse);
102
+ return String(pkg.version.split("-")[0]);
103
+ }
104
+ async function readTrace() {
105
+ const id = (0, import_node_path.join)(resolveNextDirectory(), ".next-ws-trace.json");
106
+ return (0, import_promises.readFile)(id, "utf-8").then(JSON.parse).catch(() => null);
107
+ }
108
+ async function writeTrace(trace) {
109
+ const id = (0, import_node_path.join)(resolveNextDirectory(), ".next-ws-trace.json");
110
+ await (0, import_promises.writeFile)(id, JSON.stringify(trace, null, 2));
111
+ }
112
+
113
+ // src/patches/patch-1.ts
114
+ var import_node_path3 = require("path");
115
+ var import_jscodeshift = __toESM(require("jscodeshift"));
116
+
117
+ // src/patches/helpers/define.ts
118
+ var import_promises2 = require("fs/promises");
119
+ var import_node_path2 = require("path");
120
+
121
+ // src/commands/helpers/console.ts
122
+ var import_node_readline = __toESM(require("readline"));
123
+ var import_node_util = require("util");
124
+
125
+ // node_modules/.pnpm/chalk@5.6.0/node_modules/chalk/source/vendor/ansi-styles/index.js
126
+ var ANSI_BACKGROUND_OFFSET = 10;
127
+ var wrapAnsi16 = (offset = 0) => (code) => `\x1B[${code + offset}m`;
128
+ var wrapAnsi256 = (offset = 0) => (code) => `\x1B[${38 + offset};5;${code}m`;
129
+ var wrapAnsi16m = (offset = 0) => (red, green, blue) => `\x1B[${38 + offset};2;${red};${green};${blue}m`;
130
+ var styles = {
131
+ modifier: {
132
+ reset: [0, 0],
133
+ // 21 isn't widely supported and 22 does the same thing
134
+ bold: [1, 22],
135
+ dim: [2, 22],
136
+ italic: [3, 23],
137
+ underline: [4, 24],
138
+ overline: [53, 55],
139
+ inverse: [7, 27],
140
+ hidden: [8, 28],
141
+ strikethrough: [9, 29]
142
+ },
143
+ color: {
144
+ black: [30, 39],
145
+ red: [31, 39],
146
+ green: [32, 39],
147
+ yellow: [33, 39],
148
+ blue: [34, 39],
149
+ magenta: [35, 39],
150
+ cyan: [36, 39],
151
+ white: [37, 39],
152
+ // Bright color
153
+ blackBright: [90, 39],
154
+ gray: [90, 39],
155
+ // Alias of `blackBright`
156
+ grey: [90, 39],
157
+ // Alias of `blackBright`
158
+ redBright: [91, 39],
159
+ greenBright: [92, 39],
160
+ yellowBright: [93, 39],
161
+ blueBright: [94, 39],
162
+ magentaBright: [95, 39],
163
+ cyanBright: [96, 39],
164
+ whiteBright: [97, 39]
165
+ },
166
+ bgColor: {
167
+ bgBlack: [40, 49],
168
+ bgRed: [41, 49],
169
+ bgGreen: [42, 49],
170
+ bgYellow: [43, 49],
171
+ bgBlue: [44, 49],
172
+ bgMagenta: [45, 49],
173
+ bgCyan: [46, 49],
174
+ bgWhite: [47, 49],
175
+ // Bright color
176
+ bgBlackBright: [100, 49],
177
+ bgGray: [100, 49],
178
+ // Alias of `bgBlackBright`
179
+ bgGrey: [100, 49],
180
+ // Alias of `bgBlackBright`
181
+ bgRedBright: [101, 49],
182
+ bgGreenBright: [102, 49],
183
+ bgYellowBright: [103, 49],
184
+ bgBlueBright: [104, 49],
185
+ bgMagentaBright: [105, 49],
186
+ bgCyanBright: [106, 49],
187
+ bgWhiteBright: [107, 49]
188
+ }
189
+ };
190
+ var modifierNames = Object.keys(styles.modifier);
191
+ var foregroundColorNames = Object.keys(styles.color);
192
+ var backgroundColorNames = Object.keys(styles.bgColor);
193
+ var colorNames = [...foregroundColorNames, ...backgroundColorNames];
194
+ function assembleStyles() {
195
+ const codes = /* @__PURE__ */ new Map();
196
+ for (const [groupName, group] of Object.entries(styles)) {
197
+ for (const [styleName, style] of Object.entries(group)) {
198
+ styles[styleName] = {
199
+ open: `\x1B[${style[0]}m`,
200
+ close: `\x1B[${style[1]}m`
201
+ };
202
+ group[styleName] = styles[styleName];
203
+ codes.set(style[0], style[1]);
204
+ }
205
+ Object.defineProperty(styles, groupName, {
206
+ value: group,
207
+ enumerable: false
208
+ });
209
+ }
210
+ Object.defineProperty(styles, "codes", {
211
+ value: codes,
212
+ enumerable: false
213
+ });
214
+ styles.color.close = "\x1B[39m";
215
+ styles.bgColor.close = "\x1B[49m";
216
+ styles.color.ansi = wrapAnsi16();
217
+ styles.color.ansi256 = wrapAnsi256();
218
+ styles.color.ansi16m = wrapAnsi16m();
219
+ styles.bgColor.ansi = wrapAnsi16(ANSI_BACKGROUND_OFFSET);
220
+ styles.bgColor.ansi256 = wrapAnsi256(ANSI_BACKGROUND_OFFSET);
221
+ styles.bgColor.ansi16m = wrapAnsi16m(ANSI_BACKGROUND_OFFSET);
222
+ Object.defineProperties(styles, {
223
+ rgbToAnsi256: {
224
+ value(red, green, blue) {
225
+ if (red === green && green === blue) {
226
+ if (red < 8) {
227
+ return 16;
228
+ }
229
+ if (red > 248) {
230
+ return 231;
231
+ }
232
+ return Math.round((red - 8) / 247 * 24) + 232;
233
+ }
234
+ return 16 + 36 * Math.round(red / 255 * 5) + 6 * Math.round(green / 255 * 5) + Math.round(blue / 255 * 5);
235
+ },
236
+ enumerable: false
237
+ },
238
+ hexToRgb: {
239
+ value(hex) {
240
+ const matches = /[a-f\d]{6}|[a-f\d]{3}/i.exec(hex.toString(16));
241
+ if (!matches) {
242
+ return [0, 0, 0];
243
+ }
244
+ let [colorString] = matches;
245
+ if (colorString.length === 3) {
246
+ colorString = [...colorString].map((character) => character + character).join("");
247
+ }
248
+ const integer = Number.parseInt(colorString, 16);
249
+ return [
250
+ /* eslint-disable no-bitwise */
251
+ integer >> 16 & 255,
252
+ integer >> 8 & 255,
253
+ integer & 255
254
+ /* eslint-enable no-bitwise */
255
+ ];
256
+ },
257
+ enumerable: false
258
+ },
259
+ hexToAnsi256: {
260
+ value: (hex) => styles.rgbToAnsi256(...styles.hexToRgb(hex)),
261
+ enumerable: false
262
+ },
263
+ ansi256ToAnsi: {
264
+ value(code) {
265
+ if (code < 8) {
266
+ return 30 + code;
267
+ }
268
+ if (code < 16) {
269
+ return 90 + (code - 8);
270
+ }
271
+ let red;
272
+ let green;
273
+ let blue;
274
+ if (code >= 232) {
275
+ red = ((code - 232) * 10 + 8) / 255;
276
+ green = red;
277
+ blue = red;
278
+ } else {
279
+ code -= 16;
280
+ const remainder = code % 36;
281
+ red = Math.floor(code / 36) / 5;
282
+ green = Math.floor(remainder / 6) / 5;
283
+ blue = remainder % 6 / 5;
284
+ }
285
+ const value = Math.max(red, green, blue) * 2;
286
+ if (value === 0) {
287
+ return 30;
288
+ }
289
+ let result = 30 + (Math.round(blue) << 2 | Math.round(green) << 1 | Math.round(red));
290
+ if (value === 2) {
291
+ result += 60;
292
+ }
293
+ return result;
294
+ },
295
+ enumerable: false
296
+ },
297
+ rgbToAnsi: {
298
+ value: (red, green, blue) => styles.ansi256ToAnsi(styles.rgbToAnsi256(red, green, blue)),
299
+ enumerable: false
300
+ },
301
+ hexToAnsi: {
302
+ value: (hex) => styles.ansi256ToAnsi(styles.hexToAnsi256(hex)),
303
+ enumerable: false
304
+ }
305
+ });
306
+ return styles;
307
+ }
308
+ var ansiStyles = assembleStyles();
309
+ var ansi_styles_default = ansiStyles;
310
+
311
+ // node_modules/.pnpm/chalk@5.6.0/node_modules/chalk/source/vendor/supports-color/index.js
312
+ var import_node_process = __toESM(require("process"), 1);
313
+ var import_node_os = __toESM(require("os"), 1);
314
+ var import_node_tty = __toESM(require("tty"), 1);
315
+ function hasFlag(flag, argv = globalThis.Deno ? globalThis.Deno.args : import_node_process.default.argv) {
316
+ const prefix = flag.startsWith("-") ? "" : flag.length === 1 ? "-" : "--";
317
+ const position = argv.indexOf(prefix + flag);
318
+ const terminatorPosition = argv.indexOf("--");
319
+ return position !== -1 && (terminatorPosition === -1 || position < terminatorPosition);
320
+ }
321
+ var { env } = import_node_process.default;
322
+ var flagForceColor;
323
+ if (hasFlag("no-color") || hasFlag("no-colors") || hasFlag("color=false") || hasFlag("color=never")) {
324
+ flagForceColor = 0;
325
+ } else if (hasFlag("color") || hasFlag("colors") || hasFlag("color=true") || hasFlag("color=always")) {
326
+ flagForceColor = 1;
327
+ }
328
+ function envForceColor() {
329
+ if ("FORCE_COLOR" in env) {
330
+ if (env.FORCE_COLOR === "true") {
331
+ return 1;
332
+ }
333
+ if (env.FORCE_COLOR === "false") {
334
+ return 0;
335
+ }
336
+ return env.FORCE_COLOR.length === 0 ? 1 : Math.min(Number.parseInt(env.FORCE_COLOR, 10), 3);
337
+ }
338
+ }
339
+ function translateLevel(level) {
340
+ if (level === 0) {
341
+ return false;
342
+ }
343
+ return {
344
+ level,
345
+ hasBasic: true,
346
+ has256: level >= 2,
347
+ has16m: level >= 3
348
+ };
349
+ }
350
+ function _supportsColor(haveStream, { streamIsTTY, sniffFlags = true } = {}) {
351
+ const noFlagForceColor = envForceColor();
352
+ if (noFlagForceColor !== void 0) {
353
+ flagForceColor = noFlagForceColor;
354
+ }
355
+ const forceColor = sniffFlags ? flagForceColor : noFlagForceColor;
356
+ if (forceColor === 0) {
357
+ return 0;
358
+ }
359
+ if (sniffFlags) {
360
+ if (hasFlag("color=16m") || hasFlag("color=full") || hasFlag("color=truecolor")) {
361
+ return 3;
362
+ }
363
+ if (hasFlag("color=256")) {
364
+ return 2;
365
+ }
366
+ }
367
+ if ("TF_BUILD" in env && "AGENT_NAME" in env) {
368
+ return 1;
369
+ }
370
+ if (haveStream && !streamIsTTY && forceColor === void 0) {
371
+ return 0;
372
+ }
373
+ const min = forceColor || 0;
374
+ if (env.TERM === "dumb") {
375
+ return min;
376
+ }
377
+ if (import_node_process.default.platform === "win32") {
378
+ const osRelease = import_node_os.default.release().split(".");
379
+ if (Number(osRelease[0]) >= 10 && Number(osRelease[2]) >= 10586) {
380
+ return Number(osRelease[2]) >= 14931 ? 3 : 2;
381
+ }
382
+ return 1;
383
+ }
384
+ if ("CI" in env) {
385
+ if (["GITHUB_ACTIONS", "GITEA_ACTIONS", "CIRCLECI"].some((key) => key in env)) {
386
+ return 3;
387
+ }
388
+ if (["TRAVIS", "APPVEYOR", "GITLAB_CI", "BUILDKITE", "DRONE"].some((sign) => sign in env) || env.CI_NAME === "codeship") {
389
+ return 1;
390
+ }
391
+ return min;
392
+ }
393
+ if ("TEAMCITY_VERSION" in env) {
394
+ return /^(9\.(0*[1-9]\d*)\.|\d{2,}\.)/.test(env.TEAMCITY_VERSION) ? 1 : 0;
395
+ }
396
+ if (env.COLORTERM === "truecolor") {
397
+ return 3;
398
+ }
399
+ if (env.TERM === "xterm-kitty") {
400
+ return 3;
401
+ }
402
+ if (env.TERM === "xterm-ghostty") {
403
+ return 3;
404
+ }
405
+ if (env.TERM === "wezterm") {
406
+ return 3;
407
+ }
408
+ if ("TERM_PROGRAM" in env) {
409
+ const version2 = Number.parseInt((env.TERM_PROGRAM_VERSION || "").split(".")[0], 10);
410
+ switch (env.TERM_PROGRAM) {
411
+ case "iTerm.app": {
412
+ return version2 >= 3 ? 3 : 2;
413
+ }
414
+ case "Apple_Terminal": {
415
+ return 2;
416
+ }
417
+ }
418
+ }
419
+ if (/-256(color)?$/i.test(env.TERM)) {
420
+ return 2;
421
+ }
422
+ if (/^screen|^xterm|^vt100|^vt220|^rxvt|color|ansi|cygwin|linux/i.test(env.TERM)) {
423
+ return 1;
424
+ }
425
+ if ("COLORTERM" in env) {
426
+ return 1;
427
+ }
428
+ return min;
429
+ }
430
+ function createSupportsColor(stream, options = {}) {
431
+ const level = _supportsColor(stream, {
432
+ streamIsTTY: stream && stream.isTTY,
433
+ ...options
434
+ });
435
+ return translateLevel(level);
436
+ }
437
+ var supportsColor = {
438
+ stdout: createSupportsColor({ isTTY: import_node_tty.default.isatty(1) }),
439
+ stderr: createSupportsColor({ isTTY: import_node_tty.default.isatty(2) })
440
+ };
441
+ var supports_color_default = supportsColor;
442
+
443
+ // node_modules/.pnpm/chalk@5.6.0/node_modules/chalk/source/utilities.js
444
+ function stringReplaceAll(string, substring, replacer) {
445
+ let index = string.indexOf(substring);
446
+ if (index === -1) {
447
+ return string;
448
+ }
449
+ const substringLength = substring.length;
450
+ let endIndex = 0;
451
+ let returnValue = "";
452
+ do {
453
+ returnValue += string.slice(endIndex, index) + substring + replacer;
454
+ endIndex = index + substringLength;
455
+ index = string.indexOf(substring, endIndex);
456
+ } while (index !== -1);
457
+ returnValue += string.slice(endIndex);
458
+ return returnValue;
459
+ }
460
+ function stringEncaseCRLFWithFirstIndex(string, prefix, postfix, index) {
461
+ let endIndex = 0;
462
+ let returnValue = "";
463
+ do {
464
+ const gotCR = string[index - 1] === "\r";
465
+ returnValue += string.slice(endIndex, gotCR ? index - 1 : index) + prefix + (gotCR ? "\r\n" : "\n") + postfix;
466
+ endIndex = index + 1;
467
+ index = string.indexOf("\n", endIndex);
468
+ } while (index !== -1);
469
+ returnValue += string.slice(endIndex);
470
+ return returnValue;
471
+ }
472
+
473
+ // node_modules/.pnpm/chalk@5.6.0/node_modules/chalk/source/index.js
474
+ var { stdout: stdoutColor, stderr: stderrColor } = supports_color_default;
475
+ var GENERATOR = Symbol("GENERATOR");
476
+ var STYLER = Symbol("STYLER");
477
+ var IS_EMPTY = Symbol("IS_EMPTY");
478
+ var levelMapping = [
479
+ "ansi",
480
+ "ansi",
481
+ "ansi256",
482
+ "ansi16m"
483
+ ];
484
+ var styles2 = /* @__PURE__ */ Object.create(null);
485
+ var applyOptions = (object, options = {}) => {
486
+ if (options.level && !(Number.isInteger(options.level) && options.level >= 0 && options.level <= 3)) {
487
+ throw new Error("The `level` option should be an integer from 0 to 3");
488
+ }
489
+ const colorLevel = stdoutColor ? stdoutColor.level : 0;
490
+ object.level = options.level === void 0 ? colorLevel : options.level;
491
+ };
492
+ var chalkFactory = (options) => {
493
+ const chalk2 = (...strings) => strings.join(" ");
494
+ applyOptions(chalk2, options);
495
+ Object.setPrototypeOf(chalk2, createChalk.prototype);
496
+ return chalk2;
497
+ };
498
+ function createChalk(options) {
499
+ return chalkFactory(options);
500
+ }
501
+ Object.setPrototypeOf(createChalk.prototype, Function.prototype);
502
+ for (const [styleName, style] of Object.entries(ansi_styles_default)) {
503
+ styles2[styleName] = {
504
+ get() {
505
+ const builder = createBuilder(this, createStyler(style.open, style.close, this[STYLER]), this[IS_EMPTY]);
506
+ Object.defineProperty(this, styleName, { value: builder });
507
+ return builder;
508
+ }
509
+ };
510
+ }
511
+ styles2.visible = {
512
+ get() {
513
+ const builder = createBuilder(this, this[STYLER], true);
514
+ Object.defineProperty(this, "visible", { value: builder });
515
+ return builder;
516
+ }
517
+ };
518
+ var getModelAnsi = (model, level, type, ...arguments_) => {
519
+ if (model === "rgb") {
520
+ if (level === "ansi16m") {
521
+ return ansi_styles_default[type].ansi16m(...arguments_);
522
+ }
523
+ if (level === "ansi256") {
524
+ return ansi_styles_default[type].ansi256(ansi_styles_default.rgbToAnsi256(...arguments_));
525
+ }
526
+ return ansi_styles_default[type].ansi(ansi_styles_default.rgbToAnsi(...arguments_));
527
+ }
528
+ if (model === "hex") {
529
+ return getModelAnsi("rgb", level, type, ...ansi_styles_default.hexToRgb(...arguments_));
530
+ }
531
+ return ansi_styles_default[type][model](...arguments_);
532
+ };
533
+ var usedModels = ["rgb", "hex", "ansi256"];
534
+ for (const model of usedModels) {
535
+ styles2[model] = {
536
+ get() {
537
+ const { level } = this;
538
+ return function(...arguments_) {
539
+ const styler = createStyler(getModelAnsi(model, levelMapping[level], "color", ...arguments_), ansi_styles_default.color.close, this[STYLER]);
540
+ return createBuilder(this, styler, this[IS_EMPTY]);
541
+ };
542
+ }
543
+ };
544
+ const bgModel = "bg" + model[0].toUpperCase() + model.slice(1);
545
+ styles2[bgModel] = {
546
+ get() {
547
+ const { level } = this;
548
+ return function(...arguments_) {
549
+ const styler = createStyler(getModelAnsi(model, levelMapping[level], "bgColor", ...arguments_), ansi_styles_default.bgColor.close, this[STYLER]);
550
+ return createBuilder(this, styler, this[IS_EMPTY]);
551
+ };
552
+ }
553
+ };
554
+ }
555
+ var proto = Object.defineProperties(() => {
556
+ }, {
557
+ ...styles2,
558
+ level: {
559
+ enumerable: true,
560
+ get() {
561
+ return this[GENERATOR].level;
562
+ },
563
+ set(level) {
564
+ this[GENERATOR].level = level;
565
+ }
566
+ }
567
+ });
568
+ var createStyler = (open, close, parent) => {
569
+ let openAll;
570
+ let closeAll;
571
+ if (parent === void 0) {
572
+ openAll = open;
573
+ closeAll = close;
574
+ } else {
575
+ openAll = parent.openAll + open;
576
+ closeAll = close + parent.closeAll;
577
+ }
578
+ return {
579
+ open,
580
+ close,
581
+ openAll,
582
+ closeAll,
583
+ parent
584
+ };
585
+ };
586
+ var createBuilder = (self, _styler, _isEmpty) => {
587
+ const builder = (...arguments_) => applyStyle(builder, arguments_.length === 1 ? "" + arguments_[0] : arguments_.join(" "));
588
+ Object.setPrototypeOf(builder, proto);
589
+ builder[GENERATOR] = self;
590
+ builder[STYLER] = _styler;
591
+ builder[IS_EMPTY] = _isEmpty;
592
+ return builder;
593
+ };
594
+ var applyStyle = (self, string) => {
595
+ if (self.level <= 0 || !string) {
596
+ return self[IS_EMPTY] ? "" : string;
597
+ }
598
+ let styler = self[STYLER];
599
+ if (styler === void 0) {
600
+ return string;
601
+ }
602
+ const { openAll, closeAll } = styler;
603
+ if (string.includes("\x1B")) {
604
+ while (styler !== void 0) {
605
+ string = stringReplaceAll(string, styler.close, styler.open);
606
+ styler = styler.parent;
607
+ }
608
+ }
609
+ const lfIndex = string.indexOf("\n");
610
+ if (lfIndex !== -1) {
611
+ string = stringEncaseCRLFWithFirstIndex(string, closeAll, openAll, lfIndex);
612
+ }
613
+ return openAll + string + closeAll;
614
+ };
615
+ Object.defineProperties(createChalk.prototype, styles2);
616
+ var chalk = createChalk();
617
+ var chalkStderr = createChalk({ level: stderrColor ? stderrColor.level : 0 });
618
+ var source_default = chalk;
619
+
620
+ // src/commands/helpers/console.ts
621
+ function log(...message) {
622
+ console.log("[next-ws]", ...message);
623
+ }
624
+ function info(...message) {
625
+ console.log(source_default.blue("[next-ws]"), ...message);
626
+ }
627
+ function warn(...message) {
628
+ console.log(source_default.yellow("[next-ws]"), ...message);
629
+ }
630
+ function error(...message) {
631
+ console.log(source_default.red("[next-ws]"), ...message);
632
+ }
633
+ var debug = (0, import_node_util.debuglog)("next-ws");
634
+ function success(...message) {
635
+ console.log(source_default.green("[next-ws]", "\u2714"), ...message);
636
+ }
637
+ function failure(...message) {
638
+ console.log(source_default.red("[next-ws]", "\u2716"), ...message);
639
+ }
640
+ async function confirm(...message) {
641
+ const rl = import_node_readline.default.createInterface({
642
+ input: process.stdin,
643
+ output: process.stdout
644
+ });
645
+ return new Promise((resolve2) => {
646
+ const question = source_default.yellow("[next-ws]", ...message);
647
+ const options = source_default.cyan("[y/N]");
648
+ rl.question(`${question} ${options}`, (answer) => {
649
+ const normalisedAnswer = answer.trim().toLowerCase();
650
+ if (normalisedAnswer === "y") resolve2(true);
651
+ else resolve2(false);
652
+ rl.close();
653
+ });
654
+ });
655
+ }
656
+ async function task(promise, ...message) {
657
+ process.stdout.write("\x1B[?25l");
658
+ const spinnerChars = ["\u280B", "\u2819", "\u2839", "\u2838", "\u283C", "\u2834", "\u2826", "\u2827"];
659
+ let spinnerIndex = 0;
660
+ const spinnerInterval = setInterval(() => {
661
+ import_node_readline.default.cursorTo(process.stdout, 0);
662
+ const spinnerChar = spinnerChars[spinnerIndex++ % spinnerChars.length] ?? " ";
663
+ process.stdout.write(source_default.cyan("[next-ws]", spinnerChar, ...message));
664
+ }, 100);
665
+ return promise.then((value) => {
666
+ clearInterval(spinnerInterval);
667
+ import_node_readline.default.cursorTo(process.stdout, 0);
668
+ import_node_readline.default.clearLine(process.stdout, 0);
669
+ success(...message);
670
+ return value;
671
+ }).catch((err) => {
672
+ clearInterval(spinnerInterval);
673
+ import_node_readline.default.cursorTo(process.stdout, 0);
674
+ import_node_readline.default.clearLine(process.stdout, 0);
675
+ failure(...message);
676
+ throw err;
677
+ }).finally(() => {
678
+ process.stdout.write("\x1B[?25h");
679
+ });
680
+ }
681
+
682
+ // src/patches/helpers/define.ts
683
+ function definePatch(definition) {
684
+ return {
685
+ ...definition,
686
+ async execute() {
687
+ for (const step of this.steps)
688
+ await task(step.execute(), step.title);
689
+ }
690
+ };
691
+ }
692
+ function definePatchStep(definition) {
693
+ return {
694
+ ...definition,
695
+ get path() {
696
+ return resolvePath(definition.path);
697
+ },
698
+ async execute() {
699
+ debug(`Applying '${this.title}' to '${this.path}'`);
700
+ const code = await (0, import_promises2.readFile)(this.path, "utf8").then((code2) => this.transform(code2));
701
+ await (0, import_promises2.writeFile)(this.path, code);
702
+ }
703
+ };
704
+ }
705
+ function resolvePath(path) {
706
+ switch (path.split(":")[0]) {
707
+ case "next": {
708
+ const nextDirectory = resolveNextDirectory();
709
+ const realPath = path.slice(5);
710
+ return (0, import_node_path2.resolve)(nextDirectory, realPath);
711
+ }
712
+ default: {
713
+ return path;
714
+ }
715
+ }
716
+ }
717
+
718
+ // src/patches/patch-1.ts
719
+ var CommentLine = import_jscodeshift.default.Comment;
720
+ var patchNextNodeServer = definePatchStep({
721
+ title: "Add WebSocket server setup script to NextNodeServer constructor",
722
+ path: "next:dist/server/next-server.js",
723
+ async transform(code) {
724
+ const marker = "@patch attach-websocket-server";
725
+ const snippet = (0, import_jscodeshift.default)(`
726
+ // ${marker}
27
727
  let nextWs;
28
- try { nextWs = require('next-ws/server') } catch {
29
- try { nextWs = require('${xt()}/server/index.cjs') } catch {
30
- /* don't let this crash apps that don't use next-ws */ }}
728
+ try { nextWs ??= require('next-ws/server') } catch {}
729
+ try { nextWs ??= require(require.resolve('next-ws/server', { paths: [process.cwd()] }) )} catch {}
730
+ try { nextWs ??= require('${resolveNextWsDirectory().replaceAll(import_node_path3.sep, "/").replaceAll("'", "\\'")}/dist/server/index.cjs') } catch {}
31
731
  nextWs?.setupWebSocketServer(this);
32
- };`;return e.splice(s,0,o),e.join(`
33
- `)}}),Ae=W({title:"Add SOCKET type to Next types",path:"next:dist/build/webpack/plugins/next-types-plugin.js",ignore:"SOCKET?: Function;",async modify(r){let e=/\.map\(\(method\)=>`\${method}\?: Function`\).join\(['"]\\n +['"]\)/g;return r.replace(e,s=>`${s} + "; SOCKET?: Function;"`)}}),Tt=pe({name:"patch-1",versions:">=13.2.0 <=13.4.8",steps:[ve,Ae]});var Jr=W({...Ae,path:"next:dist/build/webpack/plugins/next-types-plugin/index.js"}),Qr=W({title:"Prevent Next.js from immediately closing WebSocket connections",path:"next:dist/server/lib/router-server.js",async modify(r){return r.replaceAll("return socket.end();","").replaceAll(/(\/\/ [a-zA-Z .]+\s+)socket\.end\(\);/g,"")}}),bt=pe({name:"patch-2",versions:">=13.5.1 <=15.4.6",steps:[ve,Qr,Jr]});var ee=[Tt,bt];var xr=S(H(),1),gr=S(M(),1),Nr=S(re(),1),Ve=S(ur(),1),We=S($r(),1),Ye=S(Or(),1),He=S(Xe(),1);function Ir(r,e){r=new xr.default(r,e);let t=null;for(let s of r.set)for(let{operator:n,semver:{version:o}}of s){if(n===">"||n===">=")continue;let i=new gr.default(o);n==="<"&&(i.patch--,i.raw=i.format()),(!t||(0,Nr.default)(i,t))&&(t=i)}return t}var Oe=oe({name:"patch",description:"Patch the local Next.js installation to support WebSockets",options:[{name:"yes",description:"Skip confirmation prompt for unsupported versions",alias:"y"}],async action(r){let e=ee.map(i=>i.versions).join(" || "),t=Ve.default(e)?.version??e,s=Ir(e)?.version??e,n=await ue();We.default(n,t)&&(B(`Next.js v${n} is not supported, a minimum of v${t} is required`),process.exit(1));let o=ee.find(i=>He.default(n,i.versions));Ye.default(n,s)&&(le(`Next.js v${n} is not officially supported, a maximum of v${s} is recommended.`),r.yes||await Rt("Are you sure you want to proceed?")?(o=ee[ee.length-1],_("Proceeding with the latest patch"),Et("If you encounter any issues please report them at https://github.com/apteryxxyz/next-ws/issues")):(B("Aborted"),process.exit(1))),o||(B(`Next.js v${n} is not supported, please upgrade to a version within the range '${e}'`),process.exit(1)),_(`Patching Next.js v${n} with '${o.versions}'`),await o.execute(),_("Saving patch trace file..."),await Nt({patch:o.versions,version:n}),_("All done!")}});var Tr=oe({name:"verify",description:"Verify that the local Next.js installation has been patched",options:[{name:"ensure",description:"If not patched, then run the patch command",alias:"e"}],async action(r){let e=await gt();if(!e){if(r.ensure)return le("Next.js has not been patched, running the patch command"),Oe.action({yes:!0});B("Next.js has not been patched, you'll need to run the patch command"),process.exit(1)}await ue()!==e.version&&(B("Next.js has been patched with a different version, you'll need to run the patch command"),process.exit(1)),_("Next.js has been patched!")}});var br=st({name:"next-ws",description:"Patch the local Next.js installation to support WebSockets",children:[Oe,Tr]});br.parse([],process.argv.slice(2));
732
+ `);
733
+ const block = import_jscodeshift.default.blockStatement(snippet.nodes()[0].program.body);
734
+ return (0, import_jscodeshift.default)(code).find(import_jscodeshift.default.ClassDeclaration, { id: { name: "NextNodeServer" } }).find(import_jscodeshift.default.MethodDefinition, { kind: "constructor" }).forEach(({ node }) => {
735
+ const body = node.value.body.body;
736
+ const existing = (0, import_jscodeshift.default)(body).find(CommentLine, { value: ` ${marker}` }).paths()[0];
737
+ const idx = body.indexOf(existing?.parent.node);
738
+ if (existing && idx > -1) body[idx] = block;
739
+ else body.push(block);
740
+ }).toSource();
741
+ }
742
+ });
743
+ var patchRouterServer = definePatchStep({
744
+ title: "Prevent Next.js from immediately closing WebSocket connections",
745
+ path: "next:dist/server/lib/router-server.js",
746
+ async transform(code) {
747
+ return (0, import_jscodeshift.default)(code).find(import_jscodeshift.default.ReturnStatement).find(import_jscodeshift.default.CallExpression, {
748
+ callee: {
749
+ type: "MemberExpression",
750
+ object: { type: "Identifier", name: "socket" },
751
+ property: { type: "Identifier", name: "end" }
752
+ }
753
+ }).replaceWith((path) => {
754
+ const expr = import_jscodeshift.default.unaryExpression("void", import_jscodeshift.default.literal(0));
755
+ expr.comments = [import_jscodeshift.default.commentLine(` ${(0, import_jscodeshift.default)(path.node).toSource()}`)];
756
+ return expr;
757
+ }).toSource();
758
+ }
759
+ });
760
+ var patchHeaders = definePatchStep({
761
+ title: "Add WebSocket contextual headers resolution to request headers",
762
+ path: "next:dist/client/components/headers.js",
763
+ async transform(code) {
764
+ const marker = "@patch headers";
765
+ const snippet = (0, import_jscodeshift.default)(`
766
+ // ${marker}
767
+ const kRequestStorage = Symbol.for('next-ws.request-store');
768
+ const requestStorage = Reflect.get(globalThis, kRequestStorage);
769
+ const contextualHeaders = requestStorage?.getStore()?.headers;
770
+ if (contextualHeaders) return contextualHeaders;
771
+ `);
772
+ const block = import_jscodeshift.default.blockStatement(snippet.nodes()[0].program.body);
773
+ return (0, import_jscodeshift.default)(code).find(import_jscodeshift.default.FunctionDeclaration, { id: { name: "headers" } }).forEach(({ node }) => {
774
+ const body = node.body.body;
775
+ const existing = (0, import_jscodeshift.default)(body).find(CommentLine, { value: ` ${marker}` }).paths()[0];
776
+ const idx = body.indexOf(existing?.parent.node);
777
+ if (existing && idx > -1) body[idx] = block;
778
+ else body.unshift(block);
779
+ }).toSource();
780
+ }
781
+ });
782
+ var patchCookies = definePatchStep({
783
+ title: "Add WebSocket contextual cookies resolution to request cookies",
784
+ path: "next:dist/client/components/headers.js",
785
+ async transform(code) {
786
+ const marker = "@patch cookies";
787
+ const snippet = (0, import_jscodeshift.default)(`
788
+ // ${marker}
789
+ const kRequestStorage = Symbol.for('next-ws.request-store');
790
+ const requestStorage = Reflect.get(globalThis, kRequestStorage);
791
+ const contextualCookies = requestStorage?.getStore()?.cookies;
792
+ if (contextualCookies) return contextualCookies;
793
+ `);
794
+ const block = import_jscodeshift.default.blockStatement(snippet.nodes()[0].program.body);
795
+ return (0, import_jscodeshift.default)(code).find(import_jscodeshift.default.FunctionDeclaration, { id: { name: "cookies" } }).forEach(({ node }) => {
796
+ const body = node.body.body;
797
+ const existing = (0, import_jscodeshift.default)(body).find(CommentLine, { value: ` ${marker}` }).paths()[0];
798
+ const idx = body.indexOf(existing?.parent.node);
799
+ if (existing && idx > -1) body[idx] = block;
800
+ else body.unshift(block);
801
+ }).toSource();
802
+ }
803
+ });
804
+ var patch_1_default = definePatch({
805
+ name: "patch-1",
806
+ versions: ">=13.5.1 <=14.2.32",
807
+ steps: [patchNextNodeServer, patchRouterServer, patchHeaders, patchCookies]
808
+ });
809
+
810
+ // src/patches/patch-2.ts
811
+ var patchHeaders2 = definePatchStep({
812
+ ...patchHeaders,
813
+ // CHANGE(next@15): headers function was moved
814
+ path: "next:dist/server/request/headers.js"
815
+ });
816
+ var patchCookies2 = definePatchStep({
817
+ ...patchCookies,
818
+ // CHANGE(next@15): cookies function was moved
819
+ path: "next:dist/server/request/cookies.js"
820
+ });
821
+ var patch_2_default = definePatch({
822
+ name: "patch-2",
823
+ versions: ">=15.0.0 <=15.5.0",
824
+ steps: [
825
+ patchNextNodeServer,
826
+ patchRouterServer,
827
+ patchHeaders2,
828
+ patchCookies2
829
+ ]
830
+ });
831
+
832
+ // src/patches/index.ts
833
+ var patches_default = [patch_1_default, patch_2_default];
834
+
835
+ // src/commands/helpers/semver.ts
836
+ var import_range = __toESM(require("semver/classes/range.js"));
837
+ var import_semver = __toESM(require("semver/classes/semver.js"));
838
+ var import_gt = __toESM(require("semver/functions/gt.js"));
839
+ var import_satisfies = __toESM(require("semver/functions/satisfies"));
840
+ var import_gtr = __toESM(require("semver/ranges/gtr"));
841
+ var import_ltr = __toESM(require("semver/ranges/ltr"));
842
+ var import_min_version = __toESM(require("semver/ranges/min-version"));
843
+ function maxVersion(range, loose) {
844
+ range = new import_range.default(range, loose);
845
+ let maximumVersion = null;
846
+ for (const comparators of range.set) {
847
+ for (const {
848
+ operator,
849
+ semver: { version: version_ }
850
+ } of comparators) {
851
+ if (operator === ">" || operator === ">=") continue;
852
+ const version2 = new import_semver.default(version_);
853
+ if (operator === "<") {
854
+ version2.patch--;
855
+ version2.raw = version2.format();
856
+ }
857
+ if (!maximumVersion || (0, import_gt.default)(version2, maximumVersion))
858
+ maximumVersion = version2;
859
+ }
860
+ }
861
+ return maximumVersion;
862
+ }
863
+
864
+ // src/commands/patch.ts
865
+ var patch_default = defineCommand({
866
+ name: "patch",
867
+ description: "Patch the local Next.js installation to support WebSockets",
868
+ options: [
869
+ {
870
+ name: "yes",
871
+ description: "Skip confirmation prompt for unsupported versions",
872
+ alias: "y"
873
+ }
874
+ ],
875
+ async action(options) {
876
+ const supported = patches_default.map((p) => p.versions).join(" || ");
877
+ const minimum = import_min_version.default(supported)?.version ?? supported;
878
+ const maximum = maxVersion(supported)?.version ?? supported;
879
+ const current = await getInstalledNextVersion();
880
+ if (import_ltr.default(current, minimum)) {
881
+ error(
882
+ `Next.js v${current} is not supported, a minimum of v${minimum} is required`
883
+ );
884
+ process.exit(1);
885
+ }
886
+ let patch = patches_default.find((p) => import_satisfies.default(current, p.versions));
887
+ if (import_gtr.default(current, maximum)) {
888
+ warn(
889
+ `Next.js v${current} is not officially supported, a maximum of v${maximum} is recommended.`
890
+ );
891
+ const confirm2 = options.yes || await confirm("Are you sure you want to proceed?");
892
+ if (confirm2) {
893
+ patch = patches_default[patches_default.length - 1];
894
+ info("Proceeding with the latest patch");
895
+ log(
896
+ "If you encounter any issues please report them at https://github.com/apteryxxyz/next-ws/issues"
897
+ );
898
+ } else {
899
+ error("Aborted");
900
+ process.exit(1);
901
+ }
902
+ }
903
+ if (!patch) {
904
+ error(
905
+ `Next.js v${current} is not supported, please upgrade to a version within the range '${supported}'`
906
+ );
907
+ process.exit(1);
908
+ }
909
+ info(`Patching Next.js v${current} with '${patch.versions}'`);
910
+ await patch.execute();
911
+ info("Saving patch trace file...");
912
+ await writeTrace({ patch: patch.versions, version: current });
913
+ info("All done!");
914
+ }
915
+ });
916
+
917
+ // src/commands/verify.ts
918
+ var verify_default = defineCommand({
919
+ name: "verify",
920
+ description: "Verify that the local Next.js installation has been patched",
921
+ options: [
922
+ {
923
+ name: "ensure",
924
+ description: "If not patched, then run the patch command",
925
+ alias: "e"
926
+ }
927
+ ],
928
+ async action(options) {
929
+ const trace = await readTrace();
930
+ if (!trace) {
931
+ if (options.ensure) {
932
+ warn("Next.js has not been patched, running the patch command");
933
+ return patch_default.action({ yes: true });
934
+ } else {
935
+ error(
936
+ "Next.js has not been patched, you'll need to run the patch command"
937
+ );
938
+ process.exit(1);
939
+ }
940
+ }
941
+ const current = await getInstalledNextVersion();
942
+ if (current !== trace.version) {
943
+ error(
944
+ "Next.js has been patched with a different version, you'll need to run the patch command"
945
+ );
946
+ process.exit(1);
947
+ }
948
+ info("Next.js has been patched!");
949
+ }
950
+ });
951
+
952
+ // src/commands/index.ts
953
+ var commands_default = defineCommandGroup({
954
+ name: "next-ws",
955
+ description: "Patch the local Next.js installation to support WebSockets",
956
+ children: [patch_default, verify_default]
957
+ });
958
+
959
+ // src/cli.ts
960
+ commands_default.parse([], process.argv.slice(2));