UNPKG

@stacksjs/launchpad

Version:
6 lines (5 loc) 3.9 kB
// @bun import"./chunk-83b6axd0.js";import"./chunk-kd525svk.js";import"./chunk-6qxbw28k.js";import{Ka as _}from"./chunk-wkk6vc0r.js";import"./chunk-f8dcmgkp.js";import{Za as C,_a as B}from"./chunk-fhet42vs.js";import"./chunk-b9hx8gsj.js";import"./chunk-8pxdwzvm.js";function D(Q,U={}){let{limit:X=50,includePrograms:Y=!0,caseSensitive:M=!1}=U;if(!Q||Q.trim().length===0)return[];let L=M?Q.trim():Q.trim().toLowerCase(),N=[],q=new Set,R=(G,j)=>{let H=M?G:G.toLowerCase();if(H===L)return 100;if(H.startsWith(L))return 80;if(H.includes(L))return 60;let O={exact:50,alias:40,domain:30,program:20,description:10}[j];return Math.max(10,O)};for(let[G,j]of Object.entries(C)){let H=M?G:G.toLowerCase();if(H.includes(L)){let O=_(G);if(O&&!q.has(O.domain)){q.add(O.domain);let E=H===L?"exact":"alias",J=R(G,E);N.push({name:G,domain:O.domain,description:O.description,latestVersion:O.latestVersion,totalVersions:O.totalVersions,programs:O.programs,matchType:E,relevanceScore:J})}}}for(let[G,j]of Object.entries(B)){let H="domain"in j?j.domain:G,O=M?H:H.toLowerCase();if(O.includes(L)){let E=_(H);if(E&&!q.has(E.domain)){q.add(E.domain);let J=O===L?"exact":"domain",$=R(H,J);N.push({name:"name"in j?j.name:H,domain:E.domain,description:E.description,latestVersion:E.latestVersion,totalVersions:E.totalVersions,programs:E.programs,matchType:J,relevanceScore:$})}}}for(let[G,j]of Object.entries(B)){let H="domain"in j?j.domain:G;if("description"in j&&j.description){if((M?j.description:j.description.toLowerCase()).includes(L)){let E=_(H);if(E&&!q.has(E.domain)){q.add(E.domain);let J=R(j.description,"description");N.push({name:"name"in j?j.name:H,domain:E.domain,description:E.description,latestVersion:E.latestVersion,totalVersions:E.totalVersions,programs:E.programs,matchType:"description",relevanceScore:J})}}}}if(Y)for(let[G,j]of Object.entries(B)){let H="domain"in j?j.domain:G;if("programs"in j&&Array.isArray(j.programs)){let E=j.programs.find((J)=>{return(M?J:J.toLowerCase()).includes(L)});if(E){let J=_(H);if(J&&!q.has(J.domain)){q.add(J.domain);let $=R(E,"program");N.push({name:"name"in j?j.name:H,domain:J.domain,description:J.description,latestVersion:J.latestVersion,totalVersions:J.totalVersions,programs:J.programs,matchType:"program",relevanceScore:$})}}}}return N.sort((G,j)=>{if(G.relevanceScore!==j.relevanceScore)return j.relevanceScore-G.relevanceScore;return G.name.localeCompare(j.name)}),N.slice(0,X)}function V(Q=20){let U=["go","perl","php","aws","aws/cdk","aws/cli","cdk","protoc","xray","weed"],X=[];for(let Y of U){let M=_(Y);if(M)X.push({name:Y,domain:M.domain,description:M.description,latestVersion:M.latestVersion,totalVersions:M.totalVersions,programs:M.programs,matchType:"exact",relevanceScore:100});if(X.length>=Q)break}return X}function Z(Q,U){if(!U||U.trim().length===0)return Q;let X=new RegExp(`(${U.replace(/[.*+?^${}()|[\]\\]/g,"\\$&")})`,"gi");return Q.replace(X,"\x1B[43m\x1B[30m$1\x1B[0m")}function A(Q,U={}){let{showPrograms:X=!0,showVersions:Y=!0,compact:M=!1,searchTerm:L=""}=U;if(Q.length===0)return"No packages found matching your search.";let N=[];if(!M){let q=Q.length===1?"package":"packages";N.push(`Found ${Q.length} ${q}: `)}for(let q of Q)if(M){let R=q.description?` - ${Z(q.description,L)}`:"";N.push(`${Z(q.name,L)} (${Z(q.domain,L)})${R}`)}else{if(N.push(`\uD83D\uDCE6 \x1B[1m${Z(q.name,L)}\x1B[0m (\x1B[3m${Z(q.domain,L)}\x1B[0m)`),q.description)N.push(` ${Z(q.description,L)}`);let R=[];if(Y&&q.latestVersion)R.push(`\x1B[2mLatest:\x1B[0m ${q.latestVersion}`);if(Y&&q.totalVersions>0)R.push(`${q.totalVersions} versions available`);if(R.length>0)N.push(` ${R.join(" \u2022 ")}`);if(X&&q.programs&&q.programs.length>0){let G=q.programs.map((j)=>Z(j,L)).join(", ");N.push(` \x1B[2mPrograms:\x1B[0m ${G}`)}N.push("")}return N.join(` `)}export{D as searchPackages,V as getPopularPackages,A as formatSearchResults}; export{D as a,V as b,A as c};