knarr 0.0.3 → 0.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.
Files changed (111) hide show
  1. package/README.md +1 -0
  2. package/dist/add-4Z3V5722.mjs +3 -0
  3. package/dist/bell-SIN4ERLS.mjs +2 -0
  4. package/dist/{check-YVEJEI2G.mjs → check-7CJHAF6Y.mjs} +1 -1
  5. package/dist/{chokidar-LVDD2IK4.mjs → chokidar-2G63V464.mjs} +1 -1
  6. package/dist/chunk-3SXN6MQL.mjs +4 -0
  7. package/dist/chunk-7GCKCCHU.mjs +3 -0
  8. package/dist/chunk-7ROQJISX.mjs +15 -0
  9. package/dist/chunk-AA43FODB.mjs +3 -0
  10. package/dist/chunk-ABG6UD3X.mjs +22 -0
  11. package/dist/chunk-BH2WXCLS.mjs +4 -0
  12. package/dist/chunk-COI7GWH3.mjs +4 -0
  13. package/dist/chunk-E3HZCU3S.mjs +5 -0
  14. package/dist/chunk-FSVETLZK.mjs +4 -0
  15. package/dist/{chunk-3KNUBUPH.mjs → chunk-G7HFTV5Y.mjs} +1 -1
  16. package/dist/chunk-GAWQLCRB.mjs +3 -0
  17. package/dist/{chunk-MBKCCWSD.mjs → chunk-HVN6HBWZ.mjs} +1 -1
  18. package/dist/{chunk-SYADAYF4.mjs → chunk-ICU4V73X.mjs} +1 -1
  19. package/dist/{chunk-XQPVRRTN.mjs → chunk-IP5ROSRE.mjs} +1 -1
  20. package/dist/chunk-J6HZHQVL.mjs +3 -0
  21. package/dist/chunk-L7O2RSTN.mjs +3 -0
  22. package/dist/chunk-M3TRMEJV.mjs +3 -0
  23. package/dist/chunk-MN4DV2NO.mjs +3 -0
  24. package/dist/chunk-N3B2JO4H.mjs +13 -0
  25. package/dist/{chunk-7HVPEBK5.mjs → chunk-NGPAGRK4.mjs} +1 -1
  26. package/dist/{chunk-B3DZ5HVQ.mjs → chunk-OQDZJP55.mjs} +1 -1
  27. package/dist/chunk-QEH5VHRO.mjs +13 -0
  28. package/dist/chunk-QFHYSC3K.mjs +3 -0
  29. package/dist/{chunk-CTJF2EWO.mjs → chunk-QHNHLR6T.mjs} +2 -2
  30. package/dist/chunk-RJSBXX2Q.mjs +3 -0
  31. package/dist/{chunk-NBSJGM2X.mjs → chunk-SPHWZS5P.mjs} +1 -1
  32. package/dist/chunk-U6O35NZ7.mjs +3 -0
  33. package/dist/chunk-UCSYKFEZ.mjs +3 -0
  34. package/dist/chunk-W2MMKBWU.mjs +3 -0
  35. package/dist/chunk-WBTSRLB6.mjs +7 -0
  36. package/dist/chunk-WN3DOKIM.mjs +3 -0
  37. package/dist/{chunk-TEFMLGCB.mjs → chunk-XDWZZBCM.mjs} +1 -1
  38. package/dist/{chunk-2GDRDQA5.mjs → chunk-Z5K6DFA6.mjs} +1 -1
  39. package/dist/clean-EJIYYQZM.mjs +3 -0
  40. package/dist/cli.mjs +4 -4
  41. package/dist/dev-PUNHH4MS.mjs +3 -0
  42. package/dist/doctor-ZK4OPSD4.mjs +6 -0
  43. package/dist/explain-BDTONX7H.mjs +5 -0
  44. package/dist/fs-NU36NNEG.mjs +2 -0
  45. package/dist/history-MLJHRV3Q.mjs +2 -0
  46. package/dist/index.d.ts +79 -18
  47. package/dist/index.mjs +1524 -443
  48. package/dist/init-X4F3XKVC.mjs +16 -0
  49. package/dist/{list-GLSA6I67.mjs → list-4PTHMIQ4.mjs} +2 -2
  50. package/dist/migrate-VHDLW6I7.mjs +8 -0
  51. package/dist/nextjs-config-T5D6LOJE.mjs +2 -0
  52. package/dist/preflight-IXICTR6G.mjs +2 -0
  53. package/dist/{publish-TAWTHPSD.mjs → publish-UGDDG6OT.mjs} +2 -2
  54. package/dist/push-V575ASM4.mjs +3 -0
  55. package/dist/remove-EPVDMWCS.mjs +2 -0
  56. package/dist/reset-5M6AU4FU.mjs +3 -0
  57. package/dist/restore-QPISOGEK.mjs +12 -0
  58. package/dist/rollback-CTGK7SXG.mjs +3 -0
  59. package/dist/{status-FA6UEHEF.mjs → status-3ZXM3CRH.mjs} +2 -2
  60. package/dist/{tailwind-source-RIWWXW2Y.mjs → tailwind-source-HCTY2XDU.mjs} +2 -2
  61. package/dist/topo-sort-ZNGR6D7M.mjs +2 -0
  62. package/dist/{tracker-JJEYXX45.mjs → tracker-QAKEXYUJ.mjs} +1 -1
  63. package/dist/update-RSPDDAJK.mjs +12 -0
  64. package/dist/use-LZ2GIXYZ.mjs +3 -0
  65. package/dist/vite-config-XOGAKYGQ.mjs +2 -0
  66. package/dist/watch-orchestrator-N6HZUDS3.mjs +3 -0
  67. package/dist/watcher-KOLIXRUG.mjs +3 -0
  68. package/dist/workspace-T6PNO4L3.mjs +2 -0
  69. package/dist/{xxhash-wasm-DTW44IIQ.mjs → xxhash-wasm-I6Q3T2SL.mjs} +1 -1
  70. package/package.json +4 -1
  71. package/dist/add-LZ6CZTHG.mjs +0 -3
  72. package/dist/bell-YD6IWNXO.mjs +0 -2
  73. package/dist/chunk-2VCW5RWI.mjs +0 -3
  74. package/dist/chunk-37AAX47E.mjs +0 -19
  75. package/dist/chunk-5BZD55UB.mjs +0 -3
  76. package/dist/chunk-7JG555TZ.mjs +0 -3
  77. package/dist/chunk-7SDPRKFT.mjs +0 -13
  78. package/dist/chunk-BS4VKVYH.mjs +0 -3
  79. package/dist/chunk-EE2UYGFD.mjs +0 -4
  80. package/dist/chunk-GO6F6AGH.mjs +0 -3
  81. package/dist/chunk-GQYG5FCW.mjs +0 -5
  82. package/dist/chunk-HEDVIVEO.mjs +0 -14
  83. package/dist/chunk-KOHUNKHP.mjs +0 -3
  84. package/dist/chunk-LXGALE74.mjs +0 -13
  85. package/dist/chunk-OPLSUHCD.mjs +0 -4
  86. package/dist/chunk-QGLOGD5G.mjs +0 -3
  87. package/dist/chunk-SFLWVTJC.mjs +0 -3
  88. package/dist/chunk-SN4TOUQW.mjs +0 -7
  89. package/dist/chunk-UBGMLVMB.mjs +0 -3
  90. package/dist/chunk-XKO24LUM.mjs +0 -3
  91. package/dist/chunk-ZJEEAMB3.mjs +0 -3
  92. package/dist/clean-ZD5GPGXQ.mjs +0 -3
  93. package/dist/dev-TMWMIT7W.mjs +0 -3
  94. package/dist/doctor-AXP7GVBM.mjs +0 -4
  95. package/dist/fs-2NITBGIO.mjs +0 -2
  96. package/dist/history-SKKGT225.mjs +0 -2
  97. package/dist/init-XK4B7XYG.mjs +0 -7
  98. package/dist/migrate-MW4BVLL2.mjs +0 -8
  99. package/dist/preflight-TVJFHRI2.mjs +0 -2
  100. package/dist/push-65ZZFZJY.mjs +0 -3
  101. package/dist/remove-LOBXHBMC.mjs +0 -2
  102. package/dist/reset-EAN5NVGM.mjs +0 -3
  103. package/dist/restore-YHZYT54B.mjs +0 -11
  104. package/dist/rollback-U3LQTWH5.mjs +0 -3
  105. package/dist/topo-sort-WEIVPJKN.mjs +0 -2
  106. package/dist/update-VOUKMOLK.mjs +0 -3
  107. package/dist/use-BXAZ5OP3.mjs +0 -3
  108. package/dist/vite-config-UWCLPTOZ.mjs +0 -2
  109. package/dist/watch-orchestrator-I2623SMT.mjs +0 -3
  110. package/dist/watcher-PTPUN2HE.mjs +0 -3
  111. package/dist/workspace-S3TAUSS3.mjs +0 -2
package/README.md CHANGED
@@ -9,6 +9,7 @@
9
9
  <a href="https://bundlephobia.com/package/knarr"><img src="https://badgen.net/bundlephobia/minzip/knarr" alt="minzipped size" /></a>
10
10
  <br>
11
11
  <a href="https://github.com/oleg-kuibar/knarr/actions/workflows/ci.yml"><img src="https://github.com/oleg-kuibar/knarr/actions/workflows/ci.yml/badge.svg" alt="CI" /></a>
12
+ <a href="https://github.com/oleg-kuibar/knarr/actions/workflows/compat.yml"><img src="https://github.com/oleg-kuibar/knarr/actions/workflows/compat.yml/badge.svg" alt="Compatibility" /></a>
12
13
  <a href="https://github.com/oleg-kuibar/knarr/blob/master/LICENSE"><img src="https://img.shields.io/badge/license-MIT-blue" alt="license" /></a>
13
14
  <img src="https://img.shields.io/badge/node-%3E%3D22.12-brightgreen" alt="node version" />
14
15
  </p>
@@ -0,0 +1,3 @@
1
+ #!/usr/bin/env node
2
+ import {createRequire}from'node:module';import {a}from'./chunk-7ROQJISX.mjs';import'./chunk-COI7GWH3.mjs';import'./chunk-QHNHLR6T.mjs';import'./chunk-ABG6UD3X.mjs';import'./chunk-XDWZZBCM.mjs';import'./chunk-WBTSRLB6.mjs';import'./chunk-QEH5VHRO.mjs';import'./chunk-UCSYKFEZ.mjs';import'./chunk-N3B2JO4H.mjs';import'./chunk-WN3DOKIM.mjs';import'./chunk-MN4DV2NO.mjs';import {a as a$1}from'./chunk-HVN6HBWZ.mjs';import'./chunk-FSVETLZK.mjs';import {b}from'./chunk-U6O35NZ7.mjs';import'./chunk-NGPAGRK4.mjs';import'./chunk-QFHYSC3K.mjs';import'./chunk-W2MMKBWU.mjs';import'./chunk-G7HFTV5Y.mjs';import'./chunk-BH2WXCLS.mjs';import'./chunk-E3HZCU3S.mjs';import'./chunk-SPHWZS5P.mjs';import'./chunk-OQDZJP55.mjs';import'./chunk-L7O2RSTN.mjs';globalThis.require=createRequire(import.meta.url);
3
+ var s={meta:{name:"add",description:"Link a package from the Knarr store into this project"},args:{package:{type:"positional",description:"Package name to add",required:true},from:{type:"string",description:"Path to package source (will publish first)"},build:{type:"string",description:"Build command to run before publishing --from"},"skip-build":{type:"boolean",description:"Skip build detection before publishing --from",default:false},yes:{type:"boolean",alias:"y",description:"Auto-accept prompts (install missing deps, etc.)",default:false}},async run({args:e}){b(),await a({packageArg:e.package,from:e.from,build:e.build,skipBuild:e["skip-build"],yes:e.yes,timer:new a$1});}};export{s as default};
@@ -0,0 +1,2 @@
1
+ #!/usr/bin/env node
2
+ import {createRequire}from'node:module';export{a as ringBell}from'./chunk-J6HZHQVL.mjs';import'./chunk-L7O2RSTN.mjs';globalThis.require=createRequire(import.meta.url);
@@ -1,5 +1,5 @@
1
1
  #!/usr/bin/env node
