@highstate/designer 0.30.3 → 0.31.0
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.
- package/.output/nitro.json +1 -1
- package/.output/public/_nuxt/{BWDN-9Hx.js → 01ZR8FKx.js} +1 -1
- package/.output/public/_nuxt/{Cofyfw8g.js → 0MzBjiBY.js} +1 -1
- package/.output/public/_nuxt/{VQuDbHHR.js → 4vGmo7Ws.js} +1 -1
- package/.output/public/_nuxt/{Lo988ya0.js → AKCe9LNp.js} +1 -1
- package/.output/public/_nuxt/B7roF3kx.js +1 -0
- package/.output/public/_nuxt/{DhjMLkwg.js → B9ZfIHZw.js} +1 -1
- package/.output/public/_nuxt/{Ct3ssWsd.js → BASNc1ws.js} +1 -1
- package/.output/public/_nuxt/{CJVpO6nQ.js → BCJUQ-QU.js} +1 -1
- package/.output/public/_nuxt/{C7lm33JZ.js → BDLjTA3_.js} +1 -1
- package/.output/public/_nuxt/{DysjCpM9.js → BHpMD-mY.js} +1 -1
- package/.output/public/_nuxt/BKWHojhU.js +1 -0
- package/.output/public/_nuxt/{DsxZEVxb.js → BLfHOckY.js} +7 -7
- package/.output/public/_nuxt/{2jnOiqNC.js → BNEHDwNV.js} +1 -1
- package/.output/public/_nuxt/BOtPOJrV.js +1 -0
- package/.output/public/_nuxt/{k0GHL-8U.js → BQvzkDFt.js} +1 -1
- package/.output/public/_nuxt/{DmGf47KM.js → BVxJafKI.js} +1 -1
- package/.output/public/_nuxt/BhtYnCk1.js +1 -0
- package/.output/public/_nuxt/{5-u3YHQd.js → BipPPoWE.js} +1 -1
- package/.output/public/_nuxt/{CW9RwN2l.js → Bkhf7GZT.js} +1 -1
- package/.output/public/_nuxt/{D3MpZ_Sw.js → BnH0SUiF.js} +1 -1
- package/.output/public/_nuxt/{BwBpcI2q.js → BrgLtl1N.js} +1 -1
- package/.output/public/_nuxt/BscvYf-N.js +2 -0
- package/.output/public/_nuxt/BsfH1i0r.js +1 -0
- package/.output/public/_nuxt/{3RbcgHkU.js → Btw6kqCM.js} +1 -1
- package/.output/public/_nuxt/{DcDfdgW1.js → BuVA3kO7.js} +1 -1
- package/.output/public/_nuxt/{Bc-UhGEo.js → BvF6CC6t.js} +1 -1
- package/.output/public/_nuxt/{aPAh1oAW.js → BvcB3_Ox.js} +1 -1
- package/.output/public/_nuxt/{SCrI01L1.js → Bw8W7XlP.js} +1 -1
- package/.output/public/_nuxt/{D6EnKPw6.js → ByVvJoFt.js} +1 -1
- package/.output/public/_nuxt/{DZH0GUvg.js → BzHexD0k.js} +1 -1
- package/.output/public/_nuxt/{A3pA-dEU.js → BzfFclT9.js} +1 -1
- package/.output/public/_nuxt/{CSWVWBW7.js → C0QrjxaL.js} +1 -1
- package/.output/public/_nuxt/{D-LsJ2ZE.js → C3Nw-pxO.js} +1 -1
- package/.output/public/_nuxt/C3dDboVU.js +1 -0
- package/.output/public/_nuxt/{CbVegJaT.js → C50Jf3QI.js} +1 -1
- package/.output/public/_nuxt/{DXfLpys7.js → C9U9g4dI.js} +1 -1
- package/.output/public/_nuxt/{CNrxBMAX.js → C9khB4Xk.js} +1 -1
- package/.output/public/_nuxt/{Cq4nuP-7.js → CAqURRGH.js} +1 -1
- package/.output/public/_nuxt/{CZyQa1Zc.js → CBtqoa0c.js} +1 -1
- package/.output/public/_nuxt/CEY3Obon.js +1 -0
- package/.output/public/_nuxt/{Dr_haoD_.js → CFMSQg2L.js} +1 -1
- package/.output/public/_nuxt/{DKbLex6i.js → CHVFVVjA.js} +1 -1
- package/.output/public/_nuxt/{hvsd0Qgg.js → CJnh15-L.js} +1 -1
- package/.output/public/_nuxt/{DsRcdFOB.js → CQ57LN-w.js} +1 -1
- package/.output/public/_nuxt/{CAGxZJ_q.js → CVCvRHBP.js} +1 -1
- package/.output/public/_nuxt/{B3xH1Y0W.js → Cc4wgJ1h.js} +1 -1
- package/.output/public/_nuxt/{DwfxqiyB.js → CcDGEY8Q.js} +1 -1
- package/.output/public/_nuxt/{DgMGRJzb.js → CcgfvGG3.js} +1 -1
- package/.output/public/_nuxt/{BxFuzIIZ.js → Cn0h663F.js} +1 -1
- package/.output/public/_nuxt/{DmVwOSq5.js → CqCN84b-.js} +1 -1
- package/.output/public/_nuxt/{DyhJj7Ha.js → CrAApG3c.js} +1 -1
- package/.output/public/_nuxt/{LC_ejPos.js → CvFUo4Re.js} +1 -1
- package/.output/public/_nuxt/{Doxnvpyq.js → Cy6PxgoV.js} +1 -1
- package/.output/public/_nuxt/{EKqCuazP.js → D2UhOMoe.js} +1 -1
- package/.output/public/_nuxt/{Dpa6A3ZD.js → D3W9Jfu7.js} +1 -1
- package/.output/public/_nuxt/{zQpq8Nlt.js → D4O2OVDh.js} +1 -1
- package/.output/public/_nuxt/{DGnuSaKc.js → D6CGQiZp.js} +1 -1
- package/.output/public/_nuxt/{JoXnlJ5o.js → D84zi-ec.js} +1 -1
- package/.output/public/_nuxt/D8M0limG.js +1 -0
- package/.output/public/_nuxt/{CPTDoFCr.js → DDJReq2V.js} +1 -1
- package/.output/public/_nuxt/{DZXawbDK.js → DEI-Qge8.js} +1 -1
- package/.output/public/_nuxt/{CriYd4Xu.js → DKWb1hup.js} +1 -1
- package/.output/public/_nuxt/{CC9Mjlxx.js → DQ-NJtj8.js} +1 -1
- package/.output/public/_nuxt/{D7ydzmTA.js → DRhnxQ4y.js} +1 -1
- package/.output/public/_nuxt/{_c6GHTN4.js → DTSgpdAF.js} +1 -1
- package/.output/public/_nuxt/{DEdaEI2J.js → DXmPWjsX.js} +1 -1
- package/.output/public/_nuxt/{O5iT7Vr2.js → DYnMeE8e.js} +1 -1
- package/.output/public/_nuxt/{BKZ346WY.js → DfDsDJD2.js} +1 -1
- package/.output/public/_nuxt/{u9IB9fko.js → DjTKfsHU.js} +1 -1
- package/.output/public/_nuxt/{C7Ij7g1p.js → DlfNK0cA.js} +1 -1
- package/.output/public/_nuxt/{DH_B79BE.js → DpUEzsMu.js} +1 -1
- package/.output/public/_nuxt/{Eovi5v4f.js → DrfPDWCl.js} +2 -2
- package/.output/public/_nuxt/{Bsca_muP.js → Dtu55PAv.js} +2 -2
- package/.output/public/_nuxt/DvLL-V6a.js +1 -0
- package/.output/public/_nuxt/{B2Q2xBzH.js → Dz1kPrb2.js} +1 -1
- package/.output/public/_nuxt/DzP42O4c.js +1 -0
- package/.output/public/_nuxt/DzlC1Z8c.js +1 -0
- package/.output/public/_nuxt/{BYaYzU2p.js → H3fZkrEW.js} +1 -1
- package/.output/public/_nuxt/SVmeI-Hd.js +1 -0
- package/.output/public/_nuxt/{BzOk-KTc.js → UY6IumFv.js} +1 -1
- package/.output/public/_nuxt/{CVfWNyhe.js → Ztua2i2Y.js} +1 -1
- package/.output/public/_nuxt/builds/latest.json +1 -1
- package/.output/public/_nuxt/builds/meta/1548c3a0-586d-4ea6-8f99-85c2e41a6384.json +1 -0
- package/.output/public/_nuxt/{C4hwWhkw.js → d5T4DP7z.js} +4 -4
- package/.output/public/_nuxt/{DkZkynzL.js → iHlZS5Nr.js} +1 -1
- package/.output/public/_nuxt/{BSawHEJh.js → iX982afC.js} +1 -1
- package/.output/public/_nuxt/{D1nRrnR_.js → kwdF6vE0.js} +1 -1
- package/.output/public/_nuxt/{DS4ev0Th.js → mUQQEHsz.js} +1 -1
- package/.output/public/_nuxt/{Deh8i6lm.js → oLJXBT2A.js} +1 -1
- package/.output/public/_nuxt/{B8N1sP4y.js → rErpME9V.js} +1 -1
- package/.output/public/_nuxt/ue1Ve9YE.js +1 -0
- package/.output/public/_nuxt/{y7qbSnME.js → xdzoAViU.js} +1 -1
- package/.output/public/_nuxt/{BExqDRwH.js → zcI5daFe.js} +1 -1
- package/.output/public/_nuxt/{DqaT_RDK.js → zzNAWI73.js} +1 -1
- package/.output/server/index.mjs +1266 -1267
- package/.output/server/package.json +1 -1
- package/package.json +1 -1
- package/.output/public/_nuxt/352AptFn.js +0 -1
- package/.output/public/_nuxt/BuIQ2wGk.js +0 -1
- package/.output/public/_nuxt/C-mYaH7u.js +0 -1
- package/.output/public/_nuxt/C2i4Pe8_.js +0 -1
- package/.output/public/_nuxt/CFc9rdAS.js +0 -2
- package/.output/public/_nuxt/CYKlIh8L.js +0 -1
- package/.output/public/_nuxt/DJwAKlaO.js +0 -1
- package/.output/public/_nuxt/DOo85agn.js +0 -1
- package/.output/public/_nuxt/DT8lV676.js +0 -1
- package/.output/public/_nuxt/DXVNaud5.js +0 -1
- package/.output/public/_nuxt/Desw6Usx.js +0 -1
- package/.output/public/_nuxt/builds/meta/74426c6d-f911-4b17-980a-4fe479415ac8.json +0 -1
- package/.output/public/_nuxt/builds/meta/8b3b1d78-540f-4b23-a5a0-4fbad1ad9477.json +0 -1
- package/.output/public/_nuxt/dYgxrjeZ.js +0 -1
- package/.output/public/_nuxt/mxKUVBjZ.js +0 -1
- package/.output/public/_nuxt/p1qmzON1.js +0 -1
|
@@ -1 +1 @@
|
|
|
1
|
-
import{
|
|
1
|
+
import{R as B,D as b,E as S}from"#entry";import"./DlfNK0cA.js";import{S as j}from"./DXmPWjsX.js";import{S as v,b as d}from"./DfDsDJD2.js";import{o as M,a as U}from"./M3Z1JMP1.js";import{_ as c}from"./D9y446qR.js";import{_ as x}from"./CBtqoa0c.js";import{E as f,aG as m,V as P,Y as h,D as t,_ as g,W as l,aO as w,aP as u}from"./-NXdyIEV.js";import"./B69Z0Xk1.js";import"./CxoCegAs.js";import"./4vGmo7Ws.js";import"./CHVFVVjA.js";const I=f({__name:"OperationsTable",props:w({projectId:{},data:{},loading:{type:Boolean},hideHeader:{type:Boolean},height:{}},{search:{},searchModifiers:{},sortBy:{},sortByModifiers:{},page:{},pageModifiers:{},itemsPerPage:{},itemsPerPageModifiers:{}}),emits:["update:search","update:sortBy","update:page","update:itemsPerPage"],setup(s){const o=m(s,"search"),r=m(s,"sortBy"),a=m(s,"page"),n=m(s,"itemsPerPage"),y=[{title:"Status",key:"status",sortable:!1},d.name,d.id,{title:"Type",key:"type",sortable:!1},d.createdAt,d.actions];return(p,i)=>(P(),h(t(v),{search:o.value,"onUpdate:search":i[0]||(i[0]=e=>o.value=e),"sort-by":r.value,"onUpdate:sortBy":i[1]||(i[1]=e=>r.value=e),page:a.value,"onUpdate:page":i[2]||(i[2]=e=>a.value=e),"items-per-page":n.value,"onUpdate:itemsPerPage":i[3]||(i[3]=e=>n.value=e),headers:y,data:s.data,loading:s.loading,"hide-header":s.hideHeader,height:s.height},{"item.status":g(({item:e})=>[l(t(c),{status:e.status,"status-map":t(U)},null,8,["status","status-map"])]),"item.type":g(({item:e})=>[l(t(c),{status:e.type,"status-map":t(M)},null,8,["status","status-map"])]),"item.actions":g(({item:e})=>[l(t(x),{"page-name":"settings.operation-details","page-params":{projectId:s.projectId,operationId:e.id}},null,8,["page-params"])]),_:1},8,["search","sort-by","page","items-per-page","data","loading","hide-header","height"]))}}),V=f({__name:"index",async setup(s){let o,r;const a=B(),{projectStore:n}=b();return n.initializing?([o,r]=u(()=>S(()=>n.initialized).toBe(!0)),await o,r(),n.addLibraryRoot()):([o,r]=u(()=>n.initialize1()),await o,r(),[o,r]=u(()=>n.initialize2()),await o,r()),a.items.load(),(y,p)=>(P(),h(t(j),{title:"Operations",icon:"mdi-cog-sync",description:"Manage and monitor operations executed within this project."},{default:g(({height:i})=>[l(t(I),{search:t(a).items.search,"onUpdate:search":p[0]||(p[0]=e=>t(a).items.search=e),"sort-by":t(a).items.sortBy,"onUpdate:sortBy":p[1]||(p[1]=e=>t(a).items.sortBy=e),page:t(a).items.page,"onUpdate:page":p[2]||(p[2]=e=>t(a).items.page=e),"items-per-page":t(a).items.itemsPerPage,"onUpdate:itemsPerPage":p[3]||(p[3]=e=>t(a).items.itemsPerPage=e),"project-id":t(n).projectId,data:t(a).items.data,loading:t(a).items.isLoading,height:i},null,8,["search","sort-by","page","items-per-page","project-id","data","loading","height"])]),_:1}))}});export{V as default};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
import{
|
|
1
|
+
import{x as g,y as P,z as j,_ as A}from"#entry";import{V as I,s as $}from"./D4_5UqG-.js";import{_ as z}from"./DKWb1hup.js";import{E as G,aG as W,w as Y,V as p,Y as V,_ as s,W as a,ai as C,aj as h,aT as F,aU as J,aV as B,a2 as d,ak as K,a as k,D as t,aW as L,as as M,ao as R,$ as v,a0 as x,aI as H,a1 as Q,aJ as X,aK as Z,at as D,ah as _,aO as T,r as b,j as y}from"./-NXdyIEV.js";import"./DlfNK0cA.js";const ee={class:"builder-scrollable"},ae={class:"preview-editor"},le={class:"d-flex align-center justify-space-between mb-2"},se={class:"risk-message text-body-2 text-medium-emphasis mb-0"},te=G({__name:"BackendRoleDialog",props:T({role:{},loading:{type:Boolean},restrictionOptions:{}},{visible:{type:Boolean,required:!0},visibleModifiers:{}}),emits:T(["save"],["update:visible"]),setup(i,{emit:E}){const u=W(i,"visible"),N=E,r=b(""),m=b(""),o=b([]),c=b(null),S=y(()=>$(o.value)),U=y(()=>r.value.trim().length>0&&g.safeParse(o.value).success),q={low:"success",medium:"info",high:"warning",critical:"error"},f=y(()=>{const n=new Map(P.flatMap(e=>e.permissions.map(l=>[l.name,l])));return j(o.value.flatMap(e=>e.permissions.flatMap(l=>{const w=n.get(l);return w?[{permission:w,restricted:!!e.restrictions}]:[]})))});Y(()=>[u.value,i.role],()=>{u.value&&(r.value=i.role?.meta.title??"",m.value=i.role?.meta.description??"",o.value=i.role?g.parse(i.role.rules):[],c.value=null)},{immediate:!0});function O(){try{const n=g.parse(o.value);if(!r.value.trim())throw new Error("Title is required");c.value=null,N("save",{meta:{title:r.value.trim(),description:m.value.trim()||void 0},rules:n})}catch(n){c.value=n instanceof Error?n.message:"Invalid role rules"}}return(n,e)=>(p(),V(_,{modelValue:u.value,"onUpdate:modelValue":e[4]||(e[4]=l=>u.value=l),"max-width":"1200",class:"role-dialog"},{default:s(()=>[a(C,{title:i.role?"Edit backend role":"Create backend role",color:"#2d2d2d"},{default:s(()=>[a(h,{class:"role-card-content"},{default:s(()=>[a(F,{fluid:"",class:"pa-0 fill-height"},{default:s(()=>[a(J,{"no-gutters":"",class:"fill-height"},{default:s(()=>[a(B,{cols:"12",md:"6",class:"pr-md-4 column-container"},{default:s(()=>[e[5]||(e[5]=d("div",{class:"text-overline mb-2"},"Metadata",-1)),a(K,{modelValue:t(r),"onUpdate:modelValue":e[0]||(e[0]=l=>k(r)?r.value=l:null),class:"mb-3 flex-grow-0",label:"Title",variant:"outlined",density:"compact",rules:[l=>!!l?.trim()||"Title is required"],required:"",autofocus:""},null,8,["modelValue","rules"]),a(L,{modelValue:t(m),"onUpdate:modelValue":e[1]||(e[1]=l=>k(m)?m.value=l:null),class:"mb-4 flex-grow-0",label:"Description",variant:"outlined",density:"compact",rows:"2"},null,8,["modelValue"]),a(M,{class:"mb-4"}),d("div",ee,[a(z,{modelValue:t(o),"onUpdate:modelValue":e[2]||(e[2]=l=>k(o)?o.value=l:null),options:i.restrictionOptions},null,8,["modelValue","options"])])]),_:1}),a(M,{vertical:"",class:"d-none d-md-flex"}),a(B,{cols:"12",md:"6",class:"pl-md-4 column-container"},{default:s(()=>[e[8]||(e[8]=d("div",{class:"text-overline mb-2"},"Preview",-1)),d("div",ae,[a(t(I),{value:t(S),theme:"dark-plus",language:"yaml",options:{readOnly:!0,tabSize:2,minimap:{enabled:!1},automaticLayout:!0}},null,8,["value"])]),a(C,{variant:"flat",class:"risk-overview mt-4 pa-4"},{default:s(()=>[d("div",le,[e[7]||(e[7]=d("div",{class:"text-overline"},"Risk overview",-1)),t(f).risk?(p(),V(R,{key:0,color:q[t(f).risk],variant:"tonal"},{default:s(()=>[v(x(t(f).risk)+" risk ",1)]),_:1},8,["color"])):(p(),V(R,{key:1,variant:"tonal"},{default:s(()=>[...e[6]||(e[6]=[v("No risk",-1)])]),_:1}))]),d("p",se,x(t(f).message),1)]),_:1}),t(c)?(p(),V(H,{key:0,type:"error",density:"compact",class:"mt-4"},{default:s(()=>[v(x(t(c)),1)]),_:1})):Q("",!0)]),_:1})]),_:1})]),_:1})]),_:1}),a(X,null,{default:s(()=>[a(Z),a(D,{disabled:i.loading,onClick:e[3]||(e[3]=l=>u.value=!1)},{default:s(()=>[...e[9]||(e[9]=[v("Cancel",-1)])]),_:1},8,["disabled"]),a(D,{color:"primary",disabled:!t(U),loading:i.loading,onClick:O},{default:s(()=>[...e[10]||(e[10]=[v("Save",-1)])]),_:1},8,["disabled","loading"])]),_:1})]),_:1},8,["title"])]),_:1},8,["modelValue"]))}}),ue=A(te,[["__scopeId","data-v-ca0e79da"]]);export{ue as B};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
import{
|
|
1
|
+
import{m as v,_ as I}from"#entry";import{E as h,u as b,w as j,M as k,Y as u,_ as y,D as o,V as l,a2 as _,aI as P,b1 as x,J as w,r as p}from"./-NXdyIEV.js";import{P as C}from"./DzP42O4c.js";import"./B69Z0Xk1.js";import"./CxoCegAs.js";import"./DyDuNLRY.js";const g={class:"panel-frame-container"},A=["src"],B=h({__name:"[panelId]",props:{params:{}},setup(t){const{$client:d}=b(),r=p(),a=p(),{stateStore:m}=v(t.params.projectId);let n=0,c;const f=async s=>{try{const e=await d.state.createPanelLaunch.mutate({projectId:t.params.projectId,panelId:t.params.panelId});s===n&&(r.value=e.url)}catch(e){s===n&&(a.value=e instanceof Error?e.message:"Failed to launch panel")}};return j(()=>m.unlockState?.type,s=>{const e=++n;if(c?.(),c=void 0,r.value=void 0,a.value=void 0,s!=="unlocked")return;c=d.state.watchPanelAvailability.subscribe({projectId:t.params.projectId,panelId:t.params.panelId},{onData({online:i}){if(e===n){if(!i){r.value=void 0,a.value="Panel is offline";return}a.value=void 0,f(e)}},onError(i){e===n&&(a.value=i.message)}}).unsubscribe},{immediate:!0}),k(()=>c?.()),(s,e)=>(l(),u(o(C),{"project-id":t.params.projectId,"can-unlock":""},{default:y(()=>[_("div",g,[o(a)?(l(),u(P,{key:0,type:"error",text:o(a)},null,8,["text"])):o(r)?(l(),w("iframe",{key:2,src:o(r),class:"panel-frame",title:"Unit panel"},null,8,A)):(l(),u(x,{key:1,indeterminate:""}))])]),_:1},8,["project-id"]))}}),q=I(B,[["__scopeId","data-v-56c2e548"]]);export{q as default};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
import{
|
|
1
|
+
import{D as H,J as M,u as W,v as Y,F as q,E as G}from"#entry";import{E as Q,u as X,aP as A,r as u,J as K,D as e,Y as g,_ as l,a1 as S,a as w,W as a,ah as j,aa as Z,V as d,aR as _,a2 as h,at as m,$ as r,aI as ee,aS as te,ai as R,aj as $,aJ as U,aK as B}from"./-NXdyIEV.js";import{_ as ae}from"./Dz1kPrb2.js";import{_ as P,I as le}from"./CHVFVVjA.js";import{S as ie}from"./DlfNK0cA.js";import{D as se,a as oe}from"./BvF6CC6t.js";import{O as ne}from"./0MzBjiBY.js";import{A as re}from"./Cn0h663F.js";import{P as ue}from"./DYnMeE8e.js";import"./B69Z0Xk1.js";import"./CxoCegAs.js";import"./CrAApG3c.js";import"./4vGmo7Ws.js";import"./D9y446qR.js";import"./D4_5UqG-.js";import"./BqAcL3eq.js";import"./DvLL-V6a.js";import"./01ZR8FKx.js";const de={class:"d-flex ga-2"},me={key:1},pe={key:1},Re=Q({__name:"[apiKeyId]",props:{params:{}},async setup(p){let s,n;const{projectStore:f}=H(),b=M(),{$client:E}=X(),N=W();f.initializing?([s,n]=A(()=>G(()=>f.initialized).toBe(!0)),await s,n(),f.addLibraryRoot()):([s,n]=A(()=>f.initialize1()),await s,n(),[s,n]=A(()=>f.initialize2()),await s,n());const i=u(([s,n]=A(()=>b.get(p.params.apiKeyId)),s=await s,n(),s));if(!i.value)throw Y({statusCode:404,statusMessage:"API key not found"});const[T,O]=([s,n]=A(()=>Promise.all([q().getRestrictionOptions(),b.getServiceAccountOptions()])),s=await s,n(),s),y=u(!1),k=u(!1),v=u(!1),I=u(!1),D=u(""),x=u(!1),V=u(!1),C=u(!1),z=[{key:"id",label:"API key ID"},{key:"serviceAccount",label:"Service account"},{key:"expiresAt",label:"Expires"},{key:"lastUsedAt",label:"Last used"},{key:"createdAt",label:"Created"},{key:"updatedAt",label:"Last updated"}];async function L(c){x.value=!0;try{i.value=await b.update(p.params.apiKeyId,c),y.value=!1}finally{x.value=!1}}async function J(){C.value=!0;try{const c=await E.apiKey.rotateProject.mutate({projectId:p.params.projectId,apiKeyId:p.params.apiKeyId});i.value=c.apiKey,v.value=!1,D.value=c.token,I.value=!0}finally{C.value=!1}}async function F(){V.value=!0;try{await b.delete(p.params.apiKeyId),await N.push({name:"settings.api-keys",params:{projectId:p.params.projectId}})}finally{V.value=!1}}return(c,t)=>(d(),K(Z,null,[e(i)?(d(),g(e(oe),{key:0},{default:l(()=>[a(e(ie),{meta:e(i).meta,"fallback-icon":"mdi-key-variant",title:e(i).meta.title,description:e(i).meta.description},_({_:2},[e(i).managed?void 0:{name:"actions",fn:l(()=>[h("div",de,[a(m,{variant:"outlined","prepend-icon":"mdi-pencil",onClick:t[0]||(t[0]=o=>y.value=!0)},{default:l(()=>[...t[9]||(t[9]=[r("Edit",-1)])]),_:1}),a(m,{variant:"outlined","prepend-icon":"mdi-refresh",onClick:t[1]||(t[1]=o=>v.value=!0)},{default:l(()=>[...t[10]||(t[10]=[r(" Rotate ",-1)])]),_:1}),a(m,{color:"error",variant:"outlined","prepend-icon":"mdi-delete",onClick:t[2]||(t[2]=o=>k.value=!0)},{default:l(()=>[...t[11]||(t[11]=[r(" Delete ",-1)])]),_:1})])]),key:"0"}]),1032,["meta","title","description"]),e(i).managed?(d(),g(ee,{key:0,type:"info",variant:"tonal",style:{flex:"none"}},{default:l(()=>[...t[12]||(t[12]=[r(" This worker-managed API key is read-only. ",-1)])]),_:1})):S("",!0),a(e(se),{title:"API Key Details",items:z},{"item.id":l(()=>[a(e(le),{value:e(i).id},null,8,["value"])]),"item.serviceAccount":l(()=>[a(e(ae),{item:e(i)},null,8,["item"])]),"item.expiresAt":l(()=>[e(i).expiresAt?(d(),g(e(P),{key:0,value:e(i).expiresAt},null,8,["value"])):(d(),K("span",me,"Never"))]),"item.lastUsedAt":l(()=>[e(i).lastUsedAt?(d(),g(e(P),{key:0,value:e(i).lastUsedAt},null,8,["value"])):(d(),K("span",pe,"Never"))]),"item.createdAt":l(()=>[a(e(P),{value:e(i).createdAt},null,8,["value"])]),"item.updatedAt":l(()=>[a(e(P),{value:e(i).updatedAt},null,8,["value"])]),_:1}),a(te,{elevation:0},{default:l(()=>[a(e(ne),{title:"Restriction Rules",data:e(i).restrictionRules},null,8,["data"])]),_:1})]),_:1})):S("",!0),e(i)?(d(),g(e(ue),{key:1,visible:e(y),"onUpdate:visible":t[3]||(t[3]=o=>w(y)?y.value=o:null),"api-key":e(i),"service-accounts":e(O),"restriction-options":e(T),loading:e(x),onSave:L},null,8,["visible","api-key","service-accounts","restriction-options","loading"])):S("",!0),a(e(re),{visible:e(I),"onUpdate:visible":t[4]||(t[4]=o=>w(I)?I.value=o:null),token:e(D)},null,8,["visible","token"]),a(j,{modelValue:e(v),"onUpdate:modelValue":t[6]||(t[6]=o=>w(v)?v.value=o:null),"max-width":"480"},{default:l(()=>[a(R,{title:"Rotate API key"},{default:l(()=>[a($,null,{default:l(()=>[...t[13]||(t[13]=[r("The current token will stop working immediately.",-1)])]),_:1}),a(U,null,{default:l(()=>[a(B),a(m,{disabled:e(C),onClick:t[5]||(t[5]=o=>v.value=!1)},{default:l(()=>[...t[14]||(t[14]=[r("Cancel",-1)])]),_:1},8,["disabled"]),a(m,{color:"warning",loading:e(C),onClick:J},{default:l(()=>[...t[15]||(t[15]=[r("Rotate",-1)])]),_:1},8,["loading"])]),_:1})]),_:1})]),_:1},8,["modelValue"]),a(j,{modelValue:e(k),"onUpdate:modelValue":t[8]||(t[8]=o=>w(k)?k.value=o:null),"max-width":"480"},{default:l(()=>[a(R,{title:"Delete API key"},{default:l(()=>[a($,null,{default:l(()=>[...t[16]||(t[16]=[r("This permanently revokes this API key.",-1)])]),_:1}),a(U,null,{default:l(()=>[a(B),a(m,{disabled:e(V),onClick:t[7]||(t[7]=o=>k.value=!1)},{default:l(()=>[...t[17]||(t[17]=[r("Cancel",-1)])]),_:1},8,["disabled"]),a(m,{color:"error",loading:e(V),onClick:F},{default:l(()=>[...t[18]||(t[18]=[r("Delete",-1)])]),_:1},8,["loading"])]),_:1})]),_:1})]),_:1},8,["modelValue"])],64))}});export{Re as default};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
import{
|
|
1
|
+
import{F as I,u as $}from"#entry";import{E as D,aG as P,V as S,Y as h,_ as l,a2 as M,W as i,D as t,aO as V,aP as R,J as T,a as C,ah as N,aa as A,r as c,at as j,$ as b,ai as O,aj as E,a0 as F,aJ as J,aK as L}from"./-NXdyIEV.js";import"./DlfNK0cA.js";import{S as G,b as B}from"./DfDsDJD2.js";import{_ as H,a as K}from"./CBtqoa0c.js";import{P as W}from"./BCJUQ-QU.js";import{S as Y}from"./DXmPWjsX.js";import"./B69Z0Xk1.js";import"./CxoCegAs.js";import"./4vGmo7Ws.js";import"./D9y446qR.js";import"./CHVFVVjA.js";import"./D4_5UqG-.js";import"./DvLL-V6a.js";import"./01ZR8FKx.js";const q={class:"d-flex justify-center ga-1"},z=D({__name:"ProjectRolesTable",props:V({projectId:{},data:{},loading:{type:Boolean},height:{}},{search:{},searchModifiers:{},sortBy:{},sortByModifiers:{},page:{},pageModifiers:{},itemsPerPage:{},itemsPerPageModifiers:{}}),emits:V(["delete"],["update:search","update:sortBy","update:page","update:itemsPerPage"]),setup(r){const d=P(r,"search"),g=P(r,"sortBy"),a=P(r,"page"),v=P(r,"itemsPerPage"),m=[B.name,B.createdAt,B.actions];return(n,o)=>(S(),h(t(G),{search:d.value,"onUpdate:search":o[0]||(o[0]=s=>d.value=s),"sort-by":g.value,"onUpdate:sortBy":o[1]||(o[1]=s=>g.value=s),page:a.value,"onUpdate:page":o[2]||(o[2]=s=>a.value=s),"items-per-page":v.value,"onUpdate:itemsPerPage":o[3]||(o[3]=s=>v.value=s),headers:m,data:r.data,loading:r.loading,height:r.height},{"item.actions":l(({item:s})=>[M("div",q,[i(t(H),{"page-name":"settings.project-role-details","page-params":{projectId:r.projectId,roleId:s.id}},null,8,["page-params"]),i(t(K),{icon:"mdi-delete-outline",tooltip:"Delete role",color:"error",disabled:!!s.systemName,onClick:f=>n.$emit("delete",s)},null,8,["disabled","onClick"])])]),_:1},8,["search","sort-by","page","items-per-page","data","loading","height"]))}}),pe=D({__name:"index",props:{params:{}},async setup(r){let d,g;const a=I(),v=$(),m=c(!1),n=c(!1),o=c(null),s=c(!1),f=c(!1),U=([d,g]=R(()=>a.getRestrictionOptions()),d=await d,g(),d);async function x(y){s.value=!0;try{const e=await a.create(y);m.value=!1,await v.push({name:"settings.project-role-details",params:{projectId:r.params.projectId,roleId:e.id}})}finally{s.value=!1}}function k(y){o.value=y,n.value=!0}async function w(){if(o.value){f.value=!0;try{await a.delete(o.value.id),n.value=!1,o.value=null}finally{f.value=!1}}}return a.items.load(),(y,e)=>(S(),T(A,null,[i(t(Y),{title:"Roles",icon:"mdi-shield-account",description:"Manage roles that grant permissions within this project."},{actions:l(()=>[i(j,{color:"primary","prepend-icon":"mdi-plus",onClick:e[0]||(e[0]=p=>m.value=!0)},{default:l(()=>[...e[8]||(e[8]=[b("Create role",-1)])]),_:1})]),default:l(({height:p})=>[i(t(z),{search:t(a).items.search,"onUpdate:search":e[1]||(e[1]=u=>t(a).items.search=u),"sort-by":t(a).items.sortBy,"onUpdate:sortBy":e[2]||(e[2]=u=>t(a).items.sortBy=u),page:t(a).items.page,"onUpdate:page":e[3]||(e[3]=u=>t(a).items.page=u),"items-per-page":t(a).items.itemsPerPage,"onUpdate:itemsPerPage":e[4]||(e[4]=u=>t(a).items.itemsPerPage=u),"project-id":r.params.projectId,data:t(a).items.data,loading:t(a).items.isLoading,height:p,onDelete:k},null,8,["search","sort-by","page","items-per-page","project-id","data","loading","height"])]),_:1}),i(t(W),{visible:t(m),"onUpdate:visible":e[5]||(e[5]=p=>C(m)?m.value=p:null),loading:t(s),"restriction-options":t(U),onSave:x},null,8,["visible","loading","restriction-options"]),i(N,{modelValue:t(n),"onUpdate:modelValue":e[7]||(e[7]=p=>C(n)?n.value=p:null),"max-width":"480"},{default:l(()=>[i(O,{title:"Delete project role"},{default:l(()=>[i(E,null,{default:l(()=>[b(' This permanently deletes "'+F(t(o)?.meta.title)+'" and all of its bindings. ',1)]),_:1}),i(J,null,{default:l(()=>[i(L),i(j,{disabled:t(f),onClick:e[6]||(e[6]=p=>n.value=!1)},{default:l(()=>[...e[9]||(e[9]=[b("Cancel",-1)])]),_:1},8,["disabled"]),i(j,{color:"error",loading:t(f),onClick:w},{default:l(()=>[...e[10]||(e[10]=[b("Delete",-1)])]),_:1},8,["loading"])]),_:1})]),_:1})]),_:1},8,["modelValue"])],64))}});export{pe as default};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
import{
|
|
1
|
+
import{t as M,_ as O,F as U,u as h,v as q}from"#entry";import{_ as D,I as L}from"./CHVFVVjA.js";import{S as J}from"./DlfNK0cA.js";import{P as z}from"./BCJUQ-QU.js";import{E,aG as G,u as H,aP as N,V as p,J as C,D as t,Y as k,aI as T,_ as n,$ as g,a0 as P,a1 as V,a2 as u,W as a,a as w,aN as K,at as A,aa as F,ab as Q,aQ as W,aO as Y,r as m,j as $,ah as X,aR as Z,aS as _,ai as ee,aj as te,aJ as ae,aK as le}from"./-NXdyIEV.js";import{D as oe,a as ne}from"./BvF6CC6t.js";import{O as ie}from"./0MzBjiBY.js";import{_ as se}from"./DSTHpVUV.js";import"./B69Z0Xk1.js";import"./CxoCegAs.js";import"./4vGmo7Ws.js";import"./D9y446qR.js";import"./D4_5UqG-.js";import"./DvLL-V6a.js";import"./01ZR8FKx.js";const re={class:"pa-4"},de={class:"binding-form mb-6"},ue={class:"text-right"},ce={key:0},me=E({__name:"ProjectRoleBindingsTable",props:Y({projectId:{},roleId:{},readonly:{type:Boolean}},{count:{default:0},countModifiers:{}}),emits:["update:count"],async setup(s){let c,y;const I=G(s,"count"),{$client:j}=H(),l=m([]),f=m([]),r=m(null),d=m(!1),v=m(null),b=$(()=>{const o=new Map(l.value.map(e=>[e.serviceAccountId,e]));return f.value.filter(e=>o.has(e.id)).map(e=>({...e,binding:o.get(e.id)}))}),x=$(()=>{const o=new Set(l.value.map(e=>e.serviceAccountId));return f.value.filter(e=>!e.systemName&&!o.has(e.id))});async function S(){d.value=!0;try{const o=await j.projectServiceAccountSettings.getRoleBindingsByRole.query({projectId:s.projectId,roleId:s.roleId}),e=await M(i=>j.projectServiceAccountSettings.query.query({projectId:s.projectId,query:i}));l.value=o,f.value=e,I.value=o.length,v.value=null}catch(o){v.value=o instanceof Error?o.message:"Failed to load role bindings"}finally{d.value=!1}}async function B(){if(r.value){d.value=!0;try{await j.projectServiceAccountSettings.addRoleBinding.mutate({projectId:s.projectId,roleId:s.roleId,serviceAccountId:r.value}),r.value=null,await S()}catch(o){v.value=o instanceof Error?o.message:"Failed to update role bindings"}finally{d.value=!1}}}async function R(o){d.value=!0;try{await j.projectServiceAccountSettings.removeRoleBinding.mutate({projectId:s.projectId,roleId:s.roleId,serviceAccountId:o}),await S()}catch(e){v.value=e instanceof Error?e.message:"Failed to update role bindings"}finally{d.value=!1}}return[c,y]=N(()=>S()),await c,y(),(o,e)=>(p(),C("div",re,[t(v)?(p(),k(T,{key:0,type:"error",density:"compact",class:"mb-4"},{default:n(()=>[g(P(t(v)),1)]),_:1})):V("",!0),u("div",de,[a(K,{modelValue:t(r),"onUpdate:modelValue":e[0]||(e[0]=i=>w(r)?r.value=i:null),items:t(x),"item-title":"meta.title","item-value":"id",label:"Service account",density:"compact",variant:"outlined","hide-details":"",disabled:s.readonly||t(d)},null,8,["modelValue","items","disabled"]),a(A,{class:"binding-action",color:"primary",disabled:s.readonly||!t(r),loading:t(d),onClick:B},{default:n(()=>[...e[1]||(e[1]=[g(" Add ",-1)])]),_:1},8,["disabled","loading"])]),a(W,null,{default:n(()=>[e[3]||(e[3]=u("thead",null,[u("tr",null,[u("th",null,"Service account"),u("th",null,"Created"),u("th",{class:"text-right"},"Actions")])],-1)),u("tbody",null,[(p(!0),C(F,null,Q(t(b),i=>(p(),C("tr",{key:i.id},[u("td",null,P(i.meta.title),1),u("td",null,[a(D,{value:i.binding.createdAt},null,8,["value"])]),u("td",ue,[a(A,{icon:"mdi-delete-outline",variant:"text",size:"small",disabled:s.readonly||!!i.systemName,onClick:pe=>R(i.id)},null,8,["disabled","onClick"])])]))),128)),!t(d)&&t(b).length===0?(p(),C("tr",ce,[...e[2]||(e[2]=[u("td",{colspan:"3",class:"text-center text-medium-emphasis py-4"},"No service accounts",-1)])])):V("",!0)])]),_:1})]))}}),ve=O(me,[["__scopeId","data-v-b31ced55"]]),fe={class:"d-flex ga-2"},Ne=E({__name:"[roleId]",props:{params:{}},async setup(s){let c,y;const I=U(),j=h(),l=m(([c,y]=N(()=>I.get(s.params.roleId)),c=await c,y(),c));if(!l.value)throw q({statusCode:404,statusMessage:"Project role not found"});const f=m(!1),r=m(!1),d=m(!1),v=m(!1),b=m(0),x=([c,y]=N(()=>I.getRestrictionOptions()),c=await c,y(),c),S=[{key:"id",label:"Role ID"},{key:"createdAt",label:"Created"},{key:"updatedAt",label:"Last updated"}];async function B(o){d.value=!0;try{l.value=await I.update(s.params.roleId,o),f.value=!1}finally{d.value=!1}}async function R(){v.value=!0;try{await I.delete(s.params.roleId),await j.push({name:"settings.project-roles",params:{projectId:s.params.projectId}})}finally{v.value=!1}}return(o,e)=>(p(),C(F,null,[t(l)?(p(),k(t(ne),{key:0},{default:n(()=>[a(t(J),{meta:t(l).meta,"fallback-icon":"mdi-shield-account",title:t(l).meta.title,description:t(l).meta.description},Z({_:2},[t(l).systemName?void 0:{name:"actions",fn:n(()=>[u("div",fe,[a(A,{variant:"outlined","prepend-icon":"mdi-pencil",onClick:e[0]||(e[0]=i=>f.value=!0)},{default:n(()=>[...e[6]||(e[6]=[g(" Edit ",-1)])]),_:1}),a(A,{color:"error",variant:"outlined","prepend-icon":"mdi-delete",onClick:e[1]||(e[1]=i=>r.value=!0)},{default:n(()=>[...e[7]||(e[7]=[g(" Delete ",-1)])]),_:1})])]),key:"0"}]),1032,["meta","title","description"]),t(l).systemName?(p(),k(T,{key:0,type:"info",variant:"tonal",style:{flex:"none"}},{default:n(()=>[...e[8]||(e[8]=[g(" This system-managed role is read-only. ",-1)])]),_:1})):V("",!0),a(t(oe),{title:"Project Role Details",items:S},{"item.id":n(()=>[a(t(L),{value:t(l).id},null,8,["value"])]),"item.createdAt":n(()=>[a(t(D),{value:t(l).createdAt},null,8,["value"])]),"item.updatedAt":n(()=>[a(t(D),{value:t(l).updatedAt},null,8,["value"])]),_:1}),a(_,{elevation:0},{default:n(()=>[a(t(ie),{title:"Rules",data:t(l).rules,icon:"mdi-code-braces"},null,8,["data"]),a(t(se),{title:"Service Accounts",icon:"mdi-account-circle",count:t(b)},{default:n(()=>[a(t(ve),{count:t(b),"onUpdate:count":e[2]||(e[2]=i=>w(b)?b.value=i:null),"project-id":s.params.projectId,"role-id":t(l).id,readonly:!!t(l).systemName},null,8,["count","project-id","role-id","readonly"])]),_:1},8,["count"])]),_:1})]),_:1})):V("",!0),t(l)?(p(),k(t(z),{key:1,visible:t(f),"onUpdate:visible":e[3]||(e[3]=i=>w(f)?f.value=i:null),role:t(l),loading:t(d),"restriction-options":t(x),onSave:B},null,8,["visible","role","loading","restriction-options"])):V("",!0),a(X,{modelValue:t(r),"onUpdate:modelValue":e[5]||(e[5]=i=>w(r)?r.value=i:null),"max-width":"480"},{default:n(()=>[a(ee,{title:"Delete project role"},{default:n(()=>[a(te,null,{default:n(()=>[...e[9]||(e[9]=[g("This permanently deletes the role and all of its bindings.",-1)])]),_:1}),a(ae,null,{default:n(()=>[a(le),a(A,{onClick:e[4]||(e[4]=i=>r.value=!1)},{default:n(()=>[...e[10]||(e[10]=[g("Cancel",-1)])]),_:1}),a(A,{color:"error",loading:t(v),onClick:R},{default:n(()=>[...e[11]||(e[11]=[g("Delete",-1)])]),_:1},8,["loading"])]),_:1})]),_:1})]),_:1},8,["modelValue"])],64))}});export{Ne as default};
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
import{b as J,n as Q,_ as A,r as X,E as F,c as ee,W as te,g as se,i as ne}from"./DyDuNLRY.js";import{Y as oe,Z as ae}from"#entry";import{E as re,d as ie,w as G,H as le,P as ce,V as f,Y as E,aH as de,a as W,D as a,_ as k,aZ as ue,W as h,at as U,Z as L,$ as x,a1 as V,ak as pe,aW as me,J as P,aa as $,aI as z,a2 as N,a0 as T,ao as ye,al as fe,ab as we,r as j,j as H}from"./-NXdyIEV.js";const M=J,O=Q;function I(e,s){let t=[];for(let n=0;n<Math.max(e.length,s.length);n++)t.push([e[n],s[n]]);return t}function B(...e){return e.reduce((s,t)=>new Set([...s,...t]),new Set)}function he(...e){return e.reduce((s,t)=>new Set(Array.from(s).filter(n=>t.has(n))))}const y={sec:1e3};y.min=60*y.sec;y.h=60*y.min;y.d=24*y.h;y.mo=30*y.d;y.y=365*y.mo;function ge(e){if(Number.isNaN(e))return"never";if(e>y.y*100)return"centuries";let s=[];for(let[t,n]of Object.entries(y).reverse()){if(e<n)continue;let l=Math.floor(e/n);s.push(`${l}${t}`),e-=l*n}return s.length>0?s.join(" "):"0 sec"}const u={};u[1]=new Set("0123456789");u["@"]=new Set("!\"#$%&'()*+,-./:;<=>?@[\\]^_`{|}~");u.v=new Set("aeiouy");u.c=new Set("bcdfghjklmnpqrstvwxz");u.a=B(u.v,u.c);for(const e of"vca")u[e.toUpperCase()]=new Set(Array.from(u[e]).map(s=>s.toUpperCase()));u.l=B(u.a,u.A);u.n=B(u.l,u[1]);u["*"]=B(u.n,u["@"]);const ve={s:"cv",S:"Cv"};function ke(e,s){if(Array.isArray(e)||(e=Array.from(e)),s<0||s>=e.length)throw new Error("Out of bounds index access");return e[s]}function be(e,s){let t=M(s),n=[];for(const l of e){const c=BigInt(l);n.push(Number(t%c)),t/=c}return{values:n,entropyLeft:t}}function q(e){let s=0;for(let t=e;t;s++,t>>=1n);return s-1}function S(e,s){return ge(Number(e)/s*1e3)}function Ve(e){const s=[[1005,"too guessable"],[1000005,"very guessable"],[100000005,"somewhat guessable"],[10000000005,"safely unguessable"]];let t="very unguessable";for(const[n,l]of s)if(e<=BigInt(n)){t=l;break}return t}function Y(e){const t=3416.6666666666665/(2*(y.y/1e3)),l=(360+6*320)/6,c=.12,o=(c+c*.33)/60/1e3,b=l*o+t,w=v=>Number(e/BigInt(v))*b;return{score:Ve(e),guesses:{online_throttling:S(e,100/(y.h/1e3)),online:S(e,10),slow:S(e,1e4),fast:S(e,1e10)},costs:{luks:w(22779),filevault2:w(151300),macos:w(1019200),pbkdf2:w(3029200)}}}class Pe{constructor(s){s=s.split("").map(t=>ve[t]||t).join(""),this.chars=s.split(""),this.length=this.chars.length,this.sets=this.chars.map(t=>u[t]||new Set([t])),this.lengths=this.sets.map(t=>t.size),this.cardinality=this.sets.reduce((t,n)=>t*BigInt(n.size),1n),this.entropy=q(this.cardinality)}apply(s){if(this.cardinality>=2n**BigInt(8*s.length/2))throw new Error("Not enough entropy");const{entropyLeft:t,values:n}=be(this.lengths,s);return{password:I(this.sets,n).map(([c,d])=>ke(c,d)).join(""),entropyLeft:t}}inverse({password:s,entropyLeft:t}){const n=I(this.sets,s.split("")).map(([c,d])=>Array.from(c).indexOf(d)),l=I(this.sets,n).reduceRight((c,[d,o])=>c*BigInt(d.size)+BigInt(o),0n);return O(t*this.cardinality+l)}estimate(){return Y(this.cardinality)}}const _=e=>new Pe(e),C=[];for(let e=0;e<17;e++)for(let s=0;s<3;s++)for(let t=0;t<2;t++){const n=["cvccvc","cvccvc","cvccvc"];n[s]=t?"1cvcvc":"cvccv1";const l=n.join("-");let c;for(let d=0,o=0;d<l.length;d++){const g=l[d];["c","v"].includes(g)&&(o===e&&(c=l.slice(0,d)+g.toUpperCase()+l.slice(d+1)),o++)}if(!c)throw new Error("Cannot find uppercase syllable index");C.push(c)}const Ne=(()=>{const e=BigInt(C.length),s=_(C[0]).cardinality*e;return{length:20,cardinality:s,entropy:q(s),estimate:()=>Y(s),apply:t=>{let n=M(t);const l=Number(n%e);return _(C[l]).apply(O(n/e))},inverse(t){const l=t.password.split("").map(g=>{const b=Object.entries(u).filter(([w,v])=>["c","v","C","V","1"].includes(w)).map(([w,v])=>[w,he(v,new Set([g]))]).filter(([w,v])=>v.size>0);if(b.length>1)throw new Error("Too much possible values, cannot detect mask.");return b.length?b[0][0]:g}).join(""),c=C.indexOf(l);if(c<0)throw new Error("Unknown mask");const d=_(C[c]).inverse(t),o=M(d);return O(o*e+BigInt(c))}}})(),Ee={class:"ml-2"},Ce={key:0,class:"mt-1"},xe={key:1},Te={key:1,class:"mb-4"},Se={class:"d-flex justify-space-between align-center mb-2"},Be={class:"text-caption text-medium-emphasis mt-1"},Ue={key:0,class:"mt-2"},Ie={class:"text-caption text-medium-emphasis ml-4"},Ae=re({__name:"UnlockMethodForm",props:{showTypeSelector:{type:Boolean,default:!0},showDescription:{type:Boolean,default:!0},showDisplayName:{type:Boolean,default:!0},initialType:{default:"password"},displayNameLabel:{default:"Display Name"},displayNameHint:{default:"A friendly name to identify this unlock method"},passwordHint:{default:"Password must be strong enough to resist offline attacks"},defaultDisplayName:{default:""},defaultDescription:{default:""}},emits:["update:valid","update:form"],setup(e,{expose:s,emit:t}){const n=e,l=t,c=j(!1),d=j(!1),o=ie({type:n.initialType,title:"",description:"",password:"",confirmPassword:""}),g=H(()=>n.showDisplayName?[r=>!!r||"Display name is required",r=>r&&r.length<=100||"Display name must be less than 100 characters"]:[]),b=[r=>!!r||"Password is required"],w=[r=>!!r||"Confirm password is required",r=>r===o.password||"Passwords do not match"],v=()=>{const r=Ne.apply(X(32)).password;o.password=r,o.confirmPassword=r,d.value=!0},m=H(()=>{if(!o.password)return null;const r=oe.zxcvbn(o.password),i={0:"very-weak",1:"weak",2:"fair",3:"strong",4:"very-strong"},p=Math.max(0,Math.min(4,r.score));return{score:r.score/4*100,level:i[p],estimatedCrackTime:r.crack_times_display.offline_slow_hashing_1e4_per_second||"unknown",recommendations:r.feedback.suggestions||[],warning:r.feedback.warning||void 0}}),R=r=>{switch(r){case"very-weak":return"error";case"weak":return"warning";case"fair":return"info";case"strong":return"success";case"very-strong":return"success";default:return"info"}},D=r=>{switch(r){case"password":return"mdi-key-variant";case"passkey":return"mdi-fingerprint";default:return"mdi-lock"}},Z=()=>{o.type=n.initialType,o.title=n.defaultDisplayName,o.description=n.defaultDescription,o.password="",o.confirmPassword="",d.value=!1};return G(c,r=>{l("update:valid",r)}),G(o,r=>{l("update:form",{...r})},{deep:!0}),le(()=>{o.title=n.defaultDisplayName,o.description=n.defaultDescription}),s({resetForm:Z,form:ce(o)}),(r,i)=>(f(),E(de,{modelValue:a(c),"onUpdate:modelValue":i[6]||(i[6]=p=>W(c)?c.value=p:null)},{default:k(()=>[e.showTypeSelector?(f(),E(ue,{key:0,modelValue:a(o).type,"onUpdate:modelValue":i[0]||(i[0]=p=>a(o).type=p),mandatory:"",variant:"outlined",density:"compact",divided:"",class:"w-100 mb-6"},{default:k(()=>[h(U,{value:"password",class:"flex-grow-1"},{default:k(()=>[h(L,{icon:D("password"),class:"mr-2"},null,8,["icon"]),i[7]||(i[7]=x(" Password ",-1))]),_:1}),h(U,{value:"passkey",class:"flex-grow-1"},{default:k(()=>[h(L,{icon:D("passkey"),class:"mr-2"},null,8,["icon"]),i[8]||(i[8]=x(" Passkey ",-1))]),_:1})]),_:1},8,["modelValue"])):V("",!0),e.showDisplayName?(f(),E(pe,{key:1,modelValue:a(o).title,"onUpdate:modelValue":i[1]||(i[1]=p=>a(o).title=p),class:"mb-4",variant:"outlined",density:"compact",label:e.displayNameLabel,rules:a(g),placeholder:"My unlock method",hint:e.displayNameHint,"persistent-hint":""},null,8,["modelValue","label","rules","hint"])):V("",!0),e.showDescription?(f(),E(me,{key:2,modelValue:a(o).description,"onUpdate:modelValue":i[2]||(i[2]=p=>a(o).description=p),class:"mb-4",variant:"outlined",density:"compact",label:"Description",placeholder:"Optional description for this unlock method",rows:"2","auto-grow":"","hide-details":""},null,8,["modelValue"])):V("",!0),a(o).type==="password"?(f(),P($,{key:3},[h(a(A),{modelValue:a(o).password,"onUpdate:modelValue":i[3]||(i[3]=p=>a(o).password=p),visible:a(d),"onUpdate:visible":i[4]||(i[4]=p=>W(d)?d.value=p:null),class:"mb-4",label:"Password",rules:b,hint:e.passwordHint,"persistent-hint":""},null,8,["modelValue","visible","hint"]),h(U,{type:"button",class:"mb-4",variant:"tonal","prepend-icon":"mdi-auto-fix",onClick:v},{default:k(()=>[...i[9]||(i[9]=[x(" Generate Secure Password ",-1)])]),_:1}),h(a(A),{modelValue:a(o).confirmPassword,"onUpdate:modelValue":i[5]||(i[5]=p=>a(o).confirmPassword=p),class:"mb-4",label:"Confirm Password",rules:w},null,8,["modelValue"]),a(m)&&a(m).score<40?(f(),E(z,{key:0,type:a(m).score<20?"error":"warning",density:"compact",class:"mb-4"},{default:k(()=>[N("div",Ee,[N("strong",null,T(a(m).score<20?"Very Weak":"Weak")+" Password:",1),a(m).warning?(f(),P("div",Ce,T(a(m).warning),1)):(f(),P("div",xe," This password may be vulnerable to offline attacks. Consider using a stronger password. "))])]),_:1},8,["type"])):V("",!0),a(m)?(f(),P("div",Te,[N("div",Se,[i[10]||(i[10]=N("span",{class:"text-caption"},"Password Strength",-1)),h(ye,{color:R(a(m).level),size:"small",variant:"flat"},{default:k(()=>[x(T(a(m).level.replace("-"," ").toUpperCase()),1)]),_:1},8,["color"])]),h(fe,{"model-value":a(m).score,color:R(a(m).level),height:"6",rounded:""},null,8,["model-value","color"]),N("div",Be," Estimated crack time: "+T(a(m).estimatedCrackTime),1),a(m).recommendations.length>0?(f(),P("div",Ue,[i[11]||(i[11]=N("div",{class:"text-caption font-weight-medium mb-1"},"Suggestions:",-1)),N("ul",Ie,[(f(!0),P($,null,we(a(m).recommendations,p=>(f(),P("li",{key:p},T(p),1))),128))])])):V("",!0)])):V("",!0)],64)):a(o).type==="passkey"?(f(),E(z,{key:4,type:"info",density:"compact",class:"mb-4"},{default:k(()=>[...i[12]||(i[12]=[x(" You'll be prompted to create a passkey using your device's biometric authentication or security key when you click Create. ",-1)])]),_:1})):V("",!0)]),_:1},8,["modelValue"]))}});async function K(e,s){const t=await se(),n=await s.encrypt(t),l=ae(n),c=await ne(t);return{meta:e,encryptedIdentity:l,recipient:c}}async function _e(e,s){const t=new F;return t.setPassphrase(e),{type:"password",...await K(s,t)}}async function Me(e,s){if(!e.title)throw new Error("Display name is required for passkey unlock method");const t=await ee({keyName:`[${s.id}] ${s.name} | ${e.title}`}),n=new F;return n.addRecipient(new te({identity:t})),{type:"passkey",...await K(e,n),passkeyIdentity:t}}function Ge(e,s){const t={title:e.title,description:e.description};if(e.type==="password")return _e(e.password,t);if(e.type==="passkey")return Me(t,s);throw new Error(`Unsupported unlock method type: ${e.type}`)}export{Ae as _,Ge as c};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
import{
|
|
1
|
+
import{m as L,_ as B,g as q,u as z,q as A,n as W}from"#entry";import{E as N,V as o,J as h,W as u,_ as n,a5 as F,w as R,a2 as d,aa as V,ab as y,D as s,aN as J,a1 as w,ai as M,ae as U,Y as m,Z as C,$ as I,a0 as _,a7 as P,at as x,as as G,aj as Y,a3 as Z,a4 as S,B as H,j as $}from"./-NXdyIEV.js";import{P as K}from"./DzP42O4c.js";import"./B69Z0Xk1.js";import"./CxoCegAs.js";import"./DyDuNLRY.js";const O={class:"tab-wrapper"},Q=N({__name:"ProjectTabWrapper",props:{projectId:{}},setup(T){return L(T.projectId),(p,j)=>(o(),h("div",O,[u(K,{"project-id":T.projectId,"can-unlock":""},{default:n(()=>[F(p.$slots,"default",{},void 0,!0)]),_:3},8,["project-id"])]))}}),X=B(Q,[["__scopeId","data-v-cbe63052"]]),ee={class:"data-settings-panel"},te={class:"panel-layout"},ae={class:"vertical-tabs"},se={class:"tab-section"},oe={class:"tab-label"},re={class:"tab-section"},ne={class:"tab-label"},ce={class:"tab-section"},le={class:"tab-label"},ie={class:"content-area"},de=N({__name:"settings",setup(T){const p=q(),j=z(),r=H(null);R(j.currentRoute,async t=>{t.path.startsWith("/settings/")&&(A.info({from:r.value?.path,to:t.path},"settings route changed"),r.value=t),t?.name==="settings"&&await f(l.value.beforeGlobalTabs[0])},{immediate:!0});const l=$(()=>{const b=j.getRoutes().filter(a=>a.path.startsWith("/settings/")&&a.path!=="/settings"&&a.meta?.tab),c=[],e=[];for(const a of b){const i=a.meta.tab;if(!i||!a.path.startsWith("/settings/"))continue;const k={name:a.name,icon:i.icon,label:i.label,order:i.order||50,isProjectTab:a.path.startsWith("/settings/projects/"),subpages:i.subpages??[]};k.isProjectTab?e.push(k):c.push(k)}c.sort((a,i)=>a.order-i.order),e.sort((a,i)=>a.order-i.order);const g=c.filter(a=>a.order<90),E=c.filter(a=>a.order>=90);return{beforeGlobalTabs:g,projectTabs:e,afterGlobalTabs:E}}),v=t=>r.value&&(t.name===r.value.name||t.subpages.includes(r.value.name)),D=$(()=>l.value.beforeGlobalTabs.find(v)||l.value.projectTabs.find(v)),f=async t=>{if(!t.isProjectTab){await W({name:t.name});return}await W({name:t.name,params:{projectId:p.focusedProjectId}})};return R(()=>p.focusedProjectId,async(t,b)=>{const c=j.currentRoute.value;!c||t===b&&c.path.startsWith("/settings/projects/")||!c.path.startsWith("/settings/")||(t&&l.value.projectTabs.length>0?await f(D.value??l.value.projectTabs[0]):!t&&c.path.startsWith("/settings/projects/")&&await f(l.value.beforeGlobalTabs[0]))}),(t,b)=>{const c=U("RouterView");return o(),h("div",ee,[d("div",te,[d("div",ae,[d("div",se,[(o(!0),h(V,null,y(s(l).beforeGlobalTabs,e=>(o(),m(x,{key:e.name,variant:"text",class:P(["tab-item",{active:v(e)}]),onClick:g=>f(e)},{default:n(()=>[u(C,{class:"tab-icon"},{default:n(()=>[I(_(e.icon),1)]),_:2},1024),d("span",oe,_(e.label),1)]),_:2},1032,["class","onClick"]))),128))]),u(G,{class:"section-divider"}),d("div",re,[u(J,{modelValue:s(p).focusedProjectId,"onUpdate:modelValue":b[0]||(b[0]=e=>s(p).focusedProjectId=e),items:s(p).projects,label:"Project","item-title":"meta.title","item-value":"id",variant:"outlined",density:"compact",class:"project-selector","prepend-inner-icon":"mdi-folder-outline",clearable:"","hide-details":""},null,8,["modelValue","items"]),s(p).focusedProjectId?(o(!0),h(V,{key:0},y(s(l).projectTabs,e=>(o(),m(x,{key:e.name,variant:"text",class:P(["tab-item",{active:v(e)}]),onClick:g=>f(e)},{default:n(()=>[u(C,{class:"tab-icon"},{default:n(()=>[I(_(e.icon),1)]),_:2},1024),d("span",ne,_(e.label),1)]),_:2},1032,["class","onClick"]))),128)):w("",!0)]),u(G,{class:"section-divider"}),d("div",ce,[(o(!0),h(V,null,y(s(l).afterGlobalTabs,e=>(o(),m(x,{key:e.name,variant:"text",class:P(["tab-item",{active:v(e)}]),onClick:g=>f(e)},{default:n(()=>[u(C,{class:"tab-icon"},{default:n(()=>[I(_(e.icon),1)]),_:2},1024),d("span",le,_(e.label),1)]),_:2},1032,["class","onClick"]))),128))])]),d("div",ie,[u(M,{class:"content-card",variant:"flat"},{default:n(()=>[u(Y,{class:"content-card-text"},{default:n(()=>[s(r)?(o(),m(c,{key:0,route:s(r)},{default:n(({Component:e})=>[s(r).params.projectId?(o(),m(Z,{key:0},{default:n(()=>[(o(),m(s(X),{"project-id":s(r).params.projectId,key:s(r).params.projectId},{default:n(()=>[(o(),m(S(e),{params:s(r).params},null,8,["params"]))]),_:2},1032,["project-id"]))]),_:2},1024)):(o(),m(S(e),{key:1,params:s(r).params},null,8,["params"]))]),_:1},8,["route"])):w("",!0)]),_:1})]),_:1})])])])}}}),ve=B(de,[["__scopeId","data-v-618030e5"]]);export{ve as default};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
import{g as A,a as L}from"./DfvKjH24.js";import{
|
|
1
|
+
import{g as A,a as L}from"./DfvKjH24.js";import{D as w,K as _,aG as N,E as G,bu as H,v as K,_ as J}from"#entry";import{_ as W,I as T}from"./CHVFVVjA.js";import{S as Y}from"./DlfNK0cA.js";import{D as Z,a as q}from"./BvF6CC6t.js";import{O as Q}from"./0MzBjiBY.js";import{_ as U}from"./DSTHpVUV.js";import{E as O,aG as B,V as I,Y as x,D as t,_ as l,W as r,a2 as f,a1 as P,a0 as E,J as M,aO as X,aP as j,B as C,w as tt,j as D,aa as et,aS as at,b2 as it,Z as ot,$}from"./-NXdyIEV.js";import{E as st}from"./CrAApG3c.js";import{_ as nt}from"./CJnh15-L.js";import{S as rt}from"./DfDsDJD2.js";import{C as F}from"./BzfFclT9.js";import{_ as lt}from"./CBtqoa0c.js";import{_ as dt}from"./BVxJafKI.js";import{_ as pt}from"./BbYXjaP8.js";import"./BxAss8Tj.js";import"./B69Z0Xk1.js";import"./CxoCegAs.js";import"./4vGmo7Ws.js";import"./D9y446qR.js";import"./D4_5UqG-.js";const ut={class:"d-flex align-center ga-3"},mt={class:"d-flex flex-column"},ct={class:"text-body-2 font-weight-medium"},gt={key:0,class:"text-caption text-medium-emphasis"},yt={class:"d-flex align-center ga-3"},vt={class:"d-flex flex-column"},ft={class:"text-body-2 font-weight-medium"},ht={key:0,class:"text-caption text-medium-emphasis"},V=O({__name:"EntityReferencesTable",props:X({projectId:{},direction:{},data:{},loading:{type:Boolean},hideHeader:{type:Boolean},height:{}},{search:{},searchModifiers:{},sortBy:{},sortByModifiers:{},page:{},pageModifiers:{},itemsPerPage:{},itemsPerPageModifiers:{}}),emits:["update:search","update:sortBy","update:page","update:itemsPerPage"],setup(n){const c=B(n,"search"),g=B(n,"sortBy"),S=B(n,"page"),h=B(n,"itemsPerPage"),{libraryStore:v}=w(),b=[{key:n.direction==="outgoing"?"to":"from",title:"Entity"},{key:"group",title:"Group"},{key:"actions",title:"Actions",align:"center"}],m=u=>n.direction==="outgoing"?u.toEntityId:u.fromEntityId,d=u=>n.direction==="outgoing"?u.toEntityType:u.fromEntityType,p=u=>n.direction==="outgoing"?u.toEntityMeta:u.fromEntityMeta,i=u=>A({entities:v.library.entities,entityType:d(u),meta:p(u)});return(u,y)=>(I(),x(t(rt),{search:c.value,"onUpdate:search":y[0]||(y[0]=o=>c.value=o),"sort-by":g.value,"onUpdate:sortBy":y[1]||(y[1]=o=>g.value=o),page:S.value,"onUpdate:page":y[2]||(y[2]=o=>S.value=o),"items-per-page":h.value,"onUpdate:itemsPerPage":y[3]||(y[3]=o=>h.value=o),headers:b,data:n.data,loading:n.loading,"hide-header":n.hideHeader,height:n.height},{"item.from":l(({item:o})=>[f("div",ut,[i(o).metaForIcon?(I(),x(t(F),{key:0,meta:i(o).metaForIcon,size:24},null,8,["meta"])):P("",!0),f("div",mt,[f("div",ct,E(i(o).title),1),i(o).subtitle?(I(),M("div",gt,E(i(o).subtitle),1)):P("",!0)])])]),"item.to":l(({item:o})=>[f("div",yt,[i(o).metaForIcon?(I(),x(t(F),{key:0,meta:i(o).metaForIcon,size:24},null,8,["meta"])):P("",!0),f("div",vt,[f("div",ft,E(i(o).title),1),i(o).subtitle?(I(),M("div",ht,E(i(o).subtitle),1)):P("",!0)])])]),"item.actions":l(({item:o})=>[r(t(lt),{"page-name":"settings.entity-details","page-params":{projectId:n.projectId,entityId:m(o)}},null,8,["page-params"])]),_:1},8,["search","sort-by","page","items-per-page","data","loading","hide-header","height"]))}}),It={class:"text-body-2"},bt={class:"d-flex align-center"},Pt={class:"entity-snapshot-editor"},Et=O({__name:"[snapshotId]",props:{params:{}},async setup(n){let c,g;const{libraryStore:S}=w(),{projectStore:h}=w(),v=_(),R=N(),b=D(()=>String(R.params.snapshotId??n.params.snapshotId));h.initializing?([c,g]=j(()=>G(()=>h.initialized).toBe(!0)),await c,g(),h.addLibraryRoot()):([c,g]=j(()=>h.initialize1()),await c,g(),[c,g]=j(()=>h.initialize2()),await c,g());const m=C(),d=C(v.snapshots("",b.value)),p=C(v.snapshotOutgoingReferences(b.value)),i=C(v.snapshotIncomingReferences(b.value)),u=async a=>{const e=await v.getSnapshot(a);if(!e){H(K({statusCode:404,statusMessage:"Entity snapshot not found"}));return}m.value=e,d.value=v.snapshots(e.entity.id,a),p.value=v.snapshotOutgoingReferences(a),i.value=v.snapshotIncomingReferences(a),await d.value.load(),p.value.load(),i.value.load()};[c,g]=j(()=>u(b.value)),await c,g(),tt(b,async a=>{await u(a)});const y=[{key:"entityId",label:"Entity ID"},{key:"type",label:"Type"},{key:"snapshotId",label:"Snapshot ID"},{key:"snapshotCreatedAt",label:"Snapshot Created"},{key:"operationId",label:"Operation ID"},{key:"stateId",label:"State ID"}],o=D(()=>{const a=m.value;if(a)return{snapshotId:a.snapshot.id,entityId:a.entity.id,entityType:a.entity.type,entityIdentity:a.entity.identity,content:a.snapshot.content}}),k=D(()=>{const a=m.value;return a?L({entities:S.library?.entities??{},entityType:a.entity.type,content:a.snapshot.content}):{title:"Unknown",subtitle:void 0,metaForIcon:void 0}}),z=D(()=>{const a=k.value.metaForIcon;if(a?.title)return{title:a.title,...a.icon?{icon:a.icon}:{},...a.iconColor?{iconColor:a.iconColor}:{}}});return(a,e)=>(I(),x(t(q),null,{default:l(()=>[r(Y,{meta:t(z),"fallback-icon":"mdi-database",title:t(k).title,description:t(k).subtitle},null,8,["meta","title","description"]),t(m)?(I(),M(et,{key:0},[r(t(Z),{title:"Entity Snapshot Details",items:y},{"item.entityId":l(()=>[r(t(T),{value:t(m).entity.id},null,8,["value"])]),"item.type":l(()=>[f("div",It,E(t(m).entity.type),1)]),"item.snapshotId":l(()=>[r(t(T),{value:t(m).snapshot.id},null,8,["value"])]),"item.snapshotCreatedAt":l(()=>[r(t(W),{value:t(m).snapshot.createdAt},null,8,["value"])]),"item.operationId":l(()=>[r(t(st),{id:t(m).snapshot.operationId,"fallback-icon":"mdi-history","page-name":"settings.operation-details","page-params":{operationId:t(m).snapshot.operationId},"max-length":28},null,8,["id","page-params"])]),"item.stateId":l(()=>[r(t(nt),{item:{stateId:t(m).snapshot.stateId}},null,8,["item"])]),_:1}),r(at,{elevation:0},{default:l(()=>[r(t(Q),{title:"Identity",data:t(m).entity.identity,language:"yaml",icon:"mdi-identifier"},null,8,["data"]),r(it,{color:"#2d2d2d","bg-color":"#1e1e1e"},{title:l(()=>[f("div",bt,[r(ot,{class:"mr-2"},{default:l(()=>[...e[12]||(e[12]=[$("mdi-code-json",-1)])]),_:1}),e[13]||(e[13]=$(" Content ",-1))])]),text:l(()=>[f("div",Pt,[t(o)?(I(),x(pt,{key:0,entity:t(o),"project-id":n.params.projectId,height:"400px"},null,8,["entity","project-id"])):P("",!0)])]),_:1}),r(t(U),{title:"Other snapshots",icon:"mdi-history",count:t(d).data.value.total},{default:l(()=>[r(t(dt),{search:t(d).search.value,"onUpdate:search":e[0]||(e[0]=s=>t(d).search.value=s),"sort-by":t(d).sortBy.value,"onUpdate:sortBy":e[1]||(e[1]=s=>t(d).sortBy.value=s),page:t(d).page.value,"onUpdate:page":e[2]||(e[2]=s=>t(d).page.value=s),"items-per-page":t(d).itemsPerPage.value,"onUpdate:itemsPerPage":e[3]||(e[3]=s=>t(d).itemsPerPage.value=s),"project-id":n.params.projectId,data:t(d).data.value,loading:t(d).isLoading.value,"fallback-icon-meta":t(k).metaForIcon,"hide-header":""},null,8,["search","sort-by","page","items-per-page","project-id","data","loading","fallback-icon-meta"])]),_:1},8,["count"]),r(t(U),{title:"References to other entities",icon:"mdi-call-made",count:t(p).data.value.total},{default:l(()=>[r(t(V),{search:t(p).search.value,"onUpdate:search":e[4]||(e[4]=s=>t(p).search.value=s),"sort-by":t(p).sortBy.value,"onUpdate:sortBy":e[5]||(e[5]=s=>t(p).sortBy.value=s),page:t(p).page.value,"onUpdate:page":e[6]||(e[6]=s=>t(p).page.value=s),"items-per-page":t(p).itemsPerPage.value,"onUpdate:itemsPerPage":e[7]||(e[7]=s=>t(p).itemsPerPage.value=s),"project-id":n.params.projectId,data:t(p).data.value,loading:t(p).isLoading.value,direction:"outgoing","hide-header":""},null,8,["search","sort-by","page","items-per-page","project-id","data","loading"])]),_:1},8,["count"]),r(t(U),{title:"Entities referencing this entity",icon:"mdi-call-received",count:t(i).data.value.total},{default:l(()=>[r(t(V),{search:t(i).search.value,"onUpdate:search":e[8]||(e[8]=s=>t(i).search.value=s),"sort-by":t(i).sortBy.value,"onUpdate:sortBy":e[9]||(e[9]=s=>t(i).sortBy.value=s),page:t(i).page.value,"onUpdate:page":e[10]||(e[10]=s=>t(i).page.value=s),"items-per-page":t(i).itemsPerPage.value,"onUpdate:itemsPerPage":e[11]||(e[11]=s=>t(i).itemsPerPage.value=s),"project-id":n.params.projectId,data:t(i).data.value,loading:t(i).isLoading.value,direction:"incoming","hide-header":""},null,8,["search","sort-by","page","items-per-page","project-id","data","loading"])]),_:1},8,["count"])]),_:1})],64)):P("",!0)]),_:1}))}}),Gt=J(Et,[["__scopeId","data-v-57d6963d"]]);export{Gt as default};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
import{
|
|
1
|
+
import{y as R,A as B,B as I}from"#entry";import{R as O}from"./01ZR8FKx.js";import{E as h,aG as M,r as T,w as E,V as q,Y as x,D as y,aO as P,j as v,u as V}from"./-NXdyIEV.js";const D=h({__name:"BackendRoleRulesBuilder",props:P({options:{},allowedRules:{},allowEmpty:{type:Boolean,default:!1},sectionTitle:{default:"Rules"}},{modelValue:{required:!0},modelModifiers:{}}),emits:["update:modelValue"],setup(s){const a=M(s,"modelValue"),j=v(()=>R.flatMap((e,i)=>{const t=e.permissions.filter(l=>!s.allowedRules||s.allowedRules.some(c=>c.permissions.includes(l.name)));if(t.length===0)return[];const f=t.some(l=>s.allowedRules?.some(c=>c.permissions.includes(l.name)&&!c.restrictions))?[...e.supportedRestrictions]:e.supportedRestrictions.filter(l=>s.allowedRules?.some(c=>c.permissions.some(r=>t.some(n=>n.name===r))&&c.restrictions?.some(r=>r.type===l)));return[{id:String(i),title:e.title,permissions:t.map(l=>({...l})),supportedRestrictions:f,resourceType:"resourceType"in e?e.resourceType:void 0}]})),w=[{id:"resources",title:"Resources"},{id:"projects",title:"Projects"},{id:"project-spaces",title:"Project spaces",recursive:!0},{id:"projects-in-spaces",title:"Projects in spaces",recursive:!0}],m=v(()=>({...Object.fromEntries(Object.entries(s.options.resources).map(([e,i])=>[e,i.map(t=>({id:t.id,title:t.meta.title}))])),projects:s.options.projects.map(e=>({id:e.id,title:e.meta.title})),"project-spaces":s.options.projectSpaces.map(e=>({id:e.id,title:e.meta.title})),"projects-in-spaces":s.options.projectSpaces.map(e=>({id:e.id,title:e.meta.title}))})),o=v(()=>s.allowedRules?Object.fromEntries(Object.entries(m.value).map(([e,i])=>{const t=R.filter(r=>e==="resources"?!1:r.supportedRestrictions.includes(e)),p=R.find(r=>"resourceType"in r&&r.resourceType===e),f=(p?[p]:t).flatMap(r=>r.permissions.map(n=>n.name));if(s.allowedRules.some(r=>r.permissions.some(n=>f.includes(n))&&!r.restrictions))return[e,i];const c=new Set(s.allowedRules.flatMap(r=>r.permissions.some(n=>f.includes(n))?(r.restrictions??[]).filter(n=>e==="resources"?n.type==="resources":n.type===e).flatMap(g):[]));return[e,i.filter(r=>c.has(r.id))]})):m.value);let u=!1;const d=T(S(a.value));E(a,e=>{if(u){u=!1;return}d.value=S(e)},{deep:!0});function S(e){return e.map(i=>({groupId:String(R.findIndex(t=>t.permissions.some(p=>p.name===i.permissions[0]))),permissions:[...i.permissions],restrictions:(i.restrictions??[]).map(t=>({type:t.type,ids:g(t),recursive:"recursive"in t?t.recursive:void 0}))}))}function b(e){d.value=e,u=!0,a.value=e.map(i=>({permissions:i.permissions,...i.restrictions.length>0?{restrictions:i.restrictions.map(t=>k(t))}:{}}))}function g(e){switch(e.type){case"resources":return e.resourceIds;case"projects":return e.projectIds;case"project-spaces":case"projects-in-spaces":return e.projectSpaceIds}}function k(e){switch(e.type){case"resources":return{type:"resources",resourceIds:e.ids};case"projects":return{type:"projects",projectIds:e.ids};case"project-spaces":return{type:"project-spaces",projectSpaceIds:e.ids,recursive:e.recursive??!1};case"projects-in-spaces":return{type:"projects-in-spaces",projectSpaceIds:e.ids,recursive:e.recursive??!1};default:throw new Error(`Unsupported backend restriction "${e.type}"`)}}return(e,i)=>(q(),x(O,{"model-value":y(d),groups:y(j),"restriction-descriptors":w,options:y(o),"allow-empty":s.allowEmpty,"section-title":s.sectionTitle,"onUpdate:modelValue":b},null,8,["model-value","groups","options","allow-empty","section-title"]))}}),N=B("backend-role-settings",()=>{const{$client:s}=V(),a=I(o=>s.backendRoleSettings.query.query(o));async function j(o){const u=await s.backendRoleSettings.create.mutate(o);return await a.load(),u}async function w(o,u){const d=await s.backendRoleSettings.update.mutate({roleId:o,role:u});return await a.load(),d}async function m(o){await s.backendRoleSettings.delete.mutate({roleId:o}),await a.load()}return{items:a,get:async o=>await s.backendRoleSettings.get.query({roleId:o}),create:j,update:w,delete:m,getRestrictionOptions:async()=>await s.backendRoleSettings.getRestrictionOptions.query()}});export{D as _,N as u};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
import{
|
|
1
|
+
import{K as p,D as c,v as n,E as d,n as m}from"#entry";import{E as l,aP as s,J as u,V as f}from"./-NXdyIEV.js";import"./B69Z0Xk1.js";import"./CxoCegAs.js";const S=l({__name:"[entityId]",props:{params:{}},async setup(o){let t,a;const r=p(),{projectStore:e}=c();e.initializing?([t,a]=s(()=>d(()=>e.initialized).toBe(!0)),await t,a(),e.addLibraryRoot()):([t,a]=s(()=>e.initialize1()),await t,a(),[t,a]=s(()=>e.initialize2()),await t,a());const i=([t,a]=s(()=>r.get(o.params.entityId)),t=await t,a(),t);if(!i)throw n({statusCode:404,statusMessage:"Entity not found"});if(!i.lastSnapshot?.id)throw n({statusCode:404,statusMessage:"Entity snapshot not found"});return[t,a]=s(()=>m({name:"settings.entity-snapshot-details",params:{projectId:o.params.projectId,snapshotId:i.lastSnapshot.id}})),await t,a(),(y,h)=>(f(),u("div"))}});export{S as default};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
import{
|
|
1
|
+
import{O as p,D as g,E as d}from"#entry";import"./DlfNK0cA.js";import{S as l}from"./DXmPWjsX.js";import{_ as c}from"./BDLjTA3_.js";import{E as f,aP as n,Y as u,_ as P,D as t,V as y,W as _}from"./-NXdyIEV.js";import"./B69Z0Xk1.js";import"./CxoCegAs.js";import"./4vGmo7Ws.js";import"./D9y446qR.js";import"./DfDsDJD2.js";import"./CHVFVVjA.js";import"./CBtqoa0c.js";const E=f({__name:"index",async setup(j){let r,a;const e=p(),{projectStore:o}=g();return o.initializing?([r,a]=n(()=>d(()=>o.initialized).toBe(!0)),await r,a(),o.addLibraryRoot()):([r,a]=n(()=>o.initialize1()),await r,a(),[r,a]=n(()=>o.initialize2()),await r,a()),e.items.reset(),(S,i)=>(y(),u(t(l),{title:"Instance Triggers",icon:"mdi-flash-outline",description:"View and manage triggers created by project instances."},{default:P(({height:m})=>[_(t(c),{search:t(e).items.search,"onUpdate:search":i[0]||(i[0]=s=>t(e).items.search=s),"sort-by":t(e).items.sortBy,"onUpdate:sortBy":i[1]||(i[1]=s=>t(e).items.sortBy=s),page:t(e).items.page,"onUpdate:page":i[2]||(i[2]=s=>t(e).items.page=s),"items-per-page":t(e).items.itemsPerPage,"onUpdate:itemsPerPage":i[3]||(i[3]=s=>t(e).items.itemsPerPage=s),"project-id":t(o).projectId,data:t(e).items.data,loading:t(e).items.isLoading,height:m},null,8,["search","sort-by","page","items-per-page","project-id","data","loading","height"])]),_:1}))}});export{E as default};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
import{
|
|
1
|
+
import{D as v,G as k,i as I,v as b,E as A}from"#entry";import{_ as y}from"./Dz1kPrb2.js";import{_ as w}from"./CJnh15-L.js";import{_ as S}from"./DjTKfsHU.js";import{_ as d,I as P}from"./CHVFVVjA.js";import{S as g}from"./DlfNK0cA.js";import{D as C,a as D}from"./BvF6CC6t.js";import{E as V,aP as r,Y as $,_ as a,D as e,V as x,W as n,at as z,$ as c,ao as j,a0 as p}from"./-NXdyIEV.js";import"./B69Z0Xk1.js";import"./CxoCegAs.js";import"./CrAApG3c.js";import"./4vGmo7Ws.js";import"./D9y446qR.js";const F=V({__name:"[panelId]",props:{params:{}},async setup(m){let i,o;const{projectStore:s}=v(),u=k(),f=I();s.initializing?([i,o]=r(()=>A(()=>s.initialized).toBe(!0)),await i,o(),s.addLibraryRoot()):([i,o]=r(()=>s.initialize1()),await i,o(),[i,o]=r(()=>s.initialize2()),await i,o());const t=([i,o]=r(()=>u.get(m.params.panelId)),i=await i,o(),i);if(!t)throw b({statusCode:404,statusMessage:"Panel not found"});const _=[{key:"panelId",label:"Panel ID"},{key:"name",label:"Name"},{key:"status",label:"Status"},{key:"instance",label:"Instance"},{key:"serviceAccount",label:"Service Account"},{key:"workerVersion",label:"Worker Version"},{key:"createdAt",label:"Created"},{key:"updatedAt",label:"Last Updated"}];return(B,l)=>(x(),$(e(D),null,{default:a(()=>[n(g,{meta:e(t).meta,"fallback-icon":"mdi-view-dashboard-outline",title:e(t).meta.title,description:e(t).meta.description},{actions:a(()=>[n(z,{variant:"outlined","prepend-icon":"mdi-open-in-new",disabled:!e(t).online,onClick:l[0]||(l[0]=E=>e(f).openPanel(m.params.projectId,e(t).id))},{default:a(()=>[...l[1]||(l[1]=[c(" Open Panel ",-1)])]),_:1},8,["disabled"])]),_:1},8,["meta","title","description"]),n(e(C),{title:"Panel Details",items:_},{"item.panelId":a(()=>[n(e(P),{value:e(t).id},null,8,["value"])]),"item.name":a(()=>[c(p(e(t).name),1)]),"item.status":a(()=>[n(j,{color:e(t).online?"success":void 0,"prepend-icon":e(t).online?"mdi-access-point":"mdi-access-point-off",size:"small",variant:"tonal"},{default:a(()=>[c(p(e(t).online?"Online":"Offline"),1)]),_:1},8,["color","prepend-icon"])]),"item.instance":a(()=>[n(e(w),{item:{stateId:e(t).stateId}},null,8,["item"])]),"item.serviceAccount":a(()=>[n(e(y),{item:{serviceAccountId:e(t).serviceAccountId,serviceAccountMeta:e(t).serviceAccountMeta}},null,8,["item"])]),"item.workerVersion":a(()=>[n(e(S),{item:e(t)},null,8,["item"])]),"item.createdAt":a(()=>[n(e(d),{value:e(t).createdAt},null,8,["value"])]),"item.updatedAt":a(()=>[n(e(d),{value:e(t).updatedAt},null,8,["value"])]),_:1})]),_:1}))}});export{F as default};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
import{S as a}from"./
|
|
1
|
+
import{S as a}from"./DlfNK0cA.js";import{E as i,a8 as o,V as c,J as n,W as r,_ as l,a5 as s,a2 as d}from"./-NXdyIEV.js";import{_ as p}from"#entry";const _={class:"settings-list-page"},g={class:"table-container"},m="calc(100vh - 285px)",f=i({__name:"SettingsListPage",props:{title:{},icon:{},description:{}},setup(t){return o(),(e,h)=>(c(),n("div",_,[r(a,{title:t.title,"fallback-icon":t.icon,description:t.description},{actions:l(()=>[s(e.$slots,"actions",{},void 0,!0)]),_:3},8,["title","fallback-icon","description"]),d("div",g,[s(e.$slots,"default",{height:m},void 0,!0)])]))}}),v=p(f,[["__scopeId","data-v-a5b16b6a"]]);export{v as S};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
import{
|
|
1
|
+
import{M as W,_ as Y}from"#entry";import{V as z,s as F}from"./D4_5UqG-.js";import{_ as G}from"./DvLL-V6a.js";import{E as J,aG as H,w as Q,V as C,Y as D,_ as n,W as s,ai as X,aj as Z,aU as h,aV as K,a2 as V,ak as N,a as y,D as r,aW as _,aN as ee,aI as te,$ as x,a1 as ae,as as le,aJ as se,aK as ie,at as S,ah as re,aO as T,r as p,j as u}from"./-NXdyIEV.js";import"./DlfNK0cA.js";const ne={class:"builder"},oe={class:"preview"},ue=J({__name:"ProjectApiKeyDialog",props:T({apiKey:{},serviceAccounts:{},restrictionOptions:{},loading:{type:Boolean}},{visible:{type:Boolean,required:!0},visibleModifiers:{}}),emits:T(["save"],["update:visible"]),setup(l,{emit:j}){const m=H(l,"visible"),U=j,v=p(""),f=p(""),d=p(),o=p(""),i=p([]),B=u(()=>F(i.value)),A=u(()=>l.serviceAccounts.find(a=>a.id===d.value)?.rules??[]),M=u(()=>!!v.value.trim()),O=u(()=>l.serviceAccounts.some(a=>a.id===d.value)),P=u(()=>!o.value||!Number.isNaN(new Date(o.value).getTime())),b=u(()=>i.value.length===0||W.safeParse(i.value).success),w=u(()=>i.value.length===0||i.value.every(a=>a.permissions.every(e=>A.value.some(t=>t.permissions.includes(e)&&$(t,a))))),I=u(()=>M.value&&O.value&&P.value&&b.value&&w.value);Q(()=>[m.value,l.apiKey,l.serviceAccounts],()=>{m.value&&(v.value=l.apiKey?.meta.title??"",f.value=l.apiKey?.meta.description??"",d.value=l.apiKey?.serviceAccountId??l.serviceAccounts.find(a=>a.systemName==="admin")?.id,o.value=l.apiKey?.expiresAt?R(l.apiKey.expiresAt):"",i.value=l.apiKey?.restrictionRules??[])},{immediate:!0});function R(a){const e=new Date(a),t=e.getTimezoneOffset()*6e4;return new Date(e.getTime()-t).toISOString().slice(0,16)}function q(){!I.value||!d.value||U("save",{meta:{title:v.value.trim(),description:f.value.trim()||void 0},serviceAccountId:d.value,restrictionRules:i.value,expiresAt:o.value?new Date(o.value):null})}function E(a){d.value=a,i.value=[]}function $(a,e){return a.restrictions?e.restrictions?a.restrictions.every(t=>{const c=e.restrictions?.find(g=>g.type===t.type);if(!c)return!1;if(t.type==="self")return!0;if(c.type==="self")return!1;const L=k(t);return k(c).every(g=>L.includes(g))&&(!("recursive"in c)||!c.recursive||"recursive"in t&&t.recursive)}):!1:!0}function k(a){switch(a.type){case"resources":return a.resourceIds;case"instances":return a.instanceIds;case"owners":return a.serviceAccountIds;case"workers":return a.workerIds}}return(a,e)=>(C(),D(re,{modelValue:m.value,"onUpdate:modelValue":e[5]||(e[5]=t=>m.value=t),"max-width":"1200",class:"api-key-dialog"},{default:n(()=>[s(X,{title:l.apiKey?"Edit project API key":"Create project API key"},{default:n(()=>[s(Z,{class:"content"},{default:n(()=>[s(h,{"no-gutters":"",class:"fill-height"},{default:n(()=>[s(K,{cols:"12",md:"6",class:"pr-md-4 column"},{default:n(()=>[e[7]||(e[7]=V("div",{class:"text-overline mb-2"},"Metadata",-1)),s(N,{modelValue:r(v),"onUpdate:modelValue":e[0]||(e[0]=t=>y(v)?v.value=t:null),class:"flex-grow-0",label:"Title",variant:"outlined",density:"compact",rules:[t=>!!t?.trim()||"Title is required"],required:""},null,8,["modelValue","rules"]),s(_,{modelValue:r(f),"onUpdate:modelValue":e[1]||(e[1]=t=>y(f)?f.value=t:null),class:"flex-grow-0",label:"Description",variant:"outlined",density:"compact",rows:"2"},null,8,["modelValue"]),s(ee,{"model-value":r(d),class:"flex-grow-0",items:l.serviceAccounts,"item-title":"meta.title","item-value":"id",label:"Service account",variant:"outlined",density:"compact",rules:[t=>l.serviceAccounts.some(c=>c.id===t)||"Service account is required"],required:"","onUpdate:modelValue":E},null,8,["model-value","items","rules"]),s(N,{modelValue:r(o),"onUpdate:modelValue":e[2]||(e[2]=t=>y(o)?o.value=t:null),class:"expires-at-field flex-grow-0",type:"datetime-local",label:"Expires at",variant:"outlined",density:"compact",clearable:"",rules:[t=>!t||!Number.isNaN(new Date(t).getTime())||"Expiration must be a valid date and time"]},null,8,["modelValue","rules"]),V("div",ne,[s(G,{modelValue:r(i),"onUpdate:modelValue":e[3]||(e[3]=t=>y(i)?i.value=t:null),options:l.restrictionOptions,"allowed-rules":r(A),"section-title":"Restriction Rules","allow-empty":""},null,8,["modelValue","options","allowed-rules"])]),r(i).length>0&&r(b)&&!r(w)?(C(),D(te,{key:0,type:"error",variant:"outlined",density:"compact",class:"flex-grow-0 mt-2"},{default:n(()=>[...e[6]||(e[6]=[x(" Restriction rules exceed the selected service account permissions. ",-1)])]),_:1})):ae("",!0)]),_:1}),s(le,{vertical:"",class:"d-none d-md-flex"}),s(K,{cols:"12",md:"6",class:"pl-md-4 column"},{default:n(()=>[e[8]||(e[8]=V("div",{class:"text-overline mb-2"},"Restriction preview",-1)),V("div",oe,[s(r(z),{value:r(B),theme:"dark-plus",language:"yaml",options:{readOnly:!0,minimap:{enabled:!1},automaticLayout:!0}},null,8,["value"])])]),_:1})]),_:1})]),_:1}),s(se,null,{default:n(()=>[s(ie),s(S,{disabled:l.loading,onClick:e[4]||(e[4]=t=>m.value=!1)},{default:n(()=>[...e[9]||(e[9]=[x("Cancel",-1)])]),_:1},8,["disabled"]),s(S,{color:"primary",disabled:!r(I),loading:l.loading,onClick:q},{default:n(()=>[...e[10]||(e[10]=[x("Save",-1)])]),_:1},8,["disabled","loading"])]),_:1})]),_:1},8,["title"])]),_:1},8,["modelValue"]))}}),Ve=Y(ue,[["__scopeId","data-v-d817650f"]]);export{Ve as P};
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
import{
|
|
1
|
+
import{P as p,_ as V}from"#entry";import{_ as B,I as S}from"./CHVFVVjA.js";import{E as I,aG as u,a8 as C,V as l,J as g,Y as h,aI as M,_ as d,$ as f,a0 as o,a1 as r,a2 as s,W as m,Z as N,ak as w,aR as A,ab as D,a5 as T,av as U,aw as $,D as z,b0 as H,aN as E,at as b,aO as R}from"./-NXdyIEV.js";import"./DlfNK0cA.js";const te={name:{key:"meta.title",title:"Name & Description"},id:{key:"id",title:"ID"},createdAt:{key:"createdAt",title:"Created"},actions:{key:"actions",title:"Actions",align:"center"}},F={class:"settings-table-container"},G={key:1,class:"table-header"},J={class:"d-flex align-center"},L={class:"text-subtitle-1 font-weight-medium"},O={class:"table-wrapper"},W={class:"d-flex align-center"},Y={class:"d-flex flex-column"},Z={class:"text-body-1 font-weight-medium"},j={key:0,class:"text-caption text-medium-emphasis"},q={class:"table-footer"},K={class:"text-body-2 text-medium-emphasis"},Q=I({__name:"SettingsDataTable",props:R({headers:{},data:{},loading:{type:Boolean},hideHeader:{type:Boolean},hideSearch:{type:Boolean},height:{}},{search:{},searchModifiers:{},sortBy:{},sortByModifiers:{},page:{default:1},pageModifiers:{},itemsPerPage:{},itemsPerPageModifiers:{}}),emits:["update:search","update:sortBy","update:page","update:itemsPerPage"],setup(e){const v=u(e,"search"),y=u(e,"sortBy"),n=u(e,"page"),c=u(e,"itemsPerPage"),x=C();return(P,t)=>(l(),g("div",F,[e.data.error?(l(),h(M,{key:0,type:"error",density:"compact",class:"mb-4"},{default:d(()=>[f(o(e.data.error),1)]),_:1})):r("",!0),e.hideHeader?r("",!0):(l(),g("div",G,[s("div",J,[m(N,{class:"mr-2"},{default:d(()=>[...t[6]||(t[6]=[f("mdi-format-list-bulleted",-1)])]),_:1}),s("span",L,o(e.data.total??e.data.items.length)+" "+o(e.data.hasMore?"+":"")+" item"+o((e.data.total??e.data.items.length)===1?"":"s"),1)]),e.hideSearch?r("",!0):(l(),h(w,{key:0,modelValue:v.value,"onUpdate:modelValue":t[0]||(t[0]=a=>v.value=a),"prepend-inner-icon":"mdi-magnify",placeholder:"Search",variant:"outlined",density:"compact",clearable:"","hide-details":"",style:{"max-width":"300px"}},null,8,["modelValue"]))])),s("div",O,[m(H,{headers:e.headers,items:e.data.items,"items-length":e.data.items.length,loading:e.loading,"items-per-page":c.value,"onUpdate:itemsPerPage":t[1]||(t[1]=a=>c.value=a),"sort-by":y.value,"onUpdate:sortBy":t[2]||(t[2]=a=>y.value=a),"item-value":"id",class:"data-table","fixed-header":"",height:e.height,"hide-default-footer":""},A({"item.meta.title":d(({item:a})=>[s("div",W,[a.meta.icon||e.headers.find(i=>i.key==="meta.title")?.headerProps?.defaultPrimaryIcon?(l(),h(z(p),{key:0,icon:a.meta.icon||e.headers.find(i=>i.key==="meta.title")?.headerProps?.defaultPrimaryIcon,color:a.meta.iconColor??(a.meta.icon?void 0:e.headers.find(i=>i.key==="meta.title")?.headerProps?.defaultPrimaryIconColor),width:"24",class:"mr-4"},null,8,["icon","color"])):r("",!0),s("div",Y,[s("div",Z,o(a.meta.title||"Unnamed"),1),a.meta.description?(l(),g("div",j,o(a.meta.description.split(`
|
|
2
2
|
`)[0]),1)):r("",!0)])])]),"item.id":d(({item:a})=>[m(S,{value:a.id},null,8,["value"])]),"item.createdAt":d(({item:a})=>[a.createdAt?(l(),h(B,{key:0,value:a.createdAt},null,8,["value"])):r("",!0)]),"no-data":d(()=>[t[7]||(t[7]=s("div",{class:"text-center py-4"},[s("div",{class:"text-h6 text-medium-emphasis"},"No data available")],-1))]),_:2},[D(x,(a,i)=>({name:i,fn:d(k=>[T(P.$slots,i,U($(k)),void 0,!0)])}))]),1032,["headers","items","items-length","loading","items-per-page","sort-by","height"]),s("div",q,[m(E,{modelValue:c.value,"onUpdate:modelValue":t[3]||(t[3]=a=>c.value=a),items:[10,20,50,100],label:"Items per page",density:"compact",variant:"outlined","hide-details":"",class:"items-per-page"},null,8,["modelValue"]),s("span",K,"Page "+o(n.value),1),m(b,{icon:"mdi-chevron-left",variant:"text",size:"small","aria-label":"Previous page",disabled:n.value<=1||e.loading,onClick:t[4]||(t[4]=a=>n.value=Math.max(1,(n.value??1)-1))},null,8,["disabled"]),m(b,{icon:"mdi-chevron-right",variant:"text",size:"small","aria-label":"Next page",disabled:e.loading||!e.data.hasNextPage,onClick:t[5]||(t[5]=a=>n.value=(n.value??1)+1)},null,8,["disabled"])])])]))}}),se=V(Q,[["__scopeId","data-v-837e7825"]]);export{se as S,te as b};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
import"#entry";import{E as r}from"./
|
|
1
|
+
import"#entry";import{E as r}from"./CrAApG3c.js";import{E as a,V as i,Y as o,D as t}from"./-NXdyIEV.js";const k=a({__name:"WorkerVersionRefChip",props:{item:{}},setup(e){return(n,m)=>(i(),o(t(r),{id:e.item.workerVersionId,meta:e.item.workerVersionMeta,"fallback-icon":"mdi-source-branch","page-name":"settings.worker-version-details","page-params":{workerId:e.item.workerId,versionId:e.item.workerVersionId}},null,8,["id","meta","page-params"]))}});export{k as _};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
import{_ as r}from"#entry";import{E as m,a8 as d,V as s,J as e,a2 as a,W as u,D as c,a0 as n,Y as f,a1 as o,a5 as g}from"./-NXdyIEV.js";import{_ as h}from"./
|
|
1
|
+
import{_ as r}from"#entry";import{E as m,a8 as d,V as s,J as e,a2 as a,W as u,D as c,a0 as n,Y as f,a1 as o,a5 as g}from"./-NXdyIEV.js";import{_ as h}from"./4vGmo7Ws.js";import{_ as k}from"./D9y446qR.js";const p={class:"settings-page-header"},_={class:"d-flex align-center gap-3 mb-1"},x={class:"text-h4 font-weight-bold"},b={key:0,class:"text-body-1 text-medium-emphasis mb-0"},v={key:0,class:"d-flex gap-2"},S=m({__name:"SettingsPageHeader",props:{meta:{},fallbackIcon:{},title:{},status:{},statusMap:{},description:{}},setup(t){const i=d();return(l,y)=>(s(),e("div",p,[a("div",null,[a("div",_,[u(c(h),{icon:t.fallbackIcon,"custom-icon":t.meta?.icon,color:t.meta?.iconColor,size:32,class:"mr-4"},null,8,["icon","custom-icon","color"]),a("h1",x,n(t.title),1),t.status&&t.statusMap?(s(),f(c(k),{key:0,status:t.status,"status-map":t.statusMap},null,8,["status","status-map"])):o("",!0)]),t.description?(s(),e("p",b,n(t.description),1)):o("",!0)]),i.actions?(s(),e("div",v,[g(l.$slots,"actions",{},void 0,!0)])):o("",!0)]))}}),M=r(S,[["__scopeId","data-v-6120572e"]]);export{M as S};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
import{
|
|
1
|
+
import{H as p,D as u,v as f,E as _}from"#entry";import{E as S,aP as l,Y as y,_ as r,D as e,V as v,W as s,a2 as b,a0 as k}from"./-NXdyIEV.js";import{_ as w}from"./C9khB4Xk.js";import{_ as m,I}from"./CHVFVVjA.js";import{S as g}from"./DlfNK0cA.js";import{D as A,a as D}from"./BvF6CC6t.js";import{S as C}from"./iX982afC.js";import"./B69Z0Xk1.js";import"./CxoCegAs.js";import"./Dz1kPrb2.js";import"./CrAApG3c.js";import"./4vGmo7Ws.js";import"./CJnh15-L.js";import"./D9y446qR.js";const j={class:"text-body-2"},T=S({__name:"[secretId]",props:{params:{}},async setup(n){let a,i;const c=p(),{projectStore:o}=u();o.initializing?([a,i]=l(()=>_(()=>o.initialized).toBe(!0)),await a,i(),o.addLibraryRoot()):([a,i]=l(()=>o.initialize1()),await a,i(),[a,i]=l(()=>o.initialize2()),await a,i());const t=([a,i]=l(()=>c.get(n.params.secretId)),a=await a,i(),a);if(!t)throw f({statusCode:404,statusMessage:"Secret not found"});const d=[{key:"secretId",label:"Secret ID"},{key:"name",label:"Name"},{key:"value",label:"Value"},{key:"owner",label:"Owner"},{key:"createdAt",label:"Created"},{key:"updatedAt",label:"Last Updated"}];return(h,x)=>(v(),y(e(D),null,{default:r(()=>[s(g,{meta:e(t).meta,"fallback-icon":"mdi-key-variant",title:e(t).meta.title||e(t).name||"Unnamed Secret",description:e(t).meta.description},null,8,["meta","title","description"]),s(e(A),{title:"Secret Details",items:d},{"item.secretId":r(()=>[s(e(I),{value:e(t).id},null,8,["value"])]),"item.name":r(()=>[b("div",j,k(e(t).name||"N/A"),1)]),"item.value":r(()=>[s(e(C),{"secret-id":e(t).id,"project-id":n.params.projectId},null,8,["secret-id","project-id"])]),"item.owner":r(()=>[s(e(w),{item:e(t)},null,8,["item"])]),"item.createdAt":r(()=>[s(e(m),{value:e(t).createdAt},null,8,["value"])]),"item.updatedAt":r(()=>[s(e(m),{value:e(t).updatedAt},null,8,["value"])]),_:1})]),_:1}))}});export{T as default};
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
import{bv as
|
|
2
|
-
`)[0]},{append:b(()=>[C("div",ie,[r(n).length>1?(l(),y(G,{key:0,modelValue:r(t),"onUpdate:modelValue":a[0]||(a[0]=c=>J(t)?t.value=c:null),items:r(n),class:"version-selector",density:"compact","hide-details":"",variant:"outlined",onPointerdown:a[1]||(a[1]=k(()=>{},["stop"])),onMousedown:a[2]||(a[2]=k(()=>{},["stop"])),onClick:a[3]||(a[3]=k(()=>{},["stop"]))},null,8,["modelValue","items"])):v("",!0),r(u)?(l(),y(Y,{key:1,location:"top"},{activator:b(({props:c})=>[w(q,H(c,{color:"warning",label:"",size:"small",variant:"flat"}),{default:b(()=>[...a[4]||(a[4]=[K(" unstable ",-1)])]),_:1},16)]),default:b(()=>[C("span",null,j(ce))]),_:1})):v("",!0)])]),_:1},8,["component","text"])],32))}}),pe=L(le,[["__scopeId","data-v-44318f39"]]),ue={class:"d-flex flex-column mt-4 pl-4 pr-4 gr-4 sidebar-container"},de={class:"d-flex flex-column align-center gr-4 component-list-container"},me={class:"text-uppercase text-disabled"},fe={key:0,class:"text-center text-uppercase text-disabled"},ye={key:1,class:"mb-2 text-center text-uppercase text-disabled"},_e=V({__name:"ComponentList",props:{projectId:{}},async setup(e){let t,o;const n=([t,o]=N(()=>
|
|
1
|
+
import{bv as D,bw as h,_ as L,bx as E,E as A,g as F}from"#entry";import{P as M}from"./DzP42O4c.js";import{_ as R,t as P}from"./C50Jf3QI.js";import{E as V,r as W,V as l,J as f,W as w,_ as b,a2 as C,D as r,Y as y,aN as G,bg as k,a as J,a1 as v,au as Y,a0 as j,ao as q,ag as H,$ as K,j as g,aP as N,ak as Q,aa as S,ab as B,al as X,a3 as Z}from"./-NXdyIEV.js";import{s as ee}from"./oZs8U75K.js";import"./B69Z0Xk1.js";import"./CxoCegAs.js";import"./DyDuNLRY.js";import"./BzfFclT9.js";const U={asc:(e,t)=>e>t,desc:(e,t)=>e<t};function te(e,t){let[o,...n]=t;if(!ne(o))return e(o,I(...n));let p=I(o,...n);return u=>e(u,p)}function I(e,t,...o){let n=typeof e=="function"?e:e[0],p=typeof e=="function"?"asc":e[1],{[p]:u}=U,s=t===void 0?void 0:I(t,...o);return(a,c)=>{let d=n(a),m=n(c);return u(d,m)?1:u(m,d)?-1:s?.(a,c)??0}}function ne(e){if(T(e))return!0;if(typeof e!="object"||!Array.isArray(e))return!1;let[t,o,...n]=e;return T(t)&&typeof o=="string"&&o in U&&n.length===0}const T=e=>typeof e=="function"&&e.length===1;function z(...e){return D(oe,e)}const oe=(e,t)=>{let o=Object.create(null);for(let n=0;n<e.length;n++){let p=e[n],u=t(p,n,e);if(u!==void 0){let s=o[u];s===void 0?o[u]=[p]:s.push(p)}}return Object.setPrototypeOf(o,Object.prototype),o};function O(...e){return D(re,e,se)}const re=(e,t)=>e.map(t),se=e=>(t,o,n)=>({done:!1,hasNext:!0,next:e(t,o,n)});function $(...e){return te(ae,e)}const ae=(e,t)=>[...e].sort(t),ie={class:"d-flex align-center ga-2"},ce="Components with version v0 are unstable and may be broken or disappear without warning.",le=V({__name:"ComponentTemplate",props:{components:{}},setup(e){const t=W(e.components[0].type),o=g(()=>e.components.find(s=>s.type===t.value)??e.components[0]),n=g(()=>e.components.map(s=>{try{const[,a]=h(s.type);return{title:`v${a}`,value:s.type}}catch{return{title:s.type,value:s.type}}})),p=s=>{ee(s.dataTransfer,o.value.type)},u=g(()=>{try{const[,s]=h(o.value.type);return s===0}catch{return!1}});return(s,a)=>(l(),f("div",{draggable:"true",style:{cursor:"grab"},onDragstart:p},[w(r(R),{component:r(o),text:r(o).meta.description?.split(`
|
|
2
|
+
`)[0]},{append:b(()=>[C("div",ie,[r(n).length>1?(l(),y(G,{key:0,modelValue:r(t),"onUpdate:modelValue":a[0]||(a[0]=c=>J(t)?t.value=c:null),items:r(n),class:"version-selector",density:"compact","hide-details":"",variant:"outlined",onPointerdown:a[1]||(a[1]=k(()=>{},["stop"])),onMousedown:a[2]||(a[2]=k(()=>{},["stop"])),onClick:a[3]||(a[3]=k(()=>{},["stop"]))},null,8,["modelValue","items"])):v("",!0),r(u)?(l(),y(Y,{key:1,location:"top"},{activator:b(({props:c})=>[w(q,H(c,{color:"warning",label:"",size:"small",variant:"flat"}),{default:b(()=>[...a[4]||(a[4]=[K(" unstable ",-1)])]),_:1},16)]),default:b(()=>[C("span",null,j(ce))]),_:1})):v("",!0)])]),_:1},8,["component","text"])],32))}}),pe=L(le,[["__scopeId","data-v-44318f39"]]),ue={class:"d-flex flex-column mt-4 pl-4 pr-4 gr-4 sidebar-container"},de={class:"d-flex flex-column align-center gr-4 component-list-container"},me={class:"text-uppercase text-disabled"},fe={key:0,class:"text-center text-uppercase text-disabled"},ye={key:1,class:"mb-2 text-center text-uppercase text-disabled"},_e=V({__name:"ComponentList",props:{projectId:{}},async setup(e){let t,o;const n=([t,o]=N(()=>E.async(e.projectId)),t=await t,o(),t);[t,o]=N(()=>A(()=>n.initialized).toBe(!0)),await t,o();const p=c=>{try{return h(c.type)[0]}catch{return c.type}},u=c=>{try{return h(c.type)[1]}catch{return 0}},s=g(()=>{if(!n.initialized)return[];const c=new Set(n.library.filteredComponents.map(p)),d=Object.values(n.library.components).filter(i=>c.has(p(i))),m=P(d,z(p),i=>Object.entries(i),O(([i,_])=>({baseName:i,components:$(_,x=>-u(x))})));return P(m,z(i=>i.components[0]?.meta.category??"Uncategorized"),i=>Object.entries(i),$(([i])=>i==="Uncategorized"?"z":i),O(([i,_])=>[i,$(_,x=>x.components[0]?.meta.title??x.baseName)]))}),a=g(()=>s.value.reduce((c,[,d])=>c+d.length,0));return(c,d)=>(l(),f("div",ue,[r(n)?(l(),y(Q,{key:0,modelValue:r(n).library.search,"onUpdate:modelValue":d[0]||(d[0]=m=>r(n).library.search=m),class:"search",variant:"outlined",density:"compact",placeholder:"Search components","hide-details":""},null,8,["modelValue"])):v("",!0),C("div",de,[(l(!0),f(S,null,B(r(s),([m,i])=>(l(),f("div",{key:m,class:"d-flex flex-column gr-4"},[C("div",me,j(m)+" ("+j(i.length)+")",1),(l(!0),f(S,null,B(i,_=>(l(),y(pe,{key:_.baseName,components:_.components},null,8,["components"]))),128))]))),128)),(r(n).library.filteredComponents.length??0)===0?(l(),f("div",fe," No components found ")):v("",!0)]),r(a)>0?(l(),f("div",ye," Found "+j(r(a))+" component(s) ",1)):v("",!0)]))}}),be=L(_e,[["__scopeId","data-v-e391f1aa"]]),ve=V({__name:"ComponentListWrapper",props:{projectId:{}},async setup(e){let t,o;const n=([t,o]=N(()=>E.async(e.projectId)),t=await t,o(),t);return(p,u)=>(l(),y(r(M),{"project-id":e.projectId},{default:b(()=>[r(n).loading||r(n).initialized&&r(n).library.isReloading?(l(),y(X,{key:0,indeterminate:!0,color:"primary",height:"4",absolute:"",location:"bottom"})):v("",!0),(l(),y(be,{key:e.projectId,"project-id":e.projectId},null,8,["project-id"]))]),_:1},8,["project-id"]))}}),ge={key:1,class:"mt-4 text-center text-uppercase text-disabled"},Ie=V({__name:"components",props:{params:{}},setup(e){const t=F();return(o,n)=>r(t).focusedProjectId?(l(),y(Z,{key:r(t).focusedProjectId},{default:b(()=>[w(r(ve),{"project-id":r(t).focusedProjectId},null,8,["project-id"])]),_:1})):(l(),f("div",ge,"No active project"))}});export{Ie as default};
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
import{aI as
|
|
2
|
-
`);for(const n of l)i.writeln(n)};if(
|
|
1
|
+
import{aI as C,aJ as V,aK as O,aL as E,D as P,t as j,_}from"#entry";import{E as x,u as $,M as N,V as m,Y as g,D as s,r as y,w as W,b4 as B,a as I,_ as d,W as p,b5 as L,b6 as R,a1 as M,b7 as z,a2 as h,a6 as b,a7 as w,a0 as S,b8 as D,J as H,ag as K,ao as U,j as v}from"./-NXdyIEV.js";import{_ as k}from"./4vGmo7Ws.js";import{G as T}from"./zPZwXEME.js";const A={error:"alert-circle-outline",healthy:"heart",degraded:"heart-flash",down:"heart-broken",warning:"alert-octagon-outline",progressing:"progress-clock"},Y={error:"error",degraded:"warning",down:"error",healthy:"success",warning:"warning",progressing:"warning"},q={cancelled:"close-circle-outline",destroyed:"trash-can-outline",refreshed:"check-circle-outline",updated:"check-circle-outline",skipped:"skip-next-circle-outline",failed:"alert-circle-outline",cancelling:"stop-circle-outline",pending:"clock-outline",destroying:"trash-can-outline",processing_triggers:"flash",previewing:"eye-outline",previewed:"eye-outline",refreshing:"refresh",updating:"sync"},G={updated:"success",cancelled:"warning",destroyed:"success",refreshed:"success",skipped:"",failed:"error",cancelling:"warning",pending:"",destroying:"error",processing_triggers:"primary",previewing:"secondary",previewed:"success",refreshing:"info",updating:"primary"},J={undeployed:"circle-outline",attempted:"clock-outline",deployed:"check-circle-outline",failed:"alert-circle-outline"},X={undeployed:"",attempted:"warning",deployed:"success",failed:"error"},F={error:"alert-circle-outline",evaluated:"check-circle-outline",evaluating:"cogs"},Q={error:"error",evaluated:"success",evaluating:"primary"};function Z(e){return e.instanceId.startsWith(`${E}:`)}function ee(e){return e.instanceId.startsWith("system.import.")}function te(e,r){return Z(e)&&e.status==="deployed"?{name:"instance-state",status:"exported",title:"State",message:"All entities from this instance are exported and can be imported in other projects.",icon:"export",color:"success",order:5,important:!1}:ee(e)&&e.status==="deployed"?{name:"instance-state",status:"imported",title:"State",message:"Entities from another project are imported and available for other instances.",icon:"import",color:"success",order:5,important:!1}:e.inputHash&&e.inputHash!==r?{name:"instance-state",title:"State",status:"changed",message:"The configuration of this instance or one of its dependencies has changed since the last operation.",icon:"not-equal-variant",color:"warning",important:!1,order:5}:{name:"instance-state",status:e.status,title:"State",message:`Instance is ${e.status}`,icon:J[e.status],color:X[e.status],order:5,important:!1}}function ae(){return{name:"instnace-state",status:"undeployed",title:"State",message:"Instance is not deployed",icon:"circle-outline",color:"",important:!1,order:5}}function oe(e,r){const t=e.lastOperationState;return{name:"operation",logs:!0,title:"Operation",status:t.status,icon:q[t.status],color:G[t.status],important:V(r?.status)||t.status==="failed"&&e.status!=="undeployed",order:10,progress:C(t.status)&&t.status!=="pending"&&t.currentResourceCount&&t.totalResourceCount?Math.round(t.currentResourceCount/t.totalResourceCount*100):void 0}}function ne(e){return{name:"evaluation",status:e.status,title:"Evaluation",message:e.message??"",icon:F[e.status],color:Q[e.status],important:e.status==="error",order:15}}function se(e){return e.status==="ok"?{name:"validation",status:"ok",title:"Validation",message:"Instance is valid",icon:"check-circle-outline",color:"success",important:!1,order:20}:{name:"validation",title:"Validation",status:"error",message:e.errorText,icon:"alert-circle-outline",color:"error",important:!0,order:20}}function re(e){return{name:e.name,status:e.value,title:e.meta.title,message:e.message??"",icon:A[e.value]??"information-outline",customIcon:e.meta.icon,color:e.meta.iconColor??Y[e.value]??"primary",important:e.value===O.Error,order:e.order??50}}function ie(e,r,t,i){const o=[];if(e&&e.status!=="undeployed"?o.push(te(e,t)):o.push(ae()),e?.lastOperationState&&o.push(oe(e,r)),e?.evaluationState&&o.push(ne(e.evaluationState)),i&&o.push(se(i)),e?.customStatuses)for(const u of e.customStatuses)o.push(re(u));return o.sort((u,c)=>u.order-c.order)}const ce=x({__name:"InstanceStatusLogsTab",props:{operationState:{}},setup(e){const{projectStore:r}=P(),{$client:t}=$();let i=null;const o=c=>{const l=c.split(`
|
|
2
|
+
`);for(const n of l)i.writeln(n)};if(C(e.operationState.status)){const{unsubscribe:c}=t.logs.watchInstanceLogs.subscribe({stateId:e.operationState.stateId,operationId:e.operationState.operationId},{onData:l=>{i&&o(l.content)}});N(c)}const u=async c=>{i=c;const l=await j(n=>t.logs.getInstanceLogs.query({projectId:r.projectId,stateId:e.operationState.stateId,operationId:e.operationState.operationId,...n}));for(const n of l)o(n.content)};return(c,l)=>(m(),g(s(T),{class:"mt-2 mb-2",columns:80,rows:24,onLoad:u}))}}),le={key:0,class:"d-flex align-center justify-center",style:{width:"100%",height:"100%"}},ue={class:"d-flex flex-column"},de=x({__name:"InstanceStatusBadge",props:{state:{},operation:{},expectedInputHash:{},validationOutput:{}},setup(e){const r=v(()=>ie(e.state,e.operation,e.expectedInputHash,e.validationOutput)),t=v(()=>r.value.find(n=>n.important)??r.value[0]),i=y(t.value.name),o=y(!1);W([t,e.state],()=>{o.value||(i.value=t.value.name)},{immediate:!0});const u=n=>n.startsWith("#")?{}:{[`text-${n}`]:!0},c=n=>n.startsWith("#")?{color:n}:{},l=v(()=>t.value.progress!==void 0&&t.value.progress<100);return(n,f)=>(m(),g(B,{modelValue:s(o),"onUpdate:modelValue":f[1]||(f[1]=a=>I(o)?o.value=a:null),"open-on-hover":"","close-on-content-click":!1,location:"end"},{activator:d(({props:a})=>[p(U,K(a,{color:s(t).color,style:[{width:"44px"},{padding:s(l)?"0":void 0}],class:"status-chip"}),{default:d(()=>[s(l)?(m(),H("div",le,S(s(t).progress)+"% ",1)):(m(),g(s(k),{key:1,size:20,icon:`mdi-${s(t).icon}`,"custom-icon":s(t).customIcon},null,8,["icon","custom-icon"]))]),_:1},16,["color","style"])]),default:d(()=>[p(D,{color:"black"},{default:d(()=>[p(L,{modelValue:s(i),"onUpdate:modelValue":f[0]||(f[0]=a=>I(i)?i.value=a:null),items:s(r)},{tab:d(({item:a})=>[p(z,{value:a.name},{default:d(()=>[p(s(k),{size:22,icon:`mdi-${a.icon}`,"custom-icon":a.customIcon,color:a.color,class:"mr-2"},null,8,["icon","custom-icon","color"]),h("div",ue,[h("div",{class:w(["font-weight-bold text-start",u(a.color)]),style:b(c(a.color))},S(a.title),7),h("div",{class:w(["text-caption font-weight-bold text-start",u(a.color)]),style:b(c(a.color))},S(a.status),7)])]),_:2},1032,["value"])]),item:d(({item:a})=>[p(R,{value:a.name},{default:d(()=>[a.logs?e.state?.lastOperationState?.operationId?(m(),g(ce,{key:e.state.lastOperationState.operationId,"instance-id":e.state.id,operationState:e.state.lastOperationState},null,8,["instance-id","operationState"])):M("",!0):(m(),g(s(T),{key:0,class:"mt-2 mb-2",columns:80,rows:24,content:a.message},null,8,["content"]))]),_:2},1032,["value"])]),_:1},8,["modelValue","items"])]),_:1})]),_:1},8,["modelValue"]))}}),he=_(de,[["__scopeId","data-v-eb35995d"]]);export{he as I};
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
import{N as a,S}from"#entry";import{R as T}from"./01ZR8FKx.js";import{E as j,aG as O,r as E,w as G,V,Y as b,D as f,aO as g,j as w}from"./-NXdyIEV.js";const C=j({__name:"ProjectRoleRulesBuilder",props:g({options:{},allowedRules:{},allowEmpty:{type:Boolean,default:!1},sectionTitle:{default:"Rules"}},{modelValue:{required:!0},modelModifiers:{}}),emits:["update:modelValue"],setup(t){const u=O(t,"modelValue"),I=w(()=>a.flatMap((e,r)=>{const o=e.permissions.filter(l=>!t.allowedRules||t.allowedRules.some(i=>i.permissions.includes(l.name)));if(o.length===0)return[];const c=o.some(l=>t.allowedRules?.some(i=>i.permissions.includes(l.name)&&!i.restrictions))?[...e.supportedRestrictions]:e.supportedRestrictions.filter(l=>t.allowedRules?.some(i=>i.permissions.some(s=>o.some(n=>n.name===s))&&i.restrictions?.some(s=>s.type===l)));return[{id:String(r),title:e.title,permissions:o.map(l=>({...l})),supportedRestrictions:c,resourceType:"resourceType"in e?e.resourceType:void 0}]})),k=[{id:"resources",title:"Resources"},{id:"instances",title:"Instances",recursive:!0},{id:"owners",title:"Owners"},{id:"self",title:"Self"},{id:"workers",title:"Workers"}],v=w(()=>({...t.options.resources,instances:t.options.instances,owners:t.options.serviceAccounts,self:[{id:"self",title:"Current service account"}],workers:t.options.workers})),h=w(()=>t.allowedRules?Object.fromEntries(Object.entries(v.value).map(([e,r])=>{const o=a.find(s=>"resourceType"in s&&s.resourceType===e),c=(o?[o]:a.filter(s=>s.supportedRestrictions.includes(e))).flatMap(s=>s.permissions.map(n=>n.name));if(t.allowedRules.some(s=>s.permissions.some(n=>c.includes(n))&&!s.restrictions))return[e,r];const i=new Set(t.allowedRules.flatMap(s=>s.permissions.some(n=>c.includes(n))?(s.restrictions??[]).filter(n=>e==="resources"?n.type==="resources":n.type===e).flatMap(y):[]));return[e,r.filter(s=>i.has(s.id))]})):v.value);let d=!1;const m=E(R(u.value));G(u,e=>{if(d){d=!1;return}m.value=R(e)},{deep:!0});function R(e){return e.map(r=>({groupId:String(a.findIndex(o=>o.permissions.some(p=>p.name===r.permissions[0]))),permissions:[...r.permissions],restrictions:(r.restrictions??[]).map(o=>({type:o.type,ids:y(o),recursive:"recursive"in o?o.recursive:void 0}))}))}function y(e){switch(e.type){case"resources":return e.resourceIds;case"instances":return e.instanceIds;case"owners":return e.serviceAccountIds;case"workers":return e.workerIds;case"self":return["self"]}}function B(e){switch(e.type){case"resources":return{type:"resources",resourceIds:e.ids};case"instances":return{type:"instances",instanceIds:e.ids.map(r=>S.parse(r)),recursive:e.recursive??!1};case"owners":return{type:"owners",serviceAccountIds:e.ids};case"workers":return{type:"workers",workerIds:e.ids};case"self":return{type:"self"};default:throw new Error(`Unsupported project restriction "${e.type}"`)}}function M(e){m.value=e,d=!0,u.value=e.map(r=>({permissions:r.permissions,...r.restrictions.length?{restrictions:r.restrictions.map(B)}:{}}))}return(e,r)=>(V(),b(T,{"model-value":f(m),groups:f(I),"restriction-descriptors":k,options:f(h),"allow-empty":t.allowEmpty,"section-title":t.sectionTitle,"onUpdate:modelValue":M},null,8,["model-value","groups","options","allow-empty","section-title"]))}});export{C as _};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
import{
|
|
1
|
+
import{D as a}from"#entry";import{E as o}from"./CrAApG3c.js";import{E as r,V as i,Y as n,D as c}from"./-NXdyIEV.js";const f=r({__name:"ServiceAccountRefChip",props:{item:{}},setup(e){const{projectStore:t}=a();return(s,m)=>(i(),n(c(o),{id:e.item.serviceAccountId,meta:e.item.serviceAccountMeta,"fallback-icon":"mdi-account-circle","page-name":"settings.service-account-details","page-params":{projectId:c(t).projectId,serviceAccountId:e.item.serviceAccountId}},null,8,["id","meta","page-params"]))}});export{f as _};
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
import{E as D,a_ as L,aP as U,H as R,w as _,D as o,V as k,Y as h,_ as t,a5 as q,a3 as J,J as P,W as s,ai as B,aj as N,aL as A,Z as y,$ as r,a2 as f,a$ as H,a as M,aJ as Y,aK as Z,at as F,a1 as z,r as x,j as K,n as G}from"./-NXdyIEV.js";import{a1 as O,i as Q,E as X,q as g,a2 as ee,_ as te}from"#entry";import{_ as se,D as S,a as E}from"./DyDuNLRY.js";const ae=""+new URL("hira-unlock-impossible.B5Pl3pvF.png",import.meta.url).href,oe={key:1,class:"password-prompt-container"},re={key:2,class:"password-prompt-container"},le={key:3,class:"mt-4 text-center text-uppercase text-disabled"},ne=D({__name:"ProjectContainer",props:{projectId:{},canUnlock:{type:Boolean}},async setup(i){let l,m;const b=L("passwordField"),u=x(""),d=x(null),w=x(!1),n=([l,m]=U(()=>O.async(i.projectId)),l=await l,m(),l),W=Q(),c=x(!1),p=K(()=>{if(n.unlockState?.type==="locked")return n.unlockState.unlockSuite}),V=async()=>{if(!c.value){c.value=!0;try{const a=p.value?.passkeys??[];for(const e of a){const v=new S;v.addIdentity(new E({identity:e.passkeyIdentity}));let T;try{const I=ee(e.encryptedIdentity);T=await v.decrypt(I,"text")}catch(I){g.debug({error:I},"failed to decrypt identity, trying next passkey");continue}await n.unlockWithIdentity(T);return}if(a.length===0&&p.value?.hasPasskey){const e=new S;if(e.addIdentity(new E),await n.unlock(e))return}d.value="No passkey could unlock the project"}catch(a){g.error({error:a},"failed to unlock project with passkey"),d.value="An error occurred while unlocking the project with passkey"}finally{c.value=!1}}},j=([l,m]=U(()=>X(()=>n.unlockState).not.toBeUndefined()),l=await l,m(),l);j.type==="locked"&&p.value?.hasPasskey&&W.dockview?.activePanel?.params?.projectId===i.projectId&&(g.info('attempting passkey unlock for project "%s"',i.projectId),V()),R(()=>{b.value&&j.type==="locked"&&!p.value?.hasPasskey&&b.value.textField?.focus()}),_(u,()=>{d.value=null});const C=async()=>{w.value=!0,await G();try{const a=new S;a.addPassphrase(u.value),await n.unlock(a)||(d.value="The password is incorrect")}catch(a){g.error({error:a},"failed to unlock project"),d.value="An error occurred while unlocking the project"}finally{w.value=!1}},$=K(()=>[a=>!!a||"Password is required"]);return(a,e)=>o(n).unlockState?.type==="unlocked"?(k(),h(J,{key:0},{default:t(()=>[q(a.$slots,"default",{},void 0,!0)]),_:3})):i.canUnlock&&o(n).isUnlockImpossible?(k(),P("div",oe,[s(B,{variant:"text"},{default:t(()=>[s(N,null,{default:t(()=>[s(A,{class:"text-center text-disabled text-uppercase"},{default:t(()=>[s(y,{color:"error"},{default:t(()=>[...e[1]||(e[1]=[r("mdi-lock",-1)])]),_:1}),e[2]||(e[2]=f("br",null,null,-1)),e[3]||(e[3]=r(" No unlock method available! ",-1)),e[4]||(e[4]=f("br",null,null,-1)),e[5]||(e[5]=r(" The decryption of state is impossible! ",-1)),e[6]||(e[6]=f("br",null,null,-1)),e[7]||(e[7]=r(" Try to restore the state from backup or ask for help... ",-1))]),_:1}),e[8]||(e[8]=f("div",{class:"text-center mt-4"},[f("img",{src:ae,class:"mascot-image"})],-1))]),_:1})]),_:1})])):i.canUnlock?(k(),P("div",re,[s(B,{width:"460",variant:"text"},{default:t(()=>[s(N,null,{default:t(()=>[s(A,{class:"text-center text-disabled text-uppercase"},{default:t(()=>[s(y,null,{default:t(()=>[...e[9]||(e[9]=[r("mdi-lock",-1)])]),_:1}),e[10]||(e[10]=r(" The project is locked ",-1))]),_:1}),s(o(se),{ref_key:"passwordField",ref:b,modelValue:o(u),"onUpdate:modelValue":e[0]||(e[0]=v=>M(u)?u.value=v:null),class:"mt-4",label:"Password",hint:"Enter the password to unlock the project","persistent-hint":"",rules:o($),"error-messages":o(d)?[o(d)]:[],onKeydown:H(C,["enter"])},null,8,["modelValue","rules","error-messages"])]),_:1}),s(Y,null,{default:t(()=>[s(Z),o(j).type==="locked"&&o(p)?.hasPasskey?(k(),h(F,{key:0,color:"secondary",loading:o(c),disabled:o(c),onClick:V},{default:t(()=>[s(y,null,{default:t(()=>[...e[11]||(e[11]=[r("mdi-fingerprint",-1)])]),_:1})]),_:1},8,["loading","disabled"])):z("",!0),s(F,{color:"primary",loading:o(w),disabled:o(w),onClick:C},{default:t(()=>[s(y,{class:"mr-2"},{default:t(()=>[...e[12]||(e[12]=[r("mdi-lock-open",-1)])]),_:1}),e[13]||(e[13]=r(" Unlock ",-1))]),_:1},8,["loading","disabled"])]),_:1})]),_:1})])):(k(),P("div",le,[s(y,null,{default:t(()=>[...e[14]||(e[14]=[r("mdi-lock",-1)])]),_:1}),e[15]||(e[15]=r(" The project is locked ",-1))]))}}),ce=te(ne,[["__scopeId","data-v-957d5296"]]);export{ce as P};
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
import{D as y,I as V,G as w,v as j,E as C,n as D}from"#entry";import{w as _}from"./M3Z1JMP1.js";import{E as b,V as I,Y as k,D as e,aP as p,_ as t,W as i,at as A,$ as g,ao as E,a0 as K,aS as $}from"./-NXdyIEV.js";import{_ as x}from"./D9y446qR.js";import{E as B}from"./CrAApG3c.js";import{_ as v,I as f}from"./CHVFVVjA.js";import{S as h}from"./DlfNK0cA.js";import{D as z,a as T}from"./BvF6CC6t.js";import{_ as U}from"./DSTHpVUV.js";import{_ as L}from"./iHlZS5Nr.js";import"./B69Z0Xk1.js";import"./CxoCegAs.js";import"./4vGmo7Ws.js";import"./DfDsDJD2.js";import"./Dz1kPrb2.js";import"./CJnh15-L.js";import"./DjTKfsHU.js";import"./CBtqoa0c.js";const W=b({__name:"ApiKeyRefChip",props:{item:{}},setup(n){const{projectStore:s}=y();return(l,u)=>(I(),k(e(B),{id:n.item.apiKeyId,meta:n.item.apiKeyMeta,"fallback-icon":"mdi-key","page-name":"settings.api-key-details","page-params":{projectId:e(s).projectId,apiKeyId:n.item.apiKeyId}},null,8,["id","meta","page-params"]))}}),oe=b({__name:"[versionId]",props:{params:{}},async setup(n){let s,l;const u=V(),P=w(),{projectStore:m}=y();m.initializing?([s,l]=p(()=>C(()=>m.initialized).toBe(!0)),await s,l(),m.addLibraryRoot()):([s,l]=p(()=>m.initialize1()),await s,l(),[s,l]=p(()=>m.initialize2()),await s,l());const a=([s,l]=p(()=>u.getVersion(n.params.versionId)),s=await s,l(),s);if(!a)throw j({statusCode:404,statusMessage:"Worker version not found"});const S=[{key:"versionId",label:"Version ID"},{key:"status",label:"Status"},{key:"digest",label:"Digest"},{key:"enabled",label:"Enabled"},{key:"apiKey",label:"API Key"},{key:"createdAt",label:"Created"},{key:"updatedAt",label:"Updated"}],o=P.forWorkerVersion(n.params.versionId);return o.load(),(c,r)=>(I(),k(e(T),null,{default:t(()=>[i(h,{meta:e(a).meta,"fallback-icon":"mdi-source-branch",title:e(a).meta.title||`Version ${e(a).id.slice(0,8)}`,description:e(a).meta.description},{actions:t(()=>[i(A,{variant:"outlined","prepend-icon":"mdi-console",onClick:r[0]||(r[0]=d=>("navigateTo"in c?c.navigateTo:e(D))({name:"worker-version-logs",params:{projectId:n.params.projectId,workerVersionId:n.params.versionId}}))},{default:t(()=>[...r[5]||(r[5]=[g(" View Logs ",-1)])]),_:1})]),_:1},8,["meta","title","description"]),i(e(z),{title:"Version Details",items:S},{"item.versionId":t(()=>[i(e(f),{value:e(a).id},null,8,["value"])]),"item.status":t(()=>[i(e(x),{status:e(a).status,"status-map":e(_)},null,8,["status","status-map"])]),"item.digest":t(()=>[i(e(f),{value:e(a).digest,"copy-full-text":"Copy full digest"},null,8,["value"])]),"item.enabled":t(()=>[i(E,{size:"small",color:e(a).enabled?"success":"secondary",class:"text-uppercase"},{default:t(()=>[g(K(e(a).enabled?"Enabled":"Disabled"),1)]),_:1},8,["color"])]),"item.apiKey":t(()=>[i(e(W),{item:e(a)},null,8,["item"])]),"item.createdAt":t(()=>[i(e(v),{value:e(a).createdAt},null,8,["value"])]),"item.updatedAt":t(()=>[i(e(v),{value:e(a).updatedAt},null,8,["value"])]),_:1}),i($,{elevation:0},{default:t(()=>[i(e(U),{title:"Panels",icon:"mdi-view-dashboard-outline",count:e(o).data.value.total},{default:t(()=>[i(e(L),{search:e(o).search.value,"onUpdate:search":r[1]||(r[1]=d=>e(o).search.value=d),"sort-by":e(o).sortBy.value,"onUpdate:sortBy":r[2]||(r[2]=d=>e(o).sortBy.value=d),page:e(o).page.value,"onUpdate:page":r[3]||(r[3]=d=>e(o).page.value=d),"items-per-page":e(o).itemsPerPage.value,"onUpdate:itemsPerPage":r[4]||(r[4]=d=>e(o).itemsPerPage.value=d),"project-id":n.params.projectId,data:e(o).data.value,loading:e(o).isLoading.value,"hide-header":""},null,8,["search","sort-by","page","items-per-page","project-id","data","loading"])]),_:1},8,["count"])]),_:1})]),_:1}))}});export{oe as default};
|