ts-pantry 0.9.1 → 0.9.2
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 +3 -3
- package/dist/{chunk-wkz4gh63.js → chunk-09bjpt47.js} +1 -1
- package/dist/{chunk-g9jqgmw3.js → chunk-0gq0dg2k.js} +1 -1
- package/dist/{chunk-j5xw9hq4.js → chunk-gb3fek73.js} +2 -2
- package/dist/{chunk-ea7xjekb.js → chunk-hapft2pb.js} +1 -1
- package/dist/{chunk-6mas1ebe.js → chunk-jv5kccdc.js} +1 -1
- package/dist/packages/opencodeai.d.ts +1 -1
- package/dist/src/index.js +1 -1
- package/package.json +1 -1
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
import{Ab as T,zb as I}from"./chunk-
|
|
1
|
+
import{Ab as T,zb as I}from"./chunk-09bjpt47.js";import{Bb as _,Cb as w}from"./chunk-g7ewnsa6.js";import{Gb as y,Jb as M}from"./chunk-sd8qadhd.js";w();async function Y(){try{let{packages:E}=await import("./chunk-hapft2pb.js");return E}catch{return{}}}async function F(E){let q=Z(E);if(!q)return null;let z=(await Y())[q];if(!z||!z.versions||z.versions.length===0)return null;return z.versions[0]}async function x(E){let q=Z(E);if(!q)return[];let z=(await Y())[q];if(!z||!z.versions)return[];return[...z.versions]}function f(E={}){let q=["8.4.11","8.3.14","8.2.26","8.1.30"],H=E.fallbackVersions||q;try{let{pantry:z}=(T(),y(I)),G=z.phpnet||z.php;if(!G||!G.versions||G.versions.length===0)return H;let K=[...G.versions],J=E.supportedBranches||D(K),Q=new Map;for(let R of K){let[W,X]=R.split(".");if(!W||!X)continue;let U=`${W}.${X}`;if(J.includes(U)&&!Q.has(U))Q.set(U,R)}let O=J.map((R)=>Q.get(R)).filter(Boolean);return O.length>0?O:H}catch{return H}}function D(E){let q=new Map;for(let z of E){let[G,K]=z.split(".");if(!G||!K)continue;let J=`${G}.${K}`;q.set(J,(q.get(J)||0)+1)}return Array.from(q.keys()).filter((z)=>{let[G]=z.split(".");return G==="8"&&q.get(z)>3}).sort((z,G)=>{let[K,J]=z.split(".").map(Number),[Q,O]=G.split(".").map(Number);if(K!==Q)return Q-K;return O-J}).slice(0,4)}async function C(E,q){return(await x(E)).includes(q)}async function P(E,q="latest"){if(q==="latest")return await F(E);let H=await x(E);if(H.length===0)return null;if(H.includes(q))return q;if(q.startsWith("^")){let G=q.slice(1).split(".")[0];return H.filter((J)=>J.startsWith(`${G}.`))[0]||null}if(q.startsWith("~")){let z=q.slice(1),[G,K]=z.split("."),J=`${G}.${K}.`;return H.filter((O)=>O.startsWith(J))[0]||null}if(q.startsWith(">=")){let z=q.slice(2);return H.filter((K)=>K>=z)[0]||null}return await F(E)}async function $(E){let q=Z(E);if(!q)return null;let z=(await Y())[q];if(!z)return null;let G=await F(E);if(!G)return null;return{name:String(E),domain:q,description:z.description||"",latestVersion:G,totalVersions:z.versions?.length||0,programs:[...z.programs||[]],dependencies:[...z.dependencies||[]],companions:[...z.companions||[]],versions:[...z.versions||[]]}}function Z(E){let q=String(E);if(q in _){let H=_[q];return L(H)}return L(q)}function L(E){if(E.includes("/")){let[q,...H]=E.split("/"),z=H.join("/"),G=q.replace(/\./g,""),K=z.replace(/[/\-_.]/g,"").toLowerCase();return`${G}${K}`.toLowerCase()}return E.replace(/[.-]/g,"").toLowerCase()}async function h(E){let q=[],H=E.toLowerCase();for(let[G,K]of Object.entries(_))if(G.toLowerCase().includes(H)){let J=await $(G);if(J)q.push(J)}let z=await Y();for(let[G,K]of Object.entries(z))if(G.toLowerCase().includes(H)||K.description?.toLowerCase().includes(H)){let J=await $(G);if(J&&!q.some((Q)=>Q.domain===G))q.push(J)}return q}async function N(E){let q=[],H=await Y();for(let z of Object.keys(H))if(E.test(z)){let G=await $(z);if(G)q.push(G)}return q}async function j(E=10){let q=[],H=await Y();for(let z of Object.keys(H)){let G=await $(z);if(G&&G.totalVersions>=E)q.push(G)}return q.sort((z,G)=>G.totalVersions-z.totalVersions)}async function S(E=50){return(await j(5)).slice(0,E)}async function V(E){try{let q=E.lastIndexOf("@");if(q===-1){let J=E;if(!Z(J))return{isValid:!1,error:`Unknown package: ${J}`};return{isValid:!0,packageName:J}}let H=E.slice(0,q),z=E.slice(q+1);if(!Z(H))return{isValid:!1,error:`Unknown package: ${H}`};if(z==="latest")return{isValid:!0,packageName:H,version:z};if(!await C(H,z))return{isValid:!1,packageName:H,version:z,error:`Version ${z} not available for package ${H}`};return{isValid:!0,packageName:H,version:z}}catch{return{isValid:!1,error:`Invalid package specification: ${E}`}}}function d(E,q){if(!q||q.length===0)return null;let H=[...q].sort((O,R)=>{let W=O.split(".").map(Number),X=R.split(".").map(Number);for(let U=0;U<Math.max(W.length,X.length);U++){let A=W[U]||0,B=X[U]||0;if(A!==B)return B-A}return 0}),z=E.replace(/^[\^~]/,""),G=z.split("."),K=Number.parseInt(G[0],10),J=Number.parseInt(G[1]||"0",10);if(E.startsWith("^"))return H.filter((R)=>{return Number.parseInt(R.split(".")[0],10)===K})[0]||null;if(E.startsWith("~"))return H.filter((R)=>{let W=R.split("."),X=Number.parseInt(W[0],10),U=Number.parseInt(W[1]||"0",10);return X===K&&U===J})[0]||null;if(H.includes(z))return z;return H.filter((O)=>O.startsWith(z))[0]||H[0]||null}
|
|
2
2
|
export{F as kb,x as lb,f as mb,C as nb,P as ob,$ as pb,Z as qb,h as rb,N as sb,j as tb,S as ub,V as vb,d as wb};
|
|
@@ -1,10 +1,10 @@
|
|
|
1
|
-
import{_a as v,ab as Rw}from"./chunk-7twbwq9b.js";import{kb as Nw,lb as uw,ob as Dw,pb as qw,rb as Pw,tb as hw,ub as vw,vb as Hw}from"./chunk-
|
|
1
|
+
import{_a as v,ab as Rw}from"./chunk-7twbwq9b.js";import{kb as Nw,lb as uw,ob as Dw,pb as qw,rb as Pw,tb as hw,ub as vw,vb as Hw}from"./chunk-0gq0dg2k.js";import{Ab as mQ}from"./chunk-09bjpt47.js";import{Bb as o,Cb as QQ}from"./chunk-g7ewnsa6.js";import{Fb as gw}from"./chunk-04eamjdw.js";import{Jb as m}from"./chunk-sd8qadhd.js";import $Q from"node:process";QQ();import Aw from"node:process";function xw(w){return w in o}function RQ(w){return w.includes(".")}function pQ(w){return xw(w)||RQ(w)}function oQ(w){return["darwin","linux","windows"].includes(w)}function sQ(w){return["x86_64","aarch64","armv7l","i686"].includes(w)}function Vw(){return Object.keys(o)}function rQ(){return Object.values(o)}function tQ(w){if(xw(w))return{originalName:w,resolvedDomain:o[w],isAlias:!0};return{originalName:w,resolvedDomain:w,isAlias:!1}}function nQ(w){let Q=w.lastIndexOf("@");if(Q===-1)return{name:w};let R=w.slice(0,Q),$=w.slice(Q+1);return{name:R,version:$,versionSpec:$}}function iQ(w,Q){return Q?`${w}@${Q}`:w}function n(){let w=Aw.platform,Q=Aw.arch,R,$,q=!0;switch(w){case"darwin":R="darwin";break;case"linux":R="linux";break;case"win32":R="windows";break;default:R="linux",q=!1}switch(Q){case"x64":$="x86_64";break;case"arm64":$="aarch64";break;case"arm":$="armv7l";break;case"ia32":$="i686";break;default:$="x86_64",q=!1}return{platform:R,architecture:$,isSupported:q}}function eQ(w,Q="latest",R){let $=R||n(),q;switch($.platform){case"darwin":q="tar.xz";break;case"linux":q="tar.xz";break;case"windows":q="zip";break;default:q="tar.xz"}return{packageName:w,version:Q,platform:$.platform,architecture:$.architecture,format:q}}var aQ={LATEST:"latest",ANY:"*"},yw={RUNTIME:["nodejs.org","python.org","go.dev","rust-lang.org"],BUILD_TOOLS:["cmake.org","ninja-build.org","gradle.org","maven.apache.org"],DATABASES:["postgresql.org","mysql.com","redis.io","mongodb.com"],EDITORS:["neovim.io","vim.org","code.visualstudio.com"],CLI_TOOLS:["cli.github.com","curl.se","wget.gnu.org","jq.dev"]};function wR(w){return yw[w]}function QR(w,Q){return yw[Q].includes(w)}function RR(w){return w}function $R(w,Q){return[w,Q]}function XR(w){return w}async function JR(w){try{let Q=await qw(w);if(!Q)return{success:!1,error:`Package '${w}' not found. Use 'search' to find available packages.`};return{success:!0,data:Q}}catch(Q){return{success:!1,error:`Failed to get package info: ${Q}`}}}async function WR(w){try{if(!w||w.trim().length===0)return{success:!1,error:"Search term cannot be empty"};return{success:!0,data:await Pw(w.trim())}}catch(Q){return{success:!1,error:`Search failed: ${Q}`}}}async function zR(w=20){try{return{success:!0,data:(await hw(5)).slice(0,w)}}catch(Q){return{success:!1,error:`Failed to list popular packages: ${Q}`}}}async function BR(w=20){try{return{success:!0,data:await vw(w)}}catch(Q){return{success:!1,error:`Failed to list active packages: ${Q}`}}}function KR(){try{return{success:!0,data:Vw()}}catch(w){return{success:!1,error:`Failed to list aliases: ${w}`}}}async function UR(w){try{let Q=await Hw(w);if(!Q.isValid)return{success:!1,error:Q.error};return{success:!0,data:{packageName:Q.packageName,version:Q.version,isValid:!0}}}catch(Q){return{success:!1,error:`Validation failed: ${Q}`}}}async function GR(w){try{let Q=await Hw(w);if(!Q.isValid)return{success:!1,error:Q.error};let R=Q.packageName,$=Q.version||"latest",q=await Dw(R,$);if(!q)return{success:!1,error:`Could not resolve version '${$}' for package '${R}'`};let Y=await qw(R);if(!Y)return{success:!1,error:`Package '${R}' not found`};let Z=n(),X={packageName:R,resolvedVersion:q,platform:Z.platform,architecture:Z.architecture,dependencies:Y.dependencies,companions:Y.companions,installCommand:`pkgx install ${R}@${q}`},H=[];if(!Z.isSupported)H.push(`Platform ${Z.platform}/${Z.architecture} may not be fully supported`);if(Y.dependencies.length>0)H.push(`This package has ${Y.dependencies.length} dependencies that will also be installed`);return{success:!0,data:X,warnings:H.length>0?H:void 0}}catch(Q){return{success:!1,error:`Failed to create install plan: ${Q}`}}}async function _R(w){try{let Q=await Nw(w);if(!Q)return{success:!1,error:`Package '${w}' not found`};let R=await uw(w);return{success:!0,data:{latest:Q,total:R.length,versions:R}}}catch(Q){return{success:!1,error:`Failed to get version info: ${Q}`}}}function jR(w){let Q=[`Package: ${w.name}`,`Domain: ${w.domain}`,`Description: ${w.description}`,`Latest Version: ${w.latestVersion}`,`Total Versions: ${w.totalVersions}`];if(w.programs.length>0)Q.push(`Programs: ${w.programs.join(", ")}`);if(w.dependencies.length>0)Q.push(`Dependencies: ${w.dependencies.join(", ")}`);if(w.companions.length>0)Q.push(`Companions: ${w.companions.join(", ")}`);return Q.join(`
|
|
2
2
|
`)}function OR(w){if(w.length===0)return"No packages found matching your search.";let Q=[`Found ${w.length} package(s):
|
|
3
3
|
`];for(let R of w)Q.push(`${R.name} (${R.domain})`),Q.push(` ${R.description}`),Q.push(` Latest: ${R.latestVersion} (${R.totalVersions} versions available)`),Q.push("");return Q.join(`
|
|
4
4
|
`)}function TR(w){let Q=[`Installation Plan for ${w.packageName}@${w.resolvedVersion}`,`Platform: ${w.platform}/${w.architecture}`,`Command: ${w.installCommand}`];if(w.dependencies.length>0)Q.push(`Dependencies: ${w.dependencies.join(", ")}`);if(w.companions.length>0)Q.push(`Companions: ${w.companions.join(", ")}`);return Q.join(`
|
|
5
5
|
`)}function LR(){try{let w=n();return{success:!0,data:{platform:w.platform,architecture:w.architecture,isSupported:w.isSupported,nodeVersion:$Q.version}}}catch(w){return{success:!1,error:`Failed to get system info: ${w}`}}}import d from"node:fs";import e from"node:path";function a(w){if(!d.existsSync(w))throw Error(`Dependency file not found: ${w}`);let Q=d.readFileSync(w,"utf-8"),R=[],$=Q.split(`
|
|
6
6
|
`),q=!1,Y=!1,Z=0;for(let X of $){let H=X.trim();if(!H||H.startsWith("#"))continue;if(X.match(/^(dependencies|deps):\s*$/)){q=!0,Y=!1,Z=X.search(/\S/);continue}if(X.match(/^global:\s*true\s*$/)||X.match(/^global:\s*$/)&&!q){Y=!0;continue}if(X.match(/^\w+:/)&&!X.includes(" ")&&q&&Z===0){q=!1;continue}if(q||Y){if(X.match(/^\s+(dependencies|deps):\s*$/))continue;let W=X.indexOf(":");if(W>0){let J=X.substring(0,W).trim(),j=X.substring(W+1).trim();if(J&&j){let O=J,_=j.replace(/^['"]|['"]$/g,"");if(O==="global"||O==="dependencies"||O==="deps")continue;let z=_,K=_;if(_.startsWith("^"))z=_.substring(1),K=_;else if(_.startsWith("~"))z=_.substring(1),K=_;else if(_.startsWith(">=")||_.startsWith("<=")||_.startsWith(">")||_.startsWith("<")){let U=/^([><=]+)/.exec(_);if(U){let G=U[1];z=_.substring(G.length).trim(),K=_}}else if(_==="*"||_==="latest")z="latest",K="*";else z=_,K=`@${_}`;R.push({name:O,version:z,constraint:K,isOsSpecific:!1})}}}}return R}function XQ(w){if(!d.existsSync(w))throw Error(`Dependency file not found: ${w}`);let Q=d.readFileSync(w,"utf-8"),R=a(w),$;try{let q=typeof Bun<"u"&&Bun.YAML?Bun.YAML.parse(Q):ZQ(Q);if(q?.services){let Y=Array.isArray(q.services.autoStart)?q.services.autoStart.map((Z)=>String(Z)):[];if(Y.length>0)$={enabled:q.services.enabled===!0,autoStart:Y}}}catch{}return{dependencies:R,services:$}}function ZQ(w){let Q={},R=w.split(`
|
|
7
|
-
`),$=!1,q=!1,Y=[],Z=!1;for(let X of R){let H=X.trim();if(!H||H.startsWith("#"))continue;if(X.match(/^services:\s*$/)){$=!0,q=!1;continue}if($&&!X.startsWith(" ")&&!X.startsWith("\t")&&!H.startsWith("-")){if(H!=="services:"){$=!1,q=!1;continue}}if($){if(H.startsWith("enabled:")){Z=H.includes("true");continue}if(H.match(/^autoStart:\s*$/)){q=!0;continue}if(q&&H.startsWith("- ")){let W=H.slice(2).trim();if(W)Y.push(W)}}}if(Y.length>0)Q.services={enabled:Z,autoStart:Y};return Q}async function IR(w,Q="src/packages"){try{let R;if(w.includes("/"))R=e.join(Q,`${w}.ts`);else{let J=`${w.replace(/\./g,"")}.ts`;R=e.join(Q,J)}if(!d.existsSync(R))return[];let $=d.readFileSync(R,"utf-8"),q=$.indexOf("versions:");if(q===-1)return[];let Y=$.substring(q),Z=Y.indexOf("["),X=Y.indexOf("] as const");if(Z===-1||X===-1)return[];let W=Y.substring(Z+1,X).match(/'([^']+)'/g);if(!W)return[];return W.map((J)=>J.replace(/'/g,""))}catch{return[]}}async function qQ(w){try{let{packages:Q}=await import("./chunk-ea7xjekb.js").catch(()=>import("./src/index.js")),R=w.replace(/[^a-z0-9]/gi,"").toLowerCase(),$=Q[R];if(!$)$=Object.values(Q).find((Y)=>Y.domain===w);if(!$)$=Object.values(Q).find((Y)=>Array.isArray(Y.aliases)&&Y.aliases.includes(w));if($&&$.versions&&Array.isArray($.versions))return $.versions;return[]}catch{return[]}}async function fw(w,Q){let R=await qQ(w);if(R.length===0)return Q.split("#")[0].trim().replace(/^[@^~>=<]+/,"")||"latest";let $=Q.split("#")[0].trim();if($==="*"||$==="latest")return R[0];if($.startsWith("@")){let Y=$.slice(1);return R.includes(Y)?Y:R[0]}return HQ(R,$)||R[0]}function HQ(w,Q){if(Q.startsWith("^")){let R=Q.slice(1),[$]=g(R);return w.filter((Y)=>{let[Z]=g(Y);return Z===$&&k(Y,R)>=0})[0]||null}if(Q.startsWith("~")){let R=Q.slice(1),[$,q]=g(R);return w.filter((Z)=>{let[X,H]=g(Z);return X===$&&H===q&&k(Z,R)>=0})[0]||null}if(Q.startsWith(">=")){let R=Q.slice(2).trim();return w.filter((q)=>k(q,R)>=0)[0]||null}if(Q.startsWith(">")){let R=Q.slice(1).trim();return w.filter((q)=>k(q,R)>0)[0]||null}if(Q.startsWith("<=")){let R=Q.slice(2).trim();return w.filter((q)=>k(q,R)<=0)[0]||null}if(Q.startsWith("<")){let R=Q.slice(1).trim();return w.filter((q)=>k(q,R)<0)[0]||null}if(Q.startsWith("=")){let R=Q.slice(1).trim();return w.includes(R)?R:null}return w.includes(Q)?Q:null}function g(w){let Q=w.split(".").map((R)=>{let $=R.match(/^\d+/);return $?Number.parseInt($[0],10):0});return[Q[0]||0,Q[1]||0,Q[2]||0]}function k(w,Q){if(w==="latest"&&Q!=="latest")return 1;if(Q==="latest"&&w!=="latest")return-1;if(w==="latest"&&Q==="latest")return 0;let R=w.split("#")[0].trim(),$=Q.split("#")[0].trim(),[q,Y,Z]=g(R),[X,H,W]=g($);if(q>X)return 1;if(q<X)return-1;if(Y>H)return 1;if(Y<H)return-1;if(Z>W)return 1;if(Z<W)return-1;return 0}var i=null;async function YQ(){if(i)return i;return i=(await import("./chunk-ea7xjekb.js").catch(()=>import("./src/index.js"))).packages,i}async function JQ(w){try{let Q=await YQ(),R=Q[w];if(R)return{dependencies:R.dependencies||[],companions:R.companions||[]};let $=w.replace(/[^a-z0-9]/gi,"").toLowerCase(),q=Q[$];if(q)return{dependencies:q.dependencies||[],companions:q.companions||[]};let Z=Object.values(Q).find((X)=>X.domain===w);if(Z)return{dependencies:Z.dependencies||[],companions:Z.companions||[]};return null}catch(Q){return console.warn(`Failed to load package data for ${w}: ${Q}`),null}}async function ww(w,Q={},R=new Set,$=0){let{maxDepth:q=10,verbose:Y=!1,targetOs:Z,includeOsSpecific:X=!0}=Q;if($>q||R.has(w))return[];if(R.add(w),Y)console.log(`${" ".repeat($)}Resolving dependencies for: ${w}`);let H=[];try{let J=function(z){let K=z.match(/^(linux|darwin|windows):(.+)$/),U=!!K,G=K?K[2]:z,F=K?K[1]:void 0;if(U&&(!X||Z&&F!==Z))return null;let T=G,I="latest",B="*",E=G.match(/^([^@^~>=<]+)([@^~>=<].+)?$/);if(E){if(T=E[1],E[2]){let C=E[2];if(C.startsWith("@"))I=C.substring(1),B=C;else B=C,I=C.replace(/^\D*/,"")}}return{dep:{name:T,version:I,constraint:B,isOsSpecific:U,os:F},pkgName:T}},W=await JQ(w),O=[...W?.dependencies||[],...W?.companions||[]].map(J).filter((z)=>z!==null);for(let{dep:z}of O)H.push(z);let _=await Promise.all(O.map(({pkgName:z})=>ww(z,Q,R,$+1)));for(let z of _)H.push(...z)}catch(W){if(Y)console.warn(`${" ".repeat($)}Warning: Could not resolve dependencies for ${w}: ${W}`)}return H}async function Yw(w,Q={}){let R=new Map,$=[],q={linux:[],darwin:[],windows:[]};for(let X of w){if(!R.has(X.name))R.set(X.name,[]);if(R.get(X.name).push(X),X.isOsSpecific&&X.os)q[X.os].push(X)}let Y=[],Z=[];for(let[X,H]of R)if(H.length===1){let W=await fw(X,H[0].constraint),J={...H[0],version:W};Y.push(J),Z.push(X)}else{let W=H.map((z)=>z.version),J=[...new Set(W)];if(J.length>1)$.push({package:X,versions:J});let j=await Promise.all(H.map(async(z)=>({...z,resolvedVersion:await fw(X,z.constraint)}))),O=j[0];for(let z of j.slice(1))if(O.constraint==="*"&&z.constraint!=="*")O=z;else if(O.constraint!=="*"&&z.constraint==="*");else if(k(z.resolvedVersion,O.resolvedVersion)>0)O=z;let _={...O,version:O.resolvedVersion};delete _.resolvedVersion,Y.push(_),Z.push(X)}return{allDependencies:Y,uniquePackages:Z,conflicts:$,osSpecificDeps:q}}async function kw(w,Q={}){let{verbose:R=!1}=Q;if(R)console.log(`Parsing dependency file: ${w}`);let $=a(w);if(R)console.log(`Found ${$.length} direct dependencies`);let q=[...$],Y=await Promise.all($.map(async(H)=>{if(R)console.log(`Resolving transitive dependencies for: ${H.name}`);return ww(H.name,Q)}));for(let H of Y)q.push(...H);if(R)console.log(`Total dependencies found (before deduplication): ${q.length}`);let Z=await Yw(q,Q);if(R){if(console.log(`Unique packages after deduplication: ${Z.uniquePackages.length}`),Z.conflicts.length>0)console.log(`Version conflicts found: ${Z.conflicts.length}`)}let X=e.extname(w);if(X===".yaml"||X===".yml"){let H=XQ(w);if(H.services)Z.services=H.services}return Z}function SR(w){let Q=["deps.yaml","deps.yml","dependencies.yaml","dependencies.yml","pkgx.yaml","pkgx.yml",".deps.yaml",".deps.yml"],R=[];for(let $ of Q){let q=e.join(w,$);if(d.existsSync(q))R.push(q)}return R}import b from"node:fs";import L from"node:path";import V from"node:process";var Jw=L.join(V.cwd(),"src","packages"),Ww=L.join(V.cwd(),"docs");var c={};async function Gw(w){try{let Q=w||L.join(V.cwd(),"src","packages"),R=L.join(Q,"index.ts");if(b.existsSync(R)){console.log("Using generated index file for package mapping...");let Y=await import(L.resolve(R)),Z=Y.pantry||Y.packages;if(Z)return console.log(`Successfully loaded ${Object.keys(Z).length} packages from index`),Z}console.log("Index file not found, falling back to direct file reading...");let $={};if(!b.existsSync(Q))return console.log(`Packages directory does not exist: ${Q}`),$;let q=[];try{let Y=function(Z,X=""){let H=[],W=b.readdirSync(Z,{withFileTypes:!0});for(let J of W)if(J.isFile()&&J.name.endsWith(".ts")&&J.name!=="index.ts"&&J.name!=="aliases.ts")H.push(L.join(Z,J.name));else if(J.isDirectory()&&!J.name.startsWith(".")){let j=L.join(Z,J.name),O=X?`${X}/${J.name}`:J.name;H.push(...Y(j,O))}return H};q=Y(Q),console.log(`Found ${q.length} package files`)}catch(Y){console.error(`Error reading packages directory ${Q}:`,Y),q=[]}console.log(`Reading package data from ${q.length} files...`);for(let Y of q)try{let Z=L.isAbsolute(Y)?Y:L.join(Q,Y),X=b.readFileSync(Z,"utf-8"),H=L.basename(Y,".ts"),W=X.match(/domain:\s*['"]([^'"]*)['"]\s*as const/),J=W?W[1]:Rw(H),j=v(J),O=WQ(X,J);if(O)$[j]=O,console.log(`Loaded package data for ${J} -> ${j}`)}catch(Z){console.error(`Error processing file ${Y}:`,Z)}return console.log(`Successfully loaded ${Object.keys($).length} packages`),$}catch(Q){return console.error("Error importing pantry:",Q),{}}}function WQ(w,Q){try{let R=w.match(/domain:\s*['"]([^'"]*)['"]\s*as const/),$=R?R[1]:Q;if(!w.match(/export const \w+Package = \{([\s\S]*?)\}/))return console.warn(`Could not find package object in file for ${$}`),null;let Y=(B)=>{let E=new RegExp(`${B}:\\s*\\[(.*?)\\]\\s*as const`,"s"),C=w.match(E);if(!C)return[];let M=C[1],S=M.match(/'([^']*)'/g);if(S)return S.map((A)=>A.replace(/'/g,""));if(S=M.match(/"([^"]*)"/g),S)return S.map((A)=>A.replace(/"/g,""));return[]},Z=(B)=>{let C=new RegExp(`${B}:\\s*'([^']*)'\\s*as const`),M=w.match(C);if(M)return M[1].replace(/\\'/g,"'").replace(/\\\\/g,"\\");if(C=new RegExp(`${B}:\\s*'([^']*)'`),M=w.match(C),M)return M[1].replace(/\\'/g,"'").replace(/\\\\/g,"\\");return""},X=Z("name")||$,H=Z("description")||`A package from ${$}`,W=Z("packageYmlUrl")||"",J=Z("homepageUrl")||"",j=Z("githubUrl")||"",O=Z("installCommand")||"",_=Z("pkgxInstallCommand")||`sh <(curl https://pkgx.sh) +${$} -- $SHELL -i`,z=Z("pantryInstallCommand")||`pantry install ${$}`,K=Z("fullPath")||$,U=Y("programs"),G=Y("companions"),F=Y("dependencies"),T=Y("versions"),I=Y("aliases");return{name:X,domain:$,description:H,packageYmlUrl:W,homepageUrl:J,githubUrl:j,installCommand:O,pkgxInstallCommand:_,pantryInstallCommand:z,programs:U,companions:G,dependencies:F,versions:T,fullPath:K,aliases:I}}catch(R){return console.error(`Error extracting package data for ${Q}:`,R),null}}function zQ(w,Q){let R=["cli","app","tool","server","client","api","lib","core","sdk","dev","bin"];if(R.includes(w.toLowerCase()))return!1;if(w===Q)return!1;let $=Q.replace(/\./g,"");if(w===$)return!1;if(w.includes("--")||w.includes("$SHELL")||w.includes("curl")||w.includes("sh <("))return!1;if(w.includes(" -- ")||w.includes(" -i")||w.includes("+")&&w.includes(" "))return!1;if(Q.includes("/")){let Y=Q.split("/"),Z=Y[Y.length-1];if(R.includes(Z.toLowerCase())&&w===Z)return!1}let q=["go","js","py","rb","sh","vi","cc","gc","jq","awk","sed","mc","gh"];if(w.length<3&&!q.includes(w.toLowerCase()))return!1;if(/^[\d.]+$/.test(w)&&/^\d/.test(w))return!1;if(!/[a-z]/i.test(w))return!1;if(w.includes("{{")||w.includes("}}"))return!1;if(w.includes("version.major")||w.includes("version.minor")||w.includes("version"))return!1;return!0}function mw(){return{"Programming Languages":["node","python","go","rust","ruby","julia","lua","luajit","php","crystal","nim","kotlin","scala","swift","zig","v","dart","ghc","ocaml","clojure","erl","elixir","R","perl","tcl","dmd","tinygo"],"Artificial Intelligence":["ollama","huggingface","openai","f2py","kaggle","jupyter","llm","stable-diffusion-webui","open-interpreter","interpreter","GPT Engineer","gPTEngineer","auto-gpt","autogpt","metagpt","MetaGPT","elizaOS","eliza","openplayground","chatblade","aichat"],Databases:["psql","mysql","mongod","mongos","mongosh","redis","sqlite3","duckdb","surreal","etcd","turso","mariadb","influx","clickhouse","neo4j","cassandra","couchdb","elasticsearch","opensearch","memcached","valkey","postgrest","litecli","edgedb","dgraph"],"Web Development":["vite","next","astro","vitepress","laravel","symfony","django","flask","fastapi","rails","spring","express","tailwindcss","svelte","ng","react","vue","nx","nuxt"],DevOps:["docker","compose","podman","kubectl","minikube","kustomize","helm","terraform","terragrunt","jenkins-lts","vault","consul","nomad","packer","ansible","ansible-lint","argocd","flux","lima","k3d","kind","tofu","atlantis","terratag","tflint","tfupdate","cfn-lint","infracost"],"Container & Kubernetes Tools":["docker","podman","kubectl","minikube","kustomize","helm","helmfile","stern","hubble","cilium","kube-linter","kubeshark","kubectl-cnpg","k9s","kubectx","kubecm","kubectl-krew","skaffold","tilt","linkerd","vcluster","istioctl","velero","kubeconform","kubebuilder","operator-sdk"],"Monitoring & Observability":["prometheus","grafana","datadog","newrelic","kibana","jaeger","zipkin","sentry","steampipe","logdy","loki","tempo","allure"],"Build Tools & Automation":["cmake","ninja","meson","scons","make","bazel","gradle","mvn","ant","task","just","autoconf","automake","pkg-config","vcpkg","buildctl","buildkit","earthly","buildifier","pants","scie-pants"],"Package Managers":["npm","npx","yarn","pnpm","bun","pip","pipenv","poetry","conda","bundler","cargo","composer","pod","nuget","brew","port","pkgx","mise","asdf","nixpacks","corepack","luarocks","rye","pdm"],"Editors & IDEs":["nvim","vim","emacs","code","vscode cli","micro","nano","alacritty","wezterm","helix"],"CLI Tools & Utilities":["ripgrep","rg","tree-sitter","fzf","bat","lsd","exa","eza","fd","fd-find","sed","awk","grep","find","jq","yq","tree","watch","htop","btop","bottom","tmux","screen","starship","oh-my-posh","fish","zsh","bash","curl","wget","ripgrep-all","rga","hyperfine","dust","du-dust","duf","ncdu","tokei","loc","delta","git-delta","difftastic","diff-so-fancy","gdu","procs","bandwhich","grex","choose","sd","dog","drill","xh","httpie","curlie"],Networking:["nginx","httpd","caddy","traefik","curl","wget","httpie","cloudflared","openssh","rsync","mosh"],"Security & Cryptography":["OpenSSL","gpg","gpg-tui","vault","bw","op","1Password CLI","1password_cli","mkcert","certbot","age","yubikey-agent","snyk","trivy","tfsec","checkov","git-crypt"],Multimedia:["ffmpeg","vips","mpv","yt-dlp","streamlink","gifsicle","exiftool","optipng","imagemagick"],"Graphics Libraries":["libsdlorg","libsdlorgsdl_image","openglorg","vulkanlunarcom","mesa3dorg","freeglutfileio","glewsourceforge","glmgtrucnet","cairographicsorg","opencvorg","vtkorg","ogre3dorg","irrlichtorg"],"Gaming & Game Development":["unitycom","unrealenginecom","godotengineorg","libsdlorg","love2dorg","rayliborg","allegro5org","defoldcom","constructnet","gamemakerio","cocos2dxorg","lutrisnet","steampipecom","epicgamescom"],"Cloud Platforms":["awsamazoncom","cloudgooglecom","azuremicrosoftcom","digitaloceancom","linodecom","vultrcom","hetznercom","cloudflarecom","netlifycom","vercelcom","herokucom","railwayapp","rendercom","flyio","planetscalecom","supabasecomcli","firebasecom","localstackcloudcli"],"Mobile Development":["reactnativedev","flutterdev","xamarincom","ionicio","cordovaapacheorg","capacitorjscom","nativescriptorg","expodev","fastlanetools","appiumio","androidcomcmdlinetools","gradleorg"],Testing:["jestjsio","mochajsorg","cypressio","seleniumdev","playwrightdev","puppeteerdev","testcafeio","pytestorg","unittestpythonorg","rspecinfo","junitorg","testngorg","webdriverio","vitestdev","avajs","jasminegjscom","karmatestrunnerorg"],Cryptocurrency:["bitcoinorg","ethereumorg","solanacom","getfoundrysh","racoonorg","elementsprojectorg","githubcom10gicvanitygenplusplus","ghostscriptcom","polkadotnetwork","avalanchenetwork","chainlinkcom","cardanoorg"],"Financial Tools":["raccoinorg","gnucashorg","ledgercliorg","beancountgooglecodecom","plaintextaccountingorg","quickencom","mintcom","ynabcom"],"Documentation & Text Processing":["pandocorg","texliveorg","latexprojectorg","asciidocorg","asciidoctororg","sphinxdocorg","mkdocsorg","gitbookcom","githubiohugohugorg","jekyllrb","docsifyjs","rustlangorgmdbook","typstapp","tectonic_typesettinggithubio","maaslalanicomslides"],"System Administration":["systemdio","crongnuorg","rsyncsambaorg","opensshcom","sudows","tmuxgithubcom","gnuorgscreen","htopdev","iostat","psmisc","procpsng","straceio","ltraceorg","lsofio","tcpdumporg","logrotateorg","monitoringpluginsorg"],"Scientific Computing":["numpyorg","scipyorg","pandasdataorg","matplotliborg","seabornpydataorg","plotlycom","jupyterorg","anacondacom","rorg","rstudiocom","octaveorg","matlabcom","mathematicawolframcom","sagemath","maxima","gnuplotorg","paravieworg","vtk"],"Embedded & IoT":["arduino","platformio","espressifcom","raspberrypiorg","mbed","freedosorg","qemuorg","openocdorg","stlink","jlinkorg","modbus","zigbeeorg","gpiozeropythonorg"],"Version Control":["git","gh","gitlab"],"Other Utilities":[]}}function lw(w){if(c[w])return c[w];return w.replace(/\W/g,"_")}function cw(w){return w.toLowerCase()}function Qw(w,Q,R){try{let $=Q||Jw,q=R||L.join($,`${w}.ts`),Y=b.readFileSync(q,"utf-8"),Z=Y.match(/export const (\w+) = \{/),X=Z?Z[1]:`${w.replace(/\W/g,"")}Package`,H=Y.match(/export type (\w+) = typeof/),W=H?H[1]:`${X.charAt(0).toUpperCase()}${X.slice(1)}`;return{packageVarName:X,typeName:W}}catch($){console.warn(`Could not read package file ${R||`${w}.ts`}, using fallback naming:`,$);let q=KQ(w),Y=BQ(w);return{packageVarName:q,typeName:Y}}}function BQ(w){if(c[w]){let $=c[w];return`${$.charAt(0).toUpperCase()}${$.slice(1)}Package`}let R=cw(w).replace(/\W/g,"");return`${R.charAt(0).toUpperCase()}${R.slice(1)}Package`}function KQ(w){if(c[w])return`${c[w]}Package`;return`${cw(w).replace(/\W/g,"")}Package`}function UQ(w,Q){let{typeName:R}=Qw(w,Q);return R}function GQ(w,Q){let{packageVarName:R}=Qw(w,Q);return R}async function zw(w){try{console.log("\uD83D\uDD27 Generating package index..."),console.log(`DEBUG generateIndex START: packagesDir=${w}`),console.log(`DEBUG generateIndex START: process.cwd()=${V.cwd()}`);let Q=w||Jw,R=L.resolve(Q,"index.ts");if(console.log(`DEBUG generateIndex: packagesDir=${w}`),console.log(`DEBUG generateIndex: PACKAGES_DIR=${Jw}`),console.log(`DEBUG generateIndex: targetPackagesDir=${Q}`),console.log(`DEBUG generateIndex: targetIndexFile=${R}`),console.log(`DEBUG generateIndex: path.isAbsolute(targetIndexFile)=${L.isAbsolute(R)}`),!b.existsSync(Q))console.log(`Creating packages directory: ${Q}`),b.mkdirSync(Q,{recursive:!0});if(!b.existsSync(Q))return console.error(`Failed to create packages directory: ${Q}`),null;let $=[];try{let Y=function(Z,X=""){let H=[],W=b.readdirSync(Z,{withFileTypes:!0});for(let J of W)if(J.isFile()&&J.name.endsWith(".ts")&&J.name!=="index.ts"&&J.name!=="aliases.ts")H.push(L.join(Z,J.name));else if(J.isDirectory()&&!J.name.startsWith(".")){let j=L.join(Z,J.name),O=X?`${X}/${J.name}`:J.name;H.push(...Y(j,O))}return H};$=Y(Q),console.log(`Found ${$.length} package files`)}catch(Y){console.error(`Error reading packages directory ${Q}:`,Y),$=[]}let q=`// Auto-generated package index
|
|
7
|
+
`),$=!1,q=!1,Y=[],Z=!1;for(let X of R){let H=X.trim();if(!H||H.startsWith("#"))continue;if(X.match(/^services:\s*$/)){$=!0,q=!1;continue}if($&&!X.startsWith(" ")&&!X.startsWith("\t")&&!H.startsWith("-")){if(H!=="services:"){$=!1,q=!1;continue}}if($){if(H.startsWith("enabled:")){Z=H.includes("true");continue}if(H.match(/^autoStart:\s*$/)){q=!0;continue}if(q&&H.startsWith("- ")){let W=H.slice(2).trim();if(W)Y.push(W)}}}if(Y.length>0)Q.services={enabled:Z,autoStart:Y};return Q}async function IR(w,Q="src/packages"){try{let R;if(w.includes("/"))R=e.join(Q,`${w}.ts`);else{let J=`${w.replace(/\./g,"")}.ts`;R=e.join(Q,J)}if(!d.existsSync(R))return[];let $=d.readFileSync(R,"utf-8"),q=$.indexOf("versions:");if(q===-1)return[];let Y=$.substring(q),Z=Y.indexOf("["),X=Y.indexOf("] as const");if(Z===-1||X===-1)return[];let W=Y.substring(Z+1,X).match(/'([^']+)'/g);if(!W)return[];return W.map((J)=>J.replace(/'/g,""))}catch{return[]}}async function qQ(w){try{let{packages:Q}=await import("./chunk-hapft2pb.js").catch(()=>import("./src/index.js")),R=w.replace(/[^a-z0-9]/gi,"").toLowerCase(),$=Q[R];if(!$)$=Object.values(Q).find((Y)=>Y.domain===w);if(!$)$=Object.values(Q).find((Y)=>Array.isArray(Y.aliases)&&Y.aliases.includes(w));if($&&$.versions&&Array.isArray($.versions))return $.versions;return[]}catch{return[]}}async function fw(w,Q){let R=await qQ(w);if(R.length===0)return Q.split("#")[0].trim().replace(/^[@^~>=<]+/,"")||"latest";let $=Q.split("#")[0].trim();if($==="*"||$==="latest")return R[0];if($.startsWith("@")){let Y=$.slice(1);return R.includes(Y)?Y:R[0]}return HQ(R,$)||R[0]}function HQ(w,Q){if(Q.startsWith("^")){let R=Q.slice(1),[$]=g(R);return w.filter((Y)=>{let[Z]=g(Y);return Z===$&&k(Y,R)>=0})[0]||null}if(Q.startsWith("~")){let R=Q.slice(1),[$,q]=g(R);return w.filter((Z)=>{let[X,H]=g(Z);return X===$&&H===q&&k(Z,R)>=0})[0]||null}if(Q.startsWith(">=")){let R=Q.slice(2).trim();return w.filter((q)=>k(q,R)>=0)[0]||null}if(Q.startsWith(">")){let R=Q.slice(1).trim();return w.filter((q)=>k(q,R)>0)[0]||null}if(Q.startsWith("<=")){let R=Q.slice(2).trim();return w.filter((q)=>k(q,R)<=0)[0]||null}if(Q.startsWith("<")){let R=Q.slice(1).trim();return w.filter((q)=>k(q,R)<0)[0]||null}if(Q.startsWith("=")){let R=Q.slice(1).trim();return w.includes(R)?R:null}return w.includes(Q)?Q:null}function g(w){let Q=w.split(".").map((R)=>{let $=R.match(/^\d+/);return $?Number.parseInt($[0],10):0});return[Q[0]||0,Q[1]||0,Q[2]||0]}function k(w,Q){if(w==="latest"&&Q!=="latest")return 1;if(Q==="latest"&&w!=="latest")return-1;if(w==="latest"&&Q==="latest")return 0;let R=w.split("#")[0].trim(),$=Q.split("#")[0].trim(),[q,Y,Z]=g(R),[X,H,W]=g($);if(q>X)return 1;if(q<X)return-1;if(Y>H)return 1;if(Y<H)return-1;if(Z>W)return 1;if(Z<W)return-1;return 0}var i=null;async function YQ(){if(i)return i;return i=(await import("./chunk-hapft2pb.js").catch(()=>import("./src/index.js"))).packages,i}async function JQ(w){try{let Q=await YQ(),R=Q[w];if(R)return{dependencies:R.dependencies||[],companions:R.companions||[]};let $=w.replace(/[^a-z0-9]/gi,"").toLowerCase(),q=Q[$];if(q)return{dependencies:q.dependencies||[],companions:q.companions||[]};let Z=Object.values(Q).find((X)=>X.domain===w);if(Z)return{dependencies:Z.dependencies||[],companions:Z.companions||[]};return null}catch(Q){return console.warn(`Failed to load package data for ${w}: ${Q}`),null}}async function ww(w,Q={},R=new Set,$=0){let{maxDepth:q=10,verbose:Y=!1,targetOs:Z,includeOsSpecific:X=!0}=Q;if($>q||R.has(w))return[];if(R.add(w),Y)console.log(`${" ".repeat($)}Resolving dependencies for: ${w}`);let H=[];try{let J=function(z){let K=z.match(/^(linux|darwin|windows):(.+)$/),U=!!K,G=K?K[2]:z,F=K?K[1]:void 0;if(U&&(!X||Z&&F!==Z))return null;let T=G,I="latest",B="*",E=G.match(/^([^@^~>=<]+)([@^~>=<].+)?$/);if(E){if(T=E[1],E[2]){let C=E[2];if(C.startsWith("@"))I=C.substring(1),B=C;else B=C,I=C.replace(/^\D*/,"")}}return{dep:{name:T,version:I,constraint:B,isOsSpecific:U,os:F},pkgName:T}},W=await JQ(w),O=[...W?.dependencies||[],...W?.companions||[]].map(J).filter((z)=>z!==null);for(let{dep:z}of O)H.push(z);let _=await Promise.all(O.map(({pkgName:z})=>ww(z,Q,R,$+1)));for(let z of _)H.push(...z)}catch(W){if(Y)console.warn(`${" ".repeat($)}Warning: Could not resolve dependencies for ${w}: ${W}`)}return H}async function Yw(w,Q={}){let R=new Map,$=[],q={linux:[],darwin:[],windows:[]};for(let X of w){if(!R.has(X.name))R.set(X.name,[]);if(R.get(X.name).push(X),X.isOsSpecific&&X.os)q[X.os].push(X)}let Y=[],Z=[];for(let[X,H]of R)if(H.length===1){let W=await fw(X,H[0].constraint),J={...H[0],version:W};Y.push(J),Z.push(X)}else{let W=H.map((z)=>z.version),J=[...new Set(W)];if(J.length>1)$.push({package:X,versions:J});let j=await Promise.all(H.map(async(z)=>({...z,resolvedVersion:await fw(X,z.constraint)}))),O=j[0];for(let z of j.slice(1))if(O.constraint==="*"&&z.constraint!=="*")O=z;else if(O.constraint!=="*"&&z.constraint==="*");else if(k(z.resolvedVersion,O.resolvedVersion)>0)O=z;let _={...O,version:O.resolvedVersion};delete _.resolvedVersion,Y.push(_),Z.push(X)}return{allDependencies:Y,uniquePackages:Z,conflicts:$,osSpecificDeps:q}}async function kw(w,Q={}){let{verbose:R=!1}=Q;if(R)console.log(`Parsing dependency file: ${w}`);let $=a(w);if(R)console.log(`Found ${$.length} direct dependencies`);let q=[...$],Y=await Promise.all($.map(async(H)=>{if(R)console.log(`Resolving transitive dependencies for: ${H.name}`);return ww(H.name,Q)}));for(let H of Y)q.push(...H);if(R)console.log(`Total dependencies found (before deduplication): ${q.length}`);let Z=await Yw(q,Q);if(R){if(console.log(`Unique packages after deduplication: ${Z.uniquePackages.length}`),Z.conflicts.length>0)console.log(`Version conflicts found: ${Z.conflicts.length}`)}let X=e.extname(w);if(X===".yaml"||X===".yml"){let H=XQ(w);if(H.services)Z.services=H.services}return Z}function SR(w){let Q=["deps.yaml","deps.yml","dependencies.yaml","dependencies.yml","pkgx.yaml","pkgx.yml",".deps.yaml",".deps.yml"],R=[];for(let $ of Q){let q=e.join(w,$);if(d.existsSync(q))R.push(q)}return R}import b from"node:fs";import L from"node:path";import V from"node:process";var Jw=L.join(V.cwd(),"src","packages"),Ww=L.join(V.cwd(),"docs");var c={};async function Gw(w){try{let Q=w||L.join(V.cwd(),"src","packages"),R=L.join(Q,"index.ts");if(b.existsSync(R)){console.log("Using generated index file for package mapping...");let Y=await import(L.resolve(R)),Z=Y.pantry||Y.packages;if(Z)return console.log(`Successfully loaded ${Object.keys(Z).length} packages from index`),Z}console.log("Index file not found, falling back to direct file reading...");let $={};if(!b.existsSync(Q))return console.log(`Packages directory does not exist: ${Q}`),$;let q=[];try{let Y=function(Z,X=""){let H=[],W=b.readdirSync(Z,{withFileTypes:!0});for(let J of W)if(J.isFile()&&J.name.endsWith(".ts")&&J.name!=="index.ts"&&J.name!=="aliases.ts")H.push(L.join(Z,J.name));else if(J.isDirectory()&&!J.name.startsWith(".")){let j=L.join(Z,J.name),O=X?`${X}/${J.name}`:J.name;H.push(...Y(j,O))}return H};q=Y(Q),console.log(`Found ${q.length} package files`)}catch(Y){console.error(`Error reading packages directory ${Q}:`,Y),q=[]}console.log(`Reading package data from ${q.length} files...`);for(let Y of q)try{let Z=L.isAbsolute(Y)?Y:L.join(Q,Y),X=b.readFileSync(Z,"utf-8"),H=L.basename(Y,".ts"),W=X.match(/domain:\s*['"]([^'"]*)['"]\s*as const/),J=W?W[1]:Rw(H),j=v(J),O=WQ(X,J);if(O)$[j]=O,console.log(`Loaded package data for ${J} -> ${j}`)}catch(Z){console.error(`Error processing file ${Y}:`,Z)}return console.log(`Successfully loaded ${Object.keys($).length} packages`),$}catch(Q){return console.error("Error importing pantry:",Q),{}}}function WQ(w,Q){try{let R=w.match(/domain:\s*['"]([^'"]*)['"]\s*as const/),$=R?R[1]:Q;if(!w.match(/export const \w+Package = \{([\s\S]*?)\}/))return console.warn(`Could not find package object in file for ${$}`),null;let Y=(B)=>{let E=new RegExp(`${B}:\\s*\\[(.*?)\\]\\s*as const`,"s"),C=w.match(E);if(!C)return[];let M=C[1],S=M.match(/'([^']*)'/g);if(S)return S.map((A)=>A.replace(/'/g,""));if(S=M.match(/"([^"]*)"/g),S)return S.map((A)=>A.replace(/"/g,""));return[]},Z=(B)=>{let C=new RegExp(`${B}:\\s*'([^']*)'\\s*as const`),M=w.match(C);if(M)return M[1].replace(/\\'/g,"'").replace(/\\\\/g,"\\");if(C=new RegExp(`${B}:\\s*'([^']*)'`),M=w.match(C),M)return M[1].replace(/\\'/g,"'").replace(/\\\\/g,"\\");return""},X=Z("name")||$,H=Z("description")||`A package from ${$}`,W=Z("packageYmlUrl")||"",J=Z("homepageUrl")||"",j=Z("githubUrl")||"",O=Z("installCommand")||"",_=Z("pkgxInstallCommand")||`sh <(curl https://pkgx.sh) +${$} -- $SHELL -i`,z=Z("pantryInstallCommand")||`pantry install ${$}`,K=Z("fullPath")||$,U=Y("programs"),G=Y("companions"),F=Y("dependencies"),T=Y("versions"),I=Y("aliases");return{name:X,domain:$,description:H,packageYmlUrl:W,homepageUrl:J,githubUrl:j,installCommand:O,pkgxInstallCommand:_,pantryInstallCommand:z,programs:U,companions:G,dependencies:F,versions:T,fullPath:K,aliases:I}}catch(R){return console.error(`Error extracting package data for ${Q}:`,R),null}}function zQ(w,Q){let R=["cli","app","tool","server","client","api","lib","core","sdk","dev","bin"];if(R.includes(w.toLowerCase()))return!1;if(w===Q)return!1;let $=Q.replace(/\./g,"");if(w===$)return!1;if(w.includes("--")||w.includes("$SHELL")||w.includes("curl")||w.includes("sh <("))return!1;if(w.includes(" -- ")||w.includes(" -i")||w.includes("+")&&w.includes(" "))return!1;if(Q.includes("/")){let Y=Q.split("/"),Z=Y[Y.length-1];if(R.includes(Z.toLowerCase())&&w===Z)return!1}let q=["go","js","py","rb","sh","vi","cc","gc","jq","awk","sed","mc","gh"];if(w.length<3&&!q.includes(w.toLowerCase()))return!1;if(/^[\d.]+$/.test(w)&&/^\d/.test(w))return!1;if(!/[a-z]/i.test(w))return!1;if(w.includes("{{")||w.includes("}}"))return!1;if(w.includes("version.major")||w.includes("version.minor")||w.includes("version"))return!1;return!0}function mw(){return{"Programming Languages":["node","python","go","rust","ruby","julia","lua","luajit","php","crystal","nim","kotlin","scala","swift","zig","v","dart","ghc","ocaml","clojure","erl","elixir","R","perl","tcl","dmd","tinygo"],"Artificial Intelligence":["ollama","huggingface","openai","f2py","kaggle","jupyter","llm","stable-diffusion-webui","open-interpreter","interpreter","GPT Engineer","gPTEngineer","auto-gpt","autogpt","metagpt","MetaGPT","elizaOS","eliza","openplayground","chatblade","aichat"],Databases:["psql","mysql","mongod","mongos","mongosh","redis","sqlite3","duckdb","surreal","etcd","turso","mariadb","influx","clickhouse","neo4j","cassandra","couchdb","elasticsearch","opensearch","memcached","valkey","postgrest","litecli","edgedb","dgraph"],"Web Development":["vite","next","astro","vitepress","laravel","symfony","django","flask","fastapi","rails","spring","express","tailwindcss","svelte","ng","react","vue","nx","nuxt"],DevOps:["docker","compose","podman","kubectl","minikube","kustomize","helm","terraform","terragrunt","jenkins-lts","vault","consul","nomad","packer","ansible","ansible-lint","argocd","flux","lima","k3d","kind","tofu","atlantis","terratag","tflint","tfupdate","cfn-lint","infracost"],"Container & Kubernetes Tools":["docker","podman","kubectl","minikube","kustomize","helm","helmfile","stern","hubble","cilium","kube-linter","kubeshark","kubectl-cnpg","k9s","kubectx","kubecm","kubectl-krew","skaffold","tilt","linkerd","vcluster","istioctl","velero","kubeconform","kubebuilder","operator-sdk"],"Monitoring & Observability":["prometheus","grafana","datadog","newrelic","kibana","jaeger","zipkin","sentry","steampipe","logdy","loki","tempo","allure"],"Build Tools & Automation":["cmake","ninja","meson","scons","make","bazel","gradle","mvn","ant","task","just","autoconf","automake","pkg-config","vcpkg","buildctl","buildkit","earthly","buildifier","pants","scie-pants"],"Package Managers":["npm","npx","yarn","pnpm","bun","pip","pipenv","poetry","conda","bundler","cargo","composer","pod","nuget","brew","port","pkgx","mise","asdf","nixpacks","corepack","luarocks","rye","pdm"],"Editors & IDEs":["nvim","vim","emacs","code","vscode cli","micro","nano","alacritty","wezterm","helix"],"CLI Tools & Utilities":["ripgrep","rg","tree-sitter","fzf","bat","lsd","exa","eza","fd","fd-find","sed","awk","grep","find","jq","yq","tree","watch","htop","btop","bottom","tmux","screen","starship","oh-my-posh","fish","zsh","bash","curl","wget","ripgrep-all","rga","hyperfine","dust","du-dust","duf","ncdu","tokei","loc","delta","git-delta","difftastic","diff-so-fancy","gdu","procs","bandwhich","grex","choose","sd","dog","drill","xh","httpie","curlie"],Networking:["nginx","httpd","caddy","traefik","curl","wget","httpie","cloudflared","openssh","rsync","mosh"],"Security & Cryptography":["OpenSSL","gpg","gpg-tui","vault","bw","op","1Password CLI","1password_cli","mkcert","certbot","age","yubikey-agent","snyk","trivy","tfsec","checkov","git-crypt"],Multimedia:["ffmpeg","vips","mpv","yt-dlp","streamlink","gifsicle","exiftool","optipng","imagemagick"],"Graphics Libraries":["libsdlorg","libsdlorgsdl_image","openglorg","vulkanlunarcom","mesa3dorg","freeglutfileio","glewsourceforge","glmgtrucnet","cairographicsorg","opencvorg","vtkorg","ogre3dorg","irrlichtorg"],"Gaming & Game Development":["unitycom","unrealenginecom","godotengineorg","libsdlorg","love2dorg","rayliborg","allegro5org","defoldcom","constructnet","gamemakerio","cocos2dxorg","lutrisnet","steampipecom","epicgamescom"],"Cloud Platforms":["awsamazoncom","cloudgooglecom","azuremicrosoftcom","digitaloceancom","linodecom","vultrcom","hetznercom","cloudflarecom","netlifycom","vercelcom","herokucom","railwayapp","rendercom","flyio","planetscalecom","supabasecomcli","firebasecom","localstackcloudcli"],"Mobile Development":["reactnativedev","flutterdev","xamarincom","ionicio","cordovaapacheorg","capacitorjscom","nativescriptorg","expodev","fastlanetools","appiumio","androidcomcmdlinetools","gradleorg"],Testing:["jestjsio","mochajsorg","cypressio","seleniumdev","playwrightdev","puppeteerdev","testcafeio","pytestorg","unittestpythonorg","rspecinfo","junitorg","testngorg","webdriverio","vitestdev","avajs","jasminegjscom","karmatestrunnerorg"],Cryptocurrency:["bitcoinorg","ethereumorg","solanacom","getfoundrysh","racoonorg","elementsprojectorg","githubcom10gicvanitygenplusplus","ghostscriptcom","polkadotnetwork","avalanchenetwork","chainlinkcom","cardanoorg"],"Financial Tools":["raccoinorg","gnucashorg","ledgercliorg","beancountgooglecodecom","plaintextaccountingorg","quickencom","mintcom","ynabcom"],"Documentation & Text Processing":["pandocorg","texliveorg","latexprojectorg","asciidocorg","asciidoctororg","sphinxdocorg","mkdocsorg","gitbookcom","githubiohugohugorg","jekyllrb","docsifyjs","rustlangorgmdbook","typstapp","tectonic_typesettinggithubio","maaslalanicomslides"],"System Administration":["systemdio","crongnuorg","rsyncsambaorg","opensshcom","sudows","tmuxgithubcom","gnuorgscreen","htopdev","iostat","psmisc","procpsng","straceio","ltraceorg","lsofio","tcpdumporg","logrotateorg","monitoringpluginsorg"],"Scientific Computing":["numpyorg","scipyorg","pandasdataorg","matplotliborg","seabornpydataorg","plotlycom","jupyterorg","anacondacom","rorg","rstudiocom","octaveorg","matlabcom","mathematicawolframcom","sagemath","maxima","gnuplotorg","paravieworg","vtk"],"Embedded & IoT":["arduino","platformio","espressifcom","raspberrypiorg","mbed","freedosorg","qemuorg","openocdorg","stlink","jlinkorg","modbus","zigbeeorg","gpiozeropythonorg"],"Version Control":["git","gh","gitlab"],"Other Utilities":[]}}function lw(w){if(c[w])return c[w];return w.replace(/\W/g,"_")}function cw(w){return w.toLowerCase()}function Qw(w,Q,R){try{let $=Q||Jw,q=R||L.join($,`${w}.ts`),Y=b.readFileSync(q,"utf-8"),Z=Y.match(/export const (\w+) = \{/),X=Z?Z[1]:`${w.replace(/\W/g,"")}Package`,H=Y.match(/export type (\w+) = typeof/),W=H?H[1]:`${X.charAt(0).toUpperCase()}${X.slice(1)}`;return{packageVarName:X,typeName:W}}catch($){console.warn(`Could not read package file ${R||`${w}.ts`}, using fallback naming:`,$);let q=KQ(w),Y=BQ(w);return{packageVarName:q,typeName:Y}}}function BQ(w){if(c[w]){let $=c[w];return`${$.charAt(0).toUpperCase()}${$.slice(1)}Package`}let R=cw(w).replace(/\W/g,"");return`${R.charAt(0).toUpperCase()}${R.slice(1)}Package`}function KQ(w){if(c[w])return`${c[w]}Package`;return`${cw(w).replace(/\W/g,"")}Package`}function UQ(w,Q){let{typeName:R}=Qw(w,Q);return R}function GQ(w,Q){let{packageVarName:R}=Qw(w,Q);return R}async function zw(w){try{console.log("\uD83D\uDD27 Generating package index..."),console.log(`DEBUG generateIndex START: packagesDir=${w}`),console.log(`DEBUG generateIndex START: process.cwd()=${V.cwd()}`);let Q=w||Jw,R=L.resolve(Q,"index.ts");if(console.log(`DEBUG generateIndex: packagesDir=${w}`),console.log(`DEBUG generateIndex: PACKAGES_DIR=${Jw}`),console.log(`DEBUG generateIndex: targetPackagesDir=${Q}`),console.log(`DEBUG generateIndex: targetIndexFile=${R}`),console.log(`DEBUG generateIndex: path.isAbsolute(targetIndexFile)=${L.isAbsolute(R)}`),!b.existsSync(Q))console.log(`Creating packages directory: ${Q}`),b.mkdirSync(Q,{recursive:!0});if(!b.existsSync(Q))return console.error(`Failed to create packages directory: ${Q}`),null;let $=[];try{let Y=function(Z,X=""){let H=[],W=b.readdirSync(Z,{withFileTypes:!0});for(let J of W)if(J.isFile()&&J.name.endsWith(".ts")&&J.name!=="index.ts"&&J.name!=="aliases.ts")H.push(L.join(Z,J.name));else if(J.isDirectory()&&!J.name.startsWith(".")){let j=L.join(Z,J.name),O=X?`${X}/${J.name}`:J.name;H.push(...Y(j,O))}return H};$=Y(Q),console.log(`Found ${$.length} package files`)}catch(Y){console.error(`Error reading packages directory ${Q}:`,Y),$=[]}let q=`// Auto-generated package index
|
|
8
8
|
// Do not edit this file directly
|
|
9
9
|
|
|
10
10
|
export interface Pantry {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
import{Ab as d,xb as b,yb as c}from"./chunk-
|
|
1
|
+
import{Ab as d,xb as b,yb as c}from"./chunk-09bjpt47.js";import{Bb as a}from"./chunk-g7ewnsa6.js";import"./chunk-sd8qadhd.js";d();export{b as pantry,c as packages,a as aliases};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
import{kb as a,lb as b,mb as c,nb as d,ob as e,pb as f,qb as g,rb as h,sb as i,tb as j,ub as k,vb as l,wb as m}from"./chunk-
|
|
1
|
+
import{kb as a,lb as b,mb as c,nb as d,ob as e,pb as f,qb as g,rb as h,sb as i,tb as j,ub as k,vb as l,wb as m}from"./chunk-0gq0dg2k.js";import"./chunk-09bjpt47.js";import"./chunk-g7ewnsa6.js";import"./chunk-sd8qadhd.js";export{l as validatePackageSpec,h as searchPackages,m as resolveVersionFromMetadata,e as resolveVersion,g as resolvePackageDomain,d as isVersionAvailable,j as getPopularPackages,c as getPhpVersionsForWorkflow,i as getPackagesByPattern,f as getPackageInfo,a as getLatestVersion,b as getAvailableVersions,k as getActivePackages};
|
|
@@ -61,7 +61,7 @@ export declare const opencodeaiPackage: {
|
|
|
61
61
|
* Available versions from newest to oldest.
|
|
62
62
|
* @see https://ts-pantry.netlify.app/usage for installation instructions
|
|
63
63
|
*/
|
|
64
|
-
versions: readonly ['1.3.0', '1.2.27', '1.2.26', '1.2.25', '1.2.24', '1.2.23', '1.2.22', '1.2.21', '1.2.20', '1.2.19', '1.2.18', '1.2.17', '1.2.16', '1.2.15', '1.2.14', '1.2.13', '1.2.12', '1.2.11', '1.2.10', '1.2.9', '1.2.8', '1.2.7', '1.2.6', '1.2.5', '1.2.4', '1.2.3', '1.2.2', '1.2.1', '1.2.0', '1.1.65', '1.1.64', '1.1.63', '1.1.62', '1.1.61', '1.1.60', '1.1.59', '1.1.58', '1.1.57', '1.1.56', '1.1.55', '1.1.54', '1.1.53', '1.1.52', '1.1.51', '1.1.50', '1.1.49', '1.1.48', '1.1.47', '1.1.46', '1.1.45'];
|
|
64
|
+
versions: readonly ['1.3.1', '1.3.0', '1.2.27', '1.2.26', '1.2.25', '1.2.24', '1.2.23', '1.2.22', '1.2.21', '1.2.20', '1.2.19', '1.2.18', '1.2.17', '1.2.16', '1.2.15', '1.2.14', '1.2.13', '1.2.12', '1.2.11', '1.2.10', '1.2.9', '1.2.8', '1.2.7', '1.2.6', '1.2.5', '1.2.4', '1.2.3', '1.2.2', '1.2.1', '1.2.0', '1.1.65', '1.1.64', '1.1.63', '1.1.62', '1.1.61', '1.1.60', '1.1.59', '1.1.58', '1.1.57', '1.1.56', '1.1.55', '1.1.54', '1.1.53', '1.1.52', '1.1.51', '1.1.50', '1.1.49', '1.1.48', '1.1.47', '1.1.46', '1.1.45'];
|
|
65
65
|
aliases: readonly []
|
|
66
66
|
};
|
|
67
67
|
export type OpencodeaiPackage = typeof opencodeaiPackage;
|
package/dist/src/index.js
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
import{$ as Va,A as P,B as Q,C as R,D as S,E as T,F as Z,G as _,H as $,I as aa,J as ba,K as ca,L as da,M as ea,N as fa,O as Ia,P as Ja,Q as Ka,R as La,S as Ma,T as Na,U as Oa,V as Pa,W as Qa,X as Ra,Y as Sa,Z as Ta,_ as Ua,a as b,aa as Wa,b as c,ba as Xa,c as d,ca as Ya,d as e,da as Za,e as f,ea as _a,f as g,fa as $a,g as h,ga as ab,h as i,ha as bb,i as j,ia as cb,j as k,ja as db,k as l,ka as eb,l as m,la as fb,m as n,ma as gb,n as o,na as hb,o as p,oa as ib,p as q,pa as jb,q as r,qa as kb,r as s,ra as lb,s as t,sa as mb,t as I,ta as nb,u as J,ua as ob,v as K,w as L,x as M,y as N,z as O}from"../chunk-
|
|
1
|
+
import{$ as Va,A as P,B as Q,C as R,D as S,E as T,F as Z,G as _,H as $,I as aa,J as ba,K as ca,L as da,M as ea,N as fa,O as Ia,P as Ja,Q as Ka,R as La,S as Ma,T as Na,U as Oa,V as Pa,W as Qa,X as Ra,Y as Sa,Z as Ta,_ as Ua,a as b,aa as Wa,b as c,ba as Xa,c as d,ca as Ya,d as e,da as Za,e as f,ea as _a,f as g,fa as $a,g as h,ga as ab,h as i,ha as bb,i as j,ia as cb,j as k,ja as db,k as l,ka as eb,l as m,la as fb,m as n,ma as gb,n as o,na as hb,o as p,oa as ib,p as q,pa as jb,q as r,qa as kb,r as s,ra as lb,s as t,sa as mb,t as I,ta as nb,u as J,ua as ob,v as K,w as L,x as M,y as N,z as O}from"../chunk-gb3fek73.js";import{Aa as ub,Ba as vb,Ca as wb,Da as xb,Ea as yb,va as pb,wa as qb,xa as rb,ya as sb,za as tb}from"../chunk-gt3n3063.js";import{Fa as ua,Ga as va,Ha as wa,Ia as xa,Ja as ya,Ka as za,La as Aa,Ma as Ba,Na as Ca,Oa as Da,Pa as Ea,Qa as Fa,Ra as Ga,Sa as Ha}from"../chunk-e9nvfetz.js";import{$a as oa,Ta as ga,Ua as ha,Va as ia,Wa as ja,Xa as ka,Ya as la,Za as ma,_a as na,ab as pa,bb as qa,cb as ra,db as sa,eb as ta}from"../chunk-7twbwq9b.js";import{fb as U,gb as V,hb as W,ib as X,jb as Y}from"../chunk-xxpems7r.js";import{kb as w,lb as x,mb as y,nb as z,ob as A,pb as B,rb as C,sb as D,tb as E,ub as F,vb as G,wb as H}from"../chunk-0gq0dg2k.js";import{xb as u,yb as v}from"../chunk-09bjpt47.js";import{Bb as a}from"../chunk-g7ewnsa6.js";import"../chunk-04eamjdw.js";import"../chunk-sd8qadhd.js";export{mb as withTempDirSync,lb as withTempDir,eb as withRedis,ab as withPostgres,ib as withMysql,G as validatePackageSpec,N as validatePackage,r as v,db as useRedis,$a as usePostgres,hb as useMysql,Oa as updatePackageVersionMap,yb as updateApp,Ja as toTypeName,Ia as toSafeVarName,Ka as toPackageVarName,cb as stopRedis,_a as stopPostgres,gb as stopMysql,bb as startRedis,Za as startPostgres,Ca as startPeriodicCleanup,fb as startMysql,I as showPackageInfo,ha as shouldProceedWithGitHubRequest,Ba as setupCleanupHandlers,J as searchPackagesCommand,C as searchPackages,Fa as scanPantryPackages,vb as scanInstalledApps,xa as saveToCacheAndOutput,ga as saveRateLimitInfo,ua as savePackageAsTypeScript,ja as saveGitHubPackageCache,H as resolveVersionFromMetadata,aa as resolveVersionConstraint,A as resolveVersion,ca as resolveTransitiveDependencies,i as resolvePackageName,qa as resolvePackageDomain,Ra as resolvePackageDependencies,ea as resolveDependencyFile,Qa as resolveDependenciesFromYaml,Pa as resolveDependencies,kb as removeTempDir,Ta as readProjectDependencies,Ga as readPantryPackageInfo,wb as queryBrewCaskVersions,s as pkg,j as parsePackageSpec,_ as parseDepsYamlConfig,Z as parseDependencyFile,u as pantry,v as packages,la as logPkgxProjects,K as listPopularPackages,M as listAliases,L as listActivePackages,z as isVersionAvailable,d as isValidPackageName,e as isSupportedPlatform,f as isSupportedArchitecture,q as isPackageInCategory,c as isPackageDomain,b as isPackageAlias,sb as isNewerVersion,sa as isKnownAlias,pa as guessOriginalDomain,tb as guessCaskToken,P as getVersionInfo,wa as getValidCachedPackage,T as getSystemInfo,E as getPopularPackages,y as getPhpVersionsForWorkflow,D as getPackagesByPattern,p as getPackagesByCategory,B as getPackageInfo,ra as getPackageAliases,w as getLatestVersion,Sa as getInstallCommand,ia as getGitHubPackageCache,ub as getCaskToken,ta as getCanonicalDomain,$ as getAvailableVersionsForPackage,x as getAvailableVersions,h as getAllPackageDomains,g as getAllPackageAliases,F as getActivePackages,La as generateIndex,Na as generateDocs,Ma as generateAliases,R as formatSearchResults,k as formatPackageSpec,Q as formatPackageInfo,ma as formatObjectWithoutQuotedKeys,S as formatInstallPlan,fa as findDependencyFiles,za as fetchPkgxProjects,Ha as fetchPantryPackageWithMetadata,Aa as fetchPantryPackage,ka as fetchPackageListFromGitHub,Ea as fetchAndSavePackage,Da as fetchAndSaveAllPackages,l as detectPlatform,t as dependencies,Xa as definePantryConfig,Va as definePackageList,Ua as defineDependencies,da as deduplicateDependencies,nb as createTestFile,ob as createTestDir,jb as createTempDir,m as createInstallationContext,O as createInstallPlan,na as convertDomainToVarName,oa as convertDomainToFileName,ba as compareVersions,ya as cleanupBrowserResources,va as cleanStaleOutputFiles,xb as checkAppUpdates,a as aliases,n as VERSION_SPECS,qb as SYSTEM_APPS,Ya as PantryService,o as PACKAGE_CATEGORIES,X as PACKAGE_ALIASES,rb as MAS_APPS,Wa as DISTRIBUTION_CONFIG,W as DEFAULT_TIMEOUT_MS,V as DEFAULT_CACHE_EXPIRATION_MINUTES,U as DEFAULT_CACHE_DIR,pb as APP_CASK_MAP,Y as ALL_KNOWN_PACKAGES};
|