@preventive/triage 1.0.0-alpha.45 → 1.0.0-alpha.46

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 (79) hide show
  1. package/client/linked-findings.js +3 -0
  2. package/common/bundle-metadata.d.ts +1 -0
  3. package/common/bundle-metadata.js +1 -1
  4. package/common/bundle-sources.js +5 -1
  5. package/common/line-diff.js +5 -4
  6. package/out/{chunk-NPW52BM2.js → chunk-4HI2MSAV.js} +13 -13
  7. package/out/{chunk-AFLZH7WG.js → chunk-4UFAMJAX.js} +1 -1
  8. package/out/{chunk-HMAJDVXN.js → chunk-7XRR4OFU.js} +1 -1
  9. package/out/{chunk-Q6MVYGYV.js → chunk-BOIXMUU5.js} +1 -1
  10. package/out/{chunk-XVBEOGOS.js → chunk-CC4OM6TZ.js} +2 -2
  11. package/out/chunk-G24A42V6.js +2 -0
  12. package/out/{chunk-WI7Z5A2T.js → chunk-JKGQ3O7O.js} +1 -1
  13. package/out/chunk-LE5ZWLG4.js +235 -0
  14. package/out/chunk-MSION3G4.js +36 -0
  15. package/out/{chunk-6HNXNIQY.js → chunk-S6GIXWQW.js} +1 -1
  16. package/out/chunk-V3KWNNMY.js +1 -0
  17. package/out/client-managed-import.js +1 -1
  18. package/out/client-managed.js +25 -25
  19. package/out/compare.js +13 -13
  20. package/out/dialogs.js +40 -40
  21. package/out/graph.js +1 -1
  22. package/out/index.html +6 -6
  23. package/out/scan.js +2 -2
  24. package/out/terminal.js +1 -1
  25. package/out/view.css +1 -1
  26. package/out/view.js +15 -15
  27. package/package.json +3 -1
  28. package/risk/actions/findings.js +14 -9
  29. package/risk/actions/scripts/shell.js +5 -1
  30. package/risk/index.d.ts +5 -2
  31. package/server-e2e/app.ts +5 -4
  32. package/server-e2e/http.ts +5 -2
  33. package/server-managed/bundle-cache.ts +7 -1
  34. package/server-managed/combined.ts +3 -2
  35. package/server-managed/commit-lockfiles.ts +21 -11
  36. package/server-managed/config.ts +6 -0
  37. package/server-managed/db-methods.ts +37 -9
  38. package/server-managed/db-neon.ts +61 -21
  39. package/server-managed/db-schema.ts +4 -0
  40. package/server-managed/db.ts +2 -1
  41. package/server-managed/dependency-reviews.ts +13 -3
  42. package/server-managed/github-app.ts +12 -6
  43. package/server-managed/github-issue-links.ts +11 -5
  44. package/server-managed/github-pulls.ts +2 -2
  45. package/server-managed/github-requests.ts +39 -0
  46. package/server-managed/http-response.ts +10 -2
  47. package/server-managed/http.ts +195 -111
  48. package/server-managed/index.ts +8 -7
  49. package/server-managed/kept-briefly.ts +37 -0
  50. package/server-managed/npm-delta.ts +11 -6
  51. package/server-managed/npm-kept.ts +32 -2
  52. package/server-managed/npm-loads.ts +100 -30
  53. package/server-managed/npm-packages.ts +89 -3
  54. package/server-managed/npm-risk.ts +4 -1
  55. package/server-managed/pretty-print.ts +67 -23
  56. package/server-managed/pull-dependencies.ts +29 -9
  57. package/server-managed/pull-dependency-reviews.ts +8 -8
  58. package/server-managed/queue.ts +16 -0
  59. package/server-managed/rename-diff.ts +22 -13
  60. package/server-managed/report-sources.ts +1 -1
  61. package/server-managed/report-store.ts +42 -9
  62. package/server-managed/repository-actions.ts +15 -6
  63. package/server-managed/repository-browser.ts +119 -31
  64. package/server-managed/repository-dependency-reviews.ts +41 -19
  65. package/server-managed/repository-history.ts +24 -8
  66. package/server-managed/repository-pulse.ts +8 -1
  67. package/server-managed/repository-risk-audit.ts +13 -0
  68. package/server-managed/repository-risk-read.ts +11 -6
  69. package/server-managed/repository-risk.ts +27 -20
  70. package/server-managed/session.ts +18 -4
  71. package/server-managed/sql.ts +5 -2
  72. package/server-managed/storage.ts +4 -2
  73. package/server-managed/team-reports.ts +24 -12
  74. package/server-managed/upstream-cache.ts +12 -0
  75. package/server.ts +14 -5
  76. package/out/chunk-5DHL5NG3.js +0 -2
  77. package/out/chunk-NV7ES4EW.js +0 -1
  78. package/out/chunk-PTGDYLNS.js +0 -36
  79. package/out/chunk-QRD6GIG5.js +0 -229