2
- import {createRequire}from'node:module';import {a as a$1}from'./chunk-XQPVRRTN.mjs';import {b,a as a$2}from'./chunk-BS4VKVYH.mjs';import'./chunk-7HVPEBK5.mjs';import'./chunk-NBSJGM2X.mjs';import {a,b as b$1}from'./chunk-B3DZ5HVQ.mjs';import {c}from'./chunk-2VCW5RWI.mjs';import {resolve}from'path';globalThis.require=createRequire(import.meta.url);
2
+ import {createRequire}from'node:module';import {a as a$1}from'./chunk-IP5ROSRE.mjs';import {b,a as a$2}from'./chunk-U6O35NZ7.mjs';import'./chunk-NGPAGRK4.mjs';import'./chunk-E3HZCU3S.mjs';import'./chunk-SPHWZS5P.mjs';import {a,b as b$1}from'./chunk-OQDZJP55.mjs';import {c}from'./chunk-L7O2RSTN.mjs';import {resolve}from'path';globalThis.require=createRequire(import.meta.url);
3
3
  var o=c(a(),1);var y={meta:{name:"check",description:"Validate package configuration (exports, types, entry points)"},args:{dir:{type:"positional",description:"Package directory (default: current directory)",required:false}},async run({args:l}){b();let p=resolve(l.dir||"."),s=await a$1(p);if(s.length===0){b$1.success("All pre-flight checks passed"),a$2({issues:[],passed:true});return}let t=s.filter(e=>e.severity==="error"),i=s.filter(e=>e.severity==="warn");b$1.info(`Found ${s.length} issue(s):
4
4
  `);for(let e of t)b$1.log(` ${o.default.red("ERROR")} ${o.default.dim(`[${e.code}]`)} ${e.message}`);for(let e of i)b$1.log(` ${o.default.yellow("WARN")} ${o.default.dim(`[${e.code}]`)} ${e.message}`);t.length>0?b$1.error(`
5
5
  ${t.length} error(s), ${i.length} warning(s)`):b$1.warn(`
@@ -1,4 +1,4 @@
1
1
  #!/usr/bin/env node
2
- import {createRequire}from'node:module';import {a}from'./chunk-2VCW5RWI.mjs';import {EventEmitter}from'events';import {unwatchFile,watchFile,watch,stat as stat$1}from'fs';import {lstat,stat,readdir,realpath,open}from'fs/promises';import*as u from'path';import {resolve,join,relative,sep}from'path';import {Readable}from'stream';import {type}from'os';globalThis.require=createRequire(import.meta.url);
2
+ import {createRequire}from'node:module';import {a}from'./chunk-L7O2RSTN.mjs';import {EventEmitter}from'events';import {unwatchFile,watchFile,watch,stat as stat$1}from'fs';import {lstat,stat,readdir,realpath,open}from'fs/promises';import*as u from'path';import {resolve,join,relative,sep}from'path';import {Readable}from'stream';import {type}from'os';globalThis.require=createRequire(import.meta.url);
3
3
  var g={FILE_TYPE:"files",DIR_TYPE:"directories",FILE_DIR_TYPE:"files_directories",EVERYTHING_TYPE:"all"},k={root:".",fileFilter:a(r=>true,"fileFilter"),directoryFilter:a(r=>true,"directoryFilter"),type:g.FILE_TYPE,lstat:false,depth:2147483648,alwaysStat:false,highWaterMark:4096};Object.freeze(k);var J="READDIRP_RECURSIVE_ERROR",gt=new Set(["ENOENT","EPERM","EACCES","ELOOP",J]),B=[g.DIR_TYPE,g.EVERYTHING_TYPE,g.FILE_DIR_TYPE,g.FILE_TYPE],yt=new Set([g.DIR_TYPE,g.EVERYTHING_TYPE,g.FILE_DIR_TYPE]),Pt=new Set([g.EVERYTHING_TYPE,g.FILE_DIR_TYPE,g.FILE_TYPE]),Rt=a(r=>gt.has(r.code),"isNormalFlowError"),bt=process.platform==="win32",$=a(r=>true,"emptyFn"),q=a(r=>{if(r===void 0)return $;if(typeof r=="function")return r;if(typeof r=="string"){let t=r.trim();return e=>e.basename===t}if(Array.isArray(r)){let t=r.map(e=>e.trim());return e=>t.some(i=>e.basename===i)}return $},"normalizeFilter"),L=class extends Readable{static{a(this,"ReaddirpStream");}parents;reading;parent;_stat;_maxDepth;_wantsDir;_wantsFile;_wantsEverything;_root;_isDirent;_statsProp;_rdOptions;_fileFilter;_directoryFilter;constructor(t={}){super({objectMode:true,autoDestroy:true,highWaterMark:t.highWaterMark});let e={...k,...t},{root:i,type:s}=e;this._fileFilter=q(e.fileFilter),this._directoryFilter=q(e.directoryFilter);let n=e.lstat?lstat:stat;bt?this._stat=h=>n(h,{bigint:true}):this._stat=n,this._maxDepth=e.depth!=null&&Number.isSafeInteger(e.depth)?e.depth:k.depth,this._wantsDir=s?yt.has(s):false,this._wantsFile=s?Pt.has(s):false,this._wantsEverything=s===g.EVERYTHING_TYPE,this._root=resolve(i),this._isDirent=!e.alwaysStat,this._statsProp=this._isDirent?"dirent":"stats",this._rdOptions={encoding:"utf8",withFileTypes:this._isDirent},this.parents=[this._exploreDir(i,1)],this.reading=false,this.parent=void 0;}async _read(t){if(!this.reading){this.reading=true;try{for(;!this.destroyed&&t>0;){let e=this.parent,i=e&&e.files;if(i&&i.length>0){let{path:s,depth:n}=e,h=i.splice(0,t).map(a=>this._formatEntry(a,s)),o=await Promise.all(h);for(let a of o){if(!a)continue;if(this.destroyed)return;let c=await this._getEntryType(a);c==="directory"&&this._directoryFilter(a)?(n<=this._maxDepth&&this.parents.push(this._exploreDir(a.fullPath,n+1)),this._wantsDir&&(this.push(a),t--)):(c==="file"||this._includeAsFile(a))&&this._fileFilter(a)&&this._wantsFile&&(this.push(a),t--);}}else {let s=this.parents.pop();if(!s){this.push(null);break}if(this.parent=await s,this.destroyed)return}}}catch(e){this.destroy(e);}finally{this.reading=false;}}}async _exploreDir(t,e){let i;try{i=await readdir(t,this._rdOptions);}catch(s){this._onError(s);}return {files:i,depth:e,path:t}}async _formatEntry(t,e){let i,s=this._isDirent?t.name:t;try{let n=resolve(join(e,s));i={path:relative(this._root,n),fullPath:n,basename:s},i[this._statsProp]=this._isDirent?t:await this._stat(n);}catch(n){this._onError(n);return}return i}_onError(t){Rt(t)&&!this.destroyed?this.emit("warn",t):this.destroy(t);}async _getEntryType(t){if(!t&&this._statsProp in t)return "";let e=t[this._statsProp];if(e.isFile())return "file";if(e.isDirectory())return "directory";if(e&&e.isSymbolicLink()){let i=t.fullPath;try{let s=await realpath(i),n=await lstat(s);if(n.isFile())return "file";if(n.isDirectory()){let h=s.length;if(i.startsWith(s)&&i.substr(h,1)===sep){let o=new Error(`Circular symlink detected: "${i}" points to "${s}"`);return o.code=J,this._onError(o)}return "directory"}}catch(s){return this._onError(s),""}}}_includeAsFile(t){let e=t&&t[this._statsProp];return e&&this._wantsEverything&&!e.isDirectory()}};function Q(r,t={}){let e=t.entryType||t.type;if(e==="both"&&(e=g.FILE_DIR_TYPE),e&&(t.type=e),r){if(typeof r!="string")throw new TypeError("readdirp: root argument must be a string. Usage: readdirp(root, options)");if(e&&!B.includes(e))throw new Error(`readdirp: Invalid type passed. Use one of ${B.join(", ")}`)}else throw new Error("readdirp: root argument is required. Usage: readdirp(root, options)");return t.root=r,new L(t)}a(Q,"readdirp");var Ft="data",z="end",et="close",S=a(()=>{},"EMPTY_FN");var A=process.platform,H=A==="win32",St=A==="darwin",At=A==="linux",Wt=A==="freebsd",st=type()==="OS400",m={ALL:"all",READY:"ready",ADD:"add",CHANGE:"change",ADD_DIR:"addDir",UNLINK:"unlink",UNLINK_DIR:"unlinkDir",RAW:"raw",ERROR:"error"},y=m,Nt="watch",kt={lstat:lstat,stat:stat},R="listeners",T="errHandlers",b="rawEmitters",Lt=[R,T,b],Ct=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"]),Ot=a(r=>Ct.has(u.extname(r).slice(1).toLowerCase()),"isBinaryPath"),M=a((r,t)=>{r instanceof Set?r.forEach(t):t(r);},"foreach"),D=a((r,t,e)=>{let i=r[t];i instanceof Set||(r[t]=i=new Set([i])),i.add(e);},"addAndConvert"),Mt=a(r=>t=>{let e=r[t];e instanceof Set?e.clear():delete r[t];},"clearItem"),I=a((r,t,e)=>{let i=r[t];i instanceof Set?i.delete(e):i===e&&delete r[t];},"delFromSet"),it=a(r=>r instanceof Set?r.size===0:!r,"isEmptySet"),v=new Map;function Z(r,t,e,i,s){let n=a((h,o)=>{e(r),s(h,o,{watchedPath:r}),o&&r!==o&&x(u.resolve(r,o),R,u.join(r,o));},"handleEvent");try{return watch(r,{persistent:t.persistent},n)}catch(h){i(h);return}}a(Z,"createFsWatchInstance");var x=a((r,t,e,i,s)=>{let n=v.get(r);n&&M(n[t],h=>{h(e,i,s);});},"fsWatchBroadcast"),zt=a((r,t,e,i)=>{let{listener:s,errHandler:n,rawEmitter:h}=i,o=v.get(t),a;if(!e.persistent)return a=Z(r,e,s,n,h),a?a.close.bind(a):void 0;if(o)D(o,R,s),D(o,T,n),D(o,b,h);else {if(a=Z(r,e,x.bind(null,t,R),n,x.bind(null,t,b)),!a)return;a.on(y.ERROR,async c=>{let d=x.bind(null,t,T);if(o&&(o.watcherUnusable=true),H&&c.code==="EPERM")try{await(await open(r,"r")).close(),d(c);}catch{}else d(c);}),o={listeners:s,errHandlers:n,rawEmitters:h,watcher:a},v.set(t,o);}return ()=>{I(o,R,s),I(o,T,n),I(o,b,h),it(o.listeners)&&(o.watcher.close(),v.delete(t),Lt.forEach(Mt(o)),o.watcher=void 0,Object.freeze(o));}},"setFsWatchListener"),O=new Map,Ht=a((r,t,e,i)=>{let{listener:s,rawEmitter:n}=i,h=O.get(t),o=h&&h.options;return o&&(o.persistent<e.persistent||o.interval>e.interval)&&(unwatchFile(t),h=void 0),h?(D(h,R,s),D(h,b,n)):(h={listeners:s,rawEmitters:n,options:e,watcher:watchFile(t,e,(a,c)=>{M(h.rawEmitters,_=>{_(y.CHANGE,t,{curr:a,prev:c});});let d=a.mtimeMs;(a.size!==c.size||d>c.mtimeMs||d===0)&&M(h.listeners,_=>_(r,a));})},O.set(t,h)),()=>{I(h,R,s),I(h,b,n),it(h.listeners)&&(O.delete(t),unwatchFile(t),h.options=h.watcher=void 0,Object.freeze(h));}},"setFsWatchFileListener"),F=class{static{a(this,"NodeFsHandler");}fsw;_boundHandleError;constructor(t){this.fsw=t,this._boundHandleError=e=>t._handleError(e);}_watchWithNodeFs(t,e){let i=this.fsw.options,s=u.dirname(t),n=u.basename(t);this.fsw._getWatchedDir(s).add(n);let o=u.resolve(t),a={persistent:i.persistent};e||(e=S);let c;if(i.usePolling){let d=i.interval!==i.binaryInterval;a.interval=d&&Ot(n)?i.binaryInterval:i.interval,c=Ht(t,o,a,{listener:e,rawEmitter:this.fsw._emitRaw});}else c=zt(t,o,a,{listener:e,errHandler:this._boundHandleError,rawEmitter:this.fsw._emitRaw});return c}_handleFile(t,e,i){if(this.fsw.closed)return;let s=u.dirname(t),n=u.basename(t),h=this.fsw._getWatchedDir(s),o=e;if(h.has(n))return;let a$1=a(async(d,_)=>{if(this.fsw._throttle(Nt,t,5)){if(!_||_.mtimeMs===0)try{let f=await stat(t);if(this.fsw.closed)return;let w=f.atimeMs,E=f.mtimeMs;if((!w||w<=E||E!==o.mtimeMs)&&this.fsw._emit(y.CHANGE,t,f),(St||At||Wt)&&o.ino!==f.ino){this.fsw._closeFile(d),o=f;let P=this._watchWithNodeFs(t,a$1);P&&this.fsw._addPathCloser(d,P);}else o=f;}catch{this.fsw._remove(s,n);}else if(h.has(n)){let f=_.atimeMs,w=_.mtimeMs;(!f||f<=w||w!==o.mtimeMs)&&this.fsw._emit(y.CHANGE,t,_),o=_;}}},"listener"),c=this._watchWithNodeFs(t,a$1);if(!(i&&this.fsw.options.ignoreInitial)&&this.fsw._isntIgnored(t)){if(!this.fsw._throttle(y.ADD,t,0))return;this.fsw._emit(y.ADD,t,e);}return c}async _handleSymlink(t,e,i,s){if(this.fsw.closed)return;let n=t.fullPath,h=this.fsw._getWatchedDir(e);if(!this.fsw.options.followSymlinks){this.fsw._incrReadyCount();let o;try{o=await realpath(i);}catch{return this.fsw._emitReady(),true}return this.fsw.closed?void 0:(h.has(s)?this.fsw._symlinkPaths.get(n)!==o&&(this.fsw._symlinkPaths.set(n,o),this.fsw._emit(y.CHANGE,i,t.stats)):(h.add(s),this.fsw._symlinkPaths.set(n,o),this.fsw._emit(y.ADD,i,t.stats)),this.fsw._emitReady(),true)}if(this.fsw._symlinkPaths.has(n))return true;this.fsw._symlinkPaths.set(n,true);}_handleRead(t,e,i,s,n,h,o){t=u.join(t,"");let a$1=s?`${t}:${s}`:t;if(o=this.fsw._throttle("readdir",a$1,1e3),!o)return;let c=this.fsw._getWatchedDir(i.path),d=new Set,_=this.fsw._readdirp(t,{fileFilter:a(f=>i.filterPath(f),"fileFilter"),directoryFilter:a(f=>i.filterDir(f),"directoryFilter")});if(_)return _.on(Ft,async f=>{if(this.fsw.closed){_=void 0;return}let w=f.path,E=u.join(t,w);if(d.add(w),!(f.stats.isSymbolicLink()&&await this._handleSymlink(f,t,E,w))){if(this.fsw.closed){_=void 0;return}(w===s||!s&&!c.has(w))&&(this.fsw._incrReadyCount(),E=u.join(n,u.relative(n,E)),this._addToNodeFs(E,e,i,h+1));}}).on(y.ERROR,this._boundHandleError),new Promise((f,w)=>{if(!_)return w();_.once(z,()=>{if(this.fsw.closed){_=void 0;return}let E=o?o.clear():false;f(void 0),c.getChildren().filter(P=>P!==t&&!d.has(P)).forEach(P=>{this.fsw._remove(t,P);}),_=void 0,E&&this._handleRead(t,false,i,s,n,h,o);});})}async _handleDir(t,e,i,s,n,h,o){let a=this.fsw._getWatchedDir(u.dirname(t)),c=a.has(u.basename(t));!(i&&this.fsw.options.ignoreInitial)&&!n&&!c&&this.fsw._emit(y.ADD_DIR,t,e),a.add(u.basename(t)),this.fsw._getWatchedDir(t);let d,_,f=this.fsw.options.depth;if((f==null||s<=f)&&!this.fsw._symlinkPaths.has(o)){if(!n&&(await this._handleRead(t,i,h,n,t,s,d),this.fsw.closed))return;_=this._watchWithNodeFs(t,(w,E)=>{E&&E.mtimeMs===0||this._handleRead(w,false,h,n,t,s,d);});}return _}async _addToNodeFs(t,e,i,s,n){let h=this.fsw._emitReady;if(this.fsw._isIgnored(t)||this.fsw.closed)return h(),false;let o=this.fsw._getWatchHelpers(t);i&&(o.filterPath=a=>i.filterPath(a),o.filterDir=a=>i.filterDir(a));try{let a=await kt[o.statMethod](o.watchPath);if(this.fsw.closed)return;if(this.fsw._isIgnored(o.watchPath,a))return h(),!1;let c=this.fsw.options.followSymlinks,d;if(a.isDirectory()){let _=u.resolve(t),f=c?await realpath(t):t;if(this.fsw.closed||(d=await this._handleDir(o.watchPath,a,e,s,n,o,f),this.fsw.closed))return;_!==f&&f!==void 0&&this.fsw._symlinkPaths.set(_,f);}else if(a.isSymbolicLink()){let _=c?await realpath(t):t;if(this.fsw.closed)return;let f=u.dirname(o.watchPath);if(this.fsw._getWatchedDir(f).add(o.watchPath),this.fsw._emit(y.ADD,o.watchPath,a),d=await this._handleDir(f,a,e,s,t,o,_),this.fsw.closed)return;_!==void 0&&this.fsw._symlinkPaths.set(u.resolve(t),_);}else d=this._handleFile(o.watchPath,a,e);return h(),d&&this.fsw._addPathCloser(t,d),!1}catch(a){if(this.fsw._handleError(a))return h(),t}}};var j="/",Kt="//",ht=".",Vt="..",Bt="string",$t=/\\/g,lt=/\/\//g,qt=/\..*\.(sw[px])$|~$|\.subl.*\.tmp/,Jt=/^\.[/\\]/;function W(r){return Array.isArray(r)?r:[r]}a(W,"arrify");var Y=a(r=>typeof r=="object"&&r!==null&&!(r instanceof RegExp),"isMatcherObject");function Qt(r){return typeof r=="function"?r:typeof r=="string"?t=>r===t:r instanceof RegExp?t=>r.test(t):typeof r=="object"&&r!==null?t=>{if(r.path===t)return true;if(r.recursive){let e=u.relative(r.path,t);return e?!e.startsWith("..")&&!u.isAbsolute(e):false}return false}:()=>false}a(Qt,"createPattern");function Xt(r){if(typeof r!="string")throw new Error("string expected");r=u.normalize(r),r=r.replace(/\\/g,"/");let t=false;return r.startsWith("//")&&(t=true),r=r.replace(lt,"/"),t&&(r="/"+r),r}a(Xt,"normalizePath");function rt(r,t,e){let i=Xt(t);for(let s=0;s<r.length;s++){let n=r[s];if(n(i,e))return true}return false}a(rt,"matchPatterns");function Zt(r,t){if(r==null)throw new TypeError("anymatch: specify first argument");let i=W(r).map(s=>Qt(s));return t==null?(s,n)=>rt(i,s,n):rt(i,t)}a(Zt,"anymatch");var nt=a(r=>{let t=W(r).flat();if(!t.every(e=>typeof e===Bt))throw new TypeError(`Non-string provided as watch path: ${t}`);return t.map(ct)},"unifyPaths"),ot=a(r=>{let t=r.replace($t,j),e=false;return t.startsWith(Kt)&&(e=true),t=t.replace(lt,j),e&&(t=j+t),t},"toUnix"),ct=a(r=>ot(u.normalize(ot(r))),"normalizePathToUnix"),at=a((r="")=>t=>typeof t=="string"?ct(u.isAbsolute(t)?t:u.join(r,t)):t,"normalizeIgnored"),te=a((r,t)=>u.isAbsolute(r)?r:u.join(t,r),"getAbsolutePath"),ee=Object.freeze(new Set),U=class{static{a(this,"DirEntry");}path;_removeWatcher;items;constructor(t,e){this.path=t,this._removeWatcher=e,this.items=new Set;}add(t){let{items:e}=this;e&&t!==ht&&t!==Vt&&e.add(t);}async remove(t){let{items:e}=this;if(!e||(e.delete(t),e.size>0))return;let i=this.path;try{await readdir(i);}catch{this._removeWatcher&&this._removeWatcher(u.dirname(i),u.basename(i));}}has(t){let{items:e}=this;if(e)return e.has(t)}getChildren(){let{items:t}=this;return t?[...t.values()]:[]}dispose(){this.items.clear(),this.path="",this._removeWatcher=S,this.items=ee,Object.freeze(this);}},se="stat",ie="lstat",G=class{static{a(this,"WatchHelper");}fsw;path;watchPath;fullWatchPath;dirParts;followSymlinks;statMethod;constructor(t,e,i){this.fsw=i;let s=t;this.path=t=t.replace(Jt,""),this.watchPath=s,this.fullWatchPath=u.resolve(s),this.dirParts=[],this.dirParts.forEach(n=>{n.length>1&&n.pop();}),this.followSymlinks=e,this.statMethod=e?se:ie;}entryPath(t){return u.join(this.watchPath,u.relative(this.watchPath,t.fullPath))}filterPath(t){let{stats:e}=t;if(e&&e.isSymbolicLink())return this.filterDir(t);let i=this.entryPath(t);return this.fsw._isntIgnored(i,e)&&this.fsw._hasReadPermissions(e)}filterDir(t){return this.fsw._isntIgnored(this.entryPath(t),t.stats)}},N=class extends EventEmitter{static{a(this,"FSWatcher");}closed;options;_closers;_ignoredPaths;_throttled;_streams;_symlinkPaths;_watched;_pendingWrites;_pendingUnlinks;_readyCount;_emitReady;_closePromise;_userIgnored;_readyEmitted;_emitRaw;_boundRemove;_nodeFsHandler;constructor(t={}){super(),this.closed=false,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=false;let e=t.awaitWriteFinish,i={stabilityThreshold:2e3,pollInterval:100},s={persistent:true,ignoreInitial:false,ignorePermissionErrors:false,interval:100,binaryInterval:300,followSymlinks:true,usePolling:false,atomic:true,...t,ignored:t.ignored?W(t.ignored):W([]),awaitWriteFinish:e===true?i:typeof e=="object"?{...i,...e}:false};st&&(s.usePolling=true),s.atomic===void 0&&(s.atomic=!s.usePolling);let n=process.env.CHOKIDAR_USEPOLLING;if(n!==void 0){let a=n.toLowerCase();a==="false"||a==="0"?s.usePolling=false:a==="true"||a==="1"?s.usePolling=true:s.usePolling=!!a;}let h=process.env.CHOKIDAR_INTERVAL;h&&(s.interval=Number.parseInt(h,10));let o=0;this._emitReady=()=>{o++,o>=this._readyCount&&(this._emitReady=S,this._readyEmitted=true,process.nextTick(()=>this.emit(m.READY)));},this._emitRaw=(...a)=>this.emit(m.RAW,...a),this._boundRemove=this._remove.bind(this),this.options=s,this._nodeFsHandler=new F(this),Object.freeze(s);}_addIgnoredPath(t){if(Y(t)){for(let e of this._ignoredPaths)if(Y(e)&&e.path===t.path&&e.recursive===t.recursive)return}this._ignoredPaths.add(t);}_removeIgnoredPath(t){if(this._ignoredPaths.delete(t),typeof t=="string")for(let e of this._ignoredPaths)Y(e)&&e.path===t&&this._ignoredPaths.delete(e);}add(t,e,i){let{cwd:s}=this.options;this.closed=false,this._closePromise=void 0;let n=nt(t);return s&&(n=n.map(h=>te(h,s))),n.forEach(h=>{this._removeIgnoredPath(h);}),this._userIgnored=void 0,this._readyCount||(this._readyCount=0),this._readyCount+=n.length,Promise.all(n.map(async h=>{let o=await this._nodeFsHandler._addToNodeFs(h,!i,void 0,0,e);return o&&this._emitReady(),o})).then(h=>{this.closed||h.forEach(o=>{o&&this.add(u.dirname(o),u.basename(e||o));});}),this}unwatch(t){if(this.closed)return this;let e=nt(t),{cwd:i}=this.options;return e.forEach(s=>{!u.isAbsolute(s)&&!this._closers.has(s)&&(i&&(s=u.join(i,s)),s=u.resolve(s)),this._closePath(s),this._addIgnoredPath(s),this._watched.has(s)&&this._addIgnoredPath({path:s,recursive:true}),this._userIgnored=void 0;}),this}close(){if(this._closePromise)return this._closePromise;this.closed=true,this.removeAllListeners();let t=[];return this._closers.forEach(e=>e.forEach(i=>{let s=i();s instanceof Promise&&t.push(s);})),this._streams.forEach(e=>e.destroy()),this._userIgnored=void 0,this._readyCount=0,this._readyEmitted=false,this._watched.forEach(e=>e.dispose()),this._closers.clear(),this._watched.clear(),this._streams.clear(),this._symlinkPaths.clear(),this._throttled.clear(),this._closePromise=t.length?Promise.all(t).then(()=>{}):Promise.resolve(),this._closePromise}getWatched(){let t={};return this._watched.forEach((e,i)=>{let n=(this.options.cwd?u.relative(this.options.cwd,i):i)||ht;t[n]=e.getChildren().sort();}),t}emitWithAll(t,e){this.emit(t,...e),t!==m.ERROR&&this.emit(m.ALL,t,...e);}async _emit(t,e,i){if(this.closed)return;let s=this.options;H&&(e=u.normalize(e)),s.cwd&&(e=u.relative(s.cwd,e));let n=[e];i!=null&&n.push(i);let h=s.awaitWriteFinish,o;if(h&&(o=this._pendingWrites.get(e)))return o.lastChange=new Date,this;if(s.atomic){if(t===m.UNLINK)return this._pendingUnlinks.set(e,[t,...n]),setTimeout(()=>{this._pendingUnlinks.forEach((a,c)=>{this.emit(...a),this.emit(m.ALL,...a),this._pendingUnlinks.delete(c);});},typeof s.atomic=="number"?s.atomic:100),this;t===m.ADD&&this._pendingUnlinks.has(e)&&(t=m.CHANGE,this._pendingUnlinks.delete(e));}if(h&&(t===m.ADD||t===m.CHANGE)&&this._readyEmitted){let a$1=a((c,d)=>{c?(t=m.ERROR,n[0]=c,this.emitWithAll(t,n)):d&&(n.length>1?n[1]=d:n.push(d),this.emitWithAll(t,n));},"awfEmit");return this._awaitWriteFinish(e,h.stabilityThreshold,t,a$1),this}if(t===m.CHANGE&&!this._throttle(m.CHANGE,e,50))return this;if(s.alwaysStat&&i===void 0&&(t===m.ADD||t===m.ADD_DIR||t===m.CHANGE)){let a=s.cwd?u.join(s.cwd,e):e,c;try{c=await stat(a);}catch{}if(!c||this.closed)return;n.push(c);}return this.emitWithAll(t,n),this}_handleError(t){let e=t&&t.code;return t&&e!=="ENOENT"&&e!=="ENOTDIR"&&(!this.options.ignorePermissionErrors||e!=="EPERM"&&e!=="EACCES")&&this.emit(m.ERROR,t),t||this.closed}_throttle(t,e,i){this._throttled.has(t)||this._throttled.set(t,new Map);let s=this._throttled.get(t);if(!s)throw new Error("invalid throttle");let n=s.get(e);if(n)return n.count++,false;let h,o=a(()=>{let c=s.get(e),d=c?c.count:0;return s.delete(e),clearTimeout(h),c&&clearTimeout(c.timeoutObject),d},"clear");h=setTimeout(o,i);let a$1={timeoutObject:h,clear:o,count:0};return s.set(e,a$1),a$1}_incrReadyCount(){return this._readyCount++}_awaitWriteFinish(t,e,i,s){let n=this.options.awaitWriteFinish;if(typeof n!="object")return;let h=n.pollInterval,o,a$1=t;this.options.cwd&&!u.isAbsolute(t)&&(a$1=u.join(this.options.cwd,t));let c=new Date,d=this._pendingWrites;function _(f){stat$1(a$1,(w,E)=>{if(w||!d.has(t)){w&&w.code!=="ENOENT"&&s(w);return}let P=Number(new Date);f&&E.size!==f.size&&(d.get(t).lastChange=P);let dt=d.get(t);P-dt.lastChange>=e?(d.delete(t),s(void 0,E)):o=setTimeout(_,h,E);});}a(_,"awaitWriteFinishFn"),d.has(t)||(d.set(t,{lastChange:c,cancelWait:a(()=>(d.delete(t),clearTimeout(o),i),"cancelWait")}),o=setTimeout(_,h));}_isIgnored(t,e){if(this.options.atomic&&qt.test(t))return true;if(!this._userIgnored){let{cwd:i}=this.options,n=(this.options.ignored||[]).map(at(i)),o=[...[...this._ignoredPaths].map(at(i)),...n];this._userIgnored=Zt(o,void 0);}return this._userIgnored(t,e)}_isntIgnored(t,e){return !this._isIgnored(t,e)}_getWatchHelpers(t){return new G(t,this.options.followSymlinks,this)}_getWatchedDir(t){let e=u.resolve(t);return this._watched.has(e)||this._watched.set(e,new U(e,this._boundRemove)),this._watched.get(e)}_hasReadPermissions(t){return this.options.ignorePermissionErrors?true:!!(Number(t.mode)&256)}_remove(t,e,i){let s=u.join(t,e),n=u.resolve(s);if(i=i??(this._watched.has(s)||this._watched.has(n)),!this._throttle("remove",s,100))return;!i&&this._watched.size===1&&this.add(t,e,true),this._getWatchedDir(s).getChildren().forEach(f=>this._remove(s,f));let a=this._getWatchedDir(t),c=a.has(e);a.remove(e),this._symlinkPaths.has(n)&&this._symlinkPaths.delete(n);let d=s;if(this.options.cwd&&(d=u.relative(this.options.cwd,s)),this.options.awaitWriteFinish&&this._pendingWrites.has(d)&&this._pendingWrites.get(d).cancelWait()===m.ADD)return;this._watched.delete(s),this._watched.delete(n);let _=i?m.UNLINK_DIR:m.UNLINK;c&&!this._isIgnored(s)&&this._emit(_,s),this._closePath(s);}_closePath(t){this._closeFile(t);let e=u.dirname(t);this._getWatchedDir(e).remove(u.basename(t));}_closeFile(t){let e=this._closers.get(t);e&&(e.forEach(i=>i()),this._closers.delete(t));}_addPathCloser(t,e){if(!e)return;let i=this._closers.get(t);i||(i=[],this._closers.set(t,i)),i.push(e);}_readdirp(t,e){if(this.closed)return;let i={type:m.ALL,alwaysStat:true,lstat:true,...e,depth:0},s=Q(t,i);return this._streams.add(s),s.once(et,()=>{s=void 0;}),s.once(z,()=>{s&&(this._streams.delete(s),s=void 0);}),s}};function re(r,t={}){let e=new N(t);return e.add(r),e}a(re,"watch");var be={watch:re,FSWatcher:N};
4
4
  export{N as FSWatcher,G as WatchHelper,be as default,re as watch};
@@ -0,0 +1,4 @@
1
+ #!/usr/bin/env node
2
+ import {createRequire}from'node:module';import {G}from'./chunk-BH2WXCLS.mjs';import {d}from'./chunk-SPHWZS5P.mjs';import {a}from'./chunk-L7O2RSTN.mjs';import {readFile}from'fs/promises';import {join}from'path';globalThis.require=createRequire(import.meta.url);
3
+ async function l(o){try{let i=await readFile(join(o,"package.json"),"utf-8"),t=JSON.parse(i).knarr;if(!t||typeof t!="object")return {};let r={},n=t;return typeof n.buildCmd=="string"&&(r.buildCmd=n.buildCmd),Array.isArray(n.watchPatterns)&&(r.watchPatterns=n.watchPatterns.filter(u=>typeof u=="string")),typeof n.debounce=="number"&&Number.isFinite(n.debounce)&&(r.debounce=n.debounce),typeof n.cooldown=="number"&&Number.isFinite(n.cooldown)&&(r.cooldown=n.cooldown),typeof n.historyLimit=="number"&&Number.isFinite(n.historyLimit)&&(r.historyLimit=Math.max(0,Math.floor(n.historyLimit))),typeof n.notify=="boolean"&&(r.notify=n.notify),d(`[config] Loaded knarr config from package.json: ${JSON.stringify(r)}`),r}catch{return {}}}a(l,"loadKnarrConfig");async function g(o,i){if(!i)return false;let e=await readFile(o,"utf-8"),t=JSON.parse(e),r=t.knarr;if(r&&typeof r=="object"&&typeof r.buildCmd=="string")return false;t.knarr=r&&typeof r=="object"?r:{},t.knarr.buildCmd=i;let n=e.match(/^(\s+)"/m)?.[1]||" ";return await G(o,JSON.stringify(t,null,n)+`
4
+ `),true}a(g,"setKnarrBuildCmdIfMissing");export{l as a,g as b};
@@ -0,0 +1,3 @@
1
+ #!/usr/bin/env node
2
+ import {createRequire}from'node:module';import {a}from'./chunk-G7HFTV5Y.mjs';import {F,t}from'./chunk-BH2WXCLS.mjs';import {c,a as a$1}from'./chunk-L7O2RSTN.mjs';import {readFile,readdir}from'fs/promises';import {join,dirname,relative,resolve}from'path';globalThis.require=createRequire(import.meta.url);
3
+ var w=c(a(),1);async function v(n){let t=n;for(;;){if(await F(join(t,"pnpm-workspace.yaml")))return t;let e=dirname(t);if(e===t)return null;t=e;}}a$1(v,"findWorkspaceRoot");async function K(n){return await v(n)??await b(n)}a$1(K,"findWorkspacePackageRoot");async function T(n){let t={default:{},named:{}},e=join(n,"pnpm-workspace.yaml"),a;try{a=await readFile(e,"utf-8");}catch{return t}let i=a.split(/\r?\n/),s="top",r="";for(let o of i){if(o.trim()===""||o.trim().startsWith("#"))continue;let l=o.length-o.trimStart().length;if(l===0){if(o.startsWith("catalog:")){s="default-catalog";continue}if(o.startsWith("catalogs:")){s="named-catalogs";continue}s="top";continue}if(s==="default-catalog"&&l>=2){let c=S(o);c&&(t.default[c[0]]=c[1]);continue}if(s==="named-catalogs"&&l>=2&&l<4){let c=o.trim();c.endsWith(":")&&(r=c.slice(0,-1),t.named[r]={},s="named-catalog-entries");continue}if(s==="named-catalog-entries"&&l>=4){let c=S(o);c&&r&&(t.named[r][c[0]]=c[1]);continue}if(s==="named-catalog-entries"&&l>=2&&l<4){let c=o.trim();c.endsWith(":")?(r=c.slice(0,-1),t.named[r]={}):s="named-catalogs";continue}}return t}a$1(T,"parseCatalogs");async function N(n){let t=await v(n);if(t){let a=await O(t),i=a.filter(r=>!r.startsWith("!")),s=a.filter(r=>r.startsWith("!")).map(r=>r.slice(1));if(i.length>0)return W(t,i,s)}let e=t??await b(n);if(!e)return [];try{let a=JSON.parse(await readFile(join(e,"package.json"),"utf-8")),i=Array.isArray(a.workspaces)?a.workspaces:a.workspaces?.packages??[];if(i.length===0)return [];let s=i.filter(o=>!o.startsWith("!")),r=i.filter(o=>o.startsWith("!")).map(o=>o.slice(1));return W(e,s,r)}catch{return []}}a$1(N,"findWorkspacePackages");async function O(n){let t=join(n,"pnpm-workspace.yaml"),e;try{e=await readFile(t,"utf-8");}catch{return []}let a=[],i=false;for(let s of e.split(/\r?\n/)){let r=s.trim();if(r===""||r.startsWith("#"))continue;let o=s.length-s.trimStart().length;if(o===0){i=r==="packages:";continue}if(i&&o>=2){let l=r.match(/^-\s+["']?([^"']+)["']?$/);l&&a.push(l[1]);}}return a}a$1(O,"parsePnpmWorkspacePackages");async function b(n){let t=n;for(;;){try{if(JSON.parse(await readFile(join(t,"package.json"),"utf-8")).workspaces)return t}catch{}let e=dirname(t);if(e===t)return null;t=e;}}a$1(b,"findPackageJsonWorkspaceRoot");async function W(n,t$1,e=[]){let a=[];for(let r of t$1)if(r.includes("*")){let o=r.split("/"),l=n,c=[],y=false;for(let g of o)y||g.includes("*")?(y=true,c.push(g)):l=join(l,g);if(c.length===1&&c[0]==="*")try{let g=await readdir(l,{withFileTypes:!0});for(let k of g)if(k.isDirectory()){let u=join(l,k.name);await F(join(u,"package.json"))&&a.push(u);}}catch{}else {let g=(0, w.default)(r),k=await G(n,8);for(let u of k){let M=t(relative(n,u));g(M)&&await F(join(u,"package.json"))&&a.push(u);}}}else {let o=resolve(n,r);await F(join(o,"package.json"))&&a.push(o);}let i=[...new Set(a)];if(e.length===0)return i;let s=(0, w.default)(e);return i.filter(r=>{let o=t(relative(n,r));return !s(o)})}a$1(W,"resolveWorkspaceGlobs");async function G(n,t){if(t<=0)return [];let e=[];try{let a=await readdir(n,{withFileTypes:!0});for(let i of a){if(!i.isDirectory()||i.name==="node_modules"||i.name===".git")continue;let s=join(n,i.name);e.push(s),e.push(...await G(s,t-1));}}catch{}return e}a$1(G,"collectDirs");async function z(n){let t=await N(n),e=[];for(let s of t)try{let r=JSON.parse(await readFile(join(s,"package.json"),"utf-8"));r.name&&r.version&&e.push({name:r.name,version:r.version,dir:s,pkg:r});}catch{}let a=new Set(e.map(s=>s.name)),i=new Map;for(let s of e){let r=new Set;for(let o of ["dependencies","devDependencies"]){let l=s.pkg[o];if(l)for(let c of Object.keys(l))a.has(c)&&r.add(c);}i.set(s.name,r);}return {packages:e,adjacency:i}}a$1(z,"buildWorkspaceGraph");function E(n){let t=n.packages.filter(i=>!i.pkg.private),e=new Set(t.map(i=>i.name)),a=new Map;for(let i of t){let s=n.adjacency.get(i.name)??new Set;a.set(i.name,new Set([...s].filter(r=>e.has(r))));}return {packages:t,adjacency:a}}a$1(E,"filterPublishableWorkspaceGraph");function V(n){let t=new Map;for(let e of n.keys())t.set(e,new Set);for(let[e,a]of n)for(let i of a){let s=t.get(i);s||(s=new Set,t.set(i,s)),s.add(e);}return t}a$1(V,"buildReverseAdjacency");function S(n){let t=n.trim(),e=t.indexOf(":");if(e<=0)return null;let a=t.slice(0,e).trim(),i=q(t.slice(e+1)).trim();if(!a||!i)return null;let s=a.replace(/^["']|["']$/g,""),r=i.replace(/^["']|["']$/g,"");return [s,r]}a$1(S,"parseKeyValue");function q(n){let t=null;for(let e=0;e<n.length;e++){let a=n[e];if((a==='"'||a==="'")&&n[e-1]!=="\\"){t=t===a?null:t??a;continue}if(!t&&a==="#"&&(e===0||/\s/.test(n[e-1])))return n.slice(0,e)}return n}a$1(q,"stripYamlInlineComment");export{v as a,K as b,T as c,N as d,z as e,E as f,V as g};
@@ -0,0 +1,15 @@
1
+ #!/usr/bin/env node
2
+ import {createRequire}from'node:module';import {a as a$4}from'./chunk-COI7GWH3.mjs';import {b as b$2,c}from'./chunk-QHNHLR6T.mjs';import {b as b$3,a as a$5,e}from'./chunk-ABG6UD3X.mjs';import {a as a$2}from'./chunk-XDWZZBCM.mjs';import {b as b$6}from'./chunk-WBTSRLB6.mjs';import {b as b$5,a as a$9,c as c$2,d as d$3}from'./chunk-UCSYKFEZ.mjs';import {g as g$1}from'./chunk-N3B2JO4H.mjs';import {a as a$8}from'./chunk-WN3DOKIM.mjs';import {a as a$a}from'./chunk-MN4DV2NO.mjs';import {a as a$1}from'./chunk-HVN6HBWZ.mjs';import {a as a$3,g,h}from'./chunk-FSVETLZK.mjs';import {a as a$6}from'./chunk-U6O35NZ7.mjs';import {f,d,h as h$1}from'./chunk-QFHYSC3K.mjs';import {b,F,r,f as f$1,a as a$7}from'./chunk-BH2WXCLS.mjs';import {d as d$1,a as a$b}from'./chunk-E3HZCU3S.mjs';import {b as b$4,c as c$1,d as d$2}from'./chunk-SPHWZS5P.mjs';import {b as b$1}from'./chunk-OQDZJP55.mjs';import {a}from'./chunk-L7O2RSTN.mjs';import {spawn}from'child_process';import {resolve,join,basename}from'path';import {platform}from'os';import {readFile}from'fs/promises';globalThis.require=createRequire(import.meta.url);
3
+ async function Te(i){let a=i.timer??new a$1,e=resolve("."),{name:n,version:r$1}=de(i.packageArg),s,l=null,o=false,c$1=false;if(ae(n,i.packageArg),r$1)try{b(r$1);}catch{a$2(`Invalid package version "${r$1}" in "${i.packageArg}".`),process.exit(1);}let u=await a$3(e);if((await g(e)||u==="yarn"&&await h(e))&&(b$1.error(`Yarn PnP mode is not compatible with knarr.
4
+
5
+ knarr works by copying files into node_modules/, but PnP eliminates
6
+ node_modules/ entirely. To use knarr with Yarn Berry, add one of these
7
+ to .yarnrc.yml:
8
+
9
+ nodeLinker: node-modules
10
+ nodeLinker: pnpm
11
+
12
+ Then run: yarn install`),process.exit(1)),i.from){let b=resolve(i.from);s=b;let x=await ce(b,{build:i.build,skipBuild:i.skipBuild,yes:i.yes??false});l=x.buildCmd,o=x.ran,c$1=x.skipped,b$1.info(`Publishing from ${b}...`),await a$4(b);}let d$2=r$1?await b$2(n,r$1):await c(n);if(!d$2){let b=r$1?`@${r$1}`:"";a$2(`Package "${n}${b}" not found in store. Run 'knarr publish' in the package directory first, or use --from <path>.`),process.exit(1);}!await F(r(e))&&(await g$1(e,u),b$1.success("Auto-initialized knarr (consumer mode)")),b$1.info(`Detected package manager: ${u}`);let k=await f(e,n);k&&(k.version===d$2.version?b$1.info(`Updating ${n}@${d$2.version} (already linked)`):b$1.info(`Updating ${n}: ${k.version} -> ${d$2.version}`));let M=k?k.backupExists:await b$3(e,n,u);!k&&M&&b$1.info(`Backed up existing ${n} installation`),await f$1(e,n,d$2.version),await me(e,n,u),await ue(d$2,e,u,i.yes??false);let g$2=await a$5(d$2,e,u);b$1.success(`Linked ${n}@${d$2.version} -> node_modules/${n} (${g$2.copied} files copied, ${g$2.skipped} unchanged)`),g$2.binLinks>0&&b$1.info(`Created ${g$2.binLinks} bin link(s)`);let te={version:d$2.version,contentHash:d$2.meta.contentHash,linkedAt:new Date().toISOString(),sourcePath:d$2.meta.sourcePath,backupExists:M,packageManager:u,buildId:d$2.meta.buildId??""};await d(e,n,te),await h$1(n,e);let h$2=s?[`cd ${s} && knarr dev`]:[];h$2.length>0&&b$1.info(`Next: ${h$2[0]}`),b$1.info(`Done in ${a.elapsed()}`);let j={package:n,version:d$2.version,copied:g$2.copied,skipped:g$2.skipped,binLinks:g$2.binLinks,elapsed:a.elapsedMs(),buildCmd:l,buildRan:o,buildSkipped:c$1,nextSteps:h$2};return i.emitOutput!==false&&a$6(j),b$4()&&d$1(),j}a(Te,"addPackageToConsumer");async function We(i){let a=resolve(i);await F(a)||(a$2(`Source path not found: ${a}`),process.exit(1));let e=join(a,"package.json");await F(e)||(a$2(`No package.json found at ${e}. Pass a package directory to 'knarr use'.`),process.exit(1));let n;try{n=JSON.parse(await readFile(e,"utf-8"));}catch(s){a$2(`Could not read package.json at ${e}: ${s instanceof Error?s.message:String(s)}`),process.exit(1);}(!n||typeof n!="object"||typeof n.name!="string")&&(a$2(`package.json at ${e} must include a package name for 'knarr use'.`),process.exit(1));let r=n.name.trim();return ae(r,r),r}a(We,"readPackageNameFromSource");function de(i){if(i.startsWith("@")){let e=i.indexOf("/");if(e>0){let n=i.indexOf("@",e);if(n>e)return {name:i.slice(0,n),version:i.slice(n+1)}}return {name:i,version:null}}let a=i.lastIndexOf("@");return a>0?{name:i.slice(0,a),version:i.slice(a+1)}:{name:i,version:null}}a(de,"parsePackageArg");function ae(i,a){try{a$7(i);}catch{a$2(`Invalid package name "${a}". Use format: package-name or @scope/package-name.`),process.exit(1);}}a(ae,"validatePackageNameArg");async function ce(i,a){if(a.skipBuild)return a.build&&b$1.warn("--skip-build was provided; ignoring --build"),{buildCmd:null,ran:false,skipped:true};let e=a.build,n=!!e;if(!e){let s=await a$3(i);e=await a$8(i,s)??void 0;}if(!e)return {buildCmd:null,ran:false,skipped:false};if(!n&&!a.yes&&!c$1()){let s=await b$1.prompt(`Run detected build command before publishing? (${e})`,{type:"confirm",initial:true});if(!s||typeof s=="symbol")return b$1.info("Skipping build before publish"),{buildCmd:e,ran:false,skipped:true}}else if(!n&&c$1()&&!a.yes)return d$2(`[add] Detected build command but skipping in json mode: ${e}`),{buildCmd:e,ran:false,skipped:true};return b$1.info(b$4()?`[dry-run] Would run build command: ${e}`:`Running build command: ${e}`),await fe(e,i)||(a$2(`Build command failed: ${e}`),process.exit(1)),{buildCmd:e,ran:true,skipped:false}}a(ce,"maybeBuildSource");async function ue(i,a,e$1,n){let r=await e(i,a,e$1);if(r.length===0)return;if(c$1()){d$2(`[add] Missing transitive deps (json mode): ${r.join(", ")}`);return}if(n){let l=b$5(e$1,r),o=a$9(l);b$1.info(b$4()?`[dry-run] Would install missing dependencies: ${r.join(", ")}`:`Installing missing dependencies: ${r.join(", ")}`);let c=await A(l,a);c&&!b$4()?b$1.success("Installed missing dependencies"):c||b$1.warn(`Install failed. Run manually: ${o}`);return}if(await b$1.prompt(`Install ${r.length} missing dependencies? (${r.join(", ")})`,{type:"confirm",initial:true})){let l=b$5(e$1,r),o=a$9(l),c=await A(l,a);c&&!b$4()?b$1.success("Installed missing dependencies"):c||b$1.warn(`Install failed. Run manually: ${o}`);}else b$1.warn(`Missing transitive dependencies: ${r.join(", ")}
13
+ Run: ${a$9(b$5(e$1,r))}`);}a(ue,"handleMissingDeps");async function me(i,a,e){let n=await a$a(i);if(n.type==="next"&&n.configFile){let o=await b$6(n.configFile,a);o.modified?b$1.success(`Added ${a} to transpilePackages in ${basename(n.configFile)}`):o.error&&b$1.info(`Add to next.config manually: transpilePackages: ['${a}']`);}else if(n.type==="vite"&&n.configFile){let{addKnarrVitePlugin:o}=await import('./vite-config-XOGAKYGQ.mjs'),c=await o(n.configFile);if(c.modified){b$1.success(`Added knarr plugin to ${basename(n.configFile)}`);let u=c$2(e,"knarr"),d=a$9(u);b$1.info(b$4()?"[dry-run] Would install knarr as devDependency":"Installing knarr as devDependency...");let v=await A(u,i);v&&!b$4()?b$1.success("Installed knarr"):v||b$1.warn(`Install failed. Run manually: ${d}`);}else c.error&&b$1.info(`Add manually:
14
+ import knarr from "knarr/vite"
15
+ plugins: [knarr()]`);}let{findTailwindCss:r,addTailwindSource:s}=await import('./tailwind-source-HCTY2XDU.mjs'),l=await r(i);if(l){let o=await s(l,a,i);o.modified?b$1.success(`Added @source for ${a} to ${basename(l)}`):o.error&&b$1.info(`Add to your CSS manually: @source "../node_modules/${a}";`);}}a(me,"configureBundler");function A(i,a){return d$3(i,a)}a(A,"runInstallCommand");function fe(i,a){return b$4()?(a$b({type:"command-skip",path:a,detail:i}),Promise.resolve(true)):new Promise(e=>{let n=platform()==="win32",l=spawn(n?"cmd":"sh",[n?"/c":"-c",i],{cwd:a,stdio:"inherit"});l.on("close",o=>e(o===0)),l.on("error",()=>e(false));})}a(fe,"runShellCommand");export{Te as a,We as b};
@@ -0,0 +1,3 @@
1
+ #!/usr/bin/env node
2
+ import {createRequire}from'node:module';import {a as a$2}from'./chunk-COI7GWH3.mjs';import {b}from'./chunk-QHNHLR6T.mjs';import {a as a$5}from'./chunk-ABG6UD3X.mjs';import {a as a$4}from'./chunk-XDWZZBCM.mjs';import {a as a$6}from'./chunk-3SXN6MQL.mjs';import {a as a$9}from'./chunk-WN3DOKIM.mjs';import {a as a$1}from'./chunk-HVN6HBWZ.mjs';import {b as b$3,a as a$8}from'./chunk-FSVETLZK.mjs';import {a as a$3}from'./chunk-U6O35NZ7.mjs';import {j,f,d as d$1}from'./chunk-QFHYSC3K.mjs';import {v}from'./chunk-BH2WXCLS.mjs';import {a as a$7}from'./chunk-E3HZCU3S.mjs';import {b as b$2,d}from'./chunk-SPHWZS5P.mjs';import {b as b$1}from'./chunk-OQDZJP55.mjs';import {a}from'./chunk-L7O2RSTN.mjs';import {readFile}from'fs/promises';import {join}from'path';globalThis.require=createRequire(import.meta.url);
3
+ var Y=v(4);async function fe(n,s={}){let a=new a$1,e=await a$2(n,{runScripts:s.runScripts,force:s.force,historyLimit:s.historyLimit});if(e.skipped){let t=await b(e.name,e.version);if(t)return q(t,{force:s.force,timer:a,noConsumersStatus:"available",noChange:true,skippedReason:"content unchanged"});{let o=R(e.name,e.version,e.buildId,a.elapsedMs());return o.noChange=true,o.skippedReason="content unchanged",b$1.info(`No changes to push for ${e.name}@${e.version}`+(e.buildId?` [${e.buildId}]`:"")),a$3(o),o}}if(b$2()){let t=await j(e.name),o=R(e.name,e.version,e.buildId,a.elapsedMs());return o.skippedReason="dry-run",o.consumers=t.length,o.skippedConsumers=t.length,o.consumerResults=t.map(m=>({consumerPath:m,status:"skipped",copied:0,removed:0,skipped:0,binLinks:0,cacheInvalidations:0,reason:"dry-run publish preview; store entry was not written"})),b$1.info(`Dry-run: would publish ${e.name}@${e.version}`+(e.buildId?` [${e.buildId}]`:"")+". Skipping consumer injection preview because the store entry was not written."),a$3(o),o}let i=await b(e.name,e.version);if(!i){a$4(`Failed to read store entry for ${e.name}@${e.version} after publish`);let t=R(e.name,e.version,e.buildId,a.elapsedMs());return t.failedConsumers=1,t.consumerResults=[{consumerPath:n,status:"failed",copied:0,removed:0,skipped:0,binLinks:0,cacheInvalidations:0,error:"store entry missing after publish"}],t}return q(i,{force:s.force,timer:a,noConsumersStatus:"published"})}a(fe,"doPush");async function q(n,s={}){let a=s.timer??new a$1,e=await j(n.name);if(e.length===0){let d=s.noConsumersStatus??"available";b$1.success(`${n.name}@${n.version} ${d} in store`),b$1.info("No consumers registered yet. Run 'knarr add "+n.name+"' in a consumer project to start receiving pushes.");let h=R(n.name,n.version,n.meta.buildId??"",a.elapsedMs());return h.noChange=s.noChange??false,h.skippedReason=s.skippedReason,s.emitOutput!==false&&a$3(h),h}let i=0,t=0,o=0,m=0,r=0,f$1=0,p=0,g=0,C=await Promise.all(e.map(d$2=>Y(async()=>{let h=await f(d$2,n.name);if(!h)return d(`[push] No link found for ${n.name} in ${d$2}, skipping`),{consumerPath:d$2,status:"skipped",copied:0,removed:0,skipped:0,binLinks:0,cacheInvalidations:0,reason:"not linked in consumer state"};try{let w=await b$3(d$2),y=w.source==="default"?h.packageManager:w.packageManager,S=await a$5(n,d$2,y,{force:s.force});return await d$1(d$2,n.name,{...h,contentHash:n.meta.contentHash,linkedAt:new Date().toISOString(),buildId:n.meta.buildId??"",packageManager:y}),{consumerPath:d$2,status:"updated",copied:S.copied,removed:S.removed,skipped:S.skipped,binLinks:S.binLinks,cacheInvalidations:S.cacheInvalidations}}catch(w){let y=w instanceof Error?w.message:String(w);return b$1.warn(`Failed to push to ${d$2}: ${y}`),{consumerPath:d$2,status:"failed",copied:0,removed:0,skipped:0,binLinks:0,cacheInvalidations:0,error:y}}})));for(let d of C)d.status==="updated"?(i+=d.copied,t+=d.removed,o+=d.skipped,m+=d.binLinks,r+=d.cacheInvalidations,f$1++):d.status==="skipped"?p++:g++;let b=n.meta.buildId??"",$=b?` [${b}]`:"",c=[`${i} copied`,`${t} removed`,`${o} unchanged`];m>0&&c.push(`${m} bin links`),r>0&&c.push(`${r} cache invalidations`),p>0&&c.push(`${p} consumer(s) skipped`),g>0&&c.push(`${g} failed`);let k=g>0||p>0?`${f$1}/${e.length} consumer(s)`:`${f$1} consumer(s)`,W=`Pushed ${n.name}@${n.version}${$} to ${k} in ${a.elapsed()} (${c.join(", ")})`;g>0?b$1.warn(W):b$1.success(W);let I={name:n.name,version:n.version,buildId:b,noChange:false,consumers:e.length,updatedConsumers:f$1,failedConsumers:g,skippedConsumers:p,copied:i,removed:t,skipped:o,binLinks:m,cacheInvalidations:r,elapsed:a.elapsedMs(),consumerResults:C};return I.noChange=s.noChange??false,I.skippedReason=s.skippedReason,s.emitOutput!==false&&a$3(I),I}a(q,"pushStoreEntry");function R(n,s,a,e){return {name:n,version:s,buildId:a,noChange:false,consumers:0,updatedConsumers:0,failedConsumers:0,skippedConsumers:0,copied:0,removed:0,skipped:0,binLinks:0,cacheInvalidations:0,elapsed:e,consumerResults:[]}}a(R,"createEmptySummary");function z(n){if(!n)return;let s=parseInt(n,10);return Number.isFinite(s)?s:void 0}a(z,"parseMs");async function ge(n,s,a$1){let{startWatcher:e}=await import('./watcher-KOLIXRUG.mjs'),i=await a$6(n),{buildCmd:t,patterns:o}=await V(n,s,i),m=s.notify??i.notify??false,r=await e(n,{patterns:o,buildCmd:t,debounce:z(s.debounce)??i.debounce,cooldown:z(s.cooldown)??i.cooldown,notify:m},async()=>{await a$1();});await new Promise(f=>{let p=a(async()=>{b$1.info("Stopping watcher..."),await r.close(),f();},"cleanup");process.once("SIGINT",p),process.once("SIGTERM",p);});}a(ge,"startWatchMode");async function Z(n,s,a){let e=a??await a$6(n),{buildCmd:i}=await V(n,s,e);if(!i)return true;if(b$2())return a$7({type:"command-skip",path:n,detail:i}),true;let{runBuildCommand:t}=await import('./watcher-KOLIXRUG.mjs'),o=await t(i,n);return o||b$1.warn("Initial build failed; skipping initial push. Watch mode will continue."),o}a(Z,"runInitialWatchBuild");async function he(n,s){let{buildReverseAdjacency:a,buildWorkspaceGraph:e,filterPublishableWorkspaceGraph:i}=await import('./workspace-T6PNO4L3.mjs'),{topoSort:t,CycleError:o}=await import('./topo-sort-ZNGR6D7M.mjs'),m=await e(n),r=i(m);if(r.packages.length===0)return {canPush:true,failedPackages:new Set,skippedPackages:new Set};let f;try{f=t(r.adjacency);}catch(c){if(c instanceof o)return b$1.error(`Cannot build workspace before watch: ${c.message}`),{canPush:false,failedPackages:new Set(r.packages.map(k=>k.name)),skippedPackages:new Set};throw c}let p=new Map(r.packages.map(c=>[c.name,c.dir])),g=a(r.adjacency),C=new Set,b=new Set,$=new Set;for(let c of f){let k=p.get(c);if(!k)continue;if($.has(c)){b.add(c),d(`[watch] Skipping initial build for ${c}: dependency build failed`);continue}await Z(k,s)||(C.add(c),Q(c,g,$));}return {canPush:true,failedPackages:C,skippedPackages:b}}a(he,"runInitialWorkspaceWatchBuilds");function Q(n,s,a){for(let e of s.get(n)??[])a.has(e)||(a.add(e),Q(e,s,a));}a(Q,"markTransitiveDependentsBlocked");async function V(n,s,a){let e=s.build,i=a?.watchPatterns;if(!s.build){if(!s["skip-build"])if(a?.buildCmd)e=a.buildCmd,b$1.info(`Using build command from config: ${e}`);else {let t=await a$8(n),o=await a$9(n,t);o&&(e=o,b$1.info(`Auto-detected build command: ${o}`));}}if(e&&!i){let{exists:t}=await import('./fs-NU36NNEG.mjs'),o=["src","lib","source","app","pages","components"],m=(await Promise.all(o.map(async r=>({dir:r,exists:await t(join(n,r))})))).filter(r=>r.exists).map(r=>r.dir);i=m.length>0?m:["src","lib"],d(`[watch] Using source patterns with build command: ${i.join(", ")}`);}else if(e&&i)d(`[watch] Using configured watch patterns with build command: ${i.join(", ")}`);else {b$1.info("No build command detected \u2014 watching output directories directly");try{let t=JSON.parse(await readFile(join(n,"package.json"),"utf-8"));t.files&&t.files.length>0?(i=t.files,b$1.info(`Watching from package.json "files": ${i.join(", ")}`)):b$1.warn('No "files" field in package.json \u2014 falling back to watching src/ and lib/. Add a "files" field or use --build to specify a build command.');}catch(t){d(`[watch] Could not read package.json: ${t instanceof Error?t.message:String(t)}`);}}return {buildCmd:e,patterns:i}}a(V,"resolveWatchConfig");async function be(n,s,a){let e=!s["no-cascade"],{WatchOrchestrator:i}=await import('./watch-orchestrator-N6HZUDS3.mjs');await new i(e).start(n,s,a);}a(be,"startMultiWatchMode");export{fe as a,q as b,ge as c,Z as d,he as e,V as f,be as g};
@@ -0,0 +1,22 @@
1
+ #!/usr/bin/env node
2
+ import {createRequire}from'node:module';import {b as b$2}from'./chunk-MN4DV2NO.mjs';import {b as b$3,g,h,c,d as d$1}from'./chunk-FSVETLZK.mjs';import {t,x,F,C,D,A as A$1,s,I,u}from'./chunk-BH2WXCLS.mjs';import {a as a$1}from'./chunk-E3HZCU3S.mjs';import {b as b$1,d}from'./chunk-SPHWZS5P.mjs';import {b}from'./chunk-OQDZJP55.mjs';import {a}from'./chunk-L7O2RSTN.mjs';import {readFile,mkdir,writeFile,rm,symlink,chmod,lstat,readlink,realpath,readdir}from'fs/promises';import {join,resolve,sep,relative,dirname,isAbsolute}from'path';import {platform}from'os';globalThis.require=createRequire(import.meta.url);
3
+ var On=/[\x00-\x1F\x7F]/,Bn=/^[A-Za-z0-9._+-]+$/;function pn(t){return t&&Bn.test(t)?t:"node"}a(pn,"safeInterpreter");function Cn(t){let n=t.split(/\r?\n/,1)[0]?.trim();if(!n?.startsWith("#!"))return "node";let r=n.slice(2).trim().split(/\s+/).filter(Boolean);if(r.length===0)return "node";let i=r[0].replace(/\\/g,"/").split("/").pop();if(i==="env"){let o=r.slice(1),a=o[0]==="-S"?o[1]:o[0];return pn(a)}return pn(i)}a(Cn,"parseShebangInterpreter");async function Tn(t){try{return Cn(await readFile(t,"utf-8"))}catch{return "node"}}a(Tn,"readBinInterpreter");function _(t,n,e=""){if(!n||n==="."||n===".."||On.test(n)||n.includes("/")||n.includes("\\")||n.includes(":"))return null;let r=join(t,`${n}${e}`),i=resolve(t),o=resolve(r);return o!==i&&o.startsWith(i+sep)?r:null}a(_,"resolveBinPath");function yn(t){return t.bin?typeof t.bin=="string"?{[t.name.startsWith("@")?t.name.split("/")[1]:t.name]:t.bin}:t.bin:{}}a(yn,"resolveBinEntries");async function Q(t$1,n,e){let r=yn(e);if(Object.keys(r).length===0)return 0;let i=join(t$1,"node_modules",".bin"),o=Object.entries(r).map(([g,E])=>({binName:g,binPath:E,linkPath:_(i,g),cmdPath:_(i,g,".cmd"),ps1Path:_(i,g,".ps1")})).filter(g=>!g.linkPath||!g.cmdPath||!g.ps1Path?(b.warn(`bin name "${g.binName}" is not safe, skipping`),false):true),a=join(t$1,"node_modules",n),s=resolve(a),l=o.filter(({binName:g,binPath:E})=>{let h=resolve(join(a,E));return h.startsWith(s+sep)||h===s?true:(b.warn(`bin "${g}" points outside package directory, skipping`),false)});if(l.length===0)return 0;if(b$1()){for(let{linkPath:g}of l)a$1({type:"bin-link",path:g,detail:n});return d(`[dry-run] would create ${l.length} bin link(s) for ${n}`),l.length}await mkdir(i,{recursive:true});let d$1=platform()==="win32",p=0;for(let{binName:g,binPath:E,linkPath:h,cmdPath:u,ps1Path:w}of l){let R=join(a,E),P=t(relative(i,R)),D=await Tn(R);if(d$1){let k=P.replace(/\//g,"\\"),v=`@ECHO off\r
4
+ GOTO start\r
5
+ :find_dp0\r
6
+ SET dp0=%~dp0\r
7
+ EXIT /b\r
8
+ :start\r
9
+ CALL :find_dp0\r
10
+ ${D} "%dp0%\\${k}" %*\r
11
+ `;await writeFile(u,v);let En=`#!/usr/bin/env pwsh
12
+ $basedir=Split-Path $MyInvocation.MyCommand.Definition -Parent
13
+ & ${D} "$basedir/${P}" $args
14
+ exit $LASTEXITCODE
15
+ `;await writeFile(w,En);let Dn=`#!/bin/sh
16
+ basedir=$(dirname "$0")
17
+ exec ${D} "$basedir/${P}" "$@"
18
+ `;await writeFile(h,Dn);}else {try{await rm(h,{force:!0});}catch{}try{await symlink(P,h),await chmod(R,493);}catch(k){if(x(k)&&(k.code==="EPERM"||k.code==="EACCES")){d(`[bin-linker] Symlink failed (${k.code}), using shell wrapper for ${g}`);let v=`#!/bin/sh
19
+ basedir=$(dirname "$0")
20
+ exec ${D} "$basedir/${P}" "$@"
21
+ `;await writeFile(h,v),await chmod(h,493);}else throw k}}p++;}return p}a(Q,"createBinLinks");async function A(t,n){let e=yn(n),r=join(t,"node_modules",".bin"),i=Object.keys(e).map(s=>({binName:s,linkPath:_(r,s),cmdPath:_(r,s,".cmd"),ps1Path:_(r,s,".ps1")})).filter(s=>!!s.linkPath&&!!s.cmdPath&&!!s.ps1Path);if(b$1()){for(let{linkPath:s}of i)a$1({type:"bin-unlink",path:s});d(`[dry-run] would remove ${i.length} bin link(s)`);return}let o=platform()==="win32",a=join(t,"node_modules",n.name);for(let{linkPath:s,cmdPath:l,ps1Path:d}of i)try{await Z(r,s,a)&&await rm(s,{force:!0}),o&&(await Z(r,l,a)&&await rm(l,{force:!0}),await Z(r,d,a)&&await rm(d,{force:!0}));}catch{}}a(A,"removeBinLinks");async function Z(t$1,n,e){let r;try{r=await lstat(n);}catch(l){if(x(l)&&l.code==="ENOENT")return false;throw l}let i=resolve(e);if(r.isSymbolicLink()){let l=await readlink(n),d=resolve(t$1,l);return d===i||d.startsWith(i+sep)}if(!r.isFile())return false;let o=await readFile(n,"utf-8"),a=t(relative(t$1,e)),s=a.replace(/\//g,"\\");return o.includes(`${a}/`)||o.includes(`${a}"`)||o.includes(`${s}\\`)||o.includes(`${s}"`)}a(Z,"binFileBelongsToPackage");var _n={next:[".next/cache"],webpack:["node_modules/.cache"]},hn=new Map;async function $n(t){if(b$1())return d(`[dry-run] would invalidate bundler caches for ${t}`),a$1({type:"cache-invalidate",path:t}),0;let n=hn.get(t);n||(n=await b$2(t),hn.set(t,n));let e=0;for(let r of n){if(!r.type)continue;let i=_n[r.type];if(i)for(let o of i){let a=join(t,o);if(await F(a))try{await C(a),e++,d(`[inject] Invalidated ${r.type} cache: ${o}`);}catch{d(`[inject] Could not clear ${r.type} cache: ${o} (locked?)`);}}}return e}a($n,"invalidateBundlerCache");async function xt(t,n,e,r={}){let i=await W(n,t.name,e,t.version,{repairMissingLink:true});d(`[inject] ${t.name}@${t.version} \u2192 ${i}`),await D(i);let o=await j(i),{copied:a,removed:s,skipped:l}=await A$1(t.packageDir,i,{force:r.force});d(`[inject] ${a} copied, ${s} removed, ${l} skipped`);let d$1=a>0||s>0?await $n(n):0,p=await j(t.packageDir);o&&await A(n,o);let g=p?await Q(n,t.name,p):0;return g>0&&d(`[inject] Created ${g} bin link(s)`),{copied:a,removed:s,skipped:l,binLinks:g,cacheInvalidations:d$1}}a(xt,"inject");async function Ot(t,n,e){let r=await W(t,n,e);if(!await F(r))return false;let i=s(t,n);return await C(i),await I(r,i),true}a(Ot,"backupExisting");async function Bt(t,n,e,r){let i=s(t,n);if(!await F(i))return false;let o=await W(t,n,e,r),a=await j(o);a&&await A(t,a),await C(o),await I(i,o);let s$1=await j(b$1()?i:o);if(s$1){let l=await Q(t,n,s$1);l>0&&d(`[restore] Restored ${l} original bin link(s) for ${n}`);}return await C(i),true}a(Bt,"restoreBackup");async function Ct(t,n,e,r){let i=u(t,n),o=await W(t,n,e,r),a=await j(o);a&&await A(t,a),await C(o),resolve(o)!==resolve(i)&&await C(i);}a(Ct,"removeInjected");async function Tt(t,n,e){let r=await j(t.packageDir);if(!r)return [];let i={...r.dependencies,...Object.fromEntries(Object.entries(r.peerDependencies??{}).filter(([s])=>!r.peerDependenciesMeta?.[s]?.optional))};if(Object.keys(i).length===0)return [];let o=Object.keys(i);return (await Promise.all(o.map(async s=>({dep:s,installed:await Yn(s,t,n,e)})))).filter(s=>!s.installed).map(s=>s.dep)}a(Tt,"checkMissingDeps");async function Yn(t,n,e,r){if(await F(join(e,"node_modules",t)))return true;if(!r)return false;let i=await W(e,n.name,r,n.version,{warnOnFallback:false});return An(i,t)}a(Yn,"isDependencyInstalledForPackage");async function An(t,n){let r=await realpath(t).catch(i=>{if(x(i)&&i.code==="ENOENT")return t;throw i});for(;;){if(await F(join(r,"node_modules",n)))return true;let i=dirname(r);if(i===r)return false;r=i;}}a(An,"dependencyVisibleFromDirectory");async function W(t,n,e,r,i={}){let o=u(t,n),a=await b$3(t),s=a.source==="default",l=a.packageManager==="yarn"||s&&e==="yarn";if(await g(t)||l&&await h(t))throw new Error("Yarn PnP mode is not compatible with Knarr. Set `nodeLinker: node-modules` or `nodeLinker: pnpm` in .yarnrc.yml, then run `yarn install`.");let d$1=l?await c(t):null,p=Hn(e,a.packageManager,a.source,d$1),g$1=a.packageManager==="bun"||s&&e==="bun";if(!p)return g$1?Jn(t,o,n,r):o;let E=p==="pnpm"?await Gn(t):await Zn(t);try{let u=await zn(o);if(u){if(!(p==="pnpm"?await Un(E,n,u):await Nn(E,u)))throw new Error(`Refusing to inject ${n}: node_modules entry resolves outside a configured ${S(p)} virtual store (${u})`);return await rn(u,n,r,p),d(`[inject] ${S(p)}: resolved symlink \u2192 ${u}`),u}}catch(u){if(!(x(u)&&u.code==="ENOENT"))throw x(u)&&d(`${S(p)} symlink resolution error: ${u instanceof Error?u.message:String(u)}`),u}let h$1=[];for(let u of E)await F(u)&&h$1.push(u);if(h$1.length>0){if(!await nt(t,n))return d(`[inject] ${S(p)}: ${n} is not declared by the consumer, skipping virtual store scan`),o;if(p==="yarn-pnpm"){let u=[];for(let R of h$1){d(`[inject] yarn-pnpm: scanning ${relative(t,R)||"."} for ${n}`);let P=await Xn(R,n,r);P&&u.push(P);}let w=N(n,p,u);if(w)return d(`[inject] yarn-pnpm: found in virtual store \u2192 ${w}`),i.repairMissingLink&&await U(o,w,n,p),w}if(p==="pnpm"){let u=n.replaceAll("/","+");for(let w of h$1){if(d(`[inject] pnpm: scanning ${relative(t,w)||"."} for ${n}`),r){let k=`${u}@${r}`,v=await kn(w,n,r,join(w,k,"node_modules",n));if(v)return d(`[inject] pnpm: exact version match in virtual store \u2192 ${v}`),i.repairMissingLink&&await U(o,v,n,p),v}let R=await readdir(w),P=[];for(let k of R)if(qn(u,r,k)){let v=await kn(w,n,r,join(w,k,"node_modules",n));v&&P.push(v);}let D=N(n,p,P);if(D)return d(`[inject] pnpm: found in virtual store \u2192 ${D}`),i.repairMissingLink&&await U(o,D,n,p),D}}}return i.warnOnFallback!==false&&b.warn(`${S(p)}: Could not find ${n} in a configured virtual store, using direct node_modules path. If this causes issues, run your package manager's install command to rebuild the virtual store, then 'knarr add' again.`),o}a(W,"resolveInjectionTarget");function S(t){return t==="pnpm"?"pnpm":"Yarn pnpm-linker"}a(S,"storeKindLabel");async function Jn(t,n,e,r){try{if(!(await lstat(n)).isSymbolicLink())return n}catch(s){if(x(s)&&s.code==="ENOENT")return n;throw s}let i=await realpath(n),o=join(t,"node_modules",".bun"),a=await realpath(o).catch(s=>{if(x(s)&&s.code==="ENOENT")return o;throw s});if(!Vn(a,i))throw new Error(`Refusing to inject ${e}: Bun target resolves outside the local node_modules/.bun store (${i})`);return await rn(i,e,r,"Bun isolated"),d(`[inject] Bun isolated: resolved symlink \u2192 ${i}`),i}a(Jn,"resolveBunTarget");function Vn(t,n){let e=relative(resolve(t),resolve(n));return e===""||!!e&&!e.startsWith("..")&&!isAbsolute(e)}a(Vn,"isPathInside");function Hn(t,n,e,r){return e!=="default"?n==="yarn"?r==="pnpm"?"yarn-pnpm":null:n==="pnpm"?"pnpm":null:t==="yarn"?r==="pnpm"?"yarn-pnpm":null:t==="pnpm"?"pnpm":null}a(Hn,"getEffectiveStoreKind");async function zn(t){return (await lstat(t)).isSymbolicLink()?realpath(t):null}a(zn,"resolvePackageEntrySymlink");async function rn(t,n,e,r){let i=r==="Bun isolated"?r:S(r),o=await j(t);if(o){if(o.name&&o.name!==n)throw new Error(`Refusing to inject ${n}: ${i} target contains package "${o.name}"`);if(e&&o.version&&o.version!==e)throw new Error(`Refusing to inject ${n}@${e}: ${i} target contains version ${o.version}`)}}a(rn,"validateResolvedPackageIdentity");async function U(t,n,e,r){let i=false;try{if(!(await lstat(t)).isSymbolicLink())return;i=!0;}catch(d){if(!x(d)||d.code!=="ENOENT")throw d}let o=dirname(t);if(b$1()){let d$1=relative(o,n);d(`[inject] ${S(r)}: would restore node_modules symlink for ${e} \u2192 ${d$1}`),a$1({type:"write",path:t,dest:n,detail:`${S(r)} package symlink`});return}let a=platform()==="win32";await D(o);let s=await realpath(o).catch(()=>o),l=relative(s,n);d(`[inject] ${S(r)}: restoring node_modules symlink for ${e} \u2192 ${l}`),i&&await rm(t,{force:true}),await symlink(a?n:l,t,a?"junction":"dir");}a(U,"repairMissingVirtualStoreLink");async function kn(t,n,e,r){if(!nn(t,n,r))return null;try{let[i,o]=await Promise.all([realpath(t),realpath(r)]);if(!nn(i,n,o))throw new Error(`Refusing to inject ${n}: virtual store candidate resolves outside a configured pnpm virtual store (${o})`);return await rn(o,n,e,"pnpm"),o}catch(i){if(x(i)&&i.code==="ENOENT")return null;throw i}}a(kn,"resolvePnpmCandidate");async function Xn(t,n,e){let r=await readdir(t),i=[];for(let o of r){let a=join(t,o,"package"),s=await j(a);if(!s||s.name!==n||e&&s.version!==e)continue;let[l,d]=await Promise.all([realpath(t),realpath(a)]);if(!Sn(l,d))throw new Error(`Refusing to inject ${n}: virtual store candidate resolves outside a configured Yarn pnpm-linker virtual store (${d})`);i.push(d);}return N(n,"yarn-pnpm",i)}a(Xn,"resolveYarnPnpmCandidate");function qn(t,n,e){if(!n)return e.startsWith(`${t}@`);let r=`${t}@${n}`;return e===r||e.startsWith(`${r}_`)}a(qn,"matchesPnpmPackageEntry");function en(t,n){let e=relative(resolve(t),resolve(n));return e===""||!e.startsWith("..")&&!isAbsolute(e)}a(en,"isInside");function N(t,n,e){if(e.length===0)return null;if(e.length===1)return e[0];throw new Error(`Refusing to repair ${t}: multiple ${S(n)} virtual-store entries match. Run your package manager's install command, then try again.`)}a(N,"requireSingleVirtualStoreCandidate");async function Gn(t){let n=join(t,"node_modules"),e=[],r=join(n,".pnpm");await J(t,r)&&e.push(r);let i=await Kn(n);if(!i)return e;let o=isAbsolute(i)?i:resolve(n,i);return await J(t,o)?(e.some(a=>resolve(a)===resolve(o))||e.push(o),e):(d(`[inject] pnpm: ignoring external virtualStoreDir ${o}`),e)}a(Gn,"getPnpmVirtualStoreDirs");async function Zn(t){let n=join(t,"node_modules"),e=[],r=join(n,".store");await J(t,r)&&e.push(r);let i=await d$1(t);if(!i)return e;let o=isAbsolute(i)?i:resolve(t,i);return await J(t,o)?(e.some(a=>resolve(a)===resolve(o))||e.push(o),e):(d(`[inject] yarn-pnpm: ignoring external pnpmStoreFolder ${o}`),e)}a(Zn,"getYarnPnpmStoreDirs");async function J(t,n){let e=await realpath(t).catch(()=>resolve(t)),r=await realpath(n).catch(i=>{if(x(i)&&i.code==="ENOENT")return resolve(n);throw i});return en(e,r)}a(J,"isLocalVirtualStoreDir");async function Kn(t){try{let n=await readFile(join(t,".modules.yaml"),"utf-8");return Qn(n)}catch(n){if(x(n)&&n.code==="ENOENT")return null;throw n}}a(Kn,"readConfiguredPnpmVirtualStoreDir");function Qn(t){try{let r=JSON.parse(t);if(typeof r.virtualStoreDir=="string"&&r.virtualStoreDir.trim())return r.virtualStoreDir.trim()}catch{}let n=t.match(/^virtualStoreDir:\s*(.+?)\s*$/m);if(!n)return null;let e=n[1].trim().replace(/\s+#.*$/,"");return (e.startsWith('"')&&e.endsWith('"')||e.startsWith("'")&&e.endsWith("'"))&&(e=e.slice(1,-1)),e||null}a(Qn,"parsePnpmVirtualStoreDir");async function Un(t,n,e){for(let r of t)try{let i=await realpath(r);if(nn(i,n,e))return !0}catch(i){if(x(i)&&i.code==="ENOENT")continue;throw i}return false}a(Un,"isPnpmVirtualStorePackageRealPath");async function Nn(t,n){for(let e of t)try{let r=await realpath(e);if(Sn(r,n))return !0}catch(r){if(x(r)&&r.code==="ENOENT")continue;throw r}return false}a(Nn,"isYarnPnpmStorePackageRealPath");function nn(t,n,e){if(!en(t,e))return false;let r=relative(t,e).replace(/\\/g,"/"),i=`node_modules/${n}`.replace(/\\/g,"/");return r===i||r.endsWith(`/${i}`)}a(nn,"isPnpmVirtualStorePackagePathFromRoot");function Sn(t,n){if(!en(t,n))return false;let r=relative(t,n).replace(/\\/g,"/").split("/");return r.length===2&&r[1]==="package"}a(Sn,"isYarnPnpmStorePackagePathFromRoot");async function nt(t,n){let e=await j(t);return e?!!(e.dependencies?.[n]||e.devDependencies?.[n]||e.optionalDependencies?.[n]||e.peerDependencies?.[n]):false}a(nt,"isDeclaredConsumerDependency");async function j(t){try{let n=await readFile(join(t,"package.json"),"utf-8");return JSON.parse(n)}catch(n){return x(n)&&n.code!=="ENOENT"&&b.warn(`Failed to read package.json in ${t}: ${n instanceof Error?n.message:String(n)}`),null}}a(j,"readPackageJson");
22
+ export{xt as a,Ot as b,Bt as c,Ct as d,Tt as e,W as f};
@@ -0,0 +1,4 @@
1
+ #!/usr/bin/env node
2
+ import {createRequire}from'node:module';import {a as a$1}from'./chunk-E3HZCU3S.mjs';import {d,b as b$1}from'./chunk-SPHWZS5P.mjs';import {b}from'./chunk-OQDZJP55.mjs';import {a}from'./chunk-L7O2RSTN.mjs';import {readFile,stat,mkdir,copyFile,constants,readdir,rm,utimes,rename,cp,writeFile}from'fs/promises';import {join,resolve,relative,isAbsolute,parse,dirname}from'path';import {availableParallelism,homedir}from'os';import {createHash}from'crypto';globalThis.require=createRequire(import.meta.url);
3
+ function R(t){let e=0,r=[],n=0,i=a(()=>{n<r.length&&e<t&&(e++,r[n++]()),n>0&&n===r.length&&(r.length=0,n=0);},"next");return a$1=>new Promise((p,w)=>{let g=a(()=>{a$1().then(P=>{e--,p(P),i();},P=>{e--,w(P),i();});},"run");e<t?(e++,g()):r.push(g);})}a(R,"pLimit");var ot=/^(?:@[a-z0-9][a-z0-9._~-]*\/)?[a-z0-9][a-z0-9._~-]*$/,it=/^(0|[1-9]\d*)\.(0|[1-9]\d*)\.(0|[1-9]\d*)(?:-[0-9A-Za-z-]+(?:\.[0-9A-Za-z-]+)*)?(?:\+[0-9A-Za-z-]+(?:\.[0-9A-Za-z-]+)*)?$/,B=/[\x00-\x1F\x7F]/;function $(t){if(!t||t.length>214||B.test(t)||t.includes("\\")||t.includes("//")||t.split("/").some(e=>e==="."||e==="..")||!ot.test(t))throw new Error(`Invalid package name "${t}"`)}a($,"validatePackageName");function st(t){if(!t||B.test(t)||t.includes("/")||t.includes("\\")||t.includes("..")||!it.test(t))throw new Error(`Invalid package version "${t}"`)}a(st,"validatePackageVersion");function X(t,e){$(t),st(e);}a(X,"validatePackageIdentity");function Ft(t){if(typeof t!="object"||t===null)return false;let e=t;return typeof e.contentHash=="string"&&typeof e.publishedAt=="string"&&typeof e.sourcePath=="string"&&(e.buildId===void 0||typeof e.buildId=="string")&&(e.schemaVersion===void 0||typeof e.schemaVersion=="number")}a(Ft,"isKnarrMeta");function at(t){if(typeof t!="object"||t===null)return false;let e=t;return typeof e.version=="string"&&typeof e.contentHash=="string"&&typeof e.linkedAt=="string"&&typeof e.sourcePath=="string"&&typeof e.backupExists=="boolean"&&typeof e.packageManager=="string"&&["npm","pnpm","yarn","bun"].includes(e.packageManager)&&(e.buildId===void 0||typeof e.buildId=="string")}a(at,"isLinkEntry");function Ht(t){if(typeof t!="object"||t===null)return false;let e=t;if(e.version!=="1"||typeof e.links!="object"||e.links===null)return false;let r=e.links;for(let n of Object.values(r))if(!at(n))return false;return true}a(Ht,"isConsumerState");async function Nt(t,e,r){try{let n=await readFile(join(t,"package.json"),"utf-8"),i=JSON.parse(n),a=i.dependencies?.[e]??i.devDependencies?.[e]??i.peerDependencies?.[e];if(!a||/^(workspace:|catalog:|\*)/.test(a))return;let p=a.match(/(\d+)\.\d+\.\d+/);if(!p)return;let w=parseInt(p[1],10),g=parseInt(r.split(".")[0],10);w!==g&&b.warn(`Version mismatch: store has ${e}@${r} but your package.json declares "${a}". Consider updating your dependency range.`);}catch{}}a(Nt,"warnVersionMismatch");function Tt(t){if(typeof t!="object"||t===null)return false;let e=t;for(let r of Object.values(e)){if(!Array.isArray(r))return false;for(let n of r)if(typeof n!="string")return false}return true}a(Tt,"isConsumersRegistry");function O(t,e,r){let n=resolve(t),i=resolve(e),a=relative(n,i);if(!(a===""||!a.startsWith("..")&&!isAbsolute(a)))throw new Error(`${r} escapes expected directory: ${e}`)}a(O,"assertInside");function V(){return process.env.KNARR_HOME||join(homedir(),".knarr")}a(V,"getKnarrHome");function pt(){return join(V(),"store")}a(pt,"getStorePath");function Kt(){return join(V(),"consumers.json")}a(Kt,"getConsumersPath");function W(t){return $(t),t.replace(/\//g,"+")}a(W,"encodePackageName");function Vt(t){if(t.startsWith("@")){let e=t.indexOf("+");if(e!==-1)return t.slice(0,e)+"/"+t.slice(e+1)}return t}a(Vt,"decodePackageName");function F(t,e){X(t,e);let r=pt(),n=join(r,`${W(t)}@${e}`);return O(r,n,"Store entry path"),n}a(F,"getStoreEntryPath");function Wt(t,e){return join(F(t,e),"package")}a(Wt,"getStorePackagePath");function Zt(t,e){return join(F(t,e),".knarr-meta.json")}a(Zt,"getStoreMetaPath");function mt(t,e){return join(F(t,e),"history")}a(mt,"getStoreHistoryPath");function Jt(t,e,r){if(!/^[a-f0-9]{8,64}$/i.test(r))throw new Error(`Invalid build id "${r}"`);return join(mt(t,e),r)}a(Jt,"getHistoryEntryPath");function Yt(t){return join(t,".knarr")}a(Yt,"getConsumerKnarrDir");function qt(t){return join(t,".knarr","state.json")}a(qt,"getConsumerStatePath");function Gt(t,e){$(e);let r=join(t,".knarr","backups"),n=join(r,W(e));return O(r,n,"Backup path"),n}a(Gt,"getConsumerBackupPath");function Z(t){return t.replace(/\\/g,"/")}a(Z,"normalizePath");function Ut(t,e){$(e);let r=join(t,"node_modules"),n=join(r,e);return O(r,n,"node_modules package path"),n}a(Ut,"getNodeModulesPackagePath");var S=null;function yt(){return S||(S=import('./xxhash-wasm-I6Q3T2SL.mjs').then(t=>t.default()).catch(t=>{throw S=null,t})),S}a(yt,"getXXHash");var wt=1024*1024,Pt=R(Math.max(availableParallelism(),8)),z=new Map;async function ce(t,e,r=new Map){let n=new Map(t.map(c=>[Z(relative(e,c)),c]));for(let c of r.keys())n.has(c)||n.set(c,join(e,c));let i=[...n.entries()].sort(([c],[d])=>c.localeCompare(d)),a=new Set(n.values()),p=0,w=await Promise.all(i.map(([c,d])=>Pt(async()=>{let s=r.get(c);if(s!==void 0)return {rel:c,content:Buffer.isBuffer(s)?s:Buffer.from(s)};let u=await stat(d),v=z.get(d);if(v&&v.mtimeMs===u.mtimeMs&&v.size===u.size)return p++,{rel:c,content:v.content};let x=await readFile(d);return z.set(d,{mtimeMs:u.mtimeMs,size:u.size,content:x}),{rel:c,content:x}})));for(let c of z.keys())a.has(c)||z.delete(c);d(`[hash] Computing content hash for ${i.length} files (${p} cached)`);let g=createHash("sha256"),P=Buffer.alloc(4);for(let{rel:c,content:d}of w)g.update(c),g.update("\0"),P.writeUInt32LE(d.length),g.update(P),g.update(d);let I="sha256v2:"+g.digest("hex");return d(`[hash] Result: ${I.slice(0,20)}...`),I}a(ce,"computeContentHash");async function H(t,e){let r=e??(await stat(t)).size,n=await yt();if(r>wt)return vt(t,n);let i=await readFile(t);return n.h64Raw(i).toString(16)}a(H,"hashFile");async function vt(t,e){let{createReadStream:r}=await import('fs'),n=e.create64();return new Promise((i,a)=>{let p=r(t);p.on("data",w=>n.update(w)),p.on("end",()=>i(n.digest().toString(16))),p.on("error",a);})}a(vt,"hashFileStream");var G=R(Math.max(availableParallelism(),8));function C(t){return t instanceof Error&&"code"in t}a(C,"isNodeError");var N=new Map;function bt(t){let{root:e}=parse(t);return e||"/"}a(bt,"volumeRoot");async function It(t,e,r){if(b$1()){d(`[dry-run] would copy ${t} \u2192 ${e}`),a$1({type:"copy",path:t,dest:e});return}r?.ensureParent!==false&&await mkdir(dirname(e),{recursive:true});let n=bt(e),i=N.get(n);if(i===false){await copyFile(t,e);return}if(i===true){await copyFile(t,e,constants.COPYFILE_FICLONE);return}try{await copyFile(t,e,constants.COPYFILE_FICLONE_FORCE),N.set(n,!0);}catch{N.set(n,false),d(`[copy] reflink not supported on ${n}, using plain copy`),await copyFile(t,e);}}a(It,"copyWithCoW");async function T(t){return (await readdir(t,{recursive:true,withFileTypes:true})).filter(r=>r.isFile()).map(r=>join(r.parentPath,r.name))}a(T,"collectFiles");async function Mt(t,e){let r=e.split(/[\\/]/).filter(Boolean),n=t;for(let i=0;i<r.length;i++){n=join(n,r[i]);try{let a=await stat(n),p=i===r.length-1;if(a.isDirectory()){p&&(b$1()?a$1({type:"remove",path:n}):await rm(n,{recursive:!0,force:!0}));continue}if(!p)if(b$1()){a$1({type:"remove",path:n});return}else await rm(n,{force:!0});}catch(a){if(C(a)&&a.code==="ENOENT")return;throw a}}}a(Mt,"removeDestinationConflicts");async function Pe(t,e,r={}){let n=T(t),i=T(e).catch(s=>{if(C(s)&&s.code==="ENOENT")return [];throw s}),[a,p]=await Promise.all([n,i]),w=0,g=0,P=0,I=await Promise.all(a.map(s=>G(async()=>{let u=relative(t,s),v=join(e,u),x=true,E=null;if(r.force)d(`[copy] ${u} (forced)`);else try{let[m,M]=await Promise.all([stat(s),stat(v)]);if(E={atime:m.atime,mtime:m.mtime},m.size!==M.size)d(`[copy] ${u} (size differs: ${m.size} vs ${M.size})`);else if(m.mtimeMs===M.mtimeMs)x=!1,d(`[skip] ${u} (size+mtime match)`);else {let[tt,et]=await Promise.all([H(s,m.size),H(v,M.size)]);tt===et?(x=!1,d(`[skip] ${u} (unchanged)`)):d(`[copy] ${u} (hash differs)`);}}catch(m){if(C(m)&&(m.code==="ENOENT"||m.code==="ENOTDIR"))d(`[copy] ${u} (new file)`);else throw m}if(x){if(await Mt(e,u),await It(s,v),b$1())return "copied";if(!E){let m=await stat(s);E={atime:m.atime,mtime:m.mtime};}return await utimes(v,E.atime,E.mtime),"copied"}return "skipped"})));for(let s of I)s==="copied"?w++:P++;let c=new Set(a.map(s=>relative(t,s))),d$1=p.filter(s=>!c.has(relative(e,s)));return await Promise.all(d$1.map(s=>G(async()=>{d(`[remove] ${relative(e,s)} (no longer in source)`),b$1()?a$1({type:"remove",path:s}):await rm(s,{force:true}).catch(u=>{if(!(C(u)&&(u.code==="ENOENT"||u.code==="ENOTDIR"||u.code==="EISDIR"||u.code==="ERR_FS_EISDIR")))throw u});}))),g=d$1.length,{copied:w,removed:g,skipped:P}}a(Pe,"incrementalCopy");async function ve(t,e){if(b$1()){d(`[dry-run] would move ${t} \u2192 ${e}`),a$1({type:"move",path:t,dest:e});return}try{await rename(t,e);}catch(r){if(C(r)&&r.code==="EXDEV")await cp(t,e,{recursive:true}),await rm(t,{recursive:true,force:true});else throw r}}a(ve,"moveDir");async function xe(t){if(b$1()){d(`[dry-run] would remove ${t}`),a$1({type:"remove",path:t});return}await rm(t,{recursive:true,force:true});}a(xe,"removeDir");async function ke(t){if(b$1()){d(`[dry-run] would ensure dir ${t}`),a$1({type:"mkdir",path:t});return}await mkdir(t,{recursive:true});}a(ke,"ensureDir");async function Ee(t){if(b$1()){d(`[dry-run] would ensure private dir ${t}`),a$1({type:"mkdir",path:t});return}await mkdir(t,{recursive:true,mode:448});}a(Ee,"ensurePrivateDir");async function Re(t){try{return await stat(t),!0}catch{return false}}a(Re,"exists");async function $e(t,e){if(b$1()){d(`[dry-run] would write ${t}`),a$1({type:"write",path:t});return}let r=t+`.tmp-${process.pid}-${Date.now()}`;await writeFile(r,e),await rename(r,t);}a($e,"atomicWriteFile");async function Ce(t){try{let e=await T(t);return (await Promise.all(e.map(n=>stat(n).then(i=>i.size).catch(()=>0)))).reduce((n,i)=>n+i,0)}catch{return 0}}a(Ce,"dirSize");async function be(t,e){if(b$1()){d(`[dry-run] would copy directory ${t} \u2192 ${e}`),a$1({type:"copy",path:t,dest:e});return}await cp(t,e,{recursive:true});}a(be,"copyDir");
4
+ export{Pe as A,ve as B,xe as C,ke as D,Ee as E,Re as F,$e as G,Ce as H,be as I,$ as a,st as b,X as c,Ft as d,Ht as e,Nt as f,Tt as g,pt as h,Kt as i,W as j,Vt as k,F as l,Wt as m,Zt as n,mt as o,Jt as p,Yt as q,qt as r,Gt as s,Z as t,Ut as u,R as v,ce as w,C as x,It as y,T as z};
@@ -0,0 +1,4 @@
1
+ #!/usr/bin/env node
2
+ import {createRequire}from'node:module';import {a as a$2}from'./chunk-QHNHLR6T.mjs';import {g,b as b$2,h}from'./chunk-FSVETLZK.mjs';import {a as a$3}from'./chunk-W2MMKBWU.mjs';import {a}from'./chunk-G7HFTV5Y.mjs';import {v,t,x,c as c$1,F,w,l,E,D,G as G$1,y,B,C as C$1}from'./chunk-BH2WXCLS.mjs';import {a as a$4}from'./chunk-E3HZCU3S.mjs';import {d,b as b$1}from'./chunk-SPHWZS5P.mjs';import {b}from'./chunk-OQDZJP55.mjs';import {c,a as a$1}from'./chunk-L7O2RSTN.mjs';import {stat,readFile,readdir}from'fs/promises';import {resolve,join,relative,sep,dirname,delimiter}from'path';import {spawn}from'child_process';import {availableParallelism,platform}from'os';globalThis.require=createRequire(import.meta.url);
3
+ var M=c(a(),1);async function de(e,n){let i=[],t$1=resolve(e);i.push(join(t$1,"package.json"));let s=await he(t$1,t$1),o=s.map(r=>t(relative(t$1,r)));if(n.files&&n.files.length>0)for(let r of n.files){let a=join(t$1,r),f=resolve(a);if(!f.startsWith(t$1+sep)&&f!==t$1){b.warn(`files pattern "${r}" escapes package directory, skipping`);continue}let p=false;try{if((await stat(a)).isDirectory()){let h=t(relative(t$1,a))+"/";for(let w=0;w<o.length;w++)o[w].startsWith(h)&&i.push(s[w]);p=!0;}else i.push(a),p=!0;}catch(m){if(x(m)&&m.code!=="ENOENT")throw m}if(!p){let m=(0, M.default)(r,{dot:true}),h=0;for(let w=0;w<o.length;w++)if(m(o[w])){let y=resolve(s[w]);if(!y.startsWith(t$1+sep)&&y!==t$1)continue;i.push(s[w]),h++;}h===0&&b.warn(`files pattern "${r}" matched no files`);}}else {let r=await je(t$1);for(let a=0;a<o.length;a++)Me(o[a],r)||i.push(s[a]);}let c=new Set(i),u=new Set(s);for(let r of ["README.md","README","LICENSE","LICENCE","CHANGELOG.md"]){let a=join(t$1,r);c.has(a)||u.has(a)&&(i.push(a),c.add(a));}return [...c]}a$1(de,"resolvePackFiles");var Se=new Set(["node_modules",".git",".svn",".hg",".DS_Store",".npmrc",".gitignore",".knarr","test","tests","__tests__",".github",".vscode",".idea","coverage",".nyc_output","tsconfig.json","tsconfig.build.json",".eslintrc",".eslintrc.js",".eslintrc.json",".prettierrc",".prettierrc.js","jest.config.js","jest.config.ts","vitest.config.ts","vitest.config.js"]);function Me(e,n){for(let t of n.negations)if(t(e))return false;let i=e.split(/[\\/]/);for(let t of i)if(Se.has(t)||n.literals.has(t))return true;if(n.literals.has(e))return true;for(let t of n.patterns)if(t(e))return true;return false}a$1(Me,"shouldIgnore");async function je(e){let n=await pe(e,".npmignore");if(n!==null)return ge(n);let i=await pe(e,".gitignore");return i===null?Oe():ge(i)}a$1(je,"loadNpmIgnore");async function pe(e,n){try{return await readFile(join(e,n),"utf-8")}catch(i){if(x(i)&&i.code==="ENOENT")return null;throw i}}a$1(pe,"readIgnoreFile");function Oe(){return {literals:new Set,patterns:[],negations:[]}}a$1(Oe,"createIgnoreMatchers");function ge(e){let n={literals:new Set,patterns:[],negations:[]};for(let i of e.split(`
4
+ `)){let t=i.trim();if(!(!t||t.startsWith("#")))if(t.startsWith("!")){let s=t.slice(1);me(s)?n.negations.push((0, M.default)(s,{dot:true})):n.negations.push((0, M.default)(s,{dot:true}));}else me(t)?n.patterns.push((0, M.default)(t,{dot:true})):n.literals.add(t.replace(/\/$/,""));}return n}a$1(ge,"parseIgnoreFile");function me(e){return /[*?[\]{}()]/.test(e)}a$1(me,"hasGlobChars");async function he(e,n){let i=[];try{let t=await readdir(e,{withFileTypes:!0});for(let s of t){let o=join(e,s.name);if(s.isDirectory()){if(s.name===".git"||e===n&&s.name==="node_modules"||s.isSymbolicLink())continue;i.push(...await he(o,n));}else s.isSymbolicLink()||i.push(o);}}catch(t){if(x(t)&&t.code==="ENOENT")return [];throw t}return i}a$1(he,"collectAllFiles");var Fe=v(Math.max(availableParallelism(),8));async function Pt(e,n={}){let i=join(e,"package.json"),t;try{t=await readFile(i,"utf-8");}catch{throw new Error(`No package.json found in ${e}`)}let s=JSON.parse(t);if(!s.name)throw new Error("package.json missing 'name' field");if(!s.version)throw new Error("package.json missing 'version' field");c$1(s.name,s.version),await T(e,s,"preknarr"),n.runScripts!==false&&await T(e,s,"prepack");let o=e;if(s.publishConfig?.directory){o=resolve(e,s.publishConfig.directory);try{if(!(await stat(o)).isDirectory())throw new Error(`publishConfig.directory "${s.publishConfig.directory}" is not a directory`)}catch(g){throw g instanceof Error&&"code"in g&&g.code==="ENOENT"?new Error(`publishConfig.directory "${s.publishConfig.directory}" does not exist`):g}d(`[publish] Using publishConfig.directory: ${o}`);}let c=join(o,"package.json"),u=o===e||await F(c),r=u?JSON.parse(await readFile(c,"utf-8")):s;if(!r.name)throw new Error("publish package.json missing 'name' field");if(!r.version)throw new Error("publish package.json missing 'version' field");if(c$1(r.name,r.version),r.private&&!n.allowPrivate)throw new Error(`Package "${r.name}" is private. Use --private flag to publish private packages.`);let a=u?r:{...r,files:void 0},f=await de(o,a);if(f.length===0)throw new Error("No publishable files found");d(`[publish] Resolved ${f.length} files for ${r.name}@${r.version}`),await Ge(r,e),await Be(r,e);let p=Ae(r);p=He(p);let m=new Map;(p!==r||!u)&&m.set("package.json",JSON.stringify(p,null,2));let h=[...f],w$1=new Set(f.map(g=>relative(o,g).replace(/\\/g,"/")));for(let g of m.keys())w$1.has(g)||h.push(join(o,g));let y$1=await w(h,o,m);if(!n.force){let g=await a$2(r.name,r.version);if(g&&g.contentHash===y$1)return b.info(`${r.name}@${r.version} already up to date (no changes since last publish)`),{name:r.name,version:r.version,fileCount:f.length,skipped:true,contentHash:y$1,buildId:g.buildId??""}}let b$2=l(r.name,r.version),O=await a$3(b$2+".lock",async()=>{if(!n.force){let E=await a$2(r.name,r.version);if(E&&E.contentHash===y$1)return b.info(`${r.name}@${r.version} already up to date (no changes since last publish)`),{name:r.name,version:r.version,fileCount:f.length,skipped:true,contentHash:y$1,buildId:E.buildId??""}}let g=b$2+`.tmp-${process.pid}-${Date.now()}`,_=join(g,"package"),B$1=y$1.slice(9,17);try{await E(_),d("[publish] Copying files to temp store...");let E$1=new Set(f.map(d=>dirname(join(_,relative(o,d)))));await Promise.all([...E$1].map(d=>D(d))),await Promise.all(f.map(d=>Fe(async()=>{let Q=relative(o,d),Pe=Q.replace(/\\/g,"/"),X=join(_,Q),R=m.get(Pe);R!==void 0?await G$1(X,Buffer.isBuffer(R)?R.toString("utf-8"):R):await y(d,X,{ensureParent:!1});}))),m.has("package.json")&&await G$1(join(_,"package.json"),JSON.stringify(p,null,2));let be={schemaVersion:1,contentHash:y$1,publishedAt:new Date().toISOString(),sourcePath:e,buildId:B$1};await G$1(join(g,".knarr-meta.json"),JSON.stringify(be,null,2));let z=await F(b$2),I=b$2+".old-"+Date.now(),q=!1;try{z&&(await B(b$2,I),q=!b$1()),await B(g,b$2);}catch(d){throw q&&await F(I)&&(await F(b$2)&&await C$1(b$2),await B(I,b$2)),d}if(z&&!b$1()){try{let{captureHistory:d}=await import('./history-MLJHRV3Q.mjs');await d(r.name,r.version,I,n.historyLimit);}catch(d$1){d(`[publish] History capture failed: ${d$1 instanceof Error?d$1.message:String(d$1)}`);}await C$1(I);}d(`[publish] Stored at ${b$2}`);}catch(E){throw await C$1(g),E}return {name:r.name,version:r.version,fileCount:f.length,skipped:false,contentHash:y$1,buildId:B$1}},{stale:6e4});return O.skipped||(n.runScripts!==false&&await T(e,s,"postpack"),await T(e,s,"postknarr"),b.success(`Published ${r.name}@${r.version} (${f.length} files) [${O.buildId}]`)),O}a$1(Pt,"publish");var we=parseInt(process.env.KNARR_HOOK_TIMEOUT??"30000",10);function Le(e){return platform()!=="win32"?"PATH":Object.keys(e).find(n=>n.toLowerCase()==="path")??"Path"}a$1(Le,"pathEnvKey");function C(e,n,i){if(platform()==="win32"){let t=n.toLowerCase();for(let s of Object.keys(e))s.toLowerCase()===t&&delete e[s];}e[n]=i;}a$1(C,"setEnvVar");function Te(e,n,i,t){let s={...process.env},o=Le(s),c=s[o]??"";return C(s,o,[join(e,"node_modules",".bin"),c].filter(Boolean).join(delimiter)),(!("INIT_CWD"in s)||!s.INIT_CWD)&&C(s,"INIT_CWD",e),C(s,"npm_lifecycle_event",i),C(s,"npm_lifecycle_script",t),C(s,"npm_package_name",n.name),C(s,"npm_package_version",n.version),s}a$1(Te,"buildLifecycleEnv");async function T(e,n,i){let t=n.scripts?.[i];if(!t)return;if(b$1()){a$4({type:"lifecycle-skip",path:e,detail:`${i}: ${t}`});return}let s=await De(e,i,t);return d(`[lifecycle] Running ${i}: ${s}`),new Promise((o,c)=>{let u=platform()==="win32",r=u?"cmd":"sh",a=u?"/c":"-c",f=Te(e,n,i,t),p=spawn(r,[a,s],{cwd:e,env:f,stdio:"inherit"}),m=setTimeout(()=>{p.kill("SIGTERM"),c(new Error(`${i} script timed out after ${we/1e3}s. Increase KNARR_HOOK_TIMEOUT env var if the script needs more time.`));},we);p.on("close",h=>{clearTimeout(m),h===0?o():c(new Error(`${i} script failed with exit code ${h}`));}),p.on("error",h=>{clearTimeout(m),c(new Error(`${i} script error: ${h.message}`));});})}a$1(T,"runLifecycleHook");async function De(e,n,i){return await g(e)||(await b$2(e)).packageManager==="yarn"&&await h(e)?`yarn run ${n}`:i}a$1(De,"resolveLifecycleCommand");var xe=["main","module","exports","types","typings","browser","bin"];function He(e){if(!e.publishConfig)return e;let n={...e};for(let i of xe)i in e.publishConfig&&(n[i]=e.publishConfig[i]);return delete n.publishConfig,n}a$1(He,"applyPublishConfig");function Ae(e){let n=false,i={...e},t=null,s=false;for(let o of ["dependencies","devDependencies","peerDependencies","optionalDependencies"]){let c=e[o];if(!c)continue;let u=false,r={...c};for(let[a,f]of Object.entries(c))if(f.startsWith("workspace:")){let p=Ue(a,f);if(!p)continue;r[a]=p,u=true,n=true;}else if(f.startsWith("catalog:"))if(s||(t=Ye(),s=true),t){let p=Ve(f,a,t);p?(r[a]=p,u=true,n=true):b.warn(`catalog: specifier for "${a}" could not be resolved \u2014 published package.json will contain "${f}" which may cause install failures`);}else d(`[publish] No pnpm-workspace.yaml found, cannot resolve catalog: for "${a}"`);u&&(i[o]=r);}return n?i:e}a$1(Ae,"rewriteProtocolVersions");function Ue(e,n){let i=n.slice(10),t=Ke(i),s=t?.name??e,o=t?.range??i;if(o==="*"||o==="^"||o==="~"){let c=G?.versions.get(s);if(!c)return b.warn(`workspace: specifier for "${s}" could not be resolved \u2014 published package.json will contain "${n}" which may cause install failures`),null;let u=o==="*"?c:o+c;return t&&s!==e?`npm:${s}@${u}`:u}return t&&s!==e?`npm:${s}@${o}`:o}a$1(Ue,"resolveWorkspaceSpecifier");function Ke(e){let n=e.lastIndexOf("@");if(n<=0)return null;let i=e.slice(0,n),t=e.slice(n+1);return !i||!t?null:{name:i,range:t}}a$1(Ke,"parseWorkspaceAlias");function Ve(e,n,i){let t=e.slice(8);return t===""||t==="default"?i.default[n]??null:i.named[t]?.[n]??null}a$1(Ve,"resolveCatalogVersion");var K=null;async function ye(e){if(K?.dir===e)return K.root;let{findWorkspacePackageRoot:n}=await import('./workspace-T6PNO4L3.mjs'),i=await n(e);return K={dir:e,root:i},i}a$1(ye,"getWorkspaceRoot");var G=null;async function Ge(e,n){if(!["dependencies","devDependencies","peerDependencies","optionalDependencies"].some(u=>{let r=e[u];return r&&Object.values(r).some(a=>a.startsWith("workspace:"))}))return;let t=await ye(n);if(!t){G=null;return}let{findWorkspacePackages:s}=await import('./workspace-T6PNO4L3.mjs'),o=await s(t),c=new Map;await Promise.all(o.map(async u=>{try{let r=JSON.parse(await readFile(join(u,"package.json"),"utf-8"));r.name&&r.version&&c.set(r.name,r.version);}catch{}})),G={root:t,versions:c};}a$1(Ge,"preloadWorkspaceVersions");var j=null;function Ye(){return j?.catalogs??null}a$1(Ye,"loadCatalogsFromCache");async function Be(e,n){if(!["dependencies","devDependencies","peerDependencies","optionalDependencies"].some(r=>{let a=e[r];return a&&Object.values(a).some(f=>f.startsWith("catalog:"))}))return;let t=await ye(n);if(!t){j=null;return}let s=join(t,"pnpm-workspace.yaml"),o=(await stat(s).catch(()=>null))?.mtimeMs??0;if(j?.root===t&&j.mtimeMs===o)return;let{parseCatalogs:c}=await import('./workspace-T6PNO4L3.mjs'),u=await c(t);j={root:t,mtimeMs:o,catalogs:u};}a$1(Be,"preloadCatalogs");export{Pt as a};
@@ -0,0 +1,5 @@
1
+ #!/usr/bin/env node
2
+ import {createRequire}from'node:module';import {c}from'./chunk-SPHWZS5P.mjs';import {b}from'./chunk-OQDZJP55.mjs';import {a}from'./chunk-L7O2RSTN.mjs';globalThis.require=createRequire(import.meta.url);
3
+ var n=[],l=false;function m(o){n.push(o);}a(m,"recordMutation");function y(){return [...n]}a(y,"getMutations");function k(){l=true;}a(k,"markDryRunJsonReportPrinted");function g(){if(n.length===0){b.info("[dry-run] No mutations would be performed");return}if(c()){if(l)return;console.log(JSON.stringify({dryRun:true,mutations:n},null,2)),l=true;return}let o=new Map;for(let i of n){let t=o.get(i.type);t||(t=[],o.set(i.type,t)),t.push(i);}b.info(`
4
+ [dry-run] ${n.length} mutation(s) would be performed:
5
+ `);let a={copy:"Copy",remove:"Remove",move:"Move",mkdir:"Create directory",write:"Write file","bin-link":"Create bin link","bin-unlink":"Remove bin link","cache-invalidate":"Invalidate cache","lock-skip":"Skip lock","lifecycle-skip":"Skip lifecycle hook","command-skip":"Skip command"};for(let[i,t]of o){b.info(` ${a[i]} (${t.length}):`);for(let r of t.slice(0,20)){let p=r.dest?` \u2192 ${r.dest}`:"",c=r.detail?` (${r.detail})`:"";b.info(` ${r.path}${p}${c}`);}t.length>20&&b.info(` ... and ${t.length-20} more`);}}a(g,"printDryRunReport");export{m as a,y as b,k as c,g as d};
@@ -0,0 +1,4 @@
1
+ #!/usr/bin/env node
2
+ import {createRequire}from'node:module';import {a}from'./chunk-L7O2RSTN.mjs';import {readFile,stat}from'fs/promises';import {join,dirname}from'path';globalThis.require=createRequire(import.meta.url);
3
+ var M=new Set(["npm","pnpm","yarn","bun"]),w=[["pnpm-lock.yaml","pnpm"],["bun.lockb","bun"],["bun.lock","bun"],["yarn.lock","yarn"],["package-lock.json","npm"],["npm-shrinkwrap.json","npm"]],f=[".pnp.cjs",".pnp.js",".pnp.loader.mjs"],S=[".yarnrc.yml",...f];function h(r){if(typeof r!="string")return null;let n=r.trim().match(/^([^@\s]+)(?:@(.+))?$/);if(!n)return null;let a=n[1];return M.has(a)?{name:a,version:n[2]?.trim()??""}:null}a(h,"parsePackageManagerSpec");async function m(r){try{let n=await readFile(join(r,"package.json"),"utf-8"),a=JSON.parse(n);return h(a.packageManager)}catch{return null}}a(m,"readPackageManagerSpec");async function x(r){let n=r;for(;;){let a=await m(n);if(a)return a;let t=dirname(n);if(t===n)return null;n=t;}}a(x,"findPackageManagerSpec");function Y(r){let n=r.trim().replace(/^npm:/,"");if(n==="classic")return false;let a=n.match(/^v?(\d+)(?:[.+-]|$)/);return a?Number(a[1])>=2:n.length>0}a(Y,"yarnDefaultsToPnp");async function v(r){return (await b(r)).packageManager}a(v,"detectPackageManager");async function b(r){let n=r;for(;;){let a=await m(n);if(a)return {packageManager:a.name,source:"packageManager",dir:n,file:join(n,"package.json")};let c=(await Promise.all(w.map(async([u,y])=>{try{return await stat(join(n,u)),{lockfile:u,packageManager:y}}catch{return null}}))).find(u=>u!==null);if(c)return {packageManager:c.packageManager,source:"lockfile",dir:n,file:join(n,c.lockfile)};let o=await A(n,S);if(o)return {packageManager:"yarn",source:"yarnArtifact",dir:n,file:join(n,o)};let g=dirname(n);if(g===n)return {packageManager:"npm",source:"default",dir:r};n=g;}}a(b,"detectPackageManagerInfo");async function A(r,n){for(let a of n)try{return await stat(join(r,a)),a}catch{}return null}a(A,"findExistingFile");function N(r,n){for(let a of r.split(`
4
+ `)){let t=a.trim();if(t.startsWith("#")||!t.includes(n))continue;let c=t.match(new RegExp(`^${n}:\\s*(.+)$`));if(!c)continue;let o=c[1].trim().replace(/\s+#.*$/,"").trim().replace(/^["']|["']$/g,"");if(o)return o}return null}a(N,"readYarnrcScalar");async function k(r,n){let a=r;for(;;){try{let c=await readFile(join(a,".yarnrc.yml"),"utf-8"),o=N(c,n);if(o)return o}catch{}let t=dirname(a);if(t===a)return null;a=t;}}a(k,"findYarnrcScalar");async function P(r){let n=await k(r,"nodeLinker");return n==="node-modules"||n==="pnpm"||n==="pnp"?n:null}a(P,"detectYarnNodeLinker");async function R(r){return k(r,"pnpmStoreFolder")}a(R,"detectYarnPnpmStoreFolder");async function F(r){let n=r;for(;;)try{return await stat(join(n,".yarnrc.yml")),!0}catch{let a=dirname(n);if(a===n)return false;n=a;}}a(F,"hasYarnrcYml");async function d(r){let n=r;for(;;){if((await Promise.all(f.map(async c=>{try{return await stat(join(n,c)),!0}catch{return false}}))).some(Boolean))return true;let t=dirname(n);if(t===n)return false;n=t;}}a(d,"hasYarnPnpManifest");async function $(r){return await d(r)?true:await P(r)==="pnp"}a($,"hasYarnPnpMarkers");async function E(r){let n=await P(r);if(n==="pnp")return true;if(n==="node-modules"||n==="pnpm")return false;if(await d(r)||await F(r))return true;let a=await x(r);return a?.name==="yarn"&&Y(a.version)}a(E,"isYarnPnpProject");export{v as a,b,P as c,R as d,F as e,d as f,$ as g,E as h};
@@ -1,3 +1,3 @@
1
1
  #!/usr/bin/env node
2
- import {createRequire}from'node:module';import {b,a}from'./chunk-2VCW5RWI.mjs';globalThis.require=createRequire(import.meta.url);
2
+ import {createRequire}from'node:module';import {b,a}from'./chunk-L7O2RSTN.mjs';globalThis.require=createRequire(import.meta.url);
3
3
  var te=b((Lt,ye)=>{var ge="[^\\\\/]",We="(?=.)",Se="[^/]",ce="(?:\\/|$)",xe="(?:^|\\/)",ie=`\\.{1,2}${ce}`,qe="(?!\\.)",Fe=`(?!${xe}${ie})`,Qe=`(?!\\.{0,1}${ce})`,je=`(?!${ie})`,Ze="[^.\\/]",ze=`${Se}*?`,Ve="/",be={DOT_LITERAL:"\\.",PLUS_LITERAL:"\\+",QMARK_LITERAL:"\\?",SLASH_LITERAL:"\\/",ONE_CHAR:We,QMARK:Se,END_ANCHOR:ce,DOTS_SLASH:ie,NO_DOT:qe,NO_DOTS:Fe,NO_DOT_SLASH:Qe,NO_DOTS_SLASH:je,QMARK_NO_DOT:Ze,STAR:ze,START_ANCHOR:xe,SEP:Ve},Ye={...be,SLASH_LITERAL:"[\\\\/]",QMARK:ge,STAR:`${ge}*?`,DOTS_SLASH:"\\.{1,2}(?:[\\\\/]|$)",NO_DOT:"(?!\\.)",NO_DOTS:"(?!(?:^|[\\\\/])\\.{1,2}(?:[\\\\/]|$))",NO_DOT_SLASH:"(?!\\.{0,1}(?:[\\\\/]|$))",NO_DOTS_SLASH:"(?!\\.{1,2}(?:[\\\\/]|$))",QMARK_NO_DOT:"[^.\\\\/]",START_ANCHOR:"(?:^|[\\\\/])",END_ANCHOR:"(?:[\\\\/]|$)",SEP:"\\"},Je={__proto__:null,alnum:"a-zA-Z0-9",alpha:"a-zA-Z",ascii:"\\x00-\\x7F",blank:" \\t",cntrl:"\\x00-\\x1F\\x7F",digit:"0-9",graph:"\\x21-\\x7E",lower:"a-z",print:"\\x20-\\x7E ",punct:"\\-!\"#$%&'()\\*+,./:;<=>?@[\\]^_`{|}~",space:" \\t\\r\\n\\v\\f",upper:"A-Z",word:"A-Za-z0-9_",xdigit:"A-Fa-f0-9"};ye.exports={DEFAULT_MAX_EXTGLOB_RECURSION:0,MAX_LENGTH:1024*64,POSIX_REGEX_SOURCE:Je,REGEX_BACKSLASH:/\\(?![*+?^${}(|)[\]])/g,REGEX_NON_SPECIAL_CHARS:/^[^@![\].,$*+?^{}()|\\/]+/,REGEX_SPECIAL_CHARS:/[-*+?.^${}(|)[\]]/,REGEX_SPECIAL_CHARS_BACKREF:/(\\?)((\W)(\3*))/g,REGEX_SPECIAL_CHARS_GLOBAL:/([-*+?.^${}(|)[\]])/g,REGEX_REMOVE_BACKSLASH:/(?:\[.*?[^\\]\]|\\(?=.))/g,REPLACEMENTS:{__proto__:null,"***":"*","**/**":"**","**/**/**":"**"},CHAR_0:48,CHAR_9:57,CHAR_UPPERCASE_A:65,CHAR_LOWERCASE_A:97,CHAR_UPPERCASE_Z:90,CHAR_LOWERCASE_Z:122,CHAR_LEFT_PARENTHESES:40,CHAR_RIGHT_PARENTHESES:41,CHAR_ASTERISK:42,CHAR_AMPERSAND:38,CHAR_AT:64,CHAR_BACKWARD_SLASH:92,CHAR_CARRIAGE_RETURN:13,CHAR_CIRCUMFLEX_ACCENT:94,CHAR_COLON:58,CHAR_COMMA:44,CHAR_DOT:46,CHAR_DOUBLE_QUOTE:34,CHAR_EQUAL:61,CHAR_EXCLAMATION_MARK:33,CHAR_FORM_FEED:12,CHAR_FORWARD_SLASH:47,CHAR_GRAVE_ACCENT:96,CHAR_HASH:35,CHAR_HYPHEN_MINUS:45,CHAR_LEFT_ANGLE_BRACKET:60,CHAR_LEFT_CURLY_BRACE:123,CHAR_LEFT_SQUARE_BRACKET:91,CHAR_LINE_FEED:10,CHAR_NO_BREAK_SPACE:160,CHAR_PERCENT:37,CHAR_PLUS:43,CHAR_QUESTION_MARK:63,CHAR_RIGHT_ANGLE_BRACKET:62,CHAR_RIGHT_CURLY_BRACE:125,CHAR_RIGHT_SQUARE_BRACKET:93,CHAR_SEMICOLON:59,CHAR_SINGLE_QUOTE:39,CHAR_SPACE:32,CHAR_TAB:9,CHAR_UNDERSCORE:95,CHAR_VERTICAL_LINE:124,CHAR_ZERO_WIDTH_NOBREAK_SPACE:65279,extglobChars(t){return {"!":{type:"negate",open:"(?:(?!(?:",close:`))${t.STAR})`},"?":{type:"qmark",open:"(?:",close:")?"},"+":{type:"plus",open:"(?:",close:")+"},"*":{type:"star",open:"(?:",close:")*"},"@":{type:"at",open:"(?:",close:")"}}},globChars(t){return t===true?Ye:be}};});var se=b(M=>{var{REGEX_BACKSLASH:et,REGEX_REMOVE_BACKSLASH:tt,REGEX_SPECIAL_CHARS:st,REGEX_SPECIAL_CHARS_GLOBAL:rt}=te();M.isObject=t=>t!==null&&typeof t=="object"&&!Array.isArray(t);M.hasRegexChars=t=>st.test(t);M.isRegexChar=t=>t.length===1&&M.hasRegexChars(t);M.escapeRegex=t=>t.replace(rt,"\\$1");M.toPosixSlashes=t=>t.replace(et,"/");M.isWindows=()=>{if(typeof navigator<"u"&&navigator.platform){let t=navigator.platform.toLowerCase();return t==="win32"||t==="windows"}return typeof process<"u"&&process.platform?process.platform==="win32":false};M.removeBackslashes=t=>t.replace(tt,u=>u==="\\"?"":u);M.escapeLast=(t,u,e)=>{let l=t.lastIndexOf(u,e);return l===-1?t:t[l-1]==="\\"?M.escapeLast(t,u,l-1):`${t.slice(0,l)}\\${t.slice(l)}`};M.removePrefix=(t,u={})=>{let e=t;return e.startsWith("./")&&(e=e.slice(2),u.prefix="./"),e};M.wrapOutput=(t,u={},e={})=>{let l=e.contains?"":"^",c=e.contains?"":"$",p=`${l}(?:${t})${c}`;return u.negated===true&&(p=`(?:^(?!${p}).*$)`),p};M.basename=(t,{windows:u}={})=>{let e=t.split(u?/[\\/]/:"/"),l=e[e.length-1];return l===""?e[e.length-2]:l};});var me=b((Ht,Oe)=>{var de=se(),{CHAR_ASTERISK:le,CHAR_AT:nt,CHAR_BACKWARD_SLASH:re,CHAR_COMMA:ut,CHAR_DOT:pe,CHAR_EXCLAMATION_MARK:fe,CHAR_FORWARD_SLASH:Te,CHAR_LEFT_CURLY_BRACE:Ae,CHAR_LEFT_PARENTHESES:Re,CHAR_LEFT_SQUARE_BRACKET:ot,CHAR_PLUS:at,CHAR_QUESTION_MARK:Ce,CHAR_RIGHT_CURLY_BRACE:ct,CHAR_RIGHT_PARENTHESES:Le,CHAR_RIGHT_SQUARE_BRACKET:it}=te(),$e=a(t=>t===Te||t===re,"isPathSeparator"),He=a(t=>{t.isPrefix!==true&&(t.depth=t.isGlobstar?1/0:1);},"depth"),lt=a((t,u)=>{let e=u||{},l=t.length-1,c=e.parts===true||e.scanToEnd===true,p=[],i=[],f=[],b=t,N=-1,g=0,k=0,O=false,B=false,S=false,v=false,V=false,W=false,y=false,q=false,Y=false,D=false,w=0,P,A,E={value:"",depth:0,isGlob:false},n=a(()=>N>=l,"eos"),G=a(()=>b.charCodeAt(N+1),"peek"),m=a(()=>(P=A,b.charCodeAt(++N)),"advance");for(;N<l;){A=m();let x;if(A===re){y=E.backslashes=true,A=m(),A===Ae&&(W=true);continue}if(W===true||A===Ae){for(w++;n()!==true&&(A=m());){if(A===re){y=E.backslashes=true,m();continue}if(A===Ae){w++;continue}if(W!==true&&A===pe&&(A=m())===pe){if(O=E.isBrace=true,S=E.isGlob=true,D=true,c===true)continue;break}if(W!==true&&A===ut){if(O=E.isBrace=true,S=E.isGlob=true,D=true,c===true)continue;break}if(A===ct&&(w--,w===0)){W=false,O=E.isBrace=true,D=true;break}}if(c===true)continue;break}if(A===Te){if(p.push(N),i.push(E),E={value:"",depth:0,isGlob:false},D===true)continue;if(P===pe&&N===g+1){g+=2;continue}k=N+1;continue}if(e.noext!==true&&(A===at||A===nt||A===le||A===Ce||A===fe)===true&&G()===Re){if(S=E.isGlob=true,v=E.isExtglob=true,D=true,A===fe&&N===g&&(Y=true),c===true){for(;n()!==true&&(A=m());){if(A===re){y=E.backslashes=true,A=m();continue}if(A===Le){S=E.isGlob=true,D=true;break}}continue}break}if(A===le){if(P===le&&(V=E.isGlobstar=true),S=E.isGlob=true,D=true,c===true)continue;break}if(A===Ce){if(S=E.isGlob=true,D=true,c===true)continue;break}if(A===ot){for(;n()!==true&&(x=m());){if(x===re){y=E.backslashes=true,m();continue}if(x===it){B=E.isBracket=true,S=E.isGlob=true,D=true;break}}if(c===true)continue;break}if(e.nonegate!==true&&A===fe&&N===g){q=E.negated=true,g++;continue}if(e.noparen!==true&&A===Re){if(S=E.isGlob=true,c===true){for(;n()!==true&&(A=m());){if(A===Re){y=E.backslashes=true,A=m();continue}if(A===Le){D=true;break}}continue}break}if(S===true){if(D=true,c===true)continue;break}}e.noext===true&&(v=false,S=false);let H=b,r="",s="";g>0&&(r=b.slice(0,g),b=b.slice(g),k-=g),H&&S===true&&k>0?(H=b.slice(0,k),s=b.slice(k)):S===true?(H="",s=b):H=b,H&&H!==""&&H!=="/"&&H!==b&&$e(H.charCodeAt(H.length-1))&&(H=H.slice(0,-1)),e.unescape===true&&(s&&(s=de.removeBackslashes(s)),H&&y===true&&(H=de.removeBackslashes(H)));let K={prefix:r,input:t,start:g,base:H,glob:s,isBrace:O,isBracket:B,isGlob:S,isExtglob:v,isGlobstar:V,negated:q,negatedExtglob:Y};if(e.tokens===true&&(K.maxDepth=0,$e(A)||i.push(E),K.tokens=i),e.parts===true||e.tokens===true){let x;for(let $=0;$<p.length;$++){let j=x?x+1:g,X=p[$],Z=t.slice(j,X);e.tokens&&($===0&&g!==0?(i[$].isPrefix=true,i[$].value=r):i[$].value=Z,He(i[$]),K.maxDepth+=i[$].depth),($!==0||Z!=="")&&f.push(Z),x=X;}if(x&&x+1<t.length){let $=t.slice(x+1);f.push($),e.tokens&&(i[i.length-1].value=$,He(i[i.length-1]),K.maxDepth+=i[i.length-1].depth);}K.slashes=p,K.parts=f;}return K},"scan");Oe.exports=lt;});var ke=b((Ot,we)=>{var ne=te(),U=se(),{MAX_LENGTH:ae,POSIX_REGEX_SOURCE:pt,REGEX_NON_SPECIAL_CHARS:ft,REGEX_SPECIAL_CHARS_BACKREF:At,REPLACEMENTS:Ie}=ne,Rt=a((t,u)=>{if(typeof u.expandRange=="function")return u.expandRange(...t,u);t.sort();let e=`[${t.join("-")}]`;try{new RegExp(e);}catch{return t.map(c=>U.escapeRegex(c)).join("..")}return e},"expandRange"),ee=a((t,u)=>`Missing ${t}: "${u}" - use "\\\\${u}" to match literal characters`,"syntaxError"),ve=a(t=>{let u=[],e=0,l=0,c=0,p="",i=false;for(let f of t){if(i===true){p+=f,i=false;continue}if(f==="\\"){p+=f,i=true;continue}if(f==='"'){c=c===1?0:1,p+=f;continue}if(c===0){if(f==="[")e++;else if(f==="]"&&e>0)e--;else if(e===0){if(f==="(")l++;else if(f===")"&&l>0)l--;else if(f==="|"&&l===0){u.push(p),p="";continue}}}p+=f;}return u.push(p),u},"splitTopLevel"),_t=a(t=>{let u=false;for(let e of t){if(u===true){u=false;continue}if(e==="\\"){u=true;continue}if(/[?*+@!()[\]{}]/.test(e))return false}return true},"isPlainBranch"),Ne=a(t=>{let u=t.trim(),e=true;for(;e===true;)e=false,/^@\([^\\()[\]{}|]+\)$/.test(u)&&(u=u.slice(2,-1),e=true);if(_t(u))return u.replace(/\\(.)/g,"$1")},"normalizeSimpleBranch"),ht=a(t=>{let u=t.map(Ne).filter(Boolean);for(let e=0;e<u.length;e++)for(let l=e+1;l<u.length;l++){let c=u[e],p=u[l],i=c[0];if(!(!i||c!==i.repeat(c.length)||p!==i.repeat(p.length))&&(c===p||c.startsWith(p)||p.startsWith(c)))return true}return false},"hasRepeatedCharPrefixOverlap"),_e=a((t,u=true)=>{if(t[0]!=="+"&&t[0]!=="*"||t[1]!=="(")return;let e=0,l=0,c=0,p=false;for(let i=1;i<t.length;i++){let f=t[i];if(p===true){p=false;continue}if(f==="\\"){p=true;continue}if(f==='"'){c=c===1?0:1;continue}if(c!==1){if(f==="["){e++;continue}if(f==="]"&&e>0){e--;continue}if(!(e>0)){if(f==="("){l++;continue}if(f===")"&&(l--,l===0))return u===true&&i!==t.length-1?void 0:{type:t[0],body:t.slice(2,i),end:i}}}}},"parseRepeatedExtglob"),Et=a(t=>{let u=0,e=[];for(;u<t.length;){let c=_e(t.slice(u),false);if(!c||c.type!=="*")return;let p=ve(c.body).map(f=>f.trim());if(p.length!==1)return;let i=Ne(p[0]);if(!i||i.length!==1)return;e.push(i),u+=c.end+1;}return e.length<1?void 0:`${e.length===1?U.escapeRegex(e[0]):`[${e.map(c=>U.escapeRegex(c)).join("")}]`}*`},"getStarExtglobSequenceOutput"),gt=a(t=>{let u=0,e=t.trim(),l=_e(e);for(;l;)u++,e=l.body.trim(),l=_e(e);return u},"repeatedExtglobRecursion"),St=a((t,u)=>{if(u.maxExtglobRecursion===false)return {risky:false};let e=typeof u.maxExtglobRecursion=="number"?u.maxExtglobRecursion:ne.DEFAULT_MAX_EXTGLOB_RECURSION,l=ve(t).map(c=>c.trim());if(l.length>1&&(l.some(c=>c==="")||l.some(c=>/^[*?]+$/.test(c))||ht(l)))return {risky:true};for(let c of l){let p=Et(c);if(p)return {risky:true,safeOutput:p};if(gt(c)>e)return {risky:true}}return {risky:false}},"analyzeRepeatedExtglob"),he=a((t,u)=>{if(typeof t!="string")throw new TypeError("Expected a string");t=Ie[t]||t;let e={...u},l=typeof e.maxLength=="number"?Math.min(ae,e.maxLength):ae,c=t.length;if(c>l)throw new SyntaxError(`Input length: ${c}, exceeds maximum allowed length: ${l}`);let p={type:"bos",value:"",output:e.prepend||""},i=[p],f=e.capture?"":"?:",b=ne.globChars(e.windows),N=ne.extglobChars(b),{DOT_LITERAL:g,PLUS_LITERAL:k,SLASH_LITERAL:O,ONE_CHAR:B,DOTS_SLASH:S,NO_DOT:v,NO_DOT_SLASH:V,NO_DOTS_SLASH:W,QMARK:y,QMARK_NO_DOT:q,STAR:Y,START_ANCHOR:D}=b,w=a(a=>`(${f}(?:(?!${D}${a.dot?S:g}).)*?)`,"globstar"),P=e.dot?"":v,A=e.dot?y:q,E=e.bash===true?w(e):Y;e.capture&&(E=`(${E})`),typeof e.noext=="boolean"&&(e.noextglob=e.noext);let n={input:t,index:-1,start:0,dot:e.dot===true,consumed:"",output:"",prefix:"",backtrack:false,negated:false,brackets:0,braces:0,parens:0,quotes:0,globstar:false,tokens:i};t=U.removePrefix(t,n),c=t.length;let G=[],m=[],H=[],r=p,s,K=a(()=>n.index===c-1,"eos"),x=n.peek=(a=1)=>t[n.index+a],$=n.advance=()=>t[++n.index]||"",j=a(()=>t.slice(n.index+1),"remaining"),X=a((a="",L=0)=>{n.consumed+=a,n.index+=L;},"consume"),Z=a(a=>{n.output+=a.output!=null?a.output:a.value,X(a.value);},"append"),Ke=a(()=>{let a=1;for(;x()==="!"&&(x(2)!=="("||x(3)==="?");)$(),n.start++,a++;return a%2===0?false:(n.negated=true,n.start++,true)},"negate"),ue=a(a=>{n[a]++,H.push(a);},"increment"),z=a(a=>{n[a]--,H.pop();},"decrement"),_=a(a=>{if(r.type==="globstar"){let L=n.braces>0&&(a.type==="comma"||a.type==="brace"),o=a.extglob===true||G.length&&(a.type==="pipe"||a.type==="paren");a.type!=="slash"&&a.type!=="paren"&&!L&&!o&&(n.output=n.output.slice(0,-r.output.length),r.type="star",r.value="*",r.output=E,n.output+=r.output);}if(G.length&&a.type!=="paren"&&(G[G.length-1].inner+=a.value),(a.value||a.output)&&Z(a),r&&r.type==="text"&&a.type==="text"){r.output=(r.output||r.value)+a.value,r.value+=a.value;return}a.prev=r,i.push(a),r=a;},"push"),oe=a((a,L)=>{let o={...N[L],conditions:1,inner:""};o.prev=r,o.parens=n.parens,o.output=n.output,o.startIndex=n.index,o.tokensIndex=i.length;let h=(e.capture?"(":"")+o.open;ue("parens"),_({type:a,value:L,output:n.output?"":B}),_({type:"paren",extglob:true,value:$(),output:h}),G.push(o);},"extglobOpen"),Xe=a(a=>{let L=t.slice(a.startIndex,n.index+1),o=t.slice(a.startIndex+2,n.index),h=St(o,e);if((a.type==="plus"||a.type==="star")&&h.risky){let d=h.safeOutput?(a.output?"":B)+(e.capture?`(${h.safeOutput})`:h.safeOutput):void 0,F=i[a.tokensIndex];F.type="text",F.value=L,F.output=d||U.escapeRegex(L);for(let Q=a.tokensIndex+1;Q<i.length;Q++)i[Q].value="",i[Q].output="",delete i[Q].suffix;n.output=a.output+F.output,n.backtrack=true,_({type:"paren",extglob:true,value:s,output:""}),z("parens");return}let C=a.close+(e.capture?")":""),I;if(a.type==="negate"){let d=E;if(a.inner&&a.inner.length>1&&a.inner.includes("/")&&(d=w(e)),(d!==E||K()||/^\)+$/.test(j()))&&(C=a.close=`)$))${d}`),a.inner.includes("*")&&(I=j())&&/^\.[^\\/.]+$/.test(I)){let F=he(I,{...u,fastpaths:false}).output;C=a.close=`)${F})${d})`;}a.prev.type==="bos"&&(n.negatedExtglob=true);}_({type:"paren",extglob:true,value:s,output:C}),z("parens");},"extglobClose");if(e.fastpaths!==false&&!/(^[*!]|[/()[\]{}"])/.test(t)){let a=false,L=t.replace(At,(o,h,C,I,d,F)=>I==="\\"?(a=true,o):I==="?"?h?h+I+(d?y.repeat(d.length):""):F===0?A+(d?y.repeat(d.length):""):y.repeat(C.length):I==="."?g.repeat(C.length):I==="*"?h?h+I+(d?E:""):E:h?o:`\\${o}`);return a===true&&(e.unescape===true?L=L.replace(/\\/g,""):L=L.replace(/\\+/g,o=>o.length%2===0?"\\\\":o?"\\":"")),L===t&&e.contains===true?(n.output=t,n):(n.output=U.wrapOutput(L,n,u),n)}for(;!K();){if(s=$(),s==="\0")continue;if(s==="\\"){let o=x();if(o==="/"&&e.bash!==true||o==="."||o===";")continue;if(!o){s+="\\",_({type:"text",value:s});continue}let h=/^\\+/.exec(j()),C=0;if(h&&h[0].length>2&&(C=h[0].length,n.index+=C,C%2!==0&&(s+="\\")),e.unescape===true?s=$():s+=$(),n.brackets===0){_({type:"text",value:s});continue}}if(n.brackets>0&&(s!=="]"||r.value==="["||r.value==="[^")){if(e.posix!==false&&s===":"){let o=r.value.slice(1);if(o.includes("[")&&(r.posix=true,o.includes(":"))){let h=r.value.lastIndexOf("["),C=r.value.slice(0,h),I=r.value.slice(h+2),d=pt[I];if(d){r.value=C+d,n.backtrack=true,$(),!p.output&&i.indexOf(r)===1&&(p.output=B);continue}}}(s==="["&&x()!==":"||s==="-"&&x()==="]")&&(s=`\\${s}`),s==="]"&&(r.value==="["||r.value==="[^")&&(s=`\\${s}`),e.posix===true&&s==="!"&&r.value==="["&&(s="^"),r.value+=s,Z({value:s});continue}if(n.quotes===1&&s!=='"'){s=U.escapeRegex(s),r.value+=s,Z({value:s});continue}if(s==='"'){n.quotes=n.quotes===1?0:1,e.keepQuotes===true&&_({type:"text",value:s});continue}if(s==="("){ue("parens"),_({type:"paren",value:s});continue}if(s===")"){if(n.parens===0&&e.strictBrackets===true)throw new SyntaxError(ee("opening","("));let o=G[G.length-1];if(o&&n.parens===o.parens+1){Xe(G.pop());continue}_({type:"paren",value:s,output:n.parens?")":"\\)"}),z("parens");continue}if(s==="["){if(e.nobracket===true||!j().includes("]")){if(e.nobracket!==true&&e.strictBrackets===true)throw new SyntaxError(ee("closing","]"));s=`\\${s}`;}else ue("brackets");_({type:"bracket",value:s});continue}if(s==="]"){if(e.nobracket===true||r&&r.type==="bracket"&&r.value.length===1){_({type:"text",value:s,output:`\\${s}`});continue}if(n.brackets===0){if(e.strictBrackets===true)throw new SyntaxError(ee("opening","["));_({type:"text",value:s,output:`\\${s}`});continue}z("brackets");let o=r.value.slice(1);if(r.posix!==true&&o[0]==="^"&&!o.includes("/")&&(s=`/${s}`),r.value+=s,Z({value:s}),e.literalBrackets===false||U.hasRegexChars(o))continue;let h=U.escapeRegex(r.value);if(n.output=n.output.slice(0,-r.value.length),e.literalBrackets===true){n.output+=h,r.value=h;continue}r.value=`(${f}${h}|${r.value})`,n.output+=r.value;continue}if(s==="{"&&e.nobrace!==true){ue("braces");let o={type:"brace",value:s,output:"(",outputIndex:n.output.length,tokensIndex:n.tokens.length};m.push(o),_(o);continue}if(s==="}"){let o=m[m.length-1];if(e.nobrace===true||!o){_({type:"text",value:s,output:s});continue}let h=")";if(o.dots===true){let C=i.slice(),I=[];for(let d=C.length-1;d>=0&&(i.pop(),C[d].type!=="brace");d--)C[d].type!=="dots"&&I.unshift(C[d].value);h=Rt(I,e),n.backtrack=true;}if(o.comma!==true&&o.dots!==true){let C=n.output.slice(0,o.outputIndex),I=n.tokens.slice(o.tokensIndex);o.value=o.output="\\{",s=h="\\}",n.output=C;for(let d of I)n.output+=d.output||d.value;}_({type:"brace",value:s,output:h}),z("braces"),m.pop();continue}if(s==="|"){G.length>0&&G[G.length-1].conditions++,_({type:"text",value:s});continue}if(s===","){let o=s,h=m[m.length-1];h&&H[H.length-1]==="braces"&&(h.comma=true,o="|"),_({type:"comma",value:s,output:o});continue}if(s==="/"){if(r.type==="dot"&&n.index===n.start+1){n.start=n.index+1,n.consumed="",n.output="",i.pop(),r=p;continue}_({type:"slash",value:s,output:O});continue}if(s==="."){if(n.braces>0&&r.type==="dot"){r.value==="."&&(r.output=g);let o=m[m.length-1];r.type="dots",r.output+=s,r.value+=s,o.dots=true;continue}if(n.braces+n.parens===0&&r.type!=="bos"&&r.type!=="slash"){_({type:"text",value:s,output:g});continue}_({type:"dot",value:s,output:g});continue}if(s==="?"){if(!(r&&r.value==="(")&&e.noextglob!==true&&x()==="("&&x(2)!=="?"){oe("qmark",s);continue}if(r&&r.type==="paren"){let h=x(),C=s;(r.value==="("&&!/[!=<:]/.test(h)||h==="<"&&!/<([!=]|\w+>)/.test(j()))&&(C=`\\${s}`),_({type:"text",value:s,output:C});continue}if(e.dot!==true&&(r.type==="slash"||r.type==="bos")){_({type:"qmark",value:s,output:q});continue}_({type:"qmark",value:s,output:y});continue}if(s==="!"){if(e.noextglob!==true&&x()==="("&&(x(2)!=="?"||!/[!=<:]/.test(x(3)))){oe("negate",s);continue}if(e.nonegate!==true&&n.index===0){Ke();continue}}if(s==="+"){if(e.noextglob!==true&&x()==="("&&x(2)!=="?"){oe("plus",s);continue}if(r&&r.value==="("||e.regex===false){_({type:"plus",value:s,output:k});continue}if(r&&(r.type==="bracket"||r.type==="paren"||r.type==="brace")||n.parens>0){_({type:"plus",value:s});continue}_({type:"plus",value:k});continue}if(s==="@"){if(e.noextglob!==true&&x()==="("&&x(2)!=="?"){_({type:"at",extglob:true,value:s,output:""});continue}_({type:"text",value:s});continue}if(s!=="*"){(s==="$"||s==="^")&&(s=`\\${s}`);let o=ft.exec(j());o&&(s+=o[0],n.index+=o[0].length),_({type:"text",value:s});continue}if(r&&(r.type==="globstar"||r.star===true)){r.type="star",r.star=true,r.value+=s,r.output=E,n.backtrack=true,n.globstar=true,X(s);continue}let a=j();if(e.noextglob!==true&&/^\([^?]/.test(a)){oe("star",s);continue}if(r.type==="star"){if(e.noglobstar===true){X(s);continue}let o=r.prev,h=o.prev,C=o.type==="slash"||o.type==="bos",I=h&&(h.type==="star"||h.type==="globstar");if(e.bash===true&&(!C||a[0]&&a[0]!=="/")){_({type:"star",value:s,output:""});continue}let d=n.braces>0&&(o.type==="comma"||o.type==="brace"),F=G.length&&(o.type==="pipe"||o.type==="paren");if(!C&&o.type!=="paren"&&!d&&!F){_({type:"star",value:s,output:""});continue}for(;a.slice(0,3)==="/**";){let Q=t[n.index+4];if(Q&&Q!=="/")break;a=a.slice(3),X("/**",3);}if(o.type==="bos"&&K()){r.type="globstar",r.value+=s,r.output=w(e),n.output=r.output,n.globstar=true,X(s);continue}if(o.type==="slash"&&o.prev.type!=="bos"&&!I&&K()){n.output=n.output.slice(0,-(o.output+r.output).length),o.output=`(?:${o.output}`,r.type="globstar",r.output=w(e)+(e.strictSlashes?")":"|$)"),r.value+=s,n.globstar=true,n.output+=o.output+r.output,X(s);continue}if(o.type==="slash"&&o.prev.type!=="bos"&&a[0]==="/"){let Q=a[1]!==void 0?"|$":"";n.output=n.output.slice(0,-(o.output+r.output).length),o.output=`(?:${o.output}`,r.type="globstar",r.output=`${w(e)}${O}|${O}${Q})`,r.value+=s,n.output+=o.output+r.output,n.globstar=true,X(s+$()),_({type:"slash",value:"/",output:""});continue}if(o.type==="bos"&&a[0]==="/"){r.type="globstar",r.value+=s,r.output=`(?:^|${O}|${w(e)}${O})`,n.output=r.output,n.globstar=true,X(s+$()),_({type:"slash",value:"/",output:""});continue}n.output=n.output.slice(0,-r.output.length),r.type="globstar",r.output=w(e),r.value+=s,n.output+=r.output,n.globstar=true,X(s);continue}let L={type:"star",value:s,output:E};if(e.bash===true){L.output=".*?",(r.type==="bos"||r.type==="slash")&&(L.output=P+L.output),_(L);continue}if(r&&(r.type==="bracket"||r.type==="paren")&&e.regex===true){L.output=s,_(L);continue}(n.index===n.start||r.type==="slash"||r.type==="dot")&&(r.type==="dot"?(n.output+=V,r.output+=V):e.dot===true?(n.output+=W,r.output+=W):(n.output+=P,r.output+=P),x()!=="*"&&(n.output+=B,r.output+=B)),_(L);}for(;n.brackets>0;){if(e.strictBrackets===true)throw new SyntaxError(ee("closing","]"));n.output=U.escapeLast(n.output,"["),z("brackets");}for(;n.parens>0;){if(e.strictBrackets===true)throw new SyntaxError(ee("closing",")"));n.output=U.escapeLast(n.output,"("),z("parens");}for(;n.braces>0;){if(e.strictBrackets===true)throw new SyntaxError(ee("closing","}"));n.output=U.escapeLast(n.output,"{"),z("braces");}if(e.strictSlashes!==true&&(r.type==="star"||r.type==="bracket")&&_({type:"maybe_slash",value:"",output:`${O}?`}),n.backtrack===true){n.output="";for(let a of n.tokens)n.output+=a.output!=null?a.output:a.value,a.suffix&&(n.output+=a.suffix);}return n},"parse");he.fastpaths=(t,u)=>{let e={...u},l=typeof e.maxLength=="number"?Math.min(ae,e.maxLength):ae,c=t.length;if(c>l)throw new SyntaxError(`Input length: ${c}, exceeds maximum allowed length: ${l}`);t=Ie[t]||t;let{DOT_LITERAL:p,SLASH_LITERAL:i,ONE_CHAR:f,DOTS_SLASH:b,NO_DOT:N,NO_DOTS:g,NO_DOTS_SLASH:k,STAR:O,START_ANCHOR:B}=ne.globChars(e.windows),S=e.dot?g:N,v=e.dot?k:N,V=e.capture?"":"?:",W={negated:false,prefix:""},y=e.bash===true?".*?":O;e.capture&&(y=`(${y})`);let q=a(P=>P.noglobstar===true?y:`(${V}(?:(?!${B}${P.dot?b:p}).)*?)`,"globstar"),Y=a(P=>{switch(P){case "*":return `${S}${f}${y}`;case ".*":return `${p}${f}${y}`;case "*.*":return `${S}${y}${p}${f}${y}`;case "*/*":return `${S}${y}${i}${f}${v}${y}`;case "**":return S+q(e);case "**/*":return `(?:${S}${q(e)}${i})?${v}${f}${y}`;case "**/*.*":return `(?:${S}${q(e)}${i})?${v}${y}${p}${f}${y}`;case "**/.*":return `(?:${S}${q(e)}${i})?${p}${f}${y}`;default:{let A=/^(.*?)\.(\w+)$/.exec(P);if(!A)return;let E=Y(A[1]);return E?E+p+A[2]:void 0}}},"create"),D=U.removePrefix(t,W),w=Y(D);return w&&e.strictSlashes!==true&&(w+=`${i}?`),w};we.exports=he;});var Ge=b((It,Be)=>{var xt=me(),Ee=ke(),De=se(),bt=te(),yt=a(t=>t&&typeof t=="object"&&!Array.isArray(t),"isObject"),T=a((t,u,e=false)=>{if(Array.isArray(t)){let g=t.map(O=>T(O,u,e));return a(O=>{for(let B of g){let S=B(O);if(S)return S}return false},"arrayMatcher")}let l=yt(t)&&t.tokens&&t.input;if(t===""||typeof t!="string"&&!l)throw new TypeError("Expected pattern to be a non-empty string");let c=u||{},p=c.windows,i=l?T.compileRe(t,u):T.makeRe(t,u,false,true),f=i.state;delete i.state;let b=a(()=>false,"isIgnored");if(c.ignore){let g={...u,ignore:null,onMatch:null,onResult:null};b=T(c.ignore,g,e);}let N=a((g,k=false)=>{let{isMatch:O,match:B,output:S}=T.test(g,i,u,{glob:t,posix:p}),v={glob:t,state:f,regex:i,posix:p,input:g,output:S,match:B,isMatch:O};return typeof c.onResult=="function"&&c.onResult(v),O===false?(v.isMatch=false,k?v:false):b(g)?(typeof c.onIgnore=="function"&&c.onIgnore(v),v.isMatch=false,k?v:false):(typeof c.onMatch=="function"&&c.onMatch(v),k?v:true)},"matcher");return e&&(N.state=f),N},"picomatch");T.test=(t,u,e,{glob:l,posix:c}={})=>{if(typeof t!="string")throw new TypeError("Expected input to be a string");if(t==="")return {isMatch:false,output:""};let p=e||{},i=p.format||(c?De.toPosixSlashes:null),f=t===l,b=f&&i?i(t):t;return f===false&&(b=i?i(t):t,f=b===l),(f===false||p.capture===true)&&(p.matchBase===true||p.basename===true?f=T.matchBase(t,u,e,c):f=u.exec(b)),{isMatch:!!f,match:f,output:b}};T.matchBase=(t,u,e)=>(u instanceof RegExp?u:T.makeRe(u,e)).test(De.basename(t));T.isMatch=(t,u,e)=>T(u,e)(t);T.parse=(t,u)=>Array.isArray(t)?t.map(e=>T.parse(e,u)):Ee(t,{...u,fastpaths:false});T.scan=(t,u)=>xt(t,u);T.compileRe=(t,u,e=false,l=false)=>{if(e===true)return t.output;let c=u||{},p=c.contains?"":"^",i=c.contains?"":"$",f=`${p}(?:${t.output})${i}`;t&&t.negated===true&&(f=`^(?!${f}).*$`);let b=T.toRegex(f,u);return l===true&&(b.state=t),b};T.makeRe=(t,u={},e=false,l=false)=>{if(!t||typeof t!="string")throw new TypeError("Expected a non-empty string");let c={negated:false,fastpaths:true};return u.fastpaths!==false&&(t[0]==="."||t[0]==="*")&&(c.output=Ee.fastpaths(t,u)),c.output||(c=Ee(t,u)),T.compileRe(c,u,e,l)};T.toRegex=(t,u)=>{try{let e=u||{};return new RegExp(t,e.flags||(e.nocase?"i":""))}catch(e){if(u&&u.debug===true)throw e;return /$^/}};T.constants=bt;Be.exports=T;});var Ct=b((Nt,Ue)=>{var Me=Ge(),dt=se();function Pe(t,u,e=false){return u&&(u.windows===null||u.windows===void 0)&&(u={...u,windows:dt.isWindows()}),Me(t,u,e)}a(Pe,"picomatch");Object.assign(Pe,Me);Ue.exports=Pe;});export{Ct as a};
@@ -0,0 +1,3 @@
1
+ #!/usr/bin/env node
2
+ import {createRequire}from'node:module';import {b as b$1,a as a$2}from'./chunk-ICU4V73X.mjs';import {a as a$3}from'./chunk-AA43FODB.mjs';import {a as a$1}from'./chunk-HVN6HBWZ.mjs';import {e,f,g}from'./chunk-7GCKCCHU.mjs';import {d as d$1}from'./chunk-SPHWZS5P.mjs';import {b}from'./chunk-OQDZJP55.mjs';import {a}from'./chunk-L7O2RSTN.mjs';globalThis.require=createRequire(import.meta.url);
3
+ async function G(u,t={}){let a=new a$1,n=await e(u),o=f(n);if(o.packages.length===0){b.warn("No publishable workspace packages found");return}let k=n.packages.length-o.packages.length;k>0&&b.info(`Skipping ${k} private workspace package(s)`);let i;try{i=b$1(o.adjacency);}catch(e){throw e instanceof a$2&&b.error(`Cannot push: ${e.message}`),e}let C=new Map(o.packages.map(e=>[e.name,e.dir]));b.info(`Pushing ${i.length} packages in dependency order`),d$1(`[batch-push] Order: ${i.join(" \u2192 ")}`);let f$1=g(o.adjacency),c=new Set(t.skipPackages??[]);for(let e of [...c])d(e,f$1,c);let w=0,r=0,p=0;for(let e of i){let y=C.get(e);if(y){if(c.has(e)){d$1(`[batch-push] Skipping ${e}: dependency build/push failed`),p++;continue}try{(await a$3(y,t)).failedConsumers>0?(r++,d(e,f$1,c)):w++;}catch(l){b.warn(`Failed to push ${e}: ${l instanceof Error?l.message:String(l)}`),r++,d(e,f$1,c);}}}let $=[r>0?`${r} failed`:null,p>0?`${p} skipped`:null].filter(e=>e!==null),g$1=`Pushed ${w}/${i.length} packages in ${a.elapsed()}`+($.length>0?` (${$.join(", ")})`:"");if(r>0)throw b.warn(g$1),new Error(`Failed to push ${r} workspace package(s)`);if(p>0){b.warn(g$1);return}b.success(g$1);}a(G,"doPushAll");function d(u,t,a){for(let n of t.get(u)??[])a.has(n)||(a.add(n),d(n,t,a));}a(d,"markTransitiveDependentsBlocked");export{G as a};
@@ -1,3 +1,3 @@
1
1
  #!/usr/bin/env node
2
- import {createRequire}from'node:module';import {a}from'./chunk-2VCW5RWI.mjs';globalThis.require=createRequire(import.meta.url);
2
+ import {createRequire}from'node:module';import {a}from'./chunk-L7O2RSTN.mjs';globalThis.require=createRequire(import.meta.url);
3
3
  var s=class{static{a(this,"Timer");}start=performance.now();elapsedMs(){return performance.now()-this.start}elapsed(){let e=this.elapsedMs();return e>=1e3?`${(e/1e3).toFixed(1)}s`:`${Math.round(e)}ms`}};export{s as a};
@@ -1,3 +1,3 @@
1
1
  #!/usr/bin/env node
2
- import {createRequire}from'node:module';import {a}from'./chunk-2VCW5RWI.mjs';globalThis.require=createRequire(import.meta.url);
2
+ import {createRequire}from'node:module';import {a}from'./chunk-L7O2RSTN.mjs';globalThis.require=createRequire(import.meta.url);
3
3
  var d=class extends Error{static{a(this,"CycleError");}cycle;constructor(t){super(`Dependency cycle detected: ${t.join(" \u2192 ")}`),this.name="CycleError",this.cycle=t;}};function u(s){let t=new Map,i=new Map;for(let e of s.keys())t.has(e)||t.set(e,0),i.has(e)||i.set(e,[]);for(let[e,n]of s)for(let o of n){if(!s.has(o))continue;t.set(e,(t.get(e)??0)+1);let g=i.get(o);g?g.push(e):i.set(o,[e]);}let r=[];for(let[e,n]of t)n===0&&r.push(e);let c=[];for(;r.length>0;){let e=r.shift();c.push(e);for(let n of i.get(e)??[]){let o=(t.get(n)??1)-1;t.set(n,o),o===0&&r.push(n);}}if(c.length!==s.size){let e=[...s.keys()].filter(n=>!c.includes(n));throw new d(e)}return c}a(u,"topoSort");export{d as a,u as b};
@@ -1,3 +1,3 @@
1
1
  #!/usr/bin/env node
2
- import {createRequire}from'node:module';import {d}from'./chunk-NBSJGM2X.mjs';import {a}from'./chunk-2VCW5RWI.mjs';import {readFile,stat}from'fs/promises';import {join,resolve}from'path';globalThis.require=createRequire(import.meta.url);
2
+ import {createRequire}from'node:module';import {d}from'./chunk-SPHWZS5P.mjs';import {a}from'./chunk-L7O2RSTN.mjs';import {readFile,stat}from'fs/promises';import {join,resolve}from'path';globalThis.require=createRequire(import.meta.url);
3
3
  async function S(s){let t=[],n;try{n=await readFile(join(s,"package.json"),"utf-8");}catch{return t.push({code:"NO_PACKAGE_JSON",severity:"error",message:"No package.json found"}),t}let e;try{e=JSON.parse(n);}catch{return t.push({code:"INVALID_PACKAGE_JSON",severity:"error",message:"package.json is not valid JSON"}),t}let i=e.files;if((!i||i.length===0)&&t.push({code:"EMPTY_FILES",severity:"warn",message:'No "files" field in package.json \u2014 npm will include almost everything. Consider adding a "files" field to control what gets published.'}),typeof e.main=="string"&&await r(s,e.main,"main",t),typeof e.module=="string"&&await r(s,e.module,"module",t),typeof e.types=="string"?await r(s,e.types,"types",t):typeof e.typings=="string"&&await r(s,e.typings,"typings",t),typeof e.exports=="string"?await r(s,e.exports,"exports",t):e.exports&&typeof e.exports=="object"&&await P(s,e.exports,t),typeof e.bin=="string")await r(s,e.bin,"bin",t);else if(e.bin&&typeof e.bin=="object")for(let[f,c]of Object.entries(e.bin))typeof c=="string"&&await r(s,c,`bin.${f}`,t);return d(`[preflight] ${t.length} issue(s) found in ${s}`),t}a(S,"runPreflightChecks");async function l(s){try{return (await stat(s)).isFile()}catch{return false}}a(l,"fileExists");async function r(s,t,n,e){let i=resolve(s,t);await l(i)||e.push({code:"MISSING_PATH",severity:"warn",message:`"${n}" points to "${t}" which does not exist`});}a(r,"checkPath");async function P(s,t,n){for(let[e,i]of Object.entries(t))if(typeof i=="string"){if(i.startsWith(".")){let f=resolve(s,i);await l(f)||n.push({code:"EXPORTS_PATH_MISSING",severity:"warn",message:`exports["${e}"] points to "${i}" which does not exist`});}}else i&&typeof i=="object"&&await h(s,e,i,n);}a(P,"checkExports");async function h(s,t,n,e){let i=Object.keys(n),f=i.indexOf("types"),c=i.indexOf("import"),g=i.indexOf("require"),y=i.indexOf("default");if(f!==-1){let d=Math.min(c===-1?1/0:c,g===-1?1/0:g,y===-1?1/0:y);f>d&&d!==1/0&&e.push({code:"TYPES_CONDITION_ORDER",severity:"warn",message:`exports["${t}"].types should come before import/require/default for TypeScript to resolve it correctly`});}for(let[d,o]of Object.entries(n))if(typeof o=="string"&&o.startsWith(".")){let m=resolve(s,o);await l(m)||e.push({code:"EXPORTS_PATH_MISSING",severity:"warn",message:`exports["${t}"].${d} points to "${o}" which does not exist`});}else o&&typeof o=="object"&&await h(s,t,o,e);}a(h,"checkExportsConditions");export{S as a};
@@ -0,0 +1,3 @@
1
+ #!/usr/bin/env node
2
+ import {createRequire}from'node:module';import {a}from'./chunk-L7O2RSTN.mjs';globalThis.require=createRequire(import.meta.url);
3
+ function r(o){o&&process.stderr.write("\x07");}a(r,"ringBell");export{r as a};
@@ -0,0 +1,3 @@
1
+ #!/usr/bin/env node
2
+ import {createRequire}from'node:module';globalThis.require=createRequire(import.meta.url);
3
+ var g=Object.create;var e=Object.defineProperty;var h=Object.getOwnPropertyDescriptor;var i=Object.getOwnPropertyNames;var j=Object.getPrototypeOf,k=Object.prototype.hasOwnProperty;var m=(b,a)=>e(b,"name",{value:a,configurable:true});var n=(b,a)=>()=>{try{return a||b((a={exports:{}}).exports,a),a.exports}catch(c){throw a=0,c}};var l=(b,a,c,f)=>{if(a&&typeof a=="object"||typeof a=="function")for(let d of i(a))!k.call(b,d)&&d!==c&&e(b,d,{get:()=>a[d],enumerable:!(f=h(a,d))||f.enumerable});return b};var o=(b,a,c)=>(c=b!=null?g(j(b)):{},l(a||!b||!b.__esModule?e(c,"default",{value:b,enumerable:true}):c,b));export{m as a,n as b,o as c};
@@ -0,0 +1,3 @@
1
+ #!/usr/bin/env node
2
+ import {createRequire}from'node:module';import {o,p,F,D,B as B$1,G,C as C$1,l}from'./chunk-BH2WXCLS.mjs';import {d}from'./chunk-SPHWZS5P.mjs';import {a}from'./chunk-L7O2RSTN.mjs';import {readFile,readdir}from'fs/promises';import {join}from'path';globalThis.require=createRequire(import.meta.url);
3
+ var S=3;async function O(i,a,t,s){let o$1=join(t,".knarr-meta.json"),r;try{r=JSON.parse(await readFile(o$1,"utf-8"));}catch{d(`[history] Could not read meta from ${o$1}, skipping history capture`);return}let e=r.buildId;if(!e){d("[history] No buildId in meta, skipping history capture");return}let p$1=o(i,a),y=p(i,a,e);if(await F(y)){d(`[history] Build ${e} already in history, skipping`);return}await D(p$1);let d$1=y+`.tmp-${process.pid}`;try{await D(d$1);let l=join(t,"package");await F(l)&&await B$1(l,join(d$1,"package")),await G(join(d$1,".knarr-meta.json"),JSON.stringify(r,null,2)),await B$1(d$1,y),d(`[history] Captured build ${e} to history`);}catch(l){d(`[history] Failed to capture history: ${l instanceof Error?l.message:String(l)}`),await C$1(d$1);}await C(i,a,s??S);}a(O,"captureHistory");async function T(i,a){let t=o(i,a);if(!await F(t))return [];let s;try{s=await readdir(t);}catch{return []}let o$1=[];for(let r of s){let e=join(t,r),p=join(e,".knarr-meta.json");try{let y=JSON.parse(await readFile(p,"utf-8"));o$1.push({buildId:y.buildId??r,contentHash:y.contentHash,publishedAt:y.publishedAt,sourcePath:y.sourcePath,packageDir:join(e,"package")});}catch{}}return o$1.sort((r,e)=>new Date(e.publishedAt).getTime()-new Date(r.publishedAt).getTime()),o$1}a(T,"listHistory");async function N(i,a,t){let s=p(i,a,t),o=join(s,".knarr-meta.json");try{let r=JSON.parse(await readFile(o,"utf-8"));return {buildId:r.buildId??t,contentHash:r.contentHash,publishedAt:r.publishedAt,sourcePath:r.sourcePath,packageDir:join(s,"package")}}catch{return null}}a(N,"getHistoryEntry");async function R(i,a,t,s){let o=await N(i,a,t);if(!o)return null;let r=l(i,a),e=p(i,a,t),p$1=join(e,"package"),y=join(e,".knarr-meta.json"),d$1=await readFile(y,"utf-8"),u=join(r,"package"),l$1=join(r,".knarr-meta.json");if(!await F(p$1))throw new Error(`History entry ${t} is missing its package directory`);let k=await readFile(l$1,"utf-8").catch(()=>null),g=r+`.restore-old-${process.pid}-${Date.now()}`,j=join(g,"package"),E=false,I=false;try{if((await F(u)||k)&&(await D(g),await F(u)&&await B$1(u,j),k&&await G(join(g,".knarr-meta.json"),k),E=!0),await B$1(p$1,u),I=!0,await G(l$1,d$1),await C$1(e),E)try{await O(i,a,g,s);}finally{await C$1(g);}}catch(x){throw I&&await F(u)?(await D(e),await B$1(u,p$1)):E&&await F(u)&&await C$1(u),E&&await F(j)&&await B$1(j,u),k&&await G(l$1,k),await C$1(g),x}return d(`[history] Restored build ${t} as current`),o}a(R,"restoreHistoryEntry");async function C(i,a,t){if(t<0)return 0;let s=await T(i,a);if(s.length<=t)return 0;let o=s.slice(t),r=0;for(let e of o){let p$1=p(i,a,e.buildId);try{await C$1(p$1),r++,d(`[history] Pruned old build ${e.buildId}`);}catch{}}return r}a(C,"pruneHistory");async function _(i,a){let t=o(i,a);await F(t)&&await C$1(t);}a(_,"clearHistory");function B(i){return i??S}a(B,"resolveHistoryLimit");export{O as a,T as b,N as c,R as d,C as e,_ as f,B as g};
@@ -0,0 +1,3 @@
1
+ #!/usr/bin/env node
2
+ import {createRequire}from'node:module';import {F}from'./chunk-BH2WXCLS.mjs';import {a}from'./chunk-L7O2RSTN.mjs';import {join}from'path';globalThis.require=createRequire(import.meta.url);
3
+ var p=[["vite",["vite.config.ts","vite.config.js","vite.config.mts","vite.config.mjs"]],["next",["next.config.js","next.config.ts","next.config.mjs"]],["webpack",["webpack.config.js","webpack.config.ts"]],["turbo",["turbo.json"]],["rollup",["rollup.config.js","rollup.config.ts","rollup.config.mjs"]]];async function d(o){for(let[l,r]of p)for(let t of r){let n=join(o,t);if(await F(n))return {type:l,configFile:n}}return {type:null,configFile:null}}a(d,"detectBundler");async function m(o){let l=p.flatMap(([e,s])=>s.map(async i=>({type:e,configFile:join(o,i),found:await F(join(o,i))}))),r=await Promise.all(l),t=new Set,n=[];for(let{type:e,configFile:s,found:i}of r)i&&!t.has(e)&&(t.add(e),n.push({type:e,configFile:s}));return n}a(m,"detectAllBundlers");export{d as a,m as b};
@@ -0,0 +1,13 @@
1
+ #!/usr/bin/env node
2
+ import {createRequire}from'node:module';import {c as c$1,a as a$2}from'./chunk-QFHYSC3K.mjs';import {G,q,r,F,D}from'./chunk-BH2WXCLS.mjs';import {a,b}from'./chunk-OQDZJP55.mjs';import {c,a as a$1}from'./chunk-L7O2RSTN.mjs';import {readFile}from'fs/promises';import {join}from'path';globalThis.require=createRequire(import.meta.url);
3
+ var w=c(a(),1);var p='knarr restore --silent || node -e "process.exit(0)"';function P(t){return /\b(?:npx(?:\s+--yes|\s+-y)?|pnpm\s+dlx|yarn\s+dlx|bunx)\s+knarr\s+restore(?:\s|$)/.test(t)}a$1(P,"usesSelfResolvingKnarrCommand");function h(t){return /(?:^|[;&|()\s])(?:(?:npx(?:\s+(?:--yes|-y))?|pnpm\s+dlx|yarn\s+dlx|bunx)\s+)?knarr\s+restore(?:\s|$)/.test(t)}a$1(h,"usesKnarrRestoreCommand");function C(t){let n=t.trim();return n===p||n==="knarr restore --silent"||P(n)}a$1(C,"isStandaloneKnarrRestoreCommand");async function O(t){let n="";try{n=await readFile(t,"utf-8");}catch{}if(n.split(`
4
+ `).some(s=>s.trim()===".knarr/"||s.trim()===".knarr"||s.trim()==="/.knarr/"||s.trim()==="/.knarr"))return false;let l=n.length>0&&!n.endsWith(`
5
+ `)?`
6
+ `:"",o=n.length>0?`
7
+ # knarr local links
8
+ .knarr/
9
+ `:`# knarr local links
10
+ .knarr/
11
+ `;return await G(t,n+l+o),true}a$1(O,"ensureGitignore");async function M(t){let n=await readFile(t,"utf-8"),r=JSON.parse(n);if(r.scripts?.postinstall)return h(r.scripts.postinstall)||b.warn(`Existing postinstall script found. Add ${w.default.cyan(p)} manually if needed.`),false;r.scripts||(r.scripts={}),r.scripts.postinstall=p;let a=n.match(/^(\s+)"/m)?.[1]||" ";return await G(t,JSON.stringify(r,null,a)+`
12
+ `),true}a$1(M,"addPostinstall");async function A(t){let n;try{n=await readFile(t,"utf-8");}catch{return false}let r=JSON.parse(n);if(!r.scripts?.postinstall||!C(r.scripts.postinstall))return false;delete r.scripts.postinstall,Object.keys(r.scripts).length===0&&delete r.scripts;let a=n.match(/^(\s+)"/m)?.[1]||" ";return await G(t,JSON.stringify(r,null,a)+`
13
+ `),true}a$1(A,"removePostinstall");async function E(t,n){let r$1=q(t),a=r(t);if(!await F(a))await D(r$1),await c$1(t,{version:"1",packageManager:n,role:"consumer",links:{}});else {let s=await a$2(t);s.packageManager||(s.packageManager=n,s.role=s.role??"consumer",await c$1(t,s));}let l=join(t,".gitignore");await O(l);let o=join(t,"package.json");await F(o)&&await M(o);}a$1(E,"ensureConsumerInit");export{p as a,P as b,h as c,O as d,M as e,A as f,E as g};
@@ -1,5 +1,5 @@
1
1
  #!/usr/bin/env node
2
- import {createRequire}from'node:module';import {a}from'./chunk-2VCW5RWI.mjs';import {parseArgs}from'util';globalThis.require=createRequire(import.meta.url);
2
+ import {createRequire}from'node:module';import {a}from'./chunk-L7O2RSTN.mjs';import {parseArgs}from'util';globalThis.require=createRequire(import.meta.url);
3
3
  var B=/\d/,H=["-","_","/","."];function G(e=""){if(!B.test(e))return e!==e.toLowerCase()}a(G,"isUppercase");function T(e,s){let n=s??H,a=[];if(!e||typeof e!="string")return a;let o="",r,d;for(let t of e){let u=n.includes(t);if(u===true){a.push(o),o="",r=void 0;continue}let f=G(t);if(d===false){if(r===false&&f===true){a.push(o),o=t,r=f;continue}if(r===true&&f===false&&o.length>1){let p=o.at(-1);a.push(o.slice(0,Math.max(0,o.length-1))),o=p+t,r=f;continue}}o+=t,r=f,d=u;}return a.push(o),a}a(T,"splitByCase");function V(e){return e?e[0].toUpperCase()+e.slice(1):""}a(V,"upperFirst");function W(e){return e?e[0].toLowerCase()+e.slice(1):""}a(W,"lowerFirst");function z(e,s){return e?(Array.isArray(e)?e:T(e)).map(n=>V(s?.normalize?n.toLowerCase():n)).join(""):""}a(z,"pascalCase");function O(e,s){return W(z(e||"",s))}a(O,"camelCase");function j(e,s){return e?(Array.isArray(e)?e:T(e)).map(n=>n.toLowerCase()).join(s??"-"):""}a(j,"kebabCase");function D(e){return j(e||"","_")}a(D,"snakeCase");function N(e){return Array.isArray(e)?e:e===void 0?[]:[e]}a(N,"toArray");function x(e,s=""){let n=[];for(let a of e)for(let[o,r]of a.entries())n[o]=Math.max(n[o]||0,r.length);return e.map(a=>a.map((o,r)=>s+o[r===0?"padStart":"padEnd"](n[r])).join(" ")).join(`
4
4
  `)}a(x,"formatLineColumns");function w(e){return typeof e=="function"?e():e}a(w,"resolveValue");var A=class extends Error{static{a(this,"CLIError");}code;constructor(e,s){super(e),this.name="CLIError",this.code=s;}};function Z(e=[],s={}){let n=new Set(s.boolean||[]),a$1=new Set(s.string||[]),o=s.alias||{},r=s.default||{},d=new Map,t=new Map;for(let[i,c]of Object.entries(o)){let h=c;for(let C of h)d.set(i,C),t.has(C)||t.set(C,[]),t.get(C).push(i),d.set(C,i),t.has(i)||t.set(i,[]),t.get(i).push(C);}let u={};function f(i){if(n.has(i))return "boolean";let c=t.get(i)||[];for(let h of c)if(n.has(h))return "boolean";return "string"}a(f,"getType");function p(i){if(a$1.has(i))return true;let c=t.get(i)||[];for(let h of c)if(a$1.has(h))return true;return false}a(p,"isStringType");let $=new Set([...n,...a$1,...Object.keys(o),...Object.values(o).flat(),...Object.keys(r)]);for(let i of $)u[i]||(u[i]={type:f(i),default:r[i]});for(let[i,c]of d.entries())i.length===1&&u[c]&&!u[c].short&&(u[c].short=i);let b=[],m={};for(let i=0;i<e.length;i++){let c=e[i];if(c==="--"){b.push(...e.slice(i));break}if(c.startsWith("--no-")){let h=c.slice(5);m[h]=true;continue}b.push(c);}let y;try{y=parseArgs({args:b,options:Object.keys(u).length>0?u:void 0,allowPositionals:!0,strict:!1});}catch{y={values:{},positionals:b};}let g={_:[]};g._=y.positionals;for(let[i,c]of Object.entries(y.values)){let h=c;f(i)==="boolean"&&typeof c=="string"?h=c!=="false":p(i)&&typeof c=="boolean"&&(h=""),g[i]=h;}for(let[i]of Object.entries(m)){g[i]=false;let c=d.get(i);c&&(g[c]=false);let h=t.get(i);if(h)for(let C of h)g[C]=false;}for(let[i,c]of d.entries())g[i]!==void 0&&g[c]===void 0&&(g[c]=g[i]),g[c]!==void 0&&g[i]===void 0&&(g[i]=g[c]),g[i]!==g[c]&&r[c]===g[c]&&(g[c]=g[i]);return g}a(Z,"parseRawArgs");var J=(()=>{let e=globalThis.process?.env??{};return e.NO_COLOR==="1"||e.TERM==="dumb"||e.TEST||e.CI})(),_=a((e,s=39)=>n=>J?n:`\x1B[${e}m${n}\x1B[${s}m`,"_c"),E=_(1,22),v=_(36),M=_(90),S=_(4,24);function Q(e,s){let n={boolean:[],string:[],alias:{},default:{}},a=P(s);for(let t of a){if(t.type==="positional")continue;t.type==="string"||t.type==="enum"?n.string.push(t.name):t.type==="boolean"&&n.boolean.push(t.name),t.default!==void 0&&(n.default[t.name]=t.default),t.alias&&(n.alias[t.name]=t.alias);let u=O(t.name),f=j(t.name);if(u!==t.name||f!==t.name){let p=N(n.alias[t.name]||[]);u!==t.name&&!p.includes(u)&&p.push(u),f!==t.name&&!p.includes(f)&&p.push(f),p.length>0&&(n.alias[t.name]=p);}}let o=Z(e,n),[...r]=o._,d=new Proxy(o,{get(t,u){return t[u]??t[O(u)]??t[j(u)]}});for(let[,t]of a.entries())if(t.type==="positional"){let u=r.shift();if(u!==void 0)d[t.name]=u;else {if(t.default===void 0&&t.required!==false)throw new A(`Missing required positional argument: ${t.name.toUpperCase()}`,"EARG");d[t.name]=t.default;}}else if(t.type==="enum"){let u=d[t.name],f=t.options||[];if(u!==void 0&&f.length>0&&!f.includes(u))throw new A(`Invalid value for argument: ${v(`--${t.name}`)} (${v(u)}). Expected one of: ${f.map(p=>v(p)).join(", ")}.`,"EARG")}else if(t.required&&d[t.name]===void 0)throw new A(`Missing required argument: --${t.name}`,"EARG");return d}a(Q,"parseArgs");function P(e){let s=[];for(let[n,a]of Object.entries(e||{}))s.push({...a,name:n,alias:N(a.alias)});return s}a(P,"resolveArgs");async function X(e){return Promise.all(e.map(s=>w(s)))}a(X,"resolvePlugins");async function U(e,s){let n=await w(e.args||{}),a=Q(s.rawArgs,n),o={rawArgs:s.rawArgs,args:a,data:s.data,cmd:e},r=await X(e.plugins??[]),d,t;try{for(let p of r)await p.setup?.(o);typeof e.setup=="function"&&await e.setup(o);let f=await w(e.subCommands);if(f&&Object.keys(f).length>0){let p=F(s.rawArgs,n),$=s.rawArgs[p];if($){let b=await k(f,$);if(!b)throw new A(`Unknown command ${v($)}`,"E_UNKNOWN_COMMAND");await U(b,{rawArgs:s.rawArgs.slice(p+1)});}else {let b=await w(e.default);if(b){if(e.run)throw new A("Cannot specify both 'run' and 'default' on the same command.","E_DEFAULT_CONFLICT");let m=await k(f,b);if(!m)throw new A(`Default sub command ${v(b)} not found in subCommands.`,"E_UNKNOWN_COMMAND");await U(m,{rawArgs:s.rawArgs});}else if(!e.run)throw new A("No command specified.","E_NO_COMMAND")}}typeof e.run=="function"&&(d=await e.run(o));}catch(f){t=f;}let u=[];if(typeof e.cleanup=="function")try{await e.cleanup(o);}catch(f){u.push(f);}for(let f of [...r].reverse())try{await f.cleanup?.(o);}catch(p){u.push(p);}if(t)throw t;if(u.length===1)throw u[0];if(u.length>1)throw new Error("Multiple cleanup errors",{cause:u});return {result:d}}a(U,"runCommand");async function L(e,s,n){let a=await w(e.subCommands);if(a&&Object.keys(a).length>0){let o=F(s,await w(e.args||{})),r=s[o],d=await k(a,r);if(d)return L(d,s.slice(o+1),e)}return [e,n]}a(L,"resolveSubCommand");async function k(e,s){if(s in e)return w(e[s]);for(let n of Object.values(e)){let a=await w(n),o=await w(a?.meta);if(o?.alias&&N(o.alias).includes(s))return a}}a(k,"_findSubCommand");function F(e,s){for(let n=0;n<e.length;n++){let a=e[n];if(a==="--")return -1;if(a.startsWith("-")){!a.includes("=")&&Y(a,s)&&n++;continue}return n}return -1}a(F,"findSubCommandIndex");function Y(e,s){let n=e.replace(/^-{1,2}/,""),a=O(n);for(let[o,r]of Object.entries(s))if(!(r.type!=="string"&&r.type!=="enum")&&(a===O(o)||(Array.isArray(r.alias)?r.alias:r.alias?[r.alias]:[]).includes(n)))return true;return false}a(Y,"_isValueFlag");async function ee(e,s){try{console.log(await te(e,s)+`
5
5
  `);}catch(n){console.error(n);}}a(ee,"showUsage");var ne=/^no[-A-Z]/;async function te(e,s){let n=await w(e.meta||{}),a=P(await w(e.args||{})),o=await w(s?.meta||{}),r=`${o.name?`${o.name} `:""}`+(n.name||process.argv[1]),d=[],t=[],u=[],f=[];for(let m of a)if(m.type==="positional"){let y=m.name.toUpperCase(),g=m.required!==false&&m.default===void 0;t.push([v(y+R(m)),I(m,g)]),f.push(g?`<${y}>`:`[${y}]`);}else {let y=m.required===true&&m.default===void 0,g=[...(m.alias||[]).map(i=>`-${i}`),`--${m.name}`].join(", ")+R(m);if(d.push([v(g),I(m,y)]),m.type==="boolean"&&(m.default===true||m.negativeDescription)&&!ne.test(m.name)){let i=[...(m.alias||[]).map(c=>`--no-${c}`),`--no-${m.name}`].join(", ");d.push([v(i),[m.negativeDescription,y?M("(Required)"):""].filter(Boolean).join(" ")]);}y&&f.push(`--${m.name}`+R(m));}if(e.subCommands){let m=[],y=await w(e.subCommands);for(let[g,i]of Object.entries(y)){let c=await w((await w(i))?.meta);if(c?.hidden)continue;let h=N(c?.alias),C=[g,...h].join(", ");u.push([v(C),c?.description||""]),m.push(g,...h);}f.push(m.join("|"));}let p=[],$=n.version||o.version;p.push(M(`${n.description} (${r+($?` v${$}`:"")})`),"");let b=d.length>0||t.length>0;return p.push(`${S(E("USAGE"))} ${v(`${r}${b?" [OPTIONS]":""} ${f.join(" ")}`)}`,""),t.length>0&&(p.push(S(E("ARGUMENTS")),""),p.push(x(t," ")),p.push("")),d.length>0&&(p.push(S(E("OPTIONS")),""),p.push(x(d," ")),p.push("")),u.length>0&&(p.push(S(E("COMMANDS")),""),p.push(x(u," ")),p.push("",`Use ${v(`${r} <command> --help`)} for more information about a command.`)),p.filter(m=>typeof m=="string").join(`
@@ -1,3 +1,3 @@
1
1
  #!/usr/bin/env node
2
- import {createRequire}from'node:module';import {b,a,c}from'./chunk-2VCW5RWI.mjs';import {createInterface}from'readline/promises';import {stdout,stdin}from'process';globalThis.require=createRequire(import.meta.url);
2
+ import {createRequire}from'node:module';import {b,a,c}from'./chunk-L7O2RSTN.mjs';import {createInterface}from'readline/promises';import {stdout,stdin}from'process';globalThis.require=createRequire(import.meta.url);
3
3
  var f=b((v,g)=>{var s=process||{},c=s.argv||[],x=s.env||{},y=!(x.NO_COLOR||c.includes("--no-color"))&&(!!x.FORCE_COLOR||c.includes("--color")||s.platform==="win32"||(s.stdout||{}).isTTY&&x.TERM!=="dumb"||!!x.CI),w=a((e,t,o=e)=>b=>{let i=""+b,n=i.indexOf(t,e.length);return ~n?e+O(i,t,o,n)+t:e+i+t},"formatter"),O=a((e,t,o,b)=>{let i="",n=0;do i+=e.substring(n,b)+o,n=b+t.length,b=e.indexOf(t,n);while(~b);return i+e.substring(n)},"replaceClose"),u=a((e=y)=>{let t=e?w:()=>String;return {isColorSupported:e,reset:t("\x1B[0m","\x1B[0m"),bold:t("\x1B[1m","\x1B[22m","\x1B[22m\x1B[1m"),dim:t("\x1B[2m","\x1B[22m","\x1B[22m\x1B[2m"),italic:t("\x1B[3m","\x1B[23m"),underline:t("\x1B[4m","\x1B[24m"),inverse:t("\x1B[7m","\x1B[27m"),hidden:t("\x1B[8m","\x1B[28m"),strikethrough:t("\x1B[9m","\x1B[29m"),black:t("\x1B[30m","\x1B[39m"),red:t("\x1B[31m","\x1B[39m"),green:t("\x1B[32m","\x1B[39m"),yellow:t("\x1B[33m","\x1B[39m"),blue:t("\x1B[34m","\x1B[39m"),magenta:t("\x1B[35m","\x1B[39m"),cyan:t("\x1B[36m","\x1B[39m"),white:t("\x1B[37m","\x1B[39m"),gray:t("\x1B[90m","\x1B[39m"),bgBlack:t("\x1B[40m","\x1B[49m"),bgRed:t("\x1B[41m","\x1B[49m"),bgGreen:t("\x1B[42m","\x1B[49m"),bgYellow:t("\x1B[43m","\x1B[49m"),bgBlue:t("\x1B[44m","\x1B[49m"),bgMagenta:t("\x1B[45m","\x1B[49m"),bgCyan:t("\x1B[46m","\x1B[49m"),bgWhite:t("\x1B[47m","\x1B[49m"),blackBright:t("\x1B[90m","\x1B[39m"),redBright:t("\x1B[91m","\x1B[39m"),greenBright:t("\x1B[92m","\x1B[39m"),yellowBright:t("\x1B[93m","\x1B[39m"),blueBright:t("\x1B[94m","\x1B[39m"),magentaBright:t("\x1B[95m","\x1B[39m"),cyanBright:t("\x1B[96m","\x1B[39m"),whiteBright:t("\x1B[97m","\x1B[39m"),bgBlackBright:t("\x1B[100m","\x1B[49m"),bgRedBright:t("\x1B[101m","\x1B[49m"),bgGreenBright:t("\x1B[102m","\x1B[49m"),bgYellowBright:t("\x1B[103m","\x1B[49m"),bgBlueBright:t("\x1B[104m","\x1B[49m"),bgMagentaBright:t("\x1B[105m","\x1B[49m"),bgCyanBright:t("\x1B[106m","\x1B[49m"),bgWhiteBright:t("\x1B[107m","\x1B[49m")}},"createColors");g.exports=u();g.exports.createColors=u;});var r=c(f(),1);var m=3;async function k(e,t){let o=createInterface({input:stdin,output:stdout});try{if(t.type==="confirm"){let n=t.initial!==!1?"Y/n":"y/N",a=(await o.question(`${r.default.cyan("?")} ${e} ${r.default.dim(`(${n})`)} `)).trim().toLowerCase();return a===""?t.initial!==!1:a==="y"||a==="yes"}if(t.type==="text"){let n=t.default?r.default.dim(` (${t.default})`):"";return (await o.question(`${r.default.cyan("?")} ${e}${n} `)).trim()||t.default||""}console.log(`${r.default.cyan("?")} ${e}`);for(let n=0;n<t.options.length;n++)console.log(` ${r.default.cyan(`${n+1}.`)} ${t.options[n].label}`);let b=await o.question(`${r.default.dim("Enter number:")} `),i=parseInt(b,10)-1;return i>=0&&i<t.options.length?t.options[i].value:t.options[0].value}finally{o.close();}}a(k,"prompt");var T={get level(){return m},set level(e){m=e;},info(e,...t){m>=3&&console.log(r.default.cyan("i"),e,...t);},success(e,...t){m>=3&&console.log(r.default.green("OK"),e,...t);},warn(e,...t){m>=2&&console.warn(r.default.yellow("!"),e,...t);},error(e,...t){m>=1&&console.error(r.default.red("x"),e,...t);},start(e,...t){m>=3&&console.log(r.default.cyan("..."),e,...t);},debug(e,...t){m>=4&&console.debug(r.default.dim("D"),e,...t);},log(e,...t){m>=3&&console.log(e,...t);},prompt:k};export{f as a,T as b};