ts-pantry 0.9.20 → 0.9.21

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (223) hide show
  1. package/dist/bin/cli.js +7 -7
  2. package/dist/chunk-2dk28v6k.js +2 -0
  3. package/dist/chunk-2nfjspwd.js +1 -0
  4. package/dist/{chunk-t71cv3gr.js → chunk-9f0255fc.js} +1 -1
  5. package/dist/{chunk-2hbhg54n.js → chunk-b0zr0ad6.js} +1 -1
  6. package/dist/{chunk-vy4gt433.js → chunk-bmr9qds3.js} +1 -1
  7. package/dist/chunk-cdzdw53j.js +42 -0
  8. package/dist/chunk-f2c8kapq.js +2 -0
  9. package/dist/{chunk-j9mv6dze.js → chunk-h8phykmh.js} +1 -1
  10. package/dist/chunk-jym7xrra.js +2 -0
  11. package/dist/{chunk-th964914.js → chunk-k4yefwkp.js} +15 -15
  12. package/dist/chunk-nqztmdqz.js +275 -0
  13. package/dist/{chunk-5798tqhf.js → chunk-t8296krc.js} +1 -1
  14. package/dist/{chunk-33qtfw71.js → chunk-xkm30wah.js} +2 -2
  15. package/dist/chunk-y5rfbg9v.js +11 -0
  16. package/dist/consts.d.ts +1 -1
  17. package/dist/desktop-apps.d.ts +1 -0
  18. package/dist/packages/alacrittyorg.d.ts +1 -1
  19. package/dist/packages/alttabapp.d.ts +1 -1
  20. package/dist/packages/ansiblecom.d.ts +1 -1
  21. package/dist/packages/apktoolorg.d.ts +1 -1
  22. package/dist/packages/arkadedev.d.ts +1 -1
  23. package/dist/packages/atlasgoio.d.ts +1 -1
  24. package/dist/packages/augeasnet.d.ts +1 -1
  25. package/dist/packages/babashkaorg.d.ts +1 -1
  26. package/dist/packages/borepub.d.ts +1 -1
  27. package/dist/packages/bufbuild.d.ts +1 -1
  28. package/dist/packages/bytebasecom.d.ts +1 -1
  29. package/dist/packages/casdoororg.d.ts +1 -1
  30. package/dist/packages/ccachedev.d.ts +1 -1
  31. package/dist/packages/certbotefforg.d.ts +1 -1
  32. package/dist/packages/chezmoiio.d.ts +1 -1
  33. package/dist/packages/circlecicom.d.ts +1 -1
  34. package/dist/packages/cligithubcom.d.ts +1 -1
  35. package/dist/packages/cmakeorg.d.ts +1 -1
  36. package/dist/packages/cnqueryio.d.ts +1 -1
  37. package/dist/packages/codercom.d.ts +1 -1
  38. package/dist/packages/codevisualstudiocom.d.ts +1 -1
  39. package/dist/packages/cointopsh.d.ts +1 -1
  40. package/dist/packages/conftestdev.d.ts +1 -1
  41. package/dist/packages/convcogithubio.d.ts +1 -1
  42. package/dist/packages/cuelangorg.d.ts +1 -1
  43. package/dist/packages/cythonorg.d.ts +1 -1
  44. package/dist/packages/daggerio.d.ts +1 -1
  45. package/dist/packages/daytonaio.d.ts +1 -1
  46. package/dist/packages/dblabdanvergaracom.d.ts +1 -1
  47. package/dist/packages/denoland.d.ts +1 -1
  48. package/dist/packages/depotdev.d.ts +1 -1
  49. package/dist/packages/dgraphio.d.ts +1 -1
  50. package/dist/packages/direnvnet.d.ts +1 -1
  51. package/dist/packages/dotnetmicrosoftcom.d.ts +1 -1
  52. package/dist/packages/dozzledev.d.ts +1 -1
  53. package/dist/packages/dprintdev.d.ts +1 -1
  54. package/dist/packages/duckdborg.d.ts +1 -1
  55. package/dist/packages/elementsprojectorg.d.ts +1 -1
  56. package/dist/packages/encoredev.d.ts +1 -1
  57. package/dist/packages/etcdio.d.ts +1 -1
  58. package/dist/packages/fastlanetools.d.ts +1 -1
  59. package/dist/packages/flyio.d.ts +1 -1
  60. package/dist/packages/getcomposerorg.d.ts +1 -1
  61. package/dist/packages/getsynthcom.d.ts +1 -1
  62. package/dist/packages/getzolaorg.d.ts +1 -1
  63. package/dist/packages/gflagsgithubio.d.ts +1 -1
  64. package/dist/packages/ghostscriptcom.d.ts +1 -1
  65. package/dist/packages/gleamrun.d.ts +1 -1
  66. package/dist/packages/gohugoio.d.ts +1 -1
  67. package/dist/packages/goreleasercom.d.ts +1 -1
  68. package/dist/packages/gourceio.d.ts +1 -1
  69. package/dist/packages/graphitesilorg.d.ts +1 -1
  70. package/dist/packages/harfbuzzorg.d.ts +1 -1
  71. package/dist/packages/hasuraio.d.ts +1 -1
  72. package/dist/packages/helmsh.d.ts +1 -1
  73. package/dist/packages/htopdev.d.ts +1 -1
  74. package/dist/packages/httpieio.d.ts +1 -1
  75. package/dist/packages/huggingfaceco.d.ts +1 -1
  76. package/dist/packages/imagemagickorg.d.ts +1 -1
  77. package/dist/packages/infracostio.d.ts +1 -1
  78. package/dist/packages/ipythonorg.d.ts +1 -1
  79. package/dist/packages/irohcomputer.d.ts +1 -1
  80. package/dist/packages/istioio.d.ts +1 -1
  81. package/dist/packages/jbangdev.d.ts +1 -1
  82. package/dist/packages/jemallocnet.d.ts +1 -1
  83. package/dist/packages/jujuis.d.ts +1 -1
  84. package/dist/packages/julialangorg.d.ts +1 -1
  85. package/dist/packages/jumppaddev.d.ts +1 -1
  86. package/dist/packages/k3dio.d.ts +1 -1
  87. package/dist/packages/k6io.d.ts +1 -1
  88. package/dist/packages/kagglecom.d.ts +1 -1
  89. package/dist/packages/kubesharkco.d.ts +1 -1
  90. package/dist/packages/laravelcom.d.ts +1 -1
  91. package/dist/packages/lavinmqcom.d.ts +1 -1
  92. package/dist/packages/libcxxllvmorg.d.ts +1 -1
  93. package/dist/packages/libeventorg.d.ts +1 -1
  94. package/dist/packages/libexifgithubio.d.ts +1 -1
  95. package/dist/packages/libgdgithubio.d.ts +1 -1
  96. package/dist/packages/libssh2org.d.ts +1 -1
  97. package/dist/packages/libusbinfo.d.ts +1 -1
  98. package/dist/packages/libuvorg.d.ts +1 -1
  99. package/dist/packages/libvipsorg.d.ts +1 -1
  100. package/dist/packages/libziporg.d.ts +1 -1
  101. package/dist/packages/liteclicom.d.ts +1 -1
  102. package/dist/packages/littlecmscom.d.ts +1 -1
  103. package/dist/packages/llmdatasetteio.d.ts +1 -1
  104. package/dist/packages/llvmorg.d.ts +1 -1
  105. package/dist/packages/localaiio.d.ts +1 -1
  106. package/dist/packages/luarocksorg.d.ts +1 -1
  107. package/dist/packages/lxmlde.d.ts +1 -1
  108. package/dist/packages/macfusegithubio.d.ts +1 -1
  109. package/dist/packages/macvimorg.d.ts +1 -1
  110. package/dist/packages/mailpitaxllentorg.d.ts +1 -1
  111. package/dist/packages/maturinrs.d.ts +1 -1
  112. package/dist/packages/mavenapacheorg.d.ts +1 -1
  113. package/dist/packages/meilisearchcom.d.ts +1 -1
  114. package/dist/packages/mercurerocks.d.ts +1 -1
  115. package/dist/packages/mesonbuildcom.d.ts +1 -1
  116. package/dist/packages/misejdxdev.d.ts +1 -1
  117. package/dist/packages/mitmproxyorg.d.ts +1 -1
  118. package/dist/packages/mkcertdev.d.ts +1 -1
  119. package/dist/packages/moshorg.d.ts +1 -1
  120. package/dist/packages/msgpackorg.d.ts +1 -1
  121. package/dist/packages/neovimio.d.ts +1 -1
  122. package/dist/packages/networkxorg.d.ts +1 -1
  123. package/dist/packages/nginxorg.d.ts +1 -1
  124. package/dist/packages/nodejsorg.d.ts +1 -1
  125. package/dist/packages/nomadprojectio.d.ts +1 -1
  126. package/dist/packages/npmjscom.d.ts +1 -1
  127. package/dist/packages/nushellsh.d.ts +1 -1
  128. package/dist/packages/odigosio.d.ts +1 -1
  129. package/dist/packages/ohmyposhdev.d.ts +1 -1
  130. package/dist/packages/ollamaai.d.ts +1 -1
  131. package/dist/packages/onefetchdev.d.ts +1 -1
  132. package/dist/packages/openblasnet.d.ts +1 -1
  133. package/dist/packages/opencodeai.d.ts +1 -1
  134. package/dist/packages/openexrcom.d.ts +1 -1
  135. package/dist/packages/openjpegorg.d.ts +1 -1
  136. package/dist/packages/openmpllvmorg.d.ts +1 -1
  137. package/dist/packages/openpolicyagentorg.d.ts +1 -1
  138. package/dist/packages/opensearchorg.d.ts +1 -1
  139. package/dist/packages/opentofuorg.d.ts +1 -1
  140. package/dist/packages/orasland.d.ts +1 -1
  141. package/dist/packages/packerio.d.ts +1 -1
  142. package/dist/packages/phpnet.d.ts +1 -1
  143. package/dist/packages/pinnipeddev.d.ts +1 -1
  144. package/dist/packages/pipenvpypaio.d.ts +1 -1
  145. package/dist/packages/planetscalecom.d.ts +1 -1
  146. package/dist/packages/pocketbaseio.d.ts +1 -1
  147. package/dist/packages/podmanio.d.ts +1 -1
  148. package/dist/packages/postgrestorg.d.ts +1 -1
  149. package/dist/packages/prefixdev.d.ts +1 -1
  150. package/dist/packages/projenio.d.ts +1 -1
  151. package/dist/packages/projorg.d.ts +1 -1
  152. package/dist/packages/pulumiio.d.ts +1 -1
  153. package/dist/packages/pygmentsorg.d.ts +1 -1
  154. package/dist/packages/railwayapp.d.ts +1 -1
  155. package/dist/packages/rapidjsonorg.d.ts +1 -1
  156. package/dist/packages/rcloneorg.d.ts +1 -1
  157. package/dist/packages/rectangleapp.d.ts +1 -1
  158. package/dist/packages/rendercom.d.ts +1 -1
  159. package/dist/packages/replibytecom.d.ts +1 -1
  160. package/dist/packages/rhashsourceforgenet.d.ts +1 -1
  161. package/dist/packages/riotermcom.d.ts +1 -1
  162. package/dist/packages/rubocoporg.d.ts +1 -1
  163. package/dist/packages/rubygemsorg.d.ts +1 -1
  164. package/dist/packages/runatlantisio.d.ts +1 -1
  165. package/dist/packages/s3toolsorg.d.ts +1 -1
  166. package/dist/packages/scalewaycom.d.ts +1 -1
  167. package/dist/packages/seaweedfscom.d.ts +1 -1
  168. package/dist/packages/sentryio.d.ts +1 -1
  169. package/dist/packages/shellchecknet.d.ts +1 -1
  170. package/dist/packages/skaffolddev.d.ts +1 -1
  171. package/dist/packages/sniffnetnet.d.ts +1 -1
  172. package/dist/packages/soldeerxyz.d.ts +1 -1
  173. package/dist/packages/soliditylangorg.d.ts +1 -1
  174. package/dist/packages/sqlcdev.d.ts +1 -1
  175. package/dist/packages/squawkhqcom.d.ts +1 -1
  176. package/dist/packages/starshiprs.d.ts +1 -1
  177. package/dist/packages/statsapp.d.ts +1 -1
  178. package/dist/packages/steampipeio.d.ts +1 -1
  179. package/dist/packages/straceio.d.ts +1 -1
  180. package/dist/packages/streamlinkgithubio.d.ts +1 -1
  181. package/dist/packages/stripecom.d.ts +1 -1
  182. package/dist/packages/swiftorg.d.ts +1 -1
  183. package/dist/packages/symfonycom.d.ts +1 -1
  184. package/dist/packages/sympyorg.d.ts +1 -1
  185. package/dist/packages/syncthingnet.d.ts +1 -1
  186. package/dist/packages/tailwindcsscom.d.ts +1 -1
  187. package/dist/packages/tartrun.d.ts +1 -1
  188. package/dist/packages/taskfiledev.d.ts +1 -1
  189. package/dist/packages/terraformio.d.ts +1 -1
  190. package/dist/packages/terragruntgruntworkio.d.ts +1 -1
  191. package/dist/packages/terratagio.d.ts +1 -1
  192. package/dist/packages/tiltdev.d.ts +1 -1
  193. package/dist/packages/tinygoorg.d.ts +1 -1
  194. package/dist/packages/tldrsh.d.ts +1 -1
  195. package/dist/packages/toxwiki.d.ts +1 -1
  196. package/dist/packages/traefikio.d.ts +1 -1
  197. package/dist/packages/tursotech.d.ts +1 -1
  198. package/dist/packages/typescriptlangorg.d.ts +1 -1
  199. package/dist/packages/uriparsergithubio.d.ts +1 -1
  200. package/dist/packages/vapoursynthcom.d.ts +1 -1
  201. package/dist/packages/vaultprojectio.d.ts +1 -1
  202. package/dist/packages/wavpackcom.d.ts +1 -1
  203. package/dist/packages/werfio.d.ts +1 -1
  204. package/dist/packages/xcfiledev.d.ts +1 -1
  205. package/dist/packages/xkbcommonorg.d.ts +1 -1
  206. package/dist/packages/zarfdev.d.ts +1 -1
  207. package/dist/packages/zeddev.d.ts +1 -1
  208. package/dist/packages/zeromqorg.d.ts +1 -1
  209. package/dist/packages/ziglangorg.d.ts +3 -3
  210. package/dist/packages/zotregistrydev.d.ts +1 -1
  211. package/dist/packages/zrokio.d.ts +1 -1
  212. package/dist/pantry-api.d.ts +1 -0
  213. package/dist/src/index.js +1 -1
  214. package/dist/testing/index.d.ts +3 -0
  215. package/package.json +3 -4
  216. package/dist/chunk-c5xmxyxn.js +0 -2
  217. package/dist/chunk-hxhs2gtk.js +0 -2
  218. package/dist/chunk-r8pej0xx.js +0 -275
  219. package/dist/chunk-tjxmz5d2.js +0 -42
  220. package/dist/chunk-w6phftp9.js +0 -11
  221. package/dist/chunk-zddfmw54.js +0 -2
  222. package/dist/chunk-zsgm3kjz.js +0 -1
  223. package/scripts/pantry-cli.ts +0 -319
