ts-pantry 0.11.36 → 0.11.37

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/dist/bin/cli.js CHANGED
@@ -1,5 +1,5 @@
1
1
  #!/usr/bin/env node
2
- import{E as y6,L as k6,M as G6,O as j6,Qa as l6,Ra as n6,S as K6,Ta as p6,Wa as r6,Ya as a6,bb as s6,cb as t6,db as o6,ga as h6,ha as _6,ia as g6,ja as f6,ka as m6,oa as H6,pa as c6,qa as i6}from"../chunk-m6ac5g8w.js";import"../chunk-1d97zpdr.js";import"../chunk-4pgde91f.js";import"../chunk-fndnz9td.js";import{Ib as p,Jb as d6,Lb as X6,Mb as r,Rb as u6,Vb as U6}from"../chunk-4dmq776q.js";import"../chunk-gqzj0edb.js";import"../chunk-hh0g2d6f.js";import{lc as n,mc as q6,nc as J6}from"../chunk-cye3q2ph.js";import"../chunk-72840zva.js";import"../chunk-73sbgnjy.js";import{Jc as v6,Kc as J4}from"../chunk-gzwcsenc.js";import{Oc as h}from"../chunk-6zb03z2q.js";import H from"node:fs";import w from"node:path";import j from"node:process";import{existsSync as $z}from"node:fs";import a from"node:fs/promises";import F6 from"node:os";import s from"node:path";import k from"node:process";import{EventEmitter as Qz}from"node:events";import v from"node:process";import L6 from"node:process";import z6 from"node:process";import u from"node:process";import f from"node:process";import O6 from"node:tty";import cz,{stdin as P4,stdout as C4}from"node:process";import N6,{stdin as nz,stdout as pz}from"node:process";import rz from"node:readline";class D6{configPath;config=null;events=[];retryCount=0;maxRetries=3;retryDelayMs=1000;constructor(){let z=F6.homedir(),$=s.join(z,".config","clapp");this.configPath=s.join($,"telemetry.json")}async isEnabled(){if(k.env.DO_NOT_TRACK==="1"||k.env.DO_NOT_TRACK==="true")return!1;if(k.env.NO_TELEMETRY==="1"||k.env.NO_TELEMETRY==="true")return!1;return(await this.loadConfig()).enabled}async enable(){let z=await this.loadConfig();if(z.enabled=!0,!z.userId)z.userId=this.generateUserId();await this.saveConfig(z)}async disable(){let z=await this.loadConfig();z.enabled=!1,await this.saveConfig(z)}async track(z,$){if(!await this.isEnabled())return;let Z={event:z,...$,timestamp:Date.now(),platform:F6.platform(),nodeVersion:k.version};if(this.events.push(Z),this.events.length>=10)await this.send()}async trackCommand(z,$){await this.track("command",{command:z,duration:$})}async trackError(z,$){await this.track("error",{error:z,command:$})}async send(){if(!await this.isEnabled()||this.events.length===0)return!0;try{this.events=[],this.retryCount=0;let $=await this.loadConfig();return $.lastSent=Date.now(),await this.saveConfig($),!0}catch{if(this.retryCount<this.maxRetries){this.retryCount++;let $=this.retryDelayMs*2**(this.retryCount-1);return await this.sleep($),this.send()}return this.events=[],this.retryCount=0,!1}}async flush(){if(this.events.length===0)return!0;return this.send()}sleep(z){return new Promise(($)=>setTimeout($,z))}async status(){let z=await this.loadConfig();return{enabled:z.enabled,doNotTrack:k.env.DO_NOT_TRACK==="1"||k.env.DO_NOT_TRACK==="true",eventsQueued:this.events.length,lastSent:z.lastSent}}async loadConfig(){if(this.config)return this.config;try{if($z(this.configPath)){let z=await a.readFile(this.configPath,"utf-8");return this.config=JSON.parse(z),this.config}}catch{}return this.config={enabled:!1},this.config}async saveConfig(z){this.config=z;try{let $=s.dirname(this.configPath);await a.mkdir($,{recursive:!0}),await a.writeFile(this.configPath,JSON.stringify(z,null,2),"utf-8")}catch{}}generateUserId(){let z=Math.random().toString(36).substring(2,15),$=Date.now().toString(36);return`${z}-${$}`}}var M4=new D6;function Zz(z,$={}){let Q={_:[]},Z=$.alias||{},Y=new Set($.boolean||[]),q={};for(let U of Object.keys(Z))for(let J of Z[U])q[J]=U;for(let U of Y)if(Z[U])for(let J of Z[U])Y.add(J);function X(U,J){let G=q[U]||U;if(Q[G]=J,Z[G])for(let V of Z[G])Q[V]=J;if(q[U]&&Z[q[U]])for(let V of Z[q[U]])Q[V]=J;Q[U]=J}for(let U=0;U<z.length;U++){let J=z[U];if(J==="--"){Q._.push(...z.slice(U+1));break}if(J.startsWith("--")){let G=J.indexOf("=");if(G!==-1){let V=J.slice(2,G),W=J.slice(G+1);X(V,W)}else{let V=J.slice(2);if(V.startsWith("no-")){let K=V.slice(3);X(K,!1);continue}let W=q[V]||V;if(Y.has(W)||Y.has(V))X(V,!0);else{let K=z[U+1];if(K!==void 0&&!K.startsWith("-"))X(V,K),U++;else X(V,!0)}}}else if(J.startsWith("-")&&J.length>1){let G=J.slice(1);for(let V=0;V<G.length;V++){let W=G[V],K=q[W]||W;if(V===G.length-1&&!Y.has(K)&&!Y.has(W)){let F=z[U+1];if(F!==void 0&&!F.startsWith("-"))X(W,F),U++;else X(W,!0)}else X(W,!0)}}else Q._.push(J)}return Q}function e(z){return z.replace(/[<[].+/,"").trim()}function Yz(z){let $=/<([^>]+)>/g,Q=/\[([^\]]+)\]/g,Z=[],Y=(U)=>{let J=!1,G=U[1];if(G.startsWith("..."))G=G.slice(3),J=!0;return{required:U[0].startsWith("<"),value:G,variadic:J}},q;while(q=$.exec(z))Z.push(Y(q));let X;while(X=Q.exec(z))Z.push(Y(X));return Z}function qz(z){let $={alias:{},boolean:[]};for(let[Q,Z]of z.entries()){if(Z.names.length>1)$.alias[Z.names[0]]=Z.names.slice(1);if(Z.isBoolean)if(Z.negated){if(!z.some((q,X)=>{return X!==Q&&q.names.some((U)=>Z.names.includes(U))&&typeof q.required==="boolean"}))$.boolean.push(Z.names[0])}else $.boolean.push(Z.names[0])}return $}function w6(z){return z.reduce(($,Q)=>$.length>=Q.length?$:Q,"")}function t(z,$){return z.length>=$?z:`${z}${" ".repeat($-z.length)}`}function Jz(z){return z.replace(/([a-z])-([a-z])/g,($,Q,Z)=>{return Q+Z.toUpperCase()})}function Xz(z,$,Q){let Z=0,Y=$.length,q=z,X;for(;Z<Y;++Z)X=q[$[Z]],q=q[$[Z]]=Z===Y-1?Q:X!=null?X:!!~$[Z+1].indexOf(".")||!(+$[Z+1]>-1)?{}:[]}function Uz(z,$){for(let Q of Object.keys($)){let Z=$[Q];if(Z.shouldTransform){if(z[Q]=Array.prototype.concat.call([],z[Q]),typeof Z.transformFunction==="function")z[Q]=z[Q].map(Z.transformFunction)}}}function Gz(z){let $=/([^\\/]+)$/.exec(z);return $?$[1]:""}function T6(z){return z.split(".").map(($,Q)=>{return Q===0?Jz($):$}).join(".")}class d extends Error{exitCode=2;isUsageError=!0;constructor(z){super(z);if(this.name=this.constructor.name,typeof Error.captureStackTrace==="function")Error.captureStackTrace(this,this.constructor);else this.stack=Error(z).stack}format(z=!1){if(z&&this.stack)return`${this.message}
2
+ import{E as y6,L as k6,M as G6,O as j6,Qa as l6,Ra as n6,S as K6,Ta as p6,Wa as r6,Ya as a6,bb as s6,cb as t6,db as o6,ga as h6,ha as _6,ia as g6,ja as f6,ka as m6,oa as H6,pa as c6,qa as i6}from"../chunk-63t6cwcs.js";import"../chunk-1d97zpdr.js";import"../chunk-4pgde91f.js";import"../chunk-fndnz9td.js";import{Ib as p,Jb as d6,Lb as X6,Mb as r,Rb as u6,Vb as U6}from"../chunk-4dmq776q.js";import"../chunk-gqzj0edb.js";import"../chunk-hh0g2d6f.js";import{lc as n,mc as q6,nc as J6}from"../chunk-cye3q2ph.js";import"../chunk-b9105y5x.js";import"../chunk-ve2dx3d9.js";import{Jc as v6,Kc as J4}from"../chunk-gzwcsenc.js";import{Oc as h}from"../chunk-6zb03z2q.js";import H from"node:fs";import w from"node:path";import j from"node:process";import{existsSync as $z}from"node:fs";import a from"node:fs/promises";import F6 from"node:os";import s from"node:path";import k from"node:process";import{EventEmitter as Qz}from"node:events";import v from"node:process";import L6 from"node:process";import z6 from"node:process";import u from"node:process";import f from"node:process";import O6 from"node:tty";import cz,{stdin as P4,stdout as C4}from"node:process";import N6,{stdin as nz,stdout as pz}from"node:process";import rz from"node:readline";class D6{configPath;config=null;events=[];retryCount=0;maxRetries=3;retryDelayMs=1000;constructor(){let z=F6.homedir(),$=s.join(z,".config","clapp");this.configPath=s.join($,"telemetry.json")}async isEnabled(){if(k.env.DO_NOT_TRACK==="1"||k.env.DO_NOT_TRACK==="true")return!1;if(k.env.NO_TELEMETRY==="1"||k.env.NO_TELEMETRY==="true")return!1;return(await this.loadConfig()).enabled}async enable(){let z=await this.loadConfig();if(z.enabled=!0,!z.userId)z.userId=this.generateUserId();await this.saveConfig(z)}async disable(){let z=await this.loadConfig();z.enabled=!1,await this.saveConfig(z)}async track(z,$){if(!await this.isEnabled())return;let Z={event:z,...$,timestamp:Date.now(),platform:F6.platform(),nodeVersion:k.version};if(this.events.push(Z),this.events.length>=10)await this.send()}async trackCommand(z,$){await this.track("command",{command:z,duration:$})}async trackError(z,$){await this.track("error",{error:z,command:$})}async send(){if(!await this.isEnabled()||this.events.length===0)return!0;try{this.events=[],this.retryCount=0;let $=await this.loadConfig();return $.lastSent=Date.now(),await this.saveConfig($),!0}catch{if(this.retryCount<this.maxRetries){this.retryCount++;let $=this.retryDelayMs*2**(this.retryCount-1);return await this.sleep($),this.send()}return this.events=[],this.retryCount=0,!1}}async flush(){if(this.events.length===0)return!0;return this.send()}sleep(z){return new Promise(($)=>setTimeout($,z))}async status(){let z=await this.loadConfig();return{enabled:z.enabled,doNotTrack:k.env.DO_NOT_TRACK==="1"||k.env.DO_NOT_TRACK==="true",eventsQueued:this.events.length,lastSent:z.lastSent}}async loadConfig(){if(this.config)return this.config;try{if($z(this.configPath)){let z=await a.readFile(this.configPath,"utf-8");return this.config=JSON.parse(z),this.config}}catch{}return this.config={enabled:!1},this.config}async saveConfig(z){this.config=z;try{let $=s.dirname(this.configPath);await a.mkdir($,{recursive:!0}),await a.writeFile(this.configPath,JSON.stringify(z,null,2),"utf-8")}catch{}}generateUserId(){let z=Math.random().toString(36).substring(2,15),$=Date.now().toString(36);return`${z}-${$}`}}var M4=new D6;function Zz(z,$={}){let Q={_:[]},Z=$.alias||{},Y=new Set($.boolean||[]),q={};for(let U of Object.keys(Z))for(let J of Z[U])q[J]=U;for(let U of Y)if(Z[U])for(let J of Z[U])Y.add(J);function X(U,J){let G=q[U]||U;if(Q[G]=J,Z[G])for(let V of Z[G])Q[V]=J;if(q[U]&&Z[q[U]])for(let V of Z[q[U]])Q[V]=J;Q[U]=J}for(let U=0;U<z.length;U++){let J=z[U];if(J==="--"){Q._.push(...z.slice(U+1));break}if(J.startsWith("--")){let G=J.indexOf("=");if(G!==-1){let V=J.slice(2,G),W=J.slice(G+1);X(V,W)}else{let V=J.slice(2);if(V.startsWith("no-")){let K=V.slice(3);X(K,!1);continue}let W=q[V]||V;if(Y.has(W)||Y.has(V))X(V,!0);else{let K=z[U+1];if(K!==void 0&&!K.startsWith("-"))X(V,K),U++;else X(V,!0)}}}else if(J.startsWith("-")&&J.length>1){let G=J.slice(1);for(let V=0;V<G.length;V++){let W=G[V],K=q[W]||W;if(V===G.length-1&&!Y.has(K)&&!Y.has(W)){let F=z[U+1];if(F!==void 0&&!F.startsWith("-"))X(W,F),U++;else X(W,!0)}else X(W,!0)}}else Q._.push(J)}return Q}function e(z){return z.replace(/[<[].+/,"").trim()}function Yz(z){let $=/<([^>]+)>/g,Q=/\[([^\]]+)\]/g,Z=[],Y=(U)=>{let J=!1,G=U[1];if(G.startsWith("..."))G=G.slice(3),J=!0;return{required:U[0].startsWith("<"),value:G,variadic:J}},q;while(q=$.exec(z))Z.push(Y(q));let X;while(X=Q.exec(z))Z.push(Y(X));return Z}function qz(z){let $={alias:{},boolean:[]};for(let[Q,Z]of z.entries()){if(Z.names.length>1)$.alias[Z.names[0]]=Z.names.slice(1);if(Z.isBoolean)if(Z.negated){if(!z.some((q,X)=>{return X!==Q&&q.names.some((U)=>Z.names.includes(U))&&typeof q.required==="boolean"}))$.boolean.push(Z.names[0])}else $.boolean.push(Z.names[0])}return $}function w6(z){return z.reduce(($,Q)=>$.length>=Q.length?$:Q,"")}function t(z,$){return z.length>=$?z:`${z}${" ".repeat($-z.length)}`}function Jz(z){return z.replace(/([a-z])-([a-z])/g,($,Q,Z)=>{return Q+Z.toUpperCase()})}function Xz(z,$,Q){let Z=0,Y=$.length,q=z,X;for(;Z<Y;++Z)X=q[$[Z]],q=q[$[Z]]=Z===Y-1?Q:X!=null?X:!!~$[Z+1].indexOf(".")||!(+$[Z+1]>-1)?{}:[]}function Uz(z,$){for(let Q of Object.keys($)){let Z=$[Q];if(Z.shouldTransform){if(z[Q]=Array.prototype.concat.call([],z[Q]),typeof Z.transformFunction==="function")z[Q]=z[Q].map(Z.transformFunction)}}}function Gz(z){let $=/([^\\/]+)$/.exec(z);return $?$[1]:""}function T6(z){return z.split(".").map(($,Q)=>{return Q===0?Jz($):$}).join(".")}class d extends Error{exitCode=2;isUsageError=!0;constructor(z){super(z);if(this.name=this.constructor.name,typeof Error.captureStackTrace==="function")Error.captureStackTrace(this,this.constructor);else this.stack=Error(z).stack}format(z=!1){if(z&&this.stack)return`${this.message}
3
3
 
4
4
  Stack trace:
5
5
  ${this.stack}`;return this.message}}function jz(){let{env:z}=L6,{TERM:$,TERM_PROGRAM:Q}=z;if(L6.platform!=="win32")return $!=="linux";return Boolean(z.WT_SESSION)||Boolean(z.TERMINUS_SUBLIME)||z.ConEmuTask==="{cmd::Cmder}"||Q==="Terminus-Sublime"||Q==="vscode"||$==="xterm-256color"||$==="alacritty"||$==="rxvt-unicode"||$==="rxvt-unicode-256color"||z.TERMINAL_EMULATOR==="JetBrains-JediTerm"}var l="\x1B",I=`${l}[`;var S={to(z,$){if(!$)return`${I}${z+1}G`;return`${I}${$+1};${z+1}H`},move(z,$){let Q="";if(z<0)Q+=`${I}${-z}D`;else if(z>0)Q+=`${I}${z}C`;if($<0)Q+=`${I}${-$}A`;else if($>0)Q+=`${I}${$}B`;return Q},up:(z=1)=>`${I}${z}A`,down:(z=1)=>`${I}${z}B`,forward:(z=1)=>`${I}${z}C`,backward:(z=1)=>`${I}${z}D`,nextLine:(z=1)=>`${I}E`.repeat(z),prevLine:(z=1)=>`${I}F`.repeat(z),left:`${I}G`,hide:`${I}?25l`,show:`${I}?25h`,save:`${l}7`,restore:`${l}8`};var o={screen:`${I}2J`,up:(z=1)=>`${I}1J`.repeat(z),down:(z=1)=>`${I}J`.repeat(z),line:`${I}2K`,lineEnd:`${I}K`,lineStart:`${I}1K`,lines(z){let $="";for(let Q=0;Q<z;Q++)$+=this.line+(Q<z-1?S.up():"");if(z)$+=S.left;return $}},b4={screen:`${l}c`};function Kz(z,$){let Q=[];for(let Z=0;Z<=$.length;Z++)Q[Z]=[Z];for(let Z=0;Z<=z.length;Z++)Q[0][Z]=Z;for(let Z=1;Z<=$.length;Z++)for(let Y=1;Y<=z.length;Y++)if($.charAt(Z-1)===z.charAt(Y-1))Q[Z][Y]=Q[Z-1][Y-1];else Q[Z][Y]=Math.min(Q[Z-1][Y-1]+1,Q[Z][Y-1]+1,Q[Z-1][Y]+1);return Q[$.length][z.length]}function E6(z,$,Q=2,Z=3){return $.map((Y)=>({cmd:Y,distance:Kz(z,Y)})).filter(({distance:Y})=>Y<=Q).sort((Y,q)=>Y.distance-q.distance).slice(0,Z).map(({cmd:Y})=>Y)}class x6{rawName;description;name;names;isBoolean;required;config;negated;constructor(z,$,Q){if(this.rawName=z,this.description=$,this.config=Object.assign({},Q),z=z.replace(/\.\*/g,""),this.negated=!1,this.names=e(z).split(",").map((Z)=>{let Y=Z.trim().replace(/^-{1,2}/,"");if(Y.startsWith("no-"))this.negated=!0,Y=Y.replace(/^no-/,"");return T6(Y)}).sort((Z,Y)=>Z.length>Y.length?1:-1),this.name=this.names[this.names.length-1],this.negated&&this.config.default==null)this.config.default=!0;if(z.includes("<"))this.required=!0;else if(z.includes("["))this.required=!1;else this.isBoolean=!0}}var T4=z6.argv,Hz=`${z6.platform}-${z6.arch} bun-v${typeof Bun<"u"?Bun.version:"unknown"}`,M6=u.argv,Vz=`${u.platform}-${u.arch} node-${u.version}`;class $6{rawName;description;config;cli;options;aliasNames;name;namespace;args;commandAction;usageText;versionNumber;examples;helpCallback;globalCommand;beforeHooks;afterHooks;middleware;constructor(z,$,Q,Z){this.rawName=z,this.description=$,this.config=Q,this.cli=Z,this.options=[],this.aliasNames=[],this.name=e(z);let Y=e(z),q=Y.indexOf(":");if(q>0)this.namespace=Y.substring(0,q),this.name=Y.substring(q+1);if(this.args=Yz(z),this.examples=[],this.beforeHooks=[],this.afterHooks=[],this.middleware=[],!Q)this.config={}}usage(z){return this.usageText=z,this}allowUnknownOptions(){return this.config.allowUnknownOptions=!0,this}ignoreOptionDefaultValue(){return this.config.ignoreOptionDefaultValue=!0,this}version(z,$="-v, --version"){return this.versionNumber=z,this.option($,"Display version number"),this}example(z){return this.examples.push(z),this}option(z,$,Q){let Z=new x6(z,$,Q);return this.options.push(Z),this}alias(z){return this.aliasNames.push(z),this}action(z){return this.commandAction=z,this}before(z){return this.beforeHooks.push(z),this}after(z){return this.afterHooks.push(z),this}use(z){return this.middleware.push(z),this}isMatched(z){if(this.aliasNames.includes(z))return!0;if(this.namespace)return`${this.namespace}:${this.name}`===z;return this.name===z}get isDefaultCommand(){return this.name===""||this.aliasNames.includes("!")}get isGlobalCommand(){return this instanceof Q6}get displayName(){return this.namespace?`${this.namespace}:${this.name}`:this.name}hasOption(z){return z=z.split(".")[0],!!this.options.find(($)=>{return $.names.includes(z)})}outputHelp(){let{name:z,commands:$}=this.cli,{versionNumber:Q,options:Z,helpCallback:Y}=this.cli.globalCommand,q=[{body:`${z}${Q?`/${Q}`:""}`}];if(q.push({title:"Usage",body:` $ ${z} ${this.usageText||this.rawName}`}),(this.isGlobalCommand||this.isDefaultCommand)&&$.length>0){let J=w6($.map((F)=>F.rawName)),G=new Map,V=[];for(let F of $)if(F.namespace){if(!G.has(F.namespace))G.set(F.namespace,[]);G.get(F.namespace).push(F)}else V.push(F);let W="";if(V.length>0)W+=V.map((F)=>{return` ${t(F.rawName,J.length)} ${F.description}`}).join(`
@@ -37,7 +37,7 @@ Run \`${this.name??"cli"} --help\` for usage.`;v.stderr.write(`${q}${Y}${X}
37
37
  `).length-1;this.output.write(S.move(-999,z*-1))}render(){let z=b6(this._render(this)??"",N6.stdout.columns,{hard:!0,trim:!1});if(z===this._prevFrame)return;if(this.state==="initial")this.output.write(S.hide);else{let $=lz(this._prevFrame,z);if(this.restoreCursor(),$&&$?.length===1){let Q=$[0];this.output.write(S.move(0,Q)),this.output.write(o.lines(1));let Z=z.split(`
38
38
  `);this.output.write(Z[Q]),this._prevFrame=z,this.output.write(S.move(0,Z.length-Q-1));return}if($&&$?.length>1){let Q=$[0];this.output.write(S.move(0,Q)),this.output.write(o.down());let Y=z.split(`
39
39
  `).slice(Q);this.output.write(Y.join(`
40
- `)),this._prevFrame=z;return}this.output.write(o.down())}if(this.output.write(z),this.state==="initial")this.state="active";this._prevFrame=z}}function tz(z,$){if(z===void 0)return 0;if($.length===0)return 0;let Z=$.findIndex((Y)=>Y.value===z);return Z!==-1?Z:0}function oz(z,$){return($.label??String($.value)).toLowerCase().includes(z.toLowerCase())}function ez(z,$){if(!$)return;if(z)return $;return $[0]}class z4 extends Y6{filteredOptions;multiple;isNavigating=!1;selectedValues=[];focusedValue;#z=0;#Q="";#Z;#$;get cursor(){return this.#z}get userInputWithCursor(){if(!this.userInput)return c.inverse(c.hidden("_"));if(this._cursor>=this.userInput.length)return`${this.userInput}█`;let z=this.userInput.slice(0,this._cursor),[$,...Q]=this.userInput.slice(this._cursor);return`${z}${c.inverse($)}${Q.join("")}`}get options(){if(typeof this.#$==="function")return this.#$();return this.#$}constructor(z){super(z);this.#$=z.options;let $=this.options;this.filteredOptions=[...$],this.multiple=z.multiple===!0,this.#Z=z.filter??oz;let Q;if(z.initialValue&&Array.isArray(z.initialValue))if(this.multiple)Q=z.initialValue;else Q=z.initialValue.slice(0,1);else if(!this.multiple&&this.options.length>0)Q=[this.options[0].value];if(Q)for(let Z of Q){let Y=$.findIndex((q)=>q.value===Z);if(Y!==-1)this.toggleSelected(Z),this.#z=Y}this.focusedValue=this.options[this.#z]?.value,this.on("key",(Z,Y)=>this.#Y(Z,Y)),this.on("userInput",(Z)=>this.#q(Z))}_isActionKey(z,$){return z==="\t"||this.multiple&&this.isNavigating&&$.name==="space"&&z!==void 0&&z!==""}#Y(z,$){let Q=$.name==="up",Z=$.name==="down",Y=$.name==="return";if(Q||Z){if(this.#z=Math.max(0,Math.min(this.#z+(Q?-1:1),this.filteredOptions.length-1)),this.focusedValue=this.filteredOptions[this.#z]?.value,!this.multiple)this.selectedValues=[this.focusedValue];this.isNavigating=!0}else if(Y)this.value=ez(this.multiple,this.selectedValues);else if(this.multiple)if(this.focusedValue!==void 0&&($.name==="tab"||this.isNavigating&&$.name==="space"))this.toggleSelected(this.focusedValue);else this.isNavigating=!1;else{if(this.focusedValue)this.selectedValues=[this.focusedValue];this.isNavigating=!1}}deselectAll(){this.selectedValues=[]}toggleSelected(z){if(this.filteredOptions.length===0)return;if(this.multiple)if(this.selectedValues.includes(z))this.selectedValues=this.selectedValues.filter(($)=>$!==z);else this.selectedValues=[...this.selectedValues,z];else this.selectedValues=[z]}#q(z){if(z!==this.#Q){this.#Q=z;let $=this.options;if(z)this.filteredOptions=$.filter((Q)=>this.#Z(z,Q));else this.filteredOptions=[...$];if(this.#z=tz(this.focusedValue,this.filteredOptions),this.focusedValue=this.filteredOptions[this.#z]?.value,!this.multiple)if(this.focusedValue!==void 0)this.toggleSelected(this.focusedValue);else this.deselectAll()}}}class $4 extends Y6{options;cursor=0;#z;getGroupItems(z){return this.options.filter(($)=>$.group===z)}isGroupSelected(z){let $=this.getGroupItems(z),Q=this.value;if(Q===void 0)return!1;return $.every((Z)=>Q.includes(Z.value))}toggleValue(){let z=this.options[this.cursor];if(this.value===void 0)this.value=[];if(z.group===!0){let $=String(z.value),Q=this.getGroupItems($);if(this.isGroupSelected($))this.value=this.value.filter((Z)=>Q.findIndex((Y)=>Y.value===Z)===-1);else this.value=[...this.value,...Q.map((Z)=>Z.value)];this.value=Array.from(new Set(this.value))}else{let $=this.value.includes(z.value);this.value=$?this.value.filter((Q)=>Q!==z.value):[...this.value,z.value]}}constructor(z){super(z,!1);let{options:$}=z;this.#z=z.selectableGroups!==!1,this.options=Object.entries($).flatMap(([Q,Z])=>[{value:Q,group:!0,label:Q},...Z.map((Y)=>({...Y,group:Q}))]),this.value=[...z.initialValues??[]],this.cursor=Math.max(this.options.findIndex(({value:Q})=>Q===z.cursorAt),this.#z?0:1),this.on("cursor",(Q)=>{switch(Q){case"left":case"up":{this.cursor=this.cursor===0?this.options.length-1:this.cursor-1;let Z=this.options[this.cursor]?.group===!0;if(!this.#z&&Z)this.cursor=this.cursor===0?this.options.length-1:this.cursor-1;break}case"down":case"right":{this.cursor=this.cursor===this.options.length-1?0:this.cursor+1;let Z=this.options[this.cursor]?.group===!0;if(!this.#z&&Z)this.cursor=this.cursor===this.options.length-1?0:this.cursor+1;break}case"space":this.toggleValue();break}})}}var Q4=jz();var b=(z,$)=>Q4?z:$,k4=b("◆","*"),h4=b("■","x"),_4=b("▲","x"),g4=b("◇","o"),f4=b("┌","T"),Z4=b("│","|"),m4=b("└","—"),d4=b("●",">"),u4=b("○"," "),c4=b("◻","[•]"),i4=b("◼","[+]"),l4=b("◻","[ ]"),n4=b("▪","•"),p4=b("─","-"),r4=b("╮","+"),a4=b("├","+"),s4=b("╯","+"),t4=b("●","•"),o4=b("◆","*"),e4=b("▲","!"),z0=b("■","x");var $0={light:b("─","-"),heavy:b("━","="),block:b("█","#")};function Y4(){return`${c.gray(Z4)} `}var Q0=Y4();var P6="0.11.36";J4();async function X4(z="src/pantry"){if(!H.existsSync(z))throw Error(`Pantry directory not found: ${z}. Please run 'bun ./bin/cli.ts update-pantry' first.`);let $=[];function Q(Z,Y=""){let q=H.readdirSync(Z,{withFileTypes:!0}),X=w.join(Z,"package.yml");if(Y&&H.existsSync(X))$.push(Y);for(let U of q)if(U.isDirectory()&&!U.name.startsWith(".")){let J=Y?`${Y}/${U.name}`:U.name,G=w.join(Z,U.name);Q(G,J)}}return Q(z),console.log(`\uD83D\uDCE6 Found ${$.length} packages in local pantry`),$.sort()}async function U4(z=!1){async function $(X){let U=new URL("https://s3.amazonaws.com/dist.tea.xyz/");if(U.searchParams.set("list-type","2"),U.searchParams.set("prefix",""),U.searchParams.set("max-keys","1000"),X)U.searchParams.set("continuation-token",X);let J=await fetch(U.toString());if(!J.ok)throw Error(`Failed to fetch S3 listing: ${J.status}`);let G=await J.text(),V=[],W=G.match(/<Key>([^<]+)<\/Key>/g);if(W)for(let E of W){let x=E.replace(/<Key>([^<]+)<\/Key>/,"$1");V.push({Key:x})}let K=G.includes("<IsTruncated>true</IsTruncated>"),F=G.match(/<NextContinuationToken>([^<]+)<\/NextContinuationToken>/),L=F?F[1]:void 0;return{IsTruncated:K,NextContinuationToken:L,Contents:V}}console.log("Scraping packages from S3 registry...");let Q=new Set,Z;do{let X=await $(Z);for(let U of X.Contents){let J=U.Key,G=J.split("/");if(G.length===0)continue;if(G[0].startsWith(".")||G[0].includes(" ")||J.match(/\.(md|txt|yml|yaml|json)$/i))continue;let V=["darwin","linux","windows"],W=-1;for(let K=1;K<G.length;K++)if(V.includes(G[K])){W=K;break}if(W>0){let K=G.slice(0,W).join("/");if(K.includes("."))Q.add(K)}else if(G.length>=2&&G[0].includes(".")&&!G[1].startsWith("v")&&!G[1].match(/^\d/)){let K=`${G[0]}/${G[1]}`;Q.add(K)}else if(G.length>=1&&G[0].includes("."))Q.add(G[0])}Z=X.NextContinuationToken,console.log(`Found ${Q.size} packages so far...`)}while(Z);let Y=Array.from(Q).sort(),q=[];for(let X of Y){if(!X.includes(".")||X.match(/^[a-z0-9.-]+\.[a-z]{2,}(\/[\w.-]+){0,20}$/i)===null)continue;if(X.endsWith("/README.rst")||X.endsWith("/README")||X.includes("/docs/"))continue;if(X.endsWith("/.pkgroot"))continue;if(["amazon.com/aws","charm.sh","code.videolan.org","crates.io"].includes(X))continue;q.push(X)}return console.log(`\uD83D\uDCE6 Found ${q.length} valid packages in registry`),q}async function G4(z,$){let Z=`/**
40
+ `)),this._prevFrame=z;return}this.output.write(o.down())}if(this.output.write(z),this.state==="initial")this.state="active";this._prevFrame=z}}function tz(z,$){if(z===void 0)return 0;if($.length===0)return 0;let Z=$.findIndex((Y)=>Y.value===z);return Z!==-1?Z:0}function oz(z,$){return($.label??String($.value)).toLowerCase().includes(z.toLowerCase())}function ez(z,$){if(!$)return;if(z)return $;return $[0]}class z4 extends Y6{filteredOptions;multiple;isNavigating=!1;selectedValues=[];focusedValue;#z=0;#Q="";#Z;#$;get cursor(){return this.#z}get userInputWithCursor(){if(!this.userInput)return c.inverse(c.hidden("_"));if(this._cursor>=this.userInput.length)return`${this.userInput}█`;let z=this.userInput.slice(0,this._cursor),[$,...Q]=this.userInput.slice(this._cursor);return`${z}${c.inverse($)}${Q.join("")}`}get options(){if(typeof this.#$==="function")return this.#$();return this.#$}constructor(z){super(z);this.#$=z.options;let $=this.options;this.filteredOptions=[...$],this.multiple=z.multiple===!0,this.#Z=z.filter??oz;let Q;if(z.initialValue&&Array.isArray(z.initialValue))if(this.multiple)Q=z.initialValue;else Q=z.initialValue.slice(0,1);else if(!this.multiple&&this.options.length>0)Q=[this.options[0].value];if(Q)for(let Z of Q){let Y=$.findIndex((q)=>q.value===Z);if(Y!==-1)this.toggleSelected(Z),this.#z=Y}this.focusedValue=this.options[this.#z]?.value,this.on("key",(Z,Y)=>this.#Y(Z,Y)),this.on("userInput",(Z)=>this.#q(Z))}_isActionKey(z,$){return z==="\t"||this.multiple&&this.isNavigating&&$.name==="space"&&z!==void 0&&z!==""}#Y(z,$){let Q=$.name==="up",Z=$.name==="down",Y=$.name==="return";if(Q||Z){if(this.#z=Math.max(0,Math.min(this.#z+(Q?-1:1),this.filteredOptions.length-1)),this.focusedValue=this.filteredOptions[this.#z]?.value,!this.multiple)this.selectedValues=[this.focusedValue];this.isNavigating=!0}else if(Y)this.value=ez(this.multiple,this.selectedValues);else if(this.multiple)if(this.focusedValue!==void 0&&($.name==="tab"||this.isNavigating&&$.name==="space"))this.toggleSelected(this.focusedValue);else this.isNavigating=!1;else{if(this.focusedValue)this.selectedValues=[this.focusedValue];this.isNavigating=!1}}deselectAll(){this.selectedValues=[]}toggleSelected(z){if(this.filteredOptions.length===0)return;if(this.multiple)if(this.selectedValues.includes(z))this.selectedValues=this.selectedValues.filter(($)=>$!==z);else this.selectedValues=[...this.selectedValues,z];else this.selectedValues=[z]}#q(z){if(z!==this.#Q){this.#Q=z;let $=this.options;if(z)this.filteredOptions=$.filter((Q)=>this.#Z(z,Q));else this.filteredOptions=[...$];if(this.#z=tz(this.focusedValue,this.filteredOptions),this.focusedValue=this.filteredOptions[this.#z]?.value,!this.multiple)if(this.focusedValue!==void 0)this.toggleSelected(this.focusedValue);else this.deselectAll()}}}class $4 extends Y6{options;cursor=0;#z;getGroupItems(z){return this.options.filter(($)=>$.group===z)}isGroupSelected(z){let $=this.getGroupItems(z),Q=this.value;if(Q===void 0)return!1;return $.every((Z)=>Q.includes(Z.value))}toggleValue(){let z=this.options[this.cursor];if(this.value===void 0)this.value=[];if(z.group===!0){let $=String(z.value),Q=this.getGroupItems($);if(this.isGroupSelected($))this.value=this.value.filter((Z)=>Q.findIndex((Y)=>Y.value===Z)===-1);else this.value=[...this.value,...Q.map((Z)=>Z.value)];this.value=Array.from(new Set(this.value))}else{let $=this.value.includes(z.value);this.value=$?this.value.filter((Q)=>Q!==z.value):[...this.value,z.value]}}constructor(z){super(z,!1);let{options:$}=z;this.#z=z.selectableGroups!==!1,this.options=Object.entries($).flatMap(([Q,Z])=>[{value:Q,group:!0,label:Q},...Z.map((Y)=>({...Y,group:Q}))]),this.value=[...z.initialValues??[]],this.cursor=Math.max(this.options.findIndex(({value:Q})=>Q===z.cursorAt),this.#z?0:1),this.on("cursor",(Q)=>{switch(Q){case"left":case"up":{this.cursor=this.cursor===0?this.options.length-1:this.cursor-1;let Z=this.options[this.cursor]?.group===!0;if(!this.#z&&Z)this.cursor=this.cursor===0?this.options.length-1:this.cursor-1;break}case"down":case"right":{this.cursor=this.cursor===this.options.length-1?0:this.cursor+1;let Z=this.options[this.cursor]?.group===!0;if(!this.#z&&Z)this.cursor=this.cursor===this.options.length-1?0:this.cursor+1;break}case"space":this.toggleValue();break}})}}var Q4=jz();var b=(z,$)=>Q4?z:$,k4=b("◆","*"),h4=b("■","x"),_4=b("▲","x"),g4=b("◇","o"),f4=b("┌","T"),Z4=b("│","|"),m4=b("└","—"),d4=b("●",">"),u4=b("○"," "),c4=b("◻","[•]"),i4=b("◼","[+]"),l4=b("◻","[ ]"),n4=b("▪","•"),p4=b("─","-"),r4=b("╮","+"),a4=b("├","+"),s4=b("╯","+"),t4=b("●","•"),o4=b("◆","*"),e4=b("▲","!"),z0=b("■","x");var $0={light:b("─","-"),heavy:b("━","="),block:b("█","#")};function Y4(){return`${c.gray(Z4)} `}var Q0=Y4();var P6="0.11.37";J4();async function X4(z="src/pantry"){if(!H.existsSync(z))throw Error(`Pantry directory not found: ${z}. Please run 'bun ./bin/cli.ts update-pantry' first.`);let $=[];function Q(Z,Y=""){let q=H.readdirSync(Z,{withFileTypes:!0}),X=w.join(Z,"package.yml");if(Y&&H.existsSync(X))$.push(Y);for(let U of q)if(U.isDirectory()&&!U.name.startsWith(".")){let J=Y?`${Y}/${U.name}`:U.name,G=w.join(Z,U.name);Q(G,J)}}return Q(z),console.log(`\uD83D\uDCE6 Found ${$.length} packages in local pantry`),$.sort()}async function U4(z=!1){async function $(X){let U=new URL("https://s3.amazonaws.com/dist.tea.xyz/");if(U.searchParams.set("list-type","2"),U.searchParams.set("prefix",""),U.searchParams.set("max-keys","1000"),X)U.searchParams.set("continuation-token",X);let J=await fetch(U.toString());if(!J.ok)throw Error(`Failed to fetch S3 listing: ${J.status}`);let G=await J.text(),V=[],W=G.match(/<Key>([^<]+)<\/Key>/g);if(W)for(let E of W){let x=E.replace(/<Key>([^<]+)<\/Key>/,"$1");V.push({Key:x})}let K=G.includes("<IsTruncated>true</IsTruncated>"),F=G.match(/<NextContinuationToken>([^<]+)<\/NextContinuationToken>/),L=F?F[1]:void 0;return{IsTruncated:K,NextContinuationToken:L,Contents:V}}console.log("Scraping packages from S3 registry...");let Q=new Set,Z;do{let X=await $(Z);for(let U of X.Contents){let J=U.Key,G=J.split("/");if(G.length===0)continue;if(G[0].startsWith(".")||G[0].includes(" ")||J.match(/\.(md|txt|yml|yaml|json)$/i))continue;let V=["darwin","linux","windows"],W=-1;for(let K=1;K<G.length;K++)if(V.includes(G[K])){W=K;break}if(W>0){let K=G.slice(0,W).join("/");if(K.includes("."))Q.add(K)}else if(G.length>=2&&G[0].includes(".")&&!G[1].startsWith("v")&&!G[1].match(/^\d/)){let K=`${G[0]}/${G[1]}`;Q.add(K)}else if(G.length>=1&&G[0].includes("."))Q.add(G[0])}Z=X.NextContinuationToken,console.log(`Found ${Q.size} packages so far...`)}while(Z);let Y=Array.from(Q).sort(),q=[];for(let X of Y){if(!X.includes(".")||X.match(/^[a-z0-9.-]+\.[a-z]{2,}(\/[\w.-]+){0,20}$/i)===null)continue;if(X.endsWith("/README.rst")||X.endsWith("/README")||X.includes("/docs/"))continue;if(X.endsWith("/.pkgroot"))continue;if(["amazon.com/aws","charm.sh","code.videolan.org","crates.io"].includes(X))continue;q.push(X)}return console.log(`\uD83D\uDCE6 Found ${q.length} valid packages in registry`),q}async function G4(z,$){let Z=`/**
41
41
  * Constants used throughout the ts-pantry package
42
42
  * This file is auto-generated from ${$}. Do not edit manually.
43
43
  * Generated on ${new Date().toISOString()}
@@ -100,7 +100,7 @@ ${Y.join(`
100
100
  Conflicts found:`),K.conflicts.forEach((L)=>{console.log(` ${L.package}: ${L.versions.join(", ")}`)});if(console.log(`
101
101
  \uD83D\uDCCB All unique packages to install:`),K.uniquePackages.forEach((L,E)=>{let x=K.allDependencies.find((N)=>N.name===L),M=x&&x.version&&x.version!=="latest"?` (${x.version})`:"";console.log(` ${E+1}. ${L}${M}`)}),G)console.log(`
102
102
  \uD83D\uDE80 Install command:`),console.log(`pantry install ${K.uniquePackages.join(" ")}`);if(Object.values(K.osSpecificDeps).reduce((L,E)=>L+E.length,0)>0)console.log(`
103
- \uD83D\uDDA5️ OS-specific dependencies:`),Object.entries(K.osSpecificDeps).forEach(([L,E])=>{if(E.length>0)console.log(` ${L}: ${E.map((x)=>x.name).join(", ")}`)})}j.exit(0)}catch(Q){if($.json){let Z={success:!1,error:String(Q),timestamp:new Date().toISOString()};console.log(JSON.stringify(Z))}else console.error("Error resolving dependencies:",Q);j.exit(1)}});D.command("get-php-versions","Get PHP versions suitable for CI/CD workflows").option("--format <type>","Output format: json (default), yaml, or csv",{default:"json"}).option("--branches <branches>","Comma-separated list of PHP branches to include (e.g., 8.4,8.3,8.2)").option("--fallback <versions>","Comma-separated list of fallback versions if detection fails").action(async(z)=>{try{let{getPhpVersionsForWorkflow:$}=await import("../chunk-hwqxy549.js"),Q={};if(z.branches)Q.supportedBranches=z.branches.split(",").map((Y)=>Y.trim());if(z.fallback)Q.fallbackVersions=z.fallback.split(",").map((Y)=>Y.trim());let Z=$(Q);switch(z.format.toLowerCase()){case"yaml":console.log(`php_versions:
103
+ \uD83D\uDDA5️ OS-specific dependencies:`),Object.entries(K.osSpecificDeps).forEach(([L,E])=>{if(E.length>0)console.log(` ${L}: ${E.map((x)=>x.name).join(", ")}`)})}j.exit(0)}catch(Q){if($.json){let Z={success:!1,error:String(Q),timestamp:new Date().toISOString()};console.log(JSON.stringify(Z))}else console.error("Error resolving dependencies:",Q);j.exit(1)}});D.command("get-php-versions","Get PHP versions suitable for CI/CD workflows").option("--format <type>","Output format: json (default), yaml, or csv",{default:"json"}).option("--branches <branches>","Comma-separated list of PHP branches to include (e.g., 8.4,8.3,8.2)").option("--fallback <versions>","Comma-separated list of fallback versions if detection fails").action(async(z)=>{try{let{getPhpVersionsForWorkflow:$}=await import("../chunk-9maq76y2.js"),Q={};if(z.branches)Q.supportedBranches=z.branches.split(",").map((Y)=>Y.trim());if(z.fallback)Q.fallbackVersions=z.fallback.split(",").map((Y)=>Y.trim());let Z=$(Q);switch(z.format.toLowerCase()){case"yaml":console.log(`php_versions:
104
104
  ${Z.map((Y)=>` - "${Y}"`).join(`
105
105
  `)}`);break;case"csv":console.log(Z.join(","));break;case"json":default:console.log(JSON.stringify(Z));break}j.exit(0)}catch($){console.error("Error getting PHP versions:",$),j.exit(1)}});D.command("generate-zig","Generate Zig package definitions from TypeScript packages").option("--packages-dir <dir>","Directory containing TypeScript package files",{default:"src/packages"}).option("--output <file>","Output Zig file path",{default:"packages.zig"}).option("--aliases","Also generate aliases file").option("--aliases-output <file>","Output file for Zig aliases",{default:"aliases.zig"}).action(async(z)=>{try{let{generateZigDefinitions:$,generateZigAliases:Q}=await import("../chunk-aa72n836.js"),{packagesDir:Z="src/packages",output:Y="packages.zig",aliases:q=!1,aliasesOutput:X="aliases.zig"}=z;if(console.log("\uD83D\uDE80 Generating Zig package definitions..."),await $(Z,Y),q)console.log(`
106
106
  \uD83D\uDE80 Generating Zig package aliases...`),await Q(Z,X);console.log(`
@@ -1,10 +1,10 @@
1
- import{eb as sQ}from"./chunk-1d97zpdr.js";import{Yb as r0}from"./chunk-gqzj0edb.js";import{ec as a,gc as PQ}from"./chunk-hh0g2d6f.js";import{Ac as y0,Bc as lQ,qc as S0,rc as A0,uc as x0,vc as cQ,xc as N0,zc as b0}from"./chunk-72840zva.js";import{Ic as W$}from"./chunk-73sbgnjy.js";import{Jc as LQ,Kc as V4}from"./chunk-gzwcsenc.js";import{Oc as n}from"./chunk-6zb03z2q.js";import S4 from"node:process";V4();import E0 from"node:process";function M0(Q){return Q in LQ}function I4(Q){if(!Q.includes(".")||Q.startsWith(".")||Q.endsWith("."))return!1;if(/^v?\d+(?:\.\d+){0,10}$/.test(Q))return!1;return/^[a-z0-9][\w.\-/]*$/i.test(Q)}function U$(Q){return M0(Q)||I4(Q)}function G$(Q){return["darwin","linux","windows"].includes(Q)}function Y$(Q){return["x86_64","aarch64","armv7l","i686"].includes(Q)}function V0(){return Object.keys(LQ)}function z$(){return Object.values(LQ)}function K$(Q){if(M0(Q))return{originalName:Q,resolvedDomain:LQ[Q],isAlias:!0};return{originalName:Q,resolvedDomain:Q,isAlias:!1}}function B$(Q){let $=Q.lastIndexOf("@");if($===-1)return{name:Q};let X=Q.slice(0,$),Z=Q.slice($+1);return{name:X,version:Z,versionSpec:Z}}function _$(Q,$){return $?`${Q}@${$}`:Q}function wQ(){let Q=E0.platform,$=E0.arch,X,Z,W=!0;switch(Q){case"darwin":X="darwin";break;case"linux":X="linux";break;case"win32":X="windows";break;default:X="linux",W=!1}switch($){case"x64":Z="x86_64";break;case"arm64":Z="aarch64";break;case"arm":Z="armv7l";break;case"ia32":Z="i686";break;default:Z="x86_64",W=!1}return{platform:X,architecture:Z,isSupported:W}}function L$(Q,$="latest",X){let Z=X||wQ(),W;switch(Z.platform){case"darwin":W="tar.xz";break;case"linux":W="tar.xz";break;case"windows":W="zip";break;default:W="tar.xz"}return{packageName:Q,version:$,platform:Z.platform,architecture:Z.architecture,format:W}}var O$={LATEST:"latest",ANY:"*"},I0={RUNTIME:["nodejs.org","python.org","go.dev","rust-lang.org"],BUILD_TOOLS:["cmake.org","ninja-build.org","gradle.org","maven.apache.org"],DATABASES:["postgresql.org","mysql.com","redis.io","mongodb.com"],EDITORS:["neovim.io","vim.org","code.visualstudio.com"],CLI_TOOLS:["cli.github.com","curl.se","wget.gnu.org","jq.dev"]};function q$(Q){return I0[Q]}function j$(Q,$){return I0[$].includes(Q)}function w$(Q){return Q}function C$(Q,$){return[Q,$]}function T$(Q){return Q}async function V$(Q){try{let $=await cQ(Q);if(!$)return{success:!1,error:`Package '${Q}' not found. Use 'search' to find available packages.`};return{success:!0,data:$}}catch($){return{success:!1,error:`Failed to get package info: ${$}`}}}async function I$(Q){try{if(!Q||Q.trim().length===0)return{success:!1,error:"Search term cannot be empty"};return{success:!0,data:await N0(Q.trim())}}catch($){return{success:!1,error:`Search failed: ${$}`}}}async function S$(Q=20){try{return{success:!0,data:(await b0(Q)).slice(0,Q)}}catch($){return{success:!1,error:`Failed to list popular packages: ${$}`}}}async function A$(Q=20){try{return{success:!0,data:await y0(Q)}}catch($){return{success:!1,error:`Failed to list active packages: ${$}`}}}function x$(){try{return{success:!0,data:V0()}}catch(Q){return{success:!1,error:`Failed to list aliases: ${Q}`}}}async function N$(Q){try{let $=await lQ(Q);if(!$.isValid)return{success:!1,error:$.error};return{success:!0,data:{packageName:$.packageName,version:$.version,isValid:!0}}}catch($){return{success:!1,error:`Validation failed: ${$}`}}}async function b$(Q){try{let $=await lQ(Q);if(!$.isValid)return{success:!1,error:$.error};let X=$.packageName,Z=$.version||"latest",W=await x0(X,Z);if(!W)return{success:!1,error:`Could not resolve version '${Z}' for package '${X}'`};let H=await cQ(X);if(!H)return{success:!1,error:`Package '${X}' not found`};let U=wQ(),J={packageName:X,resolvedVersion:W,platform:U.platform,architecture:U.architecture,dependencies:H.dependencies,companions:H.companions,installCommand:`pkgx install ${X}@${W}`},G=[];if(!U.isSupported)G.push(`Platform ${U.platform}/${U.architecture} may not be fully supported`);if(H.dependencies.length>0)G.push(`This package has ${H.dependencies.length} dependencies that will also be installed`);return{success:!0,data:J,warnings:G.length>0?G:void 0}}catch($){return{success:!1,error:`Failed to create install plan: ${$}`}}}async function y$(Q){try{let $=await S0(Q);if(!$)return{success:!1,error:`Package '${Q}' not found`};let X=await A0(Q);return{success:!0,data:{latest:$,total:X.length,versions:X}}}catch($){return{success:!1,error:`Failed to get version info: ${$}`}}}function D$(Q){let $=[`Package: ${Q.name}`,`Domain: ${Q.domain}`,`Description: ${Q.description}`,`Latest Version: ${Q.latestVersion}`,`Total Versions: ${Q.totalVersions}`];if(Q.programs.length>0)$.push(`Programs: ${Q.programs.join(", ")}`);if(Q.dependencies.length>0)$.push(`Dependencies: ${Q.dependencies.join(", ")}`);if(Q.companions.length>0)$.push(`Companions: ${Q.companions.join(", ")}`);return $.join(`
1
+ import{eb as sQ}from"./chunk-1d97zpdr.js";import{Yb as r0}from"./chunk-gqzj0edb.js";import{ec as a,gc as PQ}from"./chunk-hh0g2d6f.js";import{Ac as y0,Bc as lQ,qc as S0,rc as A0,uc as x0,vc as cQ,xc as N0,zc as b0}from"./chunk-b9105y5x.js";import{Ic as W$}from"./chunk-ve2dx3d9.js";import{Jc as LQ,Kc as V4}from"./chunk-gzwcsenc.js";import{Oc as n}from"./chunk-6zb03z2q.js";import S4 from"node:process";V4();import E0 from"node:process";function M0(Q){return Q in LQ}function I4(Q){if(!Q.includes(".")||Q.startsWith(".")||Q.endsWith("."))return!1;if(/^v?\d+(?:\.\d+){0,10}$/.test(Q))return!1;return/^[a-z0-9][\w.\-/]*$/i.test(Q)}function U$(Q){return M0(Q)||I4(Q)}function G$(Q){return["darwin","linux","windows"].includes(Q)}function Y$(Q){return["x86_64","aarch64","armv7l","i686"].includes(Q)}function V0(){return Object.keys(LQ)}function z$(){return Object.values(LQ)}function K$(Q){if(M0(Q))return{originalName:Q,resolvedDomain:LQ[Q],isAlias:!0};return{originalName:Q,resolvedDomain:Q,isAlias:!1}}function B$(Q){let $=Q.lastIndexOf("@");if($===-1)return{name:Q};let X=Q.slice(0,$),Z=Q.slice($+1);return{name:X,version:Z,versionSpec:Z}}function _$(Q,$){return $?`${Q}@${$}`:Q}function wQ(){let Q=E0.platform,$=E0.arch,X,Z,W=!0;switch(Q){case"darwin":X="darwin";break;case"linux":X="linux";break;case"win32":X="windows";break;default:X="linux",W=!1}switch($){case"x64":Z="x86_64";break;case"arm64":Z="aarch64";break;case"arm":Z="armv7l";break;case"ia32":Z="i686";break;default:Z="x86_64",W=!1}return{platform:X,architecture:Z,isSupported:W}}function L$(Q,$="latest",X){let Z=X||wQ(),W;switch(Z.platform){case"darwin":W="tar.xz";break;case"linux":W="tar.xz";break;case"windows":W="zip";break;default:W="tar.xz"}return{packageName:Q,version:$,platform:Z.platform,architecture:Z.architecture,format:W}}var O$={LATEST:"latest",ANY:"*"},I0={RUNTIME:["nodejs.org","python.org","go.dev","rust-lang.org"],BUILD_TOOLS:["cmake.org","ninja-build.org","gradle.org","maven.apache.org"],DATABASES:["postgresql.org","mysql.com","redis.io","mongodb.com"],EDITORS:["neovim.io","vim.org","code.visualstudio.com"],CLI_TOOLS:["cli.github.com","curl.se","wget.gnu.org","jq.dev"]};function q$(Q){return I0[Q]}function j$(Q,$){return I0[$].includes(Q)}function w$(Q){return Q}function C$(Q,$){return[Q,$]}function T$(Q){return Q}async function V$(Q){try{let $=await cQ(Q);if(!$)return{success:!1,error:`Package '${Q}' not found. Use 'search' to find available packages.`};return{success:!0,data:$}}catch($){return{success:!1,error:`Failed to get package info: ${$}`}}}async function I$(Q){try{if(!Q||Q.trim().length===0)return{success:!1,error:"Search term cannot be empty"};return{success:!0,data:await N0(Q.trim())}}catch($){return{success:!1,error:`Search failed: ${$}`}}}async function S$(Q=20){try{return{success:!0,data:(await b0(Q)).slice(0,Q)}}catch($){return{success:!1,error:`Failed to list popular packages: ${$}`}}}async function A$(Q=20){try{return{success:!0,data:await y0(Q)}}catch($){return{success:!1,error:`Failed to list active packages: ${$}`}}}function x$(){try{return{success:!0,data:V0()}}catch(Q){return{success:!1,error:`Failed to list aliases: ${Q}`}}}async function N$(Q){try{let $=await lQ(Q);if(!$.isValid)return{success:!1,error:$.error};return{success:!0,data:{packageName:$.packageName,version:$.version,isValid:!0}}}catch($){return{success:!1,error:`Validation failed: ${$}`}}}async function b$(Q){try{let $=await lQ(Q);if(!$.isValid)return{success:!1,error:$.error};let X=$.packageName,Z=$.version||"latest",W=await x0(X,Z);if(!W)return{success:!1,error:`Could not resolve version '${Z}' for package '${X}'`};let H=await cQ(X);if(!H)return{success:!1,error:`Package '${X}' not found`};let U=wQ(),J={packageName:X,resolvedVersion:W,platform:U.platform,architecture:U.architecture,dependencies:H.dependencies,companions:H.companions,installCommand:`pkgx install ${X}@${W}`},G=[];if(!U.isSupported)G.push(`Platform ${U.platform}/${U.architecture} may not be fully supported`);if(H.dependencies.length>0)G.push(`This package has ${H.dependencies.length} dependencies that will also be installed`);return{success:!0,data:J,warnings:G.length>0?G:void 0}}catch($){return{success:!1,error:`Failed to create install plan: ${$}`}}}async function y$(Q){try{let $=await S0(Q);if(!$)return{success:!1,error:`Package '${Q}' not found`};let X=await A0(Q);return{success:!0,data:{latest:$,total:X.length,versions:X}}}catch($){return{success:!1,error:`Failed to get version info: ${$}`}}}function D$(Q){let $=[`Package: ${Q.name}`,`Domain: ${Q.domain}`,`Description: ${Q.description}`,`Latest Version: ${Q.latestVersion}`,`Total Versions: ${Q.totalVersions}`];if(Q.programs.length>0)$.push(`Programs: ${Q.programs.join(", ")}`);if(Q.dependencies.length>0)$.push(`Dependencies: ${Q.dependencies.join(", ")}`);if(Q.companions.length>0)$.push(`Companions: ${Q.companions.join(", ")}`);return $.join(`
2
2
  `)}function P$(Q){if(Q.length===0)return"No packages found matching your search.";let $=[`Found ${Q.length} package(s):
3
3
  `];for(let X of Q)$.push(`${X.name} (${X.domain})`),$.push(` ${X.description}`),$.push(` Latest: ${X.latestVersion} (${X.totalVersions} versions available)`),$.push("");return $.join(`
4
4
  `)}function v$(Q){let $=[`Installation Plan for ${Q.packageName}@${Q.resolvedVersion}`,`Platform: ${Q.platform}/${Q.architecture}`,`Command: ${Q.installCommand}`];if(Q.dependencies.length>0)$.push(`Dependencies: ${Q.dependencies.join(", ")}`);if(Q.companions.length>0)$.push(`Companions: ${Q.companions.join(", ")}`);return $.join(`
5
5
  `)}function h$(){try{let Q=wQ();return{success:!0,data:{platform:Q.platform,architecture:Q.architecture,isSupported:Q.isSupported,nodeVersion:S4.version}}}catch(Q){return{success:!1,error:`Failed to get system info: ${Q}`}}}import HQ from"node:fs";import TQ from"node:path";function FQ(Q){if(!HQ.existsSync(Q))throw Error(`Dependency file not found: ${Q}`);let $=HQ.readFileSync(Q,"utf-8"),X=[],Z=$.split(`
6
6
  `),W=!1,H=!1,U=0;for(let J of Z){let G=J.trim();if(!G||G.startsWith("#"))continue;if(J.match(/^(dependencies|deps):\s*$/)){W=!0,H=!1,U=J.search(/\S/);continue}if(J.match(/^global:\s*true\s*$/)||J.match(/^global:\s*$/)&&!W){H=!0;continue}if(J.match(/^\w+:/)&&!J.includes(" ")&&W&&U===0){W=!1;continue}if(W||H){if(J.match(/^\s+(dependencies|deps):\s*$/))continue;let Y=J.indexOf(":");if(Y>0){let K=J.substring(0,Y).trim(),B=J.substring(Y+1).trim();if(K&&B){let z=K,q=B.replace(/^['"]|['"]$/g,"");if(z==="global"||z==="dependencies"||z==="deps")continue;let _=q,j=q;if(q.startsWith("^"))_=q.substring(1),j=q;else if(q.startsWith("~"))_=q.substring(1),j=q;else if(q.startsWith(">=")||q.startsWith("<=")||q.startsWith(">")||q.startsWith("<")){let O=/^([><=]+)/.exec(q);if(O){let L=O[1];_=q.substring(L.length).trim(),j=q}}else if(q==="*"||q==="latest")_="latest",j="*";else _=q,j=`@${q}`;X.push({name:z,version:_,constraint:j,isOsSpecific:!1})}}}}return X}function A4(Q){if(!HQ.existsSync(Q))throw Error(`Dependency file not found: ${Q}`);let $=HQ.readFileSync(Q,"utf-8"),X=FQ(Q),Z;try{let W=typeof Bun<"u"&&Bun.YAML?Bun.YAML.parse($):x4($);if(W?.services){let H=Array.isArray(W.services.autoStart)?W.services.autoStart.map((U)=>String(U)):[];if(H.length>0)Z={enabled:W.services.enabled===!0,autoStart:H}}}catch{}return{dependencies:X,services:Z}}function x4(Q){let $={},X=Q.split(`
7
- `),Z=!1,W=!1,H=[],U=!1;for(let J of X){let G=J.trim();if(!G||G.startsWith("#"))continue;if(J.match(/^services:\s*$/)){Z=!0,W=!1;continue}if(Z&&!J.startsWith(" ")&&!J.startsWith("\t")&&!G.startsWith("-")){if(G!=="services:"){Z=!1,W=!1;continue}}if(Z){if(G.startsWith("enabled:")){U=G.includes("true");continue}if(G.match(/^autoStart:\s*$/)){W=!0;continue}if(W&&G.startsWith("- ")){let Y=G.slice(2).trim();if(Y)H.push(Y)}}}if(H.length>0)$.services={enabled:U,autoStart:H};return $}async function g$(Q,$="src/packages"){try{let X;if(Q.includes("/"))X=TQ.join($,`${Q}.ts`);else{let K=`${Q.replace(/\./g,"")}.ts`;X=TQ.join($,K)}if(!HQ.existsSync(X))return[];let Z=HQ.readFileSync(X,"utf-8"),W=Z.indexOf("versions:");if(W===-1)return[];let H=Z.substring(W),U=H.indexOf("["),J=H.indexOf("] as const");if(U===-1||J===-1)return[];let Y=H.substring(U+1,J).match(/'([^']+)'/g);if(!Y)return[];return Y.map((K)=>K.replace(/'/g,""))}catch{return[]}}async function N4(Q){try{let{packages:$}=await import("./chunk-tr0839z1.js").catch(()=>import("./src/index.js")),X=Q.replace(/[^a-z0-9]/gi,"").toLowerCase(),Z=$[X];if(!Z){let W=Object.values($);Z=W.find((H)=>H.domain===Q)||W.find((H)=>Array.isArray(H.aliases)&&H.aliases.includes(Q))}if(Z&&Z.versions&&Array.isArray(Z.versions))return Z.versions;return[]}catch{return[]}}async function D0(Q,$){let X=await N4(Q);if(X.length===0)return $.split("#")[0].trim().replace(/^[@^~>=<]+/,"")||"latest";let Z=$.split("#")[0].trim();if(Z==="*"||Z==="latest")return X[0];if(Z.startsWith("@")){let H=Z.slice(1);return X.includes(H)?H:X[0]}return b4(X,Z)||X[0]}function b4(Q,$){if($.startsWith("^")){let X=$.slice(1),[Z]=GQ(X);return Q.filter((H)=>{let[U]=GQ(H);return U===Z&&JQ(H,X)>=0})[0]||null}if($.startsWith("~")){let X=$.slice(1),[Z,W]=GQ(X);return Q.filter((U)=>{let[J,G]=GQ(U);return J===Z&&G===W&&JQ(U,X)>=0})[0]||null}if($.startsWith(">=")){let X=$.slice(2).trim();return Q.filter((W)=>JQ(W,X)>=0)[0]||null}if($.startsWith(">")){let X=$.slice(1).trim();return Q.filter((W)=>JQ(W,X)>0)[0]||null}if($.startsWith("<=")){let X=$.slice(2).trim();return Q.filter((W)=>JQ(W,X)<=0)[0]||null}if($.startsWith("<")){let X=$.slice(1).trim();return Q.filter((W)=>JQ(W,X)<0)[0]||null}if($.startsWith("=")){let X=$.slice(1).trim();return Q.includes(X)?X:null}return Q.includes($)?$:null}function GQ(Q){let $=Q.split(".").map((X)=>{let Z=X.match(/^\d+/);return Z?Number.parseInt(Z[0],10):0});return[$[0]||0,$[1]||0,$[2]||0]}function JQ(Q,$){if(Q==="latest"&&$!=="latest")return 1;if($==="latest"&&Q!=="latest")return-1;if(Q==="latest"&&$==="latest")return 0;let X=Q.split("#")[0].trim(),Z=$.split("#")[0].trim(),[W,H,U]=GQ(X),[J,G,Y]=GQ(Z);if(W>J)return 1;if(W<J)return-1;if(H>G)return 1;if(H<G)return-1;if(U>Y)return 1;if(U<Y)return-1;return 0}var CQ=null;async function y4(){if(CQ)return CQ;return CQ=(await import("./chunk-tr0839z1.js").catch(()=>import("./src/index.js"))).packages,CQ}async function D4(Q){try{let $=await y4(),X=$[Q];if(X)return{dependencies:X.dependencies||[],companions:X.companions||[]};let Z=Q.replace(/[^a-z0-9]/gi,"").toLowerCase(),W=$[Z];if(W)return{dependencies:W.dependencies||[],companions:W.companions||[]};let U=Object.values($).find((J)=>J.domain===Q);if(U)return{dependencies:U.dependencies||[],companions:U.companions||[]};return null}catch($){return console.warn(`Failed to load package data for ${Q}: ${$}`),null}}async function RQ(Q,$={},X=new Set,Z=0){let{maxDepth:W=10,verbose:H=!1,targetOs:U,includeOsSpecific:J=!0}=$;if(Z>W){if(H)console.warn(` Warning: max dependency depth (${W}) exceeded for ${Q}`);return[]}if(X.has(Q))return[];if(X.add(Q),H)console.log(`${" ".repeat(Z)}Resolving dependencies for: ${Q}`);let G=[];try{let K=function(_){let j=_.match(/^(linux|darwin|windows):(.+)$/),O=!!j,L=j?j[2]:_,F=j?j[1]:void 0;if(O&&(!J||U&&F!==U))return null;let R=L,C="latest",w="*",T=L.match(/^(@?[^@^~>=<]+(?:\/[^@^~>=<]+)?)([@^~>=<].+)?$/);if(T){if(R=T[1],T[2]){let E=T[2];if(E.startsWith("@"))C=E.substring(1),w=E;else w=E,C=E.replace(/^\D*/,"")}}return{dep:{name:R,version:C,constraint:w,isOsSpecific:O,os:F},pkgName:R}},Y=await D4(Q),z=[...Y?.dependencies||[],...Y?.companions||[]].map(K).filter((_)=>_!==null);for(let{dep:_}of z)G.push(_);let q=await Promise.allSettled(z.map(({pkgName:_})=>RQ(_,$,X,Z+1)));for(let _ of q)if(_.status==="fulfilled")G.push(..._.value);else if(H)console.warn(` Warning: transitive dependency resolution failed: ${_.reason}`)}catch(Y){if(H)console.warn(`${" ".repeat(Z)}Warning: Could not resolve dependencies for ${Q}: ${Y}`)}return G}async function pQ(Q,$={}){let X=new Map,Z=[],W={linux:[],darwin:[],windows:[]};for(let J of Q){if(!X.has(J.name))X.set(J.name,[]);if(X.get(J.name).push(J),J.isOsSpecific&&J.os)W[J.os].push(J)}let H=[],U=[];for(let[J,G]of X)if(G.length===1){let Y=await D0(J,G[0].constraint),K={...G[0],version:Y};H.push(K),U.push(J)}else{let Y=G.map((_)=>_.version),K=[...new Set(Y)];if(K.length>1)Z.push({package:J,versions:K});let B=await Promise.all(G.map(async(_)=>({..._,resolvedVersion:await D0(J,_.constraint)}))),z=B[0];for(let _ of B.slice(1))if(z.constraint==="*"&&_.constraint!=="*")z=_;else if(z.constraint!=="*"&&_.constraint==="*");else if(JQ(_.resolvedVersion,z.resolvedVersion)>0)z=_;let q={...z,version:z.resolvedVersion};delete q.resolvedVersion,H.push(q),U.push(J)}return{allDependencies:H,uniquePackages:U,conflicts:Z,osSpecificDeps:W}}async function P0(Q,$={}){let{verbose:X=!1}=$;if(X)console.log(`Parsing dependency file: ${Q}`);let Z=FQ(Q);if(X)console.log(`Found ${Z.length} direct dependencies`);let W=[...Z],H=await Promise.all(Z.map(async(G)=>{if(X)console.log(`Resolving transitive dependencies for: ${G.name}`);return RQ(G.name,$)}));for(let G of H)W.push(...G);if(X)console.log(`Total dependencies found (before deduplication): ${W.length}`);let U=await pQ(W,$);if(X){if(console.log(`Unique packages after deduplication: ${U.uniquePackages.length}`),U.conflicts.length>0)console.log(`Version conflicts found: ${U.conflicts.length}`)}let J=TQ.extname(Q);if(J===".yaml"||J===".yml"){let G=A4(Q);if(G.services)U.services=G.services}return U}function m$(Q){let $=["deps.yaml","deps.yml","dependencies.yaml","dependencies.yml","pkgx.yaml","pkgx.yml",".deps.yaml",".deps.yml"],X=[];for(let Z of $){let W=TQ.join(Q,Z);if(HQ.existsSync(W))X.push(W)}return X}import*as M from"node:fs";import*as y from"node:path";import*as t from"node:os";import*as rQ from"node:https";import*as tQ from"node:http";import{execFileSync as EQ}from"node:child_process";import{createHash as P4}from"node:crypto";import{Transform as v4}from"node:stream";import{pipeline as h4}from"node:stream/promises";var u0=(process.env.PANTRY_REGISTRY_URL||"https://registry.pantry.dev").replace(/\/$/,"");function k4(Q,$){if(Q!=="ziglang.org")return $;return $.replace(/(-dev\.\d+)\+([0-9A-Za-z-]+)$/,"$1_$2")}function IQ(){let Q=process.env.XDG_DATA_HOME,$=Q&&Q.length>0?Q:y.join(t.homedir(),".local","share");return y.join($,"pantry","global","bin")}function SQ(){let Q=t.platform(),$=t.arch();return{os:Q==="darwin"?"darwin":Q==="win32"?"windows":"linux",arch:$==="arm64"?"aarch64":"x86_64"}}function nQ(Q,$){let X=Q.replace(/(-dev\.\d+)_([0-9A-Za-z-]+)$/,"$1+$2"),Z=$.os==="darwin"?"macos":$.os,W=$.arch==="aarch64"?"aarch64":"x86_64",H=$.os==="windows"?"zip":"tar.xz",U=`zig-${W}-${Z}-${X}`,J=`${U}.${H}`;return{url:X.includes("-dev.")?`https://ziglang.org/builds/${J}`:`https://ziglang.org/download/${X}/${J}`,format:H,prefix:U}}function u4(Q,$){let[X,Z,W]=Q.split(".").map(Number);if(X!==3||!Number.isInteger(Z)||!Number.isInteger(W))throw Error(`Unsupported SQLite version: ${Q}`);let H=Z>=52?2026:Z>=48?2025:2024,J={"darwin-aarch64":"osx-arm64","darwin-x86_64":"osx-x64","linux-x86_64":"linux-x64","windows-aarch64":"win-arm64","windows-x86_64":"win-x64"}[`${$.os}-${$.arch}`];if(!J)throw Error(`Unsupported platform for SQLite tools: ${$.os}-${$.arch}`);let G=`${X}${Z}${String(W).padStart(2,"0")}00`;return`https://sqlite.org/${H}/sqlite-tools-${J}-${G}.zip`}var OQ={"github.com/mail-os/mail":{getDownloadUrl(Q,$){if($.os!=="linux"||$.arch!=="x86_64")throw Error("github.com/mail-os/mail currently publishes linux-x86_64 release binaries");let X={darwin:"macos",linux:"linux",windows:"windows"},Z=`mail-${$.arch}-${X[$.os]}`;return`https://github.com/mail-os/mail/releases/download/v${Q}/${Z}.tar.gz`},getArchiveFormat(){return"tar.gz"},getBinaries(Q){let $={darwin:"macos",linux:"linux",windows:"windows"};return[`mail-${Q.arch}-${$[Q.os]}`,"mail"]}},"ziglang.org":{getDownloadUrl(Q,$){return nQ(Q,$).url},getArchiveFormat(Q){return nQ("0.0.0",Q).format},getBinaries(Q){return Q.os==="windows"?["zig.exe"]:["zig"]},getArchivePrefix(Q,$){return nQ(Q,$).prefix}},"bun.sh":{getDownloadUrl(Q,$){let X={"darwin-aarch64":"darwin-aarch64","darwin-x86_64":"darwin-x64","linux-aarch64":"linux-aarch64","linux-x86_64":"linux-x64","windows-x86_64":"windows-x64"},Z=`${$.os}-${$.arch}`,W=X[Z]||"linux-x64";return`https://github.com/oven-sh/bun/releases/download/bun-v${Q}/bun-${W}.zip`},getArchiveFormat(){return"zip"},getBinaries(Q){return Q.os==="windows"?["bun.exe"]:["bun","bunx"]},getArchivePrefix(Q,$){let X={"darwin-aarch64":"bun-darwin-aarch64","darwin-x86_64":"bun-darwin-x64","linux-aarch64":"bun-linux-aarch64","linux-x86_64":"bun-linux-x64","windows-x86_64":"bun-windows-x64"},Z=`${$.os}-${$.arch}`,W=X[Z];if(!W)throw Error(`Unsupported platform for bun: ${Z}`);return W}},"sqlite.org":{getDownloadUrl(Q,$){return u4(Q,$)},getArchiveFormat(){return"zip"},getBinaries(Q){let $=Q.os==="windows"?".exe":"";return[`sqlite3${$}`,`sqldiff${$}`,`sqlite3_analyzer${$}`,`sqlite3_rsync${$}`]}},"nodejs.org":{getDownloadUrl(Q,$){let X={darwin:"darwin",linux:"linux",windows:"win"},Z={x86_64:"x64",aarch64:"arm64"},W=$.os==="windows"?"zip":"tar.xz";return`https://nodejs.org/dist/v${Q}/node-v${Q}-${X[$.os]}-${Z[$.arch]}.${W}`},getArchiveFormat(Q){return Q.os==="windows"?"zip":"tar.xz"},getBinaries(Q){return Q.os==="windows"?["node.exe","npm.cmd","npx.cmd"]:["node","npm","npx"]},getArchivePrefix(Q,$){let X={darwin:"darwin",linux:"linux",windows:"win"},Z={x86_64:"x64",aarch64:"arm64"};return`node-v${Q}-${X[$.os]}-${Z[$.arch]}`}}};function v0(Q,$,X,Z){M.mkdirSync(X,{recursive:!0});let W=null;for(let H of $){let U=y.join(Q,H);if(!M.existsSync(U))U=y.join(Q,"bin",H);if(!M.existsSync(U)){if(W){let G=y.join(X,H);try{M.unlinkSync(G)}catch{}if(Z.os==="windows")M.copyFileSync(W,G);else M.symlinkSync(W,G)}continue}if(!W)W=U;let J=y.join(X,H);try{M.unlinkSync(J)}catch{}if(Z.os==="windows")M.copyFileSync(U,J);else M.symlinkSync(U,J)}}async function f0(Q,$,X={}){let Z=X.platform||SQ(),W=OQ[Q];if(!W)throw Error(`Unknown package: ${Q}. Supported: ${Object.keys(OQ).join(", ")}`);if(/^[\^~>=<]/.test($))$=await n4(Q,$,Z);else if($==="latest"||$==="*"||!$)$=await aQ(Q,Z);else if(Q==="ziglang.org"&&$.endsWith("-dev")){let j=await g4($,Z,{onRetry:X.onRetry});if(!j)throw Error(`Could not resolve ${$} to a published ziglang.org development build`);$=j}if($=k4(Q,$),!$)throw Error(`Could not resolve a concrete version for ${Q} (got empty string from resolver)`);let H=X.installDir||y.join(process.cwd(),"pantry"),U=y.join(H,".bin"),J=y.join(H,Q.replace(/\./g,"-"),$),G=W.getBinaries(Z);if(G.length===0)throw Error(`No binaries defined for ${Q} on ${Z.os}-${Z.arch}`);let Y=y.join(J,G[0]),K=y.join(J,"bin",G[0]);if(M.existsSync(Y)||M.existsSync(K)){if(!X.quiet)console.log(` ✓ ${Q}@${$} (cached)`);if(X.createBinLinks!==!1)v0(J,G,U,Z);let j=h0(J,G,Z,X);return{name:Q,version:$,installPath:J,binaries:G,globalLinks:j}}let B=W.getDownloadUrl($,Z),z=W.getArchiveFormat(Z);if(!X.quiet)console.log(` → ${Q}@${$} from ${new URL(B).hostname}`);let q=M.mkdtempSync(y.join(t.tmpdir(),"pantry-")),_=y.join(q,`archive.${z}`);try{let j;if(B.startsWith(`${u0}/binaries/`)){let C=y.join(q,"archive.sha256");await k0(`${B}.sha256`,C,{quiet:X.quiet,onRetry:X.onRetry});let w=M.readFileSync(C,"utf8").match(/\b([a-f0-9]{64})\b/i)?.[1];if(!w)throw Error(`Invalid SHA-256 checksum response for ${B}`);j=w.toLowerCase()}await k0(B,_,{quiet:X.quiet,onRetry:X.onRetry,expectedSha256:j});let O=y.join(q,"extracted");M.mkdirSync(O,{recursive:!0}),await a4(_,O,z);let L=O,F=W.getArchivePrefix?.($,Z);if(F){let C=y.join(O,F);if(M.existsSync(C))L=C;else{let T=M.readdirSync(O).find((E)=>M.statSync(y.join(O,E)).isDirectory());if(T)L=y.join(O,T)}}if(M.mkdirSync(J,{recursive:!0}),e4(L,J),Z.os!=="windows"){for(let C of G){let w=y.join(J,C);if(M.existsSync(w))M.chmodSync(w,493);let T=y.join(J,"bin",C);if(M.existsSync(T))M.chmodSync(T,493)}for(let C of["bin","sbin","libexec"])p0(y.join(J,C))}if(X.createBinLinks!==!1)v0(J,G,U,Z);if(!X.quiet)console.log(` ✓ ${Q}@${$}`);let R=h0(J,G,Z,X);return{name:Q,version:$,installPath:J,binaries:G,globalLinks:R}}finally{try{M.rmSync(q,{recursive:!0,force:!0})}catch{}}}function h0(Q,$,X,Z){if(!Z.globalBin)return[];let W=typeof Z.globalBin==="string"?Z.globalBin:IQ();M.mkdirSync(W,{recursive:!0});let H=[];for(let U of $){let J=y.join(Q,U);if(!M.existsSync(J))J=y.join(Q,"bin",U);if(!M.existsSync(J))continue;let G=y.join(W,U);try{M.unlinkSync(G)}catch{}if(X.os==="windows")M.copyFileSync(J,G);else M.symlinkSync(J,G);H.push(G)}if(!Z.quiet&&H.length>0)console.log(` → linked ${H.length} binary(ies) into ${W}`);return H}async function f4(Q,$={}){return Promise.all(Q.map((X)=>f0(X.domain,X.version,$)))}async function aQ(Q,$=SQ()){if(Q==="bun.sh"){let Z=(await i("https://api.github.com/repos/oven-sh/bun/releases/latest").catch(()=>null))?.tag_name?.replace(/^bun-v/,"")||"";if(Z)return Z;let W=await oQ(Q);if(W)return W;throw Error("Failed to resolve latest bun.sh version (GitHub API unreachable, no bundled metadata)")}if(Q==="ziglang.org"){let X=await eQ(Q,$);if(X.length>0)return X.sort(sQ)[0];throw Error(`Failed to resolve a ziglang.org version published for ${g0($)}`)}if(Q==="nodejs.org"){let Z=await i("https://nodejs.org/dist/index.json").catch(()=>null)||[],H=(Z.find((J)=>J.lts)?.version||Z[0]?.version||"").replace(/^v/,"");if(H)return H;let U=await oQ(Q);if(U)return U;throw Error("Failed to resolve latest nodejs.org version")}if(Q==="github.com/mail-os/mail"){let Z=(await i("https://api.github.com/repos/mail-os/mail/releases/latest").catch(()=>null))?.tag_name?.replace(/^v/,"")||"";if(Z)return Z;let H=((await i("https://api.github.com/repos/mail-os/mail/tags?per_page=1").catch(()=>null))?.[0]?.name||"").replace(/^v/,"");if(H)return H;let U=await oQ(Q);if(U)return U;throw Error("Failed to resolve latest github.com/mail-os/mail version")}throw Error(`Cannot resolve latest version for ${Q}`)}async function oQ(Q){try{let $=Q.replace(/[^a-z0-9]/gi,"").toLowerCase(),{packages:X}=await import("./chunk-tr0839z1.js").catch(()=>import("./src/index.js")),W=X[$]?.versions||[];return W.find((H)=>!H.includes("-"))||W[0]||""}catch{return""}}async function g4(Q,$,X={}){let W=(await eQ("ziglang.org",$,X)).filter((J)=>J.startsWith(`${Q}.`)).sort(sQ)[0];if(W)return W;let U=(await i("https://ziglang.org/download/index.json",3,X).catch(()=>null))?.master?.version||"";return U.startsWith(`${Q}.`)?U:null}function g0(Q){let $=Q.arch==="aarch64"?"arm64":"x86-64";return`${Q.os}-${$}`}function m4(Q,$){let X=g0($);return Object.entries(Q?.versions||{}).filter(([,Z])=>Object.hasOwn(Z.platforms||{},X)).map(([Z])=>Z)}async function eQ(Q,$,X={}){let Z=await i(`${u0}/binaries/${encodeURI(Q)}/metadata.json`,5,X).catch(()=>null);return m4(Z,$)}function m0(Q){let $=Q.match(/^([~^]|>=|<=|>|<|=)(\d+(?:\.\d+){0,10}(?:-[0-9A-Za-z.-]+)?(?:[+_][0-9A-Za-z.-]+)?)/);if(!$)return null;return{operator:$[1],target:$[2]}}function MQ(Q){return Q.split(/[+_-]/,1)[0].split(".").map(($)=>Number.parseInt($,10))}function d0(Q,$){let X=MQ(Q),Z=MQ($);for(let G=0;G<Math.max(X.length,Z.length,3);G++){let Y=(X[G]||0)-(Z[G]||0);if(Y)return Y}let W=Q.includes("-"),H=$.includes("-");if(W!==H)return W?-1:1;let U=Number.parseInt(Q.match(/-dev\.(\d+)/)?.[1]||"0",10),J=Number.parseInt($.match(/-dev\.(\d+)/)?.[1]||"0",10);return U-J}function d4(Q,$){let{operator:X,target:Z}=$;if(Q.includes("-")&&!Z.includes("-"))return!1;let W=MQ(Q),H=MQ(Z);if(W.some(Number.isNaN)||H.some(Number.isNaN))return!1;let[U,J,G]=[W[0]||0,W[1]||0,W[2]||0],[Y,K,B]=[H[0]||0,H[1]||0,H[2]||0],z=d0(Q,Z);if(X==="^"){if(z<0)return!1;if(Y===0&&K===0)return U===0&&J===0&&G===B;if(Y===0)return U===0&&J===K;return U===Y}if(X==="~"){if(z<0)return!1;return H.length===1?U===Y:U===Y&&J===K}if(X===">=")return z>=0;if(X==="<=")return z<=0;if(X===">")return z>0;if(X==="<")return z<0;if(X==="=")return z===0;return!1}async function c4(Q,$){if(Q==="bun.sh")return(await i("https://api.github.com/repos/oven-sh/bun/releases?per_page=100").catch(()=>null)||[]).map((W)=>(W.tag_name||"").replace(/^bun-v/,"")).filter(Boolean);if(Q==="nodejs.org")return(await i("https://nodejs.org/dist/index.json").catch(()=>null)||[]).map((W)=>(W.version||"").replace(/^v/,"")).filter(Boolean);if(Q==="ziglang.org"){let X=await i("https://ziglang.org/download/index.json").catch(()=>null),Z=l4(X,$);if(Z.length>0)return Z;return await eQ(Q,$)}return[]}function l4(Q,$){let X=`${$.arch}-${$.os==="darwin"?"macos":$.os}`;return Object.entries(Q||{}).filter(([,Z])=>Boolean(Z[X])).map(([Z,W])=>W.version||Z).filter(Boolean)}function iQ(Q,$){return d0($,Q)}function p4(Q,$){let X=m0(Q);if(!X)return null;return[...new Set($)].sort(iQ).find((Z)=>d4(Z,X))||null}async function n4(Q,$,X){if(!m0($))return aQ(Q,X);let Z;try{let J=Q.replace(/[^a-z0-9]/gi,"").toLowerCase(),{packages:G}=await import("./chunk-tr0839z1.js").catch(()=>import("./src/index.js"));Z=G[J]?.versions||[]}catch{Z=[]}let W=await c4(Q,X),H=Q==="ziglang.org"?W.sort(iQ):[...new Set([...W,...Z])].sort(iQ),U=p4($,H);if(U)return U;throw Error(`No version of ${Q} satisfies "${$}" (checked ${H.length} version${H.length===1?"":"s"}${H.length>0?`, newest ${H[0]}`:""}).`)}var o4=4;function VQ(Q){return Q instanceof Error?Q.message:String(Q)}function i4(Q){if(typeof Q==="object"&&Q!==null&&"statusCode"in Q){let X=Number(Q.statusCode);if(Number.isFinite(X))return X}let $=VQ(Q).match(/\bHTTP\s+(\d{3})\b/i);return $?Number($[1]):void 0}function s4(Q){if(typeof Q!=="object"||Q===null)return"";let $="code"in Q?String(Q.code||""):"";if($)return $;let X="cause"in Q?Q.cause:void 0;return typeof X==="object"&&X!==null&&"code"in X?String(X.code||""):""}function r4(Q){let $=i4(Q);if($!==void 0)return $===408||$===425||$===429||$>=500;if(/^(?:ECONNRESET|ECONNREFUSED|EPIPE|ETIMEDOUT|EAI_AGAIN|ENETDOWN|ENETUNREACH|EHOSTUNREACH|UND_ERR_SOCKET)$/i.test(s4(Q)))return!0;return/socket hang up|connection reset|premature close|aborted|terminated|timed? ?out|temporar|stalled|incomplete download|checksum mismatch/i.test(VQ(Q))}async function c0(Q,$,X={}){let Z=X.maxAttempts??o4,W=X.retryDelayMs??1000,H=X.sleep??((J)=>new Promise((G)=>setTimeout(G,J))),U;for(let J=1;J<=Z;J+=1)try{return await $()}catch(G){if(U=G,!r4(G))throw G;if(J===Z)break;let Y=Math.min(W*2**(J-1),1e4);X.onRetry?.(`${Q} failed (${VQ(G)}); retrying in ${Y}ms`),await H(Y)}throw Error(`${Q} failed after ${Z} attempts: ${VQ(U)}`)}function l0(Q,$,X){return new Promise((Z,W)=>{let U=(Q.startsWith("https")?rQ.get:tQ.get)(Q,{headers:{"User-Agent":"pantry-installer"}},(J)=>{if(J.statusCode&&J.statusCode>=300&&J.statusCode<400&&J.headers.location){if(J.resume(),$<=0)return W(Error(`Too many redirects for ${Q}`));let G=new URL(J.headers.location,Q).href;return l0(G,$-1,X).then(Z,W)}if(!J.statusCode||J.statusCode<200||J.statusCode>=300){J.resume();let G=Object.assign(Error(`HTTP ${J.statusCode||"unknown"} downloading ${Q}`),{statusCode:J.statusCode});return W(G)}J.setTimeout(X,()=>{J.destroy(Error(`Download stalled (no data for ${X/1000}s): ${Q}`))}),Z(J)});U.setTimeout(X,()=>{U.destroy(Error(`Download timed out after ${X/1000}s: ${Q}`))}),U.once("error",W)})}async function t4(Q,$,X){let Z=`${$}.part`;try{M.rmSync(Z,{force:!0})}catch{}let W=await l0(Q,10,X.stallTimeoutMs??60000),H=!X.quiet&&process.stderr.isTTY,U=Number.parseInt(String(W.headers["content-length"]||""),10),J=Number.isFinite(U)?U:0,G=0,Y=0,K=X.expectedSha256?P4("sha256"):void 0,B=new v4({transform(z,q,_){G+=z.length,K?.update(z);let j=Date.now();if(H&&j-Y>200){Y=j;let O=(G/1048576).toFixed(1);if(J>0){let L=(J/1048576).toFixed(1),F=Math.floor(G/J*100);process.stderr.write(`\r ${O}/${L} MB (${F}%)`)}else process.stderr.write(`\r ${O} MB`)}_(null,z)}});try{if(await h4(W,B,M.createWriteStream(Z)),!W.complete||J>0&&G!==J)throw Error(`Incomplete download for ${Q}: received ${G} of ${J||"unknown"} bytes`);if(X.expectedSha256){let z=K.digest("hex");if(z!==X.expectedSha256.toLowerCase())throw Error(`Checksum mismatch for ${Q}: expected ${X.expectedSha256}, got ${z}`)}M.renameSync(Z,$)}catch(z){try{M.rmSync(Z,{force:!0})}catch{}throw z}finally{if(H&&Y>0)process.stderr.write("\r\x1B[K")}}async function k0(Q,$,X={}){await c0(`Download ${Q}`,()=>t4(Q,$,X),X)}async function a4(Q,$,X){if(X==="zip")if(process.platform==="win32")EQ("powershell",["-NoProfile","-Command","Expand-Archive","-Path",Q,"-DestinationPath",$,"-Force"],{stdio:"pipe"});else EQ("unzip",["-o","-q",Q,"-d",$],{stdio:"pipe"});else if(X==="tar.xz")EQ("tar",["xJf",Q,"-C",$],{stdio:"pipe"});else if(X==="tar.gz")EQ("tar",["xzf",Q,"-C",$],{stdio:"pipe"});else throw Error(`Unsupported archive format: ${X}`)}function e4(Q,$){M.cpSync(Q,$,{recursive:!0})}function p0(Q){let $;try{$=M.readdirSync(Q,{withFileTypes:!0})}catch{return}for(let X of $){let Z=y.join(Q,X.name);try{if(X.isDirectory()){p0(Z);continue}if(!X.isFile())continue;let W=M.statSync(Z).mode&511,H=W|(W&292)>>2;if(H!==W)M.chmodSync(Z,H)}catch{}}}function n0(Q,$){return new Promise((X,Z)=>{let W=Q.startsWith("https")?rQ.get:tQ.get,H={"User-Agent":"pantry-installer",Accept:"application/json"};if(Q.includes("api.github.com")){let J=process.env.GITHUB_TOKEN||process.env.GH_TOKEN;if(J)H.Authorization=`Bearer ${J}`}let U=W(Q,{headers:H,timeout:30000},(J)=>{if(J.statusCode&&J.statusCode>=300&&J.statusCode<400&&J.headers.location){if($<=0)return Z(Error(`Too many redirects for ${Q}`));let Y=new URL(J.headers.location,Q).href;return n0(Y,$-1).then(X,Z)}if(!J.statusCode||J.statusCode<200||J.statusCode>=300)return Z(Object.assign(Error(`HTTP ${J.statusCode||"unknown"} fetching ${Q}`),{statusCode:J.statusCode}));let G="";J.on("data",(Y)=>G+=Y),J.on("end",()=>{try{X(JSON.parse(G))}catch(Y){Z(Y)}})});U.on("error",Z),U.on("timeout",()=>{U.destroy(),Z(Error(`Request timed out: ${Q}`))})})}function i(Q,$=5,X={}){return c0(`Fetch ${Q}`,()=>n0(Q,$),X)}function Q8(Q){return Q in OQ}function i$(){return Object.keys(OQ)}function s$(Q){let $=OQ[Q];if(!$)return;let X=SQ();return $.getBinaries(X)[0]}import*as g from"node:fs";import*as NQ from"node:os";import*as UQ from"node:path";var AQ="# >>> pantry shell-init >>>",xQ="# <<< pantry shell-init <<<";function bQ(){let Q=process.env.SHELL??"";if(Q.endsWith("/zsh")||Q==="zsh")return"zsh";if(Q.endsWith("/bash")||Q==="bash")return"bash";if(Q.endsWith("/fish")||Q==="fish")return"fish";return"unknown"}function Q0(Q){let $=NQ.homedir();switch(Q){case"zsh":{let X=process.env.ZDOTDIR;return UQ.join(X&&X.length>0?X:$,".zshrc")}case"bash":{if(NQ.platform()==="darwin"){let X=UQ.join($,".bash_profile");if(g.existsSync(X))return X}return UQ.join($,".bashrc")}case"fish":return UQ.join($,".config","fish","config.fish");case"unknown":return null}}function o0(Q={}){let $=Q.globalBin??IQ();if((Q.shell??bQ())==="fish")return[AQ,`if test -d "${$}"`,` set -gx PATH "${$}" $PATH`,"end",xQ,""].join(`
7
+ `),Z=!1,W=!1,H=[],U=!1;for(let J of X){let G=J.trim();if(!G||G.startsWith("#"))continue;if(J.match(/^services:\s*$/)){Z=!0,W=!1;continue}if(Z&&!J.startsWith(" ")&&!J.startsWith("\t")&&!G.startsWith("-")){if(G!=="services:"){Z=!1,W=!1;continue}}if(Z){if(G.startsWith("enabled:")){U=G.includes("true");continue}if(G.match(/^autoStart:\s*$/)){W=!0;continue}if(W&&G.startsWith("- ")){let Y=G.slice(2).trim();if(Y)H.push(Y)}}}if(H.length>0)$.services={enabled:U,autoStart:H};return $}async function g$(Q,$="src/packages"){try{let X;if(Q.includes("/"))X=TQ.join($,`${Q}.ts`);else{let K=`${Q.replace(/\./g,"")}.ts`;X=TQ.join($,K)}if(!HQ.existsSync(X))return[];let Z=HQ.readFileSync(X,"utf-8"),W=Z.indexOf("versions:");if(W===-1)return[];let H=Z.substring(W),U=H.indexOf("["),J=H.indexOf("] as const");if(U===-1||J===-1)return[];let Y=H.substring(U+1,J).match(/'([^']+)'/g);if(!Y)return[];return Y.map((K)=>K.replace(/'/g,""))}catch{return[]}}async function N4(Q){try{let{packages:$}=await import("./chunk-7dz33118.js").catch(()=>import("./src/index.js")),X=Q.replace(/[^a-z0-9]/gi,"").toLowerCase(),Z=$[X];if(!Z){let W=Object.values($);Z=W.find((H)=>H.domain===Q)||W.find((H)=>Array.isArray(H.aliases)&&H.aliases.includes(Q))}if(Z&&Z.versions&&Array.isArray(Z.versions))return Z.versions;return[]}catch{return[]}}async function D0(Q,$){let X=await N4(Q);if(X.length===0)return $.split("#")[0].trim().replace(/^[@^~>=<]+/,"")||"latest";let Z=$.split("#")[0].trim();if(Z==="*"||Z==="latest")return X[0];if(Z.startsWith("@")){let H=Z.slice(1);return X.includes(H)?H:X[0]}return b4(X,Z)||X[0]}function b4(Q,$){if($.startsWith("^")){let X=$.slice(1),[Z]=GQ(X);return Q.filter((H)=>{let[U]=GQ(H);return U===Z&&JQ(H,X)>=0})[0]||null}if($.startsWith("~")){let X=$.slice(1),[Z,W]=GQ(X);return Q.filter((U)=>{let[J,G]=GQ(U);return J===Z&&G===W&&JQ(U,X)>=0})[0]||null}if($.startsWith(">=")){let X=$.slice(2).trim();return Q.filter((W)=>JQ(W,X)>=0)[0]||null}if($.startsWith(">")){let X=$.slice(1).trim();return Q.filter((W)=>JQ(W,X)>0)[0]||null}if($.startsWith("<=")){let X=$.slice(2).trim();return Q.filter((W)=>JQ(W,X)<=0)[0]||null}if($.startsWith("<")){let X=$.slice(1).trim();return Q.filter((W)=>JQ(W,X)<0)[0]||null}if($.startsWith("=")){let X=$.slice(1).trim();return Q.includes(X)?X:null}return Q.includes($)?$:null}function GQ(Q){let $=Q.split(".").map((X)=>{let Z=X.match(/^\d+/);return Z?Number.parseInt(Z[0],10):0});return[$[0]||0,$[1]||0,$[2]||0]}function JQ(Q,$){if(Q==="latest"&&$!=="latest")return 1;if($==="latest"&&Q!=="latest")return-1;if(Q==="latest"&&$==="latest")return 0;let X=Q.split("#")[0].trim(),Z=$.split("#")[0].trim(),[W,H,U]=GQ(X),[J,G,Y]=GQ(Z);if(W>J)return 1;if(W<J)return-1;if(H>G)return 1;if(H<G)return-1;if(U>Y)return 1;if(U<Y)return-1;return 0}var CQ=null;async function y4(){if(CQ)return CQ;return CQ=(await import("./chunk-7dz33118.js").catch(()=>import("./src/index.js"))).packages,CQ}async function D4(Q){try{let $=await y4(),X=$[Q];if(X)return{dependencies:X.dependencies||[],companions:X.companions||[]};let Z=Q.replace(/[^a-z0-9]/gi,"").toLowerCase(),W=$[Z];if(W)return{dependencies:W.dependencies||[],companions:W.companions||[]};let U=Object.values($).find((J)=>J.domain===Q);if(U)return{dependencies:U.dependencies||[],companions:U.companions||[]};return null}catch($){return console.warn(`Failed to load package data for ${Q}: ${$}`),null}}async function RQ(Q,$={},X=new Set,Z=0){let{maxDepth:W=10,verbose:H=!1,targetOs:U,includeOsSpecific:J=!0}=$;if(Z>W){if(H)console.warn(` Warning: max dependency depth (${W}) exceeded for ${Q}`);return[]}if(X.has(Q))return[];if(X.add(Q),H)console.log(`${" ".repeat(Z)}Resolving dependencies for: ${Q}`);let G=[];try{let K=function(_){let j=_.match(/^(linux|darwin|windows):(.+)$/),O=!!j,L=j?j[2]:_,F=j?j[1]:void 0;if(O&&(!J||U&&F!==U))return null;let R=L,C="latest",w="*",T=L.match(/^(@?[^@^~>=<]+(?:\/[^@^~>=<]+)?)([@^~>=<].+)?$/);if(T){if(R=T[1],T[2]){let E=T[2];if(E.startsWith("@"))C=E.substring(1),w=E;else w=E,C=E.replace(/^\D*/,"")}}return{dep:{name:R,version:C,constraint:w,isOsSpecific:O,os:F},pkgName:R}},Y=await D4(Q),z=[...Y?.dependencies||[],...Y?.companions||[]].map(K).filter((_)=>_!==null);for(let{dep:_}of z)G.push(_);let q=await Promise.allSettled(z.map(({pkgName:_})=>RQ(_,$,X,Z+1)));for(let _ of q)if(_.status==="fulfilled")G.push(..._.value);else if(H)console.warn(` Warning: transitive dependency resolution failed: ${_.reason}`)}catch(Y){if(H)console.warn(`${" ".repeat(Z)}Warning: Could not resolve dependencies for ${Q}: ${Y}`)}return G}async function pQ(Q,$={}){let X=new Map,Z=[],W={linux:[],darwin:[],windows:[]};for(let J of Q){if(!X.has(J.name))X.set(J.name,[]);if(X.get(J.name).push(J),J.isOsSpecific&&J.os)W[J.os].push(J)}let H=[],U=[];for(let[J,G]of X)if(G.length===1){let Y=await D0(J,G[0].constraint),K={...G[0],version:Y};H.push(K),U.push(J)}else{let Y=G.map((_)=>_.version),K=[...new Set(Y)];if(K.length>1)Z.push({package:J,versions:K});let B=await Promise.all(G.map(async(_)=>({..._,resolvedVersion:await D0(J,_.constraint)}))),z=B[0];for(let _ of B.slice(1))if(z.constraint==="*"&&_.constraint!=="*")z=_;else if(z.constraint!=="*"&&_.constraint==="*");else if(JQ(_.resolvedVersion,z.resolvedVersion)>0)z=_;let q={...z,version:z.resolvedVersion};delete q.resolvedVersion,H.push(q),U.push(J)}return{allDependencies:H,uniquePackages:U,conflicts:Z,osSpecificDeps:W}}async function P0(Q,$={}){let{verbose:X=!1}=$;if(X)console.log(`Parsing dependency file: ${Q}`);let Z=FQ(Q);if(X)console.log(`Found ${Z.length} direct dependencies`);let W=[...Z],H=await Promise.all(Z.map(async(G)=>{if(X)console.log(`Resolving transitive dependencies for: ${G.name}`);return RQ(G.name,$)}));for(let G of H)W.push(...G);if(X)console.log(`Total dependencies found (before deduplication): ${W.length}`);let U=await pQ(W,$);if(X){if(console.log(`Unique packages after deduplication: ${U.uniquePackages.length}`),U.conflicts.length>0)console.log(`Version conflicts found: ${U.conflicts.length}`)}let J=TQ.extname(Q);if(J===".yaml"||J===".yml"){let G=A4(Q);if(G.services)U.services=G.services}return U}function m$(Q){let $=["deps.yaml","deps.yml","dependencies.yaml","dependencies.yml","pkgx.yaml","pkgx.yml",".deps.yaml",".deps.yml"],X=[];for(let Z of $){let W=TQ.join(Q,Z);if(HQ.existsSync(W))X.push(W)}return X}import*as M from"node:fs";import*as y from"node:path";import*as t from"node:os";import*as rQ from"node:https";import*as tQ from"node:http";import{execFileSync as EQ}from"node:child_process";import{createHash as P4}from"node:crypto";import{Transform as v4}from"node:stream";import{pipeline as h4}from"node:stream/promises";var u0=(process.env.PANTRY_REGISTRY_URL||"https://registry.pantry.dev").replace(/\/$/,"");function k4(Q,$){if(Q!=="ziglang.org")return $;return $.replace(/(-dev\.\d+)\+([0-9A-Za-z-]+)$/,"$1_$2")}function IQ(){let Q=process.env.XDG_DATA_HOME,$=Q&&Q.length>0?Q:y.join(t.homedir(),".local","share");return y.join($,"pantry","global","bin")}function SQ(){let Q=t.platform(),$=t.arch();return{os:Q==="darwin"?"darwin":Q==="win32"?"windows":"linux",arch:$==="arm64"?"aarch64":"x86_64"}}function nQ(Q,$){let X=Q.replace(/(-dev\.\d+)_([0-9A-Za-z-]+)$/,"$1+$2"),Z=$.os==="darwin"?"macos":$.os,W=$.arch==="aarch64"?"aarch64":"x86_64",H=$.os==="windows"?"zip":"tar.xz",U=`zig-${W}-${Z}-${X}`,J=`${U}.${H}`;return{url:X.includes("-dev.")?`https://ziglang.org/builds/${J}`:`https://ziglang.org/download/${X}/${J}`,format:H,prefix:U}}function u4(Q,$){let[X,Z,W]=Q.split(".").map(Number);if(X!==3||!Number.isInteger(Z)||!Number.isInteger(W))throw Error(`Unsupported SQLite version: ${Q}`);let H=Z>=52?2026:Z>=48?2025:2024,J={"darwin-aarch64":"osx-arm64","darwin-x86_64":"osx-x64","linux-x86_64":"linux-x64","windows-aarch64":"win-arm64","windows-x86_64":"win-x64"}[`${$.os}-${$.arch}`];if(!J)throw Error(`Unsupported platform for SQLite tools: ${$.os}-${$.arch}`);let G=`${X}${Z}${String(W).padStart(2,"0")}00`;return`https://sqlite.org/${H}/sqlite-tools-${J}-${G}.zip`}var OQ={"github.com/mail-os/mail":{getDownloadUrl(Q,$){if($.os!=="linux"||$.arch!=="x86_64")throw Error("github.com/mail-os/mail currently publishes linux-x86_64 release binaries");let X={darwin:"macos",linux:"linux",windows:"windows"},Z=`mail-${$.arch}-${X[$.os]}`;return`https://github.com/mail-os/mail/releases/download/v${Q}/${Z}.tar.gz`},getArchiveFormat(){return"tar.gz"},getBinaries(Q){let $={darwin:"macos",linux:"linux",windows:"windows"};return[`mail-${Q.arch}-${$[Q.os]}`,"mail"]}},"ziglang.org":{getDownloadUrl(Q,$){return nQ(Q,$).url},getArchiveFormat(Q){return nQ("0.0.0",Q).format},getBinaries(Q){return Q.os==="windows"?["zig.exe"]:["zig"]},getArchivePrefix(Q,$){return nQ(Q,$).prefix}},"bun.sh":{getDownloadUrl(Q,$){let X={"darwin-aarch64":"darwin-aarch64","darwin-x86_64":"darwin-x64","linux-aarch64":"linux-aarch64","linux-x86_64":"linux-x64","windows-x86_64":"windows-x64"},Z=`${$.os}-${$.arch}`,W=X[Z]||"linux-x64";return`https://github.com/oven-sh/bun/releases/download/bun-v${Q}/bun-${W}.zip`},getArchiveFormat(){return"zip"},getBinaries(Q){return Q.os==="windows"?["bun.exe"]:["bun","bunx"]},getArchivePrefix(Q,$){let X={"darwin-aarch64":"bun-darwin-aarch64","darwin-x86_64":"bun-darwin-x64","linux-aarch64":"bun-linux-aarch64","linux-x86_64":"bun-linux-x64","windows-x86_64":"bun-windows-x64"},Z=`${$.os}-${$.arch}`,W=X[Z];if(!W)throw Error(`Unsupported platform for bun: ${Z}`);return W}},"sqlite.org":{getDownloadUrl(Q,$){return u4(Q,$)},getArchiveFormat(){return"zip"},getBinaries(Q){let $=Q.os==="windows"?".exe":"";return[`sqlite3${$}`,`sqldiff${$}`,`sqlite3_analyzer${$}`,`sqlite3_rsync${$}`]}},"nodejs.org":{getDownloadUrl(Q,$){let X={darwin:"darwin",linux:"linux",windows:"win"},Z={x86_64:"x64",aarch64:"arm64"},W=$.os==="windows"?"zip":"tar.xz";return`https://nodejs.org/dist/v${Q}/node-v${Q}-${X[$.os]}-${Z[$.arch]}.${W}`},getArchiveFormat(Q){return Q.os==="windows"?"zip":"tar.xz"},getBinaries(Q){return Q.os==="windows"?["node.exe","npm.cmd","npx.cmd"]:["node","npm","npx"]},getArchivePrefix(Q,$){let X={darwin:"darwin",linux:"linux",windows:"win"},Z={x86_64:"x64",aarch64:"arm64"};return`node-v${Q}-${X[$.os]}-${Z[$.arch]}`}}};function v0(Q,$,X,Z){M.mkdirSync(X,{recursive:!0});let W=null;for(let H of $){let U=y.join(Q,H);if(!M.existsSync(U))U=y.join(Q,"bin",H);if(!M.existsSync(U)){if(W){let G=y.join(X,H);try{M.unlinkSync(G)}catch{}if(Z.os==="windows")M.copyFileSync(W,G);else M.symlinkSync(W,G)}continue}if(!W)W=U;let J=y.join(X,H);try{M.unlinkSync(J)}catch{}if(Z.os==="windows")M.copyFileSync(U,J);else M.symlinkSync(U,J)}}async function f0(Q,$,X={}){let Z=X.platform||SQ(),W=OQ[Q];if(!W)throw Error(`Unknown package: ${Q}. Supported: ${Object.keys(OQ).join(", ")}`);if(/^[\^~>=<]/.test($))$=await n4(Q,$,Z);else if($==="latest"||$==="*"||!$)$=await aQ(Q,Z);else if(Q==="ziglang.org"&&$.endsWith("-dev")){let j=await g4($,Z,{onRetry:X.onRetry});if(!j)throw Error(`Could not resolve ${$} to a published ziglang.org development build`);$=j}if($=k4(Q,$),!$)throw Error(`Could not resolve a concrete version for ${Q} (got empty string from resolver)`);let H=X.installDir||y.join(process.cwd(),"pantry"),U=y.join(H,".bin"),J=y.join(H,Q.replace(/\./g,"-"),$),G=W.getBinaries(Z);if(G.length===0)throw Error(`No binaries defined for ${Q} on ${Z.os}-${Z.arch}`);let Y=y.join(J,G[0]),K=y.join(J,"bin",G[0]);if(M.existsSync(Y)||M.existsSync(K)){if(!X.quiet)console.log(` ✓ ${Q}@${$} (cached)`);if(X.createBinLinks!==!1)v0(J,G,U,Z);let j=h0(J,G,Z,X);return{name:Q,version:$,installPath:J,binaries:G,globalLinks:j}}let B=W.getDownloadUrl($,Z),z=W.getArchiveFormat(Z);if(!X.quiet)console.log(` → ${Q}@${$} from ${new URL(B).hostname}`);let q=M.mkdtempSync(y.join(t.tmpdir(),"pantry-")),_=y.join(q,`archive.${z}`);try{let j;if(B.startsWith(`${u0}/binaries/`)){let C=y.join(q,"archive.sha256");await k0(`${B}.sha256`,C,{quiet:X.quiet,onRetry:X.onRetry});let w=M.readFileSync(C,"utf8").match(/\b([a-f0-9]{64})\b/i)?.[1];if(!w)throw Error(`Invalid SHA-256 checksum response for ${B}`);j=w.toLowerCase()}await k0(B,_,{quiet:X.quiet,onRetry:X.onRetry,expectedSha256:j});let O=y.join(q,"extracted");M.mkdirSync(O,{recursive:!0}),await a4(_,O,z);let L=O,F=W.getArchivePrefix?.($,Z);if(F){let C=y.join(O,F);if(M.existsSync(C))L=C;else{let T=M.readdirSync(O).find((E)=>M.statSync(y.join(O,E)).isDirectory());if(T)L=y.join(O,T)}}if(M.mkdirSync(J,{recursive:!0}),e4(L,J),Z.os!=="windows"){for(let C of G){let w=y.join(J,C);if(M.existsSync(w))M.chmodSync(w,493);let T=y.join(J,"bin",C);if(M.existsSync(T))M.chmodSync(T,493)}for(let C of["bin","sbin","libexec"])p0(y.join(J,C))}if(X.createBinLinks!==!1)v0(J,G,U,Z);if(!X.quiet)console.log(` ✓ ${Q}@${$}`);let R=h0(J,G,Z,X);return{name:Q,version:$,installPath:J,binaries:G,globalLinks:R}}finally{try{M.rmSync(q,{recursive:!0,force:!0})}catch{}}}function h0(Q,$,X,Z){if(!Z.globalBin)return[];let W=typeof Z.globalBin==="string"?Z.globalBin:IQ();M.mkdirSync(W,{recursive:!0});let H=[];for(let U of $){let J=y.join(Q,U);if(!M.existsSync(J))J=y.join(Q,"bin",U);if(!M.existsSync(J))continue;let G=y.join(W,U);try{M.unlinkSync(G)}catch{}if(X.os==="windows")M.copyFileSync(J,G);else M.symlinkSync(J,G);H.push(G)}if(!Z.quiet&&H.length>0)console.log(` → linked ${H.length} binary(ies) into ${W}`);return H}async function f4(Q,$={}){return Promise.all(Q.map((X)=>f0(X.domain,X.version,$)))}async function aQ(Q,$=SQ()){if(Q==="bun.sh"){let Z=(await i("https://api.github.com/repos/oven-sh/bun/releases/latest").catch(()=>null))?.tag_name?.replace(/^bun-v/,"")||"";if(Z)return Z;let W=await oQ(Q);if(W)return W;throw Error("Failed to resolve latest bun.sh version (GitHub API unreachable, no bundled metadata)")}if(Q==="ziglang.org"){let X=await eQ(Q,$);if(X.length>0)return X.sort(sQ)[0];throw Error(`Failed to resolve a ziglang.org version published for ${g0($)}`)}if(Q==="nodejs.org"){let Z=await i("https://nodejs.org/dist/index.json").catch(()=>null)||[],H=(Z.find((J)=>J.lts)?.version||Z[0]?.version||"").replace(/^v/,"");if(H)return H;let U=await oQ(Q);if(U)return U;throw Error("Failed to resolve latest nodejs.org version")}if(Q==="github.com/mail-os/mail"){let Z=(await i("https://api.github.com/repos/mail-os/mail/releases/latest").catch(()=>null))?.tag_name?.replace(/^v/,"")||"";if(Z)return Z;let H=((await i("https://api.github.com/repos/mail-os/mail/tags?per_page=1").catch(()=>null))?.[0]?.name||"").replace(/^v/,"");if(H)return H;let U=await oQ(Q);if(U)return U;throw Error("Failed to resolve latest github.com/mail-os/mail version")}throw Error(`Cannot resolve latest version for ${Q}`)}async function oQ(Q){try{let $=Q.replace(/[^a-z0-9]/gi,"").toLowerCase(),{packages:X}=await import("./chunk-7dz33118.js").catch(()=>import("./src/index.js")),W=X[$]?.versions||[];return W.find((H)=>!H.includes("-"))||W[0]||""}catch{return""}}async function g4(Q,$,X={}){let W=(await eQ("ziglang.org",$,X)).filter((J)=>J.startsWith(`${Q}.`)).sort(sQ)[0];if(W)return W;let U=(await i("https://ziglang.org/download/index.json",3,X).catch(()=>null))?.master?.version||"";return U.startsWith(`${Q}.`)?U:null}function g0(Q){let $=Q.arch==="aarch64"?"arm64":"x86-64";return`${Q.os}-${$}`}function m4(Q,$){let X=g0($);return Object.entries(Q?.versions||{}).filter(([,Z])=>Object.hasOwn(Z.platforms||{},X)).map(([Z])=>Z)}async function eQ(Q,$,X={}){let Z=await i(`${u0}/binaries/${encodeURI(Q)}/metadata.json`,5,X).catch(()=>null);return m4(Z,$)}function m0(Q){let $=Q.match(/^([~^]|>=|<=|>|<|=)(\d+(?:\.\d+){0,10}(?:-[0-9A-Za-z.-]+)?(?:[+_][0-9A-Za-z.-]+)?)/);if(!$)return null;return{operator:$[1],target:$[2]}}function MQ(Q){return Q.split(/[+_-]/,1)[0].split(".").map(($)=>Number.parseInt($,10))}function d0(Q,$){let X=MQ(Q),Z=MQ($);for(let G=0;G<Math.max(X.length,Z.length,3);G++){let Y=(X[G]||0)-(Z[G]||0);if(Y)return Y}let W=Q.includes("-"),H=$.includes("-");if(W!==H)return W?-1:1;let U=Number.parseInt(Q.match(/-dev\.(\d+)/)?.[1]||"0",10),J=Number.parseInt($.match(/-dev\.(\d+)/)?.[1]||"0",10);return U-J}function d4(Q,$){let{operator:X,target:Z}=$;if(Q.includes("-")&&!Z.includes("-"))return!1;let W=MQ(Q),H=MQ(Z);if(W.some(Number.isNaN)||H.some(Number.isNaN))return!1;let[U,J,G]=[W[0]||0,W[1]||0,W[2]||0],[Y,K,B]=[H[0]||0,H[1]||0,H[2]||0],z=d0(Q,Z);if(X==="^"){if(z<0)return!1;if(Y===0&&K===0)return U===0&&J===0&&G===B;if(Y===0)return U===0&&J===K;return U===Y}if(X==="~"){if(z<0)return!1;return H.length===1?U===Y:U===Y&&J===K}if(X===">=")return z>=0;if(X==="<=")return z<=0;if(X===">")return z>0;if(X==="<")return z<0;if(X==="=")return z===0;return!1}async function c4(Q,$){if(Q==="bun.sh")return(await i("https://api.github.com/repos/oven-sh/bun/releases?per_page=100").catch(()=>null)||[]).map((W)=>(W.tag_name||"").replace(/^bun-v/,"")).filter(Boolean);if(Q==="nodejs.org")return(await i("https://nodejs.org/dist/index.json").catch(()=>null)||[]).map((W)=>(W.version||"").replace(/^v/,"")).filter(Boolean);if(Q==="ziglang.org"){let X=await i("https://ziglang.org/download/index.json").catch(()=>null),Z=l4(X,$);if(Z.length>0)return Z;return await eQ(Q,$)}return[]}function l4(Q,$){let X=`${$.arch}-${$.os==="darwin"?"macos":$.os}`;return Object.entries(Q||{}).filter(([,Z])=>Boolean(Z[X])).map(([Z,W])=>W.version||Z).filter(Boolean)}function iQ(Q,$){return d0($,Q)}function p4(Q,$){let X=m0(Q);if(!X)return null;return[...new Set($)].sort(iQ).find((Z)=>d4(Z,X))||null}async function n4(Q,$,X){if(!m0($))return aQ(Q,X);let Z;try{let J=Q.replace(/[^a-z0-9]/gi,"").toLowerCase(),{packages:G}=await import("./chunk-7dz33118.js").catch(()=>import("./src/index.js"));Z=G[J]?.versions||[]}catch{Z=[]}let W=await c4(Q,X),H=Q==="ziglang.org"?W.sort(iQ):[...new Set([...W,...Z])].sort(iQ),U=p4($,H);if(U)return U;throw Error(`No version of ${Q} satisfies "${$}" (checked ${H.length} version${H.length===1?"":"s"}${H.length>0?`, newest ${H[0]}`:""}).`)}var o4=4;function VQ(Q){return Q instanceof Error?Q.message:String(Q)}function i4(Q){if(typeof Q==="object"&&Q!==null&&"statusCode"in Q){let X=Number(Q.statusCode);if(Number.isFinite(X))return X}let $=VQ(Q).match(/\bHTTP\s+(\d{3})\b/i);return $?Number($[1]):void 0}function s4(Q){if(typeof Q!=="object"||Q===null)return"";let $="code"in Q?String(Q.code||""):"";if($)return $;let X="cause"in Q?Q.cause:void 0;return typeof X==="object"&&X!==null&&"code"in X?String(X.code||""):""}function r4(Q){let $=i4(Q);if($!==void 0)return $===408||$===425||$===429||$>=500;if(/^(?:ECONNRESET|ECONNREFUSED|EPIPE|ETIMEDOUT|EAI_AGAIN|ENETDOWN|ENETUNREACH|EHOSTUNREACH|UND_ERR_SOCKET)$/i.test(s4(Q)))return!0;return/socket hang up|connection reset|premature close|aborted|terminated|timed? ?out|temporar|stalled|incomplete download|checksum mismatch/i.test(VQ(Q))}async function c0(Q,$,X={}){let Z=X.maxAttempts??o4,W=X.retryDelayMs??1000,H=X.sleep??((J)=>new Promise((G)=>setTimeout(G,J))),U;for(let J=1;J<=Z;J+=1)try{return await $()}catch(G){if(U=G,!r4(G))throw G;if(J===Z)break;let Y=Math.min(W*2**(J-1),1e4);X.onRetry?.(`${Q} failed (${VQ(G)}); retrying in ${Y}ms`),await H(Y)}throw Error(`${Q} failed after ${Z} attempts: ${VQ(U)}`)}function l0(Q,$,X){return new Promise((Z,W)=>{let U=(Q.startsWith("https")?rQ.get:tQ.get)(Q,{headers:{"User-Agent":"pantry-installer"}},(J)=>{if(J.statusCode&&J.statusCode>=300&&J.statusCode<400&&J.headers.location){if(J.resume(),$<=0)return W(Error(`Too many redirects for ${Q}`));let G=new URL(J.headers.location,Q).href;return l0(G,$-1,X).then(Z,W)}if(!J.statusCode||J.statusCode<200||J.statusCode>=300){J.resume();let G=Object.assign(Error(`HTTP ${J.statusCode||"unknown"} downloading ${Q}`),{statusCode:J.statusCode});return W(G)}J.setTimeout(X,()=>{J.destroy(Error(`Download stalled (no data for ${X/1000}s): ${Q}`))}),Z(J)});U.setTimeout(X,()=>{U.destroy(Error(`Download timed out after ${X/1000}s: ${Q}`))}),U.once("error",W)})}async function t4(Q,$,X){let Z=`${$}.part`;try{M.rmSync(Z,{force:!0})}catch{}let W=await l0(Q,10,X.stallTimeoutMs??60000),H=!X.quiet&&process.stderr.isTTY,U=Number.parseInt(String(W.headers["content-length"]||""),10),J=Number.isFinite(U)?U:0,G=0,Y=0,K=X.expectedSha256?P4("sha256"):void 0,B=new v4({transform(z,q,_){G+=z.length,K?.update(z);let j=Date.now();if(H&&j-Y>200){Y=j;let O=(G/1048576).toFixed(1);if(J>0){let L=(J/1048576).toFixed(1),F=Math.floor(G/J*100);process.stderr.write(`\r ${O}/${L} MB (${F}%)`)}else process.stderr.write(`\r ${O} MB`)}_(null,z)}});try{if(await h4(W,B,M.createWriteStream(Z)),!W.complete||J>0&&G!==J)throw Error(`Incomplete download for ${Q}: received ${G} of ${J||"unknown"} bytes`);if(X.expectedSha256){let z=K.digest("hex");if(z!==X.expectedSha256.toLowerCase())throw Error(`Checksum mismatch for ${Q}: expected ${X.expectedSha256}, got ${z}`)}M.renameSync(Z,$)}catch(z){try{M.rmSync(Z,{force:!0})}catch{}throw z}finally{if(H&&Y>0)process.stderr.write("\r\x1B[K")}}async function k0(Q,$,X={}){await c0(`Download ${Q}`,()=>t4(Q,$,X),X)}async function a4(Q,$,X){if(X==="zip")if(process.platform==="win32")EQ("powershell",["-NoProfile","-Command","Expand-Archive","-Path",Q,"-DestinationPath",$,"-Force"],{stdio:"pipe"});else EQ("unzip",["-o","-q",Q,"-d",$],{stdio:"pipe"});else if(X==="tar.xz")EQ("tar",["xJf",Q,"-C",$],{stdio:"pipe"});else if(X==="tar.gz")EQ("tar",["xzf",Q,"-C",$],{stdio:"pipe"});else throw Error(`Unsupported archive format: ${X}`)}function e4(Q,$){M.cpSync(Q,$,{recursive:!0})}function p0(Q){let $;try{$=M.readdirSync(Q,{withFileTypes:!0})}catch{return}for(let X of $){let Z=y.join(Q,X.name);try{if(X.isDirectory()){p0(Z);continue}if(!X.isFile())continue;let W=M.statSync(Z).mode&511,H=W|(W&292)>>2;if(H!==W)M.chmodSync(Z,H)}catch{}}}function n0(Q,$){return new Promise((X,Z)=>{let W=Q.startsWith("https")?rQ.get:tQ.get,H={"User-Agent":"pantry-installer",Accept:"application/json"};if(Q.includes("api.github.com")){let J=process.env.GITHUB_TOKEN||process.env.GH_TOKEN;if(J)H.Authorization=`Bearer ${J}`}let U=W(Q,{headers:H,timeout:30000},(J)=>{if(J.statusCode&&J.statusCode>=300&&J.statusCode<400&&J.headers.location){if($<=0)return Z(Error(`Too many redirects for ${Q}`));let Y=new URL(J.headers.location,Q).href;return n0(Y,$-1).then(X,Z)}if(!J.statusCode||J.statusCode<200||J.statusCode>=300)return Z(Object.assign(Error(`HTTP ${J.statusCode||"unknown"} fetching ${Q}`),{statusCode:J.statusCode}));let G="";J.on("data",(Y)=>G+=Y),J.on("end",()=>{try{X(JSON.parse(G))}catch(Y){Z(Y)}})});U.on("error",Z),U.on("timeout",()=>{U.destroy(),Z(Error(`Request timed out: ${Q}`))})})}function i(Q,$=5,X={}){return c0(`Fetch ${Q}`,()=>n0(Q,$),X)}function Q8(Q){return Q in OQ}function i$(){return Object.keys(OQ)}function s$(Q){let $=OQ[Q];if(!$)return;let X=SQ();return $.getBinaries(X)[0]}import*as g from"node:fs";import*as NQ from"node:os";import*as UQ from"node:path";var AQ="# >>> pantry shell-init >>>",xQ="# <<< pantry shell-init <<<";function bQ(){let Q=process.env.SHELL??"";if(Q.endsWith("/zsh")||Q==="zsh")return"zsh";if(Q.endsWith("/bash")||Q==="bash")return"bash";if(Q.endsWith("/fish")||Q==="fish")return"fish";return"unknown"}function Q0(Q){let $=NQ.homedir();switch(Q){case"zsh":{let X=process.env.ZDOTDIR;return UQ.join(X&&X.length>0?X:$,".zshrc")}case"bash":{if(NQ.platform()==="darwin"){let X=UQ.join($,".bash_profile");if(g.existsSync(X))return X}return UQ.join($,".bashrc")}case"fish":return UQ.join($,".config","fish","config.fish");case"unknown":return null}}function o0(Q={}){let $=Q.globalBin??IQ();if((Q.shell??bQ())==="fish")return[AQ,`if test -d "${$}"`,` set -gx PATH "${$}" $PATH`,"end",xQ,""].join(`
8
8
  `);return[AQ,`if [ -d "${$}" ] && [[ ":$PATH:" != *":${$}:"* ]]; then`,` export PATH="${$}:$PATH"`,"fi",xQ,""].join(`
9
9
  `)}function $8(Q={}){let $=Q.shell??bQ(),X=Q0($);if(!X)throw Error(`Could not detect a supported shell (got SHELL=${process.env.SHELL??"<unset>"}). Run \`ts-pantry shell-init\` and copy the printed snippet into your rc file manually.`);let Z=o0({...Q,shell:$}),W="";if(g.existsSync(X)){if(W=g.readFileSync(X,"utf-8"),W.includes(AQ))return{rcFile:X,shell:$,changed:!1}}else g.mkdirSync(UQ.dirname(X),{recursive:!0});let H=W.length>0&&!W.endsWith(`
10
10
  `)?`
@@ -1 +1 @@
1
- import{Fc as b,Gc as c,Ic as d}from"./chunk-73sbgnjy.js";import{Jc as a}from"./chunk-gzwcsenc.js";import"./chunk-6zb03z2q.js";d();export{b as pantry,c as packages,a as aliases};
1
+ import{Fc as b,Gc as c,Ic as d}from"./chunk-ve2dx3d9.js";import{Jc as a}from"./chunk-gzwcsenc.js";import"./chunk-6zb03z2q.js";d();export{b as pantry,c as packages,a as aliases};
@@ -1 +1 @@
1
- import{Ac as k,Bc as l,Cc as m,Dc as n,Ec as o,qc as a,rc as b,sc as c,tc as d,uc as e,vc as f,wc as g,xc as h,yc as i,zc as j}from"./chunk-72840zva.js";import"./chunk-73sbgnjy.js";import"./chunk-gzwcsenc.js";import"./chunk-6zb03z2q.js";export{l as validatePackageSpec,h as searchPackages,o as resolveVersionFromMetadata,e as resolveVersion,g as resolvePackageDomain,m as parseVersion,d as isVersionAvailable,j as getPopularPackages,c as getPhpVersionsForWorkflow,i as getPackagesByPattern,f as getPackageInfo,a as getLatestVersion,b as getAvailableVersions,k as getActivePackages,n as compareVersionsDesc};
1
+ import{Ac as k,Bc as l,Cc as m,Dc as n,Ec as o,qc as a,rc as b,sc as c,tc as d,uc as e,vc as f,wc as g,xc as h,yc as i,zc as j}from"./chunk-b9105y5x.js";import"./chunk-ve2dx3d9.js";import"./chunk-gzwcsenc.js";import"./chunk-6zb03z2q.js";export{l as validatePackageSpec,h as searchPackages,o as resolveVersionFromMetadata,e as resolveVersion,g as resolvePackageDomain,m as parseVersion,d as isVersionAvailable,j as getPopularPackages,c as getPhpVersionsForWorkflow,i as getPackagesByPattern,f as getPackageInfo,a as getLatestVersion,b as getAvailableVersions,k as getActivePackages,n as compareVersionsDesc};
@@ -1,2 +1,2 @@
1
- import{Hc as y,Ic as x}from"./chunk-73sbgnjy.js";import{Jc as $,Kc as I}from"./chunk-gzwcsenc.js";import{Lc as j,Oc as C}from"./chunk-6zb03z2q.js";I();async function Z(){try{let{packages:H}=await import("./chunk-tr0839z1.js");return H}catch{return{}}}async function B(H){let z=_(H);if(!z)return null;let q=(await Z())[z];if(!q||!q.versions||q.versions.length===0)return null;return q.versions[0]}async function D(H){let z=_(H);if(!z)return[];let q=(await Z())[z];if(!q||!q.versions)return[];return[...q.versions]}function S(H={}){let z=["8.4.11","8.3.14","8.2.26","8.1.30"],G=H.fallbackVersions||z;try{let{pantry:q}=(x(),j(y)),E=q.phpnet||q.php;if(!E||!E.versions||E.versions.length===0)return G;let O=[...E.versions],J=H.supportedBranches||w(O),Q=new Map;for(let U of O){let[W,X]=U.split(".");if(!W||!X)continue;let K=`${W}.${X}`;if(J.includes(K)&&!Q.has(K))Q.set(K,U)}let R=J.map((U)=>Q.get(U)).filter(Boolean);return R.length>0?R:G}catch{return G}}function w(H){let z=new Map;for(let q of H){let[E,O]=q.split(".");if(!E||!O)continue;let J=`${E}.${O}`;z.set(J,(z.get(J)||0)+1)}return Array.from(z.keys()).filter((q)=>{let[E]=q.split(".");return E==="8"&&z.get(q)>3}).sort((q,E)=>{let[O,J]=q.split(".").map(Number),[Q,R]=E.split(".").map(Number);if(O!==Q)return Q-O;return R-J}).slice(0,4)}async function f(H,z){return(await D(H)).includes(z)}async function N(H,z="latest"){if(z==="latest")return await B(H);let G=await D(H);if(G.length===0)return null;if(G.includes(z))return z;if(z.startsWith("^")){let E=z.slice(1).split(".")[0];return G.filter((J)=>J.startsWith(`${E}.`))[0]||null}if(z.startsWith("~")){let q=z.slice(1),[E,O]=q.split("."),J=`${E}.${O}.`;return G.filter((R)=>R.startsWith(J))[0]||null}if(z.startsWith(">=")){let E=z.slice(2).split(".").map(Number);return G.filter((J)=>{let Q=J.split(".").map(Number);for(let R=0;R<Math.max(Q.length,E.length);R++){let U=Q[R]??0,W=E[R]??0;if(U>W)return!0;if(U<W)return!1}return!0})[0]||null}return await B(H)}async function F(H){let z=_(H);if(!z)return null;let q=(await Z())[z];if(!q)return null;let E=await B(H);if(!E)return null;return{name:String(H),domain:z,description:q.description||"",latestVersion:E,totalVersions:q.versions?.length||0,programs:[...q.programs||[]],dependencies:[...q.dependencies||[]],companions:[...q.companions||[]],versions:[...q.versions||[]]}}function _(H){let z=String(H);if(z in $){let G=$[z];return T(G)}return T(z)}function T(H){if(H.includes("/")){let[z,...G]=H.split("/"),q=G.join("/"),E=z.replace(/\./g,""),O=q.replace(/[/\-_.]/g,"").toLowerCase();return`${E}${O}`.toLowerCase()}return H.replace(/[.\-_]/g,"").toLowerCase()}async function V(H){let z=[],G=H.toLowerCase();for(let[E,O]of Object.entries($))if(E.toLowerCase().includes(G)){let J=await F(E);if(J)z.push(J)}let q=await Z();for(let[E,O]of Object.entries(q))if(E.toLowerCase().includes(G)||O.description?.toLowerCase().includes(G)){let J=await F(E);if(J&&!z.some((Q)=>Q.domain===E))z.push(J)}return z}async function h(H){let z=[],G=await Z();for(let q of Object.keys(G))if(H.test(q)){let E=await F(q);if(E)z.push(E)}return z}async function u(H=10){let z=[],G=await Z();for(let q of Object.keys(G)){let E=await F(q);if(E&&E.totalVersions>=H)z.push(E)}return z.sort((q,E)=>E.totalVersions-q.totalVersions)}async function b(H=50){return(await u(5)).slice(0,H)}async function l(H){try{let z=H.lastIndexOf("@");if(z===-1){let J=H;if(!_(J))return{isValid:!1,error:`Unknown package: ${J}`};return{isValid:!0,packageName:J}}let G=H.slice(0,z),q=H.slice(z+1);if(!_(G))return{isValid:!1,error:`Unknown package: ${G}`};if(q==="latest")return{isValid:!0,packageName:G,version:q};if(!await f(G,q))return{isValid:!1,packageName:G,version:q,error:`Version ${q} not available for package ${G}`};return{isValid:!0,packageName:G,version:q}}catch{return{isValid:!1,error:`Invalid package specification: ${H}`}}}function A(H){let z=H.replace(/^v/,"").split("+")[0],[G,...q]=z.split("-"),[E,O,J]=G.split(".").map((Q)=>{let R=Number.parseInt(Q,10);return Number.isNaN(R)?0:R});return{major:E??0,minor:O??0,patch:J??0,prerelease:q.length>0?q.join("-").split("."):[]}}function M(H,z){let G=A(H),q=A(z);if(G.major!==q.major)return q.major-G.major;if(G.minor!==q.minor)return q.minor-G.minor;if(G.patch!==q.patch)return q.patch-G.patch;let E=G.prerelease.length>0,O=q.prerelease.length>0;if(E!==O)return E?1:-1;if(!E)return 0;for(let J=0;J<Math.max(G.prerelease.length,q.prerelease.length);J++){let Q=G.prerelease[J],R=q.prerelease[J];if(Q===void 0)return 1;if(R===void 0)return-1;let U=Number.parseInt(Q,10),W=Number.parseInt(R,10),X=!Number.isNaN(U)&&String(U)===Q,K=!Number.isNaN(W)&&String(W)===R;if(X&&K){if(U!==W)return W-U}else if(X!==K)return X?1:-1;else if(Q!==R)return Q<R?1:-1}return 0}function g(H,z){if(!z||z.length===0)return null;let G=[...z].sort(M),q=H.replace(/^[\^~]/,""),E=A(q),O=q.replace(/^v/,"").split("+")[0].split("-")[0],J=O.split(".").length>=3,Q=E.prerelease.length>0,R=(K)=>{if(K.prerelease.length===0)return!0;if(!Q)return!1;return K.major===E.major&&K.minor===E.minor&&K.patch===E.patch},U=(K,Y)=>M(Y,q)<=0||K.prerelease.length>0,W=(K)=>{for(let Y of G){let L=A(Y);if(!R(L))continue;if(K(L,Y))return Y}return null};if(H.startsWith("^"))return W((K,Y)=>{if(K.major!==E.major)return!1;if(E.major===0&&K.minor!==E.minor)return!1;return U(K,Y)});if(H.startsWith("~"))return W((K,Y)=>{if(K.major!==E.major||K.minor!==E.minor)return!1;return!J||U(K,Y)});if(G.includes(q))return q;let X=O.split(".").filter(Boolean).map((K)=>Number.parseInt(K,10));if(X.length>0&&X.every((K)=>!Number.isNaN(K))){let K=W((Y)=>{if(X[0]!==void 0&&Y.major!==X[0])return!1;if(X[1]!==void 0&&Y.minor!==X[1])return!1;if(X[2]!==void 0&&Y.patch!==X[2])return!1;return!0});if(K)return K}return W(()=>!0)??G[0]??null}
1
+ import{Hc as y,Ic as x}from"./chunk-ve2dx3d9.js";import{Jc as $,Kc as I}from"./chunk-gzwcsenc.js";import{Lc as j,Oc as C}from"./chunk-6zb03z2q.js";I();async function Z(){try{let{packages:H}=await import("./chunk-7dz33118.js");return H}catch{return{}}}async function B(H){let z=_(H);if(!z)return null;let q=(await Z())[z];if(!q||!q.versions||q.versions.length===0)return null;return q.versions[0]}async function D(H){let z=_(H);if(!z)return[];let q=(await Z())[z];if(!q||!q.versions)return[];return[...q.versions]}function S(H={}){let z=["8.4.11","8.3.14","8.2.26","8.1.30"],G=H.fallbackVersions||z;try{let{pantry:q}=(x(),j(y)),E=q.phpnet||q.php;if(!E||!E.versions||E.versions.length===0)return G;let O=[...E.versions],J=H.supportedBranches||w(O),Q=new Map;for(let U of O){let[W,X]=U.split(".");if(!W||!X)continue;let K=`${W}.${X}`;if(J.includes(K)&&!Q.has(K))Q.set(K,U)}let R=J.map((U)=>Q.get(U)).filter(Boolean);return R.length>0?R:G}catch{return G}}function w(H){let z=new Map;for(let q of H){let[E,O]=q.split(".");if(!E||!O)continue;let J=`${E}.${O}`;z.set(J,(z.get(J)||0)+1)}return Array.from(z.keys()).filter((q)=>{let[E]=q.split(".");return E==="8"&&z.get(q)>3}).sort((q,E)=>{let[O,J]=q.split(".").map(Number),[Q,R]=E.split(".").map(Number);if(O!==Q)return Q-O;return R-J}).slice(0,4)}async function f(H,z){return(await D(H)).includes(z)}async function N(H,z="latest"){if(z==="latest")return await B(H);let G=await D(H);if(G.length===0)return null;if(G.includes(z))return z;if(z.startsWith("^")){let E=z.slice(1).split(".")[0];return G.filter((J)=>J.startsWith(`${E}.`))[0]||null}if(z.startsWith("~")){let q=z.slice(1),[E,O]=q.split("."),J=`${E}.${O}.`;return G.filter((R)=>R.startsWith(J))[0]||null}if(z.startsWith(">=")){let E=z.slice(2).split(".").map(Number);return G.filter((J)=>{let Q=J.split(".").map(Number);for(let R=0;R<Math.max(Q.length,E.length);R++){let U=Q[R]??0,W=E[R]??0;if(U>W)return!0;if(U<W)return!1}return!0})[0]||null}return await B(H)}async function F(H){let z=_(H);if(!z)return null;let q=(await Z())[z];if(!q)return null;let E=await B(H);if(!E)return null;return{name:String(H),domain:z,description:q.description||"",latestVersion:E,totalVersions:q.versions?.length||0,programs:[...q.programs||[]],dependencies:[...q.dependencies||[]],companions:[...q.companions||[]],versions:[...q.versions||[]]}}function _(H){let z=String(H);if(z in $){let G=$[z];return T(G)}return T(z)}function T(H){if(H.includes("/")){let[z,...G]=H.split("/"),q=G.join("/"),E=z.replace(/\./g,""),O=q.replace(/[/\-_.]/g,"").toLowerCase();return`${E}${O}`.toLowerCase()}return H.replace(/[.\-_]/g,"").toLowerCase()}async function V(H){let z=[],G=H.toLowerCase();for(let[E,O]of Object.entries($))if(E.toLowerCase().includes(G)){let J=await F(E);if(J)z.push(J)}let q=await Z();for(let[E,O]of Object.entries(q))if(E.toLowerCase().includes(G)||O.description?.toLowerCase().includes(G)){let J=await F(E);if(J&&!z.some((Q)=>Q.domain===E))z.push(J)}return z}async function h(H){let z=[],G=await Z();for(let q of Object.keys(G))if(H.test(q)){let E=await F(q);if(E)z.push(E)}return z}async function u(H=10){let z=[],G=await Z();for(let q of Object.keys(G)){let E=await F(q);if(E&&E.totalVersions>=H)z.push(E)}return z.sort((q,E)=>E.totalVersions-q.totalVersions)}async function b(H=50){return(await u(5)).slice(0,H)}async function l(H){try{let z=H.lastIndexOf("@");if(z===-1){let J=H;if(!_(J))return{isValid:!1,error:`Unknown package: ${J}`};return{isValid:!0,packageName:J}}let G=H.slice(0,z),q=H.slice(z+1);if(!_(G))return{isValid:!1,error:`Unknown package: ${G}`};if(q==="latest")return{isValid:!0,packageName:G,version:q};if(!await f(G,q))return{isValid:!1,packageName:G,version:q,error:`Version ${q} not available for package ${G}`};return{isValid:!0,packageName:G,version:q}}catch{return{isValid:!1,error:`Invalid package specification: ${H}`}}}function A(H){let z=H.replace(/^v/,"").split("+")[0],[G,...q]=z.split("-"),[E,O,J]=G.split(".").map((Q)=>{let R=Number.parseInt(Q,10);return Number.isNaN(R)?0:R});return{major:E??0,minor:O??0,patch:J??0,prerelease:q.length>0?q.join("-").split("."):[]}}function M(H,z){let G=A(H),q=A(z);if(G.major!==q.major)return q.major-G.major;if(G.minor!==q.minor)return q.minor-G.minor;if(G.patch!==q.patch)return q.patch-G.patch;let E=G.prerelease.length>0,O=q.prerelease.length>0;if(E!==O)return E?1:-1;if(!E)return 0;for(let J=0;J<Math.max(G.prerelease.length,q.prerelease.length);J++){let Q=G.prerelease[J],R=q.prerelease[J];if(Q===void 0)return 1;if(R===void 0)return-1;let U=Number.parseInt(Q,10),W=Number.parseInt(R,10),X=!Number.isNaN(U)&&String(U)===Q,K=!Number.isNaN(W)&&String(W)===R;if(X&&K){if(U!==W)return W-U}else if(X!==K)return X?1:-1;else if(Q!==R)return Q<R?1:-1}return 0}function g(H,z){if(!z||z.length===0)return null;let G=[...z].sort(M),q=H.replace(/^[\^~]/,""),E=A(q),O=q.replace(/^v/,"").split("+")[0].split("-")[0],J=O.split(".").length>=3,Q=E.prerelease.length>0,R=(K)=>{if(K.prerelease.length===0)return!0;if(!Q)return!1;return K.major===E.major&&K.minor===E.minor&&K.patch===E.patch},U=(K,Y)=>M(Y,q)<=0||K.prerelease.length>0,W=(K)=>{for(let Y of G){let L=A(Y);if(!R(L))continue;if(K(L,Y))return Y}return null};if(H.startsWith("^"))return W((K,Y)=>{if(K.major!==E.major)return!1;if(E.major===0&&K.minor!==E.minor)return!1;return U(K,Y)});if(H.startsWith("~"))return W((K,Y)=>{if(K.major!==E.major||K.minor!==E.minor)return!1;return!J||U(K,Y)});if(G.includes(q))return q;let X=O.split(".").filter(Boolean).map((K)=>Number.parseInt(K,10));if(X.length>0&&X.every((K)=>!Number.isNaN(K))){let K=W((Y)=>{if(X[0]!==void 0&&Y.major!==X[0])return!1;if(X[1]!==void 0&&Y.minor!==X[1])return!1;if(X[2]!==void 0&&Y.patch!==X[2])return!1;return!0});if(K)return K}return W(()=>!0)??G[0]??null}
2
2
  export{B as qc,D as rc,S as sc,f as tc,N as uc,F as vc,_ as wc,V as xc,h as yc,u as zc,b as Ac,l as Bc,A as Cc,M as Dc,g as Ec};