1import{i as e,n as t,r as n,t as r}from"../chunks/5fRm19_-.js";import{$ as i,A as a,D as o,F as s,G as c,I as l,J as u,K as d,L as f,M as p,P as m,Q as h,S as g,U as _,X as v,Y as y,Z as b,at as x,b as S,c as C,ct as w,d as T,f as ee,ft as E,g as D,h as O,j as k,lt as A,m as j,n as M,nt as N,ot as P,pt as F,q as I,r as L,rt as R,t as z,w as B,x as V,y as H,z as U}from"../chunks/CMbF87Pw.js";import{r as W,t as G}from"../chunks/Cvz6lpQg.js";import{t as K}from"../chunks/DrAlOJGo.js";import"../chunks/ChvMNu7t.js";import{n as q}from"../chunks/D6Uue82a.js";import"../chunks/Cqy7GszY.js";import{t as J}from"../chunks/BWT_7hlo.js";import{n as Y,t as te}from"../chunks/BUzHIdX0.js";var X=Object.freeze({repos:100}),Z=e=>{let t=Number.parseInt(e.get(`repos`)??``,10);return{query:e.get(`q`)||void 0,repos:t>=0?t:X.repos}},ne=0,re=({query:e,repos:t,searchType:n})=>{let r=G.to?.url??W.url,i=Z(r.searchParams),a=e!==void 0&&(e||void 0)!==i.query,o=t!==void 0&&t>=0&&t!==i.repos;if(a||o){let i=Date.now(),s=new URL(r.href);a&&e?s.searchParams.set(`q`,e):a&&s.searchParams.delete(`q`),o&&t===X.repos?s.searchParams.delete(`repos`):o&&s.searchParams.set(`repos`,t.toString()),K(s,{replace:n===`live`&&i-ne<2e3,reset:!1}),ne=i}},ie=e({load:()=>ae}),ae=async({url:e,fetch:t})=>({listOutcome:await oe(e,t)}),oe=async(e,t)=>{let n=Z(e.searchParams);try{return await(await t(`/api/list`,{method:`POST`,body:JSON.stringify(n),headers:{"content-type":`application/json`}})).json()}catch(e){return console.error(`List repositories failed`,e),{kind:`error`,error:String(e)}}},se=p('<form><input type="submit" class="hidden"/> <div class="flex flex-wrap gap-y-2 justify-center whitespace-nowrap"><label for="query" class="flex-auto flex flex-col space-y-0.5"><span title="Same query syntax as the main search - use `r:name` to filter repositories by name, otherwise you are filtering them by their content!" class="text-xs px-1 text-gray-500 dark:text-gray-400">query<!></span> <span><input id="query" type="search" autocorrect="off" autocapitalize="off" autocomplete="off" class="font-mono dark:bg-black focus:outline-hidden flex-auto appearance-none"/> <!></span></label> <label for="repos" class="flex flex-col space-y-0.5"><span class="text-xs px-1 text-gray-500 dark:text-gray-400">repos</span> <!></label></div> <div class="text-xs text-red-500"> </div></form>');function ce(e,n){A(n,!0);let s=x(()=>Z(W.url.searchParams)),u=q(),p=R(i(U(s).query)),m=R(i(U(s).repos));d(()=>{G.type!==`goto`&&(e=>{N(p,e.query,!0),N(m,e.repos,!0)})(U(s))});let g=()=>u.searchType===`live`&&(!U(p)||U(p).length>=3),_=()=>{re({query:U(p),repos:U(m),searchType:u.searchType})},v=R(void 0);d(()=>{u.searchType===`live`&&U(v)===`manual`&&_(),N(v,u.searchType,!0)});let S=x(()=>G.type===null&&(U(s).query??``)!==(U(p)??``)),E=x(()=>G.type===null&&U(s).repos!==U(m));var D=se(),O=h(y(D),2),k=y(O),M=y(k),I=h(y(M));r(I,{}),F(M);var L=h(M,2),z=y(L);T(z),P(z,!0),ee(z,`spellcheck`,!1);var B=h(z,2);t(B,{}),F(L),F(k);var V=h(k,2),H=h(y(V),2);te(H,{id:`context`,kind:`positive`,get pending(){return U(E)},onChange:e=>{g()&&re({repos:e,searchType:u.searchType})},get value(){return U(m)},set value(e){N(m,e,!0)}}),F(V),F(O);var K=h(O,2),J=b(K,!0);F(D),c(e=>{j(L,1,e),o(J,n.queryError??`â`)},[()=>`flex flex-auto p-1 border shadow-xs space-x-1 ${Y({error:n.queryError!==null,pending:U(S)})}`]),f(`submit`,D,e=>{e.preventDefault(),_()}),l(`input`,z,()=>{g()&&re({query:U(p),searchType:u.searchType})}),C(z,()=>U(p),e=>N(p,e)),a(e,D),w()}s([`input`]);var le=[`B`,`kB`,`MB`,`GB`,`TB`,`PB`,`EB`,`ZB`,`YB`],ue=[`B`,`KiB`,`MiB`,`GiB`,`TiB`,`PiB`,`EiB`,`ZiB`,`YiB`],de=[`b`,`kbit`,`Mbit`,`Gbit`,`Tbit`,`Pbit`,`Ebit`,`Zbit`,`Ybit`],fe=[`b`,`kibit`,`Mibit`,`Gibit`,`Tibit`,`Pibit`,`Eibit`,`Zibit`,`Yibit`],pe=(e,t,n)=>{let r=e;return typeof t==`string`||Array.isArray(t)?r=e.toLocaleString(t,n):(t===!0||n!==void 0)&&(r=e.toLocaleString(void 0,n)),r};function Q(e,t){if(!Number.isFinite(e))throw TypeError(`Expected a finite number, got ${typeof e}: ${e}`);t={bits:!1,binary:!1,space:!0,...t};let n=t.bits?t.binary?fe:de:t.binary?ue:le,r=t.space?` `:``;if(t.signed&&e===0)return` 0${r}${n[0]}`;let i=e<0,a=i?`-`:t.signed?`+`:``;i&&(e=-e);let o;if(t.minimumFractionDigits!==void 0&&(o={minimumFractionDigits:t.minimumFractionDigits}),t.maximumFractionDigits!==void 0&&(o={maximumFractionDigits:t.maximumFractionDigits,...o}),e<1)return a+pe(e,t.locale,o)+r+n[0];let s=Math.min(Math.floor(t.binary?Math.log(e)/Math.log(1024):Math.log10(e)/3),n.length-1);e/=(t.binary?1024:1e3)**s,o||(e=e.toPrecision(3));let c=pe(Number(e),t.locale,o),l=n[s];return a+c+r+l}var me=p(`<div class="text-left"><!></div>`);function he(e,t){var n=me(),r=y(n),i=e=>{J(e,{get to(){return t.url},children:(e,n)=>{E();var r=m();c(()=>o(r,t.name)),a(e,r)},$$slots:{default:!0}})},s=e=>{var n=m();c(()=>o(n,t.name)),a(e,n)};g(r,e=>{t.url?e(i):e(s,-1)}),F(n),a(e,n)}var ge=/^{{\s*URLJoinPath\s+(?<args>.*?)\s*}}$/,_e=(e,t)=>
1{let n=e.match(ge);if(n?.groups){let{args:e}=n.groups;return e.split(/\s+/).map(e=>e===`.Version`?t.split(`/`).map(encodeURIComponent).join(`/`):JSON.parse(e)).join(`/`)}return e.replaceAll(`{{.Version}}`,()=>t)},ve=p(` <span class="font-mono"><!></span>`,1);function ye(e,t){A(t,!0);let n=e=>/^[a-z0-9]{40}$/.test(e)?e.slice(0,8):e;var r=k(),i=v(r);S(i,17,()=>t.branches,V,(e,r)=>{let i=()=>U(r).name,s=()=>U(r).version;E();var l=ve(),u=v(l),d=h(u),f=y(d),p=e=>{{let r=x(()=>_e(t.commitUrlTemplate,s()));J(e,{get to(){return U(r)},children:(e,t)=>{E();var r=m();c(e=>o(r,e),[()=>n(s())]),a(e,r)},$$slots:{default:!0}})}},_=e=>{var t=m();c(e=>o(t,e),[()=>n(s())]),a(e,t)};g(f,e=>{t.commitUrlTemplate?e(p):e(_,-1)}),F(d),c(()=>o(u,`${i()??``}@`)),a(e,l)},e=>{E();var t=m(`n/a`);a(e,t)}),a(e,r),w()}function be(e,t){let r=z(t,[`children`,`$$slots`,`$$events`,`$$legacy`]),i=[[`path`,{d:`m18 15-6-6-6 6`}]];n(e,L({name:`chevron-up`},()=>r,{get iconNode(){return i},children:(e,n)=>{var r=k(),i=v(r);H(i,t,`default`,{},null),a(e,r)},$$slots:{default:!0}}))}function xe(e,t){let r=z(t,[`children`,`$$slots`,`$$events`,`$$legacy`]),i=[[`path`,{d:`m6 9 6 6 6-6`}]];n(e,L({name:`chevron-down`},()=>r,{get iconNode(){return i},children:(e,n)=>{var r=k(),i=v(r);H(i,t,`default`,{},null),a(e,r)},$$slots:{default:!0}}))}var Se=(e,t)=>e?.prop===t.prop?e.direction===`ascending`?{...t,direction:`descending`}:null:{...t,direction:`ascending`},Ce=({prop:e,kind:t,direction:n})=>{if(t===`number`&&n===`ascending`)return({[e]:t},{[e]:n})=>t-n;if(t===`number`&&n===`descending`)return({[e]:t},{[e]:n})=>n-t;if(t===`string`&&n===`ascending`)return({[e]:t=``},{[e]:n=``})=>t<n?-1:+(t>n);
1if(t===`string`&&n===`descending`)return({[e]:t=``},{[e]:n=``})=>n<t?-1:+(n>t)},we=p(`<div class="flex-none w-4 h-4"></div>`),Te=p(`<button class="w-full h-full flex justify-center items-center hover:bg-slate-200 dark:hover:bg-slate-700"><!> <span><!></span></button>`);function $(e,t){A(t,!0);let n=M(t,`sortBy`,15);var r=Te(),i=y(r),o=e=>{var t=we();a(e,t)},s=e=>{be(e,{class:`flex-none`,size:16})},c=e=>{xe(e,{class:`flex-none`,size:16})};g(i,e=>{n()===null||n().prop!==t.sortColumn.prop?e(o):n().direction===`ascending`?e(s,1):e(c,-1)});var u=h(i,2),d=y(u);B(d,()=>t.children),F(u),F(r),l(`click`,r,()=>{n(Se(n(),t.sortColumn))}),a(e,r),w()}s([`click`]);var Ee=p(`<div>Repository</div>`),De=p(`<tr class="border"><td class="p-1 border-x"><!></td><td class="p-1 border-x"><!></td><td class="p-1 border-x text-right"> </td><td class="p-1 border-x text-right"> </td><td class="p-1 border-x text-right"> </td><td class="p-1 border-x text-right"> </td><td class="p-1 border-x"> </td><td class="p-1 border-x"> </td></tr>`),Oe=p(`<h1 class="text-xs flex flex-wrap py-1"><span> </span> <span class="ml-auto">neogrok: <span> </span> </span></h1> <div class="overflow-x-auto"><table class="border-collapse text-sm w-full text-center h-fit"><thead class="border bg-slate-100 dark:bg-slate-800"><tr><th></th><th></th><th class="p-1 border-x" colspan="4">Index <!></th><th></th><th></th></tr><tr class="h-full"><th class="p-1"><!></th><th class="p-1">Branches</th><th class="p-1 border-l"><!></th><th class="p-1"><!></th><th class="p-1"><!></th><th class="p-1 border-r"><!></th><th class="p-1"><!></th><th class="p-1"><!></th></tr></thead><tbody></tbody></table></div>`,1);function ke(e,t){A(t,!0);let n=x(()=>Z(W.url.searchParams)),r=R(null),i=x(()=>U(r)===null?t.results.repositories:Array.from(t.results.repositories).sort(Ce(U(r)))),s=x(()=>U(i).slice(0,U(n).repos)),l=x(()=>t.results.repositories.length>U(n).repos),u=x(()=>U(l)?U(s).reduce((e,t)=>(e.shardCount+=t.shardCount,e.fileCount+=t.fileCount,e.indexBytes+=t.indexBytes,e.contentBytes+=t.contentBytes,e),{shardCount:0,fileCount:0,indexBytes:0,contentBytes:0}):t.results.stats);var d=Oe(),f=v(d),p=y(f),g=b(p),_=h(p,2),C=h(y(_)),T=b(C),ee=h(C);F(_),F(f);var D=h(f,2),k=y(D),M=y(k),P=y(M),I=h(y(P),2),L=h(y(I));J(L,{to:`/about#repository-stats`,children:(e,t)=>{E();var n=m(`shard files`);a(e,n)},$$slots:{default:!0}}),F(I),E(2),F(P);var z=h(P),B=y(z);$(y(B),{sortColumn:{prop:`name`,kind:`string`},get sortBy(){return U(r)},set sortBy(e){N(r,e,!0)},children:(e,t)=>{var n=Ee();a(e,n)},$$slots:{default:!0}}),F(B);var H=h(B,2);$(y(H),{sortColumn:{prop:`shardCount`,kind:`number`},get sortBy(){return U(r)},set sortBy(e){N(r,e,!0)},children:(e,t)=>{E();var n=m(`Shard count`);a(e,n)},$$slots:{default:!0}}),F(H);var G=h(H);$(y(G),{sortColumn:{prop:`fileCount`,kind:`number`},get sortBy(){return U(r)},set sortBy(e){N(r,e,!0)},children:(e,t)=>{E();var n=m(`Contained files`);a(e,n)},$$slots:{default:!0}}),F(G);var K=h(G);$(y(K),{sortColumn:{prop:`indexBytes`,kind:`number`},get sortBy(){return U(r)},set sortBy(e){N(r,e,!0)},children:(e,t)=>{E();var n=m(`Index size in RAM`);a(e,n)},$$slots:{default:!0}}),F(K);var q=h(K);$(y(q),{sortColumn:{prop:`contentBytes`,kind:`number`},get sortBy(){return U(r)},set sortBy(e){N(r,e,!0)},children:(e,t)=>{E();var n=m(`Content size in RAM`);a(e,n)},$$slots:{default:!0}}),F(q);var Y=h(q);$(y(Y),{sortColumn:{prop:`lastIndexed`,kind:`string`},get sortBy(){return U(r)},set sortBy(e){N(r,e,!0)},children:(e,t)=>{E();var n=m(`Last indexed`);a(e,n)},$$slots:{default:!0}}),F(Y);var te=h(Y);$(y(te),{sortColumn:{prop:`lastCommit`,kind:`string`},get sortBy(){return U(r)},set sortBy(e){N(r,e,!0)},children:(e,t)=>{E();var n=m(`Last commit`);a(e,n)},$$slots:{default:!0}}),F(te),F(z),F(M);var X=h(M);S(X,21,()=>U(s),V,(e,t)=>{let n=()=>U(t).name,r=()=>U(t).url,i=()=>U(t).branches,s=()=>U(t).commitUrlTemplate,l=()=>U(t).shardCount,u=()=>U(t).fileCount,d=()=>U(t).indexBytes,f=()=>U(t).contentBytes,p=()=>U(t).lastIndexed,m=()=>U(t).lastCommit;var g=De(),_=y(g);he(y(_),{get name(){return n()},get url(){return r()}}),F(_);var v=h(_);ye(y(v),{get branches(){return i()},get commitUrlTemplate(){return s()}}),F(v);var x=h(v),S=b(x,!0),C=h(x),w=b(C,!0),T=h(C),ee=b(T,!0),E=h(T),D=b(E,!0),O=h(E),k=b(O,!0),A=h(O),j=b(A,!0);F(g),c((e,t)=>{o(S,l()),o(w,u()),o(ee,e),o(D,t),o(k,p()),o(j,m()??`n/a`)},[()=>Q(d(),{space:!1,binary:!0}),()=>Q(f(),{space:!1,binary:!0})]),a(e,g)}),F(X),F(k),F(D),c((e,n)=>{o(g,`zoekt: ${t.results.repositories.length??``} 2 ${t.results.repositories.length===1?`repository`:`repositories`} / 3 ${t.results.stats.shardCount??``} 4 ${t.results.stats.shardCount===1?`shard`:`shards`} / 5 ${t.results.stats.fileCount??``} 6 ${t.results.stats.fileCount===1?`file`:`files`} / 7 ${e??``} RAM`),j(C,1,O(U(l)?`text-yellow-700 dark:text-yellow-600`:``)),o(T,`${U(s).length??``} 8 ${U(s).length===1?`repository`:`repositories`}`),o(ee,` / 9 ${U(u).shardCount??``} 10 ${U(u).shardCount===1?`shard`:`shards`} / 11 ${U(u).fileCount??``} 12 ${U(u).fileCount===1?`file`:`files`} / 13 ${n??``} RAM`)},[()=>Q(t.results.stats.indexBytes+t.results.stats.contentBytes,{space:!1,binary:!0}),()=>Q(U(u).indexBytes+U(u).contentBytes,{space:!1,binary:!0})]),a(e,d),w()}var Ae=p(`<!> <!>`,1);function je(e,t){A(t,!0);let n=x(()=>Z(W.url.searchParams)),r=R(t.data.listOutcome.kind===`success`?t.data.listOutcome.results:null);I(()=>{t.data.listOutcome.kind===`success`&&N(r,t.data.listOutcome.results)});
13var i=Ae();D(`y4xlf5`,e=>{_(()=>{u.title=`${U(n).query?`${U(n).query} - `:``}neogrok/repositories`})});var o=v(i);{let e=x(()=>t.data.listOutcome.kind===`error`?t.data.listOutcome.error:null);ce(o,{get queryError(){return U(e)}})}var s=h(o,2);{let e=x(()=>t.data.listOutcome.kind===`success`?t.data.listOutcome.results:U(r)??{repositories:[],stats:{shardCount:0,fileCount:0,contentBytes:0,indexBytes:0}});ke(s,{get results(){return U(e)}})}a(e,i),w()}export{je as component,ie as universal};
Line numbers count LF bytes from the start of the resource, as the search results do. Vendor segments are library code the classifier recognised; they are stored but not indexed. Bytes are shown as Latin1 characters, one per byte.