@@ -0,0 +1 @@
1
+ import{lb as a,mb as b,nb as c,ob as d,pb as e}from"./chunk-jym7xrra.js";import"./chunk-yjz3e391.js";export{d as PACKAGE_ALIASES,c as DEFAULT_TIMEOUT_MS,b as DEFAULT_CACHE_EXPIRATION_MINUTES,a as DEFAULT_CACHE_DIR,e as ALL_KNOWN_PACKAGES};
@@ -1 +1 @@
1
- import{$a as c,Za as a,_a as b,ab as d,bb as e,cb as f,db as g,eb as h,fb as i,gb as j,hb as k,ib as l,jb as m,kb as n}from"./chunk-w6phftp9.js";import"./chunk-q7s2k65w.js";import"./chunk-yjz3e391.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};
1
+ import{$a as c,Za as a,_a as b,ab as d,bb as e,cb as f,db as g,eb as h,fb as i,gb as j,hb as k,ib as l,jb as m,kb as n}from"./chunk-y5rfbg9v.js";import"./chunk-q7s2k65w.js";import"./chunk-yjz3e391.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};
@@ -1 +1 @@
1
- import{Db as b,Eb as c,Gb as d}from"./chunk-zddfmw54.js";import{Hb as a}from"./chunk-q7s2k65w.js";import"./chunk-yjz3e391.js";d();export{b as pantry,c as packages,a as aliases};
1
+ import{Db as b,Eb as c,Gb as d}from"./chunk-2dk28v6k.js";import{Hb as a}from"./chunk-q7s2k65w.js";import"./chunk-yjz3e391.js";d();export{b as pantry,c as packages,a as aliases};
@@ -1 +1 @@
1
- import{Ab as k,Bb as l,Cb as m,qb as a,rb as b,sb as c,tb as d,ub as e,vb as f,wb as g,xb as h,yb as i,zb as j}from"./chunk-hxhs2gtk.js";import"./chunk-zddfmw54.js";import"./chunk-q7s2k65w.js";import"./chunk-yjz3e391.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};
1
+ import{Ab as k,Bb as l,Cb as m,qb as a,rb as b,sb as c,tb as d,ub as e,vb as f,wb as g,xb as h,yb as i,zb as j}from"./chunk-f2c8kapq.js";import"./chunk-2dk28v6k.js";import"./chunk-q7s2k65w.js";import"./chunk-yjz3e391.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};
@@ -0,0 +1,42 @@
1
+ import{lb as l,mb as r,nb as p}from"./chunk-jym7xrra.js";import{Hb as d,Ib as JQ}from"./chunk-q7s2k65w.js";import{Jb as qQ,Kb as ZQ}from"./chunk-p9e5z92g.js";import{Pb as $Q}from"./chunk-yjz3e391.js";import H from"node:fs";import F from"node:path";import h from"node:process";JQ();var YQ=async(...Q)=>null;function c(Q,K){let G=Q.replace(/^v/,"").split("."),$=K.replace(/^v/,"").split(".");for(let q=0;q<Math.max(G.length,$.length);q++){let Z=Number.parseInt(G[q]||"0",10),X=Number.parseInt($[q]||"0",10);if(!Number.isNaN(Z)&&!Number.isNaN(X)){if(Z!==X)return X-Z}else{let Y=($[q]||"").localeCompare(G[q]||"");if(Y!==0)return Y}}return 0}function QQ(Q){if(Q.includes("/")){let[K,...G]=Q.split("/"),$=G.join("/"),q=K.replace(/\./g,"");if(K.includes("github.com")){let X=$.split("/");return X[X.length-1].replace(/[.-]/g,"").toLowerCase()}let Z=$.replace(/[/.-]/g,"");return`${q}${Z}`.toLowerCase()}return Q.replace(/\./g,"").toLowerCase()}function WQ(Q,K){switch(Q){case"versions":if(Array.isArray(K)&&K.length>0)return` /**
2
+ * Available versions from newest to oldest.
3
+ * @see https://ts-pantry.netlify.app/usage for installation instructions
4
+ */`;break;case"programs":if(Array.isArray(K)&&K.length>0)return` /**
5
+ * Executable programs provided by this package.
6
+ * These can be run after installation.
7
+ */`;break;case"dependencies":if(Array.isArray(K)&&K.length>0)return` /**
8
+ * Runtime dependencies for this package.
9
+ * These are required when running the package.${K.some((q)=>typeof q==="string"&&q.includes(":"))?"\n * OS-specific dependencies are prefixed with `os:` (e.g., `linux:freetype.org`).":""}
10
+ */`;break;case"buildDependencies":if(Array.isArray(K)&&K.length>0)return` /**
11
+ * Build dependencies for this package.
12
+ * These are only required when building the package from source.${K.some((q)=>typeof q==="string"&&q.includes(":"))?"\n * OS-specific dependencies are prefixed with `os:` (e.g., `linux:gnu.org/gcc`).":""}
13
+ */`;break;case"companions":if(Array.isArray(K)&&K.length>0)return` /**
14
+ * Related packages that work well with this package.
15
+ * Consider installing these for enhanced functionality.
16
+ */`;break;case"aliases":if(Array.isArray(K)&&K.length>0)return` /**
17
+ * Alternative names for this package.
18
+ * You can use any of these names to access the package.
19
+ */`;break;case"installCommand":return` /**
20
+ * Command to install this package using pantry.
21
+ * @example pantry install package-name
22
+ */`;case"description":return` /**
23
+ * Brief description of what this package does.
24
+ */`;case"domain":return` /**
25
+ * The canonical domain name for this package.
26
+ */`;case"name":return` /**
27
+ * The display name of this package.
28
+ */`;default:return null}return null}function KQ(Q){let K=[];K.push("{");for(let[G,$]of Object.entries(Q)){if(G==="fetchedAt")continue;let q=WQ(G,$);if(q)K.push(q);if($===void 0){K.push(` ${G}: undefined,`);continue}if(Array.isArray($))if($.length===0)K.push(` ${G}: [] as const,`);else if(typeof $[0]==="string"){let Z=$;if(G==="aliases"){let X=Q.name;Z=$.filter((Y)=>{if(Y.includes("--")||Y.includes("$SHELL")||Y.includes("+")||Y.includes("(")||Y.includes(")"))return!1;if(Y===X)return!1;return!0})}if(Z.length===0)K.push(` ${G}: [] as const,`);else{K.push(` ${G}: [`);for(let X of Z)K.push(` '${String(X).replace(/'/g,"\\'")}',`);K.push(" ] as const,")}}else{let Z=JSON.stringify($).replace(/"/g,"'");K.push(` ${G}: ${Z} as const,`)}else if(typeof $==="string")K.push(` ${G}: '${String($).replace(/'/g,"\\'")}' as const,`);else if(typeof $==="number"||typeof $==="boolean")K.push(` ${G}: ${$} as const,`);else if($===null)K.push(` ${G}: null,`);else if(typeof $==="object")K.push(` ${G}: ${KQ($)},`);else{let Z=JSON.stringify($).replace(/"/g,"'");K.push(` ${G}: ${Z},`)}}return K.push("}"),K.join(`
29
+ `)}function zQ(Q,K,G){let $=[];if($.push("/**"),Q.description)$.push(` * **${G}** - ${Q.description.trim()}`);else $.push(` * **${G}** - pkgx package`);if($.push(" *"),$.push(` * @domain \`${Q.domain||K}\``),Q.programs&&Q.programs.length>0){let q=Q.programs.slice(0,5).join("`, `"),Z=Q.programs.length>5?`, ... (+${Q.programs.length-5} more)`:"";$.push(` * @programs \`${q}\`${Z}`)}if(Q.versions&&Q.versions.length>0)$.push(` * @version \`${Q.versions[0]}\` (${Q.versions.length} versions available)`),$.push(" * @versions From newest version to oldest.");if(Q.installCommand)$.push(" *"),$.push(` * @install \`${Q.installCommand}\``);if(Q.aliases&&Q.aliases.length>0){let q=Q.aliases.filter((Z)=>{return!Z.includes("--")&&!Z.includes("$SHELL")&&!Z.includes("+")&&!Z.includes("(")&&!Z.includes(")")});if(q.length>0){let Z=Q.name,X=q.filter((W)=>W!==Z),Y=q.find((W)=>W===Z);if(Y)$.push(` * @name \`${Y}\``);if(X.length>0)$.push(` * @aliases ${X.map((W)=>`\`${W}\``).join(", ")}`)}}if(Q.homepageUrl)$.push(` * @homepage ${Q.homepageUrl}`);if(Q.dependencies&&Q.dependencies.length>0){let q=Q.dependencies.slice(0,3).join("`, `"),Z=Q.dependencies.length>3?`, ... (+${Q.dependencies.length-3} more)`:"",Y=Q.dependencies.some((W)=>W.includes(":"))?" (includes OS-specific dependencies with `os:package` format)":"";$.push(` * @dependencies \`${q}\`${Z}${Y}`)}if(Q.buildDependencies&&Q.buildDependencies.length>0){let q=Q.buildDependencies.slice(0,3).join("`, `"),Z=Q.buildDependencies.length>3?`, ... (+${Q.buildDependencies.length-3} more)`:"",Y=Q.buildDependencies.some((W)=>W.includes(":"))?" (includes OS-specific dependencies with `os:package` format)":"";$.push(` * @buildDependencies \`${q}\`${Z}${Y} - required only when building from source`)}if(Q.companions&&Q.companions.length>0){let q=Q.companions.slice(0,3).join("`, `"),Z=Q.companions.length>3?`, ... (+${Q.companions.length-3} more)`:"";$.push(` * @companions \`${q}\`${Z}`)}if($.push(" *"),$.push(" * @example"),$.push(" * ```typescript"),$.push(" * import { pantry } from 'ts-pantry'"),$.push(" *"),Q.aliases&&Q.aliases.length>0){let q=Q.aliases.find((Z)=>{return!Z.includes("--")&&!Z.includes("$SHELL")&&!Z.includes("+")&&!Z.includes("(")&&!Z.includes(")")});if(q){let Z=q.replace(/[^a-z0-9]/gi,""),X=K.replace(/[.-]/g,"").replace(/\//g,"").toLowerCase();if(q===Q.name)$.push(" * // Access the package"),$.push(` * const pkg = pantry.${Z}`),$.push(" * // Or access via domain"),$.push(` * const samePkg = pantry.${X}`),$.push(" * console.log(pkg === samePkg) // true");else $.push(" * // Access via alias (recommended)"),$.push(` * const pkg = pantry.${Z}`),$.push(" * // Or access via domain"),$.push(` * const samePkg = pantry.${X}`),$.push(" * console.log(pkg === samePkg) // true")}else{let Z=K.replace(/[.-]/g,"").replace(/\//g,"").toLowerCase();$.push(` * const pkg = pantry.${Z}`)}}else{let q=K.replace(/[.-]/g,"").replace(/\//g,"").toLowerCase();$.push(` * const pkg = pantry.${q}`)}if($.push(` * console.log(pkg.name) // "${Q.name||G}"`),Q.description){let q=Q.description.length>50?`${Q.description.substring(0,47)}...`:Q.description;$.push(` * console.log(pkg.description) // "${q}"`)}if(Q.programs&&Q.programs.length>0)$.push(` * console.log(pkg.programs) // [${Q.programs.slice(0,2).map((q)=>`"${q}"`).join(", ")}${Q.programs.length>2?", ...":""}]`);if(Q.versions&&Q.versions.length>0)$.push(` * console.log(pkg.versions[0]) // "${Q.versions[0]}" (latest)`);return $.push(" * ```"),$.push(" *"),$.push(` * @see https://ts-pantry.netlify.app/packages/${K.replace(/\./g,"-")}.md`),$.push(" * @see https://ts-pantry.netlify.app/usage"),$.push(" */"),$.join(`
30
+ `)}function _Q(Q,K){function G(W){if(!W||W.length<2)return!1;if(W.includes("--")||W.includes("$SHELL")||W.includes("+")||W.includes("(")||W.includes(")"))return!1;if(["cli","app","tool","server","client","api","lib","core"].includes(W.toLowerCase()))return!1;if(/^[\d.]+$/.test(W)&&/^\d/.test(W))return!1;return!0}let $,q;if(K==="classic.yarnpkg.com")$="classicYarnPackage",q="yarn";else if(K==="yarnpkg.com")$="yarnPackage",q="yarn";else if(Q.aliases&&Q.aliases.length>0){let W=Q.aliases.find((J)=>G(J));if(W){let J=W.replace(/[^a-z0-9]/gi,"");$=`${J.charAt(0).toLowerCase()}${J.slice(1)}Package`,q=W}else $=`${QQ(K)}Package`,q=Q.name||K}else $=`${QQ(K)}Package`,q=Q.name||K;let Z=$.replace(/[^\w$]/g,""),X=zQ(Q,K,q),Y=KQ(Q);return`${X}
31
+ export const ${Z} = ${Y}
32
+
33
+ export type ${Z.charAt(0).toUpperCase()+Z.slice(1)} = typeof ${Z}
34
+ `}function s(Q){let K=Q.replace(/\{\{[^}]*\}\}/g,"").replace(/-{2,}/g,"-").replace(/^-+|-+$/g,"");if(!K||K.length===0)return"package";let G=K.replace(/[^\w.-]/g,"-");if(G.length>200)G=`${G.substring(0,150)}...${G.substring(G.length-45)}`;return G}function f(Q,K,G){if(!H.existsSync(Q))H.mkdirSync(Q,{recursive:!0});let $;if(K.includes("/")){let X=K.split("/");if(X.some((B)=>!B||B===".."||B==="."||B.includes("\x00")||B.includes("\\")))throw Error(`Invalid domain name (contains path-traversal): ${K}`);let Y=X[0],W=X.slice(1),J=F.join(Q,Y,...W.slice(0,-1)),E=F.resolve(Q);if(!F.resolve(J).startsWith(`${E}${F.sep}`)&&F.resolve(J)!==E)throw Error(`Path traversal detected for ${K}`);if(!H.existsSync(J))H.mkdirSync(J,{recursive:!0});let T=s(W[W.length-1]);$=F.join(J,`${T}.ts`)}else{let X=K.replace(/\./g,"");$=F.join(Q,`${X}.ts`)}let q={...G};delete q.fetchedAt;let Z=_Q(q,K);return H.writeFileSync($,Z),$}function SQ(Q,K){if(!H.existsSync(Q))return[];let G=new Set;for(let X of K)if(X.includes("/")){let Y=X.split("/"),W=Y[0],J=Y.slice(1),E=s(J[J.length-1]);G.add(F.resolve(Q,W,...J.slice(0,-1),`${E}.ts`))}else{let Y=X.replace(/\./g,"");G.add(F.resolve(Q,`${Y}.ts`))}let $=new Set(["index.ts","aliases.ts","types.ts"]),q=[];function Z(X){if(!H.existsSync(X))return;for(let Y of H.readdirSync(X,{withFileTypes:!0})){let W=F.join(X,Y.name);if(Y.isDirectory()){if(Z(W),H.existsSync(W)&&H.readdirSync(W).length===0)H.rmdirSync(W)}else if(Y.name.endsWith(".ts")&&!$.has(Y.name)){if(!G.has(F.resolve(W)))H.unlinkSync(W),q.push(W)}}}return Z(Q),q}function jQ(Q,K={}){try{let G=K.cacheDir||l;if(K.cache===!1)return console.log(`Cache disabled for ${Q}, skipping cache check`),null;let q=(d[Q]||Q).replace(/\//g,"-"),Z=F.join(G,`${q}.json`);if(console.log(`Checking for cache file: ${Z}`),!H.existsSync(Z))return null;let X;try{X=JSON.parse(H.readFileSync(Z,"utf-8"))}catch{try{H.unlinkSync(Z)}catch{}return null}if(!X.fetchedAt)return console.log(`Cache for ${Q} missing fetchedAt timestamp, invalidating`),null;if(["Crafters of fine Open Source products","Go home.","Package information for","pkgx package","Loading...","Please wait..."].some((B)=>X.description&&X.description.includes(B)))return console.log(`Cache for ${Q} has generic description "${X.description}", invalidating`),null;if(!X.versions||X.versions.length===0)return console.log(`Cache for ${Q} has no versions, invalidating`),null;let E=(K.cacheExpirationMinutes||r)*60*1000,T=Date.now();if(T-X.fetchedAt>E)return console.log(`Cache for ${Q} has expired (age: ${Math.round((T-X.fetchedAt)/60000)} minutes)`),null;return console.log(`Using cached data for ${Q} (age: ${Math.round((T-X.fetchedAt)/60000)} minutes)`),{packageInfo:X,filePath:Z}}catch(G){return console.error(`Error reading cache for ${Q}:`,G),null}}function HQ(Q,K,G={}){let $={...K,fetchedAt:Date.now()},q=G.cacheDir||l;if(!H.existsSync(q))H.mkdirSync(q,{recursive:!0});let Z=Q.replace(/\//g,"-"),X=F.join(q,`${Z}.json`);H.writeFileSync(X,JSON.stringify($,null,2));let Y=G.outputDir||"packages";if(!H.existsSync(Y))H.mkdirSync(Y,{recursive:!0});let W=f(Y,Q,K);return{cachePath:X,outputPath:W}}function XQ(){return Promise.resolve()}async function yQ(Q={}){let K=Q.apiUrl||"https://api.github.com/repos/pkgxdev/pantry/contents/projects";try{console.log(`Fetching projects from GitHub API: ${K}`);let G=await fetch(K,{headers:{Accept:"application/vnd.github.v3+json"}});if(!G.ok)throw Error(`Failed to fetch from GitHub API: ${G.statusText}`);let q=(await G.json()).filter((Z)=>Z.type==="dir").map((Z)=>({name:Z.name,url:Z.html_url}));return console.log(`Retrieved ${q.length} projects from GitHub API`),q.sort((Z,X)=>Z.name.localeCompare(X.name)),q}catch(G){throw console.error("Error fetching projects from GitHub API:",G),G}}async function t(Q,K={}){let G=Q,$=Q;if(Q.includes("/")){let[q,Z]=Q.split("/");console.log(`Identified nested package: domain=${q}, name=${Z}`)}if(d[Q])console.log(`'${Q}' is an alias for '${d[Q]}', redirecting...`),$=d[Q],Q=d[Q];try{let q=K.timeout||p,Z=await YQ(Q,{timeout:q,useClientSideScraper:!0}),X={name:Z.displayName||Z.name||Q.split("/").pop()||Q,domain:Z.domain||Q,description:Z.description||Z.brief||"",packageYmlUrl:`https://github.com/pkgxdev/pantry/tree/main/projects/${Q}/package.yml`,homepageUrl:Z.homepage||"",githubUrl:Z.github||"",installCommand:`pantry install ${Q}`,pkgxInstallCommand:`sh <(curl https://pkgx.sh) +${Q} -- $SHELL -i`,pantryInstallCommand:`pantry install ${Q}`,programs:Z.provides||[],companions:Array.isArray(Z.companions)?Z.companions:[],dependencies:Array.isArray(Z.dependencies)?Z.dependencies:[],buildDependencies:Z.buildDependencies||[],versions:Z.versions||[],aliases:[]};if(!X.versions||X.versions.length===0){let Y=X.domain||Q;if(!["apache.org","breakfastquay.com","catb.org","bloomreach.com","cairographics.org","certifi.io","charm.sh","aws.amazon.com","google.com","microsoft.com","mozilla.org","freedesktop.org","gnome.org","kde.org","sourceforge.net","sf.net"].some((J)=>Y.startsWith(J)))try{let J=X.domain||Q,E=await LQ(J);X.versions=E}catch(J){console.warn(`Failed to fetch versions for ${Q} from GitHub API:`,J),X.versions=[]}}if(X.versions&&X.versions.length>0)try{X.versions.sort((Y,W)=>{try{return-1*Bun.semver.order(Y,W)}catch{return c(Y,W)}})}catch(Y){console.warn(`Warning: Failed to sort versions for ${Q} using semver:`,Y)}return X.name=X.name||G,X.domain=X.domain||$,X.programs=X.programs||[],X.companions=X.companions||[],X.dependencies=X.dependencies||[],X.versions=X.versions||[],{packageInfo:X,originalName:G,fullDomainName:$}}catch(q){return console.error(`Error in fetchPantryPackage for ${Q}:`,q),EQ(Q,G,$)}}async function LQ(Q){try{let{shouldProceedWithGitHubRequest:K,saveRateLimitInfo:G}=await import("./chunk-9f0255fc.js");if(!K())return console.warn("Skipping GitHub API request for versions due to rate limiting"),[];let $=await fetch(`https://api.github.com/repos/pkgxdev/pantry/contents/projects/${Q}`,{headers:{Accept:"application/vnd.github.v3+json","User-Agent":"ts-pantry"},signal:AbortSignal.timeout(15000)});if(G($.headers),$.status===403){let Z=$.headers.get("X-RateLimit-Remaining"),X=$.headers.get("X-RateLimit-Reset"),Y=X?new Date(Number(X)*1000).toLocaleString():"unknown";return console.warn(`GitHub API rate limit exceeded. Remaining: ${Z||0}, Reset: ${Y}`),[]}if(!$.ok)throw Error(`GitHub API responded with ${$.status}: ${$.statusText}`);return(await $.json()).filter((Z)=>Z.name.match(/^v\d+/)).map((Z)=>Z.name)}catch(K){return console.error("Error fetching versions from GitHub:",K),[]}}var UQ=300000,N=null;function RQ(){let Q=async(K)=>{if(console.log(`
35
+ Received ${K} signal. Cleaning up resources...`),N)clearInterval(N);await XQ(),console.log("Resources cleaned up. Exiting."),setTimeout(()=>{console.log("Forcing process exit..."),h.exit(0)},5000)};h.on("SIGINT",()=>Q("SIGINT")),h.on("SIGTERM",()=>Q("SIGTERM")),h.on("uncaughtException",(K)=>{console.error("Uncaught exception:",K),Q("uncaughtException")})}if(typeof Bun<"u"&&Bun.main===import.meta.path)RQ(),h.on("uncaughtException",(Q)=>{let K=String(Q);if(console.error("Uncaught exception caught:",Q.message),Q.message.includes("No target found for targetId")||Q.message.includes("Assertion error")||Q.message.includes("Target page, context or browser has been closed")||Q.message.includes("Failed to connect")||Q.message.includes("Connection closed")||Q.message.includes("Protocol error")||K.includes("WebSocket connection closed")||Q.message.includes("Browser has been closed")){console.error("Browser/network connection error detected, continuing execution...");return}console.error("Non-browser error, exiting..."),h.exit(1)}),h.on("unhandledRejection",(Q,K)=>{let G=String(Q);if(console.error("Unhandled rejection caught:",G),G.includes("No target found for targetId")||G.includes("Assertion error")||G.includes("Target page, context or browser has been closed")||G.includes("Failed to connect")||G.includes("Connection closed")||G.includes("Protocol error")||G.includes("WebSocket connection closed")||G.includes("Browser has been closed")){console.error("Browser/network connection error in promise, continuing execution...");return}console.error("Non-browser promise rejection, exiting..."),h.exit(1)});function vQ(){if(N)clearInterval(N);N=setInterval(()=>{console.log("Running periodic browser resource cleanup..."),XQ().then(()=>console.log("Periodic cleanup completed")).catch((Q)=>console.error("Error during periodic cleanup:",Q))},UQ)}async function bQ(Q={}){let K=Q.timeout||p,G=Q.outputDir||"packages",$=Q.cacheDir||l,q=Q.cache!==!1,Z=Q.cacheExpirationMinutes||r,X=Math.min(Q.concurrency||6,8),Y=Q.pantryDir||"src/pantry";if(!Q.outputJson)console.log(`Starting bulk fetch with concurrency: ${X}, timeout: ${K}ms`);let W=Date.now(),J=[];try{if(!Q.outputJson)console.log("Scanning local pantry for packages...");try{if(J=await OQ(Y),!Q.outputJson)console.log(`Found ${J.length} packages in local pantry`)}catch(j){if(!Q.outputJson)console.warn("Failed to scan local pantry, falling back to consts:",j);try{let{ALL_KNOWN_PACKAGES:_}=await import("./chunk-2nfjspwd.js");if(J=[..._].filter((L)=>L&&L!=="undefined"&&L!=="aliases"&&L!=="index"),!Q.outputJson)console.log(`Using comprehensive package list: ${J.length} packages`)}catch(_){if(!Q.outputJson)console.warn("Failed to load consts, falling back to GitHub API:",_);try{let L=await fetch("https://api.github.com/repos/pkgxdev/pantry/contents/projects",{headers:{"User-Agent":"ts-pantry-fetcher",Accept:"application/vnd.github.v3+json"}});if(L.ok){let x=(await L.json()).filter((U)=>U.type==="dir").map((U)=>U.name).sort();if(!Q.outputJson)console.log(`Retrieved ${x.length} projects from GitHub API`);J=x}else throw Error(`GitHub API returned ${L.status}`)}catch(L){if(!Q.outputJson)console.warn("Failed to fetch from GitHub API, falling back to local discovery:",L);if(H.existsSync(G))J=H.readdirSync(G).filter((x)=>x.endsWith(".ts")).map((x)=>F.basename(x,".ts")),console.log(`Found ${J.length} existing packages`)}}}if(J.length===0)return console.error("No packages found to process"),[];let E=["android.com","apache.org","akuity.io","alsa-project.org","anchore.com","aomedia.googlesource.com","apollographql.com","facebook.com","google.com","microsoft.com","mozilla.org","sourceforge.net","x.org","xiph.org","yui.github.io","crates.io","gitlab.com","github.com"],T=new Set,B=J.filter((j)=>j.startsWith("github.com/"));for(let j of B){let _=j.split("/");if(_.length>2){let L=_.slice(0,2).join("/");T.add(L)}}if(J=J.filter((j)=>{if(j.endsWith("/.pkgroot"))return console.log(`Filtering out .pkgroot marker: ${j}`),!1;if(j.endsWith("/README.rst"))return console.log(`Filtering out README.rst documentation: ${j}`),!1;if(j==="agwa.name")return console.log("Filtering out standalone agwa.name - only agwa.name/git-crypt is valid"),!1;if(E.includes(j))return console.log(`Filtering out parent domain ${j} - only has nested packages`),!1;if(T.has(j))return console.log(`Filtering out GitHub parent path ${j} - only has nested packages`),!1;if(j==="undefined"||j==="aliases"||j==="index")return!1;return!0}),console.log(`Found ${J.length} packages to process`),Q.limit&&Q.limit>0)J=J.slice(0,Q.limit),console.log(`Limited to ${J.length} packages`);let O=[],M=[],C=0,w=Math.min(X,6),z=[];for(let j=0;j<J.length;j+=w)z.push(J.slice(j,j+w));if(!Q.outputJson)console.log(`Processing ${J.length} packages in ${z.length} batches...`);for(let j=0;j<z.length;j++){let _=z[j];if(!Q.outputJson)console.log(`Processing batch ${j+1}/${z.length} (${_.length} packages)`);let L=_.map(async(R)=>{try{let P=F.join($,`${R.replace(/\//g,"-")}.json`);if(q&&H.existsSync(P)){let v=H.statSync(P),k=(Date.now()-v.mtime.getTime())/60000;if(k<Z){if(!Q.outputJson)console.log(`Using cached data for ${R} (age: ${Math.round(k)} minutes)`);try{let u=JSON.parse(H.readFileSync(P,"utf-8"));delete u.fetchedAt;let g=f(G,R,u);if(!Q.outputJson)console.log(`Using cached data for ${R} (saved to ${g})`);return{success:!0,packageName:R}}catch{console.warn(`Cache file corrupted for ${R}, will refetch`)}}}let S=await FQ(R,{...Q,pantryDir:Y,timeout:K,cache:q,cacheDir:$,cacheExpirationMinutes:Z});if(S){let{outputPath:v}=HQ(R,S.packageInfo,{cacheDir:$,outputDir:G,cache:q});if(!Q.outputJson)console.log(`Successfully processed ${R} (saved to ${v})`);return{success:!0,packageName:R}}else return console.warn(`Failed to fetch ${R}`),{success:!1,packageName:R}}catch(P){return console.error(`Error processing ${R}:`,P),{success:!1,packageName:R}}}),V=await Promise.allSettled(L);for(let R of V)if(C++,R.status==="fulfilled")if(R.value.success)O.push(R.value.packageName);else M.push(R.value.packageName);else console.error("Batch promise rejected:",R.reason),M.push("unknown");let x=Math.round((Date.now()-W)/1000),U=Math.round(C/x*10)/10,y=Math.round((J.length-C)/U);if(!Q.outputJson)console.log(`Batch ${j+1}/${z.length} complete. Progress: ${C}/${J.length} (${Math.round(C/J.length*100)}%) | Success: ${O.length} | Failed: ${M.length} | Rate: ${U}/s | ETA: ${y}s`);if(j<z.length-1)await new Promise((R)=>setTimeout(R,1000))}let A=Math.round((Date.now()-W)/1000);if(!Q.outputJson){if(console.log(`
36
+ Completed in ${A}s. Successfully processed: ${O.length}, Failed: ${M.length}`),M.length>0)console.log(`Failed packages: ${M.slice(0,10).join(", ")}${M.length>10?` ... and ${M.length-10} more`:""}`)}return O}catch(E){return console.error("Error in fetchAndSaveAllPackages:",E),[]}}function EQ(Q,K,G){let $=Q.split("/"),q=$[0];return{packageInfo:{name:($.length>1?$.slice(1).join("/"):null)||Q,domain:q,description:`Package information for ${Q}`,packageYmlUrl:"",homepageUrl:"",githubUrl:"",installCommand:`pantry install ${Q}`,pkgxInstallCommand:`sh <(curl https://pkgx.sh) +${Q} -- $SHELL -i`,pantryInstallCommand:`pantry install ${Q}`,programs:[],companions:[],dependencies:[],versions:[]},originalName:K,fullDomainName:G}}async function BQ(Q,K,G,$=!1,q=1,Z=3,X=!1,Y={}){try{let W=Y.cache!==!1,J=Y.cacheDir||l;if(!W)console.log(`Cache disabled for ${Q}, will fetch directly`);else{let C=jQ(Q,{cacheDir:J,cacheExpirationMinutes:Y.cacheExpirationMinutes,cache:Y.cache});if(C){let{packageInfo:w}=C,z=w.domain||Q,A=w.aliases||[],j=f(K,Q,w);return console.log(`Using cached data for ${Q} (saved to ${j})`),{success:!0,fullDomainName:z,aliases:A,filePath:j}}}let T=G+(q-1)*1e4;console.log(`Using timeout for ${Q} (attempt ${q}): ${T}ms`);let B=T,O,M=new Promise((C,w)=>{O=setTimeout(()=>{console.error(`Operation timeout for ${Q} after ${B}ms`),w(Error(`Operation timeout after ${B}ms`))},B)});if(Q.includes("/")){let C=Q.split("/"),w=C[0],z=C.slice(1).join("/");console.log(`Processing nested package: domain=${w}, subPath=${z}`);try{let A=t(`${w}/${z}`,{timeout:T,browser:Y.browser}),j=await Promise.race([A,M]);clearTimeout(O);let{packageInfo:_,originalName:L,fullDomainName:V}=j;if(_.versions&&_.versions.length>0)try{_.versions.sort((S,v)=>{try{return-1*Bun.semver.order(S,v)}catch{return c(S,v)}})}catch(S){console.warn(`Warning: Failed to sort versions for ${Q} using semver:`,S)}let x=V.replace(/\//g,"-"),U=[];if(_.aliases&&_.aliases.length>0)U.push(..._.aliases);for(let[S,v]of Object.entries(d))if(v===V&&!U.includes(S))U.push(S);if(L!==V&&!U.includes(L))U.push(L);let y=["cli","app","tool","server","client","api","lib","core"];if(!U.includes(z)&&!y.includes(z.toLowerCase()))U.push(z);let R={..._,fullPath:Q,aliases:U.length>0?U:[]};if(W){let S=F.join(J,`${x}.json`),v={...R,fetchedAt:Date.now()};if(!H.existsSync(J))H.mkdirSync(J,{recursive:!0});H.writeFileSync(S,JSON.stringify(v,null,2)),console.log(`Saved package data to cache: ${S}`)}let P=f(K,V,R);return console.log(`Successfully saved nested package ${Q} to ${P} with aliases: ${U.join(", ")||"none"}`),{success:!0,fullDomainName:V,aliases:U,filePath:P}}catch(A){if(clearTimeout(O),A.toString().includes("404")||A.toString().includes("Not Found"))return console.error(`Package ${Q} returned 404 Not Found.`),console.error(`Skipping ${Q} to avoid overwriting existing files.`),{success:!1,fullDomainName:Q};throw A}}else try{let C=t(Q,{timeout:T,browser:Y.browser}),w=await Promise.race([C,M]);clearTimeout(O);let{packageInfo:z,originalName:A,fullDomainName:j}=w,_=z.description&&z.description.trim()!=="",L=z.versions&&z.versions.length>0,V=z.programs&&z.programs.length>0,x=z.packageYmlUrl&&z.packageYmlUrl.length>0,U=z.dependencies&&z.dependencies.length>0,y=z.companions&&z.companions.length>0,R=_&&(z.description.toLowerCase().trim()==="go home."||z.description.toLowerCase().trim()==="page not found"||z.description.toLowerCase().trim()==="not found"||z.description.toLowerCase().trim()==="404"||z.description.toLowerCase().trim()==="error"),P=_&&!R,S=L||V||x||U||y,v=z.domain&&z.domain.includes(".");if(!(P||S||v))return console.error(`Package ${Q} appears to have no meaningful data. Skipping to avoid creating empty files.`),{success:!1,fullDomainName:Q};let u=z.name&&z.name!==j&&z.name!==j.split("/")[0]&&z.name.length>1&&!z.name.includes("/")?s(z.name):null,g=j.replace(/\//g,"-"),m=u?F.join(K,`${u}.ts`):F.join(K,`${g}.ts`);if(H.existsSync(m)){let b=H.readFileSync(m,"utf-8"),I=b.includes("dependencies: [")&&!b.includes("dependencies: [] as const"),n=z.dependencies.length===0,e=!b.includes("description: 'Package information for")&&!b.includes("description: '' as const"),a=z.description.includes("Package information for")||z.description.trim()==="";if(I&&n||e&&a)return console.warn(`⚠️ Existing file ${m} has better data than new fetch. Skipping to prevent data loss.`),console.warn(` Existing deps: ${I}, New deps: ${!n}`),console.warn(` Existing desc: ${e}, New desc: ${!a}`),{success:!1,fullDomainName:Q}}if(z.versions&&z.versions.length>0)try{z.versions.sort((b,I)=>{try{return-1*Bun.semver.order(b,I)}catch{return c(b,I)}})}catch(b){console.warn(`Warning: Failed to sort versions for ${Q} using semver:`,b)}let GQ=j.replace(/\//g,"-"),D=[];if(z.aliases&&z.aliases.length>0)D.push(...z.aliases);for(let[b,I]of Object.entries(d))if(I===j&&!D.includes(b))D.push(b);if(A!==j&&!D.includes(A))D.push(A);let o={...z,fullPath:Q,aliases:D.length>0?D:[]};if(W){let b=F.join(J,`${GQ}.json`),I={...o,fetchedAt:Date.now()};if(!H.existsSync(J))H.mkdirSync(J,{recursive:!0});H.writeFileSync(b,JSON.stringify(I,null,2)),console.log(`Saved package data to cache: ${b}`)}let i=f(K,j,o);return console.log(`Successfully saved ${Q} to ${i} with aliases: ${D.join(", ")||"none"}`),{success:!0,fullDomainName:j,aliases:D,filePath:i}}catch(C){if(clearTimeout(O),C.toString().includes("404")||C.toString().includes("Not Found"))return console.error(`Package ${Q} returned 404 Not Found. Skipping to avoid overwriting existing files.`),{success:!1,fullDomainName:Q};throw C}}catch(W){let J=String(W),E=J.includes("Operation timed out after")||J.includes("Operation timeout after")||J.includes("timeout")||J.includes("Timeout")||J.includes("Navigation timeout"),T=J.includes("No target found")||J.includes("targetId")||J.includes("Target page, context or browser has been closed")||J.includes("Protocol error")||J.includes("Connection closed")||J.includes("Assertion error")||J.includes("Browser has been closed")||J.includes("Target closed")||J.includes("Session closed")||J.includes("WebSocket connection closed");if(E)console.error(`Timeout error for ${Q}:`,J.substring(0,200)),await new Promise((O)=>setTimeout(O,1000*q));else if(T){if(console.error(`Browser connection error for ${Q}:`,J.substring(0,200)),Y.browser)try{await Y.browser.close().catch(()=>{})}catch{}await new Promise((O)=>setTimeout(O,3000*q))}if(q>=Z){if(console.error(`Failed to fetch package ${Q} after ${q} attempts:`,W),X){let O=F.join(h.cwd(),`${Q.replace(/\//g,"-")}-error.txt`);H.writeFileSync(O,`Error fetching ${Q}:
37
+ ${W.toString()}
38
+
39
+ Stack:
40
+ ${W.stack||"No stack trace available"}`),console.error(`Saved error details to ${O}`)}return console.error(`Skipping ${Q} after ${q} failed attempts to avoid overwriting existing files.`),{success:!1,fullDomainName:Q}}console.error(`Attempt ${q} failed for ${Q}, retrying...`,W);let B=500*q;if(T)B=2000*q;else if(E)B=1000*q;return await new Promise((O)=>setTimeout(O,B)),BQ(Q,K,G,$,q+1,Z,X,Y)}}async function OQ(Q="src/pantry"){if(!H.existsSync(Q))throw Error(`Pantry directory not found: ${Q}. Please run 'bun ./bin/cli.ts update-pantry' first.`);let K=[];function G($,q=""){let Z=H.readdirSync($,{withFileTypes:!0}),X=F.join($,"package.yml");if(q&&H.existsSync(X))K.push(q);for(let Y of Z)if(Y.isDirectory()&&!Y.name.startsWith(".")){let W=q?`${q}/${Y.name}`:Y.name,J=F.join($,Y.name);G(J,W)}}return G(Q),console.log(`Found ${K.length} packages in pantry`),K.sort()}async function VQ(Q,K="src/pantry"){let G=F.join(K,Q,"package.yml");if(!H.existsSync(G))return console.warn(`Package.yml not found for ${Q}`),null;try{let $=H.readFileSync(G,"utf-8"),q=[],Z=[],X=$.split(`
41
+ `),Y=!1,W=!1,J=!1,E="";for(let _ of X){if(_.match(/^dependencies:\s*$/)){Y=!0,W=!1,J=!1;continue}if(_.match(/^\s{2}dependencies:\s*$/)){W=!0,Y=!1,J=!1;continue}if(Y||W){if(_.match(/^\s*$/)||Y&&_.match(/^\S/)||W&&!_.match(/^\s{4,}/)){Y=!1,W=!1,J=!1;continue}let L=_.match(/^\s{2}(linux|darwin|windows):\s*$/);if(L){J=!0,E=L[1];continue}if(J){let V=_.match(/^\s{4,}([^\s:]+):\s*['"]?([^'"]+)['"]?/);if(V){let x=V[1],U=V[2].trim(),y=`${E}:`;if(U&&U!=="*"){let R=/^[~^>=<@]/.test(U),P=/^[\d.]+$/.test(U)&&/^\d/.test(U),v=`${y}${x}${R?"":P?"@":"^"}${U}`;if(W)Z.push(v);else q.push(v)}else{let R=`${y}${x}`;if(W)Z.push(R);else q.push(R)}}else if(!_.match(/^\s{4,}/)&&!_.match(/^\s*$/))J=!1,E=""}else{let V=_.match(/^\s{2,3}([^\s:]+):\s*['"]?([^'"]+)['"]?/);if(V){let x=V[1],U=V[2].trim();if(["linux","darwin","windows"].includes(x))continue;if(U&&U!=="*"){let y=/^[~^>=<@]/.test(U),R=/^[\d.]+$/.test(U)&&/^\d/.test(U),S=`${x}${y?"":R?"@":"^"}${U}`;if(W)Z.push(S);else q.push(S)}else{let y=x;if(W)Z.push(y);else q.push(y)}}}}}let T=[],B=!1;for(let _ of X){if(_.match(/^runtime:\s*$/)){B=!0;continue}if(B){if(_.match(/^\s*$/)||_.match(/^\S/)){B=!1;continue}if(_.match(/^\s+env:\s*$/))continue;if(_.match(/^\s+[A-Z_]+:\s*\$\{\{/))continue;let L=_.match(/^\s+([^\s:]+):\s*['"]?([^'"]+)['"]?/);if(L){let V=L[1],x=L[2].trim();if(/^[A-Z_]+$/.test(V))continue;if(x&&x!=="*"){let U=/^[~^>=<@]/.test(x),y=/^[\d.]+$/.test(x)&&/^\d/.test(x),R=U?"":y?"@":"^";T.push(`${V}${R}${x}`)}else T.push(V)}}}let O="",M="",C=$.match(/distributable:[\t\v\f\r \xA0\u1680\u2000-\u200A\u2028\u2029\u202F\u205F\u3000\uFEFF]*\n\s*url:\s*(.+)/);if(C){let _=C[1].trim();if(_.includes("github.com")){let L=_.match(/git\+https:\/\/github\.com\/([^/]+\/[^.]+)/);if(L){if(M=`https://github.com/${L[1]}`,L[1]==="python-attrs/attrs")O="https://www.attrs.org/"}}}let w=[],z=!1,A=!1;for(let _ of X){if(_.match(/^provides:\s*$/)){z=!0,A=!1;continue}if(z){if(_.match(/^\S/)&&!_.match(/^\s*$/)){z=!1;continue}if(_.match(/^\s+(darwin|linux|windows):\s*$/)){A=!0;continue}let L=_.match(/^\s+-\s+(?:bin|sbin)\/(.+)/);if(L){let V=L[1].trim();if(!w.includes(V))w.push(V)}}}return{name:Q.split("/").pop()||Q,domain:Q,dependencies:q,buildDependencies:Z,companions:T,programs:w,homepageUrl:O,githubUrl:M}}catch($){return console.warn(`Error reading package.yml for ${Q}:`,$),null}}async function FQ(Q,K={}){let G=K.pantryDir||"src/pantry";try{let $=await VQ(Q,G);try{let q=await t(Q,K),Z=$?.domain||q.packageInfo.domain,X=qQ(Z),Y=q.packageInfo.aliases||[];if(X.length>0)if(ZQ(Z))Y=X;else Y=[...new Set([...Y,...X])];let W=[],J=[],E="",T="",B=q.packageInfo.versions||[],O=q.packageInfo.programs||[],M=$?.programs||[];if(B.length===0||O.length===0&&M.length===0){let w=K.outputDir||"src/packages",z=Q.split("/"),A=z.length>1?F.join(w,...z.slice(0,-1),`${z[z.length-1]}.ts`):F.join(w,`${Q.replace(/\./g,"")}.ts`);if(H.existsSync(A))try{let j=H.readFileSync(A,"utf-8");if(B.length===0){let _=j.match(/versions:\s*\[([\s\S]*?)\]\s*as\s*const/);if(_&&_[1].trim())W=_[1].match(/'([^']+)'/g)?.map((L)=>L.replace(/'/g,""))||[]}if(O.length===0&&M.length===0){let _=j.match(/programs:\s*\[([\s\S]*?)\]\s*as\s*const/);if(_&&_[1].trim())J=_[1].match(/'([^']+)'/g)?.map((L)=>L.replace(/'/g,""))||[]}if(!q.packageInfo.description){let _=j.match(/description:\s*'([^']*)'\s*as\s*const/);if(_&&_[1])E=_[1]}if(!q.packageInfo.homepageUrl&&!$?.homepageUrl){let _=j.match(/homepageUrl:\s*'([^']*)'\s*as\s*const/);if(_&&_[1])T=_[1]}}catch{}}return{packageInfo:{...q.packageInfo,dependencies:$?.dependencies&&$.dependencies.length>0?$.dependencies:q.packageInfo.dependencies,buildDependencies:$?.buildDependencies&&$.buildDependencies.length>0?$.buildDependencies:q.packageInfo.buildDependencies,companions:$?.companions&&$.companions.length>0?$.companions:q.packageInfo.companions,programs:O.length>0?O:M.length>0?M:J.length>0?J:[],versions:B.length>0?B:W,domain:$?.domain||q.packageInfo.domain,description:q.packageInfo.description||E||"",name:q.packageInfo.name||$?.name||Q.split("/").pop()||Q,homepageUrl:$?.homepageUrl||q.packageInfo.homepageUrl||T,githubUrl:$?.githubUrl||q.packageInfo.githubUrl,aliases:Y},originalName:q.originalName,fullDomainName:q.fullDomainName}}catch(q){if(!$)return console.warn(`No pantry or web data available for ${Q}:`,q),null;console.warn(`Failed to fetch web metadata for ${Q}, using pantry data only:`,q);let Z=[],X=[],Y="",W="",J=K.outputDir||"src/packages",E=Q.split("/"),T=E.length>1?F.join(J,...E.slice(0,-1),`${E[E.length-1]}.ts`):F.join(J,`${Q.replace(/\./g,"")}.ts`);if(H.existsSync(T))try{let M=H.readFileSync(T,"utf-8"),C=M.match(/versions:\s*\[([\s\S]*?)\]\s*as\s*const/);if(C&&C[1].trim())Z=C[1].match(/'([^']+)'/g)?.map((j)=>j.replace(/'/g,""))||[];let w=M.match(/programs:\s*\[([\s\S]*?)\]\s*as\s*const/);if(w&&w[1].trim())X=w[1].match(/'([^']+)'/g)?.map((j)=>j.replace(/'/g,""))||[];let z=M.match(/description:\s*'([^']*)'\s*as\s*const/);if(z&&z[1])Y=z[1];let A=M.match(/homepageUrl:\s*'([^']*)'\s*as\s*const/);if(A&&A[1])W=A[1]}catch{}let B=$.programs&&$.programs.length>0?$.programs:X;return{packageInfo:{name:$.name||Q.split("/").pop()||Q,domain:$.domain||Q,description:Y||"",installCommand:`pantry install ${Q}`,pkgxInstallCommand:`sh <(curl https://pkgx.sh) +${Q} -- $SHELL -i`,pantryInstallCommand:`pantry install ${Q}`,programs:B,companions:$.companions||[],dependencies:$.dependencies||[],versions:Z,buildDependencies:$.buildDependencies||[],packageYmlUrl:`https://github.com/pkgxdev/pantry/tree/main/projects/${Q}/package.yml`,homepageUrl:W||$.homepageUrl||"",githubUrl:$.githubUrl||""},originalName:Q,fullDomainName:Q}}}catch($){return console.error(`Error processing pantry package ${Q}:`,$),null}}
42
+ export{f as La,SQ as Ma,jQ as Na,HQ as Oa,XQ as Pa,yQ as Qa,t as Ra,RQ as Sa,vQ as Ta,bQ as Ua,BQ as Va,OQ as Wa,VQ as Xa,FQ as Ya};
@@ -0,0 +1,2 @@
1
+ import{Fb as I,Gb as T}from"./chunk-2dk28v6k.js";import{Hb as _,Ib as w}from"./chunk-q7s2k65w.js";import{Mb as y,Pb as M}from"./chunk-yjz3e391.js";w();async function Y(){try{let{packages:E}=await import("./chunk-b0zr0ad6.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[U,X]=R.split(".");if(!U||!X)continue;let W=`${U}.${X}`;if(J.includes(W)&&!Q.has(W))Q.set(W,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 h(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 G=q.slice(2).split(".").map(Number);return H.filter((J)=>{let Q=J.split(".").map(Number);for(let O=0;O<Math.max(Q.length,G.length);O++){let R=Q[O]??0,U=G[O]??0;if(R>U)return!0;if(R<U)return!1}return!0})[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 N(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 P(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 U=O.split(".").map(Number),X=R.split(".").map(Number);for(let W=0;W<Math.max(U.length,X.length);W++){let A=U[W]||0,B=X[W]||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 U=R.split("."),X=Number.parseInt(U[0],10),W=Number.parseInt(U[1]||"0",10);return X===K&&W===J})[0]||null;if(H.includes(z))return z;return H.filter((O)=>O.startsWith(z))[0]||H[0]||null}
2
+ export{F as qb,x as rb,f as sb,C as tb,h as ub,$ as vb,Z as wb,N as xb,P as yb,j as zb,S as Ab,V as Bb,d as Cb};
@@ -1 +1 @@
1
- import{Ba as a,Ca as b,Da as c,Ea as d,Fa as e,Ga as f,Ha as g,Ia as h,Ja as i,Ka as j}from"./chunk-33qtfw71.js";import"./chunk-yjz3e391.js";export{j as updateApp,g as scanInstalledApps,h as queryBrewCaskVersions,d as isNewerVersion,e as guessCaskToken,f as getCaskToken,i as checkAppUpdates,b as SYSTEM_APPS,c as MAS_APPS,a as APP_CASK_MAP};
1
+ import{Ba as a,Ca as b,Da as c,Ea as d,Fa as e,Ga as f,Ha as g,Ia as h,Ja as i,Ka as j}from"./chunk-xkm30wah.js";import"./chunk-yjz3e391.js";export{j as updateApp,g as scanInstalledApps,h as queryBrewCaskVersions,d as isNewerVersion,e as guessCaskToken,f as getCaskToken,i as checkAppUpdates,b as SYSTEM_APPS,c as MAS_APPS,a as APP_CASK_MAP};
@@ -0,0 +1,2 @@
1
+ var b=".cache/packages",d=1440,h=20000,j={node:"nodejs.org",python:"python.org",go:"go.dev",rust:"rust-lang.org",ruby:"ruby-lang.org",php:"php.net",perl:"perl.org",deno:"deno.land",bun:"bun.sh","bun.com":"bun.sh",git:"git-scm.com",docker:"docker.com/cli",kubectl:"kubernetes.io",terraform:"terraform.io",ansible:"ansible.com",nvim:"neovim.io",vim:"vim.org",curl:"curl.se"},m=["abseil.io","acorn.io/acorn-cli","agpt.co","agwa.name/git-crypt","akuity.io/kargo","alacritty.org","alembic.sqlalchemy.org","alsa-project.org/alsa-lib","amber-lang.com","amp.rs","amrdeveloper.github.io/GQL","anchore.com/syft","android.com/cmdline-tools","angular.dev","ansible.com","ansible.com/ansible-lint","aomedia.googlesource.com/aom","apache.org/apr","apache.org/apr-util","apache.org/arrow","apache.org/avro","apache.org/httpd","apache.org/jmeter","apache.org/serf","apache.org/subversion","apache.org/thrift","apache.org/zookeeper","apktool.org","apollographql.com/rover","appium.io","apple.com/container","apple.com/remote_cmds","apptainer.org","aquasecurity.github.io/tfsec","aquasecurity.github.io/trivy","arduino.github.io/arduino-cli","argbash.dev","argoproj.github.io/cd","argoproj.github.io/workflows","aria2.github.io","arkade.dev","asciidoctor.org","asciinema.org","asciinema.org/agg","aspell.net","assimp.org","ast-grep.github.io","astral.sh/ruff","astral.sh/ty","astral.sh/uv","atlasgo.io","attrs.org","augeas.net","authzed.com/spicedb","aux4.io","aws.amazon.com/cdk","aws.amazon.com/cli","aws.amazon.com/q","aws.amazon.com/sam","aws.amazon.com/session-manager-plugin","babashka.org","bashly.dannyb.co","bcrypt.sourceforge.net","beyondgrep.com","biomejs.dev","bitcoin.org","bittensor.com","bitwarden.com","blake2.net/libb2","bloomreach.com/s4cmd","boost.org","bore.pub","borgbackup.org","breakfastquay.com/rubberband","browser-use.com","brxken128.github.io/dexios","budimanjojo.github.io/talhelper","buf.build","buildpacks.io","bun.sh","bytebase.com","bytereef.org/mpdecimal","c-ares.org","caddyserver.com","cairographics.org","cairographics.org/pycairo","capnproto.org","capstone-engine.org","carapace.sh","casdoor.org","cask.readthedocs.io","catb.org/wumpus","ccache.dev","cedarpolicy.com/cli","ceph.com/cephadm","ceres-solver.org","certbot.eff.org","certifi.io/python-certifi","cfssl.org","cgal.org","changie.dev","charm.sh/crush","charm.sh/freeze","charm.sh/glow","charm.sh/gum","charm.sh/melt","charm.sh/mods","charm.sh/pop","charm.sh/skate","charm.sh/vhs","checkov.io","chezmoi.io","chiark.greenend.org.uk/halibut","chiark.greenend.org.uk/putty","chiark.greenend.org.uk/puzzles","chompbuild.com","chromedriver.chromium.org","cilium.io/cilium","cilium.io/hubble","circleci.com","cisco.com/libsrtp","classic.yarnpkg.com","cli.github.com","clisp.org","clog-tool.github.io","cloudflare.com/cloudflared","cloudfoundry.org/cf-cli","cloudnative-pg.io","cmake.org","cmocka.org","cnquery.io","cocoapods.org","cocoapods.org/xcodeproj","cocogitto.io","code.videolan.org/aribb24","code.videolan.org/rist/librist","code.videolan.org/videolan/dav1d","coder.com","coder.com/code-server","cointop.sh","conda.org","conftest.dev","connectrpc.org/protoc-gen-connect-go","consul.io","convco.github.io","coredns.io","cpanmin.us","cr.yp.to/daemontools","crates.io/aichat","crates.io/albion_terminal_rpg","crates.io/argc","crates.io/bake-rs","crates.io/bartib","crates.io/bat","crates.io/bottom","crates.io/bpb","crates.io/broot","crates.io/cargo-binstall","crates.io/cargo-tarpaulin","crates.io/cavif","crates.io/checkexec","crates.io/click","crates.io/comrak","crates.io/cpz","crates.io/craftql","crates.io/csview","crates.io/ddh","crates.io/didyoumean","crates.io/diskonaut","crates.io/diskus","crates.io/docuum","crates.io/drill","crates.io/du-dust","crates.io/dua","crates.io/ducker","crates.io/eb","crates.io/eureka","crates.io/exa","crates.io/eza","crates.io/fblog","crates.io/fd-find","crates.io/flamegraph","crates.io/fnm","crates.io/fselect","crates.io/fsrx","crates.io/get-blessed","crates.io/git-absorb","crates.io/git-branchless","crates.io/git-delta","crates.io/git-gone","crates.io/git-grab","crates.io/git-tidy","crates.io/git-trim","crates.io/gitopolis","crates.io/gitu","crates.io/gitui","crates.io/gitweb","crates.io/hac-client","crates.io/huniq","crates.io/hyperfine","crates.io/imessage-exporter","crates.io/jnv","crates.io/joshuto","crates.io/jwt-cli","crates.io/kaspa-miner","crates.io/killport","crates.io/kubie","crates.io/licensor","crates.io/lighthouse","crates.io/mask","crates.io/md-tui","crates.io/mdcat","crates.io/mprocs","crates.io/names","crates.io/omekasy","crates.io/ox","crates.io/pastel","crates.io/pgen","crates.io/pier","crates.io/pik","crates.io/portfolio_rs","crates.io/pqrs","crates.io/pueue","crates.io/pushenv","crates.io/qsv","crates.io/rage","crates.io/ripgrep","crates.io/ripgrep-all","crates.io/rmz","crates.io/rpg-cli","crates.io/rtx-cli","crates.io/rucola-notes","crates.io/rust-kanban","crates.io/rustls-ffi","crates.io/samply","crates.io/sanitize","crates.io/sccache","crates.io/sd","crates.io/semverator","crates.io/sigrs","crates.io/silicon","crates.io/skim","crates.io/sleek","crates.io/spider_cli","crates.io/spotify_player","crates.io/sqlx-cli","crates.io/srgn","crates.io/stego","crates.io/tabiew","crates.io/tea-gpg-wallet","crates.io/termusic","crates.io/tidy-viewer","crates.io/tiny","crates.io/toast","crates.io/tokei","crates.io/topgrade","crates.io/trashy","crates.io/tv-cli","crates.io/typos","crates.io/versio","crates.io/vivid","crates.io/wasm-pack","crates.io/wordl","crates.io/wthrr","crates.io/xh","crates.io/zellij","crates.io/zoxide","crazymax.dev/diun","creativeprojects.github.io/resticprofile","cruft.github.io","cryptography.io","crystal-lang.org","crystal-lang.org/shards","cscope.sourceforge.io","csie.ntu.edu.tw/cjlin/liblinear","ctags.io","ctop.sh","cuelang.org","curl.se","curl.se/ca-certs","curl.se/ssl3","curl.se/trurl","curlie.io","cyrusimap.org/cyrus-sasl","cython.org","cython.org/libcython","d2lang.com","dagger.io","dart.dev","darwinsys.com/file","databricks.com","daytona.io","dblab.danvergara.com","debian.org/bash-completion","debian.org/iso-codes","deepwisdom.ai","denilson.sa.nom.br/prettyping","deno.land","depot.dev","dest-unreach.org/socat","dev.yorhel.nl/ncdu","developer.1password.com/1password-cli","developers.yubico.com/libfido2","developers.yubico.com/yubikey-manager","devpod.sh/cli","dgraph.io","dhall-lang.org","dhruvkb.dev/pls","digger.dev","digip.org/jansson","digitalocean.com/doctl","direnv.net","dkrz.de/libaec","dns.lookup.dog","docbook.org","docbook.org/xsl","docker.com/buildx","docker.com/cli","docker.com/compose","docker.com/machine","doctave.com","docutils.org","dotenv-linter.github.io","dotenvx.com","dotnet.microsoft.com","doxygen.nl","dozzle.dev","dprint.dev","dri.freedesktop.org","duckdb.org","duktape.org","dystroy.org/bacon","earthly.dev/earthly","ebassi.github.io/graphene","edgedb.com","eigen.tuxfamily.org","eksctl.io","elementsproject.org","elfutils.org","elixir-lang.org","elixir-lang.org/otp-27","elizaOS.github.io","elv.sh","emcrisostomo.github.io/fswatch","encore.dev","encore.dev/go","endoflife.date","epsilon-project.sourceforge.io","erlang.org","etcd.io","exiftool.org","expo.dev/eas-cli","eyrie.org/eagle/podlators","f1bonacc1.github.io/process-compose","fabianlindfors.se/reshape","facebook.com/edencommon","facebook.com/fb303","facebook.com/fbthrift","facebook.com/folly","facebook.com/mvfst","facebook.com/wangle","facebook.com/watchman","facebook.com/zstd","fairwinds.com/pluto","fastlane.tools","felixkratz.github.io/SketchyBar","fermyon.com/spin","ferzkopp.net/SDL2_gfx","ffmpeg.org","fftw.org","filippo.io/age","filippo.io/yubikey-agent","fishshell.com","flipt.io","flit.pypa.io","fltk.org","fluentci.io","flutter.dev","fluxcd.io/flux2","fly.io","flywaydb.org","fmt.dev","fna-xna.github.io","fossies.org/libelf","freedesktop.org/XKeyboardConfig","freedesktop.org/appstream","freedesktop.org/at-spi2-atk","freedesktop.org/cppunit","freedesktop.org/dbus","freedesktop.org/desktop-file-utils","freedesktop.org/fontconfig","freedesktop.org/icon-theme","freedesktop.org/intltool","freedesktop.org/libbsd","freedesktop.org/mesa-glu","freedesktop.org/p11-kit","freedesktop.org/pkg-config","freedesktop.org/polkit","freedesktop.org/poppler-qt5","freedesktop.org/shared-mime-info","freedesktop.org/slirp","freedesktop.org/uchardet","freedesktop.org/vdpau","freedesktop.org/xcb-util","freedesktop.org/xcb-util-image","freedesktop.org/xcb-util-keysyms","freedesktop.org/xcb-util-renderutil","freedesktop.org/xcb-util-wm","freedesktop.org/xdg-user-dirs","freeglut.sourceforge.io","freetds.org","freetype.org","frei0r.dyne.org","fuellabs.github.io/sway","fukuchi.org/qrencode","fullstory.com/grpcurl","fury.co","fx.wtf","gaia-gis.it/fossil/freexl","gaia-gis.it/libspatialite","gdal.org","geoff.greer.fm/ag","getclipboard.app","getcomposer.org","getfoundry.sh","getmonero.org","getsops.io","getsynth.com","getzola.org","geuz.org/gl2ps","gflags.github.io","ghostgum.com.au/epstool","ghostscript.com","giflib.sourceforge.io","git-cliff.org","git-lfs.com","git-quick-stats.sh","git-scm.org","git-town.com","git.osgeo.org/gitea/rttopo/librttopo","git.tozt.net/rbw","github.com/0age/create2crunch","github.com/10gic/vanitygen-plusplus","github.com/99designs/aws-vault","github.com/AOMediaCodec/libavif","github.com/AUTOMATIC1111/stable-diffusion-webui","github.com/AgentD/squashfs-tools-ng","github.com/AlDanial/cloc","github.com/AntonOsika/gpt-engineer","github.com/ArionThinker/tea-package-builder","github.com/Carthage/Carthage","github.com/ChargePoint/xcparse","github.com/ChrisJohnsen/tmux-MacOSX-pasteboard","github.com/ColinIanKing/stress-ng","github.com/Cyan4973/xxHash","github.com/Cyfrin/safe-tx-hashes-util","github.com/DMTF/redfishtool","github.com/DaanDeMeyer/reproc","github.com/DaveGamble/cJSON","github.com/Diniboy1123/usque","github.com/Esri/lerc","github.com/Everduin94/better-commits","github.com/FredHucht/pstree","github.com/Genymobile/scrcpy","github.com/GoogleContainerTools/container-structure-test","github.com/JuliaStrings/utf8proc","github.com/KarypisLab/GKlib","github.com/KhronosGroup/Vulkan-Headers","github.com/KhronosGroup/Vulkan-Loader","github.com/Limeth/ethaddrgen","github.com/MaestroError/heif-converter-image","github.com/Mbed-TLS/mbedtls","github.com/MilesCranmer/rip2","github.com/MinseokOh/toml-cli","github.com/NQMVD/needs","github.com/OSGeo/libgeotiff","github.com/OpenSC/pkcs11-helper","github.com/Ousret/charset_normalizer","github.com/OutOfBedlam/tine","github.com/P-H-C/phc-winner-argon2","github.com/PJK/libcbor","github.com/Parchive/par2cmdline","github.com/SwiftGen/SwiftGen","github.com/TartanLlama/expected","github.com/TomWright/dasel","github.com/ToruNiina/toml11","github.com/Versent/saml2aws","github.com/VikParuchuri/surya","github.com/Virviil/oci2git","github.com/XCTestHTMLReport/XCTestHTMLReport","github.com/XcodesOrg/xcodes","github.com/YS-L/csvlens","github.com/Z3Prover/z3","github.com/ZZROTDesign/docker-clean","github.com/Zouuup/landrun","github.com/a7ex/xcresultparser","github.com/abanteai/rawdog","github.com/abiosoft/colima","github.com/abtreece/confd","github.com/achannarasappa/ticker","github.com/adah1972/libunibreak","github.com/adamritter/fastgron","github.com/adegtyarev/streebog","github.com/adnanh/webhook","github.com/adrienverge/yamllint","github.com/alexellis/k3sup","github.com/allure-framework/allure2","github.com/alt-art/commit","github.com/anchore/grype","github.com/anholt/libepoxy","github.com/ankitpokhrel/jira-cli","github.com/antfu/ni","github.com/antimatter15/alpaca.cpp","github.com/aristocratos/btop","github.com/asciidoc-py/asciidoc-py","github.com/astanin/python-tabulate","github.com/aswinkarthik/csvdiff","github.com/aws-cloudformation/cfn-lint","github.com/aws/aws-sdk-cpp","github.com/awslabs/amazon-ecr-credential-helper","github.com/awslabs/dynein","github.com/awslabs/eks-node-viewer","github.com/awslabs/llrt","github.com/axllent/mailpit","github.com/bats-core/bats-core","github.com/bazelbuild/bazelisk","github.com/bazelbuild/buildtools","github.com/benjaminp/six","github.com/benkehoe/aws-whoami-golang","github.com/besser82/libxcrypt","github.com/blacktop/lporg","github.com/blynn/nex","github.com/boyter/scc","github.com/brona/iproute2mac","github.com/brucedom/bruce","github.com/burntsushi/xsv","github.com/caarlos0/org-stats","github.com/caarlos0/svu","github.com/caddy-dns/acmedns","github.com/caddyserver/xcaddy","github.com/canonical/charmcraft","github.com/canonical/pebble","github.com/cesnet/libyang","github.com/chainguard-dev/apko","github.com/charliermarsh/ruff","github.com/chrusty/protoc-gen-jsonschema","github.com/cirruslabs/cirrus-cli","github.com/clever/microplane","github.com/cloudbase/garm","github.com/cloudbase/garm-provider-openstack","github.com/confluentinc/librdkafka","github.com/confluentinc/libserdes","github.com/containers/gvisor-tap-vsock","github.com/containers/podlet","github.com/containers/skopeo","github.com/context-labs/mactop","github.com/cookiecutter/cookiecutter","github.com/coqui-ai/TTS","github.com/cosmtrek/air","github.com/cowsay-org/cowsay","github.com/cpburnz/python-pathspec","github.com/cpuguy83/go-md2man","github.com/crc-org/vfkit","github.com/create-dmg/create-dmg","github.com/daixiang0/gci","github.com/danfis/libccd","github.com/darthsim/overmind","github.com/dateutil/dateutil","github.com/dduan/tre","github.com/deepmap/oapi-codegen","github.com/denisidoro/navi","github.com/dloebl/cgif","github.com/dundee/gdu","github.com/dylanaraps/neofetch","github.com/ebiggers/libdeflate","github.com/edenhill/kcat","github.com/eliben/pycparser","github.com/equinix-labs/otel-cli","github.com/esimov/triangle","github.com/essembeh/gnome-extensions-cli","github.com/everywall/ladder","github.com/evilmartians/lefthook","github.com/fabio42/sasqwatch","github.com/facebookincubator/fizz","github.com/fastfetch-cli/fastfetch","github.com/fastfloat/fast_float","github.com/fiatjaf/nak","github.com/gabime/spdlog","github.com/ggerganov/llama.cpp","github.com/ggerganov/whisper.cpp","github.com/giampaolo/psutil","github.com/git-chglog","github.com/git-ecosystem/git-credential-manager","github.com/github/git-sizer","github.com/github/spec-kit","github.com/glauth/glauth","github.com/go-acme/lego","github.com/gofireflyio/aiac","github.com/golang-migrate/migrate","github.com/gollum/gollum","github.com/google/brotli","github.com/google/gops","github.com/google/re2","github.com/google/shaderc","github.com/gopasspw/gopass","github.com/gosom/google-maps-scraper","github.com/gotestyourself/gotestsum","github.com/greenpau/go-redfish-api-idrac","github.com/gromgit/pup","github.com/hadolint/hadolint","github.com/helmfile/helmfile","github.com/helmfile/vals","github.com/hughsie/libxmlb","github.com/hykilpikonna/hyfetch","github.com/hykilpikonna/hyfetch/neowofetch","github.com/iawia002/lux","github.com/igor-petruk/scriptisto","github.com/igorshubovych/markdownlint-cli","github.com/ios-control/ios-deploy","github.com/ivmai/libatomic_ops","github.com/jameswoolfenden/pike","github.com/jaraco/keyring","github.com/jart/blink","github.com/jarun/nnn","github.com/jaseg/lolcat","github.com/jasper-software/jasper","github.com/jbeder/yaml-cpp","github.com/jesseduffield/horcrux","github.com/jesseduffield/lazydocker","github.com/jesseduffield/lazygit","github.com/jhford/screenresolution","github.com/jj-vcs/jj","github.com/jjjake/internetarchive","github.com/jorgebastida/awslogs","github.com/jpsim/SourceKitten","github.com/json-c/json-c","github.com/julienXX/terminal-notifier","github.com/junegunn/fzf","github.com/justwatchcom/sql_exporter","github.com/k0sproject/k0sctl","github.com/kaspanet/kaspad","github.com/kaspanet/rusty-kaspa","github.com/kdave/btrfs-progs","github.com/keith/zap","github.com/kevinburke/go-bindata","github.com/kevinmichaelchen/tokesura","github.com/kiliankoe/swift-outdated","github.com/kishaningithub/tf-import-gen","github.com/kjd/idna","github.com/kkos/oniguruma","github.com/koekeishiya/skhd","github.com/koekeishiya/yabai","github.com/krzkaczor/ny","github.com/krzysztofzablocki/Sourcery","github.com/kubecolor/kubecolor","github.com/kubernetes-sigs/aws-iam-authenticator","github.com/kylef/swiftenv","github.com/lemoony/snipkit","github.com/libass/libass","github.com/libfuse/libfuse","github.com/libkml/libkml","github.com/libsixel/libsixel","github.com/libsndfile/libsamplerate","github.com/libsndfile/libsndfile","github.com/licensee/licensed","github.com/life4/enc","github.com/linux-test-project/lcov","github.com/lm-sensors/lm-sensors","github.com/loq9/go-sponge","github.com/lra/mackup","github.com/lrstanley/vault-unseal","github.com/lsof-org/lsof","github.com/lu-zero/cargo-c","github.com/lucianosrp/rye-uv","github.com/luvit/luv","github.com/maaslalani/invoice","github.com/mac-cain13/R.swift","github.com/mail-os/mail","github.com/mamba-org/mamba","github.com/mamba-org/micro","github.com/markuskimius/SDL2_Pango","github.com/mas-cli/mas","github.com/mat2cc/redis_tui","github.com/matoszz/blowfish","github.com/mattrobenolt/jinja2-cli","github.com/maxbrunsfeld/counterfeiter","github.com/maxmind/libmaxminddb","github.com/mikefarah/yq","github.com/minamijoyo/tfupdate","github.com/mitchellh/gox","github.com/mitsuhiko/when","github.com/mity/md4c","github.com/moby/buildkit","github.com/mono0926/LicensePlist","github.com/mop-tracker/mop","github.com/moretension/duti","github.com/mrtazz/checkmake","github.com/mtoyoda/sl","github.com/muesli/duf","github.com/mxcl/swift-sh","github.com/mycreepy/fsdiff","github.com/mycreepy/pakku","github.com/nat/openplayground","github.com/nektos/act","github.com/nemtrif/utfcpp","github.com/neovim/unibilium","github.com/newren/git-filter-repo","github.com/nicklockwood/SwiftFormat","github.com/nishanths/license","github.com/noahgorstein/jqp","github.com/nodenv/node-build","github.com/nomic-ai/gpt4all","github.com/npiv/chatblade","github.com/npryce/adr-tools","github.com/nullclaw/nullclaw","github.com/numactl/numactl","github.com/nvbn/thefuck","github.com/nvm-sh/nvm","github.com/oapi-codegen/oapi-codegen","github.com/ocrmypdf/OCRmyPDF","github.com/oligot/go-mod-upgrade","github.com/oneapi-src/oneTBB","github.com/oobabooga/text-generation-webui","github.com/open-source-parsers/jsoncpp","github.com/openclaw/openclaw","github.com/opencollab/arpack-ng","github.com/p7zip-project/p7zip","github.com/pantoniou/libfyaml","github.com/passbolt/go-passbolt-cli","github.com/peak/s5cmd","github.com/peltoche/lsd","github.com/peripheryapp/periphery","github.com/pete911/ipcalc","github.com/platformdirs/platformdirs","github.com/plougher/squashfs-tools","github.com/postmodern/chruby","github.com/postmodern/ruby-install","github.com/pranshuparmar/witr","github.com/pressly/sup","github.com/princjef/gomarkdoc","github.com/promptexecution/just-mcp","github.com/protobuf-c/protobuf-c","github.com/psf/black","github.com/psf/requests","github.com/pypa/build","github.com/pypa/twine","github.com/pyparsing/pyparsing","github.com/python-cffi/cffi","github.com/python-lsp/python-lsp-server","github.com/quodlibet/mutagen","github.com/ramonvermeulen/whosthere","github.com/raskell-io/hx","github.com/rbenv/rbenv","github.com/realm/SwiftLint","github.com/redis/hiredis","github.com/regclient/regclient/regbot","github.com/regclient/regclient/regctl","github.com/regclient/regclient/regsync","github.com/reproducible-containers/diffoci","github.com/robscott/kube-capacity","github.com/romanz/trezor-agent","github.com/royreznik/rexi","github.com/rrthomas/libpaper","github.com/rrthomas/psutils","github.com/rupa/z","github.com/saagarjha/unxip","github.com/safe-waters/docker-lock","github.com/samwho/spacer","github.com/sclevine/yj","github.com/sctplab/usrsctp","github.com/seccomp/libseccomp","github.com/sekrit-twc/zimg","github.com/shaka-project/shaka-packager","github.com/siderolabs/conform","github.com/siiptuo/pio","github.com/sindresorhus/macos-term-size","github.com/sivel/speedtest-cli","github.com/skx/marionette","github.com/skylot/jadx","github.com/skystrife/cpptoml","github.com/snowplow/factotum","github.com/so-fancy/diff-so-fancy","github.com/sorah/envchain","github.com/spencerkimball/stargazers","github.com/squidfunk/mkdocs-material","github.com/stern/stern","github.com/str4d/age-plugin-yubikey","github.com/strukturag/libde265","github.com/strukturag/libheif","github.com/stub42/pytz","github.com/svenwiltink/sparsecat","github.com/swaggo/swag","github.com/sxyazi/yazi","github.com/synfinatic/aws-sso-cli","github.com/terraform-linters/tflint","github.com/terrarium-tf","github.com/tfutils/tfenv","github.com/thinkst/opencanary","github.com/thinkst/zippy","github.com/thkukuk/libnsl","github.com/thom311/libnl","github.com/thoughtbot/complexity","github.com/tmux/tmux","github.com/tom-on-the-internet/cemetery-escape","github.com/tomnomnom/gron","github.com/tox-dev/filelock","github.com/toy/blueutil","github.com/tw93/mole","github.com/unsignedapps/swift-create-xcframework","github.com/upa/mscp","github.com/urllib3/urllib3","github.com/util-linux/util-linux","github.com/vburenin/ifacemaker","github.com/vitor-mariano/regex-tui","github.com/vmware/tdnf","github.com/volatiletech/sqlboiler","github.com/wagoodman/dive","github.com/westes/flex","github.com/withered-magic/starpls","github.com/x-motemen/ghq","github.com/xeol-io/xeol","github.com/xiph/rav1e","github.com/xiph/speexdsp","github.com/xo/usql","github.com/yannh/kubeconform","github.com/yonaskolb/Mint","github.com/yonaskolb/XcodeGen","github.com/zaach/jsonlint","github.com/zegl/kube-score","github.com/zsh-users/zsh-autosuggestions","github.com/zsh-users/zsh-completions","github.com/zsh-users/zsh-syntax-highlighting","github.com/zyedidia/eget","gitlab.com/AOMediaCodec/SVT-AV1","gitlab.com/OldManProgrammer/unix-tree","gitlab.com/gitlab-org/cli","gitlab.com/gitlab-org/gitlab-runner","gitlab.com/greut/eclint","gitlab.com/procps-ng/procps","gitlab.com/procps-ng/watch","gitleaks.io","glaros.dtc.umn.edu/metis","gleam.run","glew.sourceforge.io","glfw.org","glm.g-truc.net","gnome.org/PyGObject","gnome.org/adwaita-icon-theme","gnome.org/atk","gnome.org/gdk-pixbuf","gnome.org/gi-docgen","gnome.org/glib","gnome.org/glib-networking","gnome.org/gobject-introspection","gnome.org/gsettings-desktop-schemas","gnome.org/gtk-mac-integration-gtk3","gnome.org/json-glib","gnome.org/libgsf","gnome.org/librsvg","gnome.org/libsecret","gnome.org/libxml2","gnome.org/libxslt","gnome.org/pango","gnome.org/vala","gnu.org/autoconf","gnu.org/autoconf-archive","gnu.org/automake","gnu.org/bash","gnu.org/bc","gnu.org/binutils","gnu.org/bison","gnu.org/coreutils","gnu.org/diffutils","gnu.org/ed","gnu.org/emacs","gnu.org/findutils","gnu.org/fribidi","gnu.org/gawk","gnu.org/gcc","gnu.org/gcc/libgomp","gnu.org/gcc/libstdcxx","gnu.org/gdbm","gnu.org/gettext","gnu.org/gmp","gnu.org/gperf","gnu.org/grep","gnu.org/groff","gnu.org/grub","gnu.org/guile","gnu.org/help2man","gnu.org/inetutils","gnu.org/libiconv","gnu.org/libidn","gnu.org/libidn2","gnu.org/libmicrohttpd","gnu.org/libsigsegv","gnu.org/libtasn1","gnu.org/libtool","gnu.org/libunistring","gnu.org/m4","gnu.org/make","gnu.org/mpc","gnu.org/mpfr","gnu.org/nettle","gnu.org/parallel","gnu.org/patch","gnu.org/plotutils","gnu.org/readline","gnu.org/sed","gnu.org/source-highlight","gnu.org/stow","gnu.org/tar","gnu.org/texinfo","gnu.org/wget","gnu.org/which","gnu.org/xorriso","gnupg.org","gnupg.org/gpgme","gnupg.org/libassuan","gnupg.org/libgcrypt","gnupg.org/libgpg-error","gnupg.org/libksba","gnupg.org/npth","gnupg.org/pinentry","gnupg.org/v2.5","gnuplot.info","gnutls.org","go.dev","go.dev/govulncheck","go.dev/testscript","go.uber.org/mock/mockgen","gohugo.io","golang.org/tools","golangci-lint.run","gomplate.ca","google.com/double-conversion","google.com/firebase-tools","google.com/fullycapable","google.com/gcloud","google.com/glog","google.com/googletest","google.com/highway","google.com/protobuf-go","google.com/sentencepiece","google.com/webp","google.com/woff2","google.com/zx","google.github.io/snappy","goreleaser.com","gource.io","gphoto.org/libgphoto2","gqlgen.com","gradle.org","grafana.com/loki","granted.dev","graphicsmagick.org","graphite.sil.org","graphqleditor.com/gql","graphviz.org","groonga.org","groovy-lang.org","grpc.io","grpc.io/grpc-go","gstreamer.freedesktop.org/orc","gtk.org/gtk3","gtk.org/gtk4","gts.sourceforge.net","hadrons.org/libmd","harding.motd.ca/autossh","harfbuzz.org","harlequin.sh","hashicorp.com/consul-template","hashicorp.com/envconsul","haskell.org","haskell.org/cabal","hasura.io","hatch.pypa.io","hboehm.info/gc","hdfgroup.org/HDF5","heasarc.gsfc.nasa.gov/cfitsio","helix-editor.com","helm.sh","heroku.com","hetzner.com/hcloud","hjson.github.io","html-tidy.org","htop.dev","htslib.org","htslib.org/samtools","httpie.io","huggingface.co","hugo.wang/cicada","hunspell.github.io","hurl.dev","ibr.cs.tu-bs.de/libsmi","idleberg.github.io/krampus","ijg.org","imageflow.io/imageflow_tool","imagemagick.org","indexsupply.com/shovel","info-zip.org/unzip","info-zip.org/zip","infracost.io","intel.com/libva","invisible-island.net/dialog","invisible-island.net/lynx","invisible-island.net/ncurses","ipfs.tech","ipfscluster.io","ipython.org","iroh.computer","isc.org/bind9","istio.io","itstool.org","ivarch.com/pv","jbang.dev","jbig2dec.com","jedisct1.github.io/minisign","jedsoft.org/slang","jemalloc.net","jenkins-x.io","jenkins.io","jenv.be","jetporch.com","jfrog.com/jfrog-cli","jless.io","jonas.github.io/tig","jpeg.org/jpegxl","json.nlohmann.me","jsonnet.org","jugit.fz-juelich.de/mlz/libcerf","juju.is","julialang.org","julialang.org/juliaup","jumppad.dev","jupyter.org","just.systems","k3d.io","k6.io","k9scli.io","kafka.apache.org","kaggle.com","kamal-deploy.org","keephq.dev","kerberos.org","kernel.org/libcap","kernel.org/linux-headers","khanacademy.org/genqlient","khronos.org/SPIRV-Cross","khronos.org/SPIRV-Tools","khronos.org/glslang","khronos.org/opencl-headers","kind.sigs.k8s.io","kiro.dev/cli","kislyuk.github.io/argcomplete","kluctl.io","ko.build","kornel.ski/dssim","kotlinlang.org","koyeb.com","kpt.dev","krew.sigs.k8s.io","ktlint.github.io","kubebuilder.io","kubecm.cloud","kubectx.dev","kubelinter.io","kubernetes.io/kubectl","kubernetes.io/kustomize","kubernetes.io/minikube","kubeshark.co","ladspa.org","lame.sourceforge.io","langchain.com","laravel.com","lavinmq.com","lcdf.org/gifsicle","leethomason.github.io/tinyxml2","leo-lang.org","leonerd.org.uk/libtermkey","leonerd.org.uk/libvterm","leptonica.org","lftp.yar.ru","libarchive.org","libcxx.llvm.org","libevent.org","libexif.github.io","libexpat.github.io","libgd.github.io","libgeos.org","libgit2.org","libimobiledevice.org","libimobiledevice.org/libimobiledevice-glue","libimobiledevice.org/libplist","libimobiledevice.org/libtatsu","libimobiledevice.org/libusbmuxd","libisl.sourceforge.io","libjpeg-turbo.org","liblqr.wikidot.com","libpipeline.gitlab.io/libpipeline","libpng.org","libproxy.github.io/libproxy","libraw.org","libsdl.org","libsdl.org/SDL_image","libsdl.org/SDL_mixer","libsdl.org/SDL_ttf","libsodium.org","libsoup.org","libspng.org","libssh.org","libssh2.org","libtom.net/math","liburcu.org","libusb.info","libusb.info/compat","libuv.org","libvips.org","libwebsockets.org","libzip.org","lima-vm.io","linkerd.io/linkerd2","linux-pam.org","litecli.com","littlecms.com","llm.datasette.io","lloyd.github.io/yajl","llvm.org","llvm.org/clang-format","localai.io","localstack.cloud/awscli-local","localstack.cloud/cli","logdy.dev","logological.org/gpp","lua.org","luajit.org","luarocks.org","lucagrulla.com/cw","lunarvim.org","lxml.de","lychee.cli.rs","lz4.org","maaslalani.com/slides","macfuse.github.io","macfuse.github.io/v2","macvim.org","mailpit.axllent.org","makotemplates.org","man-db.gitlab.io/man-db","mandoc.bsd.lv","mariadb.com/server","markupsafe.palletsprojects.com","materialize.com","matio.sourceforge.io","maturin.rs","maven.apache.org","mcmc-jags.sourceforge.io","meilisearch.com","memcached.org","mercure.rocks","mercurial-scm.org","mergestat.com/mergestat-lite","mergiraf.org","mesa3d.org","mesonbuild.com","micro-editor.github.io","microbrew.org/md5sha1sum","microcks.io","microsoft.com/PowerShell","microsoft.com/azure-cli","microsoft.com/azure-storage-azcopy","microsoft.com/code-cli","microsoft.com/dxc","microsoft.com/markitdown","microsoft.com/pyright","midnight-commander.org","min.io","min.io/mc","miniupnp.free.fr","mise.jdx.dev","mitmproxy.org","mkcert.dev","mkdocs.org","modal.com","modernc.org/goyacc","mongodb.com","mongodb.com/shell","moonrepo.dev/moon","mosh.org","mozilla.org/cbindgen","mozilla.org/mozjpeg","mozilla.org/nspr","mozilla.org/nss","mpg123.de","mpmath.org","mpv.io","msgpack.org","mujs.com","mun-lang.org","mupdf.com","musepack.net","musepack.net/libcuefile","musepack.net/libreplaygain","musl.libc.org","mvdan.cc/gofumpt","mvdan.cc/sh","mypy-lang.org","mysql.com","nano-editor.org","nasm.us","neovim.io","netflix.com/vmaf","netlib.org/lapack","netpbm.sourceforge.net","networkx.org","nghttp2.org","nginx.org","nike.com/gimme-aws-creds","nim-lang.org","ninja-build.org","nixos.org/patchelf","nixpacks.com","nlnetlabs.nl/ldns","nmap.org","nodejs.org","nodejs.org/corepack","nomadproject.io","nongnu.org/lzip","notroj.github.io/neon","npmjs.com","npmjs.com/pake-cli","ntp.org","numbat.dev","numpy.org","nushell.sh","nx.dev","oauth2-proxy.github.io","oberhumer.com/lzo","oberhumer.com/ucl","odigos.io","ohmyposh.dev","ollama.ai","onefetch.dev","onsi.github.io/ginkgo","open-mpi.org","open-mpi.org/hwloc","openai.com/codex","openai.com/openai-python","openai.com/whisper","openapi-generator.tech","openbao.org/openbao","openblas.net","opencode.ai","opencore-amr.sourceforge.io","opendap.org","opendev.org/git-review","opendev.org/openstack/python-openstackclient","openexr.com","openexr.com/imath","openinterpreter.com","openjdk.org","openjpeg.org","openldap.org","openldap.org/liblmdb","openmp.llvm.org","openpmix.github.io","openpolicyagent.org","openprinting.github.io/cups","openresty.org","opensearch.org","openshift.com","openslide.org","openssh.com","openssl.org","opensuse.org/libsolv","opentofu.org","openvpn.net","operatorframework.io/operator-sdk","opus-codec.org","oracle.com/berkeley-db","oracle.com/oci-cli","oras.land","ordinals.com","orhun.dev/gpg-tui","ots.sniptt.com","packer.io","pagure.io/libaio","pagure.io/xmlto","palletsprojects.com/click","palletsprojects.com/jinja","pandoc.org","pandoc.org/crossref","pantsbuild.org/scie-pants","paulfitz.github.io/daff","pcre.org","pcre.org/v2","pcsclite.apdu.fr","pdm.fming.dev","people.engr.tamu.edu/davis/suitesparse","people.redhat.com/sgrubb/libcap-ng","perl.org","permit.io/cedar-agent","php.net","phpmyadmin.net","pi.dev","pimalaya.org/himalaya","pinniped.dev","pip.pypa.io","pipenv.pypa.io","pixman.org","pkgx.sh","pkgx.sh/brewkit","pkgx.sh/cargox","pkgx.sh/dev","pkgx.sh/mash","pkgx.sh/pkgm","pkl-lang.org","plakar.io","planetscale.com","plantuml.com","plasmasturm.org/rename","plocate.sesse.net","pluralith.com","pngquant.org/lib","pnpm.io","po4a.org","pocketbase.io","podman.io","pokt.network","poppler.freedesktop.org","poppler.freedesktop.org/poppler-data","portaudio.com","postgresql.org","postgresql.org/libpq","postgrest.org","practical-scheme.net/gauche","pre-commit.com","prefix.dev","pressly.github.io/goose","prettier.io","printfn.github.io/fend","priver.dev/geni","proj.org","project-copacetic.github.io","projectdiscovery.io/nuclei","projen.io","protobuf.dev","prql-lang.org","psycopg.org/psycopg2","psycopg.org/psycopg3","public.hronopik.de/vid.stab","pugixml.org","pulumi.io","pwgen.sourceforge.io","pwmt.org/girara","pwmt.org/zathura","pygments.org","pyinvoke.org","pypa.github.io/pipx","pypa.io/distlib","pypa.io/hatch","pypa.io/packaging","pypa.io/setuptools","pypa.io/trove-classifiers","pytest.org","pytest.org/pluggy","python-pillow.org","python-poetry.org","python.org","python.org/typing_extensions","pyyaml.org","pyyaml.org/libyaml","qemu.org","qhull.org","qpdf.sourceforge.io","qt.io","quary.dev/sqruff","quickwit.io","r-wos.org/gti","rabbitmq.com","raccoin.org","radicle.org","railway.app","rapidjson.org","rarlab.com","rbenv.org/ruby-build","rclone.org","re2c.org","reacher.email/check-if-email-exists-cli","rebar3.org","redis.io","render.com","replibyte.com","restic.net/restic","rhash.sourceforge.net","rigaux.org/hexedit","rioterm.com","riverbankcomputing.com/pyqt-builder","riverbankcomputing.com/sip","robotframework.org","rockdaboot.github.io/libpsl","rome.tools","rpm.org/dnf5","rpm.org/libdnf5","rpm.org/librepo","rpm.org/popt","rpm.org/rpm","rpm.org/rpm-sequoia","rsync.samba.org","rtmpdump.mplayerhq.hu","rtomayko.github.io/ronn","rubocop.org","ruby-lang.org","rubygems.org","rubygems.org/gist","rucio.cern.ch/rucio-client","runatlantis.io","rust-lang.github.io/mdBook","rust-lang.org","rust-lang.org/cargo","rust-lang.org/rust-bindgen","rust-lang.org/rustup","rust-script.org","rye.astral.sh","s3tools.org","s3tools.org/s3cmd","saerasoft.com/caesium","sagiegurari.github.io/duckscript","sass-lang.com/libsass","sass-lang.com/sassc","savannah.nongnu.org/acl","savannah.nongnu.org/attr","scala-lang.org","scala-sbt.org","scaleway.com","schollz.com/croc","scons.org","scryer.pl","sdkman.io","seaweedfs.com","sentry.io","sf.net/optipng","sfcgal.org","sftpgo.com","shellcheck.net","sigstore.dev/cosign","sigstore.dev/gitsign","simplesystems.org/libtiff","sing-box.app","skaffold.dev","smartmontools.org","snaplet.dev/cli","sniffnet.net","snyk.io","snyk.io/driftctl","solana.com","soldeer.xyz","soliditylang.org","sonarqube.org/sonarscanner","sourceforge.net/e2fsprogs","sourceforge.net/faac","sourceforge.net/faad2","sourceforge.net/libmng","sourceforge.net/libtirpc","sourceforge.net/net-tools","sourceforge.net/opencore-amr","sourceforge.net/potrace","sourceforge.net/xmlstar","sourceware.org/bzip2","sourceware.org/dm","sourceware.org/libffi","soxr.sourceforge.net","spacetimedb.com","spawn.link","speex.org","sphinx-doc.org","sqlc.dev","sqlfluff.com","sqlite.org","squawkhq.com","sr.ht/scdoc","srtalliance.org","sshx.io","starship.rs","steampipe.io","stedolan.github.io/jq","strace.io","streamlink.github.io","stripe.com","supabase.com/cli","surrealdb.com","svenstaro.github.io/genact","swagger.io/swagger-codegen","swift.org","swig.org","symfony.com","symfony.com/cs","sympy.org","syncthing.net","systemd.io","taglib.org","tailcall.run","tailscale.com","tailwindcss.com","taku910.github.io/mecab","taku910.github.io/mecab-ipadic","talos.dev","taplo.tamasfe.dev","tart.run","taskfile.dev","tcl-lang.org","tcl-lang.org/expect","tcl.tk/tcl","tcpdump.org","tcsh.org","tea.xyz","tectonic-typesetting.github.io","templ.guide","temporal.io","termshark.io","terraform-docs.io","terraform.io","terraform.io/cdk","terragrunt.gruntwork.io","terratag.io","tesseract-ocr.github.io","thekelleys.org.uk/dnsmasq","theora.org","thoughtworks.github.io/talisman","thrysoee.dk/editline","tidbyt.com","tilt.dev","tinybird.co","tinygo.org","tldr.sh","tlr.dev","tmate.io","tox.wiki","traefik.io","tree-sitter.github.io","trippy.cli.rs","trufflesecurity.com/trufflehog","tsl0922.github.io/ttyd","tuist.io/xcbeautify","tukaani.org/xz","turso.tech","tuxpaint.org","typescriptlang.org","typst.app","unbound.net","unicode.org","unidata.ucar.edu/netcdf","unixodbc.org","upliftci.dev","upx.github.io","uriparser.github.io","vale.sh","valkey.io","vamp-plugins.org","vanna.ai","vapoursynth.com","vaultproject.io","vcluster.com","vektra.github.io/mockery","velero.io","veracode.com/gen-ir","vercel.com/next","vercel.com/pkg","versity.com/versitygw","viaduct.ai/ksops","videolan.org/libbluray","videolan.org/libplacebo","videolan.org/x264","videolan.org/x265","vim.org","virtualenv.pypa.io","virtualsquare.org/vde","vitejs.dev","vlang.io","volta.sh","wails.io","wait4x.dev","wasmer.io","watchexec.github.io","waterlan.home.xs4all.nl/dos2unix","wavpack.com","wayland.freedesktop.org","wayland.freedesktop.org/protocols","webmproject.org/libvpx","werf.io","wezfurlong.org/wezterm","wilfred.me.uk/difftastic","wimlib.net","wireshark.org","wix.com/applesimutils","wkentaro.github.io/gdown","wpewebkit.org/libwpe","wpewebkit.org/wpebackend-fdo","wundergraph.com","wxwidgets.org","x.org/applewm","x.org/exts","x.org/ice","x.org/libSM","x.org/libcvt","x.org/libfontenc","x.org/libpthread-stubs","x.org/libxfont2","x.org/libxres","x.org/pciaccess","x.org/protocol","x.org/protocol/xcb","x.org/sm","x.org/util-macros","x.org/x11","x.org/xau","x.org/xauth","x.org/xaw","x.org/xcb","x.org/xcb-util","x.org/xcomposite","x.org/xcursor","x.org/xdamage","x.org/xdmcp","x.org/xfixes","x.org/xft","x.org/xi","x.org/xinerama","x.org/xinput","x.org/xkbfile","x.org/xmu","x.org/xpm","x.org/xrandr","x.org/xrender","x.org/xscrnsaver","x.org/xshmfence","x.org/xt","x.org/xtrans","x.org/xtst","x.org/xv","x.org/xxf86vm","xcfile.dev","xerces.apache.org/xerces-c","xiph.org/flac","xiph.org/libshout","xiph.org/ogg","xiph.org/vorbis","xkbcommon.org","xplr.dev","xpra.org","xtls.github.io","xvid.com","yadm.io","yarnpkg.com","yasm.tortall.net","youtube-dl.org","yt-dlp.org","yui.github.io/yuicompressor","zarf.dev","zeromq.org","ziglang.org","zlib.net","zlib.net/minizip","zotregistry.dev","zrok.io","zsh.sourceforge.io"];
2
+ export{b as lb,d as mb,h as nb,j as ob,m as pb};
@@ -1,14 +1,14 @@
1
- import{Jb as R,Kb as T}from"./chunk-p9e5z92g.js";import"./chunk-yjz3e391.js";import E from"node:fs";import I from"node:path";function z(j,J){let L=R(j);if(L.length===0)return J;if(T(j))return L;return[...new Set([...J,...L])]}function O(j){let J=[],L=E.readdirSync(j,{withFileTypes:!0});for(let w of L){let Q=I.join(j,w.name);if(w.isDirectory())J.push(...O(Q));else if(w.isFile()&&w.name.endsWith(".ts")&&w.name!=="index.ts"&&w.name!=="aliases.ts")J.push(Q)}return J}function C(j,J){let L=j.startsWith("v")?j.slice(1):j,w=J.startsWith("v")?J.slice(1):J,Q=L.split(/[.-]/),W=w.split(/[.-]/);for(let q=0;q<Math.max(Q.length,W.length);q++){let K=Q[q]||"0",X=W[q]||"0",_=Number.parseInt(K,10),$=Number.parseInt(X,10);if(!Number.isNaN(_)&&!Number.isNaN($)){if(_>$)return-1;if(_<$)return 1}else{if(K>X)return-1;if(K<X)return 1}}return 0}function Y(j){return j.replace(/\\/g,"\\\\").replace(/"/g,"\\\"").replace(/\n/g,"\\n").replace(/\r/g,"\\r").replace(/\t/g,"\\t")}function V(j){let J=j.programs.map((q)=>`"${Y(q)}"`).join(", "),L=j.dependencies.map((q)=>`"${Y(q)}"`).join(", "),w=j.buildDependencies.map((q)=>`"${Y(q)}"`).join(", "),Q=j.aliases.map((q)=>`"${Y(q)}"`).join(", "),W=j.versions.map((q)=>`"${Y(q)}"`).join(", ");return` .{
2
- .name = "${Y(j.name)}",
3
- .domain = "${Y(j.domain)}",
4
- .description = "${Y(j.description)}",
5
- .homepage_url = ${j.homepageUrl?`"${Y(j.homepageUrl)}"`:"null"},
1
+ import{Jb as T,Kb as z}from"./chunk-p9e5z92g.js";import"./chunk-yjz3e391.js";import E from"node:fs";import I from"node:path";function C(j,J){let K=T(j);if(K.length===0)return J;if(z(j))return K;return[...new Set([...J,...K])]}function O(j){let J=[],K=E.readdirSync(j,{withFileTypes:!0});for(let w of K){let U=I.join(j,w.name);if(w.isDirectory())J.push(...O(U));else if(w.isFile()&&w.name.endsWith(".ts")&&w.name!=="index.ts"&&w.name!=="aliases.ts")J.push(U)}return J}function V(j,J){let K=j.startsWith("v")?j.slice(1):j,w=J.startsWith("v")?J.slice(1):J,U=K.indexOf("-"),X=U===-1?K:K.slice(0,U),H=U===-1?null:K.slice(U+1),L=w.indexOf("-"),Y=L===-1?w:w.slice(0,L),_=L===-1?null:w.slice(L+1),G=X.split("."),Q=Y.split(".");for(let q=0;q<Math.max(G.length,Q.length);q++){let $=Number.parseInt(G[q]||"0",10),R=Number.parseInt(Q[q]||"0",10);if($>R)return-1;if($<R)return 1}if(H===null&&_!==null)return-1;if(H!==null&&_===null)return 1;if(H!==null&&_!==null){if(H>_)return-1;if(H<_)return 1}return 0}function W(j){return j.replace(/\\/g,"\\\\").replace(/"/g,"\\\"").replace(/\n/g,"\\n").replace(/\r/g,"\\r").replace(/\t/g,"\\t")}function N(j){let J=j.programs.map((H)=>`"${W(H)}"`).join(", "),K=j.dependencies.map((H)=>`"${W(H)}"`).join(", "),w=j.buildDependencies.map((H)=>`"${W(H)}"`).join(", "),U=j.aliases.map((H)=>`"${W(H)}"`).join(", "),X=j.versions.map((H)=>`"${W(H)}"`).join(", ");return` .{
2
+ .name = "${W(j.name)}",
3
+ .domain = "${W(j.domain)}",
4
+ .description = "${W(j.description)}",
5
+ .homepage_url = ${j.homepageUrl?`"${W(j.homepageUrl)}"`:"null"},
6
6
  .programs = &[_][]const u8{ ${J} },
7
- .dependencies = &[_][]const u8{ ${L} },
7
+ .dependencies = &[_][]const u8{ ${K} },
8
8
  .build_dependencies = &[_][]const u8{ ${w} },
9
- .aliases = &[_][]const u8{ ${Q} },
10
- .versions = &[_][]const u8{ ${W} },
11
- }`}async function v(j,J){console.log(`\uD83D\uDD0D Scanning packages directory: ${j}`);let L=O(j);console.log(`\uD83D\uDCE6 Found ${L.length} package files`);let w=[],Q=0,W=0;for(let K of L)try{let _=E.readFileSync(K,"utf-8").match(/export const (\w+) = \{/);if(!_){console.warn(`⚠️ Could not find export const in ${K}`),W++;continue}let H=(await import(`file://${I.resolve(K)}`))[_[1]];if(!H||!H.domain){console.warn(`⚠️ Invalid package data in ${K}`),W++;continue}let G=Array.isArray(H.versions)?[...H.versions].sort(C):[];if(w.push({name:H.name||H.domain,domain:H.domain,description:H.description||"",homepageUrl:H.homepageUrl,programs:Array.isArray(H.programs)?H.programs:[],dependencies:Array.isArray(H.dependencies)?H.dependencies:[],buildDependencies:Array.isArray(H.buildDependencies)?H.buildDependencies:[],aliases:z(H.domain,Array.isArray(H.aliases)?H.aliases:[]),versions:G}),Q++,Q%100===0)console.log(` Processed ${Q}/${L.length} packages...`)}catch(X){console.error(`❌ Error processing ${K}:`,X),W++}console.log(`✅ Processed ${Q} packages (${W} errors)`),w.sort((K,X)=>K.domain.localeCompare(X.domain));let q=N(w);E.writeFileSync(J,q,"utf-8"),console.log(`✅ Generated Zig definitions: ${J}`),console.log(`\uD83D\uDCCA Total packages: ${w.length}`)}function N(j){let J=j.map((L)=>V(L)).join(`,
9
+ .aliases = &[_][]const u8{ ${U} },
10
+ .versions = &[_][]const u8{ ${X} },
11
+ }`}async function b(j,J){console.log(`\uD83D\uDD0D Scanning packages directory: ${j}`);let K=O(j);console.log(`\uD83D\uDCE6 Found ${K.length} package files`);let w=[],U=0,X=0;for(let L of K)try{let _=E.readFileSync(L,"utf-8").match(/export const (\w+) = \{/);if(!_){console.warn(`⚠️ Could not find export const in ${L}`),X++;continue}let q=(await import(`file://${I.resolve(L)}`))[_[1]];if(!q||!q.domain){console.warn(`⚠️ Invalid package data in ${L}`),X++;continue}let $=Array.isArray(q.versions)?[...q.versions].sort(V):[];if(w.push({name:q.name||q.domain,domain:q.domain,description:q.description||"",homepageUrl:q.homepageUrl,programs:Array.isArray(q.programs)?q.programs:[],dependencies:Array.isArray(q.dependencies)?q.dependencies:[],buildDependencies:Array.isArray(q.buildDependencies)?q.buildDependencies:[],aliases:C(q.domain,Array.isArray(q.aliases)?q.aliases:[]),versions:$}),U++,U%100===0)console.log(` Processed ${U}/${K.length} packages...`)}catch(Y){console.error(`❌ Error processing ${L}:`,Y),X++}console.log(`✅ Processed ${U} packages (${X} errors)`),w.sort((L,Y)=>L.domain.localeCompare(Y.domain));let H=x(w);E.writeFileSync(J,H,"utf-8"),console.log(`✅ Generated Zig definitions: ${J}`),console.log(`\uD83D\uDCCA Total packages: ${w.length}`)}function x(j){let J=j.map((K)=>N(K)).join(`,
12
12
  `);return`//! Package definitions generated from ts-pantry
13
13
  //! DO NOT EDIT MANUALLY - This file is auto-generated
14
14
  //! Generated on: ${new Date().toISOString()}
@@ -107,8 +107,8 @@ test "Can find package by alias" {
107
107
  );
108
108
  }
109
109
  }
110
- `}async function B(j,J){console.log(`\uD83D\uDD0D Generating Zig aliases from: ${j}`);let L=O(j),w={};for(let q of L)try{let X=E.readFileSync(q,"utf-8").match(/export const (\w+) = \{/);if(!X)continue;let U=(await import(`file://${I.resolve(q)}`))[X[1]];if(!U||!U.domain)continue;if(U.aliases&&Array.isArray(U.aliases))for(let G of U.aliases)w[G]=U.domain;if(U.name&&U.name!==U.domain)w[U.name]=U.domain;let H=U.domain.split(".")[0];if(H&&!w[H])w[H]=U.domain}catch(K){console.error(`Error processing ${q}:`,K)}let Q=Object.entries(w).sort(([q],[K])=>q.localeCompare(K)).map(([q,K])=>` .{ .alias = "${Y(q)}", .domain = "${Y(K)}" }`).join(`,
111
- `),W=`//! Package aliases generated from ts-pantry
110
+ `}async function P(j,J){console.log(`\uD83D\uDD0D Generating Zig aliases from: ${j}`);let K=O(j),w={};for(let H of K)try{let Y=E.readFileSync(H,"utf-8").match(/export const (\w+) = \{/);if(!Y)continue;let Q=(await import(`file://${I.resolve(H)}`))[Y[1]];if(!Q||!Q.domain)continue;if(Q.aliases&&Array.isArray(Q.aliases))for(let $ of Q.aliases)w[$]=Q.domain;if(Q.name&&Q.name!==Q.domain)w[Q.name]=Q.domain;let q=Q.domain.split(".")[0];if(q&&!w[q])w[q]=Q.domain}catch(L){console.error(`Error processing ${H}:`,L)}let U=Object.entries(w).sort(([H],[L])=>H.localeCompare(L)).map(([H,L])=>` .{ .alias = "${W(H)}", .domain = "${W(L)}" }`).join(`,
111
+ `),X=`//! Package aliases generated from ts-pantry
112
112
  //! DO NOT EDIT MANUALLY - This file is auto-generated
113
113
  //! Generated on: ${new Date().toISOString()}
114
114
 
@@ -120,11 +120,11 @@ pub const Alias = struct {
120
120
  };
121
121
 
122
122
  pub const aliases = [_]Alias{
123
- ${Q}
123
+ ${U}
124
124
  };
125
125
 
126
126
  /// Resolve an alias to a domain name
127
- pub fn resolvealias(alias: []const u8) ?[]const u8 {
127
+ pub fn resolve_alias(alias: []const u8) ?[]const u8 {
128
128
  for (aliases) |entry| {
129
129
  if (std.mem.eql(u8, entry.alias, alias)) {
130
130
  return entry.domain;
@@ -134,9 +134,9 @@ pub fn resolvealias(alias: []const u8) ?[]const u8 {
134
134
  }
135
135
 
136
136
  test "Alias resolution works" {
137
- const resolved = resolvealias("node");
137
+ const resolved = resolve_alias("node");
138
138
  if (resolved) |domain| {
139
139
  try std.testing.expectEqualStrings("nodejs.org", domain);
140
140
  }
141
141
  }
142
- `;E.writeFileSync(J,W,"utf-8"),console.log(`✅ Generated Zig aliases: ${J}`),console.log(`\uD83D\uDCCA Total aliases: ${Object.keys(w).length}`)}export{v as generateZigDefinitions,B as generateZigAliases};
142
+ `;E.writeFileSync(J,X,"utf-8"),console.log(`✅ Generated Zig aliases: ${J}`),console.log(`\uD83D\uDCCA Total aliases: ${Object.keys(w).length}`)}export{b as generateZigDefinitions,P as generateZigAliases};