1import{_ as U}from"./DbpqAw-C.js";import{_ as z}from"./C0CcA8j4.js";import{aQ as O,aT as W,aU as q,aX as H,aY as o,aZ as a,a$ as r,a_ as e,b0 as d,b1 as p,b4 as D,b9 as _,b2 as k,b3 as x,ba as F,bg as w,bh as j,b7 as I,bj as M,bk as R,bb as Y,b8 as K,b5 as Q,b6 as m,bd as L}from"./g5bX7nN-.js";import{_ as X}from"./CMcovEBl.js";const Z={class:"flex min-h-screen items-center justify-center bg-secondary-50 px-4 py-10 dark:bg-secondary-950"},G={class:"w-full max-w-lg"},J={key:0,class:"rounded-xl border border-border bg-white p-8 text-center dark:border-secondary-800 dark:bg-secondary-900"},ee={class:"text-sm text-danger-600 dark:text-danger-400"},te={key:1,class:"flex justify-center py-16"},ne={key:2,class:"rounded-xl border border-border bg-white p-8 dark:border-secondary-800 dark:bg-secondary-900"},se={class:"flex items-center gap-4"},oe={class:"min-w-0"},ae={class:"mt-1 truncate text-sm text-body dark:text-secondary-300"},re={class:"font-semibold text-heading dark:text-secondary-100"},le={key:0,class:"text-muted"},ie={key:0,class:"mt-4 rounded-lg bg-warning-100 px-3 py-2 text-xs text-warning-800 dark:bg-warning-900/30 dark:text-warning-300"},de={class:"mt-6"},ce={class:"mt-2 space-y-1.5"},ue={class:"mt-6"},_e={class:"mt-2 max-h-72 space-y-3 overflow-y-auto pr-1"},be=["disabled","onClick"],pe={class:"truncate font-medium text-heading dark:text-secondary-100"},me={key:0,class:"ml-2 shrink-0 text-xs text-muted"},ye={key:0,class:"mt-1.5 space-y-1 pl-3"},ge={key:0,class:"px-3 py-1.5 text-xs text-muted"},he=["value","disabled"],xe={class:"min-w-0 flex-1"},fe={class:"block truncate text-heading dark:text-secondary-100"},ve={key:0,class:"shrink-0 text-xs text-muted"}
1,ke={key:1,class:"mt-4 text-sm text-danger-600 dark:text-danger-400"},we={class:"mt-6 flex gap-3"},$e=O({__name:"consent",setup(je){const{t:l}=Q();W({title:()=>l("oauth_consent.title")});const i=m(null),f=m(""),g=m(!1),h=m(""),y=m(null),u=m(null),C={"content:read":"oauth_consent.scope_read","content:write":"oauth_consent.scope_write","project:metadata":"oauth_consent.scope_metadata","media:read":"oauth_consent.scope_media_read","media:write":"oauth_consent.scope_media_write",offline_access:"oauth_consent.scope_offline"},A=L(()=>i.value?.workspaces.find(t=>t.id===y.value)??null),T=L(()=>!A.value?.eligible||!u.value?!1:!!A.value.projects.find(n=>n.id===u.value)?.eligible);function B(t){if(!t.eligible)return;y.value=t.id;const n=t.projects.filter(b=>b.eligible);u.value=n.length===1?n[0].id:null}function E(t){return l(t==="ineligible_payment_required"?"oauth_consent.ineligible_payment_required":t==="ineligible_plan"?"oauth_consent.ineligible_plan":t==="ineligible_no_repo"?"oauth_consent.ineligible_no_repo":"oauth_consent.ineligible_no_installation")}q(async()=>{try{const t=await $fetch("/api/oauth/consent");i.value=t;const n=t.workspaces.filter(b=>b.eligible&&b.projects.some(v=>v.eligible));n.length===1&&B(n[0])}catch(t){f.value=H(t,l("oauth_consent.load_failed"))}});async function $(t){g.value=!0,h.value="";try{const n=await $fetch("/api/oauth/consent",{method:"POST",body:t==="approve"?{decision:t,workspaceId:y.value,projectId:u.value}:{decision:t}});window.location.href=n.redirectTo}catch(n){h.value=H(n,l("oauth_consent.submit_failed")),g.value=!1}}return(t,n)=>{const b=U,v=z,V=F,N=X,S=K;return o(),a("div",Z,[r("div",G,[e(f)?(o(),a("div",J,[r("p",ee,d(e(f)),1)])):e(i)?(o(),a("div",ne,[r("div",se,[e(i).client.logoUri?(o(),D(v,{key:0,src:e(i).client.logoUri,alt:e(i).client.displayHost,class:"size-12 shrink-0 rounded-lg border border-border object-contain dark:border-secondary-800"},null,8,["src","alt"])):_("",!0),r("div",oe,[p(V,{tag:"h1",size:"lg"},{default:k(()=>[x(d(e(l)("oauth_consent.title")),1)]),_:1}),r("p",ae,[r("span",re,d(e(i).client.displayHost),1),e(i).client.name&&e(i).client.name!==e(i).client.displayHost?(o(),a("span",le," · "+d(e(i).client.name),1)):_("",!0)])])]),e(i).client.loopbackOnly?(o(),a("div",ie,d(e(l)("oauth_consent.localhost_warning")),1)):_("",!0),r("div",de,[p(N,{label:e(l)("oauth_consent.permissions_label")},null,8,["label"]),r("ul",ce,[(o(!0),a(w,null,j(e(i).scopes,s=>(o(),a("li",{key:s,class:"flex items-center gap-2 text-sm text-body dark:text-secondary-300"},[n[3]||(n[3]=r("span",{class:"icon-[annon--check] shrink-0 text-success-500","aria-hidden":"true"},null,-1)),x(" "+d(C[s]?e(l)(C[s]):s),1)]))),128))])]),r("div",ue,[p(N,{label:e(l)("oauth_consent.select_project")},null,8,["label"]),r("div",_e,[(o(!0),a(w,null,j(e(i).workspaces,s=>(o(),a("div",{key:s.id},[r("button",{type:"button",class:I(["flex w-full items-center justify-between rounded-lg border px-3 py-2 text-left text-sm focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-primary-500/50",[s.eligible?e(y)===s.id?"border-primary-500 bg-primary-50 dark:bg-primary-900/20":"border-secondary-200 hover:bg-secondary-50 dark:border-secondary-800 dark:hover:bg-secondary-800":"cursor-not-allowed border-secondary-200 opacity-60 dark:border-secondary-800"]]),disabled:!s.eligible,onClick:c=>B(s)},[r("span",pe,d(s.name||s.slug),1),s.eligible?_("",!0):(o(),a("span",me,d(E(s.reason)),1))],10,be),e(y)===s.id?(o(),a("div",ye,[s.projects.length===0?(o(),a("p",ge,d(e(l)("oauth_consent.no_projects")),1)):_("",!0),(o(!0),a(w,null,j(s.projects,c=>(o(),a("label",{key:c.id,class:I(["flex items-center gap-2 rounded-lg border px-3 py-2 text-sm",[c.eligible?e(u)===c.id?"border-primary-500 bg-primary-50 dark:bg-primary-900/20":"cursor-pointer border-secondary-200 hover:bg-secondary-50 dark:border-secondary-800 dark:hover:bg-secondary-800":"cursor-not-allowed border-secondary-200 opacity-60 dark:border-secondary-800"]])},[M(r("input",{"onUpdate:modelValue":n[0]||(n[0]=P=>Y(u)?u.value=P:null),type:"radio",name:"consent-project",value:c.id,disabled:!c.eligible,class:"accent-primary-600"},null,8,he),[[R,e(u)]]),r("span",xe,[r("span",fe,d(c.repoFullName||c.id),1)]),c.eligible?_("",!0):(o(),a("span",ve,d(E(c.reason)),1))],2))),128))])):_("",!0)]))),128))])]),e(h)?(o(),a("p",ke,d(e(h)),1)):_("",!0),r("div",we,[p(S,{variant:"ghost",block:"",disabled:e(g),onClick:n[1]||(n[1]=s=>$("deny"))},{default:k(()=>[x(d(e(l)("oauth_consent.deny")),1)]),_:1},8,["disabled"]),p(S,{variant:"primary",block:"",disabled:e(g)||!e(T),onClick:n[2]||(n[2]=s=>$("approve"))},{default:k(()=>[x(d(e(l)("oauth_consent.approve")),1)]),_:1},8,["disabled"])])])):(o(),a("div",te,[p(b,{label:e(l)("oauth_consent.loading")},null,8,["label"])]))])])}}});
1export{$e as default};
Line numbers count LF bytes from the start of the resource, as the search results do. Vendor segments are library code the classifier recognised; they are stored but not indexed. Bytes are shown as Latin1 characters, one per byte.