ts-pantry 0.10.41 → 0.10.47
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 +7 -7
- package/dist/{chunk-2f67zesz.js → chunk-1rt3bxtx.js} +1 -1
- package/dist/{chunk-74kd6jf4.js → chunk-2e0t4tmc.js} +1 -1
- package/dist/{chunk-aaf6s46d.js → chunk-5540hd62.js} +59 -59
- package/dist/chunk-6jq4cmh9.js +1 -0
- package/dist/{chunk-t3pfbk3v.js → chunk-7ewas2r5.js} +4 -4
- package/dist/{chunk-jrhm2n4b.js → chunk-8j53ncpc.js} +1 -1
- package/dist/{chunk-z225fkv5.js → chunk-d6fsjw8y.js} +1 -1
- package/dist/{chunk-vxknhv2t.js → chunk-dfe5chgn.js} +1 -1
- package/dist/chunk-g66hejq1.js +1 -0
- package/dist/{chunk-pjs4pxq8.js → chunk-jnrjjq8g.js} +1 -1
- package/dist/{chunk-mwn9pf2y.js → chunk-ka6d4nfc.js} +2 -2
- package/dist/{chunk-99dpbye7.js → chunk-kedhnk48.js} +2 -2
- package/dist/{chunk-13dttv9p.js → chunk-pcbe4c2y.js} +1 -1
- package/dist/{chunk-45tts066.js → chunk-rerj2ggp.js} +1 -1
- package/dist/chunk-tjbc19jv.js +2 -0
- package/dist/{chunk-7ppw23pe.js → chunk-tv2d935n.js} +1 -1
- package/dist/{chunk-gvacxb4c.js → chunk-v7dqpvz8.js} +2 -2
- package/dist/chunk-wx68eq5d.js +1 -0
- package/dist/{chunk-g61kvyjq.js → chunk-z7h4zqdm.js} +2 -2
- package/dist/{chunk-ranqmm4z.js → chunk-zkk2hs5n.js} +1 -1
- package/dist/installer.d.ts +10 -0
- package/dist/packages/apps/lmstudioai.d.ts +1 -1
- package/dist/src/index.js +1 -1
- package/dist/src/testing/index.js +1 -1
- package/package.json +1 -1
- package/dist/chunk-7zxha81v.js +0 -1
- package/dist/chunk-g037hnc2.js +0 -1
- package/dist/chunk-g1j4y6h5.js +0 -2
- package/dist/chunk-wkrez9ye.js +0 -1
package/dist/bin/cli.js
CHANGED
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
#!/usr/bin/env node
|
|
2
|
-
import{
|
|
2
|
+
import{$ as _6,Ha as c6,Ia as n6,Ka as l6,L as C6,M as S6,N as v6,Na as p6,P as y6,Pa as r6,Z as k6,_ as h6,aa as g6,ba as f6,fa as G6,ga as u6,ha as i6}from"../chunk-5540hd62.js";import"../chunk-z7h4zqdm.js";import"../chunk-rerj2ggp.js";import"../chunk-8j53ncpc.js";import{Ab as d6,Eb as U6,rb as p,sb as m6,ub as X6,vb as r}from"../chunk-7ewas2r5.js";import"../chunk-dfe5chgn.js";import"../chunk-ka6d4nfc.js";import{Wb as l,Xb as q6,Yb as J6}from"../chunk-jnrjjq8g.js";import"../chunk-v7dqpvz8.js";import"../chunk-tjbc19jv.js";import{qc as P6,rc as Q4}from"../chunk-kedhnk48.js";import{vc as h}from"../chunk-1rt3bxtx.js";import V from"node:fs";import B from"node:path";import H from"node:process";import{existsSync as t6}from"node:fs";import a from"node:fs/promises";import K6 from"node:os";import s from"node:path";import k from"node:process";import{EventEmitter as o6}from"node:events";import v from"node:process";import V6 from"node:process";import z6 from"node:process";import u from"node:process";import f from"node:process";import L6 from"node:tty";import fz,{stdin as E4,stdout as x4}from"node:process";import M6,{stdin as uz,stdout as iz}from"node:process";import cz from"node:readline";class B6{configPath;config=null;events=[];retryCount=0;maxRetries=3;retryDelayMs=1000;constructor(){let z=K6.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:K6.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(t6(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 V4=new B6;function e6(z,$={}){let Q={_:[]},Z=$.alias||{},Y=new Set($.boolean||[]),q={};for(let U of Object.keys(Z))for(let X of Z[U])q[X]=U;for(let U of Y)if(Z[U])for(let X of Z[U])Y.add(X);function J(U,X){let G=q[U]||U;if(Q[G]=X,Z[G])for(let K of Z[G])Q[K]=X;if(q[U]&&Z[q[U]])for(let K of Z[q[U]])Q[K]=X;Q[U]=X}for(let U=0;U<z.length;U++){let X=z[U];if(X==="--"){Q._.push(...z.slice(U+1));break}if(X.startsWith("--")){let G=X.indexOf("=");if(G!==-1){let K=X.slice(2,G),W=X.slice(G+1);J(K,W)}else{let K=X.slice(2);if(K.startsWith("no-")){let j=K.slice(3);J(j,!1);continue}let W=q[K]||K;if(Y.has(W)||Y.has(K))J(K,!0);else{let j=z[U+1];if(j!==void 0&&!j.startsWith("-"))J(K,j),U++;else J(K,!0)}}}else if(X.startsWith("-")&&X.length>1){let G=X.slice(1);for(let K=0;K<G.length;K++){let W=G[K],j=q[W]||W;if(K===G.length-1&&!Y.has(j)&&!Y.has(W)){let F=z[U+1];if(F!==void 0&&!F.startsWith("-"))J(W,F),U++;else J(W,!0)}else J(W,!0)}}else Q._.push(X)}return Q}function e(z){return z.replace(/[<[].+/,"").trim()}function zz(z){let $=/<([^>]+)>/g,Q=/\[([^\]]+)\]/g,Z=[],Y=(U)=>{let X=!1,G=U[1];if(G.startsWith("..."))G=G.slice(3),X=!0;return{required:U[0].startsWith("<"),value:G,variadic:X}},q;while(q=$.exec(z))Z.push(Y(q));let J;while(J=Q.exec(z))Z.push(Y(J));return Z}function $z(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,J)=>{return J!==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 F6(z){return z.reduce(($,Q)=>$.length>=Q.length?$:Q,"")}function t(z,$){return z.length>=$?z:`${z}${" ".repeat($-z.length)}`}function Qz(z){return z.replace(/([a-z])-([a-z])/g,($,Q,Z)=>{return Q+Z.toUpperCase()})}function Zz(z,$,Q){let Z=0,Y=$.length,q=z,J;for(;Z<Y;++Z)J=q[$[Z]],q=q[$[Z]]=Z===Y-1?Q:J!=null?J:!!~$[Z+1].indexOf(".")||!(+$[Z+1]>-1)?{}:[]}function Yz(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 qz(z){let $=/([^\\/]+)$/.exec(z);return $?$[1]:""}function N6(z){return z.split(".").map(($,Q)=>{return Q===0?Qz($):$}).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}=V6,{TERM:$,TERM_PROGRAM:Q}=z;if(V6.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 n="\x1B",x=`${n}[`;var S={to(z,$){if(!$)return`${x}${z+1}G`;return`${x}${$+1};${z+1}H`},move(z,$){let Q="";if(z<0)Q+=`${x}${-z}D`;else if(z>0)Q+=`${x}${z}C`;if($<0)Q+=`${x}${-$}A`;else if($>0)Q+=`${x}${$}B`;return Q},up:(z=1)=>`${x}${z}A`,down:(z=1)=>`${x}${z}B`,forward:(z=1)=>`${x}${z}C`,backward:(z=1)=>`${x}${z}D`,nextLine:(z=1)=>`${x}E`.repeat(z),prevLine:(z=1)=>`${x}F`.repeat(z),left:`${x}G`,hide:`${x}?25l`,show:`${x}?25h`,save:`${n}7`,restore:`${n}8`};var o={screen:`${x}2J`,up:(z=1)=>`${x}1J`.repeat(z),down:(z=1)=>`${x}J`.repeat(z),line:`${x}2K`,lineEnd:`${x}K`,lineStart:`${x}1K`,lines(z){let $="";for(let Q=0;Q<z;Q++)$+=this.line+(Q<z-1?S.up():"");if(z)$+=S.left;return $}},w4={screen:`${n}c`};function Xz(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 b6(z,$,Q=2,Z=3){return $.map((Y)=>({cmd:Y,distance:Xz(z,Y)})).filter(({distance:Y})=>Y<=Q).sort((Y,q)=>Y.distance-q.distance).slice(0,Z).map(({cmd:Y})=>Y)}class D6{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 N6(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 O4=z6.argv,Uz=`${z6.platform}-${z6.arch} bun-v${typeof Bun<"u"?Bun.version:"unknown"}`,W6=u.argv,Gz=`${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=zz(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 D6(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 X=F6($.map((F)=>F.rawName)),G=new Map,K=[];for(let F of $)if(F.namespace){if(!G.has(F.namespace))G.set(F.namespace,[]);G.get(F.namespace).push(F)}else K.push(F);let W="";if(K.length>0)W+=K.map((F)=>{return` ${t(F.rawName,X.length)} ${F.description}`}).join(`
|
|
@@ -37,7 +37,7 @@ Run \`${this.name??"cli"} --help\` for usage.`;v.stderr.write(`${q}${Y}${J}
|
|
|
37
37
|
`).length-1;this.output.write(S.move(-999,z*-1))}render(){let z=O6(this._render(this)??"",M6.stdout.columns,{hard:!0,trim:!1});if(z===this._prevFrame)return;if(this.state==="initial")this.output.write(S.hide);else{let $=dz(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 pz(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 rz(z,$){return($.label??String($.value)).toLowerCase().includes(z.toLowerCase())}function az(z,$){if(!$)return;if(z)return $;return $[0]}class sz extends Y6{filteredOptions;multiple;isNavigating=!1;selectedValues=[];focusedValue;#z=0;#Q="";#Z;#$;get cursor(){return this.#z}get userInputWithCursor(){if(!this.userInput)return i.inverse(i.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}${i.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??rz;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=az(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=pz(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 tz 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 oz=Jz();var b=(z,$)=>oz?z:$,P4=b("◆","*"),C4=b("■","x"),S4=b("▲","x"),v4=b("◇","o"),y4=b("┌","T"),ez=b("│","|"),k4=b("└","—"),h4=b("●",">"),_4=b("○"," "),g4=b("◻","[•]"),f4=b("◼","[+]"),m4=b("◻","[ ]"),d4=b("▪","•"),u4=b("─","-"),i4=b("╮","+"),c4=b("├","+"),n4=b("╯","+"),l4=b("●","•"),p4=b("◆","*"),r4=b("▲","!"),a4=b("■","x");var s4={light:b("─","-"),heavy:b("━","="),block:b("█","#")};function z4(){return`${i.gray(ez)} `}var t4=z4();var I6="0.10.
|
|
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 pz(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 rz(z,$){return($.label??String($.value)).toLowerCase().includes(z.toLowerCase())}function az(z,$){if(!$)return;if(z)return $;return $[0]}class sz extends Y6{filteredOptions;multiple;isNavigating=!1;selectedValues=[];focusedValue;#z=0;#Q="";#Z;#$;get cursor(){return this.#z}get userInputWithCursor(){if(!this.userInput)return i.inverse(i.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}${i.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??rz;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=az(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=pz(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 tz 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 oz=Jz();var b=(z,$)=>oz?z:$,P4=b("◆","*"),C4=b("■","x"),S4=b("▲","x"),v4=b("◇","o"),y4=b("┌","T"),ez=b("│","|"),k4=b("└","—"),h4=b("●",">"),_4=b("○"," "),g4=b("◻","[•]"),f4=b("◼","[+]"),m4=b("◻","[ ]"),d4=b("▪","•"),u4=b("─","-"),i4=b("╮","+"),c4=b("├","+"),n4=b("╯","+"),l4=b("●","•"),p4=b("◆","*"),r4=b("▲","!"),a4=b("■","x");var s4={light:b("─","-"),heavy:b("━","="),block:b("█","#")};function z4(){return`${i.gray(ez)} `}var t4=z4();var I6="0.10.47";Q4();async function Z4(z="src/pantry"){if(!V.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=V.readdirSync(Z,{withFileTypes:!0}),J=B.join(Z,"package.yml");if(Y&&V.existsSync(J))$.push(Y);for(let U of q)if(U.isDirectory()&&!U.name.startsWith(".")){let X=Y?`${Y}/${U.name}`:U.name,G=B.join(Z,U.name);Q(G,X)}}return Q(z),console.log(`\uD83D\uDCE6 Found ${$.length} packages in local pantry`),$.sort()}async function Y4(z=!1){async function $(J){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"),J)U.searchParams.set("continuation-token",J);let X=await fetch(U.toString());if(!X.ok)throw Error(`Failed to fetch S3 listing: ${X.status}`);let G=await X.text(),K=[],W=G.match(/<Key>([^<]+)<\/Key>/g);if(W)for(let T of W){let E=T.replace(/<Key>([^<]+)<\/Key>/,"$1");K.push({Key:E})}let j=G.includes("<IsTruncated>true</IsTruncated>"),F=G.match(/<NextContinuationToken>([^<]+)<\/NextContinuationToken>/),L=F?F[1]:void 0;return{IsTruncated:j,NextContinuationToken:L,Contents:K}}console.log("Scraping packages from S3 registry...");let Q=new Set,Z;do{let J=await $(Z);for(let U of J.Contents){let X=U.Key,G=X.split("/");if(G.length===0)continue;if(G[0].startsWith(".")||G[0].includes(" ")||X.match(/\.(md|txt|yml|yaml|json)$/i))continue;let K=["darwin","linux","windows"],W=-1;for(let j=1;j<G.length;j++)if(K.includes(G[j])){W=j;break}if(W>0){let j=G.slice(0,W).join("/");if(j.includes("."))Q.add(j)}else if(G.length>=2&&G[0].includes(".")&&!G[1].startsWith("v")&&!G[1].match(/^\d/)){let j=`${G[0]}/${G[1]}`;Q.add(j)}else if(G.length>=1&&G[0].includes("."))Q.add(G[0])}Z=J.NextContinuationToken,console.log(`Found ${Q.size} packages so far...`)}while(Z);let Y=Array.from(Q).sort(),q=[];for(let J of Y){if(!J.includes(".")||J.match(/^[a-z0-9.-]+\.[a-z]{2,}(\/[\w.-]+){0,20}$/i)===null)continue;if(J.endsWith("/README.rst")||J.endsWith("/README")||J.includes("/docs/"))continue;if(J.endsWith("/.pkgroot"))continue;if(["amazon.com/aws","charm.sh","code.videolan.org","crates.io"].includes(J))continue;q.push(J)}return console.log(`\uD83D\uDCE6 Found ${q.length} valid packages in registry`),q}async function q4(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,17 +100,17 @@ ${Y.join(`
|
|
|
100
100
|
Conflicts found:`),j.conflicts.forEach((L)=>{console.log(` ${L.package}: ${L.versions.join(", ")}`)});if(console.log(`
|
|
101
101
|
\uD83D\uDCCB All unique packages to install:`),j.uniquePackages.forEach((L,T)=>{let E=j.allDependencies.find((N)=>N.name===L),w=E&&E.version&&E.version!=="latest"?` (${E.version})`:"";console.log(` ${T+1}. ${L}${w}`)}),G)console.log(`
|
|
102
102
|
\uD83D\uDE80 Install command:`),console.log(`pantry install ${j.uniquePackages.join(" ")}`);if(Object.values(j.osSpecificDeps).reduce((L,T)=>L+T.length,0)>0)console.log(`
|
|
103
|
-
\uD83D\uDDA5️ OS-specific dependencies:`),Object.entries(j.osSpecificDeps).forEach(([L,T])=>{if(T.length>0)console.log(` ${L}: ${T.map((E)=>E.name).join(", ")}`)})}H.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);H.exit(1)}});I.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-
|
|
103
|
+
\uD83D\uDDA5️ OS-specific dependencies:`),Object.entries(j.osSpecificDeps).forEach(([L,T])=>{if(T.length>0)console.log(` ${L}: ${T.map((E)=>E.name).join(", ")}`)})}H.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);H.exit(1)}});I.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-d6fsjw8y.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
|
-
`)}`);break;case"csv":console.log(Z.join(","));break;case"json":default:console.log(JSON.stringify(Z));break}H.exit(0)}catch($){console.error("Error getting PHP versions:",$),H.exit(1)}});I.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-
|
|
105
|
+
`)}`);break;case"csv":console.log(Z.join(","));break;case"json":default:console.log(JSON.stringify(Z));break}H.exit(0)}catch($){console.error("Error getting PHP versions:",$),H.exit(1)}});I.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-g66hejq1.js"),{packagesDir:Z="src/packages",output:Y="packages.zig",aliases:q=!1,aliasesOutput:J="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,J);console.log(`
|
|
107
|
-
✅ Zig code generation complete!`),H.exit(0)}catch($){console.error("Error generating Zig definitions:",$),H.exit(1)}});I.command("release [type]","Release a Zig package (changelog, bump, commit, tag, push, publish)").option("-y, --yes","Non-interactive mode (skip confirmation prompts)").option("--dry-run","Preview the release without changing anything").option("--no-changelog","Skip changelog generation").option("--no-push","Skip pushing the commit and tag").option("--no-publish","Skip publishing to the pantry registry").action(async(z,$)=>{let Q=(z??"patch").toLowerCase();if(!["patch","minor","major"].includes(Q))console.error(`error: invalid release type "${Q}" (expected: patch | minor | major)`),H.exit(1);let{runRelease:Z}=await import("../chunk-
|
|
107
|
+
✅ Zig code generation complete!`),H.exit(0)}catch($){console.error("Error generating Zig definitions:",$),H.exit(1)}});I.command("release [type]","Release a Zig package (changelog, bump, commit, tag, push, publish)").option("-y, --yes","Non-interactive mode (skip confirmation prompts)").option("--dry-run","Preview the release without changing anything").option("--no-changelog","Skip changelog generation").option("--no-push","Skip pushing the commit and tag").option("--no-publish","Skip publishing to the pantry registry").action(async(z,$)=>{let Q=(z??"patch").toLowerCase();if(!["patch","minor","major"].includes(Q))console.error(`error: invalid release type "${Q}" (expected: patch | minor | major)`),H.exit(1);let{runRelease:Z}=await import("../chunk-2e0t4tmc.js"),Y=await Z({type:Q,yes:$.yes,dryRun:$.dryRun,noChangelog:$.changelog===!1,noPush:$.push===!1,noPublish:$.publish===!1});H.exit(Y.exitCode)});I.command("apps","List installed desktop applications with version info").option("-j, --json","Output as JSON").action(async(z)=>{try{let{scanInstalledApps:$}=await import("../chunk-zkk2hs5n.js"),Q=$();if(z.json)console.log(JSON.stringify({success:!0,apps:Q,total:Q.length}));else{console.log(`
|
|
108
108
|
Installed Desktop Apps (${Q.length}):
|
|
109
|
-
`),console.log("Application".padEnd(40)+"Version"),console.log("-".repeat(60));for(let Z of Q)console.log(`${Z.name.padEnd(40)}${Z.version}`)}H.exit(0)}catch($){console.error("Error listing apps:",$),H.exit(1)}});I.command("apps-outdated","Check for outdated desktop applications").option("-j, --json","Output as JSON").action(async(z)=>{try{let{checkAppUpdates:$}=await import("../chunk-
|
|
109
|
+
`),console.log("Application".padEnd(40)+"Version"),console.log("-".repeat(60));for(let Z of Q)console.log(`${Z.name.padEnd(40)}${Z.version}`)}H.exit(0)}catch($){console.error("Error listing apps:",$),H.exit(1)}});I.command("apps-outdated","Check for outdated desktop applications").option("-j, --json","Output as JSON").action(async(z)=>{try{let{checkAppUpdates:$}=await import("../chunk-zkk2hs5n.js");if(!z.json)console.log("Checking desktop apps for updates...");let Q=await $(),Z=Q.filter((Y)=>Y.updateAvailable);if(z.json)console.log(JSON.stringify({success:!0,apps:Q,outdated:Z.length,total:Q.length,timestamp:new Date().toISOString()}));else{if(Z.length>0){console.log(`
|
|
110
110
|
Outdated Apps (${Z.length}):
|
|
111
111
|
`),console.log("Application".padEnd(30)+"Current".padEnd(16)+"Latest".padEnd(16)+"Source"),console.log("-".repeat(75));for(let q of Z)console.log(`${q.name.padEnd(30)}${q.currentVersion.padEnd(16)}${(q.latestVersion||"?").padEnd(16)}${q.source}`)}else console.log(`
|
|
112
112
|
All desktop apps are up to date!`);let Y=Q.filter((q)=>!q.updateAvailable&&q.source!=="system"&&q.source!=="unknown");if(Y.length>0)console.log(`
|
|
113
|
-
${Y.length} app(s) up to date, ${Q.filter((q)=>q.source==="unknown").length} unchecked`)}H.exit(0)}catch($){console.error("Error checking app updates:",$),H.exit(1)}});I.command("apps-update <name>","Update a desktop application from the pantry registry").action(async(z)=>{try{let{updateApp:$}=await import("../chunk-
|
|
113
|
+
${Y.length} app(s) up to date, ${Q.filter((q)=>q.source==="unknown").length} unchecked`)}H.exit(0)}catch($){console.error("Error checking app updates:",$),H.exit(1)}});I.command("apps-update <name>","Update a desktop application from the pantry registry").action(async(z)=>{try{let{updateApp:$}=await import("../chunk-zkk2hs5n.js");console.log(`Updating ${z} from the pantry registry...`);let Q=await $(z);if(Q.success)console.log(`Successfully updated ${z} to ${Q.version}`);else console.error(`Failed to update ${z}: ${Q.error}`),H.exit(1);H.exit(0)}catch($){console.error("Error updating app:",$),H.exit(1)}});I.command("install <pkg>","Install a system package (e.g. ziglang.org@0.17.0-dev)").option("--global","Link binaries into the user-level global bin so they appear on PATH").option("--install-dir <dir>","Where to download into (default: ./pantry)").option("--platform <target>","Install for a target platform (e.g. linux-x86_64)").option("--no-bin-links","Skip creating local .bin/ symlinks").option("--quiet","Suppress progress output").action(async(z,$)=>{let Q=z.lastIndexOf("@"),Z=Q>0,Y=Z?z.slice(0,Q):z,q=Z?z.slice(Q+1):"latest";try{let J=await y6(Y,q,{installDir:$.installDir,platform:J4($.platform),createBinLinks:$.binLinks!==!1,quiet:$.quiet,globalBin:$.global?!0:void 0});if(!$.quiet){if(console.log(`
|
|
114
114
|
✓ ${J.name}@${J.version}`),console.log(` installed to: ${J.installPath}`),J.globalLinks&&J.globalLinks.length>0){if(console.log(` linked into: ${B.dirname(J.globalLinks[0])}`),!H.env.PATH?.split(B.delimiter).includes(B.dirname(J.globalLinks[0])))console.log(`
|
|
115
115
|
⚠ ${B.dirname(J.globalLinks[0])} is not on your PATH yet.`),console.log(" Run `ts-pantry shell-init --install` once to fix that.")}}H.exit(0)}catch(J){console.error(`Error installing ${z}:`,J instanceof Error?J.message:J),H.exit(1)}});I.command("shell-init","Print the shell snippet that puts pantry-installed packages on PATH").option("--install","Append the snippet to your shell rc file (idempotent)").option("--uninstall","Remove a previously installed snippet").option("--shell <shell>","Force a shell (zsh|bash|fish) instead of autodetect").action(async(z)=>{let $=z.shell??k6();try{if(z.uninstall){let Z=f6({shell:$});console.log(Z.changed?`✓ Removed pantry shell-init from ${Z.rcFile}`:`Nothing to remove (no pantry shell-init block in ${Z.rcFile})`),H.exit(0)}if(z.install){let Z=g6({shell:$});if(Z.changed)console.log(`✓ Added pantry shell-init to ${Z.rcFile}`),console.log(` Restart your shell or run: source ${Z.rcFile}`);else console.log(`✓ Already integrated in ${Z.rcFile}`);H.exit(0)}let Q=h6($);if(H.stdout.isTTY){if(console.log(`# Detected shell: ${$}`),console.log(`# Global bin dir: ${v6()}`),Q)console.log(`# Append this to: ${Q}`);console.log("# Or run: ts-pantry shell-init --install"),console.log()}H.stdout.write(_6({shell:$})),H.exit(0)}catch(Q){console.error("Error:",Q instanceof Error?Q.message:Q),H.exit(1)}});I.command("build [context]","Build a Dockerfile into an OCI image (no Docker daemon required)").option("-f, --file <path>","Path to the Dockerfile (default: <context>/Dockerfile)").option("-t, --tag <tag>","Image tag, e.g. myapp:latest (repeatable)").option("--target <stage>","Target stage for a multi-stage build").option("--build-arg <kv>","Set a build arg KEY=VALUE (repeatable)").option("--platform <os/arch>","Target platform (default: linux/<host-arch>)").option("--output <dir>","Where to write the image archive + OCI layout (default: <context>/.pantry/images)").option("--run-mode <mode>","How to run RUN steps: auto|chroot|host|skip (default: auto)").option("--push","Push the built image to the pantry registry after building").option("--quiet","Suppress step output").action(async(z,$)=>{try{let Q=[].concat($.tag??[]),Z={};for(let q of[].concat($.buildArg??[])){let J=q.indexOf("=");if(J!==-1)Z[q.slice(0,J)]=q.slice(J+1)}let Y=await p6({context:z??".",dockerfile:$.file,tags:Q,target:$.target,buildArgs:Z,platform:$.platform,outputDir:$.output,runMode:$.runMode,quiet:$.quiet});if(!$.quiet){if(console.log(`
|
|
116
116
|
✓ Built ${Y.imageId}`),Q.length)console.log(` tags: ${Q.join(", ")}`);console.log(` archive: ${Y.archivePath}`),console.log(` oci layout: ${Y.ociLayoutPath}`)}if($.push){let q=n6(Q[0]||"app:latest");if(!$.quiet)console.log(`
|
|
@@ -1,2 +1,2 @@
|
|
|
1
1
|
import{createRequire as m}from"node:module";var{defineProperty:e,getOwnPropertyNames:g,getOwnPropertyDescriptor:h}=Object,i=Object.prototype.hasOwnProperty;function j(a){return this[a]}var n=(a)=>{var b=(f??=new WeakMap).get(a),c;if(b)return b;if(b=e({},"__esModule",{value:!0}),a&&typeof a==="object"||typeof a==="function"){for(var d of g(a))if(!i.call(b,d))e(b,d,{get:j.bind(a,d),enumerable:!(c=h(a,d))||c.enumerable})}return f.set(a,b),b},f;var k=(a)=>a;function l(a,b){this[a]=k.bind(null,b)}var o=(a,b)=>{for(var c in b)e(a,c,{get:b[c],enumerable:!0,configurable:!0,set:l.bind(b,c)})};var p=(a,b)=>()=>(a&&(b=a(a=0)),b);var r=m(import.meta.url);
|
|
2
|
-
export{n as
|
|
2
|
+
export{n as sc,o as tc,p as uc,r as vc};
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
import"./chunk-
|
|
1
|
+
import"./chunk-1rt3bxtx.js";import{spawnSync as k}from"node:child_process";import Y from"node:fs";import y from"node:os";import W from"node:path";import V from"node:process";var S="\x1B[31m",P="\x1B[32m",b="\x1B[33m",B="\x1B[2m",M="\x1B[1m",$="\x1B[0m";function U(j){console.log(`${B}>${$} ${j}`)}function v(j){console.log(`${P}✓${$} ${j}`)}function H(j){console.log(`${b}!${$} ${j}`)}function X(j){console.error(`${S}error:${$} ${j}`)}function K(j,q,F){let A=k(j,q,{cwd:F,encoding:"utf8"});return{status:A.status??(A.error?1:0),stdout:A.stdout??"",stderr:A.stderr??(A.error?String(A.error.message):"")}}function I(j,q){let F=k("which",[j],{encoding:"utf8"});if((F.status??1)===0&&F.stdout.trim().length>0)return F.stdout.trim();let A=y.homedir(),J=[W.join(A,".local","bin",j),W.join(A,"pantry",".bin",j),W.join(A,".pantry","bin",j),W.join(A,"Code","Libraries",q,"zig-out","bin",j)];for(let N of J)if(Y.existsSync(N))return N;return null}function D(j){let F=Y.readFileSync(j,"utf8").match(/\.version\s*=\s*"([^"]+)"/);return F?F[1]:null}function T(j,q){let F=W.join(j,"package.json");if(!Y.existsSync(F))return!1;let A=Y.readFileSync(F,"utf8"),J=A.replace(/("version"\s*:\s*)"[^"]*"/,`$1"${q}"`);if(J===A)return!1;return Y.writeFileSync(F,J),!0}async function w(j){let q=j.cwd??V.cwd(),F=W.join(q,"build.zig.zon");if(!Y.existsSync(F))return X(`no build.zig.zon found in ${q}`),console.error(` ${B}\`pantry release\` must be run from the root of a Zig package.${$}`),{exitCode:1};let A=K("git",["rev-parse","--is-inside-work-tree"],q);if(A.status!==0||A.stdout.trim()!=="true")return X("not inside a git repository"),{exitCode:1};let J=K("git",["status","--porcelain"],q);if(J.status===0&&J.stdout.trim().length>0&&!j.dryRun)return X("working tree is not clean — commit or stash your changes first."),console.error(J.stdout.trimEnd()),{exitCode:1};let N=!1;if(!j.noPush){let Q=K("git",["rev-parse","--abbrev-ref","--symbolic-full-name","@{u}"],q);if(N=Q.status===0&&Q.stdout.trim().length>0,!N)H("no upstream branch configured — will commit and tag locally (skipping push).")}let O=D(F);if(!O)return X(`could not read .version from ${F}`),{exitCode:1};let G=I("bump","zig-bump");if(!G)return X("`bump` binary not found (from zig-bump)."),console.error(` ${B}Build it: cd ~/Code/Libraries/zig-bump && zig build, or install it onto your PATH.${$}`),{exitCode:1};if(!j.noChangelog){let Q=I("changelog","zig-changelog");if(Q)if(U("generating changelog from conventional commits..."),j.dryRun)console.log(` ${B}[dry-run] would run: changelog -o CHANGELOG.md${$}`);else{let _=K(Q,["-o","CHANGELOG.md"],q);if(_.status===0)v("CHANGELOG.md updated");else H(`changelog generation skipped${_.stderr?`: ${_.stderr.trim()}`:""}`)}else H("`changelog` binary not found (from zig-changelog) — skipping changelog.")}if(U(`bumping version (${M}${j.type}${$}) from ${O}...`),j.dryRun){let Q=K(G,[j.type,"--dry-run","--yes"],q);if(Q.stdout.trim())console.log(Q.stdout.trimEnd());return console.log(` ${B}[dry-run] no files changed, no commit/tag/push, no publish.${$}`),{exitCode:0}}let C=K(G,[j.type,"--no-commit","--no-tag","--no-push","--yes"],q);if(C.status!==0){if(X("version bump failed"),C.stdout.trim())console.error(C.stdout.trimEnd());if(C.stderr.trim())console.error(C.stderr.trimEnd());return{exitCode:1}}let Z=D(F);if(!Z||Z===O)return X("version did not change after bump"),{exitCode:1};v(`build.zig.zon ${O} → ${Z}`);let x=`v${Z}`;if(K("git",["rev-parse","-q","--verify",`refs/tags/${x}`],q).status===0)return X(`tag ${x} already exists — bump to a version that has no tag yet.`),K("git",["checkout","--","build.zig.zon"],q),{exitCode:1};if(T(q,Z))v(`package.json version → ${Z}`);if(K("git",["add","build.zig.zon"],q),Y.existsSync(W.join(q,"package.json")))K("git",["add","package.json"],q);if(Y.existsSync(W.join(q,"CHANGELOG.md")))K("git",["add","CHANGELOG.md"],q);let L=K("git",["commit","-m",`chore: release ${x}`],q);if(L.status!==0){if(X("git commit failed"),L.stderr.trim())console.error(L.stderr.trimEnd());return{exitCode:1}}v(`committed release ${x}`);let z=K("git",["tag","-a",x,"-m",`Release ${x}`],q);if(z.status!==0){if(X("git tag failed"),z.stderr.trim())console.error(z.stderr.trimEnd());return{exitCode:1}}if(v(`tagged ${x}`),!j.noPush&&N){U("pushing commit and tag...");let Q=K("git",["push"],q);if(Q.status!==0){if(X("git push failed"),Q.stderr.trim())console.error(Q.stderr.trimEnd());return{exitCode:1}}let _=K("git",["push","origin",x],q);if(_.status!==0){if(X(`pushing tag ${x} failed`),_.stderr.trim())console.error(_.stderr.trimEnd());return{exitCode:1}}v(`pushed commit and tag ${x}`)}else H("skipped push (commit and tag are local only).");if(!j.noPublish)R(q);return console.log(`
|
|
2
2
|
${P}${M}✓ released ${x}${$}`),{exitCode:0}}function R(j){let q=I("pantry","pantry");if(!q){H("`pantry` binary not found — skipping publish (the pushed tag's CI will publish).");return}if(K(q,["publish","--help"],j).status!==0){H("`pantry publish` is not available in the installed pantry yet — skipping."),console.log(` ${B}The pushed tag will trigger CI to publish to the registry.${$}`);return}U("publishing to pantry registry...");let A=K(q,["publish"],j);if(A.stdout.trim())console.log(A.stdout.trimEnd());if(A.status===0)v("published to pantry registry");else if(H("publish step failed — the pushed tag's CI can still publish."),A.stderr.trim())console.log(` ${B}${A.stderr.trim()}${$}`)}export{w as runRelease};
|