@@ -0,0 +1,36 @@
1
+ import{b as e,h as t}from"./chunk-I2MDGSQX.js";import{a as n}from"./chunk-3PS4KWD2.js";import{a as r,b as i,e as a}from"./chunk-IYPY47MC.js";import{A as o,B as s,E as c,b as l,c as u,d,j as f,m as p,p as m,s as h,t as g,w as _,z as v}from"./chunk-SXV2T5C4.js";import{A as ee,b as y,c as b,i as x,w as S,y as C}from"./chunk-WFYLMF6Z.js";import{a as w,b as T,c as E}from"./chunk-C4Z6ZBXV.js";import{c as D,f as O,g as k,i as te}from"./chunk-2XUEZHIP.js";function A(e){return e.id??String(e._id)}function ne(e){let t=m(e);return t!==``&&t!==`revalidation`}var re=[{value:`confirmed`,label:`Confirmed`,kinds:[`confirmed`,`partial`,`revalidation`]},{value:`unreachable`,label:`Unreachable`,kinds:[`unreachable`]},{value:`refuted`,label:`Refuted`,kinds:[`refuted`]}];function ie(e){return re.find(t=>t.value===e)?.kinds??null}var ae=[``,`exclude`,`only`];function oe(e,t){let n=ie(e);return n?.includes(`partial`)?t===`only`?[`partial`]:t===`exclude`?[`confirmed`]:n:n}function j(e){if(e.confidence!==void 0)return e.confidence;if(e.critical===!0||e._source)return 10}var se=e=>e.confidence!==void 0||e.critical===!0;function ce(e){return e.every(e=>e.every(e=>j(e)!==void 0))&&e.some(e=>e.some(se))}function le(e,t,n){return e.some(e=>{let r=[`refuted`,`unreachable`].includes(n(e))?0:j(e);return r===void 0?t===0:r>=t})}function ue(e,t){let n=e.map(t).filter(e=>e.length>0);if(!n.some(e=>e.some(e=>j(e)!==void 0)))return 0;let r=e=>n.reduce((t,n)=>t+ +!!n.some(t=>(j(t)??-1)>=e),0),i;for(i=r(6)<=25?6:r(7)<=25?7:8;i>0&&r(i-1)===r(i);)i--;return i}function de(e,t){return ce(e)?t:0}function fe(e,t,n){let r=new Set(e.ruledOutIds??[]);for(let t of e)for(let e of t)[`refuted`,`unreachable`].includes(n(e))&&r.add(A(e));for(let i of e){let e=t(i);if(e.length!==0&&e.some(e=>oe(`confirmed`,``).includes(n(e)||(e._source&&!e._sourcePass?`revalidation`:``)))){for(let e of i)if(r.add(A(e)),e.isApp&&Array.isArray(e.revalidateInputs))for(let t of e.revalidateInputs)t&&r.add(t)}}return r}function pe(e,t,n,r){let i=de(e,t),a=e.filter(e=>le(e,i,r));if(a.length===0)return!1;let o=new Set(oe(`confirmed`,``));return e.some(e=>e.some(e=>o.has(r(e))))?a.every(e=>e.every(e=>n.has(A(e)))):!1}function me(e,{tabs:t,kindOf:n,severityMode:r}){let i=e.map(t).filter(e=>e.length>0),a=fe(e,t,n);if(!pe(i,ue(e,t),a,n))return!1;let o=de(i,6);return i.every(e=>!le(e,o,n)||!e.some(e=>p(e,r)!==`low`)||e.every(e=>a.has(A(e))))}var M=!0;function he(e,t=!1){M=e!==!1&&!t}function ge(){return M}function N(e){return M?m(e):``}function _e(e){return m(e)!==``}function ve(e){return e.some(e=>(e.groups??[]).some(e=>e.some(ne)))}function ye(e){let t=N(e);return t&&t!==`revalidation`?t:null}function be(e){return N(e)===`revalidation`}var xe=new Set([`refuted`,`unreachable`]);function Se(e){return xe.has(N(e))}function Ce(e){return xe.has(N(e))}function we(e){let t=new Set(e);return re.filter(e=>e.kinds.some(e=>t.has(e)))}function P(e){return RegExp(`(^|/)${e}/`,`u`)}function Te(e){return RegExp(`^(?:.*/)?${e}/(?:@[^/]+/[^/]+|[^/]+)/(.*)$`,`u`)}var Ee=P(`node_modules`),De=P(`vendor`),F=`node_modules`,Oe=P(F),ke=Te(F);function Ae(e){e!==F&&(F=e,Oe=P(e),ke=Te(e))}var je=null;function Me(t){je?.length===t.length&&je.every((e,n)=>e===t[n])||(je=[...t],Ae(e(t)))}function Ne(){return F}function I(e){return Oe.test(e)}var L=new WeakSet;function Pe(e){let t=!1;for(let n of e??[])for(let e of n.groups??[])for(let n of e){if(n.isApp!==!1)continue;let e=L.has(n);`isUpstream`in n&&!e||(I(n.file)?(n.isUpstream!==!0&&(t=!0),n.isUpstream=!0,L.add(n)):e&&(t=!0,delete n.isUpstream,L.delete(n)))}return t}function Fe(e){let t=typeof e==`string`?e:``;return Ee.test(t)||De.test(t)||Oe.test(t)}var Ie=/^(.*(?:^|\/)node_modules\/(?:@[^/]+\/[^/]+|[^/]+))(?:\/|$)/u;function Le(e){return Ie.exec(typeof e==`string`?e:``)?.[1]??null}function Re(e){return typeof e!=`number`||!Number.isFinite(e)?null:n(e)}function ze(e){if(e.length<=1)return{prefix:``,stripped:[...e]};let t=e.map(e=>e.split(`/`)),n=Math.min(...t.map(e=>e.length)),r=0;for(let e=0;e<n-1&&t.every(n=>n[e]===t[0][e]);e++)r=e+1;return r>0&&t[0][r-1].startsWith(`@`)&&r--,r>0&&t[0][r-1]===`node_modules`&&r--,r===0?{prefix:``,stripped:[...e]}:{prefix:`${t[0].slice(0,r).join(`/`)}/`,stripped:t.map(e=>e.slice(r).join(`/`))}}function Be(e){return e.match(ke)?.[1]??e}var Ve={on:new WeakMap,off:new WeakMap};function He(e){let t=M?Ve.on:Ve.off,n=t.get(e);if(n===void 0){let r=M?[ye(e),e.revalidateVerdict,e.revalidateRecommendation]:[];n=[e.file,e.title,e.description,e.impact,e.reproduction,wt(e),e.recommendation,e.confidenceReason,...r,e.discoveredIn,e.repo?.github].filter(Boolean).join(`
2
+ `).toLowerCase(),t.set(e,n)}return n}function Ue(e){return[typeof e?.category==`string`?e.category.trim():``,h(e,M)].filter(Boolean).join(` · `)}function We(e){if(e.length===0)return``;let t=e[0];for(let n=1;n<e.length;n++){for(;t&&!e[n].startsWith(t);)t=t.slice(0,-1);if(!t)return``}return t}function Ge(e){if(!e)return``;let t=e.match(/github\.com\/([^/?#]+\/[^/?#]+?)(?:\.git)?(?:[/?#]|$)/iu);return t?t[1]:e}function Ke(e){if(!e)return null;let t=e.trim().replace(/\/$/u,``);return t?/^https?:\/\//iu.test(t)?t:/^github\.com\//iu.test(t)?`https://${t}`:`https://github.com/${t}`:null}var qe=/^(?:@[\w.-]+\/)?[\w.-]+@[^/\s@]+$/u;function Je(e){return qe.test(e||``)}function Ye(e){if(e==null||typeof e==`string`)return{id:e??``,prefix:``};let t=c(e);return{id:typeof e.github==`string`?e.github:``,prefix:t?`${t}/`:``}}function Xe(e,t,n){if(Je(e))return null;let r=Ye(t);if(r.id)return`https://github.com/${r.id}/blob/HEAD/${r.prefix}${Be(e)}`;if(I(e))return null;let i=Ye(n),a=Ke(i.id);return a?`${a}/blob/HEAD/${i.prefix}${e}`:null}function Ze(e,t){let n=e?.file??``,r=R(e,t);return r?D`<a href="${Qe(r)}" target="_blank" rel="noopener">${n}</a>`:n}function Qe(e){return e.replace(/#L\d+(?:-L?\d+)?$/u,``)}function R(e,t){if(!e)return null;if(s(e.location))return e.location;let n=Xe(e.file,e.repo,t);if(!n)return null;let r=parseInt(e.line,10);return Number.isFinite(r)?`${n}#L${r}`:n}var $e=/^https?:\/\/(?:www\.)?github\.com\/([^/\s]+\/[^/\s]+)\/(?:blob|tree|blame)\/[^/\s]+\/(\S+)$/u,et=/#L(\d+)(?:-L?(\d+))?$/u;function tt(e){let t=typeof e==`string`?$e.exec(e):null;if(!t)return``;let n=t[2],r=et.exec(n);if(!r)return`${t[1]}/${n}`;n=n.slice(0,r.index);let i=r[2]?`${r[1]}-${r[2]}`:r[1];return`${t[1]}/${n}:${i}`}var nt=/^(?:\s+\S|[-*+] |\d+[.)] |>|#{1,6}(?:[ \t]|$)|\||`{3}|~{3})/u;function rt(e){return e.split(/(\n{2,})/u).map(e=>{if(/^\n+$/u.test(e))return e;let t=e.split(`
3
+ `);return t.some(e=>nt.test(e)||z.test(e))?e:t.map(e=>e.trim()).filter(Boolean).join(` `)}).join(``)}function it(e,t,n){let r=t?/^\n*/u.exec(e)[0]:``,i=e.slice(r.length),a=n?/\n*$/u.exec(i)[0]:``;return r+rt(i.slice(0,i.length-a.length))+a}function at(e){if(!e)return e;let t=e.replaceAll(`\r
4
+ `,`
5
+ `),n=l(t);if(n.length===0)return rt(t);let r=[],i=0;for(let[e,a]of n)e>i&&r.push(it(t.slice(i,e),i>0,!0)),r.push(t.slice(e,a)),i=a;return i<t.length&&r.push(it(t.slice(i),!0,!1)),r.join(``)}var ot=/^( *)(`{3,}|~{3,})(.*)$/u,st=/^[a-z0-9+#._-]{1,20}$/u;function ct(e,t){let n=0;for(;n<t&&e[n]===` `;)n++;return e.slice(n)}function lt(e){let t=e.split(`
6
+ `),n=ot.exec(t[0]),r=(n?.[2]??"```").slice(0,3),i=(n?.[3]??``).trim().split(/\s+/u)[0].toLowerCase(),a=!!(t.length>1?ot.exec(t.at(-1)):null)?.[2].startsWith(r),o=n?.[1].length??0,s=t.slice(1,a?-1:void 0);return{lang:st.test(i)?i:``,code:(o>0?s.map(e=>ct(e,o)):s).join(`
7
+ `)}}function ut(e){let t=l(e||``);if(t.length===0)return[e];let n=[],r=0,i=(e,t)=>{let r=(t?e.replace(/^\n+/u,``):e).replace(/\n+$/u,``);r&&n.push(r)};for(let[a,o]of t)a>r&&i(e.slice(r,a),r>0),n.push(lt(e.slice(a,o))),r=o;return r<e.length&&i(e.slice(r),!0),n}var dt=/^( *)(?:[-*+]|(\d{1,9})[.)]) +(?=\S)/u,z=/^ {0,3}([-*_])(?:[ \t]*\1){2,}[ \t]*$/u;function ft(e){return/^ */u.exec(e)[0].length}function pt(e){let t=e.length;for(;t>0&&!e[t-1].trim();)t--;return e.slice(0,t).join(`
8
+ `)}function mt(e){let t=typeof e==`string`?e:``;if(!t)return[e];let n=l(t),r=t.split(`
9
+ `),i=[],a=0;for(let e of r)i.push(a),a+=e.length+1;let o=e=>!u(n,i[e])&&!z.test(r[e])&&dt.test(r[e]),s=[],c=0,d=0,f=e=>{let t=r.slice(c,e).join(`
10
+ `).replace(/^\n+/u,``).replace(/\n+$/u,``);t.trim()&&s.push(t)};for(;d<r.length;){if(!o(d)){d++;continue}f(d);let e=dt.exec(r[d]),t=!!e[2],a=[],l=null,p=!1;for(;d<r.length;){let e=r[d];if(!u(n,i[d])){if(!e.trim()){l.lines.push(``),p=!0,d++;continue}let n=ft(e),r=z.test(e)?null:dt.exec(e);if(r&&(!l||n<l.column)){if(!!r[2]!==t)break;l&&a.push(pt(l.lines)),l={column:r[0].length,lines:[e.slice(r[0].length)]},p=!1,d++;continue}if(n<l.column&&(p||ht.test(e)||z.test(e)))break}l.lines.push(ct(e,l.column)),p=!1,d++}l&&a.push(pt(l.lines)),s.push({ordered:t,start:t?Number(e[2]):null,items:a}),c=d}return s.length===0?[e]:(f(r.length),s)}var ht=/^ {0,3}(#{1,6})[ \t]+(\S.*?)(?:[ \t]+#+)?[ \t]*$/u,gt=/^ {0,3}-+[ \t]*$/u;function _t(e){let t=e.split(`
11
+ `),n=[],r=0,i=e=>{let i=t.slice(r,e).join(`
12
+ `).replaceAll(/^(?:[ \t]*\n)+|(?:\n[ \t]*)+$/gu,``);i.trim()&&n.push(i)};return t.forEach((e,a)=>{let o=ht.exec(e),s=z.test(e)&&(a===r||!t[a-1].trim()||!gt.test(e));!o&&!s||(i(a),n.push(o?{level:o[1].length,text:o[2]}:{rule:!0}),r=a+1)}),n.length===0?[e]:(i(t.length),n)}var vt=/^(\d+)(?:\s*-\s*(\d+))?$/u;function B(e){if(typeof e==`number`)return Number.isFinite(e)&&e>=1?{start:Math.floor(e),end:Math.floor(e)}:null;let t=vt.exec(String(e??``).trim());if(!t)return null;let n=parseInt(t[1],10),r=t[2]===void 0?n:parseInt(t[2],10);return!Number.isFinite(n)||n<1||!Number.isFinite(r)||r<1?null:{start:Math.min(n,r),end:Math.max(n,r)}}function yt(e){return e?e.start===e.end?String(e.start):`${e.start}-${e.end}`:``}function bt(e){if(e&&typeof e==`object`){let t=B(e.start);if(!t)return null;let n=B(e.end)??t;return{start:t.start,end:Math.max(t.start,n.end)}}return B(e)}function xt(e,t,n=4){let r=typeof e==`string`&&e!==``?e.split(`
13
+ `):[];if(r.length===0)return{text:``,startLine:1,lines:[]};let i=bt(t),a=i&&{start:Math.min(i.start,r.length),end:Math.min(i.end,r.length)},o=a?Math.max(1,a.start-n):1,s=a?Math.min(r.length,a.end+n):Math.min(r.length,n*2+1),c=r.slice(o-1,s);return{text:c.join(`
14
+ `),startLine:o,lines:c}}function St(e,t,n,r){if(s(e?.url))return e.url;let i=e?.file;if(typeof i!=`string`||i===``)return null;let a=t?.file??``,o=t?.repo?.github,c=()=>o?R({file:i,line:e?.line,repo:t.repo},null):null;if(r===0&&i===a)return c();let l=Le(i);return l!==null&&l===Le(a)?c():Fe(i)?null:o&&!Fe(a)?c():R({file:i,line:e?.line},n)}function Ct(e,{spaced:t=!1}={}){let n=Array.isArray(e?.evidence)?e.evidence:[];return n.length===0?``:n.map((e,t)=>{let n=v(e),r=[`${t+1}. ${e.url?`[${n}](${e.url})`:n}`],i=o(e);if(i)for(let e of i.split(`
15
+ `))r.push(` ${e}`);return r.join(`
16
+ `)}).join(t?`
17
+
18
+ `:`
19
+ `)}function wt(e){let t=Ct(e);return t?`**Evidence:**
20
+ ${t}`:``}function Tt(e){let t=/^\[([^\]]+)\]\(([^)\s]+)\)$/u.exec(e);return!t||!s(t[2])?null:{label:d(t[1].trim())||t[2],url:t[2]}}function Et(e,t){let n=parseInt(e?.line,10);if(!Number.isFinite(n))return k;let r=R(e,t),i=`line ${n}`;return r?D`<a href="${r}" target="_blank" rel="noopener">${i}</a>`:i}function Dt(e,t){return!e||!t?null:`${/^https?:/iu.test(e)?e.replace(/\/$/u,``):`https://github.com/${e}`}/commit/${t}`}var Ot=[[`Impact`,`impact`],[`Reproduction`,`reproduction`],[`Recommendation`,`recommendation`],[`Confidence reason`,`confidenceReason`],[`Revalidation verdict`,`revalidateVerdict`],[`Revalidation recommendation`,`revalidateRecommendation`]];function kt(e,t){let n=[];t&&n.push(`Repo: ${t}`);let r=v(e);r&&n.push(`Location: ${r}`),e?.confidence!=null&&n.push(`Confidence: ${e.confidence}/10`);let i=N(e);i&&n.push(`Revalidation: ${i}`);let a=[];n.length>0&&a.push(n.join(`
21
+ `));let{title:o,body:s}=_(e);o&&a.push(`# ${o}`),s&&a.push(s.trim());let c=Ct(e,{spaced:!0});c&&a.push(`# Evidence
22
+
23
+ ${c}`);for(let[t,n]of Ot){if(!M&&n.startsWith(`revalidate`))continue;let r=g(e?.[n],e)?.trim();r&&a.push(`# ${t}
24
+
25
+ ${r}`)}return a.join(`
26
+
27
+ `)}function At(e,{title:t,body:n,labels:r=[]}={}){let i=Ke(e);if(!i)return null;let a;try{a=new URL(i).host.toLowerCase()}catch{return null}if(a!==`github.com`)return null;let o=new URLSearchParams;t&&o.set(`title`,t),n&&o.set(`body`,n),r.length>0&&o.set(`labels`,r.join(`,`));let s=o.toString();return s?`${i}/issues/new?${s}`:`${i}/issues/new`}var jt=/^[a-zA-Z\d](?:-?[a-zA-Z\d])*$/u,Mt=/^[a-zA-Z\d._-]+$/u,Nt=/^[1-9]\d{0,9}$/u,Pt=/^[a-fA-F\d]{7,40}$/u,Ft=/^#[\w-]+$/u,It=/^GHSA(?:-[0-9a-z]{4}){3}$/u;function Lt(e){return e.length<=39&&jt.test(e)}function Rt(e){return e.length<=100&&e!==`.`&&e!==`..`&&Mt.test(e)}function zt(e){let t;try{t=new URL(e)}catch{return null}if(t.href!==e||t.protocol!==`https:`||t.hostname.toLowerCase()!==`github.com`||t.port||t.username||t.password)return null;let n=t.pathname.split(`/`);if(n.at(-1)===``&&n.pop(),n.length===3&&n[1]===`advisories`){let e=n[2];return It.test(e)?{url:`https://github.com/advisories/${e}`,label:e}:null}if(n.length===6&&n[3]===`security`&&n[4]===`advisories`){let[,e,t,,,r]=n;return!Lt(e)||!Rt(t)||!It.test(r)?null:{url:`https://github.com/${e}/${t}/security/advisories/${r}`,label:r}}if(n.length!==5)return null;let[,r,i,a,o]=n;if(!Lt(r)||!Rt(i))return null;let s;if(a===`issues`||a===`pull`){if(!Nt.test(o))return null;s=`${r}/${i}#${o}`}else if(a===`commit`){if(!Pt.test(o))return null;s=`${r}/${i}@${o.slice(0,7)}`}else return null;return{url:`https://github.com/${r}/${i}/${a}/${o}${Ft.test(t.hash)?t.hash:``}`,label:s}}var Bt=/^[\da-f]{8}(?:-[\da-f]{4}){3}-[\da-f]{12}$/u;function Vt(e){if(typeof e!=`string`)return null;let t=Ht(e);return t!==e||Bt.test(e)?t.slice(0,8):null}function Ht(e){let t=String(e);return t.startsWith(`https://chatgpt.com/codex/cloud/security/findings/`)?t.slice(50):t}function Ut(e,n){let r=t(e,{managed:n});if(!r)return null;let i=Vt(r.id);return{url:n?r.path:`#${r.fragment}`,label:i?`finding ${i}`:`finding`,self:!0}}var Wt=/https?:\/\/[^\s<>"'`(){}[\]|\\^]+/giu,Gt=new Set([`)`,`.`,`,`,`!`,`?`,`;`,`:`,`'`,`"`,`*`,`]`,`}`,`>`]);function Kt(e){let t=e.length;for(;t>0&&Gt.has(e[t-1]);)t--;return t===e.length?e:e.slice(0,t)}function qt(e,{managed:t=!1}={}){if(typeof e!=`string`||e.length===0)return[];let n=[],r=0;Wt.lastIndex=0;let i;for(;(i=Wt.exec(e))!==null;){let a=Kt(i[0]),o=a?zt(a)??Ut(a,t):null;o&&(i.index>r&&n.push(e.slice(r,i.index)),n.push(o),r=i.index+a.length,Wt.lastIndex=r)}return r<e.length&&n.push(e.slice(r)),n}function Jt(e){if(!e)return null;let t=Ne(),n=RegExp(`^(?:.*/)?${t}/(@[^/]+/[^/]+|[^/]+)`,`u`),r=e.match(n);return r?r[1]:`__own__`}function Yt(e){return new Set(e.filter(e=>!I(e)))}var Xt=[`#4e9af1`,`#f28e2b`,`#59a14f`,`#e15759`,`#76b7b2`,`#edc948`,`#b07aa1`,`#ff9da7`,`#9c755f`,`#5cd1e5`,`#f1ce63`,`#d37295`,`#a0cbe8`,`#86bcb6`,`#8cd17d`,`#b6992d`,`#499894`,`#e15759`,`#e879c7`,`#d4a6c8`],Zt=[`#2f8aef`,`#d2691e`,`#2ea043`,`#e63946`,`#2e9a92`,`#b88817`,`#9560e8`,`#d24a9c`,`#8a5d40`,`#0891b2`,`#a07a14`,`#c14e8e`,`#1f7ad0`,`#549b94`,`#3fb95f`,`#a07a14`,`#2a8278`,`#cb2c40`,`#c026d3`,`#965f93`];function Qt(){if(typeof document>`u`)return!1;let e=document.body?.classList;return!!e&&(e.contains(`theme-light`)||e.contains(`theme-pink`)||e.contains(`theme-w95`)||e.contains(`theme-paper`))}var $t=new Map;function en(e){let t=Qt()?Zt:Xt;return t[e%t.length]}var tn=()=>Qt()?`#8c959f`:`#6e7681`;function nn(e){let t=Qt(),n=t?Zt:Xt,r=e??`__own__`,i=`${t?`l`:`d`}:${r}`;if($t.has(i))return $t.get(i);let a=0;for(let e of r)a=a*37+e.codePointAt(0)|0;let o=n[((a%n.length+n.length)%n.length*7+3)%n.length];return $t.set(i,o),o}var rn=e=>e.replaceAll(`&`,`&amp;`).replaceAll(`<`,`&lt;`).replaceAll(`>`,`&gt;`),an=e=>y(e)?e:rn(b(String(e))),V=globalThis.trustedTypes?.createPolicy(`deepview`,{createHTML:an,createScriptURL:e=>{let t=new URL(e,globalThis.location.href);if(t.origin!==globalThis.location.origin)throw TypeError(`Not a same-origin script: ${t.href}`);return t.href}}),H=e=>V?V.createHTML(e):an(e),on=e=>V?V.createScriptURL(String(e)):e,U={showAll:!1,packagesView:!1,dependencyPackagesView:!1,flowPackagesView:!1,bundleIssues:!1,bundleLayout:`graph`,lockfileLayout:`dependencies`,bundleReason:null,bundleReasonFor:null,selected:null,focusedPkg:null,topPkgsTab:`issues`,edgeOpacity:.22,nodeSize:1,showLabels:!1,selectedSeverities:new Set,selectedColors:new Set,pathFilter:``,hidden:new Set,solo:null,graphState:null,layoutCache:null,keptViewport:null};function sn({keepViewport:e=!1}={}){U.graphState?._cleanup?U.graphState._cleanup({keepViewport:e}):e||(U.keptViewport=null),U.graphState=null}var cn=T(class extends E{constructor(e){if(super(e),e.type!==w.ATTRIBUTE||e.name!==`class`||e.strings?.length>2)throw Error("`classMap()` can only be used in the `class` attribute and must be the only part in the attribute.")}render(e){return` `+Object.keys(e).filter(t=>e[t]).join(` `)+` `}update(e,[t]){if(this.st===void 0){this.st=new Set,e.strings!==void 0&&(this.nt=new Set(e.strings.join(` `).split(/\s/).filter(e=>e!==``)));for(let e in t)t[e]&&!this.nt?.has(e)&&this.st.add(e);return this.render(t)}let n=e.element.classList;for(let e of this.st)e in t||(n.remove(e),this.st.delete(e));for(let e in t){let r=!!t[e];r===this.st.has(e)||this.nt?.has(e)||(r?(n.add(e),this.st.add(e)):(n.remove(e),this.st.delete(e)))}return O}}),ln={commit:C},W=8;function un(e){let t;try{t=e?JSON.parse(e):null}catch{return null}let n=e=>typeof e==`string`&&e?e:null;return t&&{tags:Array.isArray(t.tags)?t.tags.filter(n):[],details:typeof t.title==`string`?{title:t.title,authorName:n(t.authorName),authorLogin:n(t.authorLogin),date:Number.isSafeInteger(t.date)?t.date:null}:null}}function dn({title:e,authorName:t,authorLogin:n,date:r}){let i=document.createElement(`div`);i.className=`tooltip-commit-details`;let a=document.createElement(`span`);a.className=`tooltip-commit-message`,a.textContent=e;let o=document.createElement(`span`);return o.className=`tooltip-commit-meta`,o.textContent=[t&&n&&t!==n?`${t} (@${n})`:t??(n&&`@${n}`),r===null?``:new Date(r).toLocaleString(void 0,{dateStyle:`medium`,timeStyle:`short`})].filter(Boolean).join(` · `),i.append(...e?[a]:[],o),i}var G;function fn(){return G||(G=document.createElement(`div`),G.id=`styled-tooltip`,G.setAttribute(`popover`,`manual`),document.body.append(G),G)}function pn(e){typeof e.showPopover==`function`&&(e.matches(`:popover-open`)&&e.hidePopover(),e.showPopover())}var K=null,mn=``,q=null,J=null,hn=0,gn=0,_n=!1;function Y(){if(!_n){_n=!0,document.addEventListener(`mousemove`,e=>{hn=e.clientX,gn=e.clientY},{passive:!0});for(let e of[`pointerdown`,`wheel`,`scroll`])document.addEventListener(e,()=>Z(),{capture:!0,passive:!0});document.addEventListener(`keydown`,e=>{e.key===`Escape`&&Z()}),window.addEventListener(`blur`,()=>Z())}}var vn=100,yn=14,bn=8,X=8;function xn(e,{placement:t=`cursor`}={}){Y(),clearTimeout(q),q=null,J=null,e.prepareTooltip?.(e),t=e.dataset.tooltipPlacement??t;let n=fn(),i=e.dataset.tooltip??``,a=Object.hasOwn(ln,e.dataset.tooltipIcon??``)?e.dataset.tooltipIcon:``,o=e.dataset.tooltipRepo??``,s=r(e.dataset.tooltipCommit),c=un(e.dataset.tooltipCommitInfo),l=[`stasis`,`sourcemap`].includes(e.dataset.tooltipBundle)?e.dataset.tooltipBundle:``,u=e.dataset.tooltipStats??``,d=e.dataset.tooltipBuilt===`true`,f=e.dataset.tooltipPackage??``,p=e.dataset.tooltipEcosystem??``,m=e.dataset.tooltipVersion??``,h=e.dataset.tooltipFiles??``,g=e.dataset.tooltipLoc??``,_=e.dataset.tooltipSize??``,v=e.tooltipContent??null,y=v??JSON.stringify([i,a,o,s,c,l,u,d,f,p,m,h,g,_]);if(!i){Z();return}if(K===e&&mn===y)return;if(n.textContent=a||v?``:i,v){let e=document.createElement(`div`);e.className=`tooltip-rich`,te(v,e),n.append(e)}if(a){let e=document.createElement(`span`);e.className=`tooltip-text`,e.innerHTML=H(ln[a]);let t=document.createElement(`span`);t.textContent=i,e.append(t),n.append(e)}if(f){let t=document.createElement(`div`);t.className=`tooltip-package`;let r=(e.querySelector(`[data-tooltip-package-icon] svg`)??e.querySelector(`svg`))?.cloneNode(!0);r&&t.append(r);let i=document.createElement(`span`);i.className=`tooltip-package-details`;let a=(e,t)=>/^\d+$/u.test(e)?`${Number(e).toLocaleString()} ${t}`:``;for(let e of[f,m,a(h,h===`1`?`file`:`files`),a(g,`LoC`),_].filter(Boolean)){let t=document.createElement(`span`);t.textContent=e,i.append(t)}t.append(i),n.append(t)}if(o||s){let e=document.createElement(`div`);if(e.className=`tooltip-repo`,o){e.innerHTML=H(S);let t=document.createElement(`span`);t.textContent=o,e.append(t)}if(s){let t=document.createElement(`span`);t.className=`tooltip-commit`,t.innerHTML=H(C);let n=document.createElement(`span`);n.textContent=s.slice(0,7),t.append(n),e.append(t)}if(n.append(e),s&&c?.tags.length){let e=document.createElement(`div`);e.className=`tooltip-tags`;for(let t of c.tags.slice(0,W)){let n=document.createElement(`span`);n.className=`tooltip-tag`,n.innerHTML=H(ee);let r=document.createElement(`span`);r.textContent=t,n.append(r),e.append(n)}if(c.tags.length>W){let t=document.createElement(`span`);t.className=`tooltip-tag-more`,t.textContent=`+${(c.tags.length-W).toLocaleString()} more`,e.append(t)}n.append(e)}}if(c?.details&&n.append(dn(c.details)),l||u||d){let e=document.createElement(`div`);if(e.className=`tooltip-bundle`,l===`stasis`){let t=document.createElement(`img`);t.src=`./stasis.svg`,t.alt=``,e.append(t)}else e.innerHTML=H(x);let t=document.createElement(`span`);t.textContent=[l===`stasis`?`Stasis`:l===`sourcemap`?`Sourcemap`:``,d?`Built on server`:``,u].filter(Boolean).join(` · `),e.append(t),n.append(e)}pn(n),n.style.left=`0px`,n.style.top=`0px`,n.style.transform=`none`,n.classList.add(`visible`);let b=hn,w=gn+yn;if(t===`right`||t===`right-start`){let n=e.getBoundingClientRect();b=n.right+bn,w=n.top+(t===`right`?n.height/2:0)}let T=window.innerWidth-n.offsetWidth-X,E=Math.max(X,Math.min(b,T));n.style.left=`${Math.round(E)}px`;let D=n.offsetHeight,O=t===`right`?w-D/2:w,k=window.innerHeight-D-X,A=Math.max(X,Math.min(O,k));n.style.top=`${Math.round(A)}px`,K=e,mn=y}function Z(e){e&&!e.contains(K)&&!e.contains(J)||(clearTimeout(q),q=null,J=null,G&&(G.classList.remove(`visible`),typeof G.hidePopover==`function`&&G.matches(`:popover-open`)&&G.hidePopover()),K=null)}function Sn(e,{gate:t,placement:n}={}){Y();let r=()=>e.isConnected!==!1&&(!Object.hasOwn(e.dataset,`tooltipTruncated`)||e.scrollWidth>e.clientWidth||e.scrollHeight>e.clientHeight)&&(!t||t(e));if(!r()){Z();return}e===K||e===J||(Z(),J=e,q=setTimeout(()=>{q=null,J=null,r()&&xn(e,{placement:n})},vn))}var Cn=new WeakSet;function wn(e,t){for(let n of e.composedPath()){if(n===t)break;if(n.nodeType===1&&Object.hasOwn(n.dataset,`tooltip`))return n}return null}function Tn(e,t){!e||Cn.has(e)||(Cn.add(e),e.ownerDocument&&Y(),e.addEventListener(`mouseover`,n=>{if(n.buttons){Z();return}let r=wn(n,e);if(!r){Z();return}r!==K&&Sn(r,t)}),e.addEventListener(`mouseout`,t=>{let n=wn(t,e),r=t.relatedTarget?.closest?.(`[data-tooltip]`)??null;n&&n===r||Z()}),e.addEventListener(`scroll`,()=>Z(e),{capture:!0,passive:!0}))}var En=!1;function Dn(){En||(En=!0,Y(),document.addEventListener(`tooltip-root-connected`,e=>{Tn(e.composedPath()[0]?.shadowRoot)}),document.body.addEventListener(`mouseover`,e=>{if(e.target.closest(`[data-tooltip-managed]`))return;if(e.buttons){Z();return}let t=e.target.closest(`[data-tooltip]`);!t||t===K||Sn(t)}),document.body.addEventListener(`mouseout`,e=>{e.target.closest(`[data-tooltip-managed]`)||e.relatedTarget?.closest?.(`[data-tooltip-managed]`)||!K&&!q||(K??J)?.contains(e.relatedTarget)||Z()}))}function On(e){return`tree-`+e.replaceAll(/[^\w-]+/gu,`_`)}var kn=()=>Object.fromEntries(f.map(e=>[e,0]));function An(e,t){let n=new Map;for(let r of e)for(let e of r){n.has(e.file)||n.set(e.file,kn());let r=n.get(e.file),i=p(e,t);r[i]!==void 0&&r[i]++}return n}var Q={trees:[],merged:null};function jn(e){let t=e.map(e=>e?.tree??null);return t.length===Q.trees.length&&t.every((e,t)=>e===Q.trees[t])||(Q={trees:t,merged:Mn(e)}),Q.merged}function Mn(e){let t=null;for(let n of e)if(n?.tree){t||={};for(let e of Object.keys(n.tree)){let r=n.tree[e];if(!t[e]){t[e]={...r,imports:[...r.imports??[]]};continue}let i=new Set(t[e].imports);for(let n of r.imports??[])i.has(n)||(i.add(n),t[e].imports.push(n));t[e].size==null&&r.size!=null&&(t[e].size=r.size)}}return t}function Nn(e,t){let n=Object.keys(e),r=new Map(n.map((e,t)=>[e,t])),i=n.map(()=>kn()),a=n.map(()=>[]);for(let[t,i]of n.entries())for(let n of e[i].imports??[]){let e=r.get(n);e!==void 0&&a[e].push(t)}let o=new Uint32Array(n.length),s=0;for(let[e,n]of t){let t=r.get(e);if(t===void 0||!n)continue;let c=f.map(e=>[e,n[e]??0]).filter(([,e])=>e!==0);if(c.length===0)continue;let l=++s,u=[],d=e=>{o[e]!==l&&(o[e]=l,u.push(e))};for(let e of a[t])d(e);for(;u.length>0;){let e=u.pop();for(let[t,n]of c)i[e][t]+=n;for(let t of a[e])d(t)}}return new Map(n.map((e,t)=>[e,i[t]]))}function Pn(e,t,n){let r=t.get(e),i=n.get(e);return $(r)>0||$(i)>0}function $(e){if(!e)return 0;let t=0;for(let n of f)t+=e[n]??0;return t}var Fn={package:`@babel/core`,path:/^lib\/config\//u},In={package:`@babel/core`,path:/^lib\/config\/files\/(?:module-types|plugins)\.js$/u},Ln=Object.freeze([{id:`react-native-codegen-discovery`,reason:`Codegen discovers package metadata and React Native configuration.`,from:{package:`react-native`,path:/^scripts\/codegen\/generate-artifacts-executor\.js$/u},to:{path:/(?:^|\/)(?:package\.json|react-native\.config\.js)$/u}},{id:`react-native-release-version`,reason:`The CLI release checker reads the installed React Native version.`,from:{package:`@react-native-community/cli-tools`,path:/^build\/releaseChecker\/index\.js$/u},to:{package:`react-native`,path:/^package\.json$/u}},{id:`react-native-platform-config`,reason:`React Native configuration loads platform CLIs supplied by the host project.`,from:{package:`react-native`,path:/^react-native\.config\.js$/u},to:{package:/^@react-native-community\/cli-platform-(?:android|ios)$/u,path:/^build\/index\.js$/u}},{id:`babel-project-config`,reason:`Babel discovers project configuration.`,from:Fn,to:{path:/(?:^|\/)babel\.config\.js$/u}},{id:`babel-typescript-preset`,reason:`Babel configuration loads the TypeScript preset.`,from:Fn,to:{package:`@babel/preset-typescript`,path:/./u}},{id:`babel-react-native-preset`,reason:`Babel config loaders load the configured React Native preset.`,from:In,to:{package:`@react-native/babel-preset`,path:/^(?:src\/)?index\.js$/u}},{id:`babel-reanimated-plugin`,reason:`Babel config loaders load the configured Reanimated plugin, including scoped copies.`,from:In,to:{package:/^(?:@[^/]+\/)?react-native-reanimated$/u,path:/^plugin\/index\.js$/u}},{id:`babel-transform-plugin`,reason:`Babel config loaders load configured transform plugins.`,from:In,to:{package:/^@babel\/plugin-transform-[^/]+$/u,path:/^lib\/index\.js$/u}},{id:`cosmiconfig-config`,reason:`Cosmiconfig loads discovered configuration, including dependency configuration.`,from:{package:`cosmiconfig`,path:/^dist\/loaders\.js$/u},to:{path:/\.config\.js$/u}},{id:`import-fresh-own-config`,reason:`import-fresh loads host-project configuration.`,from:{package:`import-fresh`,path:/./u},to:{path:/\.config\.js$/u},ownSourceOnly:!0}].map(e=>Object.freeze({...e,from:Object.freeze(e.from),to:Object.freeze(e.to)})));function Rn(e){return typeof e==`string`&&!e.includes(`\\`)&&!e.includes(`:`)&&e.split(`/`).every(e=>e!==``&&e!==`.`&&e!==`..`&&e!==`node_modules`)}function zn(e,t){let n=e.package;return n!==void 0&&t.ownSource===!0?!1:(n===void 0||(typeof n==`string`?n===t.package:n.test(t.package??``)))&&e.path.test(t.path)}function Bn(e,t){if(e?.ownSource!==!0&&Rn(e?.path)&&Rn(t?.path))return Ln.find(n=>(!n.ownSourceOnly||t.ownSource===!0)&&zn(n.from,e)&&zn(n.to,t))}function Vn(e,t){let n=e.split(/(?:^|\/)node_modules\//u).slice(1).at(-1)?.match(/^(@[^/]+\/[^/]+|[^/]+)\/(.+)$/u);return{package:n?.[1],path:n?.[2]??e.replace(/^\/+/u,``),ownSource:t??i(e)===`__own__`}}function Hn(e,t,n,r){return!Bn(Vn(e,r),Vn(t,n))}function Un(e,t=e=>e.file){let n=new Map(e.nodes.map(e=>[e.file,e])),r=new Map(e.nodes.map(e=>[t(e),new Set]));for(let[i,a]of e.importsOf){let o=n.get(i);if(o)for(let s of a){let a=n.get(s);a&&Hn(o.origFile??i,a.origFile??s,e.ownSourceFiles?.has(s),e.ownSourceFiles?.has(i))&&r.get(t(o)).add(t(a))}}return r}var Wn=class{constructor(e){this.nodes=[...e];for(let[e,t]of this.nodes.entries())t.position=e;for(let e=(this.nodes.length>>1)-1;e>=0;e--)this.down(e)}before(e,t){return Math.abs(e.balance)>Math.abs(t.balance)||Math.abs(e.balance)===Math.abs(t.balance)&&(e.balance>t.balance||e.balance===t.balance&&e.tie<t.tie)}swap(e,t){let n=this.nodes,r=n[e];n[e]=n[t],n[t]=r,n[e].position=e,n[t].position=t}down(e){let t=this.nodes;for(;2*e+1<t.length;){let n=2*e+1;if(n+1<t.length&&this.before(t[n+1],t[n])&&n++,!this.before(t[n],t[e]))break;this.swap(e,n),e=n}}update(e){if(e.position<0)return;let t=e.position;for(;t>0;){let n=t-1>>1;if(!this.before(e,this.nodes[n]))break;this.swap(t,n),t=n}this.down(t)}take(){let e=this.nodes[0],t=this.nodes.pop();return e.position=-1,this.nodes.length>0&&(this.nodes[0]=t,t.position=0,this.down(0)),e}};function Gn(e,t){for(let n=0;n<8;n++){let r=!1;for(let i=0;i<e.length-1;i++){let a=n%2?e.length-2-i:i,o=e[a],s=e[a+1];(t.get(s)?.get(o)?.cycleCount??0)<=(t.get(o)?.get(s)?.cycleCount??0)||(e[a]=s,e[a+1]=o,r=!0)}if(!r)break}return e}function Kn(e){let t=[],n=new Set;for(let t of e.values())t.outgoing.sort((e,t)=>t[1]-e[1]||e[0].tie-t[0].tie);for(let r of e.values()){if(n.has(r))continue;let e=[{node:r,next:0}];for(n.add(r);e.length>0;){let r=e.at(-1);if(r.next===r.node.outgoing.length){t.push(r.node.id),e.pop();continue}let i=r.node.outgoing[r.next++][0];n.has(i)||(n.add(i),e.push({node:i,next:0}))}}return t.toReversed()}function qn(e,t){let n=new Map(e.map((e,t)=>[e,t])),r=0;for(let e of t.values())for(let[t,i]of e.outgoing)n.get(e.id)<n.get(t.id)&&(r+=i);return r}function Jn(e,t){let n=qn(e,t),r=n,i=0;for(let a=0;a<e.length-1;a++)n-=t.get(e[a]).originalBalance,n>r&&(r=n,i=a+1);return[...e.slice(i),...e.slice(0,i)]}function Yn(e,t){if(e.length<2)return e;let n=new Map(e.map((e,t)=>[e,{id:e,tie:t,balance:0,incoming:[],outgoing:[]}]));for(let e of n.values())for(let r of t.get(e.id)?.values()??[]){let t=n.get(r.to);!t||t===e||!r.cycleCount||(e.outgoing.push([t,r.cycleCount]),t.incoming.push([e,r.cycleCount]),e.balance+=r.cycleCount,t.balance-=r.cycleCount)}for(let e of n.values())e.originalBalance=e.balance;let r=[],i=new Wn(n.values()),a=[];for(;i.nodes.length>0;){let e=i.take();e.balance>=0?r.push(e.id):a.push(e.id);for(let[t,n]of e.outgoing)t.position<0||(t.balance+=n,i.update(t));for(let[t,n]of e.incoming)t.position<0||(t.balance-=n,i.update(t))}let o=e,s=qn(e,n);for(let i of[[...r,...a.toReversed()],Kn(n),e,e.toReversed()]){let e=Gn(Jn(i,n),t),r=qn(e,n);r>s&&(o=e,s=r)}return o}function Xn(e,t){let n=new Set(e),r=new Map(e.map(e=>[e,[]]));for(let[e,i]of t)for(let t of i)n.has(e)&&n.has(t)&&r.get(t).push(e);let i=[],a=new Set;for(let r of e){if(a.has(r))continue;a.add(r);let e=[[r,(t.get(r)??[])[Symbol.iterator]()]];for(;e.length>0;){let[r,o]=e.at(-1),s=o.next();if(s.done){i.push(r),e.pop();continue}n.has(s.value)&&!a.has(s.value)&&(a.add(s.value),e.push([s.value,(t.get(s.value)??[])[Symbol.iterator]()]))}}let o=new Map,s=[];for(let e of i.toReversed()){if(o.has(e))continue;let t=[],n=s.length,i=[e];for(o.set(e,n);i.length>0;){let e=i.pop();t.push(e);for(let t of r.get(e))o.has(t)||(o.set(t,n),i.push(t))}s.push(t.toSorted())}return{groups:s,componentOf:o}}function Zn(e,{expanded:t=new Set,order:n=`structure`,query:r=``,neighborhood:i=null,cyclesOnly:o=!1}={}){let s=new Map,c=new Map,l=new Map;for(let n of e.nodes){let e=t.has(n.pkg),r=`${e?`f`:`p`}:${e?n.file:n.pkg}`;s.has(r)||s.set(r,{id:r,pkg:n.pkg,file:e?n.file:null,label:e?n.file:a(n.pkg),files:[],size:0,issues:0,incoming:0,outgoing:0,importers:0,dependencies:0});let i=s.get(r);i.files.push(n.file),i.size+=n.size??0,i.issues+=n.totalIssues??0,c.set(n.file,r),l.set(n.file,n.origFile??n.file)}let u=new Map,d=new Set,f=new Set,p=new Map([...s.keys()].map(e=>[e,new Set])),m=0;for(let[t,n]of e.importsOf){let r=c.get(t);if(r)for(let i of new Set(n)){let n=c.get(i);if(!n)continue;u.has(r)||u.set(r,new Map),u.get(r).has(n)||u.get(r).set(n,{from:r,to:n,count:0,cycleCount:0,examples:[]});let a=u.get(r).get(n);a.count++;let h=Hn(l.get(t),l.get(i),e.ownSourceFiles?.has(i),e.ownSourceFiles?.has(t));a.examples.length<80&&(!o||h)&&a.examples.push([t,i]),m++,s.get(r).outgoing++,s.get(n).incoming++,r!==n&&(f.add(r),d.add(n)),h&&(a.cycleCount++,(r!==n||s.get(r).file)&&p.get(r).add(n))}}let h=[...s.keys()].toSorted(),{groups:g,componentOf:_}=Xn(h,p),v=new Set(g.flatMap(e=>e.length>1||p.get(e[0]).has(e[0])?e:[]));for(let e of s.values())e.cyclic=v.has(e.id),e.component=_.get(e.id);let ee=e.ownSourcePackages??new Set(e.layerRoots?.roots??[]),y=e=>e.pkg===`__own__`?0:ee.has(e.pkg)?1:2,b=e=>d.has(e.id)&&f.has(e.id)?0:1,x=new Map(g.map((e,t)=>[t,e.reduce((e,t)=>Math.min(e,y(s.get(t))),2)])),S=(e,t)=>e.pkg.localeCompare(t.pkg)||e.label.localeCompare(t.label),C=new Map;if(n===`structure`){for(let e of g)if(!(e.length<2))for(let t of Map.groupBy(e,e=>y(s.get(e))).values())Yn(t.toSorted((e,t)=>S(s.get(e),s.get(t))),u).forEach((e,t)=>C.set(e,t))}if(o){m=0,d.clear(),f.clear();for(let e of s.values())e.incoming=0,e.outgoing=0}for(let[e,t]of u){for(let n of t.values())if(n.cyclic=n.cycleCount>0&&v.has(e)&&_.get(e)===_.get(n.to)&&(e!==n.to||s.get(e).file!==null),o){if(!n.cyclic){t.delete(n.to);continue}n.count=n.cycleCount,m+=n.count,s.get(e).outgoing+=n.count,s.get(n.to).incoming+=n.count,e!==n.to&&(f.add(e),d.add(n.to))}t.size===0&&u.delete(e)}for(let[e,t]of u)for(let n of t.keys())e!==n&&(s.get(e).dependencies++,s.get(n).importers++);let w=r.trim().toLowerCase(),T=new Set(h.filter(e=>!w||s.get(e).files.some(e=>e.toLowerCase().includes(w))||s.get(e).label.toLowerCase().includes(w))),E=new Set(i?[i]:T);if(w||i)for(let[e,t]of u)for(let n of t.keys())(i?e===i:T.has(e))&&E.add(n),(i?n===i:T.has(n))&&E.add(e);let D=(e,t)=>{if(n===`structure`){let n=x.get(e.component)-x.get(t.component);if(n)return n;let r=b(e)-b(t);if(r)return r;let i=e.component-t.component;if(i)return i}let r=y(e)-y(t);if(r)return r;if(n===`importers`)return t.importers-e.importers||S(e,t);if(n===`imports`)return t.dependencies-e.dependencies||S(e,t);let i=b(e)-b(t);if(i)return i;if(n===`structure`&&e.component===t.component){let n=(C.get(e.id)??0)-(C.get(t.id)??0);if(n)return n}return S(e,t)},O=[...s.values()].filter(e=>E.has(e.id)&&(!o||e.cyclic)).toSorted(D),k=new Map(O.map((e,t)=>[e.id,t])),te=[];for(let[e,t]of u)if(k.has(e))for(let n of t.values())k.has(n.to)&&te.push({...n,row:k.get(e),col:k.get(n.to)});return{rows:O,byId:s,cells:u,visibleCells:te,index:k,matches:T,importCount:m,totalRows:s.size,cycleCount:g.filter(e=>v.has(e[0])).length}}export{A as a,ne as b,re as c,ie as d,ae as e,oe as f,j as g,ce as h,ue as i,fe as j,pe as k,me as l,he as m,ge as n,N as o,_e as p,ve as q,ye as r,be as s,Se as t,Ce as u,we as v,Me as w,Ne as x,I as y,Pe as z,Re as A,ze as B,He as C,Ue as D,We as E,Ge as F,Ze as G,R as H,tt as I,at as J,ut as K,mt as L,_t as M,B as N,yt as O,xt as P,St as Q,wt as R,Tt as S,Et as T,Dt as U,kt as V,At as W,Vt as X,Ht as Y,qt as Z,Jt as _,Yt as $,en as aa,tn as ba,nn as ca,H as da,on as ea,U as fa,sn as ga,cn as ha,xn as ia,Z as ja,Sn as ka,Tn as la,Dn as ma,On as na,An as oa,jn as pa,Nn as qa,Pn as ra,$ as sa,Yn as ta,Hn as ua,Un as va,Xn as wa,Zn as xa};
28
+ /*! Bundled license information:
29
+
30
+ lit-html/directives/class-map.js:
31
+ (**
32
+ * @license
33
+ * Copyright 2018 Google LLC
34
+ * SPDX-License-Identifier: BSD-3-Clause
35
+ *)
36
+ */
@@ -1,4 +1,4 @@
1
- import{a as e,e as t,m as n}from"./chunk-WI7Z5A2T.js";import{a as r,b as i,c as a}from"./chunk-IYPY47MC.js";import{a as o,b as s,c}from"./chunk-OKRLLE5I.js";import{D as l,E as u,F as d}from"./chunk-SXV2T5C4.js";import{e as f,f as p}from"./chunk-WFYLMF6Z.js";import{a as m,b as h,c as ee}from"./chunk-C4Z6ZBXV.js";import{b as te,c as g,d as _,f as v,g as y,j as ne}from"./chunk-2XUEZHIP.js";function b(e){let t=null,n=0,r={module:null,load(){return t??=(n?import(`${e}?retry=${n}`):import(e)).then(e=>r.module=e,e=>{throw t=null,n++,e}),t}};return r}var re=b(`./dialogs.js`),x=e=>async(...t)=>(await re.load())[e](...t),ie=x(`openAdvisoryDetailsDialog`),ae=x(`openCommentDialog`),oe=x(`openDeleteBundleDialog`),se=x(`openDeleteReportDialog`),ce=x(`openDetachBundleDialog`),le=x(`openDetachReportDialog`),ue=x(`openDiscardReviewDialog`),de=x(`openDownloadBundleDialog`),fe=x(`openExportConfirmDialog`),pe=x(`openExportViewDialog`),me=x(`openFindingHistoryDialog`),he=x(`openFindingSourceDialog`),ge=x(`openFixLinkDialog`),_e=x(`openImportConflictDialog`),ve=x(`openLeaveWorkspaceDialog`),ye=x(`openLocalContentImportDialog`),be=x(`openLocalTriageImportDialog`),xe=x(`openManagedCommentsDialog`),Se=x(`openManagedIssueDialog`),Ce=x(`openManagedShareDialog`),we=x(`openNewWorkspaceDialog`),Te=x(`openNpmCompareAdvisoriesDialog`),Ee=x(`openObjstoreRecoveryDialog`),De=x(`openPasskeySetupDialog`),Oe=x(`openPersistenceDegradedDialog`),ke=x(`openReportCompareDialog`),Ae=x(`openRepositoryItemDialog`),je=x(`openRevalidationConflictsDialog`),Me=x(`openStoragePersistDialog`),Ne=x(`openSyncDownloadDialog`),Pe=x(`openSyncSuggestDialog`),Fe=x(`openSyncUploadDialog`),Ie=x(`openTriageComparisonDialog`),Le=x(`openTriageExportDialog`),Re=x(`openWhyDialog`),ze=x(`openWorkspaceExportDialog`),Be=x(`openWorkspaceShareLinkDialog`),Ve=x(`openWorkspaceUnlockBundleDialog`),He=x(`openWorkspaceUnlockLinkDialog`),S=[`admin`,`manage`,`triage`,`view`,`none`];function Ue(e){return typeof e==`string`&&S.includes(e)}function We(e,t){let n=S.indexOf(e);return n!==-1&&n<=S.indexOf(t)}function Ge(e){return e!=null&&!e.publicShare&&We(e.role,`view`)}function Ke(e){if(!e?.startsWith(`#public=`))return null;let t=/^#public=([A-Za-z0-9_-]+)\.([A-Za-z0-9_-]{43})$/u.exec(e);return t?{id:t[1],token:t[2]}:{id:``,token:``}}var qe=globalThis.location?.hash,Je=Ke(qe);globalThis.addEventListener?.(`hashchange`,()=>{let e=globalThis.location?.hash;e?.startsWith(`#public=`)&&e!==qe&&globalThis.location.reload()});function Ye(){return Je}function Xe(e=Je){return`/api/shares/${encodeURIComponent(e.id)}/workspace`}function Ze(e,t=Je){return t?`${e.replace(/#.*$/su,``)}#public=${t.id}.${t.token}`:e}var Qe={default:{className:`brand-deepview`,mark:`<path class="fg" d="M7.843 6.719c-1.605 0-2.926 1.292-3.477 1.947.466.58 1.872 2.024 3.496 2.024s2.907-1.292 3.486-2.005c-.627-.703-1.88-1.966-3.505-1.966m.019 3.857c-1.51 0-2.802-1.263-3.353-1.9.55-.617 1.814-1.852 3.334-1.852 1.51 0 2.698 1.12 3.335 1.852-.533.618-1.787 1.9-3.316 1.9m-.019-3.42c-.826 0-1.577.694-1.577 1.596 0 .789.599 1.577 1.577 1.577.893 0 1.587-.684 1.587-1.577-.01-.779-.627-1.596-1.587-1.596m0 3.069a1.476 1.476 0 0 1-1.482-1.473c0-.722.599-1.491 1.482-1.491.846 0 1.482.693 1.492 1.491 0 .808-.618 1.473-1.492 1.473m.01-2.727c-.637 0-1.264.532-1.264 1.244 0 .627.475 1.235 1.245 1.245.684 0 1.254-.522 1.254-1.244 0-.58-.475-1.236-1.235-1.245m-.02 2.403a1.167 1.167 0 0 1-1.149-1.159c0-.532.456-1.14 1.169-1.149.56 0 1.149.427 1.159 1.15 0 .636-.485 1.158-1.179 1.158m-.769-1.833c-.19.238-.275.494-.237.864l.74.057zm1.026-.294c-.295-.057-.665 0-.912.228l.323.607zm.133.047-.38.56.988.114c-.057-.275-.323-.579-.608-.674m-.124.741.456.912c.21-.209.352-.484.314-.836zm-1.225.504a.97.97 0 0 0 .57.617l.399-.551zm.713.664c.313.076.636.01.845-.161l-.295-.618zm-.637 1.55c0 .028-.028.066-.066.066h-.59c-.028 0-.066-.028-.066-.066s.029-.066.067-.066h.579c.048 0 .076.028.076.066m.712 0c0 .028-.028.066-.066.066h-.437c-.028 0-.066-.028-.066-.066s.028-.066.066-.066h.437c.038 0 .066.028.066.066m.666 0c0 .028-.029.066-.067.066h-.37c-.029 0-.067-.028-.067-.066s.029-.066.067-.066h.37c.038 0 .067.028.067.066m-1.672.351c0 .029-.029.067-.067.067h-.295c-.028 0-.066-.028-.066-.066 0-.029.029-.067.067-.067h.294c.038 0 .066.028.066.066m.694 0c0 .029-.028.067-.066.067h-.409c-.028 0-.066-.028-.066-.066 0-.029.028-.067.066-.067h.399c.038 0 .076.028.076.066m.732 0c0 .029-.029.067-.067.067h-.465c-.029 0-.067-.028-.067-.066 0-.029.029-.067.067-.067h.465c.038 0 .067.028.067.066m-1.093.371a.065.065 0 0 1-.067.066h-.627c-.028 0-.075-.028-.066-.066 0-.028.029-.066.067-.066h.627c.038 0 .066.028.066.066m.684 0a.065.065 0 0 1-.066.066h-.39c-.028 0-.076-.028-.066-.066 0-.028.028-.066.066-.066h.39c.038 0 .066.028.066.066M5.088 6.263c-.019-.105-.114-.19-.237-.19s-.257.104-.257.237.105.238.247.238c.105 0 .218-.076.238-.18h.864v.826l.095-.048V6.31c0-.028-.019-.057-.048-.057h-.902zm-.237.19c-.076 0-.143-.066-.143-.143s.066-.142.143-.142.142.066.142.143c.01.076-.066.142-.143.142m2.89-.323H6.38l.418-.475v-.332a.255.255 0 0 0 .218-.248c0-.123-.114-.256-.256-.256s-.266.114-.266.257c0 .123.095.228.209.247v.284l-.456.523v.893l.095-.047v-.742h1.396c.029 0 .067-.009.067-.057 0-.028-.019-.047-.067-.047m-1.13-1.054c0-.076.066-.152.152-.152s.152.066.152.151c0 .076-.066.152-.152.152s-.152-.066-.152-.152m-.836 5.264h-.874c-.019-.105-.114-.219-.247-.219s-.256.105-.256.257c0 .132.114.275.266.275.104 0 .218-.076.237-.19h.827v.608l-.257.285a.3.3 0 0 0-.095-.019c-.133 0-.256.105-.256.228 0 .133.104.238.237.238.124 0 .247-.105.247-.238a.23.23 0 0 0-.057-.152l.285-.304v-.712c0-.029-.019-.058-.057-.058m-1.121.219a.16.16 0 0 1-.152-.161c0-.077.066-.162.152-.162s.152.066.152.152-.066.171-.152.171m.713 1.14c-.076 0-.143-.066-.143-.143s.066-.133.143-.133.142.067.142.143c0 .066-.066.133-.143.133m5.472-1.377a.24.24 0 0 0-.237.208h-1.13c-.029 0-.038.02-.038.048v.712l-.323.39h-.029a.245.245 0 0 0-.247.247c0 .133.114.256.247.256s.247-.113.247-.256a.26.26 0 0 0-.123-.219l.313-.38v-.674h1.083c.019.105.114.2.238.2.133 0 .266-.105.266-.257 0-.133-.105-.276-.266-.276m-1.758 1.767a.15.15 0 0 1-.143-.152c0-.075.067-.142.143-.142s.152.066.152.143a.15.15 0 0 1-.152.151m1.758-1.33a.15.15 0 0 1-.143-.152.147.147 0 0 1 .294.001.15.15 0 0 1-.152.151M8.917 5.55h-.399a.075.075 0 0 1-.076-.076c0-.028.029-.066.067-.066h.418c.028 0 .066.028.066.066s-.038.076-.076.076m.742 0H9.22c-.038 0-.067-.028-.067-.076 0-.028.029-.066.067-.066h.437c.038 0 .066.028.066.066s-.028.076-.066.076m.883 0h-.598c-.029 0-.067-.028-.067-.076 0-.028.029-.066.067-.066h.598c.028 0 .066.028.066.066s-.028.076-.066.076m-1.282.4h-.741c-.038 0-.076-.029-.076-.067s.028-.076.066-.076h.75c.039 0 .067.038.067.076 0 .029-.028.067-.066.067m.797 0h-.503c-.038 0-.076-.029-.076-.067s.028-.066.066-.066h.513c.038 0 .067.028.067.066 0 .029-.029.067-.067.067m.476 0h-.19c-.039 0-.067-.029-.067-.067s.028-.066.066-.066h.2c.028 0 .066.028.066.066 0 .029-.028.067-.075.067m-1.682.398h-.332c-.039 0-.077-.028-.077-.066s.029-.066.067-.066h.342c.038 0 .076.028.076.066s-.028.066-.076.066m.789 0h-.494c-.038 0-.067-.028-.067-.066s.029-.066.067-.066h.494c.038 0 .066.028.066.066s-.028.066-.066.066m.893 0h-.599c-.038 0-.076-.028-.076-.066s.028-.066.066-.066h.618c.028 0 .066.028.066.066s-.028.066-.076.066m.418.305a.69.69 0 0 0-.674.712c0 .086.019.18.048.257l.085.066c-.028-.085-.057-.171-.057-.304 0-.285.228-.646.598-.646.295 0 .599.228.599.636a.58.58 0 0 1-.599.59.8.8 0 0 1-.237-.048l.123.114a.4.4 0 0 0 .114.01c.39 0 .684-.276.684-.666 0-.313-.266-.712-.684-.722m.353.552-.019-.01-.161.19-.143-.01-.057-.047-.019-.133.19-.2a.28.28 0 0 0-.361.077c-.076.095-.076.209-.038.351l-.247.304.171.152.266-.266c.142.038.285.019.38-.095a.31.31 0 0 0 .038-.313"/>`},"claude-security":{className:`brand-claude`,mark:`<path class="fg" d="${f}"/>`},"codex-security":{className:`brand-codex`,mark:`<path class="fg" d="${p}"/>`},deepsec:{className:`brand-vercel`,mark:`<path class="fg" d="m8 5.97 3.5 6.062h-7Z"/>`},"markdown-generic":{className:`brand-markdown`,mark:`<path class="fg" d="M4 7h1.2l1.2 1.5L7.6 7h1.2v4H7.6V8.8L6.4 10 5.2 8.8V11H4zm5.6 0h1.2v2.3H12l-1.8 1.8-1.8-1.8h1.2Z"/>`},piolium:{className:`brand-piolium`,mark:`<path class="fg" d="M8 6.4 5.6 7.2v2.3c0 1.6 1 2.7 2.4 3.3 1.4-.6 2.4-1.7 2.4-3.3V7.2Z"/>`}},$e={default:[`#2563eb`,`#fff`],"claude-security":[`#d97757`,`#fff`],"codex-security":[`#fff`,`#000`],deepsec:[`#000`,`#fff`],piolium:[`#fbb829`,`#1c1b19`],"markdown-generic":[`#374151`,`#fff`]},et=Object.fromEntries(Object.entries(Qe).map(([e,{className:t,mark:n}])=>{let[r,i]=$e[e];return[e,`<svg class="file-icon ${t}" viewBox="0 0 16 16" width="14" height="14" aria-hidden="true"><path class="bg" fill="${r}"${e===`codex-security`||e===`deepsec`?` stroke="${i}" stroke-width=".5"`:``} d="M3 2h6l4 4v8H3z"/><path fill="rgba(0,0,0,.18)" d="M9 2v4h4Z"/><g fill="${i}">${n}</g></svg>`]})),tt=Object.fromEntries(Object.entries(Qe).map(([e,{className:t,mark:n}])=>[e,`<span class="report-logo ${t}" aria-hidden="true"><svg viewBox="${e==="default"?`3.5 4 9 9`:`4 5 8 8`}" width="14" height="14">${n}</svg></span>`]));function nt(e){let t=e.toLowerCase();if(t.endsWith(`.generic-md`)){let t=e.slice(0,-11);try{return decodeURIComponent(t)}catch{return t}}return t.endsWith(`.codex`)?e.slice(0,-6).replaceAll(`__`,`/`):e}var rt=h(class extends ee{constructor(e){if(super(e),e.type!==m.PROPERTY&&e.type!==m.ATTRIBUTE&&e.type!==m.BOOLEAN_ATTRIBUTE)throw Error("The `live` directive is not allowed on child or event bindings");if(!o(e))throw Error("`live` bindings can only contain a single expression")}render(e){return e}update(e,[t]){if(t===v||t===y)return t;let n=e.element,r=e.name;if(e.type===m.PROPERTY){if(t===n[r])return v}else if(e.type===m.BOOLEAN_ATTRIBUTE){if(!!t===n.hasAttribute(r))return v}else if(e.type===m.ATTRIBUTE&&n.getAttribute(r)===t+``)return v;return s(e),t}});function it(e,t){let n=d(e);if(n===null)return null;let r=t.replace(/\.(?:md|markdown)$/iu,``),i=new Set;return n.map(({displayName:e,data:t})=>{let n=`${r}: ${e}`.replaceAll(`%`,`%25`).replaceAll(/[\\/\p{Cc}]/gu,`_`)+`.generic-md`;if(i.has(n))throw Error(`Markdown (generic): products produce the same report name: ${n}`);return i.add(n),{name:n,content:JSON.stringify(t)}})}var at=b(`./scan.js`),ot=()=>at.load(),st=_`<path d="M8 1C4.5 1 4 1.5 4 3v1h4v1H3C1.5 5 1 6 1 8s.5 3 2 3h1V9c0-1.5 1-2 2.5-2H10c1.5 0 2-.5 2-2V3c0-1.5-.5-2-4-2Z" fill="#3776ab"/><path d="M8 1C4.5 1 4 1.5 4 3v1h4v1H3C1.5 5 1 6 1 8s.5 3 2 3h1V9c0-1.5 1-2 2.5-2H10c1.5 0 2-.5 2-2V3c0-1.5-.5-2-4-2Z" fill="#ffd43b" transform="rotate(180 8 8)"/><circle cx="6" cy="2.8" r=".65" fill="#fff"/><circle cx="10" cy="13.2" r=".65" fill="#fff"/>`,ct=_`<path d="M6.42 2.11 6.81 .49 9.19 .49 9.58 2.11 11.05 2.72 12.47 1.85 14.15 3.53 13.28 4.95 13.89 6.42 15.51 6.81 15.51 9.19 13.89 9.58 13.28 11.05 14.15 12.47 12.47 14.15 11.05 13.28 9.58 13.89 9.19 15.51 6.81 15.51 6.42 13.89 4.95 13.28 3.53 14.15 1.85 12.47 2.72 11.05 2.11 9.58 .49 9.19 .49 6.81 2.11 6.42 2.72 4.95 1.85 3.53 3.53 1.85 4.95 2.72ZM8 3.7a4.3 4.3 0 1 0 0 8.6 4.3 4.3 0 1 0 0 -8.6Z" fill="#c97d5d" fill-rule="evenodd"/><text x="8" y="10.8" text-anchor="middle" fill="currentColor" font-family="serif" font-size="8" font-weight="700">R</text>`,lt=_`<g fill="#8892bf" transform="translate(0 .5) scale(.5)"><path d="M28 10a4 4 0 0 0-4-4h-6v6a6 6 0 0 1-6 6h-2v2h2v6h4v-6h8v6h4V16h2v-4a2 2 0 0 0-2-2"/><path d="M12 4H8v2a6 6 0 0 0-6 6v6a2 2 0 0 0 2 2v2H2.5a.5.5 0 0 0-.5.5v3a.5.5 0 0 0 .5.5H6a2 2 0 0 0 2-2v-8h4a4 4 0 0 0 4-4V8a4 4 0 0 0-4-4M6 14H4v-2h2Z"/></g>`,ut=/^(?:(?:un)?licen[cs]e|copying)(?:-[^/.]*)?(?:\.(?:mit|bsd|isc|apache|[al]?gpl|mpl|epl|eupl|cddl|cc0|zlib|psf|boost|bsl|artistic|unicode|ofl|wtfpl|lesser|lib)(?:v?\d[^/.]*|-[^/.]*)?)?(?:\.\d[^/.]*)*(?:\.(?:md|markdown|txt|text|rst|adoc|asciidoc|org))?$/iu,dt=new Set([`resource:base64`,`directory`,`binary`]),ft=e=>dt.has(e);function pt(e,t,n){return n!==null&&n!==`markdown`||ft(t)?!1:ut.test(e.slice(e.lastIndexOf(`/`)+1))}function mt(e,t){return(e?.kind===`stasis`?e.bundle?.formats?.get(t):void 0)??(e?.npmBinaries?.has(t)?`binary`:void 0)}var ht=e=>{let t=e.slice(e.lastIndexOf(`/`)+1),n=t.lastIndexOf(`.`);return n>0?t.slice(n+1).toLowerCase():``},gt=new Set([`node`,`so`,`dylib`,`dll`]);function _t(t,n){let r=e(t,n);if(r===null&&/\.map$/iu.test(t))return`map`;if(pt(t,n,r))return`license`;if([`javascript`,`jsx`].includes(r))return`js`;if([`typescript`,`tsx`].includes(r))return`ts`;let i=ht(t);return[`c`,`cpp`,`objectivec`].includes(r)&&i===`h`?`header`:[`solidity`,`rust`,`php`,`python`,`json`,`markdown`,`css`,`yaml`,`markup`,`java`,`ruby`,`c`,`cpp`].includes(r)?r:r===`bash`?`shell`:r===`objectivec`?`objc`:i===`wasm`?`wasm`:gt.has(i)?`native`:`generic`}var vt=_`<path d="M1.5 3.4 5.3 2l5.4 1.6 3.8-1.4v10.4l-3.8 1.4-5.4-1.6-3.8 1.4Z" fill="#3fa59a" fill-opacity=".22" stroke="#3fa59a" stroke-width="1.1" stroke-linejoin="round"/><path d="M5.3 2v10.4m5.4-8.8V14" stroke="#3fa59a" stroke-width="1.1"/>`,yt=_`<circle cx="8" cy="2.6" r="1" fill="currentColor"/><path d="M8 3.6v9.9m-3.5 0h7M3 4.6h10M3 4.6 1.2 9.2M3 4.6l1.8 4.6M13 4.6l-1.8 4.6M13 4.6l1.8 4.6" fill="none" stroke="currentColor" stroke-width="1.1" stroke-linecap="round" stroke-linejoin="round"/><path d="M1 9.2h4a2 2 0 0 1-4 0Zm10 0h4a2 2 0 0 1-4 0Z" fill="currentColor"/>`,bt=_`<rect x="1" y="1" width="14" height="14" rx="2" fill="#663399"/><text x="14" y="13.2" text-anchor="end" fill="#fff" font-family="sans-serif" font-size="6.4" font-weight="700" letter-spacing="-.2">CSS</text>`,xt=_`<path d="M1 11.5v-7h2l1.7 2.3 1.7-2.3h2v7h-2V7.8L4.7 10 3 7.8v3.7Zm10.2-7h2V8H15l-2.8 3.5L9.4 8h1.8Z" fill="var(--green, #3fb950)"/>`,C=(e,t,n=`#fff`)=>t.length>2?_`<rect x="1" y="1" width="14" height="14" rx="2" fill=${e}/><text x="8" y="10.6" text-anchor="middle" fill=${n} font-family="sans-serif" font-size="6.2" font-weight="700" letter-spacing="-.2">${t}</text>`:_`<rect x="1" y="1" width="14" height="14" rx="2" fill=${e}/><text x="8" y="11.5" text-anchor="middle" fill=${n} font-family="sans-serif" font-size="8" font-weight="700">${t}</text>`,St={__proto__:null,js:C(`#e6c84f`,`JS`,`#202020`),ts:C(`#3178c6`,`TS`),solidity:_`<path d="m8 1 4 6-4 2-4-2Z" fill="currentColor"/><path d="m4 8 4 2 4-2-4 7Z" fill="currentColor" opacity=".65"/>`,rust:ct,php:lt,python:st,map:vt,markdown:xt,license:yt,css:bt,json:_`<path d="M6 2.5C4.6 2.5 4.4 3.3 4.4 4.6v1.6C4.4 7.4 3.8 8 2.6 8c1.2 0 1.8.6 1.8 1.8v1.6c0 1.3.2 2.1 1.6 2.1M10 2.5c1.4 0 1.6.8 1.6 2.1v1.6c0 1.2.6 1.8 1.8 1.8-1.2 0-1.8.6-1.8 1.8v1.6c0 1.3-.2 2.1-1.6 2.1" fill="none" stroke="light-dark(#a26e12, #f2b440)" stroke-width="1.4" stroke-linecap="round" stroke-linejoin="round"/>`,yaml:C(`#cb171e`,`YML`),shell:_`<rect x="1.5" y="2.5" width="13" height="11" rx="1.5" fill="none" stroke="currentColor" stroke-width="1.1"/><path d="m4.2 6 2 2-2 2m3.3 0h4.2" fill="none" stroke="currentColor" stroke-width="1.2" stroke-linecap="round" stroke-linejoin="round"/>`,markup:_`<path d="M4.8 4.5 1.5 8l3.3 3.5m6.4-7L14.5 8l-3.3 3.5M9.3 3 6.7 13" fill="none" stroke="#e34c26" stroke-width="1.4" stroke-linecap="round" stroke-linejoin="round"/>`,wasm:C(`#654ff0`,`WA`),native:_`<rect x="4" y="4" width="8" height="8" rx="1" fill="none" stroke="currentColor" stroke-width="1.1"/><rect x="6.4" y="6.4" width="3.2" height="3.2" fill="currentColor"/><path d="M6 1.5V4m4-2.5V4M6 12v2.5m4-2.5v2.5M1.5 6H4m-2.5 4H4M12 6h2.5M12 10h2.5" stroke="currentColor" stroke-width="1.1" stroke-linecap="round"/>`,java:_`<path d="M5.4 5.8c-.9-1 .9-1.7 0-3M8.4 5.8c-.9-1 .9-1.7 0-3" fill="none" stroke="#e76f00" stroke-width="1.1" stroke-linecap="round"/><path d="M2.5 7h9v3.3A3.7 3.7 0 0 1 7.8 14H6.2a3.7 3.7 0 0 1-3.7-3.7Z" fill="#5382a1"/><path d="M11.5 8.2h.9a1.6 1.6 0 0 1 0 3.2h-1.1" fill="none" stroke="#5382a1" stroke-width="1.1"/>`,objc:C(`#438eff`,`OC`),c:C(`#3949ab`,`C`),cpp:C(`#00599c`,`C++`),header:C(`#607d8b`,`H`),ruby:_`<path d="M4.5 2.5h7L14.5 6 8 14 1.5 6Z" fill="#cc342d"/><path d="M1.5 6h13M4.5 2.5 6 6l2 8 2-8 1.5-3.5M6 6l2-3.5L10 6" fill="none" stroke="#fff" stroke-opacity=".55" stroke-width=".7" stroke-linejoin="round"/>`},Ct=_`<path d="M4 1.5h5l3 3v10H4Zm5 0v3h3M6 8h4M6 10.5h4" fill="none" stroke="currentColor" stroke-width="1.2" stroke-linejoin="round"/>`;function wt(e,t){let n=_t(e,t);return g`<svg class="source-file-icon" data-file-type="${n}" width="16" height="16" viewBox="0 0 16 16" style="${c({flex:`none`})}" aria-hidden="true">${St[n]??Ct}</svg>`}var Tt=g`<svg width="16" height="16" viewBox="0 0 16 16" fill="none" stroke="currentColor" stroke-width="1.2" style="${c({flex:`none`})}" aria-hidden="true"><path d="M1.5 4V2.5h5L8 4h6.5v9h-13Z" stroke-linejoin="round"/></svg>`,Et=g`<svg class="bundle-code-tree-npm" width="12" height="12" viewBox="0 0 16 16" fill="currentColor" aria-hidden="true"><path fill-rule="evenodd" d="M1 1h14v14H1Zm3 3v8h4V6h2v6h2V4Z"/></svg>`,Dt=g`<svg class="bundle-code-tree-soldeer" width="16" height="16" viewBox="0 0 16 16" aria-hidden="true"><path d="m8 1 6 3.5v7L8 15l-6-3.5v-7Z" fill="none" stroke="currentColor" stroke-width="1"/><path d="m8 3 2.5 4L8 8.5 5.5 7Zm-2.5 5L8 9.5 10.5 8 8 13Z" fill="currentColor"/></svg>`,Ot=g`<svg class="bundle-code-tree-composer" width="12" height="12" viewBox="0 0 16 16" aria-hidden="true"><path d="M8 1 15 4.5v7L8 15l-7-3.5v-7Z" fill="#8892bf"/><path d="m1 4.5 7 3.5 7-3.5M8 8v7M4.5 2.75l7 3.5" fill="none" stroke="var(--surface, #fff)" stroke-width=".9"/></svg>`,kt=g`<svg class="bundle-code-tree-cargo" width="12" height="12" viewBox="9.25 6.14 14 14" aria-hidden="true"><path d="m16.264 11.547 6.2-2.446v8.16l-6.2 2.485Zm0-.019-6.2-2.481v8.123l6.2 2.522Z" fill="#e5ac3d" stroke="#73561f" stroke-miterlimit="10" stroke-width=".05430921534373718px"/><path d="m16.277 11.508 6.169-2.435-6.2-2.531-6.2 2.467Z" fill="#e3b04e" stroke="#73561f" stroke-miterlimit="10" stroke-width=".05430921534373718px"/><path d="m12.82 10.149 6.196-2.467" fill="none" stroke="#73561f" stroke-miterlimit="10" stroke-width=".05430921534373718px"/><path d="m18.301 7.395-6.24 2.484 1.482.593 6.196-2.466z" fill="#fff" stroke="#73561f" stroke-miterlimit="10" stroke-width=".04741218643894885px" opacity=".3"/><path d="m13.562 10.47-1.453-.565v1.645l.201-.136.18.285.104.04.138-.121.137.228.129.05.189-.166.238.332.137.053zm-1.423 7.576 1.461.545-.023-1.645-.2.139-.184-.282-.104-.039-.136.123-.14-.226-.131-.049-.186.169-.243-.329-.137-.051z" fill="#fff" stroke="#73561f" stroke-miterlimit="10" stroke-width=".06661495224335688px" opacity=".3"/><path d="m21.426 13.49-.172-.039V13.4l.148-.208a.1.1 0 0 0 .018-.065.035.035 0 0 0-.037-.03l-.189.006-.015-.045.118-.222a.07.07 0 0 0 .007-.063.04.04 0 0 0-.045-.018l-.2.051-.024-.037.084-.229a.06.06 0 0 0 0-.058.04.04 0 0 0-.051-.006l-.2.094-.032-.027.047-.227a.05.05 0 0 0-.016-.052.05.05 0 0 0-.056.007l-.2.133-.039-.017.007-.215a.04.04 0 0 0-.026-.043.07.07 0 0 0-.058.02l-.184.166-.045-.006-.033-.2a.036.036 0 0 0-.036-.032.08.08 0 0 0-.057.031l-.164.194-.049.005-.071-.168a.036.036 0 0 0-.044-.021.1.1 0 0 0-.055.042l-.138.214-.05.016-.107-.135a.04.04 0 0 0-.05-.008.1.1 0 0 0-.05.051l-.107.226-.05.026-.138-.1a.05.05 0 0 0-.055 0 .1.1 0 0 0-.044.058l-.071.228-.049.036-.164-.054a.06.06 0 0 0-.057.017.1.1 0 0 0-.036.063l-.033.223-.045.044-.184-.01a.08.08 0 0 0-.058.029.1.1 0 0 0-.026.065l.007.209-.039.05-.2.035a.1.1 0 0 0-.056.04.1.1 0 0 0-.016.065l.046.187-.032.054-.2.079a.1.1 0 0 0-.051.049.07.07 0 0 0 0 .062l.084.157-.024.057-.2.119a.1.1 0 0 0-.045.057.06.06 0 0 0 .007.057l.118.122-.015.058-.189.155a.1.1 0 0 0-.037.062.045.045 0 0 0 .018.05l.148.082v.055l-.172.185a.1.1 0 0 0-.028.065.04.04 0 0 0 .028.041l.172.039v.051l-.148.208a.1.1 0 0 0-.018.065.035.035 0 0 0 .037.03l.189-.006.015.045-.118.222a.07.07 0 0 0-.007.063.04.04 0 0 0 .045.018l.2-.051.024.037-.084.229a.06.06 0 0 0 0 .058.04.04 0 0 0 .051.006l.2-.094.032.027-.046.227a.05.05 0 0 0 .016.051.05.05 0 0 0 .056-.007l.2-.133.039.017-.007.215a.04.04 0 0 0 .026.043.07.07 0 0 0 .058-.02l.184-.166.045.006.033.2a.035.035 0 0 0 .036.032.08.08 0 0 0 .057-.031l.164-.194.049-.005.071.168a.036.036 0 0 0 .044.02.1.1 0 0 0 .055-.042l.138-.214.05-.016.107.135a.04.04 0 0 0 .05.008.1.1 0 0 0 .05-.051l.107-.226.05-.027.138.1a.05.05 0 0 0 .055 0 .1.1 0 0 0 .044-.058l.071-.228.049-.036.164.054a.06.06 0 0 0 .057-.017.1.1 0 0 0 .036-.063l.033-.223.045-.044.184.01a.08.08 0 0 0 .058-.029.1.1 0 0 0 .026-.065l-.007-.209.039-.05.2-.035a.1.1 0 0 0 .056-.04.1.1 0 0 0 .016-.065l-.046-.187.017-.053.2-.079a.1.1 0 0 0 .051-.049.07.07 0 0 0 0-.062l-.084-.157.024-.057.2-.119a.1.1 0 0 0 .045-.057.06.06 0 0 0-.007-.057l-.118-.122.015-.058.189-.155a.1.1 0 0 0 .037-.062.045.045 0 0 0-.018-.05l-.148-.082v-.055l.172-.185a.1.1 0 0 0 .028-.065.04.04 0 0 0-.014-.039m-1.153 1.988c-.066.013-.108-.037-.094-.112a.21.21 0 0 1 .145-.16c.066-.013.108.037.094.112a.21.21 0 0 1-.145.16m-.059-.39a.19.19 0 0 0-.132.146l-.061.325a2.3 2.3 0 0 1-.619.4 1.4 1.4 0 0 1-.632.123l-.061-.273c-.013-.057-.072-.072-.132-.033l-.252.164a1 1 0 0 1-.13-.106l1.226-.521q.022-.007.023-.026v-.455c0-.013-.009-.012-.023-.006l-.359.152v-.288l.388-.165a.16.16 0 0 1 .239.115c.015.057.049.249.072.3s.117.172.217.13l.611-.26.022-.012a3 3 0 0 1-.139.23Zm-1.7 1.13c-.066.043-.131.026-.145-.037a.2.2 0 0 1 .094-.192c.066-.043.131-.026.145.037a.2.2 0 0 1-.09.192Zm-.465-1.779a.18.18 0 0 1-.062.2c-.062.055-.134.056-.161 0a.18.18 0 0 1 .062-.2c.066-.051.138-.053.165 0Zm-.143.416.263-.234a.16.16 0 0 0 .057-.178l-.054-.105.213-.09v1l-.429.182a1.4 1.4 0 0 1-.057-.407c.001-.052.001-.11.011-.168Zm1.152-.587v-.3l.506-.215c.026-.011.185-.047.185.077 0 .1-.122.192-.222.234l-.47.2Zm1.84-.516v.118l-.154.065a.04.04 0 0 0-.022.036v.074a.31.31 0 0 1-.176.3c-.078.043-.165.036-.176-.01-.046-.253-.123-.278-.245-.327a1 1 0 0 0 .308-.578.3.3 0 0 0-.235-.315.57.57 0 0 0-.322.026l-1.592.677a2.7 2.7 0 0 1 .84-.853l.188.127c.042.029.113 0 .157-.063l.21-.3a.94.94 0 0 1 1.027.33l-.144.4c-.025.069 0 .128.057.13l.277.011q.004.073.004.152Zm-1.591-1.044c.049-.069.126-.1.172-.069s.045.113 0 .183-.126.1-.172.069-.044-.114.005-.184Zm1.427.6a.19.19 0 0 1 .161-.133c.062 0 .089.066.062.142a.19.19 0 0 1-.161.133c-.057-.006-.085-.07-.058-.15Z" opacity=".55"/><path d="M0 16.309h22.926v9.971L45.72 13.139 22.926 0v9.97H0z" fill="#231f20" transform="matrix(0 -.029 .022 .013 10.451 11.138)"/><path d="M0 16.309h22.926v9.971L45.72 13.139 22.926 0v9.97H0z" fill="#231f20" transform="matrix(0 -.029 .022 .013 15.013 12.984)"/></svg>`;function At(e){return e===`composer`?Ot:e===`cargo`?kt:e===`soldeer`?Dt:Et}function jt(e){if(/^https?:\/\//iu.test(e)){try{let t=new URL(e),n=t.pathname.split(`/`).filter(Boolean);if(n.length>=2)return{owner:`${t.host}/${n[0]}`,name:n.slice(1).join(`/`)}}catch{}return{owner:null,name:e}}let t=/^([^\s/:]+)\/(.+)$/u.exec(e);return t?{owner:t[1],name:t[2]}:{owner:null,name:e}}var Mt=e=>e.normalize(`NFKC`).toLocaleLowerCase(),w=(e,t)=>e.localeCompare(t,void 0,{numeric:!0,sensitivity:`base`}),T=Symbol(`other repositories`);function Nt(e,t=``,n=null,{includeSingletonOrganizations:r=!1}={}){let i=e.map(e=>({...e,...e.special?{owner:null,name:e.label}:jt(e.label)})),a=new Map;for(let e of i)e.owner!=null&&a.set(e.owner,(a.get(e.owner)??0)+1);let o=r?1:2,s=[...a].filter(([,e])=>e>=o).toSorted(([e],[t])=>w(e,t)).map(([e,t])=>({value:e,name:e,count:t})),c=e=>(a.get(e.owner)??0)<o,l=i.filter(e=>!e.special&&!e.reset&&c(e)).length;l>0&&s.push({value:T,name:`Other`,count:l});let u=s.some(e=>e.value===n)?n:null,d=Mt(t.trim()).split(/\s+/u).filter(Boolean),f=e=>d.every(t=>Mt(e.label).includes(t)),p=i.filter(e=>e.reset||e.special&&f(e)),m=i.filter(e=>!e.reset&&!e.special&&f(e)&&(u==null||(u===T?c(e):e.owner===u))),h=new Map;for(let e of m){let t=(a.get(e.owner)??0)>=o?e.owner:null;h.has(t)||h.set(t,[]),h.get(t).push(e)}return{facets:s,activeFacet:u,pinned:p,sections:[...h].toSorted(([e],[t])=>e==null?1:t==null?-1:w(e,t)).map(([e,t])=>({label:e??(s.some(e=>e.value!==T)?`Other`:null),organization:e!=null,options:t.toSorted((e,t)=>w(e.label,t.label))})),count:m.length+p.filter(e=>!e.reset).length,total:i.filter(e=>!e.reset).length,showFacets:s.length>1}}function Pt(e,t,n){let r=e[0].getBoundingClientRect().top,i=1;for(;i<e.length&&Math.abs(e[i].getBoundingClientRect().top-r)<1;)i++;if(i===1&&(n===`ArrowLeft`||n===`ArrowRight`))return t;let a=t+{ArrowLeft:-1,ArrowRight:1,ArrowUp:-i,ArrowDown:i}[n];if(a<0)return n===`ArrowUp`?-1:t;let o=Math.floor((e.length-1)/i);return a<e.length?a:Math.floor(t/i)<o?e.length-1:t}var Ft=class extends ne{static properties={options:{attribute:!1},value:{attribute:!1},label:{type:String},placeholder:{type:String},disabled:{type:Boolean},_query:{state:!0},_facet:{state:!0},_open:{state:!0}};static styles=te`:host{display:block;min-width:0}:host,.menu{-webkit-app-region:no-drag;app-region:no-drag}*{box-sizing:border-box}button,input{font:inherit;color:var(--text)}button{cursor:default;user-select:none}.trigger{display:flex;align-items:center;gap:.6rem;width:100%;height:2rem;padding:.28rem .5rem;border:1px solid var(--border);border-radius:var(--ui-radius, 5px);background:var(--bg);text-align:left;font-size:.76rem}.trigger:hover:not(:disabled){border-color:var(--muted)}.trigger:disabled{opacity:.5}:host([variant=filter]){display:inline-block;max-width:min(20rem,100%)}:host([variant=filter]) .trigger{height:30px;min-width:8.5rem;background:transparent;font-size:.8rem;font-weight:500;border-radius:var(--ui-radius, 4px)}.name{flex:1;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.option-copy{flex:1;min-width:0;display:grid;gap:.08rem}.secondary{color:var(--muted);font-size:.64rem;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.secondary.is-warning{color:var(--warning);font-weight:600}.avatar{display:grid;place-items:center;flex:0 0 1.5rem;width:1.5rem;height:1.5rem;border-radius:50%;color:var(--accent);background:rgb(from var(--accent) r g b / .13);font-family:sans-serif;font-size:.62rem;font-weight:600}.detail,.count{flex:0 0 auto;color:var(--muted);font-size:.66rem;font-variant-numeric:tabular-nums;white-space:nowrap}svg{flex:0 0 auto;width:.9rem;height:.9rem;color:var(--muted)}.menu{visibility:hidden;position:fixed;inset:auto;margin:0;padding:0;overflow:hidden;border:1px solid var(--border);border-radius:var(--ui-radius, 8px);background:var(--bg);color:var(--text);box-shadow:0 .6rem 1.6rem #0006;user-select:none}.menu:popover-open{display:flex;flex-direction:column}.menu[data-positioned]{visibility:visible}.search{display:flex;align-items:center;gap:.5rem;flex:0 0 auto;padding:.55rem .65rem;border-bottom:1px solid var(--border)}input{flex:1;min-width:0;width:0;padding:.15rem 0;border:0;background:transparent;font-size:.78rem;outline:none}input::placeholder{color:var(--muted)}.search:focus-within{box-shadow:inset 0 -2px var(--accent)}.body{display:flex;min-height:0;flex:1}.facets{width:10.5rem;flex:0 0 auto;padding:.35rem;overflow:auto;overscroll-behavior:none;border-right:1px solid var(--border);background:rgb(from var(--bg) r g b / .25)}.org{display:flex;align-items:center;gap:.4rem;width:100%;padding:.4rem .45rem;border:0;border-radius:var(--ui-radius, 4px);background:transparent;text-align:left;font-size:.7rem}.org[aria-pressed=true]{color:var(--accent);background:rgb(from var(--accent) r g b / .1)}.results{flex:1;min-width:0;overflow:auto;overscroll-behavior:none;padding:.3rem}.group+.group{margin-top:.35rem;padding-top:.35rem;border-top:1px solid var(--border)}.heading{position:sticky;top:-.3rem;z-index:1;display:flex;align-items:center;gap:.4rem;margin:0;padding:.4rem .5rem;color:var(--muted);background:var(--bg);font-size:.68rem;font-weight:600}.heading svg{width:.8rem;height:.8rem}.option{display:flex;align-items:center;gap:.65rem;width:100%;padding:.35rem .5rem;border:0;border-radius:var(--ui-radius, 4px);background:transparent;text-align:left;font-size:.76rem}.option svg{width:.8rem;height:.8rem;opacity:0;color:var(--accent)}.option[aria-selected=true]{color:var(--accent);background:rgb(from var(--accent) r g b / .1)}.option[aria-selected=true] svg{opacity:1}.option:disabled{opacity:.45}.option:hover:not(:disabled),.org:hover{background:rgb(from var(--text) r g b / .05)}.pinned{padding-bottom:.25rem;margin-bottom:.25rem;border-bottom:1px solid var(--border)}.empty{margin:0;padding:1.3rem .7rem;color:var(--muted);font-size:.76rem}button:focus-visible{outline:2px solid var(--accent);outline-offset:-2px}@media(max-width:40rem){.facets{width:8.5rem}}@media(max-width:28rem){.facets{width:7rem}.option{gap:.35rem}}:host-context(body.theme-w95){.trigger,.trigger:hover:not(:disabled){height:23px;padding:0 1px 0 4px;gap:4px;border:0;border-radius:0;background:#fff;box-shadow:var(--w95-sunken);font-size:11px;font-weight:400}.trigger>svg:last-child{width:16px;height:19px;padding:3px 2px;background:var(--w95-face);box-shadow:var(--w95-raised);color:#000}.menu{border:1px solid #000;border-radius:0;box-shadow:none;font-size:11px}.search{border-bottom:0;box-shadow:inset 0 -1px var(--w95-shadow)}.search:focus-within{box-shadow:inset 0 -1px var(--w95-shadow)}:is(.option,.org){border-radius:0;font-size:11px}:is(.option,.org):is(:hover:not(:disabled),[aria-selected=true],[aria-pressed=true]){background:var(--w95-title);color:#fff;.secondary,svg,.detail,.count{color:#fff}}.avatar{border-radius:0}& button:focus-visible{outline:1px dotted #000;outline-offset:-2px}}:host-context(body.theme-w95) *{overscroll-behavior:none}`;constructor(){super(),this.options=[],this.value=null,this.label=`Choose`,this.placeholder=`Choose`,this.disabled=!1,this._query=``,this._facet=null,this._open=!1,this._menuHeight=null,this._onViewport=()=>this._position()}connectedCallback(){super.connectedCallback(),this.dispatchEvent(new CustomEvent(`tooltip-root-connected`,{bubbles:!0,composed:!0})),window.addEventListener(`resize`,this._onViewport),window.addEventListener(`scroll`,this._onViewport,!0),this._scrollRoots=[];for(let e=this.getRootNode();e.host;e=e.host.getRootNode())e.addEventListener(`scroll`,this._onViewport,!0),this._scrollRoots.push(e)}disconnectedCallback(){super.disconnectedCallback(),window.removeEventListener(`resize`,this._onViewport),window.removeEventListener(`scroll`,this._onViewport,!0);for(let e of this._scrollRoots??[])e.removeEventListener(`scroll`,this._onViewport,!0);this._scrollRoots=[]}render(){let e=this.options.find(e=>e.value===this.value),t=this.choices(),n=[...t.pinned,...t.sections.flatMap(e=>e.options)].filter(e=>!e.disabled),r=n.find(e=>e.value===this.value)?.value??n[0]?.value;return g`<button type="button" class="trigger" popovertarget="selector-menu" aria-label="${this.label}" aria-haspopup="dialog" aria-expanded="${this._open}" ?disabled="${this.disabled}">${e?this.optionIcon(e):y}<span class="name" data-tooltip-truncated data-tooltip="${e?.label??y}">${e?.label??this.placeholder}</span>${e?.detail?g`<span class="detail" data-tooltip-truncated data-tooltip="${e.detail}">${e.detail}</span>`:y} <svg viewBox="0 0 16 16" fill="none" stroke="currentColor" stroke-width="1.5" aria-hidden="true"><path d="m4 6 4 4 4-4"/></svg></button><div class="menu" id="selector-menu" popover="auto" role="dialog" aria-label="${this.label}" @beforetoggle="${this._beforeToggle}" @toggle="${this._toggle}" @keydown="${this._keyDown}"><div class="search"><svg viewBox="0 0 16 16" fill="none" stroke="currentColor" stroke-width="1.5" aria-hidden="true"><circle cx="7" cy="7" r="4.5"/><path d="m10.5 10.5 3.5 3.5"/></svg> <input type="search" placeholder="${`${this.searchLabel}\u2026`}" aria-label="${this.searchLabel}" aria-controls="selector-options" .value="${rt(this._query)}" @input="${e=>{this._query=e.target.value}}"> <span class="count" role="status">${t.count}${t.count===t.total?``:` / ${t.total}`}</span></div><div class="body">${t.showFacets?g`<div class="facets" role="group" aria-label="${this.facetLabel}"><button type="button" class="org" aria-pressed="${t.activeFacet==null}" @click="${()=>this._filterFacet(null)}"><span class="name">${this.allFacetsLabel}</span><span class="count">${t.total}</span></button> ${t.facets.map(e=>g`<button type="button" class="org" aria-pressed="${t.activeFacet===e.value}" @click="${()=>this._filterFacet(e.value)}"><span class="name" data-tooltip-truncated data-tooltip="${e.name}">${e.name}</span><span class="count">${e.count}</span></button>`)}</div>`:y}<div class="results" id="selector-options" role="listbox" aria-label="${this.optionsLabel}">${t.pinned.length>0?g`<div class="pinned">${t.pinned.map(e=>this._option(e,!1,r))}</div>`:y} ${t.sections.map((e,t)=>g`<div class="group" role="group" aria-labelledby="${e.label?`selector-group-${t}`:y}">${e.label?g`<h3 class="heading" id="${`selector-group-${t}`}">${e.organization?g`<svg viewBox="0 0 16 16" fill="none" stroke="currentColor" stroke-width="1.2" aria-hidden="true"><path d="M3 14V3h6v11M9 7h4v7M1 14h14M5 6h2M5 9h2M5 12h2"/></svg>`:y}${e.label}</h3>`:y} ${e.options.map(t=>this._option(t,e.organization,r))}</div>`)} ${t.count?y:g`<p class="empty">${this.options.length>0?this.noMatchesLabel:this.emptyLabel}</p>`}</div></div></div>`}get menuWidth(){return 360}optionIcon(e){return e.initials?g`<span class="avatar" aria-hidden="true">${e.initials}</span>`:y}optionTooltip(e){return e.label}_option(e,t,n){let r=e.displayLabel??(t?e.name:e.label),i=this.optionTooltip(e);return g`<button type="button" class="option" role="option" ?data-reset="${e.reset}" ?disabled="${e.disabled}" aria-label="${e.label}" aria-selected="${e.value===this.value}" tabindex="${e.value===n?0:-1}" @click="${()=>this._pick(e.value)}"><svg viewBox="0 0 16 16" fill="none" stroke="currentColor" stroke-width="1.5" aria-hidden="true"><path d="m3 8 3 3 7-7"/></svg>${this.optionIcon(e)}<span class="option-copy"><span class="name" ?data-tooltip-truncated="${r===i}" data-tooltip="${i}">${r}</span>${e.secondary?g`<span class="${e.secondaryWarning?`secondary is-warning`:`secondary`}" ?data-tooltip-truncated="${!e.secondaryWarning}" data-tooltip="${e.secondaryWarning??e.secondary}">${e.secondary}</span>`:y}</span>${e.detail?g`<span class="detail">${e.detail}</span>`:y}</button>`}updated(e){this.disabled&&this._open&&this._close(!1),e.has(`options`)&&(this._menuHeight=null),this._position(),(e.has(`_query`)||e.has(`_facet`))&&(this.renderRoot.querySelector(`.results`).scrollTop=0)}_beforeToggle(e){this._open=e.newState===`open`,delete e.target.dataset.positioned,this._open&&(this._query=``,this._facet=null,this._menuHeight=null)}async _toggle(e){e.newState===`open`&&(await this.updateComplete,this._open&&this.isConnected&&(this._position(),this.renderRoot.querySelector(`input`).focus({preventScroll:!0})))}_position(){let e=this.renderRoot.querySelector(`.menu`);if(!e?.matches(`:popover-open`))return;let t=this.renderRoot.querySelector(`.trigger`).getBoundingClientRect(),n=e.querySelector(`.facets`)!=null,r=Math.min(Math.max(t.width,n?560:this.menuWidth),window.innerWidth-16),i=window.innerHeight-t.bottom-8-4,a=t.top-8-4;e.style.width=`${r}px`,this._menuHeight??=Math.min(480,e.querySelector(`.search`).offsetHeight+Math.max(e.querySelector(`.results`).scrollHeight,e.querySelector(`.facets`)?.scrollHeight??0)+2);let o=this._menuHeight,s=i<o&&a>i;e.style.maxHeight=`${Math.max(0,Math.min(o,s?a:i))}px`,e.style.left=`${Math.max(8,Math.min(t.left,window.innerWidth-r-8))}px`,e.style.top=`${Math.max(8,s?t.top-e.offsetHeight-4:t.bottom+4)}px`,e.dataset.positioned=``}_filterFacet(e){this._facet=e,this.renderRoot.querySelector(`input`).focus({preventScroll:!0})}_keyDown(e){if(e.stopPropagation(),e.key===`Escape`){e.preventDefault(),this._close();return}let t=this.renderRoot.querySelector(`input`),n=this.renderRoot.activeElement,r=[...this.renderRoot.querySelectorAll(`.option:not(:disabled)`)],i=r.indexOf(n);if(n!==t&&i<0)return;if(e.key===`Enter`&&n===t){e.preventDefault(),(this.renderRoot.querySelector(`.option:not([data-reset]):not(:disabled)`)??r[0])?.click();return}let a;if(n===t){if(e.key===`ArrowDown`)a=0;else if(e.key===`ArrowUp`)a=-1;else return}else if(e.key.startsWith(`Arrow`))a=Pt(r,i,e.key);else if(e.key===`Home`)a=0;else if(e.key===`End`)a=r.length-1;else if(e.key.length===1&&e.key!==` `&&!e.ctrlKey&&!e.metaKey&&!e.altKey){e.preventDefault(),this._query+=e.key,t.focus();return}else return;e.preventDefault();for(let[e,t]of r.entries())t.tabIndex=e===a?0:-1;a<0?t.focus():r[a]?.focus()}_pick(e){this.disabled||!this.options.some(t=>t.value===e&&!t.disabled)||(this._close(),this.dispatchEvent(new CustomEvent(this.changeEvent,{detail:{value:e},bubbles:!0,composed:!0})))}_close(e=!0){this.renderRoot.querySelector(`.menu`).hidePopover(),this._open=!1,e&&this.renderRoot.querySelector(`.trigger`).focus({preventScroll:!0})}},It=class extends Ft{constructor(){super(),this.label=`Choose repository`,this.placeholder=`Choose repository`}get searchLabel(){return`Search repositories`}get optionsLabel(){return`Repositories`}get facetLabel(){return`Filter by organization`}get allFacetsLabel(){return`All organizations`}get noMatchesLabel(){return`No matching repositories`}get emptyLabel(){return`No repositories available`}get changeEvent(){return`repository-change`}choices(){return Nt(this.options,this._query,this._facet)}};customElements.get(`repository-selector`)||customElements.define(`repository-selector`,It);function Lt(e,t){let r=new Map,i=e?.kind===`stasis`?e.bundle?.reason:null;if(!i||typeof i!=`object`||Array.isArray(i))return r;let a=new Set(t??[...n(e)].filter(([,e])=>e!=null).map(([e])=>e));for(let[e,t]of Object.entries(i).toSorted(([e],[t])=>e.localeCompare(t))){if(!e||!Array.isArray(t))continue;let n=new Set(t.filter(e=>typeof e==`string`&&a.has(e)));n.size>0&&r.set(e,n)}return[...r.values()].some(e=>e.size<a.size)||r.clear(),r}function Rt(e,t,n){let r=new Set;for(let[i,o]of e)a(i,n?.get(i))&&r.add(t(o));return r}function zt(e,t,n){let r=new Set;for(let i of e?.bundle?.entries??[]){let e=t.get(i);e!==void 0&&r.add(n(e))}return r}function Bt(e,t,n,r){let i=n.has(r)?r:null;if(i===null)return{tree:e,origToStripped:t,selected:i};let a=new Map([...t].filter(([e])=>n.get(i).has(e))),o=new Set(a.values());return{tree:Object.fromEntries([...o].map(t=>[t,{...e[t],imports:(e[t].imports??[]).filter(e=>o.has(e))}])),origToStripped:a,selected:i}}function Vt(e){if(e?.kind===`sourcemap`)return t(e);let n=new Map;if(e?.kind!==`stasis`||!e.bundle)return n;for(let t of e.bundle.imports.values())for(let[e,r]of t){n.has(e)||n.set(e,new Set);for(let t of r.values()){let r=typeof t==`string`?[t]:t instanceof Map?t.values():[];for(let t of r)typeof t==`string`&&n.get(e).add(t)}}return n}function Ht(e,t,n=t,r){let a=Vt(e),o=new Set(e?.bundle?.entries??[]),s=[],c=new Set,l=[...o];for(let e of l){if(c.has(e))continue;if(c.add(e),t.has(e)){o.has(e)&&s.push({file:t.get(e)});continue}if(n.has(e))continue;let u=[];for(let r of a.get(e)??[])t.has(r)?u.push(t.get(r)):!n.has(r)&&a.has(r)&&(u.push(r),l.push(r));s.push({file:e,origFile:e,virtual:!0,...o.has(e)?{}:{entry:!1},pkg:i(e,{packageDir:r?.get(e)}),imports:u})}return s}function Ut(e,t,n,r,a=t){let o=Vt(e),s=new Set;for(let[e,a]of t)i(e,{packageDir:r?.get(e)})===`__own__`&&s.add(n(a));for(let r of zt(e,t,n))s.add(r);if(s.size===0){let e=Rt(t,n,r),i=new Set;for(let[r,a]of o){let o=t.get(r);if(o!==void 0&&e.has(n(o)))for(let e of a){let r=t.get(e);r!==void 0&&n(o)!==n(r)&&i.add(n(r))}}for(let t of e)i.has(t)||s.add(t)}let c=new Set;for(let[e,s]of o)if(!a.has(e)&&i(e,{packageDir:r?.get(e)})===`__own__`)for(let e of s){let r=t.get(e);r!==void 0&&c.add(n(r))}return c.size>0&&s.add(`__own__`),{roots:[...s],appImports:[...c]}}var Wt=/^(?:@[a-z0-9][a-z0-9._-]*\/)?[a-z0-9][a-z0-9._-]*$/iu,Gt=200;function Kt(e){let t=[...e];return t.length>Gt?`${t.slice(0,Gt-1).join(``).trimEnd()}\u2026`:e}var qt=e=>e.split(`/`).map(encodeURIComponent).join(`/`),Jt=(e,t)=>`https://github.com/${qt(e)}/releases/tag/${qt(t)}`;function Yt(e,t){return t&&e?.sha===t&&Array.isArray(e.tags)?e.tags.filter(e=>typeof e==`string`&&e):[]}function Xt(e,t,n=null){let r=typeof e?.github==`string`&&typeof n==`string`&&n.toLowerCase()===e.github.toLowerCase()?Yt(e,t):[],i=t&&e?.sha===t&&typeof e.details?.subject==`string`?e.details:null;if(i||r.length!==0)return JSON.stringify({tags:r,...i?{title:Kt(i.subject),authorName:i.authorName,authorLogin:i.authorLogin,date:i.committedAt??i.authoredAt}:{}})}function Zt(e,t=``,n=null){let i=[],a=l(e);if(a){let o=[u(e.repo),u({directory:t})].filter(Boolean).join(`/`),s=r(e.repo?.commit),c=o.split(`/`).map(encodeURIComponent).join(`/`),d=`https://github.com/${a}`,f=l({repo:{github:n?.github}}),p=f?Yt(n,s):[];i.push({label:`GitHub`,text:a+(o?`/${o}`:``),href:s||o?`${d}/tree/${s??`HEAD`}${c?`/${c}`:``}`:d,...s?{commit:{hash:s,text:s.slice(0,7),href:`${d}/commit/${s}`,...p.length>0?{tags:p.map(e=>({name:e,href:Jt(f,e)}))}:{}}}:{}})}let o=e?.package?.npm;if(typeof o?.name==`string`&&Wt.test(o.name)){let e=typeof o.version==`string`?o.version.trim():``;i.push({label:`npm`,text:o.name+(e?`@${e}`:``),href:`https://www.npmjs.com/package/${o.name}${e?`/v/${encodeURIComponent(e)}`:``}`})}return i}var E=e=>e??y,Qt=g`<svg viewBox="0 0 16 16" fill="none" stroke="currentColor" stroke-width="1.3" aria-hidden="true"><circle cx="8" cy="8" r="3"/><path d="M1 8h4m6 0h4"/></svg>`,$t=g`<svg viewBox="0 0 16 16" fill="none" stroke="currentColor" stroke-width="1.5" aria-hidden="true"><path d="m4 6 4 4 4-4"/></svg>`,en=[{kind:`branch`,label:`Branch`,icon:g`<svg viewBox="0 0 16 16" fill="none" stroke="currentColor" stroke-width="1.3" aria-hidden="true"><circle cx="4" cy="3" r="1.5"/><circle cx="4" cy="13" r="1.5"/><circle cx="12" cy="3" r="1.5"/><path d="M4 4.5v7m0-3h3a5 5 0 0 0 5-4"/></svg>`},{kind:`tag`,label:`Tag`,icon:g`<svg viewBox="0 0 16 16" fill="none" stroke="currentColor" stroke-width="1.3" stroke-linejoin="round" aria-hidden="true"><path d="M2 2h5.5l6.5 6.5-5.5 5.5L2 7.5Z"/><circle cx="5" cy="5" r="1"/></svg>`},{kind:`commit`,label:`Commit SHA`,icon:Qt}],tn=/^v?(\d+(?:\.(?:\d+|x))*)(?:[-+](.+))?$/iu;function nn(e){let t=tn.exec(e);return t?t[2]===void 0?`line`:`version`:`other`}function rn(e){let t=e.map(e=>{let t=tn.exec(e);return{name:e,parts:t?.[1].split(`.`).map(e=>e.toLowerCase()===`x`?1/0:Number(e)),suffix:t?.[2]??``}});return[...t.filter(e=>e.parts).toSorted((e,t)=>{if(!!e.suffix!=!!t.suffix)return e.suffix?1:-1;for(let n=0;n<Math.max(e.parts.length,t.parts.length);n++){let r=(t.parts[n]??1/0)-(e.parts[n]??1/0);if(r)return r}return e.suffix.localeCompare(t.suffix)}),...t.filter(e=>!e.parts)].map(e=>e.name)}function an(e,t,n){let r=e=>e===n||!e.includes(`/`)?null:e.slice(0,e.indexOf(`/`)),i=Map.groupBy(e.filter(r),r),a=e.filter(e=>!(i.get(r(e))?.length>2)).map(e=>({name:e}));for(let[e,n]of i)n.length<=2||(a.push({prefix:e,count:n.length,expanded:t.has(e)}),t.has(e)&&a.push(...rn(n.map(t=>t.slice(e.length+1))).map(t=>({name:`${e}/${t}`,label:t,group:e}))));return a}var on=class extends ne{static properties={refs:{attribute:!1},kind:{type:String},name:{type:String},disabled:{type:Boolean},installTooltips:{attribute:!1},_open:{state:!0},_query:{state:!0},_active:{state:!0},_expanded:{state:!0},_keyboard:{state:!0}};static styles=te`:host{display:block;min-width:0}:host,.revision-menu{-webkit-app-region:no-drag;app-region:no-drag}*{box-sizing:border-box}button,input{font:inherit;color:var(--text)}button{cursor:default;user-select:none}.revision{display:flex;align-items:center;min-width:0;height:2rem;margin:0;border:1px solid var(--border);border-radius:var(--ui-radius, 5px);background:var(--bg)}.revision.keyboard:focus-within{border-color:var(--accent);box-shadow:0 0 0 1px var(--accent)}.revision-size{display:grid;grid-template-columns:minmax(0,1fr);flex:1 1 auto;align-self:stretch;min-width:0}.revision-size>input,.revision-size:after{grid-area:1 / 1}.revision-size>input{width:100%}.revision-size:after{content:attr(data-value);visibility:hidden;height:0;overflow:hidden;white-space:pre;min-width:8rem;padding:0 calc(.6rem + 2px) 0 .6rem;font-size:.76rem}.revision input{height:100%;min-height:0;padding:.3rem .6rem;min-width:0;border:0;border-radius:0;background:transparent;color:var(--text);font-size:.76rem}.revision input:focus-visible{outline:none}.revision-switch{display:flex;flex:none;align-self:stretch;padding:2px;gap:2px}.revision-switch button{position:relative;display:grid;place-items:center;width:1.8rem;padding:0;border:0;border-radius:var(--ui-radius, 3px);background:transparent;color:var(--muted)}.revision-switch button:hover:not(:disabled){color:var(--text);background:var(--surface-active)}.revision-switch button:focus-visible{outline-offset:-2px}.revision-switch button[aria-pressed=true]{color:var(--accent);background:var(--selected-icon-background, color-mix(in srgb, var(--accent) 15%, var(--bg)))}.revision-switch button[aria-pressed=true]:before{content:var(--selected-icon-ring-content, none);position:absolute;left:50%;top:50%;width:22px;height:22px;box-sizing:border-box;border:1px solid currentcolor;border-radius:50%;transform:translate(-50%,-50%);pointer-events:none}.revision-switch svg{width:1rem;height:1rem}.revision-expand{display:grid;place-items:center;align-self:stretch;flex:none;width:2rem;padding:0;border:0;border-radius:var(--ui-radius, 4px);color:var(--muted);background:transparent}.revision-expand svg{width:.9rem;height:.9rem}.revision-expand:hover:not(:disabled){color:var(--text)}.revision-expand:focus-visible{outline-offset:-2px}.revision-menu{visibility:hidden;position:fixed;inset:auto;margin:0;padding:.45rem;overflow:auto;overscroll-behavior:contain;scrollbar-gutter:stable;border:1px solid var(--border);border-radius:var(--ui-radius, 8px);background:var(--surface-active);color:var(--text);box-shadow:0 .65rem 1.8rem #00000073}.revision-menu[data-positioned]{visibility:visible}.revision-options{display:flex;flex-direction:column;gap:.15rem}.revision-section{display:grid;grid-template-columns:repeat(var(--revision-columns, 1),minmax(0,1fr));gap:.15rem .5rem}.revision-section+.revision-section{padding-top:.15rem;border-top:1px solid var(--border)}.revision-options button{min-width:0;padding:.375rem .6rem;border:0;border-radius:var(--ui-radius, 4px);background:transparent;color:var(--text);text-align:left;font-size:.76rem}.revision-options button span{display:block;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.revision-options button[aria-selected=true]{color:var(--accent);background:color-mix(in srgb,var(--accent) 10%,transparent)}.revision-options button:hover,.revision-options button[data-active]{background:color-mix(in srgb,var(--text) 8%,transparent)}.revision-options button[data-active]{outline:1px solid var(--accent);outline-offset:-1px}.revision-options .revision-group{display:flex;align-items:center;gap:.4rem}.revision-group svg{flex:none;width:.75rem;height:.75rem;color:var(--muted)}.revision-group[aria-expanded=false] svg{rotate:-90deg}.revision-options .revision-group .count{display:inline-flex;flex:none;min-width:1.1rem;padding:0 .35rem;background:transparent;font-size:.7rem}.revision-empty{margin:0;padding:.65rem;color:var(--muted);font-size:.75rem;cursor:default;user-select:none}button:disabled,input:disabled{opacity:.5}:host-context(body.theme-w95) *{overscroll-behavior:none}`;constructor(){super(),this.refs=null,this.kind=`branch`,this.name=``,this.disabled=!1,this._open=!1,this._query=``,this._active=-1,this._expanded=new Set,this._keyboard=!1,this._pointer=!1,this._onViewport=()=>this.position(),this._onKey=()=>{this._pointer=!1}}connectedCallback(){super.connectedCallback(),globalThis.addEventListener(`resize`,this._onViewport),globalThis.addEventListener(`scroll`,this._onViewport,!0),globalThis.addEventListener(`keydown`,this._onKey,!0)}disconnectedCallback(){globalThis.removeEventListener(`resize`,this._onViewport),globalThis.removeEventListener(`scroll`,this._onViewport,!0),globalThis.removeEventListener(`keydown`,this._onKey,!0),super.disconnectedCallback()}updated(e){e.has(`installTooltips`)&&this.installTooltips?.(this.renderRoot),e.has(`kind`)&&this.kind===`commit`&&this._open&&this.close(),this.position()}change(e,t,n){this.dispatchEvent(new CustomEvent(`revision-change`,{detail:{how:e,kind:t,name:n},bubbles:!0,composed:!0}))}suggestions(e=this.kind){let t=this.refs??{branches:[],tags:[]},n=e===`branch`?t.branches:e===`tag`?t.tags:[],r=e===`branch`?[...t.defaultBranch?[t.defaultBranch]:[],...rn(n.filter(e=>e!==t.defaultBranch))]:n,i=this._query.trim().toLowerCase();return r.filter(e=>e.toLowerCase().includes(i))}entries(e=this._expanded){let t=this.suggestions();return this.kind===`branch`&&!this._query.trim()?an(t,e,this.refs?.defaultBranch):t.map(e=>({name:e}))}toggleGroup(e){let t=new Set(this._expanded);t.delete(e)||t.add(e),this._expanded=t}sections(e){let t=e=>e.group??(this.kind===`branch`?nn(e.name):`all`),n=e[1]?.prefix==null?e[1]:void 0,r=[];for(let[i,a]of e.entries()){if(a.prefix!=null){r.push({header:a,index:i});continue}let e=t(i===0&&a.name===this.refs?.defaultBranch&&n?n:a);r.at(-1)?.key===e?r.at(-1).items.push({entry:a,index:i}):r.push({key:e,items:[{entry:a,index:i}]})}return r}show({query:e=``,kind:t=this.kind}={}){t===`commit`||this.disabled||(this._open||(this._expanded=new Set(this.name.includes(`/`)?[this.name.slice(0,this.name.indexOf(`/`))]:[])),this._query=e,this._active=-1,this.renderRoot?.querySelector(`.revision-menu`)?.showPopover())}close(){this.renderRoot?.querySelector(`.revision-menu`)?.hidePopover(),this._open=!1,this._active=-1}focusName(){this.renderRoot?.querySelector(`.revision-name`)?.focus({preventScroll:!0})}pick(e){this.change(`pick`,this.kind,e),this.focusName(),this.close()}pickKind(e){e!==this.kind&&(this.close(),this.change(`kind`,e,e===`branch`&&this.refs?.defaultBranch||``)),this.focusName(),this.show({kind:e})}position(){if(!this._open)return;let e=this.renderRoot.querySelector(`.revision-menu`),t=e.querySelector(`.revision-options`),n=this.renderRoot.querySelector(`.revision-name`).getBoundingClientRect(),r=parseFloat(getComputedStyle(this).fontSize),i=document.createRange(),a=t.querySelector(`.revision-section > button`),o=a?parseFloat(getComputedStyle(a).paddingLeft)+parseFloat(getComputedStyle(a).paddingRight):0,s=[...t.querySelectorAll(`.revision-section`)].map(e=>{let t=0;for(let n of e.querySelectorAll(`button > span`))i.selectNodeContents(n),t=Math.max(t,i.getBoundingClientRect().width);return{section:e,count:e.children.length,columnWidth:Math.max(5*r,Math.min(15*r,Math.ceil(t+o)+1))}}),c=s.length>0&&parseFloat(getComputedStyle(s[0].section).columnGap)||0,l=e.offsetWidth-t.clientWidth,u=Math.min(window.innerWidth-16,Math.max(n.width,...s.map(({count:e,columnWidth:t})=>Math.min(3,Math.ceil(e/8))*(t+c)-c+l))),d=this.entries({has:()=>!0}).length<=8;for(let{section:e,count:t,columnWidth:n}of s){let r=Math.max(1,Math.floor((u-l+c)/(n+c)));e.style.setProperty(`--revision-columns`,d?1:Math.ceil(t/Math.ceil(t/r)))}e.style.width=`${u}px`,e.style.left=`${Math.max(8,Math.min(n.left,window.innerWidth-u-8))}px`;let f=window.innerHeight-n.bottom-6-8,p=n.top-6-8,m=f<Math.min(e.scrollHeight,320)&&p>f;e.style.maxHeight=`${Math.max(0,Math.min(420,m?p:f))}px`,e.style.top=`${Math.max(8,m?n.top-e.offsetHeight-6:n.bottom+6)}px`,e.dataset.positioned=``}async keyDown(e){if(e.key===`Escape`||e.key===`Tab`){e.key===`Escape`&&this._open&&(e.preventDefault(),e.stopPropagation()),this.close();return}if(e.key===`Enter`){let t=this.entries()[this._active];this._open&&t?.prefix!=null?(e.preventDefault(),this.toggleGroup(t.prefix)):this._open&&t!=null?(e.preventDefault(),this.pick(t.name)):this.close();return}if(this.kind===`commit`||![`ArrowDown`,`ArrowUp`].includes(e.key))return;e.preventDefault(),this._open||this.show();let t=this.entries().length;this._active=t===0?-1:e.key===`ArrowDown`?Math.min(this._active+1,t-1):this._active<=0?t-1:this._active-1,await this.updateComplete,this.renderRoot.querySelector(`[data-active]`)?.scrollIntoView({block:`nearest`})}render(){let e=this.entries(),t=this.kind===`commit`?`Commit SHA`:this.kind===`tag`?`Tag`:`Branch`,n=this.kind!==`commit`;return g`<form class="${this._keyboard?`revision keyboard`:`revision`}" @pointerdown="${()=>{this._pointer=!0,this._keyboard=!1}}" @focusin="${()=>{this._keyboard=!this._pointer}}" @focusout="${e=>{e.currentTarget.contains(e.relatedTarget)||(this._keyboard=!1,this.close())}}" @submit="${e=>{e.preventDefault(),this.change(`submit`,this.kind,this.name)}}"><div class="revision-switch" role="group" aria-label="Revision type">${en.map(({kind:e,label:t,icon:n})=>g`<button type="button" aria-label="${t}" data-tooltip="${t}" aria-pressed="${this.kind===e}" ?disabled="${this.disabled}" @click="${()=>this.pickKind(e)}">${n}</button>`)}</div><span class="revision-size" data-value="${this.name}"><input class="revision-name" type="text" size="1" aria-label="${t}" role="${E(n?`combobox`:void 0)}" aria-autocomplete="${E(n?`list`:void 0)}" aria-expanded="${E(n?String(this._open):void 0)}" aria-controls="${E(n?`revisions`:void 0)}" aria-activedescendant="${E(this._open&&this._active>=0?`revision-${this._active}`:void 0)}" autocomplete="off" spellcheck="false" placeholder="${n?`Choose or enter a ${this.kind}\u2026`:`Commit SHA…`}" .value="${rt(this.name)}" ?disabled="${this.disabled}" @focus="${()=>this.show()}" @click="${()=>this.show()}" @keydown="${this.keyDown}" @input="${e=>{this.change(`input`,this.kind,e.target.value),this.show({query:e.target.value})}}"></span>${n?g`<button type="button" class="revision-expand" aria-label="${`Show ${this.kind} suggestions`}" aria-expanded="${this._open}" ?disabled="${this.disabled}" @mousedown="${e=>e.preventDefault()}" @click="${()=>{this._open?this.close():(this.focusName(),this.show())}}">${$t}</button>`:y}<div class="revision-menu" id="revisions" popover="auto" role="listbox" aria-label="${`${t} suggestions`}" @beforetoggle="${e=>{this._open=e.newState===`open`,delete e.target.dataset.positioned,this._open||(this._active=-1)}}"><div class="revision-options">${this.sections(e).map(({header:e,index:t,items:n})=>e?g`<button type="button" role="option" class="revision-group" id="${`revision-${t}`}" aria-selected="false" aria-expanded="${e.expanded}" ?data-active="${t===this._active}" tabindex="-1" @mousedown="${e=>e.preventDefault()}" @click="${()=>{this._active=-1,this.toggleGroup(e.prefix)}}">${$t}<span>${e.prefix}/</span><span class="count" aria-label="${`${e.count} branches`}">${e.count}</span></button>`:g`<div class="revision-section" role="none">${n.map(({entry:e,index:t})=>g`<button type="button" role="option" id="${`revision-${t}`}" aria-label="${E(e.label===void 0?void 0:e.name)}" aria-selected="${e.name===this.name}" ?data-active="${t===this._active}" tabindex="-1" @mousedown="${e=>e.preventDefault()}" @click="${()=>this.pick(e.name)}"><span data-tooltip-truncated data-tooltip="${e.name}">${e.label??e.name}</span></button>`)}</div>`)}</div>${e.length>0?y:g`<p class="revision-empty">${this._query?`No matching suggestions. Enter a revision name to browse.`:`No ${this.kind} suggestions available.`}</p>`}</div></form>`}};customElements.get(`revision-select`)||customElements.define(`revision-select`,on);var sn=(e,t)=>new Date(Date.parse(e)+t*864e5);function cn(e){let t=[];if(!e?.days)return t;for(let n=e.days.length-1;n>=6;n-=7){let r=0;for(let t=n-6;t<=n;t++)r+=e.days[t];t.push({from:sn(e.start,n-6),to:sn(e.start,n),total:r})}return t.toReversed()}function ln(e){let t=[];if(!e?.days)return t;let n=Date.parse(e.start),r=null;e.days.forEach((e,i)=>{let a=new Date(n+i*864e5);a.getUTCDate()===1&&(r={from:a,to:a,total:0},t.push(r)),r&&(r.total+=e,r.to=a)});let i=t.at(-1);return i&&new Date(i.to.getTime()+864e5).getUTCDate()!==1&&t.pop(),t}var un=[[10,55e7],[20,405e6],[50,285e6],[100,225e6],[200,165e6],[500,95e6],[1e3,5e7],[2e3,2e7],[5e3,4e6],[1e4,85e4],[2e4,155e3],[5e4,18e3],[1e5,2e3],[1/0,0]];function dn(e){let t=cn(e).slice(-6);if(t.length===0)return null;let n=Math.max(...t.map(e=>e.total));return un.find(([,e])=>n>=e)[0]}var fn=e=>e<=200?`is-solid`:e<=5e3?`is-top`:e<=2e4?`is-mid`:e<=1e5?`is-low`:`is-unpopular`,pn=e=>e>2e4,mn=/(?![\t\n\r])\p{Cc}|[\u202A-\u202E\u2066-\u2069]/gu,hn=/\P{ASCII}/u;function gn(e){if(typeof e!=`string`)return{kind:`binary`,controls:null};let t=new Map;for(let[n]of e.matchAll(mn))t.set(n.codePointAt(0),(t.get(n.codePointAt(0))??0)+1);let n=e.search(hn);if(n!==-1)for(let[r,i]of Nn(e,n)??[])t.set(r,i);return{kind:n===-1?`ascii`:`utf8`,controls:t.size>0?t:null}}var _n=/(?=\p{Emoji})\p{Extended_Pictographic}(?:\u{FE0F}|[\u{1F3FB}-\u{1F3FF}])?$/u,vn=/^(?=\p{Emoji})\p{Extended_Pictographic}/u,yn=/(?=\p{Emoji})\p{Extended_Pictographic}$/u,bn=/^[\d#*]$/u,xn=e=>e>=917536&&e<=917631,Sn=new Set([`gbeng`,`gbsct`,`gbwls`]),Cn=(e,t,n)=>n-t===10?String.fromCodePoint(...Array.from({length:5},(n,r)=>e.codePointAt(t+2*r)-917504)):``;function wn(e,t,n,r){if(n===13&&(e[t+1]===`
1
+ import{a as e,e as t,m as n}from"./chunk-JKGQ3O7O.js";import{a as r,b as i,c as a}from"./chunk-IYPY47MC.js";import{a as o,b as s,c}from"./chunk-OKRLLE5I.js";import{D as l,E as u,F as d}from"./chunk-SXV2T5C4.js";import{e as f,f as p}from"./chunk-WFYLMF6Z.js";import{a as m,b as h,c as ee}from"./chunk-C4Z6ZBXV.js";import{b as te,c as g,d as _,f as v,g as y,j as ne}from"./chunk-2XUEZHIP.js";function b(e){let t=null,n=0,r={module:null,load(){return t??=(n?import(`${e}?retry=${n}`):import(e)).then(e=>r.module=e,e=>{throw t=null,n++,e}),t}};return r}var re=b(`./dialogs.js`),x=e=>async(...t)=>(await re.load())[e](...t),ie=x(`openAdvisoryDetailsDialog`),ae=x(`openCommentDialog`),oe=x(`openDeleteBundleDialog`),se=x(`openDeleteReportDialog`),ce=x(`openDetachBundleDialog`),le=x(`openDetachReportDialog`),ue=x(`openDiscardReviewDialog`),de=x(`openDownloadBundleDialog`),fe=x(`openExportConfirmDialog`),pe=x(`openExportViewDialog`),me=x(`openFindingHistoryDialog`),he=x(`openFindingSourceDialog`),ge=x(`openFixLinkDialog`),_e=x(`openImportConflictDialog`),ve=x(`openLeaveWorkspaceDialog`),ye=x(`openLocalContentImportDialog`),be=x(`openLocalTriageImportDialog`),xe=x(`openManagedCommentsDialog`),Se=x(`openManagedIssueDialog`),Ce=x(`openManagedShareDialog`),we=x(`openNewWorkspaceDialog`),Te=x(`openNpmCompareAdvisoriesDialog`),Ee=x(`openObjstoreRecoveryDialog`),De=x(`openPasskeySetupDialog`),Oe=x(`openPersistenceDegradedDialog`),ke=x(`openReportCompareDialog`),Ae=x(`openRepositoryItemDialog`),je=x(`openRevalidationConflictsDialog`),Me=x(`openStoragePersistDialog`),Ne=x(`openSyncDownloadDialog`),Pe=x(`openSyncSuggestDialog`),Fe=x(`openSyncUploadDialog`),Ie=x(`openTriageComparisonDialog`),Le=x(`openTriageExportDialog`),Re=x(`openWhyDialog`),ze=x(`openWorkspaceExportDialog`),Be=x(`openWorkspaceShareLinkDialog`),Ve=x(`openWorkspaceUnlockBundleDialog`),He=x(`openWorkspaceUnlockLinkDialog`),S=[`admin`,`manage`,`triage`,`view`,`none`];function Ue(e){return typeof e==`string`&&S.includes(e)}function We(e,t){let n=S.indexOf(e);return n!==-1&&n<=S.indexOf(t)}function Ge(e){return e!=null&&!e.publicShare&&We(e.role,`view`)}function Ke(e){if(!e?.startsWith(`#public=`))return null;let t=/^#public=([A-Za-z0-9_-]+)\.([A-Za-z0-9_-]{43})$/u.exec(e);return t?{id:t[1],token:t[2]}:{id:``,token:``}}var qe=globalThis.location?.hash,Je=Ke(qe);globalThis.addEventListener?.(`hashchange`,()=>{let e=globalThis.location?.hash;e?.startsWith(`#public=`)&&e!==qe&&globalThis.location.reload()});function Ye(){return Je}function Xe(e=Je){return`/api/shares/${encodeURIComponent(e.id)}/workspace`}function Ze(e,t=Je){return t?`${e.replace(/#.*$/su,``)}#public=${t.id}.${t.token}`:e}var Qe={default:{className:`brand-deepview`,mark:`<path class="fg" d="M7.843 6.719c-1.605 0-2.926 1.292-3.477 1.947.466.58 1.872 2.024 3.496 2.024s2.907-1.292 3.486-2.005c-.627-.703-1.88-1.966-3.505-1.966m.019 3.857c-1.51 0-2.802-1.263-3.353-1.9.55-.617 1.814-1.852 3.334-1.852 1.51 0 2.698 1.12 3.335 1.852-.533.618-1.787 1.9-3.316 1.9m-.019-3.42c-.826 0-1.577.694-1.577 1.596 0 .789.599 1.577 1.577 1.577.893 0 1.587-.684 1.587-1.577-.01-.779-.627-1.596-1.587-1.596m0 3.069a1.476 1.476 0 0 1-1.482-1.473c0-.722.599-1.491 1.482-1.491.846 0 1.482.693 1.492 1.491 0 .808-.618 1.473-1.492 1.473m.01-2.727c-.637 0-1.264.532-1.264 1.244 0 .627.475 1.235 1.245 1.245.684 0 1.254-.522 1.254-1.244 0-.58-.475-1.236-1.235-1.245m-.02 2.403a1.167 1.167 0 0 1-1.149-1.159c0-.532.456-1.14 1.169-1.149.56 0 1.149.427 1.159 1.15 0 .636-.485 1.158-1.179 1.158m-.769-1.833c-.19.238-.275.494-.237.864l.74.057zm1.026-.294c-.295-.057-.665 0-.912.228l.323.607zm.133.047-.38.56.988.114c-.057-.275-.323-.579-.608-.674m-.124.741.456.912c.21-.209.352-.484.314-.836zm-1.225.504a.97.97 0 0 0 .57.617l.399-.551zm.713.664c.313.076.636.01.845-.161l-.295-.618zm-.637 1.55c0 .028-.028.066-.066.066h-.59c-.028 0-.066-.028-.066-.066s.029-.066.067-.066h.579c.048 0 .076.028.076.066m.712 0c0 .028-.028.066-.066.066h-.437c-.028 0-.066-.028-.066-.066s.028-.066.066-.066h.437c.038 0 .066.028.066.066m.666 0c0 .028-.029.066-.067.066h-.37c-.029 0-.067-.028-.067-.066s.029-.066.067-.066h.37c.038 0 .067.028.067.066m-1.672.351c0 .029-.029.067-.067.067h-.295c-.028 0-.066-.028-.066-.066 0-.029.029-.067.067-.067h.294c.038 0 .066.028.066.066m.694 0c0 .029-.028.067-.066.067h-.409c-.028 0-.066-.028-.066-.066 0-.029.028-.067.066-.067h.399c.038 0 .076.028.076.066m.732 0c0 .029-.029.067-.067.067h-.465c-.029 0-.067-.028-.067-.066 0-.029.029-.067.067-.067h.465c.038 0 .067.028.067.066m-1.093.371a.065.065 0 0 1-.067.066h-.627c-.028 0-.075-.028-.066-.066 0-.028.029-.066.067-.066h.627c.038 0 .066.028.066.066m.684 0a.065.065 0 0 1-.066.066h-.39c-.028 0-.076-.028-.066-.066 0-.028.028-.066.066-.066h.39c.038 0 .066.028.066.066M5.088 6.263c-.019-.105-.114-.19-.237-.19s-.257.104-.257.237.105.238.247.238c.105 0 .218-.076.238-.18h.864v.826l.095-.048V6.31c0-.028-.019-.057-.048-.057h-.902zm-.237.19c-.076 0-.143-.066-.143-.143s.066-.142.143-.142.142.066.142.143c.01.076-.066.142-.143.142m2.89-.323H6.38l.418-.475v-.332a.255.255 0 0 0 .218-.248c0-.123-.114-.256-.256-.256s-.266.114-.266.257c0 .123.095.228.209.247v.284l-.456.523v.893l.095-.047v-.742h1.396c.029 0 .067-.009.067-.057 0-.028-.019-.047-.067-.047m-1.13-1.054c0-.076.066-.152.152-.152s.152.066.152.151c0 .076-.066.152-.152.152s-.152-.066-.152-.152m-.836 5.264h-.874c-.019-.105-.114-.219-.247-.219s-.256.105-.256.257c0 .132.114.275.266.275.104 0 .218-.076.237-.19h.827v.608l-.257.285a.3.3 0 0 0-.095-.019c-.133 0-.256.105-.256.228 0 .133.104.238.237.238.124 0 .247-.105.247-.238a.23.23 0 0 0-.057-.152l.285-.304v-.712c0-.029-.019-.058-.057-.058m-1.121.219a.16.16 0 0 1-.152-.161c0-.077.066-.162.152-.162s.152.066.152.152-.066.171-.152.171m.713 1.14c-.076 0-.143-.066-.143-.143s.066-.133.143-.133.142.067.142.143c0 .066-.066.133-.143.133m5.472-1.377a.24.24 0 0 0-.237.208h-1.13c-.029 0-.038.02-.038.048v.712l-.323.39h-.029a.245.245 0 0 0-.247.247c0 .133.114.256.247.256s.247-.113.247-.256a.26.26 0 0 0-.123-.219l.313-.38v-.674h1.083c.019.105.114.2.238.2.133 0 .266-.105.266-.257 0-.133-.105-.276-.266-.276m-1.758 1.767a.15.15 0 0 1-.143-.152c0-.075.067-.142.143-.142s.152.066.152.143a.15.15 0 0 1-.152.151m1.758-1.33a.15.15 0 0 1-.143-.152.147.147 0 0 1 .294.001.15.15 0 0 1-.152.151M8.917 5.55h-.399a.075.075 0 0 1-.076-.076c0-.028.029-.066.067-.066h.418c.028 0 .066.028.066.066s-.038.076-.076.076m.742 0H9.22c-.038 0-.067-.028-.067-.076 0-.028.029-.066.067-.066h.437c.038 0 .066.028.066.066s-.028.076-.066.076m.883 0h-.598c-.029 0-.067-.028-.067-.076 0-.028.029-.066.067-.066h.598c.028 0 .066.028.066.066s-.028.076-.066.076m-1.282.4h-.741c-.038 0-.076-.029-.076-.067s.028-.076.066-.076h.75c.039 0 .067.038.067.076 0 .029-.028.067-.066.067m.797 0h-.503c-.038 0-.076-.029-.076-.067s.028-.066.066-.066h.513c.038 0 .067.028.067.066 0 .029-.029.067-.067.067m.476 0h-.19c-.039 0-.067-.029-.067-.067s.028-.066.066-.066h.2c.028 0 .066.028.066.066 0 .029-.028.067-.075.067m-1.682.398h-.332c-.039 0-.077-.028-.077-.066s.029-.066.067-.066h.342c.038 0 .076.028.076.066s-.028.066-.076.066m.789 0h-.494c-.038 0-.067-.028-.067-.066s.029-.066.067-.066h.494c.038 0 .066.028.066.066s-.028.066-.066.066m.893 0h-.599c-.038 0-.076-.028-.076-.066s.028-.066.066-.066h.618c.028 0 .066.028.066.066s-.028.066-.076.066m.418.305a.69.69 0 0 0-.674.712c0 .086.019.18.048.257l.085.066c-.028-.085-.057-.171-.057-.304 0-.285.228-.646.598-.646.295 0 .599.228.599.636a.58.58 0 0 1-.599.59.8.8 0 0 1-.237-.048l.123.114a.4.4 0 0 0 .114.01c.39 0 .684-.276.684-.666 0-.313-.266-.712-.684-.722m.353.552-.019-.01-.161.19-.143-.01-.057-.047-.019-.133.19-.2a.28.28 0 0 0-.361.077c-.076.095-.076.209-.038.351l-.247.304.171.152.266-.266c.142.038.285.019.38-.095a.31.31 0 0 0 .038-.313"/>`},"claude-security":{className:`brand-claude`,mark:`<path class="fg" d="${f}"/>`},"codex-security":{className:`brand-codex`,mark:`<path class="fg" d="${p}"/>`},deepsec:{className:`brand-vercel`,mark:`<path class="fg" d="m8 5.97 3.5 6.062h-7Z"/>`},"markdown-generic":{className:`brand-markdown`,mark:`<path class="fg" d="M4 7h1.2l1.2 1.5L7.6 7h1.2v4H7.6V8.8L6.4 10 5.2 8.8V11H4zm5.6 0h1.2v2.3H12l-1.8 1.8-1.8-1.8h1.2Z"/>`},piolium:{className:`brand-piolium`,mark:`<path class="fg" d="M8 6.4 5.6 7.2v2.3c0 1.6 1 2.7 2.4 3.3 1.4-.6 2.4-1.7 2.4-3.3V7.2Z"/>`}},$e={default:[`#2563eb`,`#fff`],"claude-security":[`#d97757`,`#fff`],"codex-security":[`#fff`,`#000`],deepsec:[`#000`,`#fff`],piolium:[`#fbb829`,`#1c1b19`],"markdown-generic":[`#374151`,`#fff`]},et=Object.fromEntries(Object.entries(Qe).map(([e,{className:t,mark:n}])=>{let[r,i]=$e[e];return[e,`<svg class="file-icon ${t}" viewBox="0 0 16 16" width="14" height="14" aria-hidden="true"><path class="bg" fill="${r}"${e===`codex-security`||e===`deepsec`?` stroke="${i}" stroke-width=".5"`:``} d="M3 2h6l4 4v8H3z"/><path fill="rgba(0,0,0,.18)" d="M9 2v4h4Z"/><g fill="${i}">${n}</g></svg>`]})),tt=Object.fromEntries(Object.entries(Qe).map(([e,{className:t,mark:n}])=>[e,`<span class="report-logo ${t}" aria-hidden="true"><svg viewBox="${e==="default"?`3.5 4 9 9`:`4 5 8 8`}" width="14" height="14">${n}</svg></span>`]));function nt(e){let t=e.toLowerCase();if(t.endsWith(`.generic-md`)){let t=e.slice(0,-11);try{return decodeURIComponent(t)}catch{return t}}return t.endsWith(`.codex`)?e.slice(0,-6).replaceAll(`__`,`/`):e}var rt=h(class extends ee{constructor(e){if(super(e),e.type!==m.PROPERTY&&e.type!==m.ATTRIBUTE&&e.type!==m.BOOLEAN_ATTRIBUTE)throw Error("The `live` directive is not allowed on child or event bindings");if(!o(e))throw Error("`live` bindings can only contain a single expression")}render(e){return e}update(e,[t]){if(t===v||t===y)return t;let n=e.element,r=e.name;if(e.type===m.PROPERTY){if(t===n[r])return v}else if(e.type===m.BOOLEAN_ATTRIBUTE){if(!!t===n.hasAttribute(r))return v}else if(e.type===m.ATTRIBUTE&&n.getAttribute(r)===t+``)return v;return s(e),t}});function it(e,t){let n=d(e);if(n===null)return null;let r=t.replace(/\.(?:md|markdown)$/iu,``),i=new Set;return n.map(({displayName:e,data:t})=>{let n=`${r}: ${e}`.replaceAll(`%`,`%25`).replaceAll(/[\\/\p{Cc}]/gu,`_`)+`.generic-md`;if(i.has(n))throw Error(`Markdown (generic): products produce the same report name: ${n}`);return i.add(n),{name:n,content:JSON.stringify(t)}})}var at=b(`./scan.js`),ot=()=>at.load(),st=_`<path d="M8 1C4.5 1 4 1.5 4 3v1h4v1H3C1.5 5 1 6 1 8s.5 3 2 3h1V9c0-1.5 1-2 2.5-2H10c1.5 0 2-.5 2-2V3c0-1.5-.5-2-4-2Z" fill="#3776ab"/><path d="M8 1C4.5 1 4 1.5 4 3v1h4v1H3C1.5 5 1 6 1 8s.5 3 2 3h1V9c0-1.5 1-2 2.5-2H10c1.5 0 2-.5 2-2V3c0-1.5-.5-2-4-2Z" fill="#ffd43b" transform="rotate(180 8 8)"/><circle cx="6" cy="2.8" r=".65" fill="#fff"/><circle cx="10" cy="13.2" r=".65" fill="#fff"/>`,ct=_`<path d="M6.42 2.11 6.81 .49 9.19 .49 9.58 2.11 11.05 2.72 12.47 1.85 14.15 3.53 13.28 4.95 13.89 6.42 15.51 6.81 15.51 9.19 13.89 9.58 13.28 11.05 14.15 12.47 12.47 14.15 11.05 13.28 9.58 13.89 9.19 15.51 6.81 15.51 6.42 13.89 4.95 13.28 3.53 14.15 1.85 12.47 2.72 11.05 2.11 9.58 .49 9.19 .49 6.81 2.11 6.42 2.72 4.95 1.85 3.53 3.53 1.85 4.95 2.72ZM8 3.7a4.3 4.3 0 1 0 0 8.6 4.3 4.3 0 1 0 0 -8.6Z" fill="#c97d5d" fill-rule="evenodd"/><text x="8" y="10.8" text-anchor="middle" fill="currentColor" font-family="serif" font-size="8" font-weight="700">R</text>`,lt=_`<g fill="#8892bf" transform="translate(0 .5) scale(.5)"><path d="M28 10a4 4 0 0 0-4-4h-6v6a6 6 0 0 1-6 6h-2v2h2v6h4v-6h8v6h4V16h2v-4a2 2 0 0 0-2-2"/><path d="M12 4H8v2a6 6 0 0 0-6 6v6a2 2 0 0 0 2 2v2H2.5a.5.5 0 0 0-.5.5v3a.5.5 0 0 0 .5.5H6a2 2 0 0 0 2-2v-8h4a4 4 0 0 0 4-4V8a4 4 0 0 0-4-4M6 14H4v-2h2Z"/></g>`,ut=/^(?:(?:un)?licen[cs]e|copying)(?:-[^/.]*)?(?:\.(?:mit|bsd|isc|apache|[al]?gpl|mpl|epl|eupl|cddl|cc0|zlib|psf|boost|bsl|artistic|unicode|ofl|wtfpl|lesser|lib)(?:v?\d[^/.]*|-[^/.]*)?)?(?:\.\d[^/.]*)*(?:\.(?:md|markdown|txt|text|rst|adoc|asciidoc|org))?$/iu,dt=new Set([`resource:base64`,`directory`,`binary`]),ft=e=>dt.has(e);function pt(e,t,n){return n!==null&&n!==`markdown`||ft(t)?!1:ut.test(e.slice(e.lastIndexOf(`/`)+1))}function mt(e,t){return(e?.kind===`stasis`?e.bundle?.formats?.get(t):void 0)??(e?.npmBinaries?.has(t)?`binary`:void 0)}var ht=e=>{let t=e.slice(e.lastIndexOf(`/`)+1),n=t.lastIndexOf(`.`);return n>0?t.slice(n+1).toLowerCase():``},gt=new Set([`node`,`so`,`dylib`,`dll`]);function _t(t,n){let r=e(t,n);if(r===null&&/\.map$/iu.test(t))return`map`;if(pt(t,n,r))return`license`;if([`javascript`,`jsx`].includes(r))return`js`;if([`typescript`,`tsx`].includes(r))return`ts`;let i=ht(t);return[`c`,`cpp`,`objectivec`].includes(r)&&i===`h`?`header`:[`solidity`,`rust`,`php`,`python`,`json`,`markdown`,`css`,`yaml`,`markup`,`java`,`ruby`,`c`,`cpp`].includes(r)?r:r===`bash`?`shell`:r===`objectivec`?`objc`:i===`wasm`?`wasm`:gt.has(i)?`native`:`generic`}var vt=_`<path d="M1.5 3.4 5.3 2l5.4 1.6 3.8-1.4v10.4l-3.8 1.4-5.4-1.6-3.8 1.4Z" fill="#3fa59a" fill-opacity=".22" stroke="#3fa59a" stroke-width="1.1" stroke-linejoin="round"/><path d="M5.3 2v10.4m5.4-8.8V14" stroke="#3fa59a" stroke-width="1.1"/>`,yt=_`<circle cx="8" cy="2.6" r="1" fill="currentColor"/><path d="M8 3.6v9.9m-3.5 0h7M3 4.6h10M3 4.6 1.2 9.2M3 4.6l1.8 4.6M13 4.6l-1.8 4.6M13 4.6l1.8 4.6" fill="none" stroke="currentColor" stroke-width="1.1" stroke-linecap="round" stroke-linejoin="round"/><path d="M1 9.2h4a2 2 0 0 1-4 0Zm10 0h4a2 2 0 0 1-4 0Z" fill="currentColor"/>`,bt=_`<rect x="1" y="1" width="14" height="14" rx="2" fill="#663399"/><text x="14" y="13.2" text-anchor="end" fill="#fff" font-family="sans-serif" font-size="6.4" font-weight="700" letter-spacing="-.2">CSS</text>`,xt=_`<path d="M1 11.5v-7h2l1.7 2.3 1.7-2.3h2v7h-2V7.8L4.7 10 3 7.8v3.7Zm10.2-7h2V8H15l-2.8 3.5L9.4 8h1.8Z" fill="var(--green, #3fb950)"/>`,C=(e,t,n=`#fff`)=>t.length>2?_`<rect x="1" y="1" width="14" height="14" rx="2" fill=${e}/><text x="8" y="10.6" text-anchor="middle" fill=${n} font-family="sans-serif" font-size="6.2" font-weight="700" letter-spacing="-.2">${t}</text>`:_`<rect x="1" y="1" width="14" height="14" rx="2" fill=${e}/><text x="8" y="11.5" text-anchor="middle" fill=${n} font-family="sans-serif" font-size="8" font-weight="700">${t}</text>`,St={__proto__:null,js:C(`#e6c84f`,`JS`,`#202020`),ts:C(`#3178c6`,`TS`),solidity:_`<path d="m8 1 4 6-4 2-4-2Z" fill="currentColor"/><path d="m4 8 4 2 4-2-4 7Z" fill="currentColor" opacity=".65"/>`,rust:ct,php:lt,python:st,map:vt,markdown:xt,license:yt,css:bt,json:_`<path d="M6 2.5C4.6 2.5 4.4 3.3 4.4 4.6v1.6C4.4 7.4 3.8 8 2.6 8c1.2 0 1.8.6 1.8 1.8v1.6c0 1.3.2 2.1 1.6 2.1M10 2.5c1.4 0 1.6.8 1.6 2.1v1.6c0 1.2.6 1.8 1.8 1.8-1.2 0-1.8.6-1.8 1.8v1.6c0 1.3-.2 2.1-1.6 2.1" fill="none" stroke="light-dark(#a26e12, #f2b440)" stroke-width="1.4" stroke-linecap="round" stroke-linejoin="round"/>`,yaml:C(`#cb171e`,`YML`),shell:_`<rect x="1.5" y="2.5" width="13" height="11" rx="1.5" fill="none" stroke="currentColor" stroke-width="1.1"/><path d="m4.2 6 2 2-2 2m3.3 0h4.2" fill="none" stroke="currentColor" stroke-width="1.2" stroke-linecap="round" stroke-linejoin="round"/>`,markup:_`<path d="M4.8 4.5 1.5 8l3.3 3.5m6.4-7L14.5 8l-3.3 3.5M9.3 3 6.7 13" fill="none" stroke="#e34c26" stroke-width="1.4" stroke-linecap="round" stroke-linejoin="round"/>`,wasm:C(`#654ff0`,`WA`),native:_`<rect x="4" y="4" width="8" height="8" rx="1" fill="none" stroke="currentColor" stroke-width="1.1"/><rect x="6.4" y="6.4" width="3.2" height="3.2" fill="currentColor"/><path d="M6 1.5V4m4-2.5V4M6 12v2.5m4-2.5v2.5M1.5 6H4m-2.5 4H4M12 6h2.5M12 10h2.5" stroke="currentColor" stroke-width="1.1" stroke-linecap="round"/>`,java:_`<path d="M5.4 5.8c-.9-1 .9-1.7 0-3M8.4 5.8c-.9-1 .9-1.7 0-3" fill="none" stroke="#e76f00" stroke-width="1.1" stroke-linecap="round"/><path d="M2.5 7h9v3.3A3.7 3.7 0 0 1 7.8 14H6.2a3.7 3.7 0 0 1-3.7-3.7Z" fill="#5382a1"/><path d="M11.5 8.2h.9a1.6 1.6 0 0 1 0 3.2h-1.1" fill="none" stroke="#5382a1" stroke-width="1.1"/>`,objc:C(`#438eff`,`OC`),c:C(`#3949ab`,`C`),cpp:C(`#00599c`,`C++`),header:C(`#607d8b`,`H`),ruby:_`<path d="M4.5 2.5h7L14.5 6 8 14 1.5 6Z" fill="#cc342d"/><path d="M1.5 6h13M4.5 2.5 6 6l2 8 2-8 1.5-3.5M6 6l2-3.5L10 6" fill="none" stroke="#fff" stroke-opacity=".55" stroke-width=".7" stroke-linejoin="round"/>`},Ct=_`<path d="M4 1.5h5l3 3v10H4Zm5 0v3h3M6 8h4M6 10.5h4" fill="none" stroke="currentColor" stroke-width="1.2" stroke-linejoin="round"/>`;function wt(e,t){let n=_t(e,t);return g`<svg class="source-file-icon" data-file-type="${n}" width="16" height="16" viewBox="0 0 16 16" style="${c({flex:`none`})}" aria-hidden="true">${St[n]??Ct}</svg>`}var Tt=g`<svg width="16" height="16" viewBox="0 0 16 16" fill="none" stroke="currentColor" stroke-width="1.2" style="${c({flex:`none`})}" aria-hidden="true"><path d="M1.5 4V2.5h5L8 4h6.5v9h-13Z" stroke-linejoin="round"/></svg>`,Et=g`<svg class="bundle-code-tree-npm" width="12" height="12" viewBox="0 0 16 16" fill="currentColor" aria-hidden="true"><path fill-rule="evenodd" d="M1 1h14v14H1Zm3 3v8h4V6h2v6h2V4Z"/></svg>`,Dt=g`<svg class="bundle-code-tree-soldeer" width="16" height="16" viewBox="0 0 16 16" aria-hidden="true"><path d="m8 1 6 3.5v7L8 15l-6-3.5v-7Z" fill="none" stroke="currentColor" stroke-width="1"/><path d="m8 3 2.5 4L8 8.5 5.5 7Zm-2.5 5L8 9.5 10.5 8 8 13Z" fill="currentColor"/></svg>`,Ot=g`<svg class="bundle-code-tree-composer" width="12" height="12" viewBox="0 0 16 16" aria-hidden="true"><path d="M8 1 15 4.5v7L8 15l-7-3.5v-7Z" fill="#8892bf"/><path d="m1 4.5 7 3.5 7-3.5M8 8v7M4.5 2.75l7 3.5" fill="none" stroke="var(--surface, #fff)" stroke-width=".9"/></svg>`,kt=g`<svg class="bundle-code-tree-cargo" width="12" height="12" viewBox="9.25 6.14 14 14" aria-hidden="true"><path d="m16.264 11.547 6.2-2.446v8.16l-6.2 2.485Zm0-.019-6.2-2.481v8.123l6.2 2.522Z" fill="#e5ac3d" stroke="#73561f" stroke-miterlimit="10" stroke-width=".05430921534373718px"/><path d="m16.277 11.508 6.169-2.435-6.2-2.531-6.2 2.467Z" fill="#e3b04e" stroke="#73561f" stroke-miterlimit="10" stroke-width=".05430921534373718px"/><path d="m12.82 10.149 6.196-2.467" fill="none" stroke="#73561f" stroke-miterlimit="10" stroke-width=".05430921534373718px"/><path d="m18.301 7.395-6.24 2.484 1.482.593 6.196-2.466z" fill="#fff" stroke="#73561f" stroke-miterlimit="10" stroke-width=".04741218643894885px" opacity=".3"/><path d="m13.562 10.47-1.453-.565v1.645l.201-.136.18.285.104.04.138-.121.137.228.129.05.189-.166.238.332.137.053zm-1.423 7.576 1.461.545-.023-1.645-.2.139-.184-.282-.104-.039-.136.123-.14-.226-.131-.049-.186.169-.243-.329-.137-.051z" fill="#fff" stroke="#73561f" stroke-miterlimit="10" stroke-width=".06661495224335688px" opacity=".3"/><path d="m21.426 13.49-.172-.039V13.4l.148-.208a.1.1 0 0 0 .018-.065.035.035 0 0 0-.037-.03l-.189.006-.015-.045.118-.222a.07.07 0 0 0 .007-.063.04.04 0 0 0-.045-.018l-.2.051-.024-.037.084-.229a.06.06 0 0 0 0-.058.04.04 0 0 0-.051-.006l-.2.094-.032-.027.047-.227a.05.05 0 0 0-.016-.052.05.05 0 0 0-.056.007l-.2.133-.039-.017.007-.215a.04.04 0 0 0-.026-.043.07.07 0 0 0-.058.02l-.184.166-.045-.006-.033-.2a.036.036 0 0 0-.036-.032.08.08 0 0 0-.057.031l-.164.194-.049.005-.071-.168a.036.036 0 0 0-.044-.021.1.1 0 0 0-.055.042l-.138.214-.05.016-.107-.135a.04.04 0 0 0-.05-.008.1.1 0 0 0-.05.051l-.107.226-.05.026-.138-.1a.05.05 0 0 0-.055 0 .1.1 0 0 0-.044.058l-.071.228-.049.036-.164-.054a.06.06 0 0 0-.057.017.1.1 0 0 0-.036.063l-.033.223-.045.044-.184-.01a.08.08 0 0 0-.058.029.1.1 0 0 0-.026.065l.007.209-.039.05-.2.035a.1.1 0 0 0-.056.04.1.1 0 0 0-.016.065l.046.187-.032.054-.2.079a.1.1 0 0 0-.051.049.07.07 0 0 0 0 .062l.084.157-.024.057-.2.119a.1.1 0 0 0-.045.057.06.06 0 0 0 .007.057l.118.122-.015.058-.189.155a.1.1 0 0 0-.037.062.045.045 0 0 0 .018.05l.148.082v.055l-.172.185a.1.1 0 0 0-.028.065.04.04 0 0 0 .028.041l.172.039v.051l-.148.208a.1.1 0 0 0-.018.065.035.035 0 0 0 .037.03l.189-.006.015.045-.118.222a.07.07 0 0 0-.007.063.04.04 0 0 0 .045.018l.2-.051.024.037-.084.229a.06.06 0 0 0 0 .058.04.04 0 0 0 .051.006l.2-.094.032.027-.046.227a.05.05 0 0 0 .016.051.05.05 0 0 0 .056-.007l.2-.133.039.017-.007.215a.04.04 0 0 0 .026.043.07.07 0 0 0 .058-.02l.184-.166.045.006.033.2a.035.035 0 0 0 .036.032.08.08 0 0 0 .057-.031l.164-.194.049-.005.071.168a.036.036 0 0 0 .044.02.1.1 0 0 0 .055-.042l.138-.214.05-.016.107.135a.04.04 0 0 0 .05.008.1.1 0 0 0 .05-.051l.107-.226.05-.027.138.1a.05.05 0 0 0 .055 0 .1.1 0 0 0 .044-.058l.071-.228.049-.036.164.054a.06.06 0 0 0 .057-.017.1.1 0 0 0 .036-.063l.033-.223.045-.044.184.01a.08.08 0 0 0 .058-.029.1.1 0 0 0 .026-.065l-.007-.209.039-.05.2-.035a.1.1 0 0 0 .056-.04.1.1 0 0 0 .016-.065l-.046-.187.017-.053.2-.079a.1.1 0 0 0 .051-.049.07.07 0 0 0 0-.062l-.084-.157.024-.057.2-.119a.1.1 0 0 0 .045-.057.06.06 0 0 0-.007-.057l-.118-.122.015-.058.189-.155a.1.1 0 0 0 .037-.062.045.045 0 0 0-.018-.05l-.148-.082v-.055l.172-.185a.1.1 0 0 0 .028-.065.04.04 0 0 0-.014-.039m-1.153 1.988c-.066.013-.108-.037-.094-.112a.21.21 0 0 1 .145-.16c.066-.013.108.037.094.112a.21.21 0 0 1-.145.16m-.059-.39a.19.19 0 0 0-.132.146l-.061.325a2.3 2.3 0 0 1-.619.4 1.4 1.4 0 0 1-.632.123l-.061-.273c-.013-.057-.072-.072-.132-.033l-.252.164a1 1 0 0 1-.13-.106l1.226-.521q.022-.007.023-.026v-.455c0-.013-.009-.012-.023-.006l-.359.152v-.288l.388-.165a.16.16 0 0 1 .239.115c.015.057.049.249.072.3s.117.172.217.13l.611-.26.022-.012a3 3 0 0 1-.139.23Zm-1.7 1.13c-.066.043-.131.026-.145-.037a.2.2 0 0 1 .094-.192c.066-.043.131-.026.145.037a.2.2 0 0 1-.09.192Zm-.465-1.779a.18.18 0 0 1-.062.2c-.062.055-.134.056-.161 0a.18.18 0 0 1 .062-.2c.066-.051.138-.053.165 0Zm-.143.416.263-.234a.16.16 0 0 0 .057-.178l-.054-.105.213-.09v1l-.429.182a1.4 1.4 0 0 1-.057-.407c.001-.052.001-.11.011-.168Zm1.152-.587v-.3l.506-.215c.026-.011.185-.047.185.077 0 .1-.122.192-.222.234l-.47.2Zm1.84-.516v.118l-.154.065a.04.04 0 0 0-.022.036v.074a.31.31 0 0 1-.176.3c-.078.043-.165.036-.176-.01-.046-.253-.123-.278-.245-.327a1 1 0 0 0 .308-.578.3.3 0 0 0-.235-.315.57.57 0 0 0-.322.026l-1.592.677a2.7 2.7 0 0 1 .84-.853l.188.127c.042.029.113 0 .157-.063l.21-.3a.94.94 0 0 1 1.027.33l-.144.4c-.025.069 0 .128.057.13l.277.011q.004.073.004.152Zm-1.591-1.044c.049-.069.126-.1.172-.069s.045.113 0 .183-.126.1-.172.069-.044-.114.005-.184Zm1.427.6a.19.19 0 0 1 .161-.133c.062 0 .089.066.062.142a.19.19 0 0 1-.161.133c-.057-.006-.085-.07-.058-.15Z" opacity=".55"/><path d="M0 16.309h22.926v9.971L45.72 13.139 22.926 0v9.97H0z" fill="#231f20" transform="matrix(0 -.029 .022 .013 10.451 11.138)"/><path d="M0 16.309h22.926v9.971L45.72 13.139 22.926 0v9.97H0z" fill="#231f20" transform="matrix(0 -.029 .022 .013 15.013 12.984)"/></svg>`;function At(e){return e===`composer`?Ot:e===`cargo`?kt:e===`soldeer`?Dt:Et}function jt(e){if(/^https?:\/\//iu.test(e)){try{let t=new URL(e),n=t.pathname.split(`/`).filter(Boolean);if(n.length>=2)return{owner:`${t.host}/${n[0]}`,name:n.slice(1).join(`/`)}}catch{}return{owner:null,name:e}}let t=/^([^\s/:]+)\/(.+)$/u.exec(e);return t?{owner:t[1],name:t[2]}:{owner:null,name:e}}var Mt=e=>e.normalize(`NFKC`).toLocaleLowerCase(),w=(e,t)=>e.localeCompare(t,void 0,{numeric:!0,sensitivity:`base`}),T=Symbol(`other repositories`);function Nt(e,t=``,n=null,{includeSingletonOrganizations:r=!1}={}){let i=e.map(e=>({...e,...e.special?{owner:null,name:e.label}:jt(e.label)})),a=new Map;for(let e of i)e.owner!=null&&a.set(e.owner,(a.get(e.owner)??0)+1);let o=r?1:2,s=[...a].filter(([,e])=>e>=o).toSorted(([e],[t])=>w(e,t)).map(([e,t])=>({value:e,name:e,count:t})),c=e=>(a.get(e.owner)??0)<o,l=i.filter(e=>!e.special&&!e.reset&&c(e)).length;l>0&&s.push({value:T,name:`Other`,count:l});let u=s.some(e=>e.value===n)?n:null,d=Mt(t.trim()).split(/\s+/u).filter(Boolean),f=e=>d.every(t=>Mt(e.label).includes(t)),p=i.filter(e=>e.reset||e.special&&f(e)),m=i.filter(e=>!e.reset&&!e.special&&f(e)&&(u==null||(u===T?c(e):e.owner===u))),h=new Map;for(let e of m){let t=(a.get(e.owner)??0)>=o?e.owner:null;h.has(t)||h.set(t,[]),h.get(t).push(e)}return{facets:s,activeFacet:u,pinned:p,sections:[...h].toSorted(([e],[t])=>e==null?1:t==null?-1:w(e,t)).map(([e,t])=>({label:e??(s.some(e=>e.value!==T)?`Other`:null),organization:e!=null,options:t.toSorted((e,t)=>w(e.label,t.label))})),count:m.length+p.filter(e=>!e.reset).length,total:i.filter(e=>!e.reset).length,showFacets:s.length>1}}function Pt(e,t,n){let r=e[0].getBoundingClientRect().top,i=1;for(;i<e.length&&Math.abs(e[i].getBoundingClientRect().top-r)<1;)i++;if(i===1&&(n===`ArrowLeft`||n===`ArrowRight`))return t;let a=t+{ArrowLeft:-1,ArrowRight:1,ArrowUp:-i,ArrowDown:i}[n];if(a<0)return n===`ArrowUp`?-1:t;let o=Math.floor((e.length-1)/i);return a<e.length?a:Math.floor(t/i)<o?e.length-1:t}var Ft=class extends ne{static properties={options:{attribute:!1},value:{attribute:!1},label:{type:String},placeholder:{type:String},disabled:{type:Boolean},_query:{state:!0},_facet:{state:!0},_open:{state:!0}};static styles=te`:host{display:block;min-width:0}:host,.menu{-webkit-app-region:no-drag;app-region:no-drag}*{box-sizing:border-box}button,input{font:inherit;color:var(--text)}button{cursor:default;user-select:none}.trigger{display:flex;align-items:center;gap:.6rem;width:100%;height:2rem;padding:.28rem .5rem;border:1px solid var(--border);border-radius:var(--ui-radius, 5px);background:var(--bg);text-align:left;font-size:.76rem}.trigger:hover:not(:disabled){border-color:var(--muted)}.trigger:disabled{opacity:.5}:host([variant=filter]){display:inline-block;max-width:min(20rem,100%)}:host([variant=filter]) .trigger{height:30px;min-width:8.5rem;background:transparent;font-size:.8rem;font-weight:500;border-radius:var(--ui-radius, 4px)}.name{flex:1;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.option-copy{flex:1;min-width:0;display:grid;gap:.08rem}.secondary{color:var(--muted);font-size:.64rem;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.secondary.is-warning{color:var(--warning);font-weight:600}.avatar{display:grid;place-items:center;flex:0 0 1.5rem;width:1.5rem;height:1.5rem;border-radius:50%;color:var(--accent);background:rgb(from var(--accent) r g b / .13);font-family:sans-serif;font-size:.62rem;font-weight:600}.detail,.count{flex:0 0 auto;color:var(--muted);font-size:.66rem;font-variant-numeric:tabular-nums;white-space:nowrap}svg{flex:0 0 auto;width:.9rem;height:.9rem;color:var(--muted)}.menu{visibility:hidden;position:fixed;inset:auto;margin:0;padding:0;overflow:hidden;border:1px solid var(--border);border-radius:var(--ui-radius, 8px);background:var(--bg);color:var(--text);box-shadow:0 .6rem 1.6rem #0006;user-select:none}.menu:popover-open{display:flex;flex-direction:column}.menu[data-positioned]{visibility:visible}.search{display:flex;align-items:center;gap:.5rem;flex:0 0 auto;padding:.55rem .65rem;border-bottom:1px solid var(--border)}input{flex:1;min-width:0;width:0;padding:.15rem 0;border:0;background:transparent;font-size:.78rem;outline:none}input::placeholder{color:var(--muted)}.search:focus-within{box-shadow:inset 0 -2px var(--accent)}.body{display:flex;min-height:0;flex:1}.facets{width:10.5rem;flex:0 0 auto;padding:.35rem;overflow:auto;overscroll-behavior:none;border-right:1px solid var(--border);background:rgb(from var(--bg) r g b / .25)}.org{display:flex;align-items:center;gap:.4rem;width:100%;padding:.4rem .45rem;border:0;border-radius:var(--ui-radius, 4px);background:transparent;text-align:left;font-size:.7rem}.org[aria-pressed=true]{color:var(--accent);background:rgb(from var(--accent) r g b / .1)}.results{flex:1;min-width:0;overflow:auto;overscroll-behavior:none;padding:.3rem}.group+.group{margin-top:.35rem;padding-top:.35rem;border-top:1px solid var(--border)}.heading{position:sticky;top:-.3rem;z-index:1;display:flex;align-items:center;gap:.4rem;margin:0;padding:.4rem .5rem;color:var(--muted);background:var(--bg);font-size:.68rem;font-weight:600}.heading svg{width:.8rem;height:.8rem}.option{display:flex;align-items:center;gap:.65rem;width:100%;padding:.35rem .5rem;border:0;border-radius:var(--ui-radius, 4px);background:transparent;text-align:left;font-size:.76rem}.option svg{width:.8rem;height:.8rem;opacity:0;color:var(--accent)}.option[aria-selected=true]{color:var(--accent);background:rgb(from var(--accent) r g b / .1)}.option[aria-selected=true] svg{opacity:1}.option:disabled{opacity:.45}.option:hover:not(:disabled),.org:hover{background:rgb(from var(--text) r g b / .05)}.pinned{padding-bottom:.25rem;margin-bottom:.25rem;border-bottom:1px solid var(--border)}.empty{margin:0;padding:1.3rem .7rem;color:var(--muted);font-size:.76rem}button:focus-visible{outline:2px solid var(--accent);outline-offset:-2px}@media(max-width:40rem){.facets{width:8.5rem}}@media(max-width:28rem){.facets{width:7rem}.option{gap:.35rem}}:host-context(body.theme-w95){.trigger,.trigger:hover:not(:disabled){height:23px;padding:0 1px 0 4px;gap:4px;border:0;border-radius:0;background:#fff;box-shadow:var(--w95-sunken);font-size:11px;font-weight:400}.trigger>svg:last-child{width:16px;height:19px;padding:3px 2px;background:var(--w95-face);box-shadow:var(--w95-raised);color:#000}.menu{border:1px solid #000;border-radius:0;box-shadow:none;font-size:11px}.search{border-bottom:0;box-shadow:inset 0 -1px var(--w95-shadow)}.search:focus-within{box-shadow:inset 0 -1px var(--w95-shadow)}:is(.option,.org){border-radius:0;font-size:11px}:is(.option,.org):is(:hover:not(:disabled),[aria-selected=true],[aria-pressed=true]){background:var(--w95-title);color:#fff;.secondary,svg,.detail,.count{color:#fff}}.avatar{border-radius:0}& button:focus-visible{outline:1px dotted #000;outline-offset:-2px}}:host-context(body.theme-w95) *{overscroll-behavior:none}`;constructor(){super(),this.options=[],this.value=null,this.label=`Choose`,this.placeholder=`Choose`,this.disabled=!1,this._query=``,this._facet=null,this._open=!1,this._menuHeight=null,this._onViewport=()=>this._position()}connectedCallback(){super.connectedCallback(),this.dispatchEvent(new CustomEvent(`tooltip-root-connected`,{bubbles:!0,composed:!0})),window.addEventListener(`resize`,this._onViewport),window.addEventListener(`scroll`,this._onViewport,!0),this._scrollRoots=[];for(let e=this.getRootNode();e.host;e=e.host.getRootNode())e.addEventListener(`scroll`,this._onViewport,!0),this._scrollRoots.push(e)}disconnectedCallback(){super.disconnectedCallback(),window.removeEventListener(`resize`,this._onViewport),window.removeEventListener(`scroll`,this._onViewport,!0);for(let e of this._scrollRoots??[])e.removeEventListener(`scroll`,this._onViewport,!0);this._scrollRoots=[]}render(){let e=this.options.find(e=>e.value===this.value),t=this.choices(),n=[...t.pinned,...t.sections.flatMap(e=>e.options)].filter(e=>!e.disabled),r=n.find(e=>e.value===this.value)?.value??n[0]?.value;return g`<button type="button" class="trigger" popovertarget="selector-menu" aria-label="${this.label}" aria-haspopup="dialog" aria-expanded="${this._open}" ?disabled="${this.disabled}">${e?this.optionIcon(e):y}<span class="name" data-tooltip-truncated data-tooltip="${e?.label??y}">${e?.label??this.placeholder}</span>${e?.detail?g`<span class="detail" data-tooltip-truncated data-tooltip="${e.detail}">${e.detail}</span>`:y} <svg viewBox="0 0 16 16" fill="none" stroke="currentColor" stroke-width="1.5" aria-hidden="true"><path d="m4 6 4 4 4-4"/></svg></button><div class="menu" id="selector-menu" popover="auto" role="dialog" aria-label="${this.label}" @beforetoggle="${this._beforeToggle}" @toggle="${this._toggle}" @keydown="${this._keyDown}"><div class="search"><svg viewBox="0 0 16 16" fill="none" stroke="currentColor" stroke-width="1.5" aria-hidden="true"><circle cx="7" cy="7" r="4.5"/><path d="m10.5 10.5 3.5 3.5"/></svg> <input type="search" placeholder="${`${this.searchLabel}\u2026`}" aria-label="${this.searchLabel}" aria-controls="selector-options" .value="${rt(this._query)}" @input="${e=>{this._query=e.target.value}}"> <span class="count" role="status">${t.count}${t.count===t.total?``:` / ${t.total}`}</span></div><div class="body">${t.showFacets?g`<div class="facets" role="group" aria-label="${this.facetLabel}"><button type="button" class="org" aria-pressed="${t.activeFacet==null}" @click="${()=>this._filterFacet(null)}"><span class="name">${this.allFacetsLabel}</span><span class="count">${t.total}</span></button> ${t.facets.map(e=>g`<button type="button" class="org" aria-pressed="${t.activeFacet===e.value}" @click="${()=>this._filterFacet(e.value)}"><span class="name" data-tooltip-truncated data-tooltip="${e.name}">${e.name}</span><span class="count">${e.count}</span></button>`)}</div>`:y}<div class="results" id="selector-options" role="listbox" aria-label="${this.optionsLabel}">${t.pinned.length>0?g`<div class="pinned">${t.pinned.map(e=>this._option(e,!1,r))}</div>`:y} ${t.sections.map((e,t)=>g`<div class="group" role="group" aria-labelledby="${e.label?`selector-group-${t}`:y}">${e.label?g`<h3 class="heading" id="${`selector-group-${t}`}">${e.organization?g`<svg viewBox="0 0 16 16" fill="none" stroke="currentColor" stroke-width="1.2" aria-hidden="true"><path d="M3 14V3h6v11M9 7h4v7M1 14h14M5 6h2M5 9h2M5 12h2"/></svg>`:y}${e.label}</h3>`:y} ${e.options.map(t=>this._option(t,e.organization,r))}</div>`)} ${t.count?y:g`<p class="empty">${this.options.length>0?this.noMatchesLabel:this.emptyLabel}</p>`}</div></div></div>`}get menuWidth(){return 360}optionIcon(e){return e.initials?g`<span class="avatar" aria-hidden="true">${e.initials}</span>`:y}optionTooltip(e){return e.label}_option(e,t,n){let r=e.displayLabel??(t?e.name:e.label),i=this.optionTooltip(e);return g`<button type="button" class="option" role="option" ?data-reset="${e.reset}" ?disabled="${e.disabled}" aria-label="${e.label}" aria-selected="${e.value===this.value}" tabindex="${e.value===n?0:-1}" @click="${()=>this._pick(e.value)}"><svg viewBox="0 0 16 16" fill="none" stroke="currentColor" stroke-width="1.5" aria-hidden="true"><path d="m3 8 3 3 7-7"/></svg>${this.optionIcon(e)}<span class="option-copy"><span class="name" ?data-tooltip-truncated="${r===i}" data-tooltip="${i}">${r}</span>${e.secondary?g`<span class="${e.secondaryWarning?`secondary is-warning`:`secondary`}" ?data-tooltip-truncated="${!e.secondaryWarning}" data-tooltip="${e.secondaryWarning??e.secondary}">${e.secondary}</span>`:y}</span>${e.detail?g`<span class="detail">${e.detail}</span>`:y}</button>`}updated(e){this.disabled&&this._open&&this._close(!1),e.has(`options`)&&(this._menuHeight=null),this._position(),(e.has(`_query`)||e.has(`_facet`))&&(this.renderRoot.querySelector(`.results`).scrollTop=0)}_beforeToggle(e){this._open=e.newState===`open`,delete e.target.dataset.positioned,this._open&&(this._query=``,this._facet=null,this._menuHeight=null)}async _toggle(e){e.newState===`open`&&(await this.updateComplete,this._open&&this.isConnected&&(this._position(),this.renderRoot.querySelector(`input`).focus({preventScroll:!0})))}_position(){let e=this.renderRoot.querySelector(`.menu`);if(!e?.matches(`:popover-open`))return;let t=this.renderRoot.querySelector(`.trigger`).getBoundingClientRect(),n=e.querySelector(`.facets`)!=null,r=Math.min(Math.max(t.width,n?560:this.menuWidth),window.innerWidth-16),i=window.innerHeight-t.bottom-8-4,a=t.top-8-4;e.style.width=`${r}px`,this._menuHeight??=Math.min(480,e.querySelector(`.search`).offsetHeight+Math.max(e.querySelector(`.results`).scrollHeight,e.querySelector(`.facets`)?.scrollHeight??0)+2);let o=this._menuHeight,s=i<o&&a>i;e.style.maxHeight=`${Math.max(0,Math.min(o,s?a:i))}px`,e.style.left=`${Math.max(8,Math.min(t.left,window.innerWidth-r-8))}px`,e.style.top=`${Math.max(8,s?t.top-e.offsetHeight-4:t.bottom+4)}px`,e.dataset.positioned=``}_filterFacet(e){this._facet=e,this.renderRoot.querySelector(`input`).focus({preventScroll:!0})}_keyDown(e){if(e.stopPropagation(),e.key===`Escape`){e.preventDefault(),this._close();return}let t=this.renderRoot.querySelector(`input`),n=this.renderRoot.activeElement,r=[...this.renderRoot.querySelectorAll(`.option:not(:disabled)`)],i=r.indexOf(n);if(n!==t&&i<0)return;if(e.key===`Enter`&&n===t){e.preventDefault(),(this.renderRoot.querySelector(`.option:not([data-reset]):not(:disabled)`)??r[0])?.click();return}let a;if(n===t){if(e.key===`ArrowDown`)a=0;else if(e.key===`ArrowUp`)a=-1;else return}else if(e.key.startsWith(`Arrow`))a=Pt(r,i,e.key);else if(e.key===`Home`)a=0;else if(e.key===`End`)a=r.length-1;else if(e.key.length===1&&e.key!==` `&&!e.ctrlKey&&!e.metaKey&&!e.altKey){e.preventDefault(),this._query+=e.key,t.focus();return}else return;e.preventDefault();for(let[e,t]of r.entries())t.tabIndex=e===a?0:-1;a<0?t.focus():r[a]?.focus()}_pick(e){this.disabled||!this.options.some(t=>t.value===e&&!t.disabled)||(this._close(),this.dispatchEvent(new CustomEvent(this.changeEvent,{detail:{value:e},bubbles:!0,composed:!0})))}_close(e=!0){this.renderRoot.querySelector(`.menu`).hidePopover(),this._open=!1,e&&this.renderRoot.querySelector(`.trigger`).focus({preventScroll:!0})}},It=class extends Ft{constructor(){super(),this.label=`Choose repository`,this.placeholder=`Choose repository`}get searchLabel(){return`Search repositories`}get optionsLabel(){return`Repositories`}get facetLabel(){return`Filter by organization`}get allFacetsLabel(){return`All organizations`}get noMatchesLabel(){return`No matching repositories`}get emptyLabel(){return`No repositories available`}get changeEvent(){return`repository-change`}choices(){return Nt(this.options,this._query,this._facet)}};customElements.get(`repository-selector`)||customElements.define(`repository-selector`,It);function Lt(e,t){let r=new Map,i=e?.kind===`stasis`?e.bundle?.reason:null;if(!i||typeof i!=`object`||Array.isArray(i))return r;let a=new Set(t??[...n(e)].filter(([,e])=>e!=null).map(([e])=>e));for(let[e,t]of Object.entries(i).toSorted(([e],[t])=>e.localeCompare(t))){if(!e||!Array.isArray(t))continue;let n=new Set(t.filter(e=>typeof e==`string`&&a.has(e)));n.size>0&&r.set(e,n)}return[...r.values()].some(e=>e.size<a.size)||r.clear(),r}function Rt(e,t,n){let r=new Set;for(let[i,o]of e)a(i,n?.get(i))&&r.add(t(o));return r}function zt(e,t,n){let r=new Set;for(let i of e?.bundle?.entries??[]){let e=t.get(i);e!==void 0&&r.add(n(e))}return r}function Bt(e,t,n,r){let i=n.has(r)?r:null;if(i===null)return{tree:e,origToStripped:t,selected:i};let a=new Map([...t].filter(([e])=>n.get(i).has(e))),o=new Set(a.values());return{tree:Object.fromEntries([...o].map(t=>[t,{...e[t],imports:(e[t].imports??[]).filter(e=>o.has(e))}])),origToStripped:a,selected:i}}function Vt(e){if(e?.kind===`sourcemap`)return t(e);let n=new Map;if(e?.kind!==`stasis`||!e.bundle)return n;for(let t of e.bundle.imports.values())for(let[e,r]of t){n.has(e)||n.set(e,new Set);for(let t of r.values()){let r=typeof t==`string`?[t]:t instanceof Map?t.values():[];for(let t of r)typeof t==`string`&&n.get(e).add(t)}}return n}function Ht(e,t,n=t,r){let a=Vt(e),o=new Set(e?.bundle?.entries??[]),s=[],c=new Set,l=[...o];for(let e of l){if(c.has(e))continue;if(c.add(e),t.has(e)){o.has(e)&&s.push({file:t.get(e)});continue}if(n.has(e))continue;let u=[];for(let r of a.get(e)??[])t.has(r)?u.push(t.get(r)):!n.has(r)&&a.has(r)&&(u.push(r),l.push(r));s.push({file:e,origFile:e,virtual:!0,...o.has(e)?{}:{entry:!1},pkg:i(e,{packageDir:r?.get(e)}),imports:u})}return s}function Ut(e,t,n,r,a=t){let o=Vt(e),s=new Set;for(let[e,a]of t)i(e,{packageDir:r?.get(e)})===`__own__`&&s.add(n(a));for(let r of zt(e,t,n))s.add(r);if(s.size===0){let e=Rt(t,n,r),i=new Set;for(let[r,a]of o){let o=t.get(r);if(o!==void 0&&e.has(n(o)))for(let e of a){let r=t.get(e);r!==void 0&&n(o)!==n(r)&&i.add(n(r))}}for(let t of e)i.has(t)||s.add(t)}let c=new Set;for(let[e,s]of o)if(!a.has(e)&&i(e,{packageDir:r?.get(e)})===`__own__`)for(let e of s){let r=t.get(e);r!==void 0&&c.add(n(r))}return c.size>0&&s.add(`__own__`),{roots:[...s],appImports:[...c]}}var Wt=/^(?:@[a-z0-9][a-z0-9._-]*\/)?[a-z0-9][a-z0-9._-]*$/iu,Gt=200;function Kt(e){let t=[...e];return t.length>Gt?`${t.slice(0,Gt-1).join(``).trimEnd()}\u2026`:e}var qt=e=>e.split(`/`).map(encodeURIComponent).join(`/`),Jt=(e,t)=>`https://github.com/${qt(e)}/releases/tag/${qt(t)}`;function Yt(e,t){return t&&e?.sha===t&&Array.isArray(e.tags)?e.tags.filter(e=>typeof e==`string`&&e):[]}function Xt(e,t,n=null){let r=typeof e?.github==`string`&&typeof n==`string`&&n.toLowerCase()===e.github.toLowerCase()?Yt(e,t):[],i=t&&e?.sha===t&&typeof e.details?.subject==`string`?e.details:null;if(i||r.length!==0)return JSON.stringify({tags:r,...i?{title:Kt(i.subject),authorName:i.authorName,authorLogin:i.authorLogin,date:i.committedAt??i.authoredAt}:{}})}function Zt(e,t=``,n=null){let i=[],a=l(e);if(a){let o=[u(e.repo),u({directory:t})].filter(Boolean).join(`/`),s=r(e.repo?.commit),c=o.split(`/`).map(encodeURIComponent).join(`/`),d=`https://github.com/${a}`,f=l({repo:{github:n?.github}}),p=f?Yt(n,s):[];i.push({label:`GitHub`,text:a+(o?`/${o}`:``),href:s||o?`${d}/tree/${s??`HEAD`}${c?`/${c}`:``}`:d,...s?{commit:{hash:s,text:s.slice(0,7),href:`${d}/commit/${s}`,...p.length>0?{tags:p.map(e=>({name:e,href:Jt(f,e)}))}:{}}}:{}})}let o=e?.package?.npm;if(typeof o?.name==`string`&&Wt.test(o.name)){let e=typeof o.version==`string`?o.version.trim():``;i.push({label:`npm`,text:o.name+(e?`@${e}`:``),href:`https://www.npmjs.com/package/${o.name}${e?`/v/${encodeURIComponent(e)}`:``}`})}return i}var E=e=>e??y,Qt=g`<svg viewBox="0 0 16 16" fill="none" stroke="currentColor" stroke-width="1.3" aria-hidden="true"><circle cx="8" cy="8" r="3"/><path d="M1 8h4m6 0h4"/></svg>`,$t=g`<svg viewBox="0 0 16 16" fill="none" stroke="currentColor" stroke-width="1.5" aria-hidden="true"><path d="m4 6 4 4 4-4"/></svg>`,en=[{kind:`branch`,label:`Branch`,icon:g`<svg viewBox="0 0 16 16" fill="none" stroke="currentColor" stroke-width="1.3" aria-hidden="true"><circle cx="4" cy="3" r="1.5"/><circle cx="4" cy="13" r="1.5"/><circle cx="12" cy="3" r="1.5"/><path d="M4 4.5v7m0-3h3a5 5 0 0 0 5-4"/></svg>`},{kind:`tag`,label:`Tag`,icon:g`<svg viewBox="0 0 16 16" fill="none" stroke="currentColor" stroke-width="1.3" stroke-linejoin="round" aria-hidden="true"><path d="M2 2h5.5l6.5 6.5-5.5 5.5L2 7.5Z"/><circle cx="5" cy="5" r="1"/></svg>`},{kind:`commit`,label:`Commit SHA`,icon:Qt}],tn=/^v?(\d+(?:\.(?:\d+|x))*)(?:[-+](.+))?$/iu;function nn(e){let t=tn.exec(e);return t?t[2]===void 0?`line`:`version`:`other`}function rn(e){let t=e.map(e=>{let t=tn.exec(e);return{name:e,parts:t?.[1].split(`.`).map(e=>e.toLowerCase()===`x`?1/0:Number(e)),suffix:t?.[2]??``}});return[...t.filter(e=>e.parts).toSorted((e,t)=>{if(!!e.suffix!=!!t.suffix)return e.suffix?1:-1;for(let n=0;n<Math.max(e.parts.length,t.parts.length);n++){let r=(t.parts[n]??1/0)-(e.parts[n]??1/0);if(r)return r}return e.suffix.localeCompare(t.suffix)}),...t.filter(e=>!e.parts)].map(e=>e.name)}function an(e,t,n){let r=e=>e===n||!e.includes(`/`)?null:e.slice(0,e.indexOf(`/`)),i=Map.groupBy(e.filter(r),r),a=e.filter(e=>!(i.get(r(e))?.length>2)).map(e=>({name:e}));for(let[e,n]of i)n.length<=2||(a.push({prefix:e,count:n.length,expanded:t.has(e)}),t.has(e)&&a.push(...rn(n.map(t=>t.slice(e.length+1))).map(t=>({name:`${e}/${t}`,label:t,group:e}))));return a}var on=class extends ne{static properties={refs:{attribute:!1},kind:{type:String},name:{type:String},disabled:{type:Boolean},installTooltips:{attribute:!1},_open:{state:!0},_query:{state:!0},_active:{state:!0},_expanded:{state:!0},_keyboard:{state:!0}};static styles=te`:host{display:block;min-width:0}:host,.revision-menu{-webkit-app-region:no-drag;app-region:no-drag}*{box-sizing:border-box}button,input{font:inherit;color:var(--text)}button{cursor:default;user-select:none}.revision{display:flex;align-items:center;min-width:0;height:2rem;margin:0;border:1px solid var(--border);border-radius:var(--ui-radius, 5px);background:var(--bg)}.revision.keyboard:focus-within{border-color:var(--accent);box-shadow:0 0 0 1px var(--accent)}.revision-size{display:grid;grid-template-columns:minmax(0,1fr);flex:1 1 auto;align-self:stretch;min-width:0}.revision-size>input,.revision-size:after{grid-area:1 / 1}.revision-size>input{width:100%}.revision-size:after{content:attr(data-value);visibility:hidden;height:0;overflow:hidden;white-space:pre;min-width:8rem;padding:0 calc(.6rem + 2px) 0 .6rem;font-size:.76rem}.revision input{height:100%;min-height:0;padding:.3rem .6rem;min-width:0;border:0;border-radius:0;background:transparent;color:var(--text);font-size:.76rem}.revision input:focus-visible{outline:none}.revision-switch{display:flex;flex:none;align-self:stretch;padding:2px;gap:2px}.revision-switch button{position:relative;display:grid;place-items:center;width:1.8rem;padding:0;border:0;border-radius:var(--ui-radius, 3px);background:transparent;color:var(--muted)}.revision-switch button:hover:not(:disabled){color:var(--text);background:var(--surface-active)}.revision-switch button:focus-visible{outline-offset:-2px}.revision-switch button[aria-pressed=true]{color:var(--accent);background:var(--selected-icon-background, color-mix(in srgb, var(--accent) 15%, var(--bg)))}.revision-switch button[aria-pressed=true]:before{content:var(--selected-icon-ring-content, none);position:absolute;left:50%;top:50%;width:22px;height:22px;box-sizing:border-box;border:1px solid currentcolor;border-radius:50%;transform:translate(-50%,-50%);pointer-events:none}.revision-switch svg{width:1rem;height:1rem}.revision-expand{display:grid;place-items:center;align-self:stretch;flex:none;width:2rem;padding:0;border:0;border-radius:var(--ui-radius, 4px);color:var(--muted);background:transparent}.revision-expand svg{width:.9rem;height:.9rem}.revision-expand:hover:not(:disabled){color:var(--text)}.revision-expand:focus-visible{outline-offset:-2px}.revision-menu{visibility:hidden;position:fixed;inset:auto;margin:0;padding:.45rem;overflow:auto;overscroll-behavior:contain;scrollbar-gutter:stable;border:1px solid var(--border);border-radius:var(--ui-radius, 8px);background:var(--surface-active);color:var(--text);box-shadow:0 .65rem 1.8rem #00000073}.revision-menu[data-positioned]{visibility:visible}.revision-options{display:flex;flex-direction:column;gap:.15rem}.revision-section{display:grid;grid-template-columns:repeat(var(--revision-columns, 1),minmax(0,1fr));gap:.15rem .5rem}.revision-section+.revision-section{padding-top:.15rem;border-top:1px solid var(--border)}.revision-options button{min-width:0;padding:.375rem .6rem;border:0;border-radius:var(--ui-radius, 4px);background:transparent;color:var(--text);text-align:left;font-size:.76rem}.revision-options button span{display:block;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.revision-options button[aria-selected=true]{color:var(--accent);background:color-mix(in srgb,var(--accent) 10%,transparent)}.revision-options button:hover,.revision-options button[data-active]{background:color-mix(in srgb,var(--text) 8%,transparent)}.revision-options button[data-active]{outline:1px solid var(--accent);outline-offset:-1px}.revision-options .revision-group{display:flex;align-items:center;gap:.4rem}.revision-group svg{flex:none;width:.75rem;height:.75rem;color:var(--muted)}.revision-group[aria-expanded=false] svg{rotate:-90deg}.revision-options .revision-group .count{display:inline-flex;flex:none;min-width:1.1rem;padding:0 .35rem;background:transparent;font-size:.7rem}.revision-empty{margin:0;padding:.65rem;color:var(--muted);font-size:.75rem;cursor:default;user-select:none}button:disabled,input:disabled{opacity:.5}:host-context(body.theme-w95) *{overscroll-behavior:none}`;constructor(){super(),this.refs=null,this.kind=`branch`,this.name=``,this.disabled=!1,this._open=!1,this._query=``,this._active=-1,this._expanded=new Set,this._keyboard=!1,this._pointer=!1,this._onViewport=()=>this.position(),this._onKey=()=>{this._pointer=!1}}connectedCallback(){super.connectedCallback(),globalThis.addEventListener(`resize`,this._onViewport),globalThis.addEventListener(`scroll`,this._onViewport,!0),globalThis.addEventListener(`keydown`,this._onKey,!0)}disconnectedCallback(){globalThis.removeEventListener(`resize`,this._onViewport),globalThis.removeEventListener(`scroll`,this._onViewport,!0),globalThis.removeEventListener(`keydown`,this._onKey,!0),super.disconnectedCallback()}updated(e){e.has(`installTooltips`)&&this.installTooltips?.(this.renderRoot),e.has(`kind`)&&this.kind===`commit`&&this._open&&this.close(),this.position()}change(e,t,n){this.dispatchEvent(new CustomEvent(`revision-change`,{detail:{how:e,kind:t,name:n},bubbles:!0,composed:!0}))}suggestions(e=this.kind){let t=this.refs??{branches:[],tags:[]},n=e===`branch`?t.branches:e===`tag`?t.tags:[],r=e===`branch`?[...t.defaultBranch?[t.defaultBranch]:[],...rn(n.filter(e=>e!==t.defaultBranch))]:n,i=this._query.trim().toLowerCase();return r.filter(e=>e.toLowerCase().includes(i))}entries(e=this._expanded){let t=this.suggestions();return this.kind===`branch`&&!this._query.trim()?an(t,e,this.refs?.defaultBranch):t.map(e=>({name:e}))}toggleGroup(e){let t=new Set(this._expanded);t.delete(e)||t.add(e),this._expanded=t}sections(e){let t=e=>e.group??(this.kind===`branch`?nn(e.name):`all`),n=e[1]?.prefix==null?e[1]:void 0,r=[];for(let[i,a]of e.entries()){if(a.prefix!=null){r.push({header:a,index:i});continue}let e=t(i===0&&a.name===this.refs?.defaultBranch&&n?n:a);r.at(-1)?.key===e?r.at(-1).items.push({entry:a,index:i}):r.push({key:e,items:[{entry:a,index:i}]})}return r}show({query:e=``,kind:t=this.kind}={}){t===`commit`||this.disabled||(this._open||(this._expanded=new Set(this.name.includes(`/`)?[this.name.slice(0,this.name.indexOf(`/`))]:[])),this._query=e,this._active=-1,this.renderRoot?.querySelector(`.revision-menu`)?.showPopover())}close(){this.renderRoot?.querySelector(`.revision-menu`)?.hidePopover(),this._open=!1,this._active=-1}focusName(){this.renderRoot?.querySelector(`.revision-name`)?.focus({preventScroll:!0})}pick(e){this.change(`pick`,this.kind,e),this.focusName(),this.close()}pickKind(e){e!==this.kind&&(this.close(),this.change(`kind`,e,e===`branch`&&this.refs?.defaultBranch||``)),this.focusName(),this.show({kind:e})}position(){if(!this._open)return;let e=this.renderRoot.querySelector(`.revision-menu`),t=e.querySelector(`.revision-options`),n=this.renderRoot.querySelector(`.revision-name`).getBoundingClientRect(),r=parseFloat(getComputedStyle(this).fontSize),i=document.createRange(),a=t.querySelector(`.revision-section > button`),o=a?parseFloat(getComputedStyle(a).paddingLeft)+parseFloat(getComputedStyle(a).paddingRight):0,s=[...t.querySelectorAll(`.revision-section`)].map(e=>{let t=0;for(let n of e.querySelectorAll(`button > span`))i.selectNodeContents(n),t=Math.max(t,i.getBoundingClientRect().width);return{section:e,count:e.children.length,columnWidth:Math.max(5*r,Math.min(15*r,Math.ceil(t+o)+1))}}),c=s.length>0&&parseFloat(getComputedStyle(s[0].section).columnGap)||0,l=e.offsetWidth-t.clientWidth,u=Math.min(window.innerWidth-16,Math.max(n.width,...s.map(({count:e,columnWidth:t})=>Math.min(3,Math.ceil(e/8))*(t+c)-c+l))),d=this.entries({has:()=>!0}).length<=8;for(let{section:e,count:t,columnWidth:n}of s){let r=Math.max(1,Math.floor((u-l+c)/(n+c)));e.style.setProperty(`--revision-columns`,d?1:Math.ceil(t/Math.ceil(t/r)))}e.style.width=`${u}px`,e.style.left=`${Math.max(8,Math.min(n.left,window.innerWidth-u-8))}px`;let f=window.innerHeight-n.bottom-6-8,p=n.top-6-8,m=f<Math.min(e.scrollHeight,320)&&p>f;e.style.maxHeight=`${Math.max(0,Math.min(420,m?p:f))}px`,e.style.top=`${Math.max(8,m?n.top-e.offsetHeight-6:n.bottom+6)}px`,e.dataset.positioned=``}async keyDown(e){if(e.key===`Escape`||e.key===`Tab`){e.key===`Escape`&&this._open&&(e.preventDefault(),e.stopPropagation()),this.close();return}if(e.key===`Enter`){let t=this.entries()[this._active];this._open&&t?.prefix!=null?(e.preventDefault(),this.toggleGroup(t.prefix)):this._open&&t!=null?(e.preventDefault(),this.pick(t.name)):this.close();return}if(this.kind===`commit`||![`ArrowDown`,`ArrowUp`].includes(e.key))return;e.preventDefault(),this._open||this.show();let t=this.entries().length;this._active=t===0?-1:e.key===`ArrowDown`?Math.min(this._active+1,t-1):this._active<=0?t-1:this._active-1,await this.updateComplete,this.renderRoot.querySelector(`[data-active]`)?.scrollIntoView({block:`nearest`})}render(){let e=this.entries(),t=this.kind===`commit`?`Commit SHA`:this.kind===`tag`?`Tag`:`Branch`,n=this.kind!==`commit`;return g`<form class="${this._keyboard?`revision keyboard`:`revision`}" @pointerdown="${()=>{this._pointer=!0,this._keyboard=!1}}" @focusin="${()=>{this._keyboard=!this._pointer}}" @focusout="${e=>{e.currentTarget.contains(e.relatedTarget)||(this._keyboard=!1,this.close())}}" @submit="${e=>{e.preventDefault(),this.change(`submit`,this.kind,this.name)}}"><div class="revision-switch" role="group" aria-label="Revision type">${en.map(({kind:e,label:t,icon:n})=>g`<button type="button" aria-label="${t}" data-tooltip="${t}" aria-pressed="${this.kind===e}" ?disabled="${this.disabled}" @click="${()=>this.pickKind(e)}">${n}</button>`)}</div><span class="revision-size" data-value="${this.name}"><input class="revision-name" type="text" size="1" aria-label="${t}" role="${E(n?`combobox`:void 0)}" aria-autocomplete="${E(n?`list`:void 0)}" aria-expanded="${E(n?String(this._open):void 0)}" aria-controls="${E(n?`revisions`:void 0)}" aria-activedescendant="${E(this._open&&this._active>=0?`revision-${this._active}`:void 0)}" autocomplete="off" spellcheck="false" placeholder="${n?`Choose or enter a ${this.kind}\u2026`:`Commit SHA…`}" .value="${rt(this.name)}" ?disabled="${this.disabled}" @focus="${()=>this.show()}" @click="${()=>this.show()}" @keydown="${this.keyDown}" @input="${e=>{this.change(`input`,this.kind,e.target.value),this.show({query:e.target.value})}}"></span>${n?g`<button type="button" class="revision-expand" aria-label="${`Show ${this.kind} suggestions`}" aria-expanded="${this._open}" ?disabled="${this.disabled}" @mousedown="${e=>e.preventDefault()}" @click="${()=>{this._open?this.close():(this.focusName(),this.show())}}">${$t}</button>`:y}<div class="revision-menu" id="revisions" popover="auto" role="listbox" aria-label="${`${t} suggestions`}" @beforetoggle="${e=>{this._open=e.newState===`open`,delete e.target.dataset.positioned,this._open||(this._active=-1)}}"><div class="revision-options">${this.sections(e).map(({header:e,index:t,items:n})=>e?g`<button type="button" role="option" class="revision-group" id="${`revision-${t}`}" aria-selected="false" aria-expanded="${e.expanded}" ?data-active="${t===this._active}" tabindex="-1" @mousedown="${e=>e.preventDefault()}" @click="${()=>{this._active=-1,this.toggleGroup(e.prefix)}}">${$t}<span>${e.prefix}/</span><span class="count" aria-label="${`${e.count} branches`}">${e.count}</span></button>`:g`<div class="revision-section" role="none">${n.map(({entry:e,index:t})=>g`<button type="button" role="option" id="${`revision-${t}`}" aria-label="${E(e.label===void 0?void 0:e.name)}" aria-selected="${e.name===this.name}" ?data-active="${t===this._active}" tabindex="-1" @mousedown="${e=>e.preventDefault()}" @click="${()=>this.pick(e.name)}"><span data-tooltip-truncated data-tooltip="${e.name}">${e.label??e.name}</span></button>`)}</div>`)}</div>${e.length>0?y:g`<p class="revision-empty">${this._query?`No matching suggestions. Enter a revision name to browse.`:`No ${this.kind} suggestions available.`}</p>`}</div></form>`}};customElements.get(`revision-select`)||customElements.define(`revision-select`,on);var sn=(e,t)=>new Date(Date.parse(e)+t*864e5);function cn(e){let t=[];if(!e?.days)return t;for(let n=e.days.length-1;n>=6;n-=7){let r=0;for(let t=n-6;t<=n;t++)r+=e.days[t];t.push({from:sn(e.start,n-6),to:sn(e.start,n),total:r})}return t.toReversed()}function ln(e){let t=[];if(!e?.days)return t;let n=Date.parse(e.start),r=null;e.days.forEach((e,i)=>{let a=new Date(n+i*864e5);a.getUTCDate()===1&&(r={from:a,to:a,total:0},t.push(r)),r&&(r.total+=e,r.to=a)});let i=t.at(-1);return i&&new Date(i.to.getTime()+864e5).getUTCDate()!==1&&t.pop(),t}var un=[[10,55e7],[20,405e6],[50,285e6],[100,225e6],[200,165e6],[500,95e6],[1e3,5e7],[2e3,2e7],[5e3,4e6],[1e4,85e4],[2e4,155e3],[5e4,18e3],[1e5,2e3],[1/0,0]];function dn(e){let t=cn(e).slice(-6);if(t.length===0)return null;let n=Math.max(...t.map(e=>e.total));return un.find(([,e])=>n>=e)[0]}var fn=e=>e<=200?`is-solid`:e<=5e3?`is-top`:e<=2e4?`is-mid`:e<=1e5?`is-low`:`is-unpopular`,pn=e=>e>2e4,mn=/(?![\t\n\r])\p{Cc}|[\u202A-\u202E\u2066-\u2069]/gu,hn=/\P{ASCII}/u;function gn(e){if(typeof e!=`string`)return{kind:`binary`,controls:null};let t=new Map;for(let[n]of e.matchAll(mn))t.set(n.codePointAt(0),(t.get(n.codePointAt(0))??0)+1);let n=e.search(hn);if(n!==-1)for(let[r,i]of Nn(e,n)??[])t.set(r,i);return{kind:n===-1?`ascii`:`utf8`,controls:t.size>0?t:null}}var _n=/(?=\p{Emoji})\p{Extended_Pictographic}(?:\u{FE0F}|[\u{1F3FB}-\u{1F3FF}])?$/u,vn=/^(?=\p{Emoji})\p{Extended_Pictographic}/u,yn=/(?=\p{Emoji})\p{Extended_Pictographic}$/u,bn=/^[\d#*]$/u,xn=e=>e>=917536&&e<=917631,Sn=new Set([`gbeng`,`gbsct`,`gbwls`]),Cn=(e,t,n)=>n-t===10?String.fromCodePoint(...Array.from({length:5},(n,r)=>e.codePointAt(t+2*r)-917504)):``;function wn(e,t,n,r){if(n===13&&(e[t+1]===`
2
2
  `||r&&t+1===e.length)||n===8205&&_n.test(e.slice(Math.max(0,t-4),t))&&vn.test(e.slice(t+1,t+3))||(n===65038||n===65039)&&yn.test(e.slice(Math.max(0,t-2),t))||n===65039&&bn.test(e[t-1]??``)&&e[t+1]===`⃣`)return t+1;if(xn(n)&&!xn(e.codePointAt(t-2))){let n=t;for(;xn(e.codePointAt(n));)n+=2;if(e.codePointAt(t-2)===127988&&e.codePointAt(n-2)===917631&&Sn.has(Cn(e,t,n-2)))return n}return-1}var Tn=/[\u115F\u1160\u3164\uFFA0\u{E0001}\u{E0020}-\u{E007F}]|[\uFE00-\uFE0F]|[\u{E0100}-\u{E01EF}]/u,D=/[\uFE00-\uFE0F\u115F\u1160\u3164\uFFA0\uDB40]/g,En=e=>new Set(e.split(` `).flatMap(e=>{let[t,n=t]=e.split(`-`).map(e=>Number.parseInt(e,16));return Array.from({length:n-t+1},(e,n)=>t+n)})),Dn=new Map([[65024,`30 1000 1002 1004 1010-1011 1015 1019-101a 101c-101d 1022 1031 1075 1078 107a 1080 2018-2019 201c-201d 210b 2110 2112 211b 212c 2130-2131 2133 2205 2229-222a 223d 2242-2243 2248 2268-2269 2272-2273 228a-228b 2293-2295 2297 229c 22cd 22da-22dd 29b7 2a3c-2a3d 2a6c 2a9d-2a9e 2aac-2aad 2acb-2acc 3001-3002 31c0 31c6 31c9 31cf-31d2 31d4-31d5 31d7 31db-31dd 31e5 a856 a85c a85e-a860 a868 aa60-aa66 aa6b-aa6c aa6f aa7a ff01 ff0c ff0e ff10 ff1a-ff1b ff1f 10ac5-10ac6 10ad6-10ad7 10ae1 13091 1310f 1311c 13121 13127 13139 131a0 131b1 131b8-131b9 131cb 131e0 131f9-131fa 1327b 1327f 13285 1328c 132aa 132cb 132dc 132e7 13307 1331b 13322 1333c 13377-13378 13399-1339a 133d3 133e4-133e5 133e7 133ee 133f2 133f5-133f6 13416 13419-1341a 13423 13443-13446 13be8-13bea 13f72 1d49c 1d49e-1d49f 1d4a2 1d4a5-1d4a6 1d4a9-1d4ac 1d4ae-1d4b5 1db10`],[65025,`2018-2019 201c-201d 210b 2110 2112 211b 212c 2130-2131 2133 3001-3002 31c6 31cf 31dd ff01 ff0c ff0e ff1a-ff1b ff1f 13093 13132 13139 13187 131b1 131ee 131f8-131fa 13257 1327f 1328b 132a4 13308 13312-13314 1331b 13321-13322 13331 133e8 13419 13f1f 14274 1d49c 1d49e-1d49f 1d4a2 1d4a5-1d4a6 1d4a9-1d4ac 1d4ae-1d4b5`],[65026,`2018-2019 201c-201d 13117 13139 13183 131a0 131ba 131ee 13216 1327b 132a4 132e7 132e9 132f8 132fd 13302-13303 13310-13314 1331c 13321 13331 1334a 13361 13373 1337d 13385 133af-133b0 133bf 133db 133dd 13419 1342c 1342e 14274 1d4cf`],[65027,`13012 130b8 130ba 1310f 1312f 13139 13184 1319c-1319d 1319f 131b1 131db 13205 13296 13338 13419`],[65028,`13139 1340d`],[65029,`13139 14274`],[65030,`1312f 13139 13184 131db 131ee 13205 132a4 132e9 1332b 13338 13370-13371 13419 14274`]].map(([e,t])=>[e,En(t)])),On=En(`23 2a 30-39 a9 ae 203c 2049 2122 2139 2194-2199 21a9-21aa 231a-231b 2328 23cf 23e9-23f3 23f8-23fa 24c2 25aa-25ab 25b6 25c0 25fb-25fe 2600-2604 260e 2611 2614-2615 2618 261d 2620 2622-2623 2626 262a 262e-262f 2638-263a 2640 2642 2648-2653 265f-2660 2663 2665-2666 2668 267b 267e-267f 2692-2697 2699 269b-269c 26a0-26a1 26a7 26aa-26ab 26b0-26b1 26bd-26be 26c4-26c5 26c8 26ce-26cf 26d1 26d3-26d4 26e9-26ea 26f0-26f5 26f7-26fa 26fd 2702 2705 2708-270d 270f 2712 2714 2716 271d 2721 2728 2733-2734 2744 2747 274c 274e 2753-2755 2757 2763-2764 2795-2797 27a1 27b0 27bf 2934-2935 2b05-2b07 2b1b-2b1c 2b50 2b55 3030 303d 3297 3299 1f004 1f170-1f171 1f17e-1f17f 1f202 1f21a 1f22f 1f237 1f30d-1f30f 1f315 1f31c 1f321 1f324-1f32c 1f336 1f378 1f37d 1f393 1f396-1f397 1f399-1f39b 1f39e-1f39f 1f3a7 1f3ac-1f3ae 1f3c2 1f3c4 1f3c6 1f3ca-1f3ce 1f3d4-1f3e0 1f3ed 1f3f3 1f3f5 1f3f7 1f408 1f415 1f41f 1f426 1f43f 1f441-1f442 1f446-1f449 1f44d-1f44e 1f453 1f46a 1f47d 1f4a3 1f4b0 1f4b3 1f4bb 1f4bf 1f4cb 1f4da 1f4df 1f4e4-1f4e6 1f4ea-1f4ed 1f4f7 1f4f9-1f4fb 1f4fd 1f508 1f50d 1f512-1f513 1f549-1f54a 1f550-1f567 1f56f-1f570 1f573-1f579 1f587 1f58a-1f58d 1f590 1f5a5 1f5a8 1f5b1-1f5b2 1f5bc 1f5c2-1f5c4 1f5d1-1f5d3 1f5dc-1f5de 1f5e1 1f5e3 1f5e8 1f5ef 1f5f3 1f5fa 1f610 1f687 1f68d 1f691 1f694 1f698 1f6ad 1f6b2 1f6b9-1f6ba 1f6bc 1f6cb 1f6cd-1f6cf 1f6e0-1f6e5 1f6e9 1f6f0 1f6f3`),kn=[[65024,65039],[917760,917999]],An=[[12593,12643],[12645,12686]];function jn(e,t){if(t===0)return;let n=t>=2?e.codePointAt(t-2):0;return n>65535?n:e.codePointAt(t-1)}var O=(e,...t)=>e!==void 0&&t.some(([t,n])=>e>=t&&e<=n);function Mn(e,t,n){let r=t+(n>65535?2:1),i=e.codePointAt(r),a=jn(e,t);switch(n){case 4447:return O(i,[4449,4519],[55216,55238]);case 4448:return O(a,[4352,4446],[43360,43388]);case 12644:return O(a,...An)||O(i,...An);case 65440:return O(a,[65441,65500])||O(i,[65441,65500]);default:return(n===65038||n===65039?On.has(a):Dn.get(n)?.has(a))||kn.some(([i,a])=>n===i&&e[r]===`-`&&e.codePointAt(r+1)===a||n===a&&e[t-1]===`-`&&jn(e,t-1)===i)||(n===65038||n===65039)&&a===n&&yn.test(e.slice(Math.max(0,t-3),t-1))}}function Nn(e,t=0){let n=null;D.lastIndex=t;for(let t=D.exec(e);t;t=D.exec(e)){let r=t.index,i=e.codePointAt(r);if(!Tn.test(String.fromCodePoint(i)))continue;let a=wn(e,r,i,!1);a===-1?Mn(e,r,i)||(n??=new Map,n.set(i,(n.get(i)??0)+1)):D.lastIndex=a}return n}var Pn={stringOrComment:/((?=\/)(?<=(?:^|\.\.\.|[(,=:[!&|?{};>+\-*/%^<~]|(?<![\p{ID_Continue}$.#])(?:await|case|default|delete|do|else|extends|in|instanceof|new|of|return|throw|typeof|void|yield))[ \t]*)\/(?![/*])(?:[^/\\[\n]|\\.|\[(?:[^\]\\\n]|\\.)*(?:\]|(?=\\?$)))+(?:\/[a-z]*|(?=\\?$))|"(?:[^"\\\n]|\\(?:\r\n|[\s\S]))*(?:"|$)|'(?:[^'\\\n]|\\(?:\r\n|[\s\S]))*(?:'|$)|`(?:[^`\\]|\\(?:\r\n|[\s\S]))*(?:`|(?![\s\S])))|(?<![ \t])[ \t]*(?:\/\*[\s\S]*?(?:\*\/|(?![\s\S]))|\/\/.*|(?<![\s\S])\uFEFF?#!.*)[ \t]*/gmu,droppable:/(?<![\p{ID_Continue}$\\\u200C\u200D])[ \t]+|[ \t]+(?![\p{ID_Continue}$\\\u200C\u200D])/gu,needed:(e,t,n)=>`+-/`.includes(e[t-1])&&e[t+n.length]===e[t-1]||e[t-2]===``&&/[\p{ID_Continue}$\\\u200C\u200D]/u.test(e[t+n.length])},Fn={stringOrComment:/("(?:[^"\\\n]|\\.)*"|'(?:[^'\\\n]|\\.)*')|[ \t]*\/\*[\s\S]*?\*\/[ \t]*/gu,droppable:/(?<=[{};,:>(])[ \t]+|[ \t]+(?=[{};,>)!])|(?<=[+~])[ \t]+|[ \t]+(?=[+~])/gu,needed:(e,t,n,r)=>/[+~]/u.test(e[t-1]+e[t+n.length])&&(r>0||/^\s*--[^:]*:/u.test(e.slice(Math.max(...[`{`,`;`,`}`].map(n=>e.lastIndexOf(n,t)))+1,t)))},k=Pn.stringOrComment,In=(e,t=!1)=>/\.css$/iu.test(e)?Fn:t||/\.[cm]?js$/iu.test(e)?Pn:null,A=4194304;function Ln(e,{stringOrComment:t,droppable:n,needed:r}){let i=(e.length>A?e.slice(0,e.lastIndexOf(`
3
3
  `,A)+1||A):e).replaceAll(t,(e,t)=>(t===void 0?``:t[0]===`/`?`//`:`""`)+e.replaceAll(/[^\n]/gu,``)).replaceAll(/^[ \t]+/gmu,``).split(`
4
4
  `).filter(e=>e.trim()!==``),a=i.join(`
@@ -0,0 +1 @@
1
+ import{b as e}from"./chunk-NRPC74AM.js";import{a as t,d as n,f as r,h as i}from"./chunk-7C7DWL7I.js";import{d as a}from"./chunk-PNHBZGDD.js";import{a as o,b as s}from"./chunk-I2MDGSQX.js";import{c}from"./chunk-BC2UCLFJ.js";import{C as l,D as u,G as d,J as f,K as p,L as m,O as h,q as g}from"./chunk-SXV2T5C4.js";import{a as _}from"./chunk-TUII34K2.js";function v(e,t){let n=s([{groups:[e],tree:t.tree}]);for(let r of e)l(r,t),r.isApp??=g(r,r.source??t.source),r._depsDirectory=n}function y(e,t){return!(e.isApp??g(e,e._source??e.source))&&o(e.file,e._depsDirectory??t??s([{groups:[[e]]}]))}function b(e,n,r){let i=t(n);return i===`ignored`&&y(e,r)?void 0:i}function ee(e,n,a,o){let s=n.id??String(n._id),c=n._reportName??``;y(n,o)&&(a===`ignored`||a===`untriaged`)?(t(e.get(s))!==`ignored`&&r(e,s,{triage:void 0}),i(e,s,c,a===`ignored`,!0)):(r(e,s,{triage:a===`untriaged`?void 0:a}),a!==`ignored`&&a!==`untriaged`&&i(e,s,c,!1))}function x(e,a){let o=new Set;for(let t of e.values()){let e=t?.ignoredReports;if(!e?.length)continue;let r=new Set(e).size!==e.length;for(let i of e)(r||!n(t,i))&&o.add(i)}if(o.size===0)return!1;let c=!1;for(let l of a){let a=(l.groups??[]).flat();if(!a.some(e=>o.has(e._reportName??l.name??l.fileName??``)))continue;let u=s([l]),d=e=>({...e,_source:e._source??e.source??l.source}),f=new Set(a.filter(e=>y(d(e),u)).map(e=>e.id??String(e._id)));for(let o of a){let a=o.id??String(o._id),s=o._reportName??l.name??l.fileName??``,p=e.get(a);p?.ignoredReports?.includes(s)&&(n(p,s)||y(d(o),u)||(t(p)||(c=r(e,a,{triage:`ignored`})||c),f.has(a)||(c=i(e,a,s,!1)||c)))}for(let t of a){if(!y(d(t),u))continue;let n=t.id??String(t._id),r=t._reportName??l.name??l.fileName??``;e.get(n)?.ignoredReports?.includes(r)&&(c=i(e,n,r,!0,!0)||c)}}return c}async function S(e,t){let r=new Set(Object.values(e??{}).flatMap(e=>Array.isArray(e?.ignoredReports)?e.ignoredReports.filter(t=>typeof t==`string`&&!n(e,t)):[])),i=[];for(let e of r){let n;try{let r=await t(e);if(typeof r!=`string`)continue;n=await h(r)}catch{continue}n&&i.push({...n.data,name:e,groups:[n.findings]})}return i}async function C(e,t){if(e!=null&&(typeof e!=`object`||Array.isArray(e)))return{entries:e,changed:!1};let n=new Map(Object.entries(e??{})),r=x(n,await S(e,t));return{entries:Object.fromEntries(n),changed:r}}var w=1,T=16,E=12,D=1+T+E+16,O=1+T+E;async function k(e,t){let n=await crypto.subtle.importKey(`raw`,_(e),`PBKDF2`,!1,[`deriveKey`]);return crypto.subtle.deriveKey({name:`PBKDF2`,hash:`SHA-256`,salt:t,iterations:3e6},n,{name:`AES-GCM`,length:256},!1,[`encrypt`,`decrypt`])}function A(e){return!(e instanceof Uint8Array)||e.length<D?!1:e[0]===w}async function j(e,t){if(!(e instanceof Uint8Array))throw TypeError(`encryptWithPassword: plaintext Uint8Array required`);if(typeof t!=`string`||!t)throw TypeError(`encryptWithPassword: password required`);let n=new Uint8Array(O+e.length+16);n[0]=w,crypto.getRandomValues(n.subarray(1,1+T)),crypto.getRandomValues(n.subarray(1+T,O));let r=n.subarray(1,1+T),i=n.subarray(1+T,O),a=await k(t,r),o=new Uint8Array(await crypto.subtle.encrypt({name:`AES-GCM`,iv:i,additionalData:n.subarray(0,O)},a,e));return n.set(o,O),n}async function M(e,t){if(typeof t!=`string`||!t)throw TypeError(`tryDecryptWithPassword: password required`);if(!(e instanceof Uint8Array)||e.length<D||e[0]!==w)return{ok:!1,reason:`malformed`};let n=e.subarray(1,1+T),r=e.subarray(1+T,O),i=e.subarray(O),a=await k(t,n),o;try{o=new Uint8Array(await crypto.subtle.decrypt({name:`AES-GCM`,iv:r,additionalData:e.subarray(0,O)},a,i))}catch{return{ok:!1,reason:`wrong-password`}}return{ok:!0,plaintext:o}}async function N(e,t,n){if(!n||typeof n.malformedMsg!=`string`||typeof n.wrongPasswordMsg!=`string`)throw TypeError(`decryptWithPasswordOrThrow: { malformedMsg, wrongPasswordMsg } strings required`);let r=await M(e,t);if(r.ok)return r.plaintext;throw r.reason===`wrong-password`?Error(n.wrongPasswordMsg):Error(n.malformedMsg)}var P=A,F=j;function te(e,t){return N(e,t,{malformedMsg:`malformed encrypted bundle`,wrongPasswordMsg:`wrong password or corrupt bundle`})}var ne=1,I=1024,L=1024,R=200,z=104857600,B=Math.ceil(z*4/3)+16,V=512,H=64;function U(e){if(!e||typeof e!=`object`)return`payload is not an object`;if(e.version!==ne)return`unsupported export version: ${e.version}`;if(!e.workspace||typeof e.workspace!=`object`)return`workspace metadata missing`;if(typeof e.workspace.id!=`string`)return`workspace.id must be a string`;if(typeof e.workspace.name!=`string`)return`workspace.name must be a string`;if(typeof e.workspace.privateKey!=`string`)return`workspace.privateKey must be a string`;if(e.workspace.createdAt!==void 0&&!Number.isFinite(e.workspace.createdAt))return`workspace.createdAt must be a finite number or omitted`;if(!Array.isArray(e.reports))return`reports field must be an array`;if(e.reports.length>L)return`reports count (${e.reports.length}) exceeds cap (${L})`;if(e.bundles!==void 0){if(!Array.isArray(e.bundles))return`bundles field must be an array when present`;if(e.bundles.length>I)return`bundles count (${e.bundles.length}) exceeds cap (${I})`;for(let t of e.bundles){if(typeof t!=`string`)return`bundles entries must be strings`;if(t.length>R)return`bundle integrity exceeds per-entry length cap (${R})`}}if(e.bundleBlobs!==void 0){if(!Array.isArray(e.bundleBlobs))return`bundleBlobs field must be an array when present`;if(e.bundleBlobs.length>H)return`bundleBlobs count (${e.bundleBlobs.length}) exceeds cap (${H})`;for(let t of e.bundleBlobs){if(!t||typeof t!=`object`||Array.isArray(t))return`bundleBlobs entries must be objects`;if(typeof t.integrity!=`string`||t.integrity.length===0)return`bundleBlobs.integrity must be a non-empty string`;if(t.integrity.length>R)return`bundleBlobs.integrity exceeds per-entry length cap (${R})`;if(typeof t.name!=`string`||t.name.length===0)return`bundleBlobs.name must be a non-empty string`;if(t.name.length>V)return`bundleBlobs.name exceeds per-entry length cap (${V})`;if(t.name.includes(`\0`))return`bundleBlobs.name cannot contain NUL`;if(typeof t.data!=`string`)return`bundleBlobs.data must be a base64 string`;if(t.data.length>B)return`bundleBlobs.data exceeds per-blob size cap (${z} bytes raw)`}}return null}async function W(e){return new Uint8Array(await e.arrayBuffer())}async function G(e,t){if(P(e)){if(typeof t!=`string`||!t)throw TypeError(`parseWorkspaceBundleBytes: password required for encrypted bundle`);let n=await te(e,t);try{return K(await a(n))}catch(e){throw Error(`wrong password or corrupt bundle`,{cause:e})}}let n;try{n=await a(e)}catch(e){throw Error(`gzip decompression failed: ${e.message}`,{cause:e})}return K(n)}function K(e){let t;try{t=JSON.parse(e)}catch(e){throw Error(`payload is not JSON: ${e.message}`,{cause:e})}let n=U(t);if(n===null)return t;let r=n.includes(`exceeds cap`);throw Error(r?n:`not a deepview workspace export: ${n}`)}var q=`links`;function J(e){if(typeof e==`string`)return e.length>0?e:null;if(!e||typeof e!=`object`||Array.isArray(e))return null;let{id:t}=e;return typeof t==`string`&&t.length>0?t:null}function Y(e){if(typeof e==`string`&&!/^\s*\[/u.test(e))return null;let t;try{t=JSON.parse(e)}catch{return null}if(!Array.isArray(t)||t.length===0)return null;let n=[],r=0;for(let e of t){if(!Array.isArray(e))return null;let t=new Set;for(let n of e){let e=J(n);if(e===null)return null;c(e)?t.add(e):r++}t.size>1&&n.push([...t])}return{groups:n,skipped:r}}function X(e){let t=new Set;for(let n of e)for(let e of n)t.add(e);return t.size}function re(e,t){for(let n of e)for(let e of n){let r=t.get(e);r||t.set(e,r=new Set);for(let t of n)t!==e&&r.add(t)}return t}function Z(e,t){let n=e.trimStart().startsWith(`[`)?Y(e):null;if(n)return{data:{source:`links`,findings:[],links:n.groups},format:`links`,reason:null};let r=m(e);if(r.data!=null||p(e,t)!==`codex`)return r;try{return{data:{type:`security`,source:`codex-security`,findings:d(e).flatMap(e=>e.data.findings)},format:`codex`,reason:null}}catch(e){return{data:null,format:null,reason:e instanceof Error?e.message:`Invalid Codex CSV`}}}function Q(e,t){let n=Z(e,t);return n.data==null?Promise.resolve(null):h(JSON.stringify(n.data))}function ie(e){let t=new Set;for(let n of e){if(!n||typeof n!=`object`)continue;let e=n;typeof e.file==`string`&&e.file&&t.add(e.file);for(let n of Array.isArray(e.evidence)?e.evidence:[])typeof n?.file==`string`&&n.file&&t.add(n.file)}return t}function $(e){let t=(f(e)??[]).flat().filter(e=>typeof e==`object`&&!!e),n=s([{groups:[t],tree:e?.tree}]);return{directory:n,own:t.filter(e=>!o(e.file,n))}}function ae(e){let t=new Map;for(let n of $(e).own){let e=u(n);e&&t.set(e.toLowerCase(),e)}return t.size===1?[...t.values()][0]:null}function oe(t){let{directory:n,own:r}=$(t);return e([...ie(r)].filter(e=>!o(e,n)))}var se=[`inprogress`,`fixed`,`invalid`,`deleted`,`ignored`];function ce(e){return typeof e==`string`&&se.includes(e)}function le(e){if(e===null)return null;if(typeof e!=`object`||Array.isArray(e))return`invalid`;let t=e,n={},r=t.color;if(r!=null){if(typeof r!=`string`||r.length>50)return`invalid`;r!==``&&(n.color=r)}let i=t.triage;if(i!=null){if(!ce(i))return`invalid`;n.triage=i}for(let e of[`comment`,`fix`]){let r=t[e];if(r!=null){if(typeof r!=`string`||r.length>1e4)return`invalid`;r!==``&&(n[e]=r)}}let a=t.flagged;if(a!=null){if(typeof a!=`boolean`)return`invalid`;n.flagged=a}return n}export{v as a,y as b,b as c,ee as d,x as e,S as f,C as g,j as h,N as i,P as j,F as k,L as l,W as m,G as n,K as o,q as p,Y as q,X as r,re as s,Z as t,Q as u,ae as v,oe as w,le as x};
@@ -1,4 +1,4 @@
1
- import{a as e,c as t}from"./chunk-GDPCLSOS.js";import{g as n,j as r,n as i,o as a,t as o,u as s,v as c,w as l,x as u}from"./chunk-NV7ES4EW.js";import{a as d}from"./chunk-NRPC74AM.js";import{e as f,i as p}from"./chunk-7C7DWL7I.js";import"./chunk-PNHBZGDD.js";import"./chunk-I2MDGSQX.js";import"./chunk-BC2UCLFJ.js";import{D as m}from"./chunk-SXV2T5C4.js";import"./chunk-WFYLMF6Z.js";import"./chunk-C4Z6ZBXV.js";import"./chunk-TUII34K2.js";import{a as h,c as g,g as _}from"./chunk-2XUEZHIP.js";import"./chunk-OOJM4CTU.js";var v=`h1{font-size:1.35rem;margin-bottom:.5rem}h2{font-size:1.1rem;margin-bottom:.5rem}.triage-import{display:flex;gap:1rem;align-items:center;margin:1.5rem 0 2rem}.triage-import .btn{flex-shrink:0}.triage-import p{margin:0}.workspace-drop{display:grid;gap:.8rem;padding:2rem;margin:1.5rem 0;border:1px dashed var(--border);border-radius:var(--ui-radius, 8px)}.workspace-drop.dragging{border-color:var(--accent);background:rgb(from var(--accent) r g b / .08)}.workspace-drop span,p,li span{color:var(--muted);line-height:1.5}.actions,.local-choice{display:flex;gap:.8rem;flex-wrap:wrap;align-items:center}.local-choice{margin-bottom:1.5rem}.import-preview{display:grid;gap:.8rem}input:not([type=radio]),select{padding:.55rem;border:1px solid var(--border);border-radius:var(--ui-radius, 5px);color:var(--text);background:var(--bg);font:inherit}.import-preview input:not([type=radio]),.import-preview select{width:100%;box-sizing:border-box}fieldset{display:grid;gap:.8rem;padding:1rem;border:1px solid var(--border);border-radius:var(--ui-radius, 5px)}fieldset label{display:flex;gap:.5rem;align-items:center}li{padding:.4rem 0;overflow-wrap:anywhere}li span{display:block;font-size:.8rem}ul{padding-left:1.2rem}.primary{justify-self:start;color:var(--accent)}.error{color:var(--critical)}button:disabled{opacity:.5}input:focus-visible,select:focus-visible,button:focus-visible{outline:2px solid var(--accent);outline-offset:2px}
1
+ import{a as e,c as t}from"./chunk-GDPCLSOS.js";import{g as n,j as r,n as i,o as a,t as o,u as s,v as c,w as l,x as u}from"./chunk-V3KWNNMY.js";import{a as d}from"./chunk-NRPC74AM.js";import{e as f,i as p}from"./chunk-7C7DWL7I.js";import"./chunk-PNHBZGDD.js";import"./chunk-I2MDGSQX.js";import"./chunk-BC2UCLFJ.js";import{D as m}from"./chunk-SXV2T5C4.js";import"./chunk-WFYLMF6Z.js";import"./chunk-C4Z6ZBXV.js";import"./chunk-TUII34K2.js";import{a as h,c as g,g as _}from"./chunk-2XUEZHIP.js";import"./chunk-OOJM4CTU.js";var v=`h1{font-size:1.35rem;margin-bottom:.5rem}h2{font-size:1.1rem;margin-bottom:.5rem}.triage-import{display:flex;gap:1rem;align-items:center;margin:1.5rem 0 2rem}.triage-import .btn{flex-shrink:0}.triage-import p{margin:0}.workspace-drop{display:grid;gap:.8rem;padding:2rem;margin:1.5rem 0;border:1px dashed var(--border);border-radius:var(--ui-radius, 8px)}.workspace-drop.dragging{border-color:var(--accent);background:rgb(from var(--accent) r g b / .08)}.workspace-drop span,p,li span{color:var(--muted);line-height:1.5}.actions,.local-choice{display:flex;gap:.8rem;flex-wrap:wrap;align-items:center}.local-choice{margin-bottom:1.5rem}.import-preview{display:grid;gap:.8rem}input:not([type=radio]),select{padding:.55rem;border:1px solid var(--border);border-radius:var(--ui-radius, 5px);color:var(--text);background:var(--bg);font:inherit}.import-preview input:not([type=radio]),.import-preview select{width:100%;box-sizing:border-box}fieldset{display:grid;gap:.8rem;padding:1rem;border:1px solid var(--border);border-radius:var(--ui-radius, 5px)}fieldset label{display:flex;gap:.5rem;align-items:center}li{padding:.4rem 0;overflow-wrap:anywhere}li span{display:block;font-size:.8rem}ul{padding-left:1.2rem}.primary{justify-self:start;color:var(--accent)}.error{color:var(--critical)}button:disabled{opacity:.5}input:focus-visible,select:focus-visible,button:focus-visible{outline:2px solid var(--accent);outline-offset:2px}
2
2
  `;async function y(e,{session:t,confirmImport:n,...r}){if(t?.role!==`admin`||!t.csrfToken)throw Error(`An administrator session is required.`);if(e!=null&&(typeof e!=`object`||Array.isArray(e)))throw Error(`Invalid local triage.`);let i=Object.create(null);for(let[t,n]of Object.entries(e??{})){let{ignoredReports:e,scopedIgnoredReports:r,...a}=f(n)??{};Object.keys(a).length!==0&&(i[t]=a)}let a=Object.keys(i).length,o=new Set,s=[],c;if(a>0)do{r.signal?.throwIfAborted();let e=`/api/admin/reports/finding-ids`+(c?`?after=${encodeURIComponent(c)}`:``),{reports:t,nextCursor:n}=await r.api.send(e);r.signal?.throwIfAborted();for(let e of t){let t=e.findingIds.filter(e=>Object.hasOwn(i,e)&&!o.has(e));t.length>0&&s.push({id:e.id,ids:t});for(let e of t)o.add(e)}c=n}while(c);for(let e of o){if(!e||e.length>100)throw Error(`Triage finding IDs must be between 1 and 100 characters.`);if(u(i[e])===`invalid`)throw Error(`Triage for ${e} exceeds the managed server limits.`)}if(r.signal?.throwIfAborted(),n){let e=await n({matched:o.size,available:a});if(r.signal?.throwIfAborted(),!e)return null}let l=r.importedIds??new Set;for(let e of s)await C(i,{...r,importedIds:l,ids:e.ids,path:`/api/admin/reports/${encodeURIComponent(e.id)}/import-triage`});return o.size}function b(e,t){let n=[],r=Object.create(null);for(let[i,a]of Object.entries(e)){let e=t[i];if(!e)throw Error(`The server did not return the requested triage snapshot.`);let o=e.entry??{},s=r[i]={...o};delete s.comment;for(let[t,r]of Object.entries(a))if(t===`comment`){if(e.comments.some(e=>e.body===r))continue;e.comments.length>0?n.push({id:i,property:t,local:e.comments.map(e=>e.body).join(`
3
3
 
4
4
  `),imported:r}):s.comment=r}else if(o[t]!==void 0&&o[t]!==r){let e=e=>t===`flagged`?e?`flagged`:`not flagged`:e;n.push({id:i,property:t,local:e(o[t]),imported:e(r)})}else s[t]=r}return{entries:r,conflicts:n}}async function x(e,t,n,r,i){i?.throwIfAborted();let{entries:a,conflicts:o}=b(e,t);if(o.length===0)return a;let s=await r(o,n,{title:`Triage conflicts on import`,intro:`disagree with stored triage on`,trailingNote:`Imported comments are added alongside existing comments. Other choices apply to these finding IDs across all teams.`,importedSideLabel:`Apply imported`});if(i?.throwIfAborted(),!s)throw Object.assign(Error(`Triage conflict resolution was cancelled.`),{cancelled:!0});for(let t of o){let n=s[`${t.id}:${t.property}`];if(![`local`,`imported`].includes(n))throw Error(`Resolve every triage conflict before importing.`);n===`imported`&&(a[t.id][t.property]=e[t.id][t.property])}return a}function S(e,t){let n=[],r={entries:{},expected:{}};for(let[i,a]of Object.entries(e)){let e={entries:{...r.entries,[i]:a},expected:{...r.expected,[i]:t[i].version}};if(new TextEncoder().encode(JSON.stringify(e)).length<=262144){r=e;continue}if(Object.keys(r.entries).length===0)throw Error(`This triage entry is too large to import.`);n.push(r),r={entries:{[i]:a},expected:{[i]:t[i].version}}}return Object.keys(r.entries).length>0&&n.push(r),n}async function C(e,{api:t,path:n,ids:r=Object.keys(e),importedIds:i=new Set,lookup:a=new Map,resolveConflicts:o,signal:s}){r=r.filter(t=>Object.hasOwn(e,t)&&!i.has(t));for(let c=0;c<r.length;c+=200){let l=r.slice(c,c+200);for(let r=0;r<5&&l.length>0;r++){s?.throwIfAborted();let{snapshots:r}=await t.send(n,{findingIds:l}),c=await x(Object.fromEntries(l.map(t=>[t,e[t]])),r,a,o,s);for(let e of S(c,r)){if(s?.throwIfAborted(),(await t.send(n,e)).conflict)break;Object.keys(e.entries).forEach(e=>i.add(e))}l=l.filter(e=>!i.has(e))}if(l.length>0)throw Error(`Stored triage keeps changing. Retry to resolve it against the latest values.`)}}var w=`You can retry the remaining steps.`;function T(e){return String(e?.detail??e?.message??e).replace(/\.$/u,``)}function E(e,t){return t?.aborted===!0||e?.name===`AbortError`||e?.cancelled===!0}function D(e){if(typeof e!=`string`)return{ok:!0,path:null};if(/\p{Cc}/u.test(e)||e.includes(`\\`)||e!==e.trim())return{ok:!1};let t=[];for(let n of e.split(`/`))if(n!==``&&n!==`.`){if(n===`..`||n!==n.trim())return{ok:!1};t.push(n)}let n=t.join(`/`);return n.length>500?{ok:!1}:{ok:!0,path:n===``?null:n}}async function O(e,t){let n=new Uint8Array(await e.arrayBuffer());return r(n)?t({tryPassword:e=>i(n,e)}):n[0]===31&&n[1]===139?i(n):a(new TextDecoder(`utf-8`,{fatal:!0}).decode(n))}function k(e,t,n,r,i=``){let a=e?d(e,t,r,i):null,o=n.find(t=>a?t.repoId===a.repoId:t.fullName.toLowerCase()===e?.toLowerCase());return{repoId:o?.repoId??null,directory:a?.directory??t,github:o?.fullName??e}}async function A(e,t,r=[]){let i=new Map,a=[];for(let n of e.reports){if(typeof n?.name!=`string`||!n.name||typeof n.content!=`string`)throw Error(`Every report must have a name and content.`);let u=o(n.content,n.name);if(!u.data)throw Error(`${n.name}: ${u.reason??`Unsupported report`}`);let d=m(u.data),f=d??m(n)??m({repo:{github:e.repoUrls?.[n.name]}})??c(u.data),p=d?``:l(u.data),h=D(u.data.repo?.directory);if(!h.ok)throw Error(`${n.name}: invalid repository directory`);let g=u.format===`links`?[]:(await s(n.content,n.name))?.findings??[];for(let e of g)e.id&&i.set(e.id,e);let _=h.path??``;a.push({...n,links:u.format===`links`,...k(f,_,t,r,p),declaredGithub:f,declaredDirectory:_,filePrefix:p,embedded:d,ids:[...new Set(g.map(e=>e.id).filter(Boolean))],uploaded:null})}let u=Object.create(null);if(e.triage!=null&&(typeof e.triage!=`object`||Array.isArray(e.triage)))throw Error(`Invalid workspace triage.`);let d=await n(e.triage,t=>e.reports.find(e=>e.name===t)?.content);for(let[e,t]of Object.entries(d.entries)){if(!i.has(e))continue;let n=f(t);if(!n)continue;let{ignoredReports:r,scopedIgnoredReports:a,...o}=n;Object.keys(o).length!==0&&(u[e]=o)}let p=[];for(let t of e.bundleBlobs??[]){let e=Uint8Array.fromBase64(t.data),n=`sha512-${new Uint8Array(await crypto.subtle.digest(`SHA-512`,e)).toBase64()}`;if(n!==t.integrity)throw Error(`${t.name}: bundle integrity mismatch`);p.push({name:t.name,integrity:n,bytes:e,uploaded:null})}return{name:e.workspace.name.slice(0,100),reports:a,bundles:p,triage:u,lookup:i,references:e.bundles??[],team:null,completed:new Set,importedIds:new Set}}function j(e,t,n){async function r(r,i,a={}){n?.throwIfAborted();let o=await e(r,{credentials:`same-origin`,signal:n,...i===void 0?{}:{method:`POST`,body:i instanceof File?i:JSON.stringify(i)},headers:{...i instanceof File?{}:{"content-type":`application/json`},"x-csrf-token":t.csrfToken,...a}});if(n?.throwIfAborted(),o.status===409)return{conflict:!0};if(!o.ok){let e=await o.json().then(e=>typeof e?.error==`string`?e.error:``,()=>``);n?.throwIfAborted();let t=`Import request failed (HTTP ${o.status}${e?`: ${e}`:``}).`;throw Object.assign(Error(`${t} ${w}`),{detail:t})}let s=await o.json();return n?.throwIfAborted(),s}return{send:r}}async function M(e,t,n,r,i,a){if(e.bundles.length===0&&e.references.length===0)return;let o=i??(await n.send(`/api/admin/bundles`)).bundles,s=new Set(e.bundles.map(e=>e.uploaded.id));if([...s].some(e=>!o.some(t=>t.id===e)))throw Error(`Could not verify the uploaded source bundles. Retry the import.`);let c=new Set(e.references);for(let i of o){if(!s.has(i.id)&&!c.has(i.integrity))continue;let o=!a.has(i.repoId),l=o?t:i.repoId;o&&await r(`bundle-repo:${i.id}:${l}`,()=>n.send(`/api/admin/bundles/set-repo`,{bundleId:i.id,repoId:l}));let u=o?``:i.repoDirectory??``;await r(`repo:${l}:${u}`,()=>n.send(`/api/admin/teams/set-repo`,{teamId:e.team.id,repoId:l,path:u}))}}async function N(e,t){e.uploaded||=await t.send(`/api/admin/deduplication`,new File([e.content],e.name),{"x-report-filename":encodeURIComponent(e.name)})}async function P(e,t){let n=(await t.send(`/api/admin/repositories/browsable`)).repos,r=e.reports.filter(e=>!e.links&&e.declaredGithub&&!e.uploaded);if(r.length>0){let{aliases:e=[]}=await t.send(`/api/admin/repositories/aliases`);for(let t of r)Object.assign(t,k(t.declaredGithub,t.declaredDirectory,n,e,t.filePrefix))}return new Set(n.map(e=>e.repoId))}async function F(e,{plan:t,api:n,step:r,activeRepos:i,defaultRepo:a,includeTriage:o,resolveConflicts:s,signal:c}){if(e.links){await N(e,n);return}let l=i.has(e.repoId)?e.repoId:a;if(!e.uploaded){let t=await n.send(`/api/admin/reports`,new File([e.content],e.name),{"x-report-filename":encodeURIComponent(e.name),"x-repo-id":String(l),"x-repo-directory":encodeURIComponent(e.directory)});if(t.conflict)throw Error(`Could not reuse the stored report ${e.name}. Retry the import.`);e.uploaded=t}let u=e.uploaded;i.has(u.repoId)||await r(`report-repo:${u.id}:${l}:${e.directory}`,async()=>{if((await n.send(`/api/admin/reports/set-repo`,{reportId:u.id,repoId:l,directory:e.directory})).conflict)throw Error(`Could not assign the stored report ${e.name} to its repository.`);u.repoId=l,u.repoDirectory=e.directory});let d=u.repoDirectory??``;await r(`repo:${u.repoId}:${d}`,()=>n.send(`/api/admin/teams/set-repo`,{teamId:t.team.id,repoId:u.repoId,path:d})),o&&await C(t.triage,{api:n,resolveConflicts:s,signal:c,ids:e.ids,importedIds:t.importedIds,lookup:t.lookup,path:`/api/admin/reports/${encodeURIComponent(e.uploaded.id)}/import-triage`}),await r(`publish:${e.uploaded.id}`,()=>n.send(`/api/admin/reports/set-visible`,{reportId:e.uploaded.id,visible:!0}))}async function I(e,{api:t,session:n,defaultRepo:r,includeTriage:i,resolveConflicts:a,signal:o,progress:s=()=>{}}){if(n?.role!==`admin`||!n.csrfToken)throw Error(`An administrator session is required.`);if(!e.name.trim()||e.name.trim().length>100)throw Error(`Enter a team name of up to 100 characters.`);if(i)for(let[t,n]of Object.entries(e.triage)){if(!t||t.length>100)throw Error(`Triage finding IDs must be between 1 and 100 characters. Choose Skip triage to import the files without it.`);if(u(n)===`invalid`)throw Error(`Triage for ${t} exceeds the managed server limits. Choose Skip triage to import the files without it.`)}o?.throwIfAborted();let c=null;if(e.bundles.length===0){let n=new Set(e.references);c=n.size>0?(await t.send(`/api/admin/bundles`)).bundles.filter(e=>n.has(e.integrity)):[]}if(e.reports.length===0&&e.bundles.length===0&&c.length===0)throw Error(e.references.length>0?`None of the referenced source bundles are available on the server. Export with bundle bytes included and try again.`:`This workspace contains no report or bundle files.`);let l=await P(e,t);for(let t of e.reports.filter(e=>!e.links)){if(t.embedded&&!l.has(t.repoId))throw Error(`Connect ${t.embedded} in Repositories before importing ${t.name}.`);if(!l.has(t.repoId)&&!l.has(r))throw Error(`Choose an active repository for ${t.name}.`)}if((e.bundles.length>0||c.some(e=>!l.has(e.repoId)))&&!l.has(r))throw Error(`Choose an active repository for the source bundles.`);let d=()=>o?.throwIfAborted(),f=async(t,n)=>{d(),e.completed.has(t)||(await n(),e.completed.add(t))};if(d(),!e.team){let n=await t.send(`/api/admin/teams`,{name:e.name.trim()});if(n.conflict)throw Error(`A team already has this name. Choose another name.`);e.team=n}await f(`member`,()=>t.send(`/api/admin/teams/set-member`,{teamId:e.team.id,userId:n.id,security:!0,dependencies:!0}));for(let n of e.bundles)d(),s(`Importing ${n.name}\u2026`),n.uploaded||=await t.send(`/api/admin/bundles`,new File([n.bytes],n.name),{"x-bundle-filename":encodeURIComponent(n.name)});await M(e,r,t,f,c,l);let p=[];for(let n of e.reports){d(),s(`Importing ${n.name}\u2026`);try{await F(n,{plan:e,api:t,step:f,activeRepos:l,defaultRepo:r,includeTriage:i,resolveConflicts:a,signal:o})}catch(e){if(E(e,o))throw e;p.push(`${n.name}: ${T(e)}`)}}if(p.length>0)throw Error(`Could not import ${p.length} of ${e.reports.length} files: ${p.join(`; `)}. ${w}`);return e.team}function L(e){let t=()=>e.isEncryptionEnabled()&&!e.isUnlocked();return{get locked(){return t()},unlock:t=>e.unlockEncryption(t),async read({signal:n}={}){let r=!1,i=e.onVaultStateChange(()=>{r=!0}),a=()=>{if(n?.throwIfAborted(),t()||r)throw Error(`Local data was locked or changed. Unlock it and import triage again.`)};try{a();let t=await e.readTriageBlob();return a(),t}finally{i()}}}}function R(e){let t=()=>e.isEncryptionEnabled()&&!e.isUnlocked();async function n(){let t=JSON.parse(await e.hydrateKey(`deepview.workspaces`)||`[]`);return(Array.isArray(t)?t:t.workspaces??[]).filter(e=>typeof e.id==`string`&&typeof e.name==`string`)}async function r(n,r){let i=!1,a=[e.onVaultStateChange,e.onFileMutated,e.onBundleMutated].map(e=>e(()=>{i=!0})),o=()=>{if(r?.throwIfAborted(),t()||i)throw Error(`Local data was locked or changed. Unlock it and select the workspace again.`)};try{o();let e=await n(o);return o(),e}finally{a.forEach(e=>e())}}return{get locked(){return t()},unlock:t=>e.unlockEncryption(t),list:({signal:e}={})=>r(async()=>(await n()).map(e=>({id:e.id,name:e.name})),e),read:(t,{signal:i}={})=>r(async r=>{let i=(await n()).find(e=>e.id===t);if(!i)throw Error(`This local workspace no longer exists.`);let a=JSON.stringify(i),o=JSON.parse(await e.hydrateKey(`deepview.repoUrls`)||`{}`),s=[];for(let t of i.reports??[]){r();let n=await e.withStoredItem(`report`,t,()=>e.readFile(t));r(),s.push({name:t,content:n,...o[t]?{repo:{github:o[t]}}:{}})}let c=await e.listBundles(),l=[];for(let t of i.bundles??[]){r();let n=c.find(e=>e.integrity===t);if(!n)continue;let i=await e.withStoredItem(`bundle`,t,()=>e.readBundle(t));r(),l.push({integrity:t,name:n.name,data:i.toBase64()})}let u=await e.readTriageBlob()??{};if(JSON.stringify((await n()).find(e=>e.id===t))!==a)throw Error(`The local workspace changed. Select it again.`);return{version:1,workspace:{id:t,name:i.name,privateKey:``},reports:s,bundles:i.bundles??[],bundleBlobs:l,triage:u,repoUrls:o}},i)}}var z=e=>e===`bundle`?`bundles`:`reports`,B=(e,t)=>JSON.stringify([e,t||``]),V=(e,t)=>new Set(t.map(t=>e===`bundle`?t.integrity:B(t.sha256,t.analyzer)));async function H(e){let t=new Uint8Array(await e.arrayBuffer()),n=o(new TextDecoder().decode(t),e.name);if(!n.data)throw Error(n.reason??`Not a recognized report`);let r=new Uint8Array(await crypto.subtle.digest(`SHA-256`,t)).toBase64({alphabet:`base64url`,omitPadding:!0});return{hash:r,key:B(r,typeof n.data.source==`string`?n.data.source:null)}}async function U(e,{source:t,deps:n,api:r,signal:i}){let a=JSON.parse(await n.hydrateKey(`deepview.workspaces`)||`[]`),o=(Array.isArray(a)?a:a.workspaces??[]).filter(e=>typeof e.id==`string`&&typeof e.name==`string`);i.throwIfAborted();let s=await t.list(e),c=V(e,(await r.send(`/api/admin/${z(e)}`))[z(e)]),l=o.map(e=>({id:e.id,name:e.name,items:[]})),u={id:null,name:`Not in a workspace`,items:[]},d=[];for(let r of s){i.throwIfAborted();let a={value:r.value,name:r.label,key:r.value,synced:!1,present:!1,error:``};if(e===`report`)try{Object.assign(a,await t.importItem(e,a.value,H,{signal:i})),a.syncHash=await n.reportSyncHash(a.value)}catch(e){i.throwIfAborted(),a.error=String(e?.message??e)}i.throwIfAborted(),a.present=c.has(a.key);let s=!1;o.forEach((t,r)=>{if(!t[z(e)]?.includes(a.value))return;let i=n.localContentSyncStatus(t.id,e,a.value,a.syncHash);a.synced||=i.synced,l[r].items.push({item:a,...i}),s=!0}),s||u.items.push({item:a,synced:!1,cached:!1}),d.push(a)}return{kind:e,items:d,groups:[...l,u].filter(e=>e.items.length>0)}}async function W(e,t,{source:n,api:r,signal:i,progress:a=()=>{},imported:o=new Set}){let{kind:s}=e,c=V(s,(await r.send(`/api/admin/${z(s)}`))[z(s)]),l=new Set(t),u=[],d=0;for(let t of e.items)if(i.throwIfAborted(),!(!l.has(t.value)||t.error||t.present)){if(c.has(t.key)){t.present=!0;continue}a(`Importing ${t.name}\u2026`),d++;try{await n.importItem(s,t.value,async e=>{let n=s===`report`?(await H(e)).key:await p(new Uint8Array(await e.arrayBuffer()));if(i.throwIfAborted(),n!==t.key)throw Error(`${t.name} changed. Choose files again before importing.`);if((await r.send(`/api/admin/${z(s)}`,e,{[`x-${s}-filename`]:encodeURIComponent(e.name)})).conflict)throw Error(`Could not import ${t.name}. Try again.`)},{signal:i})}catch(e){if(E(e,i))throw e;u.push(`${t.name}: ${T(e)}`);continue}c.add(t.key),t.present=!0,o.add(t.value)}if(u.length>0)throw Error(`Imported ${d-u.length} of ${d} ${s}s. Could not import ${u.join(`; `)}. Import again to retry them.`);return o.size}var G=(e,t)=>e===void 0?`managed-only`:t===void 0?`local-only`:`mismatch`;function K(e,t){let n=t.slice(),r=e.map(e=>{let t=n.indexOf(e);return t!==-1&&n.splice(t,1),{text:e,different:t===-1}}),i=e.slice(),a=t.map(e=>{let t=i.indexOf(e);return t!==-1&&i.splice(t,1),{text:e,different:t===-1}});return!r.some(e=>e.different)&&!a.some(e=>e.different)?null:{property:`comment`,local:r,managed:a,kind:r.some(e=>e.different)?a.some(e=>e.different)?`mismatch`:`local-only`:`managed-only`}}function q(e,t){let n=f(e)??{},r=f(t.entry)??{},i=[];for(let e of[`triage`,`color`,`fix`,`flagged`])n[e]!==r[e]&&i.push({property:e,local:n[e],managed:r[e],kind:G(n[e],r[e])});let a=K(n.comment?[n.comment]:[],t.comments.map(e=>e.body));return a&&i.push(a),n.ignoredReports?.length&&i.push({property:`ignoredReports`,local:[...new Set(n.ignoredReports)],managed:void 0,kind:`local-only`}),i}async function J(e,{lookup:t,triage:n,matched:r,findings:i,api:a,signal:o}){let s=[...new Set(e.findingIds)].filter(e=>t.has(e)&&!r.has(e));for(let c=0;c<s.length;c+=200){let l=s.slice(c,c+200);if(l.some(e=>e.length>100))throw Error(`A shared finding ID exceeds the managed triage limit.`);o.throwIfAborted();let{snapshots:u}=await a.send(`/api/admin/reports/${encodeURIComponent(e.id)}/import-triage`,{findingIds:l});o.throwIfAborted();for(let e of l){if(!u?.[e])throw Error(`The server did not return the requested triage snapshot.`);let a=q(n[e],u[e]);a.length>0&&i.push({id:e,finding:t.get(e),differences:a}),r.add(e)}}}async function Y({source:e,readTriage:t,api:n,signal:r,progress:i=()=>{}}){let a=new Map,c=[];for(let t of await e.list(`report`)){r.throwIfAborted(),i(`Reading ${t.label}\u2026`);try{let n=await e.importItem(`report`,t.value,async e=>{let t=await e.text(),n=o(t,e.name);if(!n.data)throw Error(n.reason??`Not a recognized report`);return n.format===`links`?[]:(await s(t,e.name))?.findings??[]},{signal:r});r.throwIfAborted();for(let e of n)typeof e.id!=`string`||!e.id||(a.has(e.id)||a.set(e.id,{...e,reports:[]}),a.get(e.id).reports.push(t.label))}catch(e){r.throwIfAborted(),c.push({name:t.label,reason:String(e?.message??e)})}}let l=await t()??{};if(r.throwIfAborted(),typeof l!=`object`||Array.isArray(l))throw Error(`Invalid local triage.`);let u=[],d=new Set;if(a.size===0)return{matched:0,localFindings:0,findings:u,skipped:c};let f;do{r.throwIfAborted(),i(`Comparing local and managed triage…`);let e=await n.send(`/api/admin/reports/finding-ids`+(f?`?after=${encodeURIComponent(f)}`:``));r.throwIfAborted();for(let t of e.reports)await J(t,{lookup:a,triage:l,matched:d,findings:u,api:n,signal:r});f=e.nextCursor}while(f);return r.throwIfAborted(),{matched:d.size,localFindings:a.size,findings:u,skipped:c}}function X(n,r){if(customElements.get(`managed-admin-import`))return;class i extends n{static styles=[h(t),h(v)];static properties={localDeps:{attribute:!1},_busy:{state:!0},_error:{state:!0},_message:{state:!0},_plan:{state:!0},_catalog:{state:!0},_localOpen:{state:!0},_workspaces:{state:!0},_localId:{state:!0},_triage:{state:!0},_repo:{state:!0},_drag:{state:!0}};constructor(){super(),this._busy=!1,this._error=``,this._message=``,this._plan=null,this._catalog=null,this._workspaces=[],this._localOpen=!1,this._localId=``,this._triage=``,this._repo=null,this._files=[],this._drag=!1,this._local=!1,this._over=e=>{e.dataTransfer?.types?.includes(`Files`)&&(e.preventDefault(),this._drag=!0)},this._drop=e=>{e.dataTransfer?.types?.includes(`Files`)&&(e.preventDefault(),e.stopPropagation(),this._drag=!1,this._busy||(this._files.push(...e.dataTransfer.files),this._nextFile()))},this._localChanged=()=>{this._workspaces=[],this._localId=``,!this._unlocking&&(this._local&&(this._plan=null),(this._local||this._importingTriage||this._importingContent||this._comparingTriage)&&(this._operation?.abort(),this._message=``,this._error=this._comparingTriage?`Local data changed or was locked. Compare triage again to continue.`:this._importingContent?`Local data changed or was locked. Choose files again to continue.`:this._importingTriage?`Local data changed or was locked. Import triage again to continue.`:`Local data changed or was locked. Choose the workspace again.`))},this._blur=()=>{this._readingLocal&&this._localChanged()}}connectedCallback(){super.connectedCallback(),this.addEventListener(`dragover`,this._over),this.addEventListener(`drop`,this._drop),globalThis.addEventListener(`blur`,this._blur),globalThis.addEventListener(`storage`,this._localChanged),this._offVault=this.localDeps?.onVaultStateChange(this._localChanged),this._loadCatalog()}disconnectedCallback(){this._operation?.abort(),this._offVault?.(),this._plan=null,this._files=[],this.removeEventListener(`dragover`,this._over),this.removeEventListener(`drop`,this._drop),globalThis.removeEventListener(`blur`,this._blur),globalThis.removeEventListener(`storage`,this._localChanged),super.disconnectedCallback()}updated(e){e.has(`session`)&&(this._role!==`admin`||e.get(`session`)?.id!==this.session?.id)&&(this._operation?.abort(),this._plan=null,this._files=[])}async _action(e){if(this._busy||this._role!==`admin`)return;let t=this._operation=new AbortController,n=AbortSignal.any([t.signal,this.appState.sessionController.signal]);this._busy=!0,this._error=``;try{await e(n),n.throwIfAborted()}catch(e){n.aborted||(this._error=String(e?.message??e))}finally{this._operation===t&&(this._busy=!1)}}async _loadCatalog(){if(this._role===`admin`)try{await this._loadCollection(`workspace-import:catalog`,`import options`,async e=>{let t=j(r,this.session,e),[n,i,a,o]=await Promise.all([t.send(`/api/admin/reports`),t.send(`/api/admin/teams`),t.send(`/api/admin/bundles`),t.send(`/api/admin/repositories/aliases`)]);return{repos:n.repos,teams:i.teams,bundles:a.bundles,aliases:o.aliases}},e=>{this._catalog=e})}catch(e){this._error=String(e?.message??e)}}_browse(){let e=document.createElement(`input`);e.type=`file`,e.multiple=!0,e.accept=`.enc,.gz,.json`,e.addEventListener(`change`,()=>{this._files.push(...e.files),this._nextFile()},{once:!0}),e.click()}async _prepare(e,t){if(!e)return;if(this._catalog||await this._loadCatalog(),t.throwIfAborted(),!this._catalog)throw Error(`Could not load repositories. Try again.`);let n=await A(e,this._catalog.repos,this._catalog.aliases);t.throwIfAborted();let r=new Set(this._catalog.teams.map(e=>e.name)),i=n.name||`Imported workspace`,a=2;for(;r.has(n.name);){let e=` (${a++})`;n.name=i.slice(0,100-e.length)+e}let o=new Set(n.reports.map(e=>e.repoId).filter(e=>e!=null));this._repo=o.size===1?[...o][0]:null,this._triage=Object.keys(n.triage).length>0?``:`skip`,this._plan=n,this._message=``}async _nextFile(){if(this._files.length===0||this._busy)return;let e=this._files.shift();this._local=!1,this._plan=null,await this._action(async t=>{let n=await O(e,this.promptPassword);t.throwIfAborted(),await this._prepare(n,t)})}async _unlock(e,t){this._unlocking=!0;try{return!e.locked||await e.unlock({signal:t})}finally{this._unlocking=!1}}async _chooseLocal(){this._localOpen=!0,await this._action(async e=>{let t=R(this.localDeps);await this._unlock(t,e)&&(e.throwIfAborted(),this._workspaces=await t.list({signal:e}))})}async _readLocal(){if(!this._localId)return;let e=this._localId;this._local=!0,this._plan=null,await this._action(async t=>{let n=R(this.localDeps);if(await this._unlock(n,t)){this._readingLocal=!0;try{await this._prepare(await n.read(e,{signal:t}),t)}finally{this._readingLocal=!1}}})}async _import(){!this._plan||!this._triage||!this._csrf||(await this._action(async e=>{if(this._local&&R(this.localDeps).locked)throw Error(`Unlock local data and choose the workspace again.`);let t=this._plan,n=[`teams`,`reports`,`bundles`,`history`,`workspace-import`,`scan-sources`,`repo-impact`];try{let i=await this.appState.mutate(()=>I(t,{api:j(r,this.session,e),session:this.session,defaultRepo:this._repo,includeTriage:this._triage===`include`,resolveConflicts:this.resolveConflicts,signal:e,progress:e=>{this._message=e}}),n);this._catalog.teams.push(i),this._message=`Imported into ${i.name}.`,this._plan=null}finally{this.appState.invalidate(n),t.team&&this.dispatchEvent(new CustomEvent(`managed-import-complete`,{bubbles:!0,composed:!0}))}}),!this._plan&&!this._error&&await this._nextFile())}async _importLocalTriage(){this._csrf&&await this._action(async e=>{this._importingTriage=!0,this._message=``;let t=new Set,n=[`reports`,`history`];try{let n=L(this.localDeps);if(!await this._unlock(n,e))return;this._readingLocal=!0;let i;try{i=await n.read({signal:e})}finally{this._readingLocal=!1}let a=await y(i,{api:j(r,this.session,e),session:this.session,resolveConflicts:this.resolveConflicts,signal:e,importedIds:t,confirmImport:async t=>(await this.confirmTriageImport({...t,signal:e}))?.confirmed===!0});if(e.throwIfAborted(),a===null)return;this._message=a?`Imported triage for ${a} finding${a===1?``:`s`}.`:`No local triage matches findings in managed reports.`}finally{this._importingTriage=!1,this.appState.invalidate(n),t.size>0&&this.dispatchEvent(new CustomEvent(`managed-import-complete`,{bubbles:!0,composed:!0}))}})}async _compareLocalTriage(){this._csrf&&await this._action(async e=>{this._comparingTriage=!0,this._message=``;let t=this.localImportSource,n=t.subscribe(this._localChanged);try{if(!await this._unlock(t,e))return;e.throwIfAborted(),this._readingLocal=!0;let n=L(this.localDeps),i=await Y({source:t,signal:e,readTriage:()=>n.read({signal:e}),api:j(r,this.session,e),progress:e=>{this._message=e}});e.throwIfAborted(),this._message=``,await this.showTriageComparison({comparison:i,signal:e})}finally{n(),this._readingLocal=!1,this._comparingTriage=!1,this._message=``}})}async _importLocalContent(e){this._csrf&&await this._action(async t=>{this._importingContent=!0,this._message=``;let n=this.localImportSource,i=[`reports`,`bundles`,`bundle-metadata`,`history`,`workspace-import`,`scan-sources`,`repo-impact`],a=new Set,o=n.subscribe(this._localChanged);try{if(!await this._unlock(n,t))return;t.throwIfAborted(),this._readingLocal=!0;let i=j(r,this.session,t),o=await U(e,{source:n,deps:this.localDeps,api:i,signal:t}),s=await this.confirmContentImport({plan:o,signal:t});if(t.throwIfAborted(),!s?.confirmed)return;let c=await W(o,s.selected,{source:n,api:i,signal:t,imported:a,progress:e=>{this._message=e}});this._message=`Imported ${c} ${e}${c===1?``:`s`}.`}finally{o(),this._readingLocal=!1,this._importingContent=!1,this.appState.invalidate(i),a.size>0&&this.dispatchEvent(new CustomEvent(`managed-import-complete`,{bubbles:!0,composed:!0}))}})}render(){if(this._role!==`admin`)return _;let t=this._plan,n=t?Object.keys(t.triage).length:0,r=new Set([...t?.references??[],...t?.bundles.map(e=>e.integrity)??[]]),i=(this._catalog?.bundles??[]).filter(e=>r.has(e.integrity)),a=t?.references.filter(e=>!t.bundles.some(t=>t.integrity===e)).length??0;return g`<div class="wrap" @dragleave="${()=>{this._drag=!1}}">${e(`manage-import`,this._role,this.allowShare)}<h1>Import</h1><section class="triage-import" aria-label="Import local files"><div class="actions"><button type="button" class="btn" ?disabled="${this._busy||!this._csrf}" @click="${()=>this._importLocalContent(`bundle`)}">Import bundles</button> <button type="button" class="btn" ?disabled="${this._busy||!this._csrf}" @click="${()=>this._importLocalContent(`report`)}">Import reports</button></div><p>Choose files from this browser, grouped by workspace. Import files without teams or triage.</p></section><section class="triage-import" aria-label="Local triage"><div class="actions"><button type="button" class="btn" ?disabled="${this._busy||!this._csrf}" @click="${()=>this._importLocalTriage()}">Import triage</button> <button type="button" class="btn" ?disabled="${this._busy||!this._csrf}" @click="${()=>this._compareLocalTriage()}">Compare triage</button></div><p>Import saved triage and comments for findings already in managed reports.<br>Unmatched data stays in this browser.<br>Conflicting values prompt for resolution; per-report ignores are skipped.</p></section><h2>Import workspace</h2><p class="intro ui-hint">Create a new team from a workspace export or a workspace stored in this browser.</p><section class="${`workspace-drop ${this._drag?`dragging`:``}`}" aria-label="Workspace files"><strong>Drop workspace files here</strong><span>Encrypted exports, JSON, or compressed JSON. Encrypted files prompt for a password.</span><div class="actions"><button type="button" class="btn" ?disabled="${this._busy||!this._catalog}" @click="${()=>this._browse()}">Choose files</button> <button type="button" class="btn" ?disabled="${this._busy}" @click="${()=>this._chooseLocal()}">Choose local workspace</button></div></section>${this._localOpen?g`<section class="local-choice"><label for="local-workspace">Local workspace</label> <select id="local-workspace" .value="${this._localId}" ?disabled="${this._busy}" @change="${e=>{this._localId=e.target.value}}"><option value="">Choose a workspace…</option>${this._workspaces.map(e=>g`<option value="${e.id}">${e.name}</option>`)}</select> <button type="button" class="btn" ?disabled="${this._busy||!this._localId}" @click="${()=>this._readLocal()}">Select workspace</button> ${!this._busy&&this._workspaces.length===0?g`<p class="ui-hint">No unlocked local workspaces. Choose local workspace to unlock or refresh.</p>`:_}</section>`:_} ${t?g`<section class="import-preview" aria-label="Import options">${t.team?g`<p>Team ${t.team.name} has been created. Retry continues its remaining import steps.</p>`:_} <label for="import-team">New team name</label><input id="import-team" maxlength="100" .value="${t.name}" ?disabled="${this._busy||!!t.team}" @input="${e=>{t.name=e.target.value,this.requestUpdate()}}"><p>${t.reports.length} reports / links · ${r.size} source bundles · ${n} triaged findings</p><label for="import-repo">Repository for files and source bundles without an active repository</label> <select id="import-repo" .value="${String(this._repo??``)}" ?disabled="${this._busy||!!t.team}" @change="${e=>{this._repo=e.target.value?Number(e.target.value):null}}"><option value="" ?selected="${this._repo==null}">Choose a repository…</option>${(this._catalog?.repos??[]).map(e=>g`<option value="${String(e.repoId)}" ?selected="${this._repo===e.repoId}">${e.fullName}</option>`)}</select><p>Declared report repositories and directories are preserved. Stored reports without an active repository use the selected repository. The new team receives those repository paths; other published reports in the same paths are also visible to that team.</p><ul>${t.reports.map(e=>g`<li>${e.name}<span>${e.links?`Global deduplication — enabled for all teams`:e.github??`Uses selected repository`}${e.links||e.github==null||e.repoId!=null?``:e.embedded?` — connect this repository first`:` — not connected; uses selected repository`}</span></li>`)}</ul>${i.length>0?g`<p>Existing source bundles in active repositories keep their locations. The new team also receives access to those directories. Unassigned bundles and bundles in inactive repositories use the selected repository.</p><ul>${i.map(e=>g`<li>${e.filename}<span>${e.repoFullName?`${e.repoFullName}${e.repoDirectory?`/${e.repoDirectory}`:``}`:`Uses selected repository`}</span></li>`)}</ul>`:_} ${a?g`<p>${a} referenced source bundles have no bytes in this export. Reports can use matching bundles already on the server.</p>`:_} ${n?g`<fieldset ?disabled="${this._busy||!!t.team}"><legend>Import triage?</legend><label><input type="radio" name="import-triage" value="include" ?checked="${this._triage===`include`}" @change="${()=>{this._triage=`include`}}"> Include triage and comments</label> <label><input type="radio" name="import-triage" value="skip" ?checked="${this._triage===`skip`}" @change="${()=>{this._triage=`skip`}}"> Skip triage</label><p>Conflicting values prompt for resolution. Triage stays shared by finding ID across teams. Per-report local ignores are not imported.</p></fieldset>`:_} <button type="button" class="btn primary" ?disabled="${this._busy||!this._triage||!this._csrf}" @click="${()=>this._import()}">${this._busy?`Importing…`:t.team?`Retry remaining import`:`Import workspace`}</button></section>`:_} ${this._message?g`<p role="status">${this._message}</p>`:_} ${this._error?g`<p class="error" role="alert">${this._error}${this._catalog?_:g`<button class="btn" @click="${()=>this._loadCatalog()}">Retry</button>`}</p>`:_} ${this._files.length>0&&!this._busy?g`<button class="btn" @click="${()=>this._nextFile()}">Next workspace file (${this._files.length} waiting)</button>`:_}</div>`}}customElements.define(`managed-admin-import`,i)}export{X as registerWorkspaceImport};