ts-pantry 0.9.35 → 0.9.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 +24 -22
- package/dist/{chunk-rjpqpn2z.js → chunk-2f67zesz.js} +1 -1
- package/dist/{chunk-wa6y5hzk.js → chunk-32p4tmkp.js} +1 -1
- package/dist/chunk-6sdg5rnh.js +1 -0
- package/dist/{chunk-gs54v9m1.js → chunk-8se0rpx2.js} +2 -2
- package/dist/{chunk-xmbzwc6m.js → chunk-93azbagg.js} +1 -1
- package/dist/chunk-be9yfyr2.js +313 -0
- package/dist/{chunk-tv0zm8m0.js → chunk-c4w18zcv.js} +4 -4
- package/dist/chunk-c56wx811.js +1 -0
- package/dist/{chunk-0kzq4gm1.js → chunk-hbetzmw8.js} +1 -1
- package/dist/{chunk-s0s1vx8j.js → chunk-hgz8sje2.js} +2 -2
- package/dist/chunk-j8ky5qj1.js +1 -0
- package/dist/{chunk-nkpmj4a5.js → chunk-m49mfgmc.js} +1 -1
- package/dist/chunk-p7t5qrmj.js +142 -0
- package/dist/{chunk-75fe09w8.js → chunk-py3ymxjf.js} +1 -1
- package/dist/chunk-qa16aaq5.js +2 -0
- package/dist/{chunk-fwv0fmkb.js → chunk-wrmrz4gg.js} +2 -2
- package/dist/{chunk-m07cv1kh.js → chunk-x2rx3ach.js} +1 -1
- package/dist/container/builder.d.ts +8 -0
- package/dist/container/context.d.ts +15 -0
- package/dist/container/dockerfile.d.ts +18 -0
- package/dist/container/freezerignore.d.ts +34 -0
- package/dist/container/generate.d.ts +25 -0
- package/dist/container/index.d.ts +36 -0
- package/dist/container/oci.d.ts +40 -0
- package/dist/container/registry.d.ts +43 -0
- package/dist/container/types.d.ts +126 -0
- package/dist/desktop-apps.d.ts +14 -0
- package/dist/fetch.d.ts +37 -0
- package/dist/index.d.ts +3 -2
- package/dist/package-types.d.ts +1 -1
- package/dist/packages/alttabapp.d.ts +1 -1
- package/dist/packages/ansiblecom.d.ts +1 -1
- package/dist/packages/arkadedev.d.ts +1 -1
- package/dist/packages/aux4io.d.ts +1 -1
- package/dist/packages/bittensorcom.d.ts +1 -1
- package/dist/packages/bufbuild.d.ts +1 -1
- package/dist/packages/buildpacksio.d.ts +1 -1
- package/dist/packages/bytebasecom.d.ts +1 -1
- package/dist/packages/carapacesh.d.ts +1 -1
- package/dist/packages/casdoororg.d.ts +1 -1
- package/dist/packages/chezmoiio.d.ts +1 -1
- package/dist/packages/cligithubcom.d.ts +1 -1
- package/dist/packages/cmakeorg.d.ts +1 -1
- package/dist/packages/cnqueryio.d.ts +1 -1
- package/dist/packages/codercom.d.ts +1 -1
- package/dist/packages/consulio.d.ts +1 -1
- package/dist/packages/convcogithubio.d.ts +1 -1
- package/dist/packages/cythonorg.d.ts +1 -1
- package/dist/packages/daggerio.d.ts +1 -1
- package/dist/packages/daytonaio.d.ts +1 -1
- package/dist/packages/dblabdanvergaracom.d.ts +1 -1
- package/dist/packages/denoland.d.ts +1 -1
- package/dist/packages/depotdev.d.ts +1 -1
- package/dist/packages/dozzledev.d.ts +1 -1
- package/dist/packages/duckdborg.d.ts +1 -1
- package/dist/packages/eksctlio.d.ts +1 -1
- package/dist/packages/encoredev.d.ts +1 -1
- package/dist/packages/fastlanetools.d.ts +1 -1
- package/dist/packages/flyio.d.ts +1 -1
- package/dist/packages/getcomposerorg.d.ts +1 -1
- package/dist/packages/getsopsio.d.ts +1 -1
- package/dist/packages/ghostscriptcom.d.ts +1 -1
- package/dist/packages/gohugoio.d.ts +1 -1
- package/dist/packages/goreleasercom.d.ts +1 -1
- package/dist/packages/groongaorg.d.ts +1 -1
- package/dist/packages/hasuraio.d.ts +1 -1
- package/dist/packages/helmsh.d.ts +1 -1
- package/dist/packages/huggingfaceco.d.ts +1 -1
- package/dist/packages/imagemagickorg.d.ts +1 -1
- package/dist/packages/istioio.d.ts +1 -1
- package/dist/packages/jujuis.d.ts +1 -1
- package/dist/packages/kagglecom.d.ts +1 -1
- package/dist/packages/keephqdev.d.ts +1 -1
- package/dist/packages/kubesharkco.d.ts +1 -1
- package/dist/packages/laravelcom.d.ts +1 -1
- package/dist/packages/lavinmqcom.d.ts +1 -1
- package/dist/packages/libcxxllvmorg.d.ts +1 -1
- package/dist/packages/libgit2org.d.ts +1 -1
- package/dist/packages/libusbinfo.d.ts +1 -1
- package/dist/packages/llvmorg.d.ts +1 -1
- package/dist/packages/localaiio.d.ts +1 -1
- package/dist/packages/lxmlde.d.ts +1 -1
- package/dist/packages/mailpitaxllentorg.d.ts +1 -1
- package/dist/packages/mavenapacheorg.d.ts +1 -1
- package/dist/packages/meilisearchcom.d.ts +1 -1
- package/dist/packages/mercurerocks.d.ts +1 -1
- package/dist/packages/misejdxdev.d.ts +1 -1
- package/dist/packages/nginxorg.d.ts +1 -1
- package/dist/packages/nodejsorg.d.ts +1 -1
- package/dist/packages/nomadprojectio.d.ts +1 -1
- package/dist/packages/npmjscom.d.ts +1 -1
- package/dist/packages/numpyorg.d.ts +1 -1
- package/dist/packages/nushellsh.d.ts +1 -1
- package/dist/packages/odigosio.d.ts +1 -1
- package/dist/packages/ohmyposhdev.d.ts +1 -1
- package/dist/packages/ollamaai.d.ts +1 -1
- package/dist/packages/opencodeai.d.ts +1 -1
- package/dist/packages/openexrcom.d.ts +1 -1
- package/dist/packages/openmpllvmorg.d.ts +1 -1
- package/dist/packages/openpolicyagentorg.d.ts +1 -1
- package/dist/packages/opensearchorg.d.ts +1 -1
- package/dist/packages/opentofuorg.d.ts +1 -1
- package/dist/packages/planetscalecom.d.ts +1 -1
- package/dist/packages/plantumlcom.d.ts +1 -1
- package/dist/packages/pnpmio.d.ts +1 -1
- package/dist/packages/pocketbaseio.d.ts +1 -1
- package/dist/packages/postgrestorg.d.ts +1 -1
- package/dist/packages/prefixdev.d.ts +1 -1
- package/dist/packages/projenio.d.ts +1 -1
- package/dist/packages/protobufdev.d.ts +1 -1
- package/dist/packages/pulumiio.d.ts +1 -1
- package/dist/packages/rabbitmqcom.d.ts +1 -1
- package/dist/packages/railwayapp.d.ts +1 -1
- package/dist/packages/rcloneorg.d.ts +1 -1
- package/dist/packages/redisio.d.ts +1 -1
- package/dist/packages/riotermcom.d.ts +1 -1
- package/dist/packages/rsyncsambaorg.d.ts +1 -1
- package/dist/packages/rubocoporg.d.ts +1 -1
- package/dist/packages/rubygemsorg.d.ts +1 -1
- package/dist/packages/scalewaycom.d.ts +1 -1
- package/dist/packages/seaweedfscom.d.ts +1 -1
- package/dist/packages/sentryio.d.ts +1 -1
- package/dist/packages/skaffolddev.d.ts +1 -1
- package/dist/packages/spacetimedbcom.d.ts +1 -1
- package/dist/packages/sqlfluffcom.d.ts +1 -1
- package/dist/packages/squawkhqcom.d.ts +1 -1
- package/dist/packages/statsapp.d.ts +1 -1
- package/dist/packages/steampipeio.d.ts +1 -1
- package/dist/packages/stripecom.d.ts +1 -1
- package/dist/packages/systemdio.d.ts +1 -1
- package/dist/packages/tailscalecom.d.ts +1 -1
- package/dist/packages/talosdev.d.ts +1 -1
- package/dist/packages/taskfiledev.d.ts +1 -1
- package/dist/packages/terraformio.d.ts +1 -1
- package/dist/packages/terragruntgruntworkio.d.ts +1 -1
- package/dist/packages/toxwiki.d.ts +1 -1
- package/dist/packages/tursotech.d.ts +1 -1
- package/dist/packages/unboundnet.d.ts +1 -1
- package/dist/packages/valesh.d.ts +1 -1
- package/dist/packages/valkeyio.d.ts +1 -1
- package/dist/packages/vapoursynthcom.d.ts +1 -1
- package/dist/packages/vaultprojectio.d.ts +1 -1
- package/dist/packages/vclustercom.d.ts +1 -1
- package/dist/packages/veleroio.d.ts +1 -1
- package/dist/packages/werfio.d.ts +1 -1
- package/dist/packages/zarfdev.d.ts +1 -1
- package/dist/packages/zeddev.d.ts +1 -1
- package/dist/packages/zotregistrydev.d.ts +1 -1
- package/dist/packages/zrokio.d.ts +1 -1
- package/dist/src/index.js +1 -1
- package/dist/types.d.ts +1 -1
- package/package.json +2 -2
- package/dist/chunk-7e3eta64.js +0 -282
- package/dist/chunk-gyn0s28q.js +0 -142
- package/dist/chunk-hk26x4v2.js +0 -1
- package/dist/chunk-hr4kt0yv.js +0 -1
- package/dist/chunk-xkqrwk69.js +0 -1
- package/dist/chunk-z7v78f5q.js +0 -2
package/dist/bin/cli.js
CHANGED
|
@@ -1,18 +1,18 @@
|
|
|
1
|
-
import{L as C6,M as v6,N as S6,P as y6,V as k6,W as h6,X as _6,Y as g6,Z as f6,ba as G6,ca as u6,da as i6}from"../chunk-
|
|
1
|
+
import{Da as c6,Ea as n6,Ga as l6,Ja as p6,L as C6,La as r6,M as v6,N as S6,P as y6,V as k6,W as h6,X as _6,Y as g6,Z as f6,ba as G6,ca as u6,da as i6}from"../chunk-be9yfyr2.js";import"../chunk-hbetzmw8.js";import{Ab as U6,nb as p,ob as m6,qb as X6,rb as r,wb as d6}from"../chunk-c4w18zcv.js";import"../chunk-8se0rpx2.js";import{Pb as l,Qb as q6,Rb as J6}from"../chunk-py3ymxjf.js";import"../chunk-wrmrz4gg.js";import"../chunk-qa16aaq5.js";import{jc as P6,kc as Q4}from"../chunk-hgz8sje2.js";import"../chunk-x2rx3ach.js";import{rc as h}from"../chunk-2f67zesz.js";import V from"node:fs";import N 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 S 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),L=X.slice(G+1);J(K,L)}else{let K=X.slice(2);if(K.startsWith("no-")){let j=K.slice(3);J(j,!1);continue}let L=q[K]||K;if(Y.has(L)||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 L=G[K],j=q[L]||L;if(K===G.length-1&&!Y.has(j)&&!Y.has(L)){let F=z[U+1];if(F!==void 0&&!F.startsWith("-"))J(L,F),U++;else J(L,!0)}else J(L,!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}
|
|
2
2
|
|
|
3
3
|
Stack trace:
|
|
4
|
-
${this.stack}`;return this.message}}function
|
|
4
|
+
${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 v={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?v.up():"");if(z)$+=v.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 L="";if(K.length>0)L+=K.map((F)=>{return` ${t(F.rawName,X.length)} ${F.description}`}).join(`
|
|
5
5
|
`);let j=Array.from(G.keys()).sort();for(let F of j){let W=G.get(F);if(L.length>0)L+=`
|
|
6
6
|
|
|
7
7
|
`;L+=` ${F}:
|
|
8
8
|
`,L+=W.map((B)=>{return` ${t(B.rawName,X.length-2)} ${B.description}`}).join(`
|
|
9
|
-
`)}q.push({title:"Commands",body:L}),q.push({title:"For more info, run any command with the `--help` flag",body:$.map((F)=>` $ ${z}${F.
|
|
9
|
+
`)}q.push({title:"Commands",body:L}),q.push({title:"For more info, run any command with the `--help` flag",body:$.map((F)=>` $ ${z}${F.displayName===""?"":` ${F.displayName}`} --help`).join(`
|
|
10
10
|
`)})}let U=this.isGlobalCommand?Z:[...this.options,...Z||[]];if(!this.isGlobalCommand&&!this.isDefaultCommand)U=U.filter((X)=>X.name!=="version");if(U.length>0){let X=F6(U.map((G)=>G.rawName));q.push({title:"Options",body:U.map((G)=>{return` ${t(G.rawName,X.length)} ${G.description} ${G.config.default===void 0?"":`(default: ${G.config.default})`}`}).join(`
|
|
11
11
|
`)})}if(this.examples.length>0)q.push({title:"Examples",body:this.examples.map((X)=>{if(typeof X==="function")return X(z);return X}).join(`
|
|
12
12
|
`)});if(Y)q=Y(q)||q;console.log(q.map((X)=>{return X.title?`${X.title}:
|
|
13
13
|
${X.body}`:X.body}).join(`
|
|
14
14
|
|
|
15
|
-
`))}outputVersion(){let{name:z}=this.cli,{versionNumber:$}=this.cli.globalCommand;if($)console.log(`${z}/${$} ${typeof Bun<"u"?
|
|
15
|
+
`))}outputVersion(){let{name:z}=this.cli,{versionNumber:$}=this.cli.globalCommand;if($)console.log(`${z}/${$} ${typeof Bun<"u"?Uz:Gz}`)}checkRequiredArgs(){let z=this.args.filter(($)=>$.required).length;if(this.cli.args.length<z){let Q=this.args.filter((Y)=>Y.required).slice(this.cli.args.length),Z=Q.map((Y)=>`<${Y.value}>`).join(" ");throw new d(`Missing required argument${Q.length>1?"s":""}: ${Z}
|
|
16
16
|
|
|
17
17
|
Run \`${this.cli.name} ${this.rawName} --help\` for usage information.`)}}checkUnknownOptions(){let{options:z,globalCommand:$}=this.cli;if(!this.config.allowUnknownOptions){for(let Q of Object.keys(z))if(Q!=="--"&&!this.hasOption(Q)&&!$.hasOption(Q)){let Y=[...$.options,...this.options].flatMap((X)=>X.names),q=Q.length>1?`--${Q}`:`-${Q}`,J=b6(Q,Y),U=`Unknown option \`${q}\``;if(J.length>0)U+=`
|
|
18
18
|
|
|
@@ -21,22 +21,22 @@ Did you mean one of these?`,J.forEach((X)=>{let G=X.length>1?`--${X}`:`-${X}`;U+
|
|
|
21
21
|
|
|
22
22
|
Run \`${this.cli.name} ${this.rawName} --help\` to see available options.`,new d(U)}}}checkOptionValue(){let{options:z,globalCommand:$}=this.cli,Q=[...$.options,...this.options];for(let Z of Q){let Y=z[Z.name.split(".")[0]];if(Z.required){let q=Q.some((J)=>J.negated&&J.names.includes(Z.name));if(Y===!0||Y===!1&&!q)throw new d(`Option \`${Z.rawName}\` requires a value.
|
|
23
23
|
|
|
24
|
-
Example: ${this.cli.name} ${this.rawName} ${Z.rawName} <value>`)}}}}class Q6 extends $6{constructor(z){super("@@global@@","",{},z)}}var
|
|
24
|
+
Example: ${this.cli.name} ${this.rawName} ${Z.rawName} <value>`)}}}}class Q6 extends $6{constructor(z){super("@@global@@","",{},z)}}var jz=$6,y={red:["\x1B[31m","\x1B[39m"],green:["\x1B[32m","\x1B[39m"],blue:["\x1B[34m","\x1B[39m"],yellow:["\x1B[33m","\x1B[39m"],cyan:["\x1B[36m","\x1B[39m"],magenta:["\x1B[35m","\x1B[39m"],white:["\x1B[37m","\x1B[39m"],gray:["\x1B[90m","\x1B[39m"],bgRed:["\x1B[41m","\x1B[49m"],bgGreen:["\x1B[42m","\x1B[49m"],bgBlue:["\x1B[44m","\x1B[49m"],bgYellow:["\x1B[43m","\x1B[49m"],bgCyan:["\x1B[46m","\x1B[49m"],bgMagenta:["\x1B[45m","\x1B[49m"],bold:["\x1B[1m","\x1B[22m"],italic:["\x1B[3m","\x1B[23m"],underline:["\x1B[4m","\x1B[24m"],dim:["\x1B[2m","\x1B[22m"],inverse:["\x1B[7m","\x1B[27m"],hidden:["\x1B[8m","\x1B[28m"],strikethrough:["\x1B[9m","\x1B[29m"]};var _={primary:"blue",secondary:"cyan",success:"green",warning:"yellow",error:"red",info:"magenta",muted:"gray"};function Hz(){return!0}function Kz(){let z={};z.supportsColor=Hz();function $(Z,Y=[]){let q=Z===""?[]:[...Y,Z],J=function(X){if(!z.supportsColor)return X;let G="",K="";for(let L of q)if(L in _&&_[L]in y){let j=_[L];G+=y[j][0],K=y[j][1]+K}else if(L in y)G+=y[L][0],K=y[L][1]+K;return G+X+K},U=[...Object.keys(y),...Object.keys(_)];for(let X of U)if(!(X in J))Object.defineProperty(J,X,{get(){return $(X,q)}});return J}let Q=[...Object.keys(y),...Object.keys(_)];for(let Z of Q)if(!(Z in z))Object.defineProperty(z,Z,{get(){return $(Z)}});return z}var g=Kz();class Z6 extends o6{name;commands;globalCommand;matchedCommand;matchedCommandName;rawArgs;args;options;showHelpOnExit;showVersionOnExit;enableDidYouMean=!0;signalHandlersSet=!1;isVerbose=!1;isQuiet=!1;isDebug=!1;isNoInteraction=!1;environment;isDryRun=!1;isForce=!1;useEmoji=!0;theme;isNoCache=!1;constructor(z=""){super();this.name=z,this.commands=[],this.rawArgs=[],this.args=[],this.options={},this.globalCommand=new Q6(this),this.globalCommand.usage("<command> [options]")}handleSignals(z){if(this.signalHandlersSet)return this;let $=async(Q)=>{if(console.log(`
|
|
25
25
|
|
|
26
|
-
Received ${Q}, cleaning up...`),z)try{await z()}catch(Z){console.error("Error during cleanup:",Z)}S.exit(0)};return S.on("SIGINT",()=>$("SIGINT")),S.on("SIGTERM",()=>$("SIGTERM")),this.signalHandlersSet=!0,this}didYouMean(z=!0){return this.enableDidYouMean=z,this}verbose(){return this.globalCommand.option("-v, --verbose","Enable verbose output"),this}quiet(){return this.globalCommand.option("-q, --quiet","Suppress non-essential output"),this}debug(){return this.globalCommand.option("--debug","Enable debug mode with detailed error information"),this}noInteraction(){return this.globalCommand.option("-n, --no-interaction","Do not ask any interactive questions (for CI/CD)"),this}env(){return this.globalCommand.option("--env <environment>","Target environment (e.g., production, staging, local)"),this}dryRun(){return this.globalCommand.option("--dry-run","Preview actions without executing them"),this}force(){return this.globalCommand.option("-f, --force","Skip confirmation prompts"),this}emoji(){return this.globalCommand.option("--no-emoji","Disable emoji in output"),this}themes(){return this.globalCommand.option("--theme <theme>","Color theme (default, dracula, nord, solarized, monokai)"),this}cache(){return this.globalCommand.option("--no-cache","Disable caching"),this}usage(z){return this.globalCommand.usage(z),this}command(z,$,Q){if(!Q)Q={};let Z=new
|
|
26
|
+
Received ${Q}, cleaning up...`),z)try{await z()}catch(Z){console.error("Error during cleanup:",Z)}S.exit(0)};return S.on("SIGINT",()=>$("SIGINT")),S.on("SIGTERM",()=>$("SIGTERM")),this.signalHandlersSet=!0,this}didYouMean(z=!0){return this.enableDidYouMean=z,this}verbose(){return this.globalCommand.option("-v, --verbose","Enable verbose output"),this}quiet(){return this.globalCommand.option("-q, --quiet","Suppress non-essential output"),this}debug(){return this.globalCommand.option("--debug","Enable debug mode with detailed error information"),this}noInteraction(){return this.globalCommand.option("-n, --no-interaction","Do not ask any interactive questions (for CI/CD)"),this}env(){return this.globalCommand.option("--env <environment>","Target environment (e.g., production, staging, local)"),this}dryRun(){return this.globalCommand.option("--dry-run","Preview actions without executing them"),this}force(){return this.globalCommand.option("-f, --force","Skip confirmation prompts"),this}emoji(){return this.globalCommand.option("--no-emoji","Disable emoji in output"),this}themes(){return this.globalCommand.option("--theme <theme>","Color theme (default, dracula, nord, solarized, monokai)"),this}cache(){return this.globalCommand.option("--no-cache","Disable caching"),this}usage(z){return this.globalCommand.usage(z),this}command(z,$,Q){if(!Q)Q={};let Z=new jz(z,$||"",Q,this);return Z.globalCommand=this.globalCommand,this.commands.push(Z),Z}option(z,$,Q){return this.globalCommand.option(z,$,Q),this}help(z){return this.globalCommand.option("-h, --help","Display this message"),this.globalCommand.helpCallback=z,this.showHelpOnExit=!0,this}version(z,$="-v, --version"){return this.globalCommand.version(z,$),this.showVersionOnExit=!0,this}example(z){return this.globalCommand.example(z),this}outputHelp(){if(this.matchedCommand)this.matchedCommand.outputHelp();else this.globalCommand.outputHelp()}outputVersion(){this.globalCommand.outputVersion()}setParsedInfo({args:z,options:$},Q,Z){if(this.args=z,this.options=$,Q)this.matchedCommand=Q;if(Z)this.matchedCommandName=Z;return this}unsetMatchedCommand(){this.matchedCommand=void 0,this.matchedCommandName=void 0}showCommandNotFound(z){if(console.log(g.red(`
|
|
27
27
|
✗ Command "${z}" not found.
|
|
28
|
-
`)),this.enableDidYouMean){let $=[];for(let Z of this.commands){if(Z.
|
|
28
|
+
`)),this.enableDidYouMean){let $=[];for(let Z of this.commands){if(Z.displayName)$.push(Z.displayName);if(Z.aliasNames)$.push(...Z.aliasNames)}let Q=b6(z,$);if(Q.length>0)console.log(g.yellow("Did you mean one of these?")),Q.forEach((Z)=>console.log(` ${g.dim("•")} ${this.name} ${Z}`)),console.log("")}console.log(g.dim("Run"),`${this.name} --help`,g.dim("to see all available commands")),S.exit(1)}async parse(z=W6,$={}){let{run:Q=!0,exitOnError:Z=!1}=$;if(Z)try{return await this.parse(z,{run:Q})}catch(X){throw this.handleUsageError(X),X}if(this.rawArgs=z,!this.name)this.name=z[1]?qz(z[1]):"cli";let Y=!0,q=z.slice(2),J=q[0];if(J&&!J.startsWith("-")){for(let X of this.commands)if(X.isMatched(J)){let G=this.mri(q,X);Y=!1;let K={...G,args:G.args.slice(1)};this.setParsedInfo(K,X,J),this.emit(`command:${J}`,X);break}}if(Y){for(let X of this.commands)if(X.name===""){Y=!1;let G=this.mri(q,X);this.setParsedInfo(G,X),this.emit("command:!",X);break}}if(Y){let X=this.mri(z.slice(2));this.setParsedInfo(X)}if(this.options.verbose)this.isVerbose=!0;if(this.options.quiet)this.isQuiet=!0;if(this.options.debug)this.isDebug=!0;if(this.options.noInteraction)this.isNoInteraction=!0;if(this.options.env)this.environment=String(this.options.env);if(this.options.dryRun)this.isDryRun=!0;if(this.options.force)this.isForce=!0;if(this.options.noEmoji!==void 0)this.useEmoji=!this.options.noEmoji;if(this.options.theme)this.theme=String(this.options.theme);if(this.options.noCache!==void 0)this.isNoCache=Boolean(this.options.noCache);if(this.options.help&&this.showHelpOnExit)this.outputHelp(),Q=!1,this.unsetMatchedCommand();if(this.options.version&&this.showVersionOnExit&&this.matchedCommandName==null)this.outputVersion(),Q=!1,this.unsetMatchedCommand();let U={args:this.args,options:this.options};if(Q)await this.runMatchedCommand();if(!this.matchedCommand&&this.args[0]){if(this.emit("command:*"),!(this.listenerCount("command:*")>0))this.showCommandNotFound(this.args[0])}return U}mri(z,$){let Q=[...this.globalCommand.options,...$?$.options:[]],Z=$z(Q),Y=[],q=z.indexOf("--");if(q>-1)Y=z.slice(q+1),z=z.slice(0,q);let J=e6(z,Z),U={_:J._};for(let j of Object.keys(J))if(j!=="_")U[N6(j)]=J[j];let X=U._,G={"--":Y},K=$&&$.config.ignoreOptionDefaultValue?$.config.ignoreOptionDefaultValue:this.globalCommand.config.ignoreOptionDefaultValue,L=Object.create(null);for(let j of Q){if(!K&&j.config.default!==void 0)for(let F of j.names)G[F]=j.config.default;if(Array.isArray(j.config.type)){if(L[j.name]===void 0)L[j.name]={shouldTransform:!0,transformFunction:j.config.type[0]}}}for(let j of Object.keys(U))if(j!=="_"){let F=j.split(".");Zz(G,F,U[j]),Yz(G,L)}return{args:X,options:G}}async run(z=W6){return this.parse(z,{run:!0,exitOnError:!0})}handleUsageError(z){if(!(!!z&&typeof z==="object"&&z.name==="ClappError"&&z.isUsageError!==!1))return;let Z=z,Y=Z.message??"command-line error",q=this.name?`${this.name}: `:"",J=/--help/.test(Y)?"":`
|
|
29
29
|
Run \`${this.name??"cli"} --help\` for usage.`;S.stderr.write(`${q}${Y}${J}
|
|
30
|
-
`),S.exit(Z.exitCode??2)}async runMatchedCommand(){let{args:z,options:$,matchedCommand:Q}=this;if(!Q||!Q.commandAction)return;Q.checkUnknownOptions(),Q.checkOptionValue(),Q.checkRequiredArgs();let Z=[];Q.args.forEach((U,X)=>{if(U.variadic)Z.push(z.slice(X));else Z.push(z[X])}),Z.push($);let Y={command:Q,args:Z,options:$};for(let U of Q.beforeHooks)await U(Y);let q,J=async()=>{let U=Q.commandAction.apply(this,Z);if(U instanceof Promise)q=await U;else q=U;return q};if(Q.middleware.length>0){let U=0,X=async()=>{if(U<Q.middleware.length){let G=Q.middleware[U++];await G({...Y,next:X})}else await J()};await X()}else await J();for(let U of Q.afterHooks)await U(Y);return q}removeSignalHandlers(){if(!this.signalHandlersSet)return this;return S.removeAllListeners("SIGINT"),S.removeAllListeners("SIGTERM"),this.signalHandlersSet=!1,this}destroy(){this.removeSignalHandlers(),this.commands=[],this.rawArgs=[],this.args=[],this.options={},this.matchedCommand=void 0,this.matchedCommandName=void 0,this.removeAllListeners()}}class T6{cache;enabled;cleanupInterval=null;hits=0;misses=0;constructor(){this.cache=new Map,this.enabled=!0,this.startCleanupInterval()}startCleanupInterval(){if(this.cleanupInterval)return;this.cleanupInterval=setInterval(()=>{this.cleanup()},30000),this.cleanupInterval.unref()}stopCleanup(){if(this.cleanupInterval)clearInterval(this.cleanupInterval),this.cleanupInterval=null}isEnabled(){return this.enabled}get(z){if(!this.enabled){this.misses++;return}let $=this.cache.get(z);if(!$){this.misses++;return}if(Date.now()-$.timestamp>$.ttl){this.cache.delete(z),this.misses++;return}return this.hits++,$.value}set(z,$,Q=5000){if(!this.enabled)return;this.cache.set(z,{value:$,timestamp:Date.now(),ttl:Q})}has(z){if(!this.enabled)return!1;let $=this.cache.get(z);if(!$)return!1;if(Date.now()-$.timestamp>$.ttl)return this.cache.delete(z),!1;return!0}delete(z){this.cache.delete(z)}clear(){this.cache.clear()}disable(){this.enabled=!1,this.clear()}enable(){this.enabled=!0}stats(){return{size:this.cache.size,enabled:this.enabled,hits:this.hits,misses:this.misses}}resetStats(){this.hits=0,this.misses=0}keys(){return Array.from(this.cache.keys())}cleanup(){let z=Date.now();for(let[$,Q]of this.cache.entries())if(z-Q.timestamp>Q.ttl)this.cache.delete($)}destroy(){this.stopCleanup(),this.clear(),this.resetStats()}}var
|
|
30
|
+
`),S.exit(Z.exitCode??2)}async runMatchedCommand(){let{args:z,options:$,matchedCommand:Q}=this;if(!Q||!Q.commandAction)return;Q.checkUnknownOptions(),Q.checkOptionValue(),Q.checkRequiredArgs();let Z=[];Q.args.forEach((U,X)=>{if(U.variadic)Z.push(z.slice(X));else Z.push(z[X])}),Z.push($);let Y={command:Q,args:Z,options:$};for(let U of Q.beforeHooks)await U(Y);let q,J=async()=>{let U=Q.commandAction.apply(this,Z);if(U instanceof Promise)q=await U;else q=U;return q};if(Q.middleware.length>0){let U=0,X=async()=>{if(U<Q.middleware.length){let G=Q.middleware[U++];await G({...Y,next:X})}else await J()};await X()}else await J();for(let U of Q.afterHooks)await U(Y);return q}removeSignalHandlers(){if(!this.signalHandlersSet)return this;return S.removeAllListeners("SIGINT"),S.removeAllListeners("SIGTERM"),this.signalHandlersSet=!1,this}destroy(){this.removeSignalHandlers(),this.commands=[],this.rawArgs=[],this.args=[],this.options={},this.matchedCommand=void 0,this.matchedCommandName=void 0,this.removeAllListeners()}}class T6{cache;enabled;cleanupInterval=null;hits=0;misses=0;constructor(){this.cache=new Map,this.enabled=!0,this.startCleanupInterval()}startCleanupInterval(){if(this.cleanupInterval)return;this.cleanupInterval=setInterval(()=>{this.cleanup()},30000),this.cleanupInterval.unref()}stopCleanup(){if(this.cleanupInterval)clearInterval(this.cleanupInterval),this.cleanupInterval=null}isEnabled(){return this.enabled}get(z){if(!this.enabled){this.misses++;return}let $=this.cache.get(z);if(!$){this.misses++;return}if(Date.now()-$.timestamp>$.ttl){this.cache.delete(z),this.misses++;return}return this.hits++,$.value}set(z,$,Q=5000){if(!this.enabled)return;this.cache.set(z,{value:$,timestamp:Date.now(),ttl:Q})}has(z){if(!this.enabled)return!1;let $=this.cache.get(z);if(!$)return!1;if(Date.now()-$.timestamp>$.ttl)return this.cache.delete(z),!1;return!0}delete(z){this.cache.delete(z)}clear(){this.cache.clear()}disable(){this.enabled=!1,this.clear()}enable(){this.enabled=!0}stats(){return{size:this.cache.size,enabled:this.enabled,hits:this.hits,misses:this.misses}}resetStats(){this.hits=0,this.misses=0}keys(){return Array.from(this.cache.keys())}cleanup(){let z=Date.now();for(let[$,Q]of this.cache.entries())if(z-Q.timestamp>Q.ttl)this.cache.delete($)}destroy(){this.stopCleanup(),this.clear(),this.resetStats()}}var N4=new T6;function Vz(){if("FORCE_COLOR"in f.env)return f.env.FORCE_COLOR!=="0";if("NO_COLOR"in f.env||f.env.TERM==="dumb")return!1;if(f.platform==="win32")return!0;return L6.isatty(1)&&L6.isatty(2)}var E6=Vz();function T(z,$){if(!E6)return(Q)=>Q;return(Q)=>z+Q+$}var Fz=T("\x1B[0m","\x1B[0m"),Wz=T("\x1B[31m","\x1B[39m"),Lz=T("\x1B[32m","\x1B[39m"),wz=T("\x1B[33m","\x1B[39m"),Mz=T("\x1B[34m","\x1B[39m"),Oz=T("\x1B[35m","\x1B[39m"),Bz=T("\x1B[36m","\x1B[39m"),Nz=T("\x1B[37m","\x1B[39m"),bz=T("\x1B[90m","\x1B[39m"),Dz=T("\x1B[1m","\x1B[22m"),Tz=T("\x1B[3m","\x1B[23m"),Ez=T("\x1B[4m","\x1B[24m"),xz=T("\x1B[2m","\x1B[22m"),Iz=T("\x1B[7m","\x1B[27m"),Rz=T("\x1B[8m","\x1B[28m"),Az=T("\x1B[9m","\x1B[29m"),Pz=T("\x1B[41m","\x1B[49m"),Cz=T("\x1B[42m","\x1B[49m"),vz=T("\x1B[43m","\x1B[49m"),Sz=T("\x1B[44m","\x1B[49m"),yz=T("\x1B[45m","\x1B[49m"),kz=T("\x1B[46m","\x1B[49m"),hz=T("\x1B[47m","\x1B[49m"),_z=E6,gz={reset:Fz,red:Wz,green:Lz,yellow:wz,blue:Mz,magenta:Oz,cyan:Bz,white:Nz,gray:bz,bold:Dz,italic:Tz,underline:Ez,dim:xz,inverse:Iz,hidden:Rz,strikethrough:Az,bgRed:Pz,bgGreen:Cz,bgYellow:vz,bgBlue:Sz,bgMagenta:yz,bgCyan:kz,bgWhite:hz,isColorSupported:_z},i=gz,mz=["up","down","left","right","space","enter","cancel"],c={actions:new Set(mz),aliases:new Map([["k","up"],["j","down"],["h","left"],["l","right"],["\x03","cancel"],["escape","cancel"]]),messages:{cancel:"Canceled",error:"Something went wrong"}};function x6(z,$){if(typeof z==="string")return c.aliases.get(z)===$;for(let Q of z){if(Q===void 0)continue;if(x6(Q,$))return!0}return!1}function dz(z,$){if(z===$)return[];let Q=z.split(`
|
|
31
31
|
`),Z=$.split(`
|
|
32
|
-
`),Y=[];for(let q=0;q<Math.max(Q.length,Z.length);q++)if(Q[q]!==Z[q])Y.push(q);return Y}var
|
|
33
|
-
`),J=[];for(let U of q){if(
|
|
34
|
-
`)}class Y6{input;output;_abortSignal;rl;opts;_render;_track=!1;_prevFrame="";_subscribers=new Map;_cursor=0;_manualLine="";state="initial";error="";value;userInput="";constructor(z,$=!0){let{input:Q=
|
|
32
|
+
`),Y=[];for(let q=0;q<Math.max(Q.length,Z.length);q++)if(Q[q]!==Z[q])Y.push(q);return Y}var I4=fz.platform.startsWith("win"),w6=Symbol("clapp:cancel");function m(z,$){let Q=z;if(Q.isTTY)Q.setRawMode($)}function nz(z){return z.replace(/\x1b\[[0-9;]*m/g,"")}function lz(z){return nz(z).length}function O6(z,$,Q){if(!$||$<1)return z;let Z=Q?.hard??!1,Y=Q?.trim??!0,q=z.split(`
|
|
33
|
+
`),J=[];for(let U of q){if(lz(U)<=$){J.push(Y?U.trimEnd():U);continue}if(Z){let X="",G=0,K=0;while(K<U.length){let L=U.slice(K).match(/^\x1b\[[0-9;]*m/);if(L){X+=L[0],K+=L[0].length;continue}if(G>=$)J.push(Y?X.trimEnd():X),X="",G=0;X+=U[K],G++,K++}if(X)J.push(Y?X.trimEnd():X)}else J.push(Y?U.trimEnd():U)}return J.join(`
|
|
34
|
+
`)}class Y6{input;output;_abortSignal;rl;opts;_render;_track=!1;_prevFrame="";_subscribers=new Map;_cursor=0;_manualLine="";state="initial";error="";value;userInput="";constructor(z,$=!0){let{input:Q=uz,output:Z=iz,render:Y,signal:q,...J}=z;this.opts=J,this.onKeypress=this.onKeypress.bind(this),this.close=this.close.bind(this),this.render=this.render.bind(this),this._render=Y.bind(this),this._track=$,this._abortSignal=q,this.input=Q,this.output=Z}unsubscribe(){this._subscribers.clear()}setSubscriber(z,$){let Q=this._subscribers.get(z)??[];Q.push($),this._subscribers.set(z,Q)}on(z,$){return this.setSubscriber(z,{cb:$}),this}once(z,$){return this.setSubscriber(z,{cb:$,once:!0}),this}emit(z,...$){let Q=this._subscribers.get(z)??[],Z=[];for(let Y of Q)if(Y.cb(...$),Y.once)Z.push(()=>Q.splice(Q.indexOf(Y),1));for(let Y of Z)Y();return this}prompt(){return new Promise((z)=>{if(this._abortSignal){if(this._abortSignal.aborted)return this.state="cancel",this.close(),z(w6);this._abortSignal.addEventListener("abort",()=>{this.state="cancel",this.close()},{once:!0})}if(this.rl=cz.createInterface({input:this.input,tabSize:2,prompt:"",escapeCodeTimeout:50,terminal:!0}),this.rl.prompt(),this.opts.initialUserInput!==void 0)this._setUserInput(this.opts.initialUserInput,!0);this.input.on("keypress",this.onKeypress),m(this.input,!0),this.output.on("resize",this.render),this.render(),this.once("submit",()=>{this.output.write(v.show),this.output.off("resize",this.render),m(this.input,!1),z(this.value)}),this.once("cancel",()=>{this.output.write(v.show),this.output.off("resize",this.render),m(this.input,!1),z(w6)})})}_isActionKey(z,$){return z==="\t"}_setValue(z){this.value=z,this.emit("value",this.value)}_setUserInput(z,$){if(this.userInput=z??"",this.emit("userInput",this.userInput),$&&this._track&&this.rl)this.rl.write(this.userInput),this._cursor=this.rl.cursor}onKeypress(z,$){if(this._track&&$.name!=="return"){if($.name&&this._isActionKey(z,$))this.rl?.write(null,{ctrl:!0,name:"h"});this._cursor=this.rl?.cursor??0;let Q=$.name==="tab"||$.name==="escape"||$.name==="backspace"||$.name==="delete"||$.name==="enter"||$.name==="return"||$.name&&["up","down","left","right"].includes($.name);if(z&&!Q&&z.length===1&&z>=" ")this._manualLine+=z;else if($.name==="backspace"&&this._manualLine.length>0)this._manualLine=this._manualLine.slice(0,-1);let Z=this._manualLine.length>=(this.rl?.line?.length||0)?this._manualLine:this.rl?.line;this._setUserInput(Z)}if(this.state==="error")this.state="active",this.error="";if($?.name){if(!this._track&&c.aliases.has($.name))this.emit("cursor",c.aliases.get($.name));if(c.actions.has($.name))this.emit("cursor",$.name)}if(z&&(z.toLowerCase()==="y"||z.toLowerCase()==="n"))this.emit("confirm",z.toLowerCase()==="y");if(this.emit("key",z?.toLowerCase(),$),$?.name==="return"){if(this.opts.validate){let Q=this.opts.validate(this.value);if(Q)this.error=Q instanceof Error?Q.message:Q,this.state="error"}if(this.state!=="error")this.state="submit"}if(x6([z,$?.name,$?.sequence],"cancel"))this.state="cancel";if(this.state==="submit"||this.state==="cancel")this.emit("finalize");if(this.render(),this.state==="submit"||this.state==="cancel")this.close()}close(){if(this.input.unpipe(),this.input.removeListener("keypress",this.onKeypress),this.output.write(`
|
|
35
35
|
`),m(this.input,!1),this.rl?.close(),this.rl=void 0,this.emit(`${this.state}`,this.value),this.state==="cancel")setTimeout(()=>{this.unsubscribe()},10);else this.unsubscribe()}restoreCursor(){let z=O6(this._prevFrame,M6.stdout.columns,{hard:!0,trim:!1}).split(`
|
|
36
|
-
`).length-1;this.output.write(v.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(v.hide);else{let $=
|
|
36
|
+
`).length-1;this.output.write(v.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(v.hide);else{let $=dz(this._prevFrame,z);if(this.restoreCursor(),$&&$?.length===1){let Q=$[0];this.output.write(v.move(0,Q)),this.output.write(o.lines(1));let Z=z.split(`
|
|
37
37
|
`);this.output.write(Z[Q]),this._prevFrame=z,this.output.write(v.move(0,Z.length-Q-1));return}if($&&$?.length>1){let Q=$[0];this.output.write(v.move(0,Q)),this.output.write(o.down());let Y=z.split(`
|
|
38
38
|
`).slice(Q);this.output.write(Y.join(`
|
|
39
|
-
`)),this._prevFrame=z;return}this.output.write(o.down())}if(this.output.write(z),this.state==="initial")this.state="active";this._prevFrame=z}}function
|
|
39
|
+
`)),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 D=(z,$)=>oz?z:$,P4=D("◆","*"),C4=D("■","x"),v4=D("▲","x"),S4=D("◇","o"),y4=D("┌","T"),ez=D("│","|"),k4=D("└","—"),h4=D("●",">"),_4=D("○"," "),g4=D("◻","[•]"),f4=D("◼","[+]"),m4=D("◻","[ ]"),d4=D("▪","•"),u4=D("─","-"),i4=D("╮","+"),c4=D("├","+"),n4=D("╯","+"),l4=D("●","•"),p4=D("◆","*"),r4=D("▲","!"),a4=D("■","x");var s4={light:D("─","-"),heavy:D("━","="),block:D("█","#")};function z4(){return`${i.gray(ez)} `}var t4=z4();var I6="0.9.37";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=N.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=N.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=[],L=G.match(/<Key>([^<]+)<\/Key>/g);if(L)for(let B of L){let E=B.replace(/<Key>([^<]+)<\/Key>/,"$1");K.push({Key:E})}let j=G.includes("<IsTruncated>true</IsTruncated>"),F=G.match(/<NextContinuationToken>([^<]+)<\/NextContinuationToken>/),W=F?F[1]:void 0;return{IsTruncated:j,NextContinuationToken:W,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"],L=-1;for(let j=1;j<G.length;j++)if(K.includes(G[j])){L=j;break}if(L>0){let j=G.slice(0,L).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=`/**
|
|
40
40
|
* Constants used throughout the ts-pkgx package
|
|
41
41
|
* This file is auto-generated from ${$}. Do not edit manually.
|
|
42
42
|
* Generated on ${new Date().toISOString()}
|
|
@@ -88,9 +88,9 @@ export const ALL_KNOWN_PACKAGES: readonly string[] = [
|
|
|
88
88
|
${z.map((Y)=>` '${Y}',`).join(`
|
|
89
89
|
`)}
|
|
90
90
|
] as const
|
|
91
|
-
`;V.writeFileSync("src/consts.ts",Z,"utf-8")}function
|
|
92
|
-
Received ${z} signal. Cleaning up resources...`),clearTimeout(j6);try{await r(),console.log("Resources cleaned up. Exiting.")}catch($){console.error("Error during cleanup:",$)}setTimeout(()=>{console.log("Forcing process exit..."),H.exit(0)},1000)}H.on("SIGINT",()=>
|
|
93
|
-
Downloading props files from pkgx/pantry GitHub repo...`);let L=await fetch("https://github.com/pkgxdev/pantry/archive/refs/heads/main.tar.gz");if(L.ok){let j=await L.arrayBuffer(),F=N.join(H.cwd(),"pantry-gh.tar.gz"),W=N.join(H.cwd(),"temp-pantry-gh");if(V.writeFileSync(F,new Uint8Array(j)),console.log(`Downloaded GitHub archive: ${(j.byteLength/1024/1024).toFixed(1)} MB`),V.existsSync(W))V.rmSync(W,{recursive:!0,force:!0});V.mkdirSync(W,{recursive:!0});let B=U("tar",["-xzf",F,"-C",W,"--strip-components=1"],{stdio:"inherit"});await new Promise((w,b)=>{B.on("close",(M)=>M===0?w(M):b(Error(`tar failed: ${M}`))),B.on("error",b)});let E=N.join(W,"projects");if(V.existsSync(E)){let w=0,b=0,M=(O,R)=>{if(!V.existsSync(O))return;for(let A of V.readdirSync(O,{withFileTypes:!0})){let P=N.join(O,A.name),C=N.join(R,A.name);if(A.isDirectory())M(P,C);else if(A.name!=="package.yml")if(V.mkdirSync(R,{recursive:!0}),V.copyFileSync(P,C),V.existsSync(C))b++;else w++}};M(E,Q),console.log(`Props files: ${w+b} synced (${w} new, ${b} updated)`)}if(V.unlinkSync(F),V.existsSync(W))V.rmSync(W,{recursive:!0,force:!0})}else console.log(`Warning: Could not download GitHub archive (${L.status}), props files will be missing`);if(console.log("Cleaned up temporary files"),V.existsSync(Q)){let j=V.readdirSync(Q).filter((F)=>{let W=N.join(Q,F);return V.statSync(W).isDirectory()&&!F.startsWith(".")});console.log(`Final result: ${j.length} projects in ${Q}`)}H.exit(0)}catch($){console.error("Error updating pantry:",$),H.exit(1)}});I.command("generate-consts","Generate or update the consts.ts file with all known packages").option("-s, --source <source>",'Source for packages: "pantry" (default) or "registry"',{default:"pantry"}).option("--pantry-dir <dir>","Directory containing pantry files",{default:"src/pantry"}).option("--validate","Validate a sample of packages (slower but more accurate)").action(async(z)=>{try{let{source:$="pantry",pantryDir:Q="src/pantry",validate:Z=!1}=z;console.log(`\uD83D\uDE80 Generating consts.ts file using ${$} as source...`);let Y=[];if($==="pantry")Y=await
|
|
91
|
+
`;V.writeFileSync("src/consts.ts",Z,"utf-8")}function J4(z){if(!z)return;let Q=z.toLowerCase().replace(/_/g,"-").match(/^(darwin|macos|linux|windows|win32)-(x86-64|x64|amd64|aarch64|arm64)$/),Z=Q?.[1],Y=Q?.[2],q=Z==="macos"||Z==="darwin"?"darwin":Z==="linux"?"linux":Z==="windows"||Z==="win32"?"windows":void 0,J=Y==="x64"||Y==="x86-64"||Y==="amd64"?"x86_64":Y==="arm64"||Y==="aarch64"?"aarch64":void 0;if(!q||!J)throw Error(`Invalid platform "${z}". Use linux-x86_64, linux-aarch64, macos-x86_64, macos-aarch64, or windows-x86_64.`);return{os:q,arch:J}}var I=new Z6("ts-pkgx"),X4=1500000,j6=setTimeout(()=>{console.error("Force exiting after timeout - process may have hung"),H.exit(1)},X4);H.on("exit",()=>{clearTimeout(j6)});async function a6(z){console.log(`
|
|
92
|
+
Received ${z} signal. Cleaning up resources...`),clearTimeout(j6);try{await r(),console.log("Resources cleaned up. Exiting.")}catch($){console.error("Error during cleanup:",$)}setTimeout(()=>{console.log("Forcing process exit..."),H.exit(0)},1000)}H.on("SIGINT",()=>a6("SIGINT"));H.on("SIGTERM",()=>a6("SIGTERM"));function R6(z){let $={};for(let[Q,Z]of Object.entries(P6))if(typeof Z==="string")$[Z]=Q;return $[z]||z}function A6(z){let $=z.map(R6),Q=z.map((Z)=>{let Y=R6(Z);return Y===Z?Z:Y});return{friendlyNames:$,mixedNames:Q}}I.command("fetch [packageName]","Fetch package information from pkgx.dev").option("-a, --all","Fetch all packages").option("-p, --pkg <packageNames>","Comma-separated list of package names to fetch").option("-o, --output-dir <dir>","Directory to save package data",{default:"src/packages"}).option("-c, --cache-dir <dir>","Directory to cache package data",{default:l}).option("-n, --no-cache","Disable caching").option("-e, --cache-expiration <minutes>","Cache expiration time in minutes",{default:q6}).option("-l, --limit <count>","Limit the number of packages to fetch (use with --all)").option("-t, --timeout <ms>","Timeout for network requests in milliseconds",{default:J6}).option("-r, --max-retries <count>","Maximum number of retry attempts for failed requests",{default:3}).option("-j, --json","Save as JSON instead of TypeScript").option("-d, --debug","Enable debug mode (save screenshots)").option("-v, --verbose","Enable verbose output").option("-y, --concurrency <count>","Number of packages to fetch concurrently (default: 8)",{default:8}).option("--output-json","Output results as JSON (for CI integration)").action(async(z,$)=>{let{all:Q,outputDir:Z="src/packages",cacheDir:Y=l,cache:q=!0,cacheExpiration:J=q6,limit:U,timeout:X=J6,json:G=!1,debug:K=!1,verbose:L=!1,concurrency:j=8,pkg:F,outputJson:W=!1}=$,B=N.resolve(H.cwd(),Z);if(!V.existsSync(B))V.mkdirSync(B,{recursive:!0});let E=N.resolve(H.cwd(),Y);if(q){if(!V.existsSync(E))V.mkdirSync(E,{recursive:!0})}try{let w=[],b=[];if(Q){if(!W)console.log("Fetching all packages...");let M={outputDir:Z,cacheDir:Y,cache:q,cacheExpirationMinutes:J,timeout:Number.parseInt(String(X),10),debug:K,limit:U?Number.parseInt(String(U),10):void 0,concurrency:Math.min(Number.parseInt(String(j),10),12),outputJson:W};w=await d6(M),b=[...w]}else if(F){let M=F.split(",").map((O)=>O.trim());if(!W)console.log(`Fetching ${M.length} packages: ${M.join(", ")}`);for(let O of M)try{let R=N.join(Y,`${O.replace(/\//g,"-")}.json`),A=!1;if(q&&V.existsSync(R)){let P=V.statSync(R),C=(Date.now()-P.mtime.getTime())/60000;if(C<J){if(!W)console.log(`Using cached data for ${O} (age: ${Math.round(C)} minutes)`);try{let H6=JSON.parse(V.readFileSync(R,"utf-8"));delete H6.fetchedAt;let s6=p(Z,O,H6);if(L&&!W)console.log(`Using cached data for ${O} (saved to ${s6})`);w.push(O),A=!0;continue}catch{console.warn(`Cache file corrupted for ${O}, will refetch`)}}}if(!A){let P=await U6(O,{timeout:Number.parseInt(String(X),10),debug:K,outputJson:W,cacheDir:Y,cache:q,cacheExpirationMinutes:J});if(P){let{outputPath:C}=X6(O,P.packageInfo,{cacheDir:Y,outputDir:Z,cache:q});if(w.push(O),b.push(O),L&&!W)console.log(`Successfully saved ${O} to ${C}`)}}}catch(R){console.error(`Error processing ${O}:`,R)}}else if(z){if(!W)console.log(`Fetching package: ${z}`);try{let M=N.join(E,`${z.replace(/\//g,"-")}.json`),O=!1;if(q&&V.existsSync(M)){let R=V.statSync(M),A=(Date.now()-R.mtime.getTime())/60000;if(A<J){if(!W)console.log(`Using cached data for ${z} (age: ${Math.round(A)} minutes)`);try{let P=JSON.parse(V.readFileSync(M,"utf-8"));delete P.fetchedAt;let C=p(B,z,P);if(L&&!W)console.log(`Using cached data for ${z} (saved to ${C})`);w.push(z),O=!0}catch{console.warn(`Cache file corrupted for ${z}, will refetch`)}}}if(!O){let R=await U6(z,{timeout:Number.parseInt(String(X),10),debug:K,outputJson:W,cacheDir:Y,cache:q,cacheExpirationMinutes:J});if(R){let{outputPath:A}=X6(z,R.packageInfo,{cacheDir:Y,outputDir:Z,cache:q});if(w.push(z),b.push(z),L&&!W)console.log(`Successfully saved ${z} to ${A}`)}}}catch(M){console.error(`Error processing ${z}:`,M)}}else{if(!W)console.error("Error: Please specify a package name, use --pkg, or use --all");H.exit(1)}if(!G&&w.length>0){let M=await G6();if(!W)console.log(`Successfully generated ${M}`)}if(Q&&w.length>0){let M=m6(B,w);if(M.length>0&&!W)console.log(`Cleaned up ${M.length} stale generated file(s)`)}if(W){let{friendlyNames:M,mixedNames:O}=A6(b),{friendlyNames:R,mixedNames:A}=A6(w),P={success:!0,updatedPackages:b,updatedPackagesFriendly:M,updatedPackagesMixed:O,allProcessedPackages:w,allProcessedFriendly:R,allProcessedMixed:A,totalUpdated:b.length,totalProcessed:w.length,timestamp:new Date().toISOString()};console.log(JSON.stringify(P))}else console.log(`Processed ${w.length} packages.`);clearTimeout(j6),await r(),setTimeout(()=>H.exit(0),1000)}catch(w){if(W){let b={success:!1,error:String(w),timestamp:new Date().toISOString()};console.log(JSON.stringify(b))}else console.error("Error:",w);await r(),setTimeout(()=>H.exit(1),1000)}});I.command("generate-index","Generate TypeScript index file for packages").option("-o, --output-dir <dir>","Directory containing package files",{default:"src/packages"}).action(async(z)=>{let{outputDir:$="src/packages"}=z,Q=N.resolve(H.cwd(),$);if(!V.existsSync(Q))console.error(`Error: Directory ${Q} does not exist`),H.exit(1);try{let Z=await G6();console.log(`Successfully generated ${Z}`),setTimeout(()=>H.exit(0),500)}catch(Z){console.error("Error generating index:",Z),H.exit(1)}});I.command("generate-ts","Generate TypeScript files from cached JSON files").option("--cache-dir <dir>","Directory with cached JSON files",{default:l}).option("--output-dir <dir>","Output directory for TypeScript files",{default:"packages"}).action(async(z)=>{try{console.log("Generating TypeScript files from cached JSON...");let{cacheDir:$,outputDir:Q}=z;if(!V.existsSync($))console.error(`Cache directory ${$} does not exist!`),H.exit(1);if(!V.existsSync(Q))V.mkdirSync(Q,{recursive:!0});let Z=V.readdirSync($).filter((q)=>q.endsWith(".json"));console.log(`Found ${Z.length} JSON files in cache directory`);let Y=0;for(let q of Z)try{let J=V.readFileSync(N.join($,q),"utf-8"),U=JSON.parse(J);delete U.fetchedAt;let X=q.replace(/\.json$/,""),G=p(Q,U.fullPath||U.domain||X,U);console.log(`Generated ${G}`),Y++}catch(J){console.error(`Error processing ${q}:`,J)}console.log(`Successfully generated ${Y} TypeScript files from JSON cache`)}catch($){console.error("Error generating TypeScript files:",$),H.exit(1)}});I.command("generate-aliases","Generate TypeScript aliases file for packages").action(async()=>{try{let z=await u6();console.log(`Successfully generated ${z}`),setTimeout(()=>H.exit(0),500)}catch(z){console.error("Error generating aliases:",z),H.exit(1)}});I.command("generate-docs","Generate comprehensive VitePress documentation for all packages").option("-o, --output-dir <dir>","Output directory for documentation",{default:"docs"}).action(async(z)=>{try{let{outputDir:$="docs"}=z;await i6($),setTimeout(()=>H.exit(0),500)}catch($){console.error("Error generating documentation:",$),H.exit(1)}});I.command("update-pantry","Download and extract the latest pantry.tgz file").option("-d, --pantry-dir <dir>","Directory to extract pantry files",{default:"src/pantry"}).action(async(z)=>{try{let{pantryDir:$="src/pantry"}=z,Q=N.resolve(H.cwd(),$);console.log("Downloading pantry.tgz...");let Z=await fetch("https://s3.amazonaws.com/dist.tea.xyz/pantry.tgz");if(!Z.ok)throw Error(`Failed to download pantry.tgz: ${Z.statusText}`);let Y=await Z.arrayBuffer(),q=N.join(H.cwd(),"pantry.tgz");V.writeFileSync(q,new Uint8Array(Y)),console.log(`Downloaded ${Y.byteLength} bytes`),V.mkdirSync(Q,{recursive:!0});let J=N.join(H.cwd(),"temp-pantry"),{spawn:U}=await import("node:child_process");if(V.existsSync(J))V.rmSync(J,{recursive:!0,force:!0});V.mkdirSync(J,{recursive:!0});let X=U("tar",["-xzf",q,"-C",J,"--strip-components=1"],{stdio:"inherit"});await new Promise((j,F)=>{X.on("close",(W)=>{if(W===0)j(W);else F(Error(`tar extraction failed with code ${W}`))}),X.on("error",F)});let G=N.join(J,"projects");if(V.existsSync(G)){let j=V.readdirSync(G),F=0,W=0,B=(E,w)=>{if(!V.existsSync(w))V.mkdirSync(w,{recursive:!0});for(let b of V.readdirSync(E,{withFileTypes:!0})){let M=N.join(E,b.name),O=N.join(w,b.name);if(b.isDirectory())B(M,O);else if(b.name==="package.yml")if(V.existsSync(O))W++;else V.renameSync(M,O),F++;else if(!V.existsSync(O))V.renameSync(M,O)}};console.log(`Merging ${j.length} projects from upstream...`);for(let E of j){let w=N.join(G,E),b=N.join(Q,E);if(V.statSync(w).isDirectory())B(w,b)}console.log(`Merged upstream pantry: ${F} new packages added, ${W} existing preserved`)}else console.log("Warning: No projects directory found in extracted pantry");if(V.unlinkSync(q),V.existsSync(J))V.rmSync(J,{recursive:!0,force:!0});console.log(`
|
|
93
|
+
Downloading props files from pkgx/pantry GitHub repo...`);let L=await fetch("https://github.com/pkgxdev/pantry/archive/refs/heads/main.tar.gz");if(L.ok){let j=await L.arrayBuffer(),F=N.join(H.cwd(),"pantry-gh.tar.gz"),W=N.join(H.cwd(),"temp-pantry-gh");if(V.writeFileSync(F,new Uint8Array(j)),console.log(`Downloaded GitHub archive: ${(j.byteLength/1024/1024).toFixed(1)} MB`),V.existsSync(W))V.rmSync(W,{recursive:!0,force:!0});V.mkdirSync(W,{recursive:!0});let B=U("tar",["-xzf",F,"-C",W,"--strip-components=1"],{stdio:"inherit"});await new Promise((w,b)=>{B.on("close",(M)=>M===0?w(M):b(Error(`tar failed: ${M}`))),B.on("error",b)});let E=N.join(W,"projects");if(V.existsSync(E)){let w=0,b=0,M=(O,R)=>{if(!V.existsSync(O))return;for(let A of V.readdirSync(O,{withFileTypes:!0})){let P=N.join(O,A.name),C=N.join(R,A.name);if(A.isDirectory())M(P,C);else if(A.name!=="package.yml")if(V.mkdirSync(R,{recursive:!0}),V.copyFileSync(P,C),V.existsSync(C))b++;else w++}};M(E,Q),console.log(`Props files: ${w+b} synced (${w} new, ${b} updated)`)}if(V.unlinkSync(F),V.existsSync(W))V.rmSync(W,{recursive:!0,force:!0})}else console.log(`Warning: Could not download GitHub archive (${L.status}), props files will be missing`);if(console.log("Cleaned up temporary files"),V.existsSync(Q)){let j=V.readdirSync(Q).filter((F)=>{let W=N.join(Q,F);return V.statSync(W).isDirectory()&&!F.startsWith(".")});console.log(`Final result: ${j.length} projects in ${Q}`)}H.exit(0)}catch($){console.error("Error updating pantry:",$),H.exit(1)}});I.command("generate-consts","Generate or update the consts.ts file with all known packages").option("-s, --source <source>",'Source for packages: "pantry" (default) or "registry"',{default:"pantry"}).option("--pantry-dir <dir>","Directory containing pantry files",{default:"src/pantry"}).option("--validate","Validate a sample of packages (slower but more accurate)").action(async(z)=>{try{let{source:$="pantry",pantryDir:Q="src/pantry",validate:Z=!1}=z;console.log(`\uD83D\uDE80 Generating consts.ts file using ${$} as source...`);let Y=[];if($==="pantry")Y=await Z4(Q);else if($==="registry")Y=await Y4(Z);else console.error('Invalid source. Use "pantry" or "registry"'),H.exit(1);await q4(Y,$),console.log("✅ Successfully updated consts.ts"),console.log(`\uD83D\uDCCA Total packages: ${Y.length}`);let q=new Date().toISOString(),J=`Generated from ${$} at ${q}
|
|
94
94
|
Total packages: ${Y.length}
|
|
95
95
|
|
|
96
96
|
${Y.join(`
|
|
@@ -101,16 +101,18 @@ Conflicts found:`),j.conflicts.forEach((W)=>{console.log(` ${W.package}: ${W.ve
|
|
|
101
101
|
\uD83D\uDE80 Install commands:`),console.log(`
|
|
102
102
|
Using pkgx:`);let W=j.uniquePackages.map((B)=>`+${B}`).join(" ");console.log(`sh <(curl https://pkgx.sh) ${W} -- $SHELL -i`),console.log(`
|
|
103
103
|
Or install individually:`),j.uniquePackages.forEach((B)=>{console.log(`pkgx +${B}`)})}if(Object.values(j.osSpecificDeps).reduce((W,B)=>W+B.length,0)>0)console.log(`
|
|
104
|
-
\uD83D\uDDA5️ OS-specific dependencies:`),Object.entries(j.osSpecificDeps).forEach(([W,B])=>{if(B.length>0)console.log(` ${W}: ${B.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-
|
|
104
|
+
\uD83D\uDDA5️ OS-specific dependencies:`),Object.entries(j.osSpecificDeps).forEach(([W,B])=>{if(B.length>0)console.log(` ${W}: ${B.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-m49mfgmc.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:
|
|
105
105
|
${Z.map((Y)=>` - "${Y}"`).join(`
|
|
106
|
-
`)}`);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-
|
|
106
|
+
`)}`);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-p7t5qrmj.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(`
|
|
107
107
|
\uD83D\uDE80 Generating Zig package aliases...`),await Q(Z,J);console.log(`
|
|
108
|
-
✅ Zig code generation complete!`),H.exit(0)}catch($){console.error("Error generating Zig definitions:",$),H.exit(1)}});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-
|
|
108
|
+
✅ Zig code generation complete!`),H.exit(0)}catch($){console.error("Error generating Zig definitions:",$),H.exit(1)}});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-j8ky5qj1.js"),Q=$();if(z.json)console.log(JSON.stringify({success:!0,apps:Q,total:Q.length}));else{console.log(`
|
|
109
109
|
Installed Desktop Apps (${Q.length}):
|
|
110
|
-
`),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-
|
|
110
|
+
`),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-j8ky5qj1.js");if(!z.json)console.log("Checking desktop apps for updates...");let Q=$(),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(`
|
|
111
111
|
Outdated Apps (${Z.length}):
|
|
112
112
|
`),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(`
|
|
113
113
|
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(`
|
|
114
|
-
${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 via Homebrew").action(async(z)=>{try{let{APP_CASK_MAP:$,getCaskToken:Q,updateApp:Z}=await import("../chunk-
|
|
114
|
+
${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 via Homebrew").action(async(z)=>{try{let{APP_CASK_MAP:$,getCaskToken:Q,updateApp:Z}=await import("../chunk-j8ky5qj1.js"),Y=$[z]||Q(z);if(!Y)console.error(`No Homebrew cask found for "${z}"`),H.exit(1);console.log(`Updating ${z} (cask: ${Y})...`);let q=await Z(Y);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(`
|
|
115
115
|
✓ ${J.name}@${J.version}`),console.log(` installed to: ${J.installPath}`),J.globalLinks&&J.globalLinks.length>0){if(console.log(` linked into: ${N.dirname(J.globalLinks[0])}`),!H.env.PATH?.split(N.delimiter).includes(N.dirname(J.globalLinks[0])))console.log(`
|
|
116
|
-
⚠ ${N.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: ${S6()}`),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.
|
|
116
|
+
⚠ ${N.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: ${S6()}`),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(`
|
|
117
|
+
✓ 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(`
|
|
118
|
+
Pushing ${q.repository}:${q.tag} → ${c6} ...`);let J=await l6({repository:q.repository,tag:q.tag,registry:q.implicitRegistry?void 0:`https://${q.registry}`,configBytes:Buffer.from(Y.configBytes),configDigest:Y.configDigest,layers:Y.layers.map((U)=>({digest:U.digest,path:U.path,size:U.size})),manifestBytes:Buffer.from(Y.manifestBytes),manifestMediaType:Y.manifestMediaType,quiet:$.quiet});console.log(`✓ Pushed ${J.ref} (${J.digest})`)}H.exit(0)}catch(Q){console.error("Build failed:",Q instanceof Error?Q.message:Q),H.exit(1)}});I.command("container:generate [outDir]","Generate a Dockerfile + .freezer (default outDir: storage/framework)").alias("freeze").option("--base <image>","Base image (default: oven/bun:1.3.10)").option("--workdir <dir>","Working directory in the image (default: /app)").option("--install <cmd>","Install command (default: bun install --frozen-lockfile)").option("--build <cmd>","Optional build command run after install").option("--start <cmd>","Start command (default: bun start)").option("--port <port>","Exposed port (default: 3000)").option("--force","Overwrite existing files").action(async(z,$)=>{try{let Q=r6({outDir:z??"storage/framework",baseImage:$.base,workdir:$.workdir,installCommand:$.install,buildCommand:$.build,startCommand:$.start?$.start.split(/\s+/):void 0,port:$.port?Number($.port):void 0,force:$.force});console.log(`${Q.wroteDockerfile?"✓ wrote":"• kept"} ${Q.dockerfilePath}`),console.log(`${Q.wroteFreezer?"✓ wrote":"• kept"} ${Q.freezerPath}`),H.exit(0)}catch(Q){console.error("Generate failed:",Q instanceof Error?Q.message:Q),H.exit(1)}});I.help();I.version(I6);var H0=I.parse();if(H.argv.length<=2||H.argv.includes("--help")||H.argv.includes("-h"))H.exit(0);
|
|
@@ -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 oc,o as pc,p as qc,r as rc};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
import{
|
|
1
|
+
import{Ab as n,nb as a,ob as b,pb as c,qb as d,rb as e,sb as f,tb as g,ub as h,vb as i,wb as j,xb as k,yb as l,zb as m}from"./chunk-c4w18zcv.js";import"./chunk-py3ymxjf.js";import"./chunk-hgz8sje2.js";import"./chunk-x2rx3ach.js";import"./chunk-2f67zesz.js";export{i as startPeriodicCleanup,h as setupCleanupHandlers,l as scanPantryPackages,d as saveToCacheAndOutput,a as savePackageAsTypeScript,m as readPantryPackageInfo,c as getValidCachedPackage,f as fetchPkgxProjects,n as fetchPantryPackageWithMetadata,g as fetchPantryPackage,k as fetchAndSavePackage,j as fetchAndSaveAllPackages,e as cleanupBrowserResources,b as cleanStaleOutputFiles};
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
import{fc as b,gc as c,ic as d}from"./chunk-qa16aaq5.js";import{jc as a}from"./chunk-hgz8sje2.js";import"./chunk-2f67zesz.js";d();export{b as pantry,c as packages,a as aliases};
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import{
|
|
1
|
+
import{jc as y,kc as H}from"./chunk-hgz8sje2.js";import{rc as E}from"./chunk-2f67zesz.js";H();import x from"node:fs";import S from"node:path";import A from"node:process";var O=S.join(A.cwd(),"github-rate-limit.json"),w=S.join(A.cwd(),"github-cache.json"),R=10,W=3600000;function F(X){try{let J=X.get("X-RateLimit-Remaining"),$=X.get("X-RateLimit-Reset"),Z=X.get("X-RateLimit-Limit");if(J&&$&&Z){let V=new Date(Number($)*1000),Y={remaining:Number(J),limit:Number(Z),resetTime:V.toISOString(),resetTimestamp:Number($)*1000,lastUpdated:new Date().toISOString()};x.writeFileSync(O,JSON.stringify(Y,null,2)),console.warn(`GitHub API rate limit info saved to ${O}`),console.warn(`Rate limit: ${J}/${Z} remaining, resets at ${V.toLocaleString()}`)}}catch(J){console.error("Failed to save GitHub rate limit info:",J)}}function M(){try{if(!x.existsSync(O))return!0;let X=JSON.parse(x.readFileSync(O,"utf8"));if(!X||typeof X.resetTimestamp!=="number"||typeof X.remaining!=="number")return!0;let J=Date.now();if(J>=X.resetTimestamp)return!0;if(X.remaining<=R){let $=new Date(X.resetTimestamp);console.warn(`GitHub API rate limit almost exhausted (${X.remaining}/${X.limit} remaining). Preserving remaining calls until reset at ${$.toLocaleString()}`);let Z=X.resetTimestamp-J;if(Z<300000)console.error(`Waiting ${Math.round(Z/1000)} seconds for rate limit to reset...`);return!1}return!0}catch(X){return console.error("Error checking GitHub rate limit:",X),!0}}function T(){try{if(!x.existsSync(w))return null;let X=JSON.parse(x.readFileSync(w,"utf8")),J=Date.now();if(X.timestamp&&J-X.timestamp<W){let $=new Date(X.timestamp+W);if(console.error(`Using GitHub API cache from ${new Date(X.timestamp).toLocaleString()}, expires at ${$.toLocaleString()}`),Array.isArray(X.packages))return console.error(`Using ${X.packages.length} packages from GitHub API cache`),X.packages;else if(Array.isArray(X.data))return console.error(`Using ${X.data.length} packages from GitHub API cache (old format)`),X.data;else return console.error("GitHub API cache has invalid format, fetching fresh data"),null}return console.error(`GitHub API cache expired (older than ${W/1000/60} minutes), fetching fresh data`),null}catch(X){return console.error("Error reading GitHub cache:",X),null}}function U(X){try{let J={timestamp:Date.now(),packages:X};x.writeFileSync(w,JSON.stringify(J,null,2)),console.error(`GitHub API package list cached to ${w} (${X.length} packages)`)}catch(J){console.error("Error saving GitHub cache:",J)}}async function f(X=0,J){if(J){if(J.startsWith("/")||J.includes("/bin/"))return console.error(`Error: '${J}' appears to be a path, not a valid package name.`),[];return console.log(`Single package mode: only fetching '${J}'`),[J]}console.log("Fetching package list from GitHub API...");let $=T();if($)return console.log("Using cached package list, no GitHub API calls needed"),X>0?$.slice(0,X):$;try{if(!M()){console.warn("GitHub API rate limit preventing request - using cached data or hardcoded list");let z=["node","bun.sh","python.org","go.dev","rust-lang.org","deno.land","ruby-lang.org","php.net","dart.dev","postgresql.org","mozilla.org","mysql.com","nginx.org","redis.io","mongodb.com"];return U(z),X>0?z.slice(0,X):z}console.error("No valid cache found, making GitHub API requests");let Z=await fetch("https://api.github.com/repos/pkgxdev/pantry/contents/projects",{headers:{Accept:"application/vnd.github.v3+json","User-Agent":"ts-pantry"}});if(F(Z.headers),!Z.ok)throw Error(`GitHub API responded with ${Z.status}: ${Z.statusText}`);let Y=(await Z.json()).filter((z)=>z.type==="dir").map((z)=>z.name);console.error(`Found ${Y.length} base projects on GitHub`);let q=[...Y],K=["agwa.name","acorn.io","apache.org","aquasecurity.github.io","aws.amazon.com"],C=["alsa-project.org/alsa-lib","apple.com/remote_cmds","android.com/cmdline-tools","anchore.com/syft","argoproj.github.io/cd","argoproj.github.io/workflows","amrdeveloper.github.io/GQL","authzed.com/spicedb","arduino.github.io/arduino-cli","aomedia.googlesource.com/aom","akuity.io/kargo","asciinema.org/agg","ansible.com/ansible-lint","astral.sh/ruff","astral.sh/uv","apollographql.com/rover","brxken128.github.io/dexios","cedarpolicy.com/cli","blake2.net/libb2"];for(let z of K){if(!M()){console.error(`Skipping nested path check for ${z} due to rate limit concerns`);continue}try{console.error(`Checking for nested projects in ${z}...`);let Q=await fetch(`https://api.github.com/repos/pkgxdev/pantry/contents/projects/${z}`,{headers:{Accept:"application/vnd.github.v3+json","User-Agent":"ts-pantry"}});if(F(Q.headers),!Q.ok){console.error(`Failed to fetch nested projects for ${z}: ${Q.status}`);continue}let B=(await Q.json()).filter((v)=>v.type==="dir").map((v)=>`${z}/${v.name}`);console.error(`Found ${B.length} nested projects for ${z}: ${B.join(", ")}`),q.push(...B)}catch(Q){console.error(`Error fetching nested projects for ${z}:`,Q)}}for(let z of C)if(!q.includes(z))console.error(`Adding known nested project: ${z}`),q.push(z);U(q),console.error(`Cached ${q.length} packages for future use (valid for ${W/60000} minutes)`);let D=X>0?q.slice(0,X):q;return console.error(`Total of ${q.length} projects found (including nested paths)`),D}catch(Z){return console.error("Error fetching package list from GitHub:",Z),[]}}async function b(){try{let{fetchPkgxProjects:X}=await import("./chunk-32p4tmkp.js"),J=await X();if(console.error(`Found ${J.length} projects`),J.length>0){if(console.error("First 10 projects:"),J.slice(0,10).forEach(($)=>{console.error(`- ${$.name}`)}),J.length>10)console.error(`... and ${J.length-10} more`)}return J}catch(X){return console.error("Failed to fetch projects:",X),[]}}function G(X,J=2){if(X===null)return"null";if(X===void 0)return"undefined";if(Array.isArray(X)){if(X.length===0)return"[]";if(X.every((Z)=>typeof Z==="string")){if(X.length===1)return`[${JSON.stringify(X[0])}]`;let Z=X.map((V)=>JSON.stringify(V)).join(`,
|
|
2
2
|
${" ".repeat(J)}`);return`[
|
|
3
3
|
${" ".repeat(J)}${Z}
|
|
4
4
|
${" ".repeat(J-2)}]`}let $=X.map((Z)=>G(Z,J+2)).join(`,
|
|
@@ -8,4 +8,4 @@ ${" ".repeat(J)}]`}if(typeof X==="object")return`{
|
|
|
8
8
|
${Object.entries(X).map(([Z,V])=>{let Y=typeof V==="string"?JSON.stringify(V):G(V,J+2);return`${" ".repeat(J)}${Z}: ${Y}`}).join(`,
|
|
9
9
|
`)}
|
|
10
10
|
}`;return String(X)}function g(X){if(X.includes("/")){let J=X.split("/"),$=J[0],Z=J.slice(1),V=$.replace(/[.-]/g,""),Y=Z.map((K)=>K.replace(/[.-]/g,"")),q="";if(Y.length>0){let K=Y[0];if(V.includes(K.toLowerCase()))q="";else if(Y.length===1)q=K;else q=K}return`${V}${q}`.toLowerCase()}return X.replace(/[.-]/g,"").toLowerCase()}function j(X){if(X.includes("/")){let J=X.split("/"),$=J[0],Z=J.slice(1).join("/"),V=$.replace(/\./g,""),Y=Z.replace(/\//g,"-");return`${V}-${Y}`.toLowerCase()}return X.replace(/\./g,"").toLowerCase()}function P(X){if(X.includes("-")){let $=X.indexOf("-"),Z=X.substring(0,$),V=X.substring($+1),Y=Z;if(Y.endsWith("org")&&!Y.endsWith(".org"))Y=Y.replace(/org$/,".org");if(Y.endsWith("io")&&!Y.endsWith(".io"))Y=Y.replace(/io$/,".io");if(Y.endsWith("com")&&!Y.endsWith(".com"))Y=Y.replace(/com$/,".com");if(Y.endsWith("sh")&&!Y.endsWith(".sh"))Y=Y.replace(/sh$/,".sh");if(Y.endsWith("dev")&&!Y.endsWith(".dev"))Y=Y.replace(/dev$/,".dev");if(Y.endsWith("net")&&!Y.endsWith(".net"))Y=Y.replace(/net$/,".net");if(Y.endsWith("name")&&!Y.endsWith(".name"))Y=Y.replace(/name$/,".name");return`${Y}/${V}`}let J=X;if(J.endsWith("org")&&!J.endsWith(".org"))J=J.replace(/org$/,".org");if(J.endsWith("io")&&!J.endsWith(".io"))J=J.replace(/io$/,".io");if(J.endsWith("com")&&!J.endsWith(".com"))J=J.replace(/com$/,".com");if(J.endsWith("sh")&&!J.endsWith(".sh"))J=J.replace(/sh$/,".sh");if(J.endsWith("dev")&&!J.endsWith(".dev"))J=J.replace(/dev$/,".dev");if(J.endsWith("net")&&!J.endsWith(".net"))J=J.replace(/net$/,".net");if(J.endsWith("land")&&!J.endsWith(".land"))J=J.replace(/land$/,".land");return J}function N(X){let[J]=X.split("@");if(y[J])return y[J];if(J.includes("."))return J;return`${J}.org`}function p(){return{...y}}function h(X){let[J]=X.split("@");return J in y}function l(X){return N(X)}
|
|
11
|
-
export{F as
|
|
11
|
+
export{F as Bb,M as Cb,T as Db,U as Eb,f as Fb,b as Gb,G as Hb,g as Ib,j as Jb,P as Kb,N as Lb,p as Mb,h as Nb,l as Ob};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
import{
|
|
1
|
+
import{Bb as a,Cb as b,Db as c,Eb as d,Fb as e,Gb as f,Hb as g,Ib as h,Jb as i,Kb as j,Lb as k,Mb as l,Nb as m,Ob as n}from"./chunk-8se0rpx2.js";import"./chunk-hgz8sje2.js";import"./chunk-2f67zesz.js";export{b as shouldProceedWithGitHubRequest,a as saveRateLimitInfo,d as saveGitHubPackageCache,k as resolvePackageDomain,f as logPkgxProjects,m as isKnownAlias,j as guessOriginalDomain,l as getPackageAliases,c as getGitHubPackageCache,n as getCanonicalDomain,g as formatObjectWithoutQuotedKeys,e as fetchPackageListFromGitHub,h as convertDomainToVarName,i as convertDomainToFileName};
|