@termiq/cli 1.9.0 → 1.9.1

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.
Files changed (2) hide show
  1. package/dist/bin.js +1 -1
  2. package/package.json +1 -1
package/dist/bin.js CHANGED
@@ -33,7 +33,7 @@ tell application "System Events" to get value of property list item "CFBundleNam
33
33
  `),this.toFile&&Sy(s)}info(e,...t){this.write("info",e,t)}warn(e,...t){this.write("warn",e,t)}error(e,...t){this.write("error",e,t)}debug(e,...t){this.write("debug",e,t)}};var xh=fe(require("os")),Sh=fe(yc()),Ts=class{cachedId=null;name;constructor(e){this.name=e||xh.hostname()||"CLI"}async getMachineId(){if(this.cachedId)return this.cachedId;try{this.cachedId=(0,Sh.machineIdSync)()}catch{this.cachedId=`cli_${Date.now()}_${Math.random().toString(36).slice(2,9)}`}return this.cachedId}getMachineName(){return this.name}};var Cs=class{info(e){process.stderr.write(`TermIQ: ${e}
34
34
  `)}warn(e){process.stderr.write(`TermIQ [warn]: ${e}
35
35
  `)}error(e){process.stderr.write(`TermIQ [error]: ${e}
36
- `)}};var Ps=class{async openUrl(e){let{default:t}=await Promise.resolve().then(()=>(ed(),Qh));await t(e)}};var td=fe(require("fs")),jc=fe(require("path"));function ro(r){let e=r?[r]:[jc.join(__dirname,"..","package.json"),jc.join(__dirname,"..","..","package.json")];for(let t of e)try{let n=JSON.parse(td.readFileSync(t,"utf8"));if(typeof n.version=="string"&&n.version.length>0)return n.version}catch{}return"unknown"}var kd=fe(require("path")),_t=fe(bs());var rd=fe(require("os")),nd=fe(require("node-pty")),sd=fe(bs()),no=class{ptyProcess=null;outputBuffer=new sd.CircularBuffer(100);logger;onOutput=null;onExit=null;sigwinchEnabled=!0;sigwinchListener=null;constructor(e){this.logger=e}spawn(e){let t=process.env.SHELL||(rd.platform()==="win32"?"powershell.exe":"/bin/bash"),n=process.stdout.columns||80,s=process.stdout.rows||24;this.ptyProcess=nd.spawn(t,[],{name:"xterm-256color",cols:n,rows:s,cwd:e,env:process.env});let i=`cli_${this.ptyProcess.pid}`;return this.ptyProcess.onData(a=>{process.stdout.write(a),this.outputBuffer.append(a),this.onOutput?.(a)}),this.ptyProcess.onExit(({exitCode:a})=>{this.logger.info("Shell exited",String(a)),this.onExit?.(a)}),process.stdin.isTTY&&process.stdin.setRawMode(!0),process.stdin.resume(),process.stdin.on("data",a=>{this.ptyProcess?.write(a.toString())}),this.sigwinchListener=()=>{let a=process.stdout.columns||80,c=process.stdout.rows||24;if(!this.sigwinchEnabled){this.logger.info("SIGWINCH ignored (PWA viewers attached)",{cols:a,rows:c});return}this.logger.info("SIGWINCH applied",{cols:a,rows:c}),this.ptyProcess?.resize(a,c)},process.on("SIGWINCH",this.sigwinchListener),this.logger.info("Shell spawned",t,i),i}write(e){this.ptyProcess?.write(e)}resize(e,t){this.ptyProcess?.resize(e,t)}setSigwinchEnabled(e){this.sigwinchEnabled!==e&&(this.sigwinchEnabled=e,this.logger.info("SIGWINCH listener",{enabled:e}))}getBuffer(){return this.outputBuffer.getContent()}getLastBytes(e){return this.outputBuffer.getLastBytes(e)}setOnOutput(e){this.onOutput=e}setOnExit(e){this.onExit=e}kill(){this.ptyProcess?.kill(),this.ptyProcess=null}dispose(){this.kill(),this.sigwinchListener&&(process.removeListener("SIGWINCH",this.sigwinchListener),this.sigwinchListener=null),process.stdin.isTTY&&process.stdin.setRawMode(!1),process.stdin.pause()}};var Ur=fe(require("path")),$n=fe(require("fs"));var vd=require("node:events"),wd=require("node:fs"),lo=require("node:fs/promises"),ye=fe(require("node:path"),1);var Er=require("node:fs/promises"),vr=require("node:path"),cd=require("node:stream"),Ct={FILE_TYPE:"files",DIR_TYPE:"directories",FILE_DIR_TYPE:"files_directories",EVERYTHING_TYPE:"all"},Uc={root:".",fileFilter:r=>!0,directoryFilter:r=>!0,type:Ct.FILE_TYPE,lstat:!1,depth:2147483648,alwaysStat:!1,highWaterMark:4096};Object.freeze(Uc);var fd="READDIRP_RECURSIVE_ERROR",qy=new Set(["ENOENT","EPERM","EACCES","ELOOP",fd]),id=[Ct.DIR_TYPE,Ct.EVERYTHING_TYPE,Ct.FILE_DIR_TYPE,Ct.FILE_TYPE],Wy=new Set([Ct.DIR_TYPE,Ct.EVERYTHING_TYPE,Ct.FILE_DIR_TYPE]),Hy=new Set([Ct.EVERYTHING_TYPE,Ct.FILE_DIR_TYPE,Ct.FILE_TYPE]),Vy=r=>qy.has(r.code),Ky=process.platform==="win32",od=r=>!0,ad=r=>{if(r===void 0)return od;if(typeof r=="function")return r;if(typeof r=="string"){let e=r.trim();return t=>t.basename===e}if(Array.isArray(r)){let e=r.map(t=>t.trim());return t=>e.some(n=>t.basename===n)}return od},qc=class extends cd.Readable{parents;reading;parent;_stat;_maxDepth;_wantsDir;_wantsFile;_wantsEverything;_root;_isDirent;_statsProp;_rdOptions;_fileFilter;_directoryFilter;constructor(e={}){super({objectMode:!0,autoDestroy:!0,highWaterMark:e.highWaterMark});let t={...Uc,...e},{root:n,type:s}=t;this._fileFilter=ad(t.fileFilter),this._directoryFilter=ad(t.directoryFilter);let i=t.lstat?Er.lstat:Er.stat;Ky?this._stat=a=>i(a,{bigint:!0}):this._stat=i,this._maxDepth=t.depth!=null&&Number.isSafeInteger(t.depth)?t.depth:Uc.depth,this._wantsDir=s?Wy.has(s):!1,this._wantsFile=s?Hy.has(s):!1,this._wantsEverything=s===Ct.EVERYTHING_TYPE,this._root=(0,vr.resolve)(n),this._isDirent=!t.alwaysStat,this._statsProp=this._isDirent?"dirent":"stats",this._rdOptions={encoding:"utf8",withFileTypes:this._isDirent},this.parents=[this._exploreDir(n,1)],this.reading=!1,this.parent=void 0}async _read(e){if(!this.reading){this.reading=!0;try{for(;!this.destroyed&&e>0;){let t=this.parent,n=t&&t.files;if(n&&n.length>0){let{path:s,depth:i}=t,a=n.splice(0,e).map(u=>this._formatEntry(u,s)),c=await Promise.all(a);for(let u of c){if(!u)continue;if(this.destroyed)return;let d=await this._getEntryType(u);d==="directory"&&this._directoryFilter(u)?(i<=this._maxDepth&&this.parents.push(this._exploreDir(u.fullPath,i+1)),this._wantsDir&&(this.push(u),e--)):(d==="file"||this._includeAsFile(u))&&this._fileFilter(u)&&this._wantsFile&&(this.push(u),e--)}}else{let s=this.parents.pop();if(!s){this.push(null);break}if(this.parent=await s,this.destroyed)return}}}catch(t){this.destroy(t)}finally{this.reading=!1}}}async _exploreDir(e,t){let n;try{n=await(0,Er.readdir)(e,this._rdOptions)}catch(s){this._onError(s)}return{files:n,depth:t,path:e}}async _formatEntry(e,t){let n,s=this._isDirent?e.name:e;try{let i=(0,vr.resolve)((0,vr.join)(t,s));n={path:(0,vr.relative)(this._root,i),fullPath:i,basename:s},n[this._statsProp]=this._isDirent?e:await this._stat(i)}catch(i){this._onError(i);return}return n}_onError(e){Vy(e)&&!this.destroyed?this.emit("warn",e):this.destroy(e)}async _getEntryType(e){if(!e&&this._statsProp in e)return"";let t=e[this._statsProp];if(t.isFile())return"file";if(t.isDirectory())return"directory";if(t&&t.isSymbolicLink()){let n=e.fullPath;try{let s=await(0,Er.realpath)(n),i=await(0,Er.lstat)(s);if(i.isFile())return"file";if(i.isDirectory()){let a=s.length;if(n.startsWith(s)&&n.substr(a,1)===vr.sep){let c=new Error(`Circular symlink detected: "${n}" points to "${s}"`);return c.code=fd,this._onError(c)}return"directory"}}catch(s){return this._onError(s),""}}}_includeAsFile(e){let t=e&&e[this._statsProp];return t&&this._wantsEverything&&!t.isDirectory()}};function ud(r,e={}){let t=e.entryType||e.type;if(t==="both"&&(t=Ct.FILE_DIR_TYPE),t&&(e.type=t),r){if(typeof r!="string")throw new TypeError("readdirp: root argument must be a string. Usage: readdirp(root, options)");if(t&&!id.includes(t))throw new Error(`readdirp: Invalid type passed. Use one of ${id.join(", ")}`)}else throw new Error("readdirp: root argument is required. Usage: readdirp(root, options)");return e.root=r,new qc(e)}var ln=require("node:fs"),Vt=require("node:fs/promises"),hd=require("node:os"),We=fe(require("node:path"),1),$y="data",Vc="end",dd="close",co=()=>{};var fo=process.platform,Kc=fo==="win32",zy=fo==="darwin",Gy=fo==="linux",Yy=fo==="freebsd",pd=(0,hd.type)()==="OS400",Ke={ALL:"all",READY:"ready",ADD:"add",CHANGE:"change",ADD_DIR:"addDir",UNLINK:"unlink",UNLINK_DIR:"unlinkDir",RAW:"raw",ERROR:"error"},Ht=Ke,Xy="watch",Jy={lstat:Vt.lstat,stat:Vt.stat},un="listeners",so="errHandlers",Kn="rawEmitters",Zy=[un,so,Kn],Qy=new Set(["3dm","3ds","3g2","3gp","7z","a","aac","adp","afdesign","afphoto","afpub","ai","aif","aiff","alz","ape","apk","appimage","ar","arj","asf","au","avi","bak","baml","bh","bin","bk","bmp","btif","bz2","bzip2","cab","caf","cgm","class","cmx","cpio","cr2","cur","dat","dcm","deb","dex","djvu","dll","dmg","dng","doc","docm","docx","dot","dotm","dra","DS_Store","dsk","dts","dtshd","dvb","dwg","dxf","ecelp4800","ecelp7470","ecelp9600","egg","eol","eot","epub","exe","f4v","fbs","fh","fla","flac","flatpak","fli","flv","fpx","fst","fvt","g3","gh","gif","graffle","gz","gzip","h261","h263","h264","icns","ico","ief","img","ipa","iso","jar","jpeg","jpg","jpgv","jpm","jxr","key","ktx","lha","lib","lvp","lz","lzh","lzma","lzo","m3u","m4a","m4v","mar","mdi","mht","mid","midi","mj2","mka","mkv","mmr","mng","mobi","mov","movie","mp3","mp4","mp4a","mpeg","mpg","mpga","mxu","nef","npx","numbers","nupkg","o","odp","ods","odt","oga","ogg","ogv","otf","ott","pages","pbm","pcx","pdb","pdf","pea","pgm","pic","png","pnm","pot","potm","potx","ppa","ppam","ppm","pps","ppsm","ppsx","ppt","pptm","pptx","psd","pya","pyc","pyo","pyv","qt","rar","ras","raw","resources","rgb","rip","rlc","rmf","rmvb","rpm","rtf","rz","s3m","s7z","scpt","sgi","shar","snap","sil","sketch","slk","smv","snk","so","stl","suo","sub","swf","tar","tbz","tbz2","tga","tgz","thmx","tif","tiff","tlz","ttc","ttf","txz","udf","uvh","uvi","uvm","uvp","uvs","uvu","viv","vob","war","wav","wax","wbmp","wdp","weba","webm","webp","whl","wim","wm","wma","wmv","wmx","woff","woff2","wrm","wvx","xbm","xif","xla","xlam","xls","xlsb","xlsm","xlsx","xlt","xltm","xltx","xm","xmind","xpi","xpm","xwd","xz","z","zip","zipx"]),eE=r=>Qy.has(We.extname(r).slice(1).toLowerCase()),Hc=(r,e)=>{r instanceof Set?r.forEach(e):e(r)},Rs=(r,e,t)=>{let n=r[e];n instanceof Set||(r[e]=n=new Set([n])),n.add(t)},tE=r=>e=>{let t=r[e];t instanceof Set?t.clear():delete r[e]},As=(r,e,t)=>{let n=r[e];n instanceof Set?n.delete(t):n===t&&delete r[e]},gd=r=>r instanceof Set?r.size===0:!r,io=new Map;function ld(r,e,t,n,s){let i=(a,c)=>{t(r),s(a,c,{watchedPath:r}),c&&r!==c&&oo(We.resolve(r,c),un,We.join(r,c))};try{return(0,ln.watch)(r,{persistent:e.persistent},i)}catch(a){n(a);return}}var oo=(r,e,t,n,s)=>{let i=io.get(r);i&&Hc(i[e],a=>{a(t,n,s)})},rE=(r,e,t,n)=>{let{listener:s,errHandler:i,rawEmitter:a}=n,c=io.get(e),u;if(!t.persistent)return u=ld(r,t,s,i,a),u?u.close.bind(u):void 0;if(c)Rs(c,un,s),Rs(c,so,i),Rs(c,Kn,a);else{if(u=ld(r,t,oo.bind(null,e,un),i,oo.bind(null,e,Kn)),!u)return;u.on(Ht.ERROR,async d=>{let g=oo.bind(null,e,so);if(c&&(c.watcherUnusable=!0),Kc&&d.code==="EPERM")try{await(await(0,Vt.open)(r,"r")).close(),g(d)}catch{}else g(d)}),c={listeners:s,errHandlers:i,rawEmitters:a,watcher:u},io.set(e,c)}return()=>{As(c,un,s),As(c,so,i),As(c,Kn,a),gd(c.listeners)&&(c.watcher.close(),io.delete(e),Zy.forEach(tE(c)),c.watcher=void 0,Object.freeze(c))}},Wc=new Map,nE=(r,e,t,n)=>{let{listener:s,rawEmitter:i}=n,a=Wc.get(e),c=a&&a.options;return c&&(c.persistent<t.persistent||c.interval>t.interval)&&((0,ln.unwatchFile)(e),a=void 0),a?(Rs(a,un,s),Rs(a,Kn,i)):(a={listeners:s,rawEmitters:i,options:t,watcher:(0,ln.watchFile)(e,t,(u,d)=>{Hc(a.rawEmitters,m=>{m(Ht.CHANGE,e,{curr:u,prev:d})});let g=u.mtimeMs;(u.size!==d.size||g>d.mtimeMs||g===0)&&Hc(a.listeners,m=>m(r,u))})},Wc.set(e,a)),()=>{As(a,un,s),As(a,Kn,i),gd(a.listeners)&&(Wc.delete(e),(0,ln.unwatchFile)(e),a.options=a.watcher=void 0,Object.freeze(a))}},ao=class{fsw;_boundHandleError;constructor(e){this.fsw=e,this._boundHandleError=t=>e._handleError(t)}_watchWithNodeFs(e,t){let n=this.fsw.options,s=We.dirname(e),i=We.basename(e);this.fsw._getWatchedDir(s).add(i);let c=We.resolve(e),u={persistent:n.persistent};t||(t=co);let d;if(n.usePolling){let g=n.interval!==n.binaryInterval;u.interval=g&&eE(i)?n.binaryInterval:n.interval,d=nE(e,c,u,{listener:t,rawEmitter:this.fsw._emitRaw})}else d=rE(e,c,u,{listener:t,errHandler:this._boundHandleError,rawEmitter:this.fsw._emitRaw});return d}_handleFile(e,t,n){if(this.fsw.closed)return;let s=We.dirname(e),i=We.basename(e),a=this.fsw._getWatchedDir(s),c=t;if(a.has(i))return;let u=async(g,m)=>{if(this.fsw._throttle(Xy,e,5)){if(!m||m.mtimeMs===0)try{let y=await(0,Vt.stat)(e);if(this.fsw.closed)return;let w=y.atimeMs,S=y.mtimeMs;if((!w||w<=S||S!==c.mtimeMs)&&this.fsw._emit(Ht.CHANGE,e,y),(zy||Gy||Yy)&&c.ino!==y.ino){this.fsw._closeFile(g),c=y;let C=this._watchWithNodeFs(e,u);C&&this.fsw._addPathCloser(g,C)}else c=y}catch{this.fsw._remove(s,i)}else if(a.has(i)){let y=m.atimeMs,w=m.mtimeMs;(!y||y<=w||w!==c.mtimeMs)&&this.fsw._emit(Ht.CHANGE,e,m),c=m}}},d=this._watchWithNodeFs(e,u);if(!(n&&this.fsw.options.ignoreInitial)&&this.fsw._isntIgnored(e)){if(!this.fsw._throttle(Ht.ADD,e,0))return;this.fsw._emit(Ht.ADD,e,t)}return d}async _handleSymlink(e,t,n,s){if(this.fsw.closed)return;let i=e.fullPath,a=this.fsw._getWatchedDir(t);if(!this.fsw.options.followSymlinks){this.fsw._incrReadyCount();let c;try{c=await(0,Vt.realpath)(n)}catch{return this.fsw._emitReady(),!0}return this.fsw.closed?void 0:(a.has(s)?this.fsw._symlinkPaths.get(i)!==c&&(this.fsw._symlinkPaths.set(i,c),this.fsw._emit(Ht.CHANGE,n,e.stats)):(a.add(s),this.fsw._symlinkPaths.set(i,c),this.fsw._emit(Ht.ADD,n,e.stats)),this.fsw._emitReady(),!0)}if(this.fsw._symlinkPaths.has(i))return!0;this.fsw._symlinkPaths.set(i,!0)}_handleRead(e,t,n,s,i,a,c){e=We.join(e,"");let u=s?`${e}:${s}`:e;if(c=this.fsw._throttle("readdir",u,1e3),!c)return;let d=this.fsw._getWatchedDir(n.path),g=new Set,m=this.fsw._readdirp(e,{fileFilter:y=>n.filterPath(y),directoryFilter:y=>n.filterDir(y)});if(m)return m.on($y,async y=>{if(this.fsw.closed){m=void 0;return}let w=y.path,S=We.join(e,w);if(g.add(w),!(y.stats.isSymbolicLink()&&await this._handleSymlink(y,e,S,w))){if(this.fsw.closed){m=void 0;return}(w===s||!s&&!d.has(w))&&(this.fsw._incrReadyCount(),S=We.join(i,We.relative(i,S)),this._addToNodeFs(S,t,n,a+1))}}).on(Ht.ERROR,this._boundHandleError),new Promise((y,w)=>{if(!m)return w();m.once(Vc,()=>{if(this.fsw.closed){m=void 0;return}let S=c?c.clear():!1;y(void 0),d.getChildren().filter(C=>C!==e&&!g.has(C)).forEach(C=>{this.fsw._remove(e,C)}),m=void 0,S&&this._handleRead(e,!1,n,s,i,a,c)})})}async _handleDir(e,t,n,s,i,a,c){let u=this.fsw._getWatchedDir(We.dirname(e)),d=u.has(We.basename(e));!(n&&this.fsw.options.ignoreInitial)&&!i&&!d&&this.fsw._emit(Ht.ADD_DIR,e,t),u.add(We.basename(e)),this.fsw._getWatchedDir(e);let g,m,y=this.fsw.options.depth;if((y==null||s<=y)&&!this.fsw._symlinkPaths.has(c)){if(!i&&(await this._handleRead(e,n,a,i,e,s,g),this.fsw.closed))return;m=this._watchWithNodeFs(e,(w,S)=>{S&&S.mtimeMs===0||this._handleRead(w,!1,a,i,e,s,g)})}return m}async _addToNodeFs(e,t,n,s,i){let a=this.fsw._emitReady;if(this.fsw._isIgnored(e)||this.fsw.closed)return a(),!1;let c=this.fsw._getWatchHelpers(e);n&&(c.filterPath=u=>n.filterPath(u),c.filterDir=u=>n.filterDir(u));try{let u=await Jy[c.statMethod](c.watchPath);if(this.fsw.closed)return;if(this.fsw._isIgnored(c.watchPath,u))return a(),!1;let d=this.fsw.options.followSymlinks,g;if(u.isDirectory()){let m=We.resolve(e),y=d?await(0,Vt.realpath)(e):e;if(this.fsw.closed||(g=await this._handleDir(c.watchPath,u,t,s,i,c,y),this.fsw.closed))return;m!==y&&y!==void 0&&this.fsw._symlinkPaths.set(m,y)}else if(u.isSymbolicLink()){let m=d?await(0,Vt.realpath)(e):e;if(this.fsw.closed)return;let y=We.dirname(c.watchPath);if(this.fsw._getWatchedDir(y).add(c.watchPath),this.fsw._emit(Ht.ADD,c.watchPath,u),g=await this._handleDir(y,u,t,s,e,c,m),this.fsw.closed)return;m!==void 0&&this.fsw._symlinkPaths.set(We.resolve(e),m)}else g=this._handleFile(c.watchPath,u,t);return a(),g&&this.fsw._addPathCloser(e,g),!1}catch(u){if(this.fsw._handleError(u))return a(),e}}};var $c="/",sE="//",bd=".",iE="..",oE="string",aE=/\\/g,xd=/\/\//g,cE=/\..*\.(sw[px])$|~$|\.subl.*\.tmp/,fE=/^\.[/\\]/;function uo(r){return Array.isArray(r)?r:[r]}var zc=r=>typeof r=="object"&&r!==null&&!(r instanceof RegExp);function uE(r){return typeof r=="function"?r:typeof r=="string"?e=>r===e:r instanceof RegExp?e=>r.test(e):typeof r=="object"&&r!==null?e=>{if(r.path===e)return!0;if(r.recursive){let t=ye.relative(r.path,e);return t?!t.startsWith("..")&&!ye.isAbsolute(t):!1}return!1}:()=>!1}function lE(r){if(typeof r!="string")throw new Error("string expected");r=ye.normalize(r),r=r.replace(/\\/g,"/");let e=!1;return r.startsWith("//")&&(e=!0),r=r.replace(xd,"/"),e&&(r="/"+r),r}function md(r,e,t){let n=lE(e);for(let s=0;s<r.length;s++){let i=r[s];if(i(n,t))return!0}return!1}function hE(r,e){if(r==null)throw new TypeError("anymatch: specify first argument");let n=uo(r).map(s=>uE(s));return e==null?(s,i)=>md(n,s,i):md(n,e)}var _d=r=>{let e=uo(r).flat();if(!e.every(t=>typeof t===oE))throw new TypeError(`Non-string provided as watch path: ${e}`);return e.map(Sd)},yd=r=>{let e=r.replace(aE,$c),t=!1;return e.startsWith(sE)&&(t=!0),e=e.replace(xd,$c),t&&(e=$c+e),e},Sd=r=>yd(ye.normalize(yd(r))),Ed=(r="")=>e=>typeof e=="string"?Sd(ye.isAbsolute(e)?e:ye.join(r,e)):e,dE=(r,e)=>ye.isAbsolute(r)?r:ye.join(e,r),pE=Object.freeze(new Set),Gc=class{path;_removeWatcher;items;constructor(e,t){this.path=e,this._removeWatcher=t,this.items=new Set}add(e){let{items:t}=this;t&&e!==bd&&e!==iE&&t.add(e)}async remove(e){let{items:t}=this;if(!t||(t.delete(e),t.size>0))return;let n=this.path;try{await(0,lo.readdir)(n)}catch{this._removeWatcher&&this._removeWatcher(ye.dirname(n),ye.basename(n))}}has(e){let{items:t}=this;if(t)return t.has(e)}getChildren(){let{items:e}=this;return e?[...e.values()]:[]}dispose(){this.items.clear(),this.path="",this._removeWatcher=co,this.items=pE,Object.freeze(this)}},gE="stat",mE="lstat",Yc=class{fsw;path;watchPath;fullWatchPath;dirParts;followSymlinks;statMethod;constructor(e,t,n){this.fsw=n;let s=e;this.path=e=e.replace(fE,""),this.watchPath=s,this.fullWatchPath=ye.resolve(s),this.dirParts=[],this.dirParts.forEach(i=>{i.length>1&&i.pop()}),this.followSymlinks=t,this.statMethod=t?gE:mE}entryPath(e){return ye.join(this.watchPath,ye.relative(this.watchPath,e.fullPath))}filterPath(e){let{stats:t}=e;if(t&&t.isSymbolicLink())return this.filterDir(e);let n=this.entryPath(e);return this.fsw._isntIgnored(n,t)&&this.fsw._hasReadPermissions(t)}filterDir(e){return this.fsw._isntIgnored(this.entryPath(e),e.stats)}},Xc=class extends vd.EventEmitter{closed;options;_closers;_ignoredPaths;_throttled;_streams;_symlinkPaths;_watched;_pendingWrites;_pendingUnlinks;_readyCount;_emitReady;_closePromise;_userIgnored;_readyEmitted;_emitRaw;_boundRemove;_nodeFsHandler;constructor(e={}){super(),this.closed=!1,this._closers=new Map,this._ignoredPaths=new Set,this._throttled=new Map,this._streams=new Set,this._symlinkPaths=new Map,this._watched=new Map,this._pendingWrites=new Map,this._pendingUnlinks=new Map,this._readyCount=0,this._readyEmitted=!1;let t=e.awaitWriteFinish,n={stabilityThreshold:2e3,pollInterval:100},s={persistent:!0,ignoreInitial:!1,ignorePermissionErrors:!1,interval:100,binaryInterval:300,followSymlinks:!0,usePolling:!1,atomic:!0,...e,ignored:e.ignored?uo(e.ignored):uo([]),awaitWriteFinish:t===!0?n:typeof t=="object"?{...n,...t}:!1};pd&&(s.usePolling=!0),s.atomic===void 0&&(s.atomic=!s.usePolling);let i=process.env.CHOKIDAR_USEPOLLING;if(i!==void 0){let u=i.toLowerCase();u==="false"||u==="0"?s.usePolling=!1:u==="true"||u==="1"?s.usePolling=!0:s.usePolling=!!u}let a=process.env.CHOKIDAR_INTERVAL;a&&(s.interval=Number.parseInt(a,10));let c=0;this._emitReady=()=>{c++,c>=this._readyCount&&(this._emitReady=co,this._readyEmitted=!0,process.nextTick(()=>this.emit(Ke.READY)))},this._emitRaw=(...u)=>this.emit(Ke.RAW,...u),this._boundRemove=this._remove.bind(this),this.options=s,this._nodeFsHandler=new ao(this),Object.freeze(s)}_addIgnoredPath(e){if(zc(e)){for(let t of this._ignoredPaths)if(zc(t)&&t.path===e.path&&t.recursive===e.recursive)return}this._ignoredPaths.add(e)}_removeIgnoredPath(e){if(this._ignoredPaths.delete(e),typeof e=="string")for(let t of this._ignoredPaths)zc(t)&&t.path===e&&this._ignoredPaths.delete(t)}add(e,t,n){let{cwd:s}=this.options;this.closed=!1,this._closePromise=void 0;let i=_d(e);return s&&(i=i.map(a=>dE(a,s))),i.forEach(a=>{this._removeIgnoredPath(a)}),this._userIgnored=void 0,this._readyCount||(this._readyCount=0),this._readyCount+=i.length,Promise.all(i.map(async a=>{let c=await this._nodeFsHandler._addToNodeFs(a,!n,void 0,0,t);return c&&this._emitReady(),c})).then(a=>{this.closed||a.forEach(c=>{c&&this.add(ye.dirname(c),ye.basename(t||c))})}),this}unwatch(e){if(this.closed)return this;let t=_d(e),{cwd:n}=this.options;return t.forEach(s=>{!ye.isAbsolute(s)&&!this._closers.has(s)&&(n&&(s=ye.join(n,s)),s=ye.resolve(s)),this._closePath(s),this._addIgnoredPath(s),this._watched.has(s)&&this._addIgnoredPath({path:s,recursive:!0}),this._userIgnored=void 0}),this}close(){if(this._closePromise)return this._closePromise;this.closed=!0,this.removeAllListeners();let e=[];return this._closers.forEach(t=>t.forEach(n=>{let s=n();s instanceof Promise&&e.push(s)})),this._streams.forEach(t=>t.destroy()),this._userIgnored=void 0,this._readyCount=0,this._readyEmitted=!1,this._watched.forEach(t=>t.dispose()),this._closers.clear(),this._watched.clear(),this._streams.clear(),this._symlinkPaths.clear(),this._throttled.clear(),this._closePromise=e.length?Promise.all(e).then(()=>{}):Promise.resolve(),this._closePromise}getWatched(){let e={};return this._watched.forEach((t,n)=>{let i=(this.options.cwd?ye.relative(this.options.cwd,n):n)||bd;e[i]=t.getChildren().sort()}),e}emitWithAll(e,t){this.emit(e,...t),e!==Ke.ERROR&&this.emit(Ke.ALL,e,...t)}async _emit(e,t,n){if(this.closed)return;let s=this.options;Kc&&(t=ye.normalize(t)),s.cwd&&(t=ye.relative(s.cwd,t));let i=[t];n!=null&&i.push(n);let a=s.awaitWriteFinish,c;if(a&&(c=this._pendingWrites.get(t)))return c.lastChange=new Date,this;if(s.atomic){if(e===Ke.UNLINK)return this._pendingUnlinks.set(t,[e,...i]),setTimeout(()=>{this._pendingUnlinks.forEach((u,d)=>{this.emit(...u),this.emit(Ke.ALL,...u),this._pendingUnlinks.delete(d)})},typeof s.atomic=="number"?s.atomic:100),this;e===Ke.ADD&&this._pendingUnlinks.has(t)&&(e=Ke.CHANGE,this._pendingUnlinks.delete(t))}if(a&&(e===Ke.ADD||e===Ke.CHANGE)&&this._readyEmitted){let u=(d,g)=>{d?(e=Ke.ERROR,i[0]=d,this.emitWithAll(e,i)):g&&(i.length>1?i[1]=g:i.push(g),this.emitWithAll(e,i))};return this._awaitWriteFinish(t,a.stabilityThreshold,e,u),this}if(e===Ke.CHANGE&&!this._throttle(Ke.CHANGE,t,50))return this;if(s.alwaysStat&&n===void 0&&(e===Ke.ADD||e===Ke.ADD_DIR||e===Ke.CHANGE)){let u=s.cwd?ye.join(s.cwd,t):t,d;try{d=await(0,lo.stat)(u)}catch{}if(!d||this.closed)return;i.push(d)}return this.emitWithAll(e,i),this}_handleError(e){let t=e&&e.code;return e&&t!=="ENOENT"&&t!=="ENOTDIR"&&(!this.options.ignorePermissionErrors||t!=="EPERM"&&t!=="EACCES")&&this.emit(Ke.ERROR,e),e||this.closed}_throttle(e,t,n){this._throttled.has(e)||this._throttled.set(e,new Map);let s=this._throttled.get(e);if(!s)throw new Error("invalid throttle");let i=s.get(t);if(i)return i.count++,!1;let a,c=()=>{let d=s.get(t),g=d?d.count:0;return s.delete(t),clearTimeout(a),d&&clearTimeout(d.timeoutObject),g};a=setTimeout(c,n);let u={timeoutObject:a,clear:c,count:0};return s.set(t,u),u}_incrReadyCount(){return this._readyCount++}_awaitWriteFinish(e,t,n,s){let i=this.options.awaitWriteFinish;if(typeof i!="object")return;let a=i.pollInterval,c,u=e;this.options.cwd&&!ye.isAbsolute(e)&&(u=ye.join(this.options.cwd,e));let d=new Date,g=this._pendingWrites;function m(y){(0,wd.stat)(u,(w,S)=>{if(w||!g.has(e)){w&&w.code!=="ENOENT"&&s(w);return}let C=Number(new Date);y&&S.size!==y.size&&(g.get(e).lastChange=C);let V=g.get(e);C-V.lastChange>=t?(g.delete(e),s(void 0,S)):c=setTimeout(m,a,S)})}g.has(e)||(g.set(e,{lastChange:d,cancelWait:()=>(g.delete(e),clearTimeout(c),n)}),c=setTimeout(m,a))}_isIgnored(e,t){if(this.options.atomic&&cE.test(e))return!0;if(!this._userIgnored){let{cwd:n}=this.options,i=(this.options.ignored||[]).map(Ed(n)),c=[...[...this._ignoredPaths].map(Ed(n)),...i];this._userIgnored=hE(c,void 0)}return this._userIgnored(e,t)}_isntIgnored(e,t){return!this._isIgnored(e,t)}_getWatchHelpers(e){return new Yc(e,this.options.followSymlinks,this)}_getWatchedDir(e){let t=ye.resolve(e);return this._watched.has(t)||this._watched.set(t,new Gc(t,this._boundRemove)),this._watched.get(t)}_hasReadPermissions(e){return this.options.ignorePermissionErrors?!0:!!(Number(e.mode)&256)}_remove(e,t,n){let s=ye.join(e,t),i=ye.resolve(s);if(n=n??(this._watched.has(s)||this._watched.has(i)),!this._throttle("remove",s,100))return;!n&&this._watched.size===1&&this.add(e,t,!0),this._getWatchedDir(s).getChildren().forEach(y=>this._remove(s,y));let u=this._getWatchedDir(e),d=u.has(t);u.remove(t),this._symlinkPaths.has(i)&&this._symlinkPaths.delete(i);let g=s;if(this.options.cwd&&(g=ye.relative(this.options.cwd,s)),this.options.awaitWriteFinish&&this._pendingWrites.has(g)&&this._pendingWrites.get(g).cancelWait()===Ke.ADD)return;this._watched.delete(s),this._watched.delete(i);let m=n?Ke.UNLINK_DIR:Ke.UNLINK;d&&!this._isIgnored(s)&&this._emit(m,s),this._closePath(s)}_closePath(e){this._closeFile(e);let t=ye.dirname(e);this._getWatchedDir(t).remove(ye.basename(e))}_closeFile(e){let t=this._closers.get(e);t&&(t.forEach(n=>n()),this._closers.delete(e))}_addPathCloser(e,t){if(!t)return;let n=this._closers.get(e);n||(n=[],this._closers.set(e,n)),n.push(t)}_readdirp(e,t){if(this.closed)return;let n={type:Ke.ALL,alwaysStat:!0,lstat:!0,...t,depth:0},s=ud(e,n);return this._streams.add(s),s.once(dd,()=>{s=void 0}),s.once(Vc,()=>{s&&(this._streams.delete(s),s=void 0)}),s}};function Td(r,e={}){let t=new Xc(e);return t.add(r),t}var Cd=fe(oc()),sr=fe(kr()),_E=["**/node_modules/**","**/.git/**","**/dist/**","**/.next/**","**/.turbo/**","**/.cache/**","**/coverage/**","**/*.log"],yE=300,ho=class{watcher=null;ignoreFilter;workspaceRoot;logger;onFileChangedCallback=null;pendingEvents=new Map;pendingTypes=new Map;constructor(e,t){this.logger=e,this.workspaceRoot=t,this.ignoreFilter=(0,Cd.default)(),this.initializeIgnoreFilter()}initializeIgnoreFilter(){this.ignoreFilter.add(_E);let e=Ur.join(this.workspaceRoot,".gitignore");try{if($n.existsSync(e)){let t=$n.readFileSync(e,"utf-8");this.ignoreFilter.add(t)}}catch{}}onFileChanged(e){this.onFileChangedCallback=e}start(){this.watcher||(this.watcher=Td(this.workspaceRoot,{ignored:e=>{let t=Ur.relative(this.workspaceRoot,e);if(!t||t===".")return!1;let n=t.split(Ur.sep).join("/");return this.ignoreFilter.ignores(n)},persistent:!0,ignoreInitial:!0,awaitWriteFinish:{stabilityThreshold:200,pollInterval:50}}),this.watcher.on("add",e=>this.handleEvent(e,sr.FileChangeType.CREATE)),this.watcher.on("change",e=>this.handleEvent(e,sr.FileChangeType.MODIFY)),this.watcher.on("unlink",e=>this.handleEvent(e,sr.FileChangeType.DELETE)),this.watcher.on("error",e=>this.logger.error("File watcher error",e)),this.logger.info("File watcher started"))}stop(){this.watcher?.close(),this.watcher=null;for(let e of this.pendingEvents.values())clearTimeout(e);this.pendingEvents.clear(),this.pendingTypes.clear()}handleEvent(e,t){let n=Ur.relative(this.workspaceRoot,e);if(!n)return;let s=this.pendingEvents.get(n);s&&clearTimeout(s);let i=this.pendingTypes.get(n);this.pendingTypes.set(n,this.mergeTypes(i,t));let a=setTimeout(()=>{this.emit(n,this.pendingTypes.get(n)||t),this.pendingEvents.delete(n),this.pendingTypes.delete(n)},yE);this.pendingEvents.set(n,a)}mergeTypes(e,t){return e?t===sr.FileChangeType.DELETE||e===sr.FileChangeType.DELETE?sr.FileChangeType.DELETE:e===sr.FileChangeType.CREATE?sr.FileChangeType.CREATE:t:t}emit(e,t){let n={path:e,changeType:t,timestamp:new Date().toISOString(),source:"watcher"};if(t!==sr.FileChangeType.DELETE)try{let s=Ur.join(this.workspaceRoot,e),i=$n.statSync(s);n.size=i.size}catch{}this.onFileChangedCallback?.(n)}dispose(){this.stop(),this.onFileChangedCallback=null}};async function po(r,e,t,n){if(n)return process.stderr.write(`Logging in with API key...
36
+ `)}};var Ps=class{async openUrl(e){let{default:t}=await Promise.resolve().then(()=>(ed(),Qh));await t(e)}};var td=fe(require("fs")),jc=fe(require("path"));function ro(r){let e=r?[r]:[jc.join(__dirname,"..","package.json"),jc.join(__dirname,"..","..","package.json")];for(let t of e)try{let n=JSON.parse(td.readFileSync(t,"utf8"));if(typeof n.version=="string"&&n.version.length>0)return n.version}catch{}return"unknown"}var kd=fe(require("path")),_t=fe(bs());var rd=fe(require("os")),nd=fe(require("node-pty")),sd=fe(bs()),no=class{ptyProcess=null;outputBuffer=new sd.CircularBuffer(100);logger;onOutput=null;onExit=null;sigwinchEnabled=!0;sigwinchListener=null;constructor(e){this.logger=e}spawn(e){let t=process.env.SHELL||(rd.platform()==="win32"?"powershell.exe":"/bin/bash"),n=process.stdout.columns||80,s=process.stdout.rows||24;this.ptyProcess=nd.spawn(t,[],{name:"xterm-256color",cols:n,rows:s,cwd:e,env:process.env});let i=`cli_${this.ptyProcess.pid}`;return this.ptyProcess.onData(a=>{process.stdout.write(a),this.outputBuffer.append(a),this.onOutput?.(a)}),this.ptyProcess.onExit(({exitCode:a})=>{this.logger.info("Shell exited",String(a)),this.onExit?.(a)}),process.stdin.isTTY&&process.stdin.setRawMode(!0),process.stdin.resume(),process.stdin.on("data",a=>{this.ptyProcess?.write(a.toString())}),this.sigwinchListener=()=>{let a=process.stdout.columns||80,c=process.stdout.rows||24;if(!this.sigwinchEnabled){this.logger.info("Local resize ignored (PWA viewers attached)",{cols:a,rows:c});return}this.logger.info("Local resize applied",{cols:a,rows:c}),this.ptyProcess?.resize(a,c)},process.platform==="win32"?process.stdout.on("resize",this.sigwinchListener):process.on("SIGWINCH",this.sigwinchListener),this.logger.info("Shell spawned",t,i),i}write(e){this.ptyProcess?.write(e)}resize(e,t){this.ptyProcess?.resize(e,t)}setSigwinchEnabled(e){this.sigwinchEnabled!==e&&(this.sigwinchEnabled=e,this.logger.info("SIGWINCH listener",{enabled:e}))}getBuffer(){return this.outputBuffer.getContent()}getLastBytes(e){return this.outputBuffer.getLastBytes(e)}setOnOutput(e){this.onOutput=e}setOnExit(e){this.onExit=e}kill(){this.ptyProcess?.kill(),this.ptyProcess=null}dispose(){this.kill(),this.sigwinchListener&&(process.platform==="win32"?process.stdout.removeListener("resize",this.sigwinchListener):process.removeListener("SIGWINCH",this.sigwinchListener),this.sigwinchListener=null),process.stdin.isTTY&&process.stdin.setRawMode(!1),process.stdin.pause()}};var Ur=fe(require("path")),$n=fe(require("fs"));var vd=require("node:events"),wd=require("node:fs"),lo=require("node:fs/promises"),ye=fe(require("node:path"),1);var Er=require("node:fs/promises"),vr=require("node:path"),cd=require("node:stream"),Ct={FILE_TYPE:"files",DIR_TYPE:"directories",FILE_DIR_TYPE:"files_directories",EVERYTHING_TYPE:"all"},Uc={root:".",fileFilter:r=>!0,directoryFilter:r=>!0,type:Ct.FILE_TYPE,lstat:!1,depth:2147483648,alwaysStat:!1,highWaterMark:4096};Object.freeze(Uc);var fd="READDIRP_RECURSIVE_ERROR",qy=new Set(["ENOENT","EPERM","EACCES","ELOOP",fd]),id=[Ct.DIR_TYPE,Ct.EVERYTHING_TYPE,Ct.FILE_DIR_TYPE,Ct.FILE_TYPE],Wy=new Set([Ct.DIR_TYPE,Ct.EVERYTHING_TYPE,Ct.FILE_DIR_TYPE]),Hy=new Set([Ct.EVERYTHING_TYPE,Ct.FILE_DIR_TYPE,Ct.FILE_TYPE]),Vy=r=>qy.has(r.code),Ky=process.platform==="win32",od=r=>!0,ad=r=>{if(r===void 0)return od;if(typeof r=="function")return r;if(typeof r=="string"){let e=r.trim();return t=>t.basename===e}if(Array.isArray(r)){let e=r.map(t=>t.trim());return t=>e.some(n=>t.basename===n)}return od},qc=class extends cd.Readable{parents;reading;parent;_stat;_maxDepth;_wantsDir;_wantsFile;_wantsEverything;_root;_isDirent;_statsProp;_rdOptions;_fileFilter;_directoryFilter;constructor(e={}){super({objectMode:!0,autoDestroy:!0,highWaterMark:e.highWaterMark});let t={...Uc,...e},{root:n,type:s}=t;this._fileFilter=ad(t.fileFilter),this._directoryFilter=ad(t.directoryFilter);let i=t.lstat?Er.lstat:Er.stat;Ky?this._stat=a=>i(a,{bigint:!0}):this._stat=i,this._maxDepth=t.depth!=null&&Number.isSafeInteger(t.depth)?t.depth:Uc.depth,this._wantsDir=s?Wy.has(s):!1,this._wantsFile=s?Hy.has(s):!1,this._wantsEverything=s===Ct.EVERYTHING_TYPE,this._root=(0,vr.resolve)(n),this._isDirent=!t.alwaysStat,this._statsProp=this._isDirent?"dirent":"stats",this._rdOptions={encoding:"utf8",withFileTypes:this._isDirent},this.parents=[this._exploreDir(n,1)],this.reading=!1,this.parent=void 0}async _read(e){if(!this.reading){this.reading=!0;try{for(;!this.destroyed&&e>0;){let t=this.parent,n=t&&t.files;if(n&&n.length>0){let{path:s,depth:i}=t,a=n.splice(0,e).map(u=>this._formatEntry(u,s)),c=await Promise.all(a);for(let u of c){if(!u)continue;if(this.destroyed)return;let d=await this._getEntryType(u);d==="directory"&&this._directoryFilter(u)?(i<=this._maxDepth&&this.parents.push(this._exploreDir(u.fullPath,i+1)),this._wantsDir&&(this.push(u),e--)):(d==="file"||this._includeAsFile(u))&&this._fileFilter(u)&&this._wantsFile&&(this.push(u),e--)}}else{let s=this.parents.pop();if(!s){this.push(null);break}if(this.parent=await s,this.destroyed)return}}}catch(t){this.destroy(t)}finally{this.reading=!1}}}async _exploreDir(e,t){let n;try{n=await(0,Er.readdir)(e,this._rdOptions)}catch(s){this._onError(s)}return{files:n,depth:t,path:e}}async _formatEntry(e,t){let n,s=this._isDirent?e.name:e;try{let i=(0,vr.resolve)((0,vr.join)(t,s));n={path:(0,vr.relative)(this._root,i),fullPath:i,basename:s},n[this._statsProp]=this._isDirent?e:await this._stat(i)}catch(i){this._onError(i);return}return n}_onError(e){Vy(e)&&!this.destroyed?this.emit("warn",e):this.destroy(e)}async _getEntryType(e){if(!e&&this._statsProp in e)return"";let t=e[this._statsProp];if(t.isFile())return"file";if(t.isDirectory())return"directory";if(t&&t.isSymbolicLink()){let n=e.fullPath;try{let s=await(0,Er.realpath)(n),i=await(0,Er.lstat)(s);if(i.isFile())return"file";if(i.isDirectory()){let a=s.length;if(n.startsWith(s)&&n.substr(a,1)===vr.sep){let c=new Error(`Circular symlink detected: "${n}" points to "${s}"`);return c.code=fd,this._onError(c)}return"directory"}}catch(s){return this._onError(s),""}}}_includeAsFile(e){let t=e&&e[this._statsProp];return t&&this._wantsEverything&&!t.isDirectory()}};function ud(r,e={}){let t=e.entryType||e.type;if(t==="both"&&(t=Ct.FILE_DIR_TYPE),t&&(e.type=t),r){if(typeof r!="string")throw new TypeError("readdirp: root argument must be a string. Usage: readdirp(root, options)");if(t&&!id.includes(t))throw new Error(`readdirp: Invalid type passed. Use one of ${id.join(", ")}`)}else throw new Error("readdirp: root argument is required. Usage: readdirp(root, options)");return e.root=r,new qc(e)}var ln=require("node:fs"),Vt=require("node:fs/promises"),hd=require("node:os"),We=fe(require("node:path"),1),$y="data",Vc="end",dd="close",co=()=>{};var fo=process.platform,Kc=fo==="win32",zy=fo==="darwin",Gy=fo==="linux",Yy=fo==="freebsd",pd=(0,hd.type)()==="OS400",Ke={ALL:"all",READY:"ready",ADD:"add",CHANGE:"change",ADD_DIR:"addDir",UNLINK:"unlink",UNLINK_DIR:"unlinkDir",RAW:"raw",ERROR:"error"},Ht=Ke,Xy="watch",Jy={lstat:Vt.lstat,stat:Vt.stat},un="listeners",so="errHandlers",Kn="rawEmitters",Zy=[un,so,Kn],Qy=new Set(["3dm","3ds","3g2","3gp","7z","a","aac","adp","afdesign","afphoto","afpub","ai","aif","aiff","alz","ape","apk","appimage","ar","arj","asf","au","avi","bak","baml","bh","bin","bk","bmp","btif","bz2","bzip2","cab","caf","cgm","class","cmx","cpio","cr2","cur","dat","dcm","deb","dex","djvu","dll","dmg","dng","doc","docm","docx","dot","dotm","dra","DS_Store","dsk","dts","dtshd","dvb","dwg","dxf","ecelp4800","ecelp7470","ecelp9600","egg","eol","eot","epub","exe","f4v","fbs","fh","fla","flac","flatpak","fli","flv","fpx","fst","fvt","g3","gh","gif","graffle","gz","gzip","h261","h263","h264","icns","ico","ief","img","ipa","iso","jar","jpeg","jpg","jpgv","jpm","jxr","key","ktx","lha","lib","lvp","lz","lzh","lzma","lzo","m3u","m4a","m4v","mar","mdi","mht","mid","midi","mj2","mka","mkv","mmr","mng","mobi","mov","movie","mp3","mp4","mp4a","mpeg","mpg","mpga","mxu","nef","npx","numbers","nupkg","o","odp","ods","odt","oga","ogg","ogv","otf","ott","pages","pbm","pcx","pdb","pdf","pea","pgm","pic","png","pnm","pot","potm","potx","ppa","ppam","ppm","pps","ppsm","ppsx","ppt","pptm","pptx","psd","pya","pyc","pyo","pyv","qt","rar","ras","raw","resources","rgb","rip","rlc","rmf","rmvb","rpm","rtf","rz","s3m","s7z","scpt","sgi","shar","snap","sil","sketch","slk","smv","snk","so","stl","suo","sub","swf","tar","tbz","tbz2","tga","tgz","thmx","tif","tiff","tlz","ttc","ttf","txz","udf","uvh","uvi","uvm","uvp","uvs","uvu","viv","vob","war","wav","wax","wbmp","wdp","weba","webm","webp","whl","wim","wm","wma","wmv","wmx","woff","woff2","wrm","wvx","xbm","xif","xla","xlam","xls","xlsb","xlsm","xlsx","xlt","xltm","xltx","xm","xmind","xpi","xpm","xwd","xz","z","zip","zipx"]),eE=r=>Qy.has(We.extname(r).slice(1).toLowerCase()),Hc=(r,e)=>{r instanceof Set?r.forEach(e):e(r)},Rs=(r,e,t)=>{let n=r[e];n instanceof Set||(r[e]=n=new Set([n])),n.add(t)},tE=r=>e=>{let t=r[e];t instanceof Set?t.clear():delete r[e]},As=(r,e,t)=>{let n=r[e];n instanceof Set?n.delete(t):n===t&&delete r[e]},gd=r=>r instanceof Set?r.size===0:!r,io=new Map;function ld(r,e,t,n,s){let i=(a,c)=>{t(r),s(a,c,{watchedPath:r}),c&&r!==c&&oo(We.resolve(r,c),un,We.join(r,c))};try{return(0,ln.watch)(r,{persistent:e.persistent},i)}catch(a){n(a);return}}var oo=(r,e,t,n,s)=>{let i=io.get(r);i&&Hc(i[e],a=>{a(t,n,s)})},rE=(r,e,t,n)=>{let{listener:s,errHandler:i,rawEmitter:a}=n,c=io.get(e),u;if(!t.persistent)return u=ld(r,t,s,i,a),u?u.close.bind(u):void 0;if(c)Rs(c,un,s),Rs(c,so,i),Rs(c,Kn,a);else{if(u=ld(r,t,oo.bind(null,e,un),i,oo.bind(null,e,Kn)),!u)return;u.on(Ht.ERROR,async d=>{let g=oo.bind(null,e,so);if(c&&(c.watcherUnusable=!0),Kc&&d.code==="EPERM")try{await(await(0,Vt.open)(r,"r")).close(),g(d)}catch{}else g(d)}),c={listeners:s,errHandlers:i,rawEmitters:a,watcher:u},io.set(e,c)}return()=>{As(c,un,s),As(c,so,i),As(c,Kn,a),gd(c.listeners)&&(c.watcher.close(),io.delete(e),Zy.forEach(tE(c)),c.watcher=void 0,Object.freeze(c))}},Wc=new Map,nE=(r,e,t,n)=>{let{listener:s,rawEmitter:i}=n,a=Wc.get(e),c=a&&a.options;return c&&(c.persistent<t.persistent||c.interval>t.interval)&&((0,ln.unwatchFile)(e),a=void 0),a?(Rs(a,un,s),Rs(a,Kn,i)):(a={listeners:s,rawEmitters:i,options:t,watcher:(0,ln.watchFile)(e,t,(u,d)=>{Hc(a.rawEmitters,m=>{m(Ht.CHANGE,e,{curr:u,prev:d})});let g=u.mtimeMs;(u.size!==d.size||g>d.mtimeMs||g===0)&&Hc(a.listeners,m=>m(r,u))})},Wc.set(e,a)),()=>{As(a,un,s),As(a,Kn,i),gd(a.listeners)&&(Wc.delete(e),(0,ln.unwatchFile)(e),a.options=a.watcher=void 0,Object.freeze(a))}},ao=class{fsw;_boundHandleError;constructor(e){this.fsw=e,this._boundHandleError=t=>e._handleError(t)}_watchWithNodeFs(e,t){let n=this.fsw.options,s=We.dirname(e),i=We.basename(e);this.fsw._getWatchedDir(s).add(i);let c=We.resolve(e),u={persistent:n.persistent};t||(t=co);let d;if(n.usePolling){let g=n.interval!==n.binaryInterval;u.interval=g&&eE(i)?n.binaryInterval:n.interval,d=nE(e,c,u,{listener:t,rawEmitter:this.fsw._emitRaw})}else d=rE(e,c,u,{listener:t,errHandler:this._boundHandleError,rawEmitter:this.fsw._emitRaw});return d}_handleFile(e,t,n){if(this.fsw.closed)return;let s=We.dirname(e),i=We.basename(e),a=this.fsw._getWatchedDir(s),c=t;if(a.has(i))return;let u=async(g,m)=>{if(this.fsw._throttle(Xy,e,5)){if(!m||m.mtimeMs===0)try{let y=await(0,Vt.stat)(e);if(this.fsw.closed)return;let w=y.atimeMs,S=y.mtimeMs;if((!w||w<=S||S!==c.mtimeMs)&&this.fsw._emit(Ht.CHANGE,e,y),(zy||Gy||Yy)&&c.ino!==y.ino){this.fsw._closeFile(g),c=y;let C=this._watchWithNodeFs(e,u);C&&this.fsw._addPathCloser(g,C)}else c=y}catch{this.fsw._remove(s,i)}else if(a.has(i)){let y=m.atimeMs,w=m.mtimeMs;(!y||y<=w||w!==c.mtimeMs)&&this.fsw._emit(Ht.CHANGE,e,m),c=m}}},d=this._watchWithNodeFs(e,u);if(!(n&&this.fsw.options.ignoreInitial)&&this.fsw._isntIgnored(e)){if(!this.fsw._throttle(Ht.ADD,e,0))return;this.fsw._emit(Ht.ADD,e,t)}return d}async _handleSymlink(e,t,n,s){if(this.fsw.closed)return;let i=e.fullPath,a=this.fsw._getWatchedDir(t);if(!this.fsw.options.followSymlinks){this.fsw._incrReadyCount();let c;try{c=await(0,Vt.realpath)(n)}catch{return this.fsw._emitReady(),!0}return this.fsw.closed?void 0:(a.has(s)?this.fsw._symlinkPaths.get(i)!==c&&(this.fsw._symlinkPaths.set(i,c),this.fsw._emit(Ht.CHANGE,n,e.stats)):(a.add(s),this.fsw._symlinkPaths.set(i,c),this.fsw._emit(Ht.ADD,n,e.stats)),this.fsw._emitReady(),!0)}if(this.fsw._symlinkPaths.has(i))return!0;this.fsw._symlinkPaths.set(i,!0)}_handleRead(e,t,n,s,i,a,c){e=We.join(e,"");let u=s?`${e}:${s}`:e;if(c=this.fsw._throttle("readdir",u,1e3),!c)return;let d=this.fsw._getWatchedDir(n.path),g=new Set,m=this.fsw._readdirp(e,{fileFilter:y=>n.filterPath(y),directoryFilter:y=>n.filterDir(y)});if(m)return m.on($y,async y=>{if(this.fsw.closed){m=void 0;return}let w=y.path,S=We.join(e,w);if(g.add(w),!(y.stats.isSymbolicLink()&&await this._handleSymlink(y,e,S,w))){if(this.fsw.closed){m=void 0;return}(w===s||!s&&!d.has(w))&&(this.fsw._incrReadyCount(),S=We.join(i,We.relative(i,S)),this._addToNodeFs(S,t,n,a+1))}}).on(Ht.ERROR,this._boundHandleError),new Promise((y,w)=>{if(!m)return w();m.once(Vc,()=>{if(this.fsw.closed){m=void 0;return}let S=c?c.clear():!1;y(void 0),d.getChildren().filter(C=>C!==e&&!g.has(C)).forEach(C=>{this.fsw._remove(e,C)}),m=void 0,S&&this._handleRead(e,!1,n,s,i,a,c)})})}async _handleDir(e,t,n,s,i,a,c){let u=this.fsw._getWatchedDir(We.dirname(e)),d=u.has(We.basename(e));!(n&&this.fsw.options.ignoreInitial)&&!i&&!d&&this.fsw._emit(Ht.ADD_DIR,e,t),u.add(We.basename(e)),this.fsw._getWatchedDir(e);let g,m,y=this.fsw.options.depth;if((y==null||s<=y)&&!this.fsw._symlinkPaths.has(c)){if(!i&&(await this._handleRead(e,n,a,i,e,s,g),this.fsw.closed))return;m=this._watchWithNodeFs(e,(w,S)=>{S&&S.mtimeMs===0||this._handleRead(w,!1,a,i,e,s,g)})}return m}async _addToNodeFs(e,t,n,s,i){let a=this.fsw._emitReady;if(this.fsw._isIgnored(e)||this.fsw.closed)return a(),!1;let c=this.fsw._getWatchHelpers(e);n&&(c.filterPath=u=>n.filterPath(u),c.filterDir=u=>n.filterDir(u));try{let u=await Jy[c.statMethod](c.watchPath);if(this.fsw.closed)return;if(this.fsw._isIgnored(c.watchPath,u))return a(),!1;let d=this.fsw.options.followSymlinks,g;if(u.isDirectory()){let m=We.resolve(e),y=d?await(0,Vt.realpath)(e):e;if(this.fsw.closed||(g=await this._handleDir(c.watchPath,u,t,s,i,c,y),this.fsw.closed))return;m!==y&&y!==void 0&&this.fsw._symlinkPaths.set(m,y)}else if(u.isSymbolicLink()){let m=d?await(0,Vt.realpath)(e):e;if(this.fsw.closed)return;let y=We.dirname(c.watchPath);if(this.fsw._getWatchedDir(y).add(c.watchPath),this.fsw._emit(Ht.ADD,c.watchPath,u),g=await this._handleDir(y,u,t,s,e,c,m),this.fsw.closed)return;m!==void 0&&this.fsw._symlinkPaths.set(We.resolve(e),m)}else g=this._handleFile(c.watchPath,u,t);return a(),g&&this.fsw._addPathCloser(e,g),!1}catch(u){if(this.fsw._handleError(u))return a(),e}}};var $c="/",sE="//",bd=".",iE="..",oE="string",aE=/\\/g,xd=/\/\//g,cE=/\..*\.(sw[px])$|~$|\.subl.*\.tmp/,fE=/^\.[/\\]/;function uo(r){return Array.isArray(r)?r:[r]}var zc=r=>typeof r=="object"&&r!==null&&!(r instanceof RegExp);function uE(r){return typeof r=="function"?r:typeof r=="string"?e=>r===e:r instanceof RegExp?e=>r.test(e):typeof r=="object"&&r!==null?e=>{if(r.path===e)return!0;if(r.recursive){let t=ye.relative(r.path,e);return t?!t.startsWith("..")&&!ye.isAbsolute(t):!1}return!1}:()=>!1}function lE(r){if(typeof r!="string")throw new Error("string expected");r=ye.normalize(r),r=r.replace(/\\/g,"/");let e=!1;return r.startsWith("//")&&(e=!0),r=r.replace(xd,"/"),e&&(r="/"+r),r}function md(r,e,t){let n=lE(e);for(let s=0;s<r.length;s++){let i=r[s];if(i(n,t))return!0}return!1}function hE(r,e){if(r==null)throw new TypeError("anymatch: specify first argument");let n=uo(r).map(s=>uE(s));return e==null?(s,i)=>md(n,s,i):md(n,e)}var _d=r=>{let e=uo(r).flat();if(!e.every(t=>typeof t===oE))throw new TypeError(`Non-string provided as watch path: ${e}`);return e.map(Sd)},yd=r=>{let e=r.replace(aE,$c),t=!1;return e.startsWith(sE)&&(t=!0),e=e.replace(xd,$c),t&&(e=$c+e),e},Sd=r=>yd(ye.normalize(yd(r))),Ed=(r="")=>e=>typeof e=="string"?Sd(ye.isAbsolute(e)?e:ye.join(r,e)):e,dE=(r,e)=>ye.isAbsolute(r)?r:ye.join(e,r),pE=Object.freeze(new Set),Gc=class{path;_removeWatcher;items;constructor(e,t){this.path=e,this._removeWatcher=t,this.items=new Set}add(e){let{items:t}=this;t&&e!==bd&&e!==iE&&t.add(e)}async remove(e){let{items:t}=this;if(!t||(t.delete(e),t.size>0))return;let n=this.path;try{await(0,lo.readdir)(n)}catch{this._removeWatcher&&this._removeWatcher(ye.dirname(n),ye.basename(n))}}has(e){let{items:t}=this;if(t)return t.has(e)}getChildren(){let{items:e}=this;return e?[...e.values()]:[]}dispose(){this.items.clear(),this.path="",this._removeWatcher=co,this.items=pE,Object.freeze(this)}},gE="stat",mE="lstat",Yc=class{fsw;path;watchPath;fullWatchPath;dirParts;followSymlinks;statMethod;constructor(e,t,n){this.fsw=n;let s=e;this.path=e=e.replace(fE,""),this.watchPath=s,this.fullWatchPath=ye.resolve(s),this.dirParts=[],this.dirParts.forEach(i=>{i.length>1&&i.pop()}),this.followSymlinks=t,this.statMethod=t?gE:mE}entryPath(e){return ye.join(this.watchPath,ye.relative(this.watchPath,e.fullPath))}filterPath(e){let{stats:t}=e;if(t&&t.isSymbolicLink())return this.filterDir(e);let n=this.entryPath(e);return this.fsw._isntIgnored(n,t)&&this.fsw._hasReadPermissions(t)}filterDir(e){return this.fsw._isntIgnored(this.entryPath(e),e.stats)}},Xc=class extends vd.EventEmitter{closed;options;_closers;_ignoredPaths;_throttled;_streams;_symlinkPaths;_watched;_pendingWrites;_pendingUnlinks;_readyCount;_emitReady;_closePromise;_userIgnored;_readyEmitted;_emitRaw;_boundRemove;_nodeFsHandler;constructor(e={}){super(),this.closed=!1,this._closers=new Map,this._ignoredPaths=new Set,this._throttled=new Map,this._streams=new Set,this._symlinkPaths=new Map,this._watched=new Map,this._pendingWrites=new Map,this._pendingUnlinks=new Map,this._readyCount=0,this._readyEmitted=!1;let t=e.awaitWriteFinish,n={stabilityThreshold:2e3,pollInterval:100},s={persistent:!0,ignoreInitial:!1,ignorePermissionErrors:!1,interval:100,binaryInterval:300,followSymlinks:!0,usePolling:!1,atomic:!0,...e,ignored:e.ignored?uo(e.ignored):uo([]),awaitWriteFinish:t===!0?n:typeof t=="object"?{...n,...t}:!1};pd&&(s.usePolling=!0),s.atomic===void 0&&(s.atomic=!s.usePolling);let i=process.env.CHOKIDAR_USEPOLLING;if(i!==void 0){let u=i.toLowerCase();u==="false"||u==="0"?s.usePolling=!1:u==="true"||u==="1"?s.usePolling=!0:s.usePolling=!!u}let a=process.env.CHOKIDAR_INTERVAL;a&&(s.interval=Number.parseInt(a,10));let c=0;this._emitReady=()=>{c++,c>=this._readyCount&&(this._emitReady=co,this._readyEmitted=!0,process.nextTick(()=>this.emit(Ke.READY)))},this._emitRaw=(...u)=>this.emit(Ke.RAW,...u),this._boundRemove=this._remove.bind(this),this.options=s,this._nodeFsHandler=new ao(this),Object.freeze(s)}_addIgnoredPath(e){if(zc(e)){for(let t of this._ignoredPaths)if(zc(t)&&t.path===e.path&&t.recursive===e.recursive)return}this._ignoredPaths.add(e)}_removeIgnoredPath(e){if(this._ignoredPaths.delete(e),typeof e=="string")for(let t of this._ignoredPaths)zc(t)&&t.path===e&&this._ignoredPaths.delete(t)}add(e,t,n){let{cwd:s}=this.options;this.closed=!1,this._closePromise=void 0;let i=_d(e);return s&&(i=i.map(a=>dE(a,s))),i.forEach(a=>{this._removeIgnoredPath(a)}),this._userIgnored=void 0,this._readyCount||(this._readyCount=0),this._readyCount+=i.length,Promise.all(i.map(async a=>{let c=await this._nodeFsHandler._addToNodeFs(a,!n,void 0,0,t);return c&&this._emitReady(),c})).then(a=>{this.closed||a.forEach(c=>{c&&this.add(ye.dirname(c),ye.basename(t||c))})}),this}unwatch(e){if(this.closed)return this;let t=_d(e),{cwd:n}=this.options;return t.forEach(s=>{!ye.isAbsolute(s)&&!this._closers.has(s)&&(n&&(s=ye.join(n,s)),s=ye.resolve(s)),this._closePath(s),this._addIgnoredPath(s),this._watched.has(s)&&this._addIgnoredPath({path:s,recursive:!0}),this._userIgnored=void 0}),this}close(){if(this._closePromise)return this._closePromise;this.closed=!0,this.removeAllListeners();let e=[];return this._closers.forEach(t=>t.forEach(n=>{let s=n();s instanceof Promise&&e.push(s)})),this._streams.forEach(t=>t.destroy()),this._userIgnored=void 0,this._readyCount=0,this._readyEmitted=!1,this._watched.forEach(t=>t.dispose()),this._closers.clear(),this._watched.clear(),this._streams.clear(),this._symlinkPaths.clear(),this._throttled.clear(),this._closePromise=e.length?Promise.all(e).then(()=>{}):Promise.resolve(),this._closePromise}getWatched(){let e={};return this._watched.forEach((t,n)=>{let i=(this.options.cwd?ye.relative(this.options.cwd,n):n)||bd;e[i]=t.getChildren().sort()}),e}emitWithAll(e,t){this.emit(e,...t),e!==Ke.ERROR&&this.emit(Ke.ALL,e,...t)}async _emit(e,t,n){if(this.closed)return;let s=this.options;Kc&&(t=ye.normalize(t)),s.cwd&&(t=ye.relative(s.cwd,t));let i=[t];n!=null&&i.push(n);let a=s.awaitWriteFinish,c;if(a&&(c=this._pendingWrites.get(t)))return c.lastChange=new Date,this;if(s.atomic){if(e===Ke.UNLINK)return this._pendingUnlinks.set(t,[e,...i]),setTimeout(()=>{this._pendingUnlinks.forEach((u,d)=>{this.emit(...u),this.emit(Ke.ALL,...u),this._pendingUnlinks.delete(d)})},typeof s.atomic=="number"?s.atomic:100),this;e===Ke.ADD&&this._pendingUnlinks.has(t)&&(e=Ke.CHANGE,this._pendingUnlinks.delete(t))}if(a&&(e===Ke.ADD||e===Ke.CHANGE)&&this._readyEmitted){let u=(d,g)=>{d?(e=Ke.ERROR,i[0]=d,this.emitWithAll(e,i)):g&&(i.length>1?i[1]=g:i.push(g),this.emitWithAll(e,i))};return this._awaitWriteFinish(t,a.stabilityThreshold,e,u),this}if(e===Ke.CHANGE&&!this._throttle(Ke.CHANGE,t,50))return this;if(s.alwaysStat&&n===void 0&&(e===Ke.ADD||e===Ke.ADD_DIR||e===Ke.CHANGE)){let u=s.cwd?ye.join(s.cwd,t):t,d;try{d=await(0,lo.stat)(u)}catch{}if(!d||this.closed)return;i.push(d)}return this.emitWithAll(e,i),this}_handleError(e){let t=e&&e.code;return e&&t!=="ENOENT"&&t!=="ENOTDIR"&&(!this.options.ignorePermissionErrors||t!=="EPERM"&&t!=="EACCES")&&this.emit(Ke.ERROR,e),e||this.closed}_throttle(e,t,n){this._throttled.has(e)||this._throttled.set(e,new Map);let s=this._throttled.get(e);if(!s)throw new Error("invalid throttle");let i=s.get(t);if(i)return i.count++,!1;let a,c=()=>{let d=s.get(t),g=d?d.count:0;return s.delete(t),clearTimeout(a),d&&clearTimeout(d.timeoutObject),g};a=setTimeout(c,n);let u={timeoutObject:a,clear:c,count:0};return s.set(t,u),u}_incrReadyCount(){return this._readyCount++}_awaitWriteFinish(e,t,n,s){let i=this.options.awaitWriteFinish;if(typeof i!="object")return;let a=i.pollInterval,c,u=e;this.options.cwd&&!ye.isAbsolute(e)&&(u=ye.join(this.options.cwd,e));let d=new Date,g=this._pendingWrites;function m(y){(0,wd.stat)(u,(w,S)=>{if(w||!g.has(e)){w&&w.code!=="ENOENT"&&s(w);return}let C=Number(new Date);y&&S.size!==y.size&&(g.get(e).lastChange=C);let V=g.get(e);C-V.lastChange>=t?(g.delete(e),s(void 0,S)):c=setTimeout(m,a,S)})}g.has(e)||(g.set(e,{lastChange:d,cancelWait:()=>(g.delete(e),clearTimeout(c),n)}),c=setTimeout(m,a))}_isIgnored(e,t){if(this.options.atomic&&cE.test(e))return!0;if(!this._userIgnored){let{cwd:n}=this.options,i=(this.options.ignored||[]).map(Ed(n)),c=[...[...this._ignoredPaths].map(Ed(n)),...i];this._userIgnored=hE(c,void 0)}return this._userIgnored(e,t)}_isntIgnored(e,t){return!this._isIgnored(e,t)}_getWatchHelpers(e){return new Yc(e,this.options.followSymlinks,this)}_getWatchedDir(e){let t=ye.resolve(e);return this._watched.has(t)||this._watched.set(t,new Gc(t,this._boundRemove)),this._watched.get(t)}_hasReadPermissions(e){return this.options.ignorePermissionErrors?!0:!!(Number(e.mode)&256)}_remove(e,t,n){let s=ye.join(e,t),i=ye.resolve(s);if(n=n??(this._watched.has(s)||this._watched.has(i)),!this._throttle("remove",s,100))return;!n&&this._watched.size===1&&this.add(e,t,!0),this._getWatchedDir(s).getChildren().forEach(y=>this._remove(s,y));let u=this._getWatchedDir(e),d=u.has(t);u.remove(t),this._symlinkPaths.has(i)&&this._symlinkPaths.delete(i);let g=s;if(this.options.cwd&&(g=ye.relative(this.options.cwd,s)),this.options.awaitWriteFinish&&this._pendingWrites.has(g)&&this._pendingWrites.get(g).cancelWait()===Ke.ADD)return;this._watched.delete(s),this._watched.delete(i);let m=n?Ke.UNLINK_DIR:Ke.UNLINK;d&&!this._isIgnored(s)&&this._emit(m,s),this._closePath(s)}_closePath(e){this._closeFile(e);let t=ye.dirname(e);this._getWatchedDir(t).remove(ye.basename(e))}_closeFile(e){let t=this._closers.get(e);t&&(t.forEach(n=>n()),this._closers.delete(e))}_addPathCloser(e,t){if(!t)return;let n=this._closers.get(e);n||(n=[],this._closers.set(e,n)),n.push(t)}_readdirp(e,t){if(this.closed)return;let n={type:Ke.ALL,alwaysStat:!0,lstat:!0,...t,depth:0},s=ud(e,n);return this._streams.add(s),s.once(dd,()=>{s=void 0}),s.once(Vc,()=>{s&&(this._streams.delete(s),s=void 0)}),s}};function Td(r,e={}){let t=new Xc(e);return t.add(r),t}var Cd=fe(oc()),sr=fe(kr()),_E=["**/node_modules/**","**/.git/**","**/dist/**","**/.next/**","**/.turbo/**","**/.cache/**","**/coverage/**","**/*.log"],yE=300,ho=class{watcher=null;ignoreFilter;workspaceRoot;logger;onFileChangedCallback=null;pendingEvents=new Map;pendingTypes=new Map;constructor(e,t){this.logger=e,this.workspaceRoot=t,this.ignoreFilter=(0,Cd.default)(),this.initializeIgnoreFilter()}initializeIgnoreFilter(){this.ignoreFilter.add(_E);let e=Ur.join(this.workspaceRoot,".gitignore");try{if($n.existsSync(e)){let t=$n.readFileSync(e,"utf-8");this.ignoreFilter.add(t)}}catch{}}onFileChanged(e){this.onFileChangedCallback=e}start(){this.watcher||(this.watcher=Td(this.workspaceRoot,{ignored:e=>{let t=Ur.relative(this.workspaceRoot,e);if(!t||t===".")return!1;let n=t.split(Ur.sep).join("/");return this.ignoreFilter.ignores(n)},persistent:!0,ignoreInitial:!0,awaitWriteFinish:{stabilityThreshold:200,pollInterval:50}}),this.watcher.on("add",e=>this.handleEvent(e,sr.FileChangeType.CREATE)),this.watcher.on("change",e=>this.handleEvent(e,sr.FileChangeType.MODIFY)),this.watcher.on("unlink",e=>this.handleEvent(e,sr.FileChangeType.DELETE)),this.watcher.on("error",e=>this.logger.error("File watcher error",e)),this.logger.info("File watcher started"))}stop(){this.watcher?.close(),this.watcher=null;for(let e of this.pendingEvents.values())clearTimeout(e);this.pendingEvents.clear(),this.pendingTypes.clear()}handleEvent(e,t){let n=Ur.relative(this.workspaceRoot,e);if(!n)return;let s=this.pendingEvents.get(n);s&&clearTimeout(s);let i=this.pendingTypes.get(n);this.pendingTypes.set(n,this.mergeTypes(i,t));let a=setTimeout(()=>{this.emit(n,this.pendingTypes.get(n)||t),this.pendingEvents.delete(n),this.pendingTypes.delete(n)},yE);this.pendingEvents.set(n,a)}mergeTypes(e,t){return e?t===sr.FileChangeType.DELETE||e===sr.FileChangeType.DELETE?sr.FileChangeType.DELETE:e===sr.FileChangeType.CREATE?sr.FileChangeType.CREATE:t:t}emit(e,t){let n={path:e,changeType:t,timestamp:new Date().toISOString(),source:"watcher"};if(t!==sr.FileChangeType.DELETE)try{let s=Ur.join(this.workspaceRoot,e),i=$n.statSync(s);n.size=i.size}catch{}this.onFileChangedCallback?.(n)}dispose(){this.stop(),this.onFileChangedCallback=null}};async function po(r,e,t,n){if(n)return process.stderr.write(`Logging in with API key...
37
37
  `),await r.loginWithApiKey(n)?(process.stderr.write(`Login successful.
38
38
  `),!0):(process.stderr.write(`Login failed. Check your API key.
39
39
  `),!1);try{let s=await r.startDeviceCodeFlow();process.stderr.write(`
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@termiq/cli",
3
- "version": "1.9.0",
3
+ "version": "1.9.1",
4
4
  "description": "TermIQ CLI agent — access terminals from anywhere",
5
5
  "license": "SEE LICENSE IN LICENSE",
6
6
  "homepage": "https://termiq.io",