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/README.md +13 -14
- package/dist/cli.cjs +946 -19
- package/dist/client/index.cjs +4 -5
- package/dist/server/index.cjs +184 -126
- package/dist/server/index.d.ts +43 -21
- package/package.json +25 -20
- package/dist/chunk-3RG5ZIWI.js +0 -10
- package/dist/client/index.d.cts +0 -27
- package/dist/client/index.js +0 -38
- package/dist/server/index.d.cts +0 -32
- package/dist/server/index.js +0 -186
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
|
-
|
|
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
|
-
${
|
|
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
|
-
|
|
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
|
-
${
|
|
74
|
+
${command.description}
|
|
16
75
|
|
|
17
76
|
Options:
|
|
18
77
|
--help | Show this help message and exit.
|
|
19
|
-
${
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
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
|
|
29
|
-
try { nextWs
|
|
30
|
-
|
|
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
|
-
|
|
33
|
-
|
|
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));
|