local-serverless-stack 0.9.0 → 0.10.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/CHANGELOG.md +8 -3
- package/dist/client/namespaces/lambdas.d.ts +1 -0
- package/dist/client/namespaces/lambdas.d.ts.map +1 -1
- package/dist/client/namespaces/lambdas.js.map +1 -1
- package/dist/server/engine/emulators/dynamodb/index.d.ts +8 -0
- package/dist/server/engine/emulators/dynamodb/index.d.ts.map +1 -1
- package/dist/server/engine/emulators/dynamodb/index.js +208 -7
- package/dist/server/engine/emulators/dynamodb/index.js.map +1 -1
- package/dist/server/engine/emulators/dynamodb/transactions.d.ts +35 -0
- package/dist/server/engine/emulators/dynamodb/transactions.d.ts.map +1 -0
- package/dist/server/engine/emulators/dynamodb/transactions.js +153 -0
- package/dist/server/engine/emulators/dynamodb/transactions.js.map +1 -0
- package/dist/server/engine/emulators/events/index.js +2 -2
- package/dist/server/engine/emulators/events/index.js.map +1 -1
- package/dist/server/engine/emulators/lambda-ctl/index.js +5 -5
- package/dist/server/engine/emulators/lambda-ctl/index.js.map +1 -1
- package/dist/server/engine/emulators/opensearch/index.d.ts.map +1 -1
- package/dist/server/engine/emulators/opensearch/index.js +5 -4
- package/dist/server/engine/emulators/opensearch/index.js.map +1 -1
- package/dist/server/engine/emulators/s3/index.js +5 -5
- package/dist/server/engine/emulators/s3/index.js.map +1 -1
- package/dist/server/engine/emulators/sns/index.js +2 -2
- package/dist/server/engine/emulators/sns/index.js.map +1 -1
- package/dist/server/engine/emulators/sqs/index.js +2 -2
- package/dist/server/engine/emulators/sqs/index.js.map +1 -1
- package/dist/server/engine/emulators/sts.js +2 -2
- package/dist/server/engine/emulators/sts.js.map +1 -1
- package/dist/server/engine/http/errors.d.ts +1 -0
- package/dist/server/engine/http/errors.d.ts.map +1 -1
- package/dist/server/engine/http/errors.js +12 -0
- package/dist/server/engine/http/errors.js.map +1 -1
- package/dist/server/runtime/log-capture.d.ts +7 -0
- package/dist/server/runtime/log-capture.d.ts.map +1 -0
- package/dist/server/runtime/log-capture.js +206 -0
- package/dist/server/runtime/log-capture.js.map +1 -0
- package/dist/server/runtime/runtime-worker.js +23 -14
- package/dist/server/runtime/runtime-worker.js.map +1 -1
- package/dist/server/services/lambda-runtime-manager.d.ts +2 -0
- package/dist/server/services/lambda-runtime-manager.d.ts.map +1 -1
- package/dist/server/services/lambda-runtime-manager.js +19 -1
- package/dist/server/services/lambda-runtime-manager.js.map +1 -1
- package/dist/ui/assets/{ApisPage-C0xaNFQW.js → ApisPage-DyjG-weG.js} +1 -1
- package/dist/ui/assets/{BucketDetailPage-Bnny8S04.js → BucketDetailPage-Bvrk1L6q.js} +1 -1
- package/dist/ui/assets/{BucketsPage-Dd3Y4-gU.js → BucketsPage-KgeLoK6e.js} +1 -1
- package/dist/ui/assets/{DynamoPage-JzSF-4VI.js → DynamoPage-C8rwaEIi.js} +1 -1
- package/dist/ui/assets/{DynamoTablePage-uM0DXGCo.js → DynamoTablePage-CN5P5f7S.js} +1 -1
- package/dist/ui/assets/{LambdaDetailPage-CoR9ZXdb.js → LambdaDetailPage-BPhEkF44.js} +3 -3
- package/dist/ui/assets/{LambdasPage-CNMX_O5P.js → LambdasPage-Dz4wxjVd.js} +1 -1
- package/dist/ui/assets/{OpenSearchCollectionPage-D5FaSCF1.js → OpenSearchCollectionPage-B3s964oC.js} +1 -1
- package/dist/ui/assets/{OpenSearchPage-FEzLxaej.js → OpenSearchPage-0fTJJovd.js} +1 -1
- package/dist/ui/assets/{OverviewPage-0xvjT7Q0.js → OverviewPage-B13l71G0.js} +1 -1
- package/dist/ui/assets/{QueueDetailPage-B2GaNLLe.js → QueueDetailPage-peLph1_v.js} +1 -1
- package/dist/ui/assets/{QueuesPage-Ch5kGwrp.js → QueuesPage-CF9yiBkq.js} +1 -1
- package/dist/ui/assets/{ServiceDetailPage-DKiz21oo.js → ServiceDetailPage-ZGLPswmY.js} +1 -1
- package/dist/ui/assets/{ServicesPage-Cmi3UIfM.js → ServicesPage-DsoZBBxo.js} +1 -1
- package/dist/ui/assets/{index-MF9fVrsr.js → index-BP9zQ9L-.js} +2 -2
- package/dist/ui/index.html +1 -1
- package/package.json +1 -1
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
import{k as re,l as oe,o as ie,Y as ue,e as c,Z as t,U as e,t as l,a as B,r as h,m as s,j as a,R as P,y as C,i as u,d as f,T as i,p as g,f as p,G as de,g as y,s as ve,x as I,w as ce,q as J,z as fe,F as _,n as z,u as k,B as me,C as pe,b as ge,c as ye,W as _e}from"./index-MF9fVrsr.js";const be={style:{"font-size":"1.1rem"}},he={key:1,style:{display:"flex","justify-content":"center",padding:"2rem"}},ze={class:"mono"},ke={class:"mono"},we={class:"mono"},$e={class:"mono"},Se={class:"muted"},Ne={class:"muted"},Le={class:"muted"},Ce={class:"muted"},De={class:"muted"},je={class:"muted"},xe={class:"muted"},Be={class:"muted"},Ie={class:"muted"},Te={class:"logs-pre"},Fe=re({__name:"ServiceDetailPage",props:{serviceName:{}},setup(T){const b=T,K=_e(),S=ye(),m=h(null),q=h(!0),D=h(null),F=h(!1),R=h(!1),U=h(!1),M=h([]),Q=h("stopped");let w=null,V=null;const E=h(!1),r=ge(()=>{var n;const v={lambda:[],dynamodb:[],sqs:[],sns:[],s3:[],eventbus:[],"event-rule":[],opensearch:[],"event-source":[]};for(const d of((n=m.value)==null?void 0:n.resources)||[])v[d.type]||(v[d.type]=[]),v[d.type].push(d);return v});async function N(){q.value=!0;try{m.value=await B.getService(b.serviceName),D.value=null}catch(v){D.value=v.message||"Service not found",m.value=null}finally{q.value=!1}}async function X(){if(!F.value){F.value=!0;try{await B.startService(b.serviceName),S.add({title:"Service started",description:b.serviceName,variant:"success"}),await N()}catch(v){S.add({title:"Failed to start",description:v.message,variant:"danger"})}finally{F.value=!1}}}async function ee(){if(!R.value){R.value=!0;try{await B.stopService(b.serviceName),S.add({title:"Service stopped",description:b.serviceName,variant:"info"}),await N()}catch(v){S.add({title:"Failed to stop",description:v.message,variant:"danger"})}finally{R.value=!1}}}async function G(){try{const v=await B.getServiceLogs(b.serviceName);M.value=v.logs||[],Q.value=v.status||"stopped"}catch(v){console.error("Failed to fetch logs:",v)}}function te(){U.value=!0,G(),w&&window.clearInterval(w),w=window.setInterval(G,2e3)}function ae(){U.value=!1,w&&window.clearInterval(w),w=null}async function ne(){try{await B.deleteService(b.serviceName),S.add({title:"Service deleted",description:b.serviceName,variant:"info"}),K.push("/services")}catch(v){S.add({title:"Failed to delete",description:v.message,variant:"danger"})}finally{E.value=!1}}function le(v){switch(v){case"running":return"success";case"registered":return"warning";case"stopped":return"neutral";default:return"danger"}}function se(v){return v?new Date(v).toLocaleString():"—"}return oe(()=>{N(),V=window.setInterval(N,1e4)}),ie(()=>{V&&window.clearInterval(V),w&&window.clearInterval(w)}),ue(()=>b.serviceName,N),(v,n)=>(s(),c(e(l),{direction:"vertical",gap:"1.25rem"},{default:t(()=>[a(e(l),{direction:"horizontal",gap:"0.5rem",align:"center",justify:"space-between"},{default:t(()=>[a(e(l),{direction:"horizontal",gap:"0.5rem",align:"center"},{default:t(()=>{var d;return[a(e(P),{to:"/services",style:{"text-decoration":"none"}},{default:t(()=>[a(e(C),{size:"sm",variant:"ghost"},{default:t(()=>[...n[5]||(n[5]=[u("← Services",-1)])]),_:1})]),_:1}),f("strong",be,i(T.serviceName),1),(d=m.value)!=null&&d.status?(s(),c(e(g),{key:0,tone:le(m.value.status),variant:"soft"},{default:t(()=>[u(i(m.value.status),1)]),_:1},8,["tone"])):p("",!0)]}),_:1}),a(e(l),{direction:"horizontal",gap:"0.375rem"},{default:t(()=>{var d,$;return[a(e(C),{size:"sm",variant:"soft",disabled:((d=m.value)==null?void 0:d.status)==="running",loading:F.value,onClick:X},{default:t(()=>[...n[6]||(n[6]=[u(" Start ",-1)])]),_:1},8,["disabled","loading"]),a(e(C),{size:"sm",variant:"soft",disabled:(($=m.value)==null?void 0:$.status)!=="running",loading:R.value,onClick:ee},{default:t(()=>[...n[7]||(n[7]=[u(" Stop ",-1)])]),_:1},8,["disabled","loading"]),a(e(C),{size:"sm",variant:"ghost",onClick:te},{default:t(()=>[...n[8]||(n[8]=[u("Logs",-1)])]),_:1}),a(e(C),{size:"sm",variant:"ghost",loading:q.value,onClick:N},{default:t(()=>[...n[9]||(n[9]=[u("Refresh",-1)])]),_:1},8,["loading"]),a(e(C),{size:"sm",variant:"danger",onClick:n[0]||(n[0]=L=>E.value=!0)},{default:t(()=>[...n[10]||(n[10]=[u("Delete",-1)])]),_:1})]}),_:1})]),_:1}),D.value?(s(),c(e(de),{key:0,variant:"danger",dismissible:"",onDismiss:n[1]||(n[1]=d=>D.value=null)},{default:t(()=>[u(i(D.value),1)]),_:1})):p("",!0),q.value&&!m.value?(s(),y("div",he,[a(e(ve),{label:"Loading service..."})])):m.value?(s(),y(_,{key:2},[a(e(ce),{columns:5,gap:"1rem"},{default:t(()=>{var d,$,L,j,x;return[a(e(I),{label:"Lambdas",value:((d=r.value.lambda)==null?void 0:d.length)||0,tone:"info"},null,8,["value"]),a(e(I),{label:"Tables",value:(($=r.value.dynamodb)==null?void 0:$.length)||0,tone:"info"},null,8,["value"]),a(e(I),{label:"Queues",value:((L=r.value.sqs)==null?void 0:L.length)||0,tone:"warning"},null,8,["value"]),a(e(I),{label:"Topics",value:((j=r.value.sns)==null?void 0:j.length)||0,tone:"info"},null,8,["value"]),a(e(I),{label:"Buckets",value:((x=r.value.s3)==null?void 0:x.length)||0,tone:"neutral"},null,8,["value"])]}),_:1}),a(e(J),{variant:"outline"},{header:t(()=>[...n[11]||(n[11]=[f("strong",null,"Metadata",-1)])]),default:t(()=>[a(e(l),{direction:"vertical",gap:"0.5rem"},{default:t(()=>[a(e(l),{direction:"horizontal",justify:"space-between"},{default:t(()=>[n[12]||(n[12]=f("span",{class:"muted"},"Path",-1)),f("span",ze,i(m.value.root),1)]),_:1}),a(e(l),{direction:"horizontal",justify:"space-between"},{default:t(()=>[n[13]||(n[13]=f("span",{class:"muted"},"Region",-1)),f("span",ke,i(m.value.region||"—"),1)]),_:1}),a(e(l),{direction:"horizontal",justify:"space-between"},{default:t(()=>[n[14]||(n[14]=f("span",{class:"muted"},"Invoke port",-1)),f("span",we,i(m.value.invokePort??"—"),1)]),_:1}),a(e(l),{direction:"horizontal",justify:"space-between"},{default:t(()=>[n[15]||(n[15]=f("span",{class:"muted"},"PID",-1)),f("span",$e,i(m.value.pid??"—"),1)]),_:1}),a(e(l),{direction:"horizontal",justify:"space-between"},{default:t(()=>[n[16]||(n[16]=f("span",{class:"muted"},"Last updated",-1)),f("span",null,i(se(m.value.lastUpdated)),1)]),_:1})]),_:1})]),_:1}),a(e(J),{variant:"outline"},{header:t(()=>[a(e(l),{direction:"horizontal",gap:"0.5rem",align:"center",justify:"space-between"},{default:t(()=>[n[17]||(n[17]=f("strong",null,"Declared resources",-1)),a(e(g),{tone:"neutral",variant:"soft"},{default:t(()=>{var d;return[u(i(((d=m.value.resources)==null?void 0:d.length)||0)+" total ",1)]}),_:1})]),_:1})]),default:t(()=>{var d;return[(d=m.value.resources)!=null&&d.length?(s(),c(e(l),{key:1,direction:"vertical",gap:"1rem"},{default:t(()=>{var $,L,j,x,W,Y,Z,A,H;return[($=r.value.dynamodb)!=null&&$.length?(s(),c(e(l),{key:0,direction:"vertical",gap:"0.5rem"},{default:t(()=>[a(e(l),{direction:"horizontal",gap:"0.5rem",align:"center"},{default:t(()=>[a(e(g),{tone:"info",variant:"soft"},{default:t(()=>[...n[18]||(n[18]=[u("DynamoDB tables",-1)])]),_:1}),f("span",Se,i(r.value.dynamodb.length),1)]),_:1}),a(e(l),{direction:"horizontal",gap:"0.375rem",wrap:""},{default:t(()=>[(s(!0),y(_,null,z(r.value.dynamodb,o=>(s(),c(e(P),{key:`db-${o.name}`,to:`/dynamo/${encodeURIComponent(o.name)}`,style:{"text-decoration":"none"}},{default:t(()=>[a(e(k),{size:"sm",variant:"soft",clickable:""},{default:t(()=>[u(i(o.name),1)]),_:2},1024)]),_:2},1032,["to"]))),128))]),_:1})]),_:1})):p("",!0),(L=r.value.sqs)!=null&&L.length?(s(),c(e(l),{key:1,direction:"vertical",gap:"0.5rem"},{default:t(()=>[a(e(l),{direction:"horizontal",gap:"0.5rem",align:"center"},{default:t(()=>[a(e(g),{tone:"warning",variant:"soft"},{default:t(()=>[...n[19]||(n[19]=[u("SQS queues",-1)])]),_:1}),f("span",Ne,i(r.value.sqs.length),1)]),_:1}),a(e(l),{direction:"horizontal",gap:"0.375rem",wrap:""},{default:t(()=>[(s(!0),y(_,null,z(r.value.sqs,o=>(s(),c(e(P),{key:`q-${o.name}`,to:"/queues",style:{"text-decoration":"none"}},{default:t(()=>[a(e(k),{size:"sm",variant:"soft",clickable:""},{default:t(()=>[u(i(o.name),1)]),_:2},1024)]),_:2},1024))),128))]),_:1})]),_:1})):p("",!0),(j=r.value.sns)!=null&&j.length?(s(),c(e(l),{key:2,direction:"vertical",gap:"0.5rem"},{default:t(()=>[a(e(l),{direction:"horizontal",gap:"0.5rem",align:"center"},{default:t(()=>[a(e(g),{tone:"info",variant:"soft"},{default:t(()=>[...n[20]||(n[20]=[u("SNS topics",-1)])]),_:1}),f("span",Le,i(r.value.sns.length),1)]),_:1}),a(e(l),{direction:"horizontal",gap:"0.375rem",wrap:""},{default:t(()=>[(s(!0),y(_,null,z(r.value.sns,o=>(s(),c(e(k),{key:`t-${o.name}`,size:"sm",variant:"soft"},{default:t(()=>[u(i(o.name),1)]),_:2},1024))),128))]),_:1})]),_:1})):p("",!0),(x=r.value.s3)!=null&&x.length?(s(),c(e(l),{key:3,direction:"vertical",gap:"0.5rem"},{default:t(()=>[a(e(l),{direction:"horizontal",gap:"0.5rem",align:"center"},{default:t(()=>[a(e(g),{tone:"neutral",variant:"soft"},{default:t(()=>[...n[21]||(n[21]=[u("S3 buckets",-1)])]),_:1}),f("span",Ce,i(r.value.s3.length),1)]),_:1}),a(e(l),{direction:"horizontal",gap:"0.375rem",wrap:""},{default:t(()=>[(s(!0),y(_,null,z(r.value.s3,o=>(s(),c(e(P),{key:`b-${o.name}`,to:`/buckets/${encodeURIComponent(o.name)}`,style:{"text-decoration":"none"}},{default:t(()=>[a(e(k),{size:"sm",variant:"soft",clickable:""},{default:t(()=>[u(i(o.name),1)]),_:2},1024)]),_:2},1032,["to"]))),128))]),_:1})]),_:1})):p("",!0),(W=r.value.lambda)!=null&&W.length?(s(),c(e(l),{key:4,direction:"vertical",gap:"0.5rem"},{default:t(()=>[a(e(l),{direction:"horizontal",gap:"0.5rem",align:"center"},{default:t(()=>[a(e(g),{tone:"neutral",variant:"soft"},{default:t(()=>[...n[22]||(n[22]=[u("Lambda functions",-1)])]),_:1}),f("span",De,i(r.value.lambda.length),1)]),_:1}),a(e(l),{direction:"horizontal",gap:"0.375rem",wrap:""},{default:t(()=>[(s(!0),y(_,null,z(r.value.lambda,o=>(s(),c(e(k),{key:`l-${o.name}`,size:"sm",variant:"soft"},{default:t(()=>[u(" λ "+i(o.name),1)]),_:2},1024))),128))]),_:1})]),_:1})):p("",!0),(Y=r.value.eventbus)!=null&&Y.length?(s(),c(e(l),{key:5,direction:"vertical",gap:"0.5rem"},{default:t(()=>[a(e(l),{direction:"horizontal",gap:"0.5rem",align:"center"},{default:t(()=>[a(e(g),{tone:"info",variant:"soft"},{default:t(()=>[...n[23]||(n[23]=[u("EventBridge buses",-1)])]),_:1}),f("span",je,i(r.value.eventbus.length),1)]),_:1}),a(e(l),{direction:"horizontal",gap:"0.375rem",wrap:""},{default:t(()=>[(s(!0),y(_,null,z(r.value.eventbus,o=>(s(),c(e(k),{key:`eb-${o.name}`,size:"sm",variant:"soft"},{default:t(()=>[u(i(o.name),1)]),_:2},1024))),128))]),_:1})]),_:1})):p("",!0),(Z=r.value["event-rule"])!=null&&Z.length?(s(),c(e(l),{key:6,direction:"vertical",gap:"0.5rem"},{default:t(()=>[a(e(l),{direction:"horizontal",gap:"0.5rem",align:"center"},{default:t(()=>[a(e(g),{tone:"info",variant:"soft"},{default:t(()=>[...n[24]||(n[24]=[u("EventBridge rules",-1)])]),_:1}),f("span",xe,i(r.value["event-rule"].length),1)]),_:1}),a(e(l),{direction:"horizontal",gap:"0.375rem",wrap:""},{default:t(()=>[(s(!0),y(_,null,z(r.value["event-rule"],(o,O)=>(s(),c(e(k),{key:`er-${O}-${o.name}`,size:"sm",variant:"outline"},{default:t(()=>[u(i(o.name),1)]),_:2},1024))),128))]),_:1})]),_:1})):p("",!0),(A=r.value.opensearch)!=null&&A.length?(s(),c(e(l),{key:7,direction:"vertical",gap:"0.5rem"},{default:t(()=>[a(e(l),{direction:"horizontal",gap:"0.5rem",align:"center"},{default:t(()=>[a(e(g),{tone:"info",variant:"soft"},{default:t(()=>[...n[25]||(n[25]=[u("OpenSearch collections",-1)])]),_:1}),f("span",Be,i(r.value.opensearch.length),1)]),_:1}),a(e(l),{direction:"horizontal",gap:"0.375rem",wrap:""},{default:t(()=>[(s(!0),y(_,null,z(r.value.opensearch,o=>(s(),c(e(k),{key:`os-${o.name}`,size:"sm",variant:"soft"},{default:t(()=>[u(" 🔍 "+i(o.name),1)]),_:2},1024))),128))]),_:1})]),_:1})):p("",!0),(H=r.value["event-source"])!=null&&H.length?(s(),c(e(l),{key:8,direction:"vertical",gap:"0.5rem"},{default:t(()=>[a(e(l),{direction:"horizontal",gap:"0.5rem",align:"center"},{default:t(()=>[a(e(g),{tone:"neutral",variant:"soft"},{default:t(()=>[...n[26]||(n[26]=[u("Event-source mappings",-1)])]),_:1}),f("span",Ie,i(r.value["event-source"].length),1)]),_:1}),a(e(l),{direction:"horizontal",gap:"0.375rem",wrap:""},{default:t(()=>[(s(!0),y(_,null,z(r.value["event-source"],(o,O)=>(s(),c(e(k),{key:`es-${O}-${o.name}`,size:"sm",variant:"outline"},{default:t(()=>[u(i(o.name),1)]),_:2},1024))),128))]),_:1})]),_:1})):p("",!0)]}),_:1})):(s(),c(e(fe),{key:0,title:"No resources declared",description:"This service's CloudFormation template has no resources LSS understands yet."}))]}),_:1})],64)):p("",!0),a(e(me),{open:U.value,"onUpdate:open":[n[2]||(n[2]=d=>U.value=d),n[3]||(n[3]=d=>{d||ae()})],title:`Logs — ${T.serviceName}`,description:`Status: ${Q.value}`,size:"lg"},{default:t(()=>[f("pre",Te,i(M.value.join(`
|
|
1
|
+
import{k as re,l as oe,o as ie,Y as ue,e as c,Z as t,U as e,t as l,a as B,r as h,m as s,j as a,R as P,y as C,i as u,d as f,T as i,p as g,f as p,G as de,g as y,s as ve,x as I,w as ce,q as J,z as fe,F as _,n as z,u as k,B as me,C as pe,b as ge,c as ye,W as _e}from"./index-BP9zQ9L-.js";const be={style:{"font-size":"1.1rem"}},he={key:1,style:{display:"flex","justify-content":"center",padding:"2rem"}},ze={class:"mono"},ke={class:"mono"},we={class:"mono"},$e={class:"mono"},Se={class:"muted"},Ne={class:"muted"},Le={class:"muted"},Ce={class:"muted"},De={class:"muted"},je={class:"muted"},xe={class:"muted"},Be={class:"muted"},Ie={class:"muted"},Te={class:"logs-pre"},Fe=re({__name:"ServiceDetailPage",props:{serviceName:{}},setup(T){const b=T,K=_e(),S=ye(),m=h(null),q=h(!0),D=h(null),F=h(!1),R=h(!1),U=h(!1),M=h([]),Q=h("stopped");let w=null,V=null;const E=h(!1),r=ge(()=>{var n;const v={lambda:[],dynamodb:[],sqs:[],sns:[],s3:[],eventbus:[],"event-rule":[],opensearch:[],"event-source":[]};for(const d of((n=m.value)==null?void 0:n.resources)||[])v[d.type]||(v[d.type]=[]),v[d.type].push(d);return v});async function N(){q.value=!0;try{m.value=await B.getService(b.serviceName),D.value=null}catch(v){D.value=v.message||"Service not found",m.value=null}finally{q.value=!1}}async function X(){if(!F.value){F.value=!0;try{await B.startService(b.serviceName),S.add({title:"Service started",description:b.serviceName,variant:"success"}),await N()}catch(v){S.add({title:"Failed to start",description:v.message,variant:"danger"})}finally{F.value=!1}}}async function ee(){if(!R.value){R.value=!0;try{await B.stopService(b.serviceName),S.add({title:"Service stopped",description:b.serviceName,variant:"info"}),await N()}catch(v){S.add({title:"Failed to stop",description:v.message,variant:"danger"})}finally{R.value=!1}}}async function G(){try{const v=await B.getServiceLogs(b.serviceName);M.value=v.logs||[],Q.value=v.status||"stopped"}catch(v){console.error("Failed to fetch logs:",v)}}function te(){U.value=!0,G(),w&&window.clearInterval(w),w=window.setInterval(G,2e3)}function ae(){U.value=!1,w&&window.clearInterval(w),w=null}async function ne(){try{await B.deleteService(b.serviceName),S.add({title:"Service deleted",description:b.serviceName,variant:"info"}),K.push("/services")}catch(v){S.add({title:"Failed to delete",description:v.message,variant:"danger"})}finally{E.value=!1}}function le(v){switch(v){case"running":return"success";case"registered":return"warning";case"stopped":return"neutral";default:return"danger"}}function se(v){return v?new Date(v).toLocaleString():"—"}return oe(()=>{N(),V=window.setInterval(N,1e4)}),ie(()=>{V&&window.clearInterval(V),w&&window.clearInterval(w)}),ue(()=>b.serviceName,N),(v,n)=>(s(),c(e(l),{direction:"vertical",gap:"1.25rem"},{default:t(()=>[a(e(l),{direction:"horizontal",gap:"0.5rem",align:"center",justify:"space-between"},{default:t(()=>[a(e(l),{direction:"horizontal",gap:"0.5rem",align:"center"},{default:t(()=>{var d;return[a(e(P),{to:"/services",style:{"text-decoration":"none"}},{default:t(()=>[a(e(C),{size:"sm",variant:"ghost"},{default:t(()=>[...n[5]||(n[5]=[u("← Services",-1)])]),_:1})]),_:1}),f("strong",be,i(T.serviceName),1),(d=m.value)!=null&&d.status?(s(),c(e(g),{key:0,tone:le(m.value.status),variant:"soft"},{default:t(()=>[u(i(m.value.status),1)]),_:1},8,["tone"])):p("",!0)]}),_:1}),a(e(l),{direction:"horizontal",gap:"0.375rem"},{default:t(()=>{var d,$;return[a(e(C),{size:"sm",variant:"soft",disabled:((d=m.value)==null?void 0:d.status)==="running",loading:F.value,onClick:X},{default:t(()=>[...n[6]||(n[6]=[u(" Start ",-1)])]),_:1},8,["disabled","loading"]),a(e(C),{size:"sm",variant:"soft",disabled:(($=m.value)==null?void 0:$.status)!=="running",loading:R.value,onClick:ee},{default:t(()=>[...n[7]||(n[7]=[u(" Stop ",-1)])]),_:1},8,["disabled","loading"]),a(e(C),{size:"sm",variant:"ghost",onClick:te},{default:t(()=>[...n[8]||(n[8]=[u("Logs",-1)])]),_:1}),a(e(C),{size:"sm",variant:"ghost",loading:q.value,onClick:N},{default:t(()=>[...n[9]||(n[9]=[u("Refresh",-1)])]),_:1},8,["loading"]),a(e(C),{size:"sm",variant:"danger",onClick:n[0]||(n[0]=L=>E.value=!0)},{default:t(()=>[...n[10]||(n[10]=[u("Delete",-1)])]),_:1})]}),_:1})]),_:1}),D.value?(s(),c(e(de),{key:0,variant:"danger",dismissible:"",onDismiss:n[1]||(n[1]=d=>D.value=null)},{default:t(()=>[u(i(D.value),1)]),_:1})):p("",!0),q.value&&!m.value?(s(),y("div",he,[a(e(ve),{label:"Loading service..."})])):m.value?(s(),y(_,{key:2},[a(e(ce),{columns:5,gap:"1rem"},{default:t(()=>{var d,$,L,j,x;return[a(e(I),{label:"Lambdas",value:((d=r.value.lambda)==null?void 0:d.length)||0,tone:"info"},null,8,["value"]),a(e(I),{label:"Tables",value:(($=r.value.dynamodb)==null?void 0:$.length)||0,tone:"info"},null,8,["value"]),a(e(I),{label:"Queues",value:((L=r.value.sqs)==null?void 0:L.length)||0,tone:"warning"},null,8,["value"]),a(e(I),{label:"Topics",value:((j=r.value.sns)==null?void 0:j.length)||0,tone:"info"},null,8,["value"]),a(e(I),{label:"Buckets",value:((x=r.value.s3)==null?void 0:x.length)||0,tone:"neutral"},null,8,["value"])]}),_:1}),a(e(J),{variant:"outline"},{header:t(()=>[...n[11]||(n[11]=[f("strong",null,"Metadata",-1)])]),default:t(()=>[a(e(l),{direction:"vertical",gap:"0.5rem"},{default:t(()=>[a(e(l),{direction:"horizontal",justify:"space-between"},{default:t(()=>[n[12]||(n[12]=f("span",{class:"muted"},"Path",-1)),f("span",ze,i(m.value.root),1)]),_:1}),a(e(l),{direction:"horizontal",justify:"space-between"},{default:t(()=>[n[13]||(n[13]=f("span",{class:"muted"},"Region",-1)),f("span",ke,i(m.value.region||"—"),1)]),_:1}),a(e(l),{direction:"horizontal",justify:"space-between"},{default:t(()=>[n[14]||(n[14]=f("span",{class:"muted"},"Invoke port",-1)),f("span",we,i(m.value.invokePort??"—"),1)]),_:1}),a(e(l),{direction:"horizontal",justify:"space-between"},{default:t(()=>[n[15]||(n[15]=f("span",{class:"muted"},"PID",-1)),f("span",$e,i(m.value.pid??"—"),1)]),_:1}),a(e(l),{direction:"horizontal",justify:"space-between"},{default:t(()=>[n[16]||(n[16]=f("span",{class:"muted"},"Last updated",-1)),f("span",null,i(se(m.value.lastUpdated)),1)]),_:1})]),_:1})]),_:1}),a(e(J),{variant:"outline"},{header:t(()=>[a(e(l),{direction:"horizontal",gap:"0.5rem",align:"center",justify:"space-between"},{default:t(()=>[n[17]||(n[17]=f("strong",null,"Declared resources",-1)),a(e(g),{tone:"neutral",variant:"soft"},{default:t(()=>{var d;return[u(i(((d=m.value.resources)==null?void 0:d.length)||0)+" total ",1)]}),_:1})]),_:1})]),default:t(()=>{var d;return[(d=m.value.resources)!=null&&d.length?(s(),c(e(l),{key:1,direction:"vertical",gap:"1rem"},{default:t(()=>{var $,L,j,x,W,Y,Z,A,H;return[($=r.value.dynamodb)!=null&&$.length?(s(),c(e(l),{key:0,direction:"vertical",gap:"0.5rem"},{default:t(()=>[a(e(l),{direction:"horizontal",gap:"0.5rem",align:"center"},{default:t(()=>[a(e(g),{tone:"info",variant:"soft"},{default:t(()=>[...n[18]||(n[18]=[u("DynamoDB tables",-1)])]),_:1}),f("span",Se,i(r.value.dynamodb.length),1)]),_:1}),a(e(l),{direction:"horizontal",gap:"0.375rem",wrap:""},{default:t(()=>[(s(!0),y(_,null,z(r.value.dynamodb,o=>(s(),c(e(P),{key:`db-${o.name}`,to:`/dynamo/${encodeURIComponent(o.name)}`,style:{"text-decoration":"none"}},{default:t(()=>[a(e(k),{size:"sm",variant:"soft",clickable:""},{default:t(()=>[u(i(o.name),1)]),_:2},1024)]),_:2},1032,["to"]))),128))]),_:1})]),_:1})):p("",!0),(L=r.value.sqs)!=null&&L.length?(s(),c(e(l),{key:1,direction:"vertical",gap:"0.5rem"},{default:t(()=>[a(e(l),{direction:"horizontal",gap:"0.5rem",align:"center"},{default:t(()=>[a(e(g),{tone:"warning",variant:"soft"},{default:t(()=>[...n[19]||(n[19]=[u("SQS queues",-1)])]),_:1}),f("span",Ne,i(r.value.sqs.length),1)]),_:1}),a(e(l),{direction:"horizontal",gap:"0.375rem",wrap:""},{default:t(()=>[(s(!0),y(_,null,z(r.value.sqs,o=>(s(),c(e(P),{key:`q-${o.name}`,to:"/queues",style:{"text-decoration":"none"}},{default:t(()=>[a(e(k),{size:"sm",variant:"soft",clickable:""},{default:t(()=>[u(i(o.name),1)]),_:2},1024)]),_:2},1024))),128))]),_:1})]),_:1})):p("",!0),(j=r.value.sns)!=null&&j.length?(s(),c(e(l),{key:2,direction:"vertical",gap:"0.5rem"},{default:t(()=>[a(e(l),{direction:"horizontal",gap:"0.5rem",align:"center"},{default:t(()=>[a(e(g),{tone:"info",variant:"soft"},{default:t(()=>[...n[20]||(n[20]=[u("SNS topics",-1)])]),_:1}),f("span",Le,i(r.value.sns.length),1)]),_:1}),a(e(l),{direction:"horizontal",gap:"0.375rem",wrap:""},{default:t(()=>[(s(!0),y(_,null,z(r.value.sns,o=>(s(),c(e(k),{key:`t-${o.name}`,size:"sm",variant:"soft"},{default:t(()=>[u(i(o.name),1)]),_:2},1024))),128))]),_:1})]),_:1})):p("",!0),(x=r.value.s3)!=null&&x.length?(s(),c(e(l),{key:3,direction:"vertical",gap:"0.5rem"},{default:t(()=>[a(e(l),{direction:"horizontal",gap:"0.5rem",align:"center"},{default:t(()=>[a(e(g),{tone:"neutral",variant:"soft"},{default:t(()=>[...n[21]||(n[21]=[u("S3 buckets",-1)])]),_:1}),f("span",Ce,i(r.value.s3.length),1)]),_:1}),a(e(l),{direction:"horizontal",gap:"0.375rem",wrap:""},{default:t(()=>[(s(!0),y(_,null,z(r.value.s3,o=>(s(),c(e(P),{key:`b-${o.name}`,to:`/buckets/${encodeURIComponent(o.name)}`,style:{"text-decoration":"none"}},{default:t(()=>[a(e(k),{size:"sm",variant:"soft",clickable:""},{default:t(()=>[u(i(o.name),1)]),_:2},1024)]),_:2},1032,["to"]))),128))]),_:1})]),_:1})):p("",!0),(W=r.value.lambda)!=null&&W.length?(s(),c(e(l),{key:4,direction:"vertical",gap:"0.5rem"},{default:t(()=>[a(e(l),{direction:"horizontal",gap:"0.5rem",align:"center"},{default:t(()=>[a(e(g),{tone:"neutral",variant:"soft"},{default:t(()=>[...n[22]||(n[22]=[u("Lambda functions",-1)])]),_:1}),f("span",De,i(r.value.lambda.length),1)]),_:1}),a(e(l),{direction:"horizontal",gap:"0.375rem",wrap:""},{default:t(()=>[(s(!0),y(_,null,z(r.value.lambda,o=>(s(),c(e(k),{key:`l-${o.name}`,size:"sm",variant:"soft"},{default:t(()=>[u(" λ "+i(o.name),1)]),_:2},1024))),128))]),_:1})]),_:1})):p("",!0),(Y=r.value.eventbus)!=null&&Y.length?(s(),c(e(l),{key:5,direction:"vertical",gap:"0.5rem"},{default:t(()=>[a(e(l),{direction:"horizontal",gap:"0.5rem",align:"center"},{default:t(()=>[a(e(g),{tone:"info",variant:"soft"},{default:t(()=>[...n[23]||(n[23]=[u("EventBridge buses",-1)])]),_:1}),f("span",je,i(r.value.eventbus.length),1)]),_:1}),a(e(l),{direction:"horizontal",gap:"0.375rem",wrap:""},{default:t(()=>[(s(!0),y(_,null,z(r.value.eventbus,o=>(s(),c(e(k),{key:`eb-${o.name}`,size:"sm",variant:"soft"},{default:t(()=>[u(i(o.name),1)]),_:2},1024))),128))]),_:1})]),_:1})):p("",!0),(Z=r.value["event-rule"])!=null&&Z.length?(s(),c(e(l),{key:6,direction:"vertical",gap:"0.5rem"},{default:t(()=>[a(e(l),{direction:"horizontal",gap:"0.5rem",align:"center"},{default:t(()=>[a(e(g),{tone:"info",variant:"soft"},{default:t(()=>[...n[24]||(n[24]=[u("EventBridge rules",-1)])]),_:1}),f("span",xe,i(r.value["event-rule"].length),1)]),_:1}),a(e(l),{direction:"horizontal",gap:"0.375rem",wrap:""},{default:t(()=>[(s(!0),y(_,null,z(r.value["event-rule"],(o,O)=>(s(),c(e(k),{key:`er-${O}-${o.name}`,size:"sm",variant:"outline"},{default:t(()=>[u(i(o.name),1)]),_:2},1024))),128))]),_:1})]),_:1})):p("",!0),(A=r.value.opensearch)!=null&&A.length?(s(),c(e(l),{key:7,direction:"vertical",gap:"0.5rem"},{default:t(()=>[a(e(l),{direction:"horizontal",gap:"0.5rem",align:"center"},{default:t(()=>[a(e(g),{tone:"info",variant:"soft"},{default:t(()=>[...n[25]||(n[25]=[u("OpenSearch collections",-1)])]),_:1}),f("span",Be,i(r.value.opensearch.length),1)]),_:1}),a(e(l),{direction:"horizontal",gap:"0.375rem",wrap:""},{default:t(()=>[(s(!0),y(_,null,z(r.value.opensearch,o=>(s(),c(e(k),{key:`os-${o.name}`,size:"sm",variant:"soft"},{default:t(()=>[u(" 🔍 "+i(o.name),1)]),_:2},1024))),128))]),_:1})]),_:1})):p("",!0),(H=r.value["event-source"])!=null&&H.length?(s(),c(e(l),{key:8,direction:"vertical",gap:"0.5rem"},{default:t(()=>[a(e(l),{direction:"horizontal",gap:"0.5rem",align:"center"},{default:t(()=>[a(e(g),{tone:"neutral",variant:"soft"},{default:t(()=>[...n[26]||(n[26]=[u("Event-source mappings",-1)])]),_:1}),f("span",Ie,i(r.value["event-source"].length),1)]),_:1}),a(e(l),{direction:"horizontal",gap:"0.375rem",wrap:""},{default:t(()=>[(s(!0),y(_,null,z(r.value["event-source"],(o,O)=>(s(),c(e(k),{key:`es-${O}-${o.name}`,size:"sm",variant:"outline"},{default:t(()=>[u(i(o.name),1)]),_:2},1024))),128))]),_:1})]),_:1})):p("",!0)]}),_:1})):(s(),c(e(fe),{key:0,title:"No resources declared",description:"This service's CloudFormation template has no resources LSS understands yet."}))]}),_:1})],64)):p("",!0),a(e(me),{open:U.value,"onUpdate:open":[n[2]||(n[2]=d=>U.value=d),n[3]||(n[3]=d=>{d||ae()})],title:`Logs — ${T.serviceName}`,description:`Status: ${Q.value}`,size:"lg"},{default:t(()=>[f("pre",Te,i(M.value.join(`
|
|
2
2
|
`)||"— no output yet —"),1)]),_:1},8,["open","title","description"]),a(e(pe),{open:E.value,"onUpdate:open":n[4]||(n[4]=d=>E.value=d),title:`Delete service “${T.serviceName}”?`,description:"This removes the service from the cache and cleans up its provisioned resources in LocalStack.","confirm-label":"Delete","cancel-label":"Cancel","confirm-variant":"danger",onConfirm:ne},null,8,["open","title"])]),_:1}))}});export{Fe as default};
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
import{k as O,l as se,o as ne,m as i,e as d,U as n,q as re,Z as s,g as E,j as r,s as le,z as ie,A as oe,t as C,y as B,i as l,T as o,u as g,f as v,d as L,p as ue,R as de,B as ce,C as ve,D as fe,E as ge,$ as pe,r as u,b as K,a as w,c as me}from"./index-
|
|
1
|
+
import{k as O,l as se,o as ne,m as i,e as d,U as n,q as re,Z as s,g as E,j as r,s as le,z as ie,A as oe,t as C,y as B,i as l,T as o,u as g,f as v,d as L,p as ue,R as de,B as ce,C as ve,D as fe,E as ge,$ as pe,r as u,b as K,a as w,c as me}from"./index-BP9zQ9L-.js";const ke={key:0,style:{display:"flex","justify-content":"center",padding:"2rem"}},ye={style:{"text-decoration":"underline","text-decoration-style":"dotted","text-underline-offset":"3px"}},Se={class:"mono"},be={key:8,class:"muted",style:{"font-size":"0.75rem"}},_e={class:"logs-pre"},we=O({__name:"ServicesList",setup(Z){const c=me(),h=u([]),U=u(!0),$=u(!1),p=u(""),y=u(null),x=u([]),R=u("stopped"),f=u(null),m=u({}),k=u({}),S=u(null),z=u(!1);let D=null;const G=[{key:"name",label:"Name"},{key:"status",label:"Status"},{key:"root",label:"Path"},{key:"resourceBreakdown",label:"Resources"},{key:"lastUpdated",label:"Last updated"},{key:"actions",label:"Actions",align:"right"}],H=K(()=>h.value.map(t=>({...t}))),F=K({get:()=>y.value!==null,set:t=>{t||X()}});async function b(){try{h.value=await w.listServices()}catch(t){console.error("Failed to load services:",t)}finally{U.value=!1}}async function J(t){if(!m.value[t]){m.value={...m.value,[t]:!0};try{await w.startService(t),c.add({title:"Service started",description:t,variant:"success"}),await b()}catch(a){c.add({title:"Failed to start service",description:a.message,variant:"danger"})}finally{m.value={...m.value,[t]:!1}}}}async function Q(t){if(!k.value[t]){k.value={...k.value,[t]:!0};try{await w.stopService(t),c.add({title:"Service stopped",description:t,variant:"info"}),await b()}catch(a){c.add({title:"Failed to stop service",description:a.message,variant:"danger"})}finally{k.value={...k.value,[t]:!1}}}}async function I(t){try{const a=await w.getServiceLogs(t);x.value=a.logs||[],R.value=a.status||"stopped"}catch(a){console.error("Failed to fetch logs:",a)}}function W(t){y.value=t,I(t),f.value&&window.clearInterval(f.value),f.value=window.setInterval(()=>I(t),2e3)}function X(){y.value=null,x.value=[],f.value&&window.clearInterval(f.value),f.value=null}async function N(){if(p.value.trim()){$.value=!0;try{await w.registerService(p.value),c.add({title:"Service registered",description:p.value,variant:"success"}),p.value="",await b()}catch(t){c.add({title:"Failed to register service",description:t.message,variant:"danger"})}finally{$.value=!1}}}function Y(t){S.value=t,z.value=!0}async function ee(){if(!S.value)return;const t=S.value;try{await w.deleteService(t),c.add({title:"Service deleted",description:t,variant:"info"}),await b()}catch(a){c.add({title:"Failed to delete service",description:a.message,variant:"danger"})}finally{S.value=null,z.value=!1}}function te(t){return new Date(t).toLocaleString()}function ae(t){switch(t){case"running":return"success";case"registered":return"warning";case"stopped":return"neutral";default:return"danger"}}return se(()=>{b(),D=window.setInterval(b,1e4)}),ne(()=>{D&&window.clearInterval(D),f.value&&window.clearInterval(f.value)}),(t,a)=>(i(),d(n(re),{variant:"outline"},{header:s(()=>[r(n(C),{direction:"horizontal",gap:"0.75rem",align:"center",justify:"space-between"},{default:s(()=>[a[4]||(a[4]=L("strong",null,"Microservices",-1)),r(n(C),{direction:"horizontal",gap:"0.5rem",align:"center"},{default:s(()=>[r(n(fe),{hint:"Absolute path to a Serverless project",htmlFor:"register-path"},{default:s(()=>[r(n(ge),{modelValue:p.value,"onUpdate:modelValue":a[0]||(a[0]=e=>p.value=e),placeholder:"/path/to/microservice",disabled:$.value,onKeyup:pe(N,["enter"])},null,8,["modelValue","disabled"])]),_:1}),r(n(B),{variant:"solid",loading:$.value,disabled:!p.value.trim(),onClick:N},{default:s(()=>[...a[3]||(a[3]=[l(" Register ",-1)])]),_:1},8,["loading","disabled"])]),_:1})]),_:1})]),default:s(()=>[U.value?(i(),E("div",ke,[r(n(le),{label:"Loading services..."})])):h.value.length?(i(),d(n(oe),{key:2,columns:G,rows:H.value},{"cell-name":s(({row:e})=>[r(n(de),{to:`/services/${encodeURIComponent(String(e.name))}`,style:{color:"inherit","text-decoration":"none"}},{default:s(()=>[L("strong",ye,o(e.name),1)]),_:2},1032,["to"])]),"cell-status":s(({row:e})=>[r(n(ue),{tone:ae(String(e.status)),variant:"soft"},{default:s(()=>[l(o(e.status),1)]),_:2},1032,["tone"])]),"cell-root":s(({row:e})=>[L("span",Se,o(e.root),1)]),"cell-resourceBreakdown":s(({row:e})=>[r(n(C),{direction:"horizontal",gap:"0.25rem",wrap:""},{default:s(()=>{var _,T,V,j,q,A,M,P;return[(_=e.resourceBreakdown)!=null&&_.lambdas?(i(),d(n(g),{key:0,size:"sm",variant:"soft"},{default:s(()=>[l(" λ "+o(e.resourceBreakdown.lambdas),1)]),_:2},1024)):v("",!0),(T=e.resourceBreakdown)!=null&&T.tables?(i(),d(n(g),{key:1,size:"sm",variant:"soft"},{default:s(()=>[l(" 🗄 "+o(e.resourceBreakdown.tables),1)]),_:2},1024)):v("",!0),(V=e.resourceBreakdown)!=null&&V.queues?(i(),d(n(g),{key:2,size:"sm",variant:"soft"},{default:s(()=>[l(" 📨 "+o(e.resourceBreakdown.queues),1)]),_:2},1024)):v("",!0),(j=e.resourceBreakdown)!=null&&j.topics?(i(),d(n(g),{key:3,size:"sm",variant:"soft"},{default:s(()=>[l(" 📣 "+o(e.resourceBreakdown.topics),1)]),_:2},1024)):v("",!0),(q=e.resourceBreakdown)!=null&&q.buckets?(i(),d(n(g),{key:4,size:"sm",variant:"soft"},{default:s(()=>[l(" 🪣 "+o(e.resourceBreakdown.buckets),1)]),_:2},1024)):v("",!0),(A=e.resourceBreakdown)!=null&&A.buses?(i(),d(n(g),{key:5,size:"sm",variant:"soft"},{default:s(()=>[l(" 🔀 "+o(e.resourceBreakdown.buses),1)]),_:2},1024)):v("",!0),(M=e.resourceBreakdown)!=null&&M.eventRules?(i(),d(n(g),{key:6,size:"sm",variant:"soft"},{default:s(()=>[l(" 🎯 "+o(e.resourceBreakdown.eventRules),1)]),_:2},1024)):v("",!0),(P=e.resourceBreakdown)!=null&&P.collections?(i(),d(n(g),{key:7,size:"sm",variant:"soft"},{default:s(()=>[l(" 🔍 "+o(e.resourceBreakdown.collections),1)]),_:2},1024)):v("",!0),e.resourcesCount?v("",!0):(i(),E("span",be," none "))]}),_:2},1024)]),"cell-lastUpdated":s(({row:e})=>[l(o(te(Number(e.lastUpdated))),1)]),"cell-actions":s(({row:e})=>[r(n(C),{direction:"horizontal",gap:"0.375rem",justify:"flex-end",wrap:""},{default:s(()=>[r(n(B),{size:"sm",variant:"soft",disabled:e.status==="running"||m.value[String(e.name)],loading:m.value[String(e.name)],onClick:_=>J(String(e.name))},{default:s(()=>[...a[5]||(a[5]=[l(" Start ",-1)])]),_:1},8,["disabled","loading","onClick"]),r(n(B),{size:"sm",variant:"soft",disabled:e.status!=="running"||k.value[String(e.name)],loading:k.value[String(e.name)],onClick:_=>Q(String(e.name))},{default:s(()=>[...a[6]||(a[6]=[l(" Stop ",-1)])]),_:1},8,["disabled","loading","onClick"]),r(n(B),{size:"sm",variant:"ghost",onClick:_=>W(String(e.name))},{default:s(()=>[...a[7]||(a[7]=[l(" Logs ",-1)])]),_:1},8,["onClick"]),r(n(B),{size:"sm",variant:"danger",onClick:_=>Y(String(e.name))},{default:s(()=>[...a[8]||(a[8]=[l(" Delete ",-1)])]),_:1},8,["onClick"])]),_:2},1024)]),_:1},8,["rows"])):(i(),d(n(ie),{key:1,title:"No services registered",description:"Register your first microservice using the form above."})),r(n(ce),{open:F.value,"onUpdate:open":a[1]||(a[1]=e=>F.value=e),title:y.value?`Logs — ${y.value}`:"Logs",description:y.value?`Status: ${R.value}`:"",size:"lg"},{default:s(()=>[L("pre",_e,o(x.value.join(`
|
|
2
2
|
`)||"— no output yet —"),1)]),_:1},8,["open","title","description"]),r(n(ve),{open:z.value,"onUpdate:open":a[2]||(a[2]=e=>z.value=e),title:`Delete service${S.value?` “${S.value}”`:""}?`,description:"This removes the service from the cache and cleans up its provisioned resources in LocalStack.","confirm-label":"Delete","cancel-label":"Cancel","confirm-variant":"danger",onConfirm:ee},null,8,["open","title"])]),_:1}))}}),he=O({__name:"ServicesPage",setup(Z){return(c,h)=>(i(),d(we))}});export{he as default};
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
const __vite__mapDeps=(i,m=__vite__mapDeps,d=(m.f||(m.f=["assets/OverviewPage-
|
|
1
|
+
const __vite__mapDeps=(i,m=__vite__mapDeps,d=(m.f||(m.f=["assets/OverviewPage-B13l71G0.js","assets/OverviewPage-qEl0a-0B.css"])))=>i.map(i=>d[i]);
|
|
2
2
|
(function(){const t=document.createElement("link").relList;if(t&&t.supports&&t.supports("modulepreload"))return;for(const n of document.querySelectorAll('link[rel="modulepreload"]'))a(n);new MutationObserver(n=>{for(const s of n)if(s.type==="childList")for(const i of s.addedNodes)i.tagName==="LINK"&&i.rel==="modulepreload"&&a(i)}).observe(document,{childList:!0,subtree:!0});function l(n){const s={};return n.integrity&&(s.integrity=n.integrity),n.referrerPolicy&&(s.referrerPolicy=n.referrerPolicy),n.crossOrigin==="use-credentials"?s.credentials="include":n.crossOrigin==="anonymous"?s.credentials="omit":s.credentials="same-origin",s}function a(n){if(n.ep)return;n.ep=!0;const s=l(n);fetch(n.href,s)}})();/**
|
|
3
3
|
* @vue/shared v3.5.34
|
|
4
4
|
* (c) 2018-present Yuxi (Evan) You and Vue contributors
|
|
@@ -34,4 +34,4 @@ const __vite__mapDeps=(i,m=__vite__mapDeps,d=(m.f||(m.f=["assets/OverviewPage-0x
|
|
|
34
34
|
* (c) 2025 Eduardo San Martin Morote
|
|
35
35
|
* @license MIT
|
|
36
36
|
*/let cy=()=>location.protocol+"//"+location.host;function Bo(e,t){const{pathname:l,search:a,hash:n}=t,s=e.indexOf("#");if(s>-1){let i=n.includes(e.slice(s))?e.slice(s).length:1,r=n.slice(i);return r[0]!=="/"&&(r="/"+r),ki(r,"")}return ki(l,e)+a+n}function fy(e,t,l,a){let n=[],s=[],i=null;const r=({state:f})=>{const v=Bo(e,location),T=l.value,x=t.value;let S=0;if(f){if(l.value=v,t.value=f,i&&i===T){i=null;return}S=x?f.position-x.position:0}else a(v);n.forEach(V=>{V(l.value,T,{delta:S,type:qn.pop,direction:S?S>0?Dn.forward:Dn.back:Dn.unknown})})};function o(){i=l.value}function c(f){n.push(f);const v=()=>{const T=n.indexOf(f);T>-1&&n.splice(T,1)};return s.push(v),v}function u(){if(document.visibilityState==="hidden"){const{history:f}=window;if(!f.state)return;f.replaceState(Be({},f.state,{scroll:cn()}),"")}}function d(){for(const f of s)f();s=[],window.removeEventListener("popstate",r),window.removeEventListener("pagehide",u),document.removeEventListener("visibilitychange",u)}return window.addEventListener("popstate",r),window.addEventListener("pagehide",u),document.addEventListener("visibilitychange",u),{pauseListeners:o,listen:c,destroy:d}}function Ci(e,t,l,a=!1,n=!1){return{back:e,current:t,forward:l,replaced:a,position:window.history.length,scroll:n?cn():null}}function py(e){const{history:t,location:l}=window,a={value:Bo(e,l)},n={value:t.state};n.value||s(a.value,{back:null,current:a.value,forward:null,position:t.length-1,replaced:!0,scroll:null},!0);function s(o,c,u){const d=e.indexOf("#"),f=d>-1?(l.host&&document.querySelector("base")?e:e.slice(d))+o:cy()+e+o;try{t[u?"replaceState":"pushState"](c,"",f),n.value=c}catch(v){console.error(v),l[u?"replace":"assign"](f)}}function i(o,c){s(o,Be({},t.state,Ci(n.value.back,o,n.value.forward,!0),c,{position:n.value.position}),!0),a.value=o}function r(o,c){const u=Be({},n.value,t.state,{forward:o,scroll:cn()});s(u.current,u,!0),s(o,Be({},Ci(a.value,o,null),{position:u.position+1},c),!1),a.value=o}return{location:a,state:n,push:r,replace:i}}function vy(e){e=Q_(e);const t=py(e),l=fy(e,t.state,t.location,t.replace);function a(s,i=!0){i||l.pauseListeners(),history.go(s)}const n=Be({location:"",base:e,go:a,createHref:Z_.bind(null,e)},t,l);return Object.defineProperty(n,"location",{enumerable:!0,get:()=>t.location.value}),Object.defineProperty(n,"state",{enumerable:!0,get:()=>t.state.value}),n}let Cl=(function(e){return e[e.Static=0]="Static",e[e.Param=1]="Param",e[e.Group=2]="Group",e})({});var Ze=(function(e){return e[e.Static=0]="Static",e[e.Param=1]="Param",e[e.ParamRegExp=2]="ParamRegExp",e[e.ParamRegExpEnd=3]="ParamRegExpEnd",e[e.EscapeNext=4]="EscapeNext",e})(Ze||{});const my={type:Cl.Static,value:""},hy=/[a-zA-Z0-9_]/;function by(e){if(!e)return[[]];if(e==="/")return[[my]];if(!e.startsWith("/"))throw new Error(`Invalid path "${e}"`);function t(v){throw new Error(`ERR (${l})/"${c}": ${v}`)}let l=Ze.Static,a=l;const n=[];let s;function i(){s&&n.push(s),s=[]}let r=0,o,c="",u="";function d(){c&&(l===Ze.Static?s.push({type:Cl.Static,value:c}):l===Ze.Param||l===Ze.ParamRegExp||l===Ze.ParamRegExpEnd?(s.length>1&&(o==="*"||o==="+")&&t(`A repeatable param (${c}) must be alone in its segment. eg: '/:ids+.`),s.push({type:Cl.Param,value:c,regexp:u,repeatable:o==="*"||o==="+",optional:o==="*"||o==="?"})):t("Invalid state to consume buffer"),c="")}function f(){c+=o}for(;r<e.length;){if(o=e[r++],o==="\\"&&l!==Ze.ParamRegExp){a=l,l=Ze.EscapeNext;continue}switch(l){case Ze.Static:o==="/"?(c&&d(),i()):o===":"?(d(),l=Ze.Param):f();break;case Ze.EscapeNext:f(),l=a;break;case Ze.Param:o==="("?l=Ze.ParamRegExp:hy.test(o)?f():(d(),l=Ze.Static,o!=="*"&&o!=="?"&&o!=="+"&&r--);break;case Ze.ParamRegExp:o===")"?u[u.length-1]=="\\"?u=u.slice(0,-1)+o:l=Ze.ParamRegExpEnd:u+=o;break;case Ze.ParamRegExpEnd:d(),l=Ze.Static,o!=="*"&&o!=="?"&&o!=="+"&&r--,u="";break;default:t("Unknown state");break}}return l===Ze.ParamRegExp&&t(`Unfinished custom RegExp for param "${c}"`),d(),i(),n}const Ei="[^/]+?",gy={sensitive:!1,strict:!1,start:!0,end:!0};var vt=(function(e){return e[e._multiplier=10]="_multiplier",e[e.Root=90]="Root",e[e.Segment=40]="Segment",e[e.SubSegment=30]="SubSegment",e[e.Static=40]="Static",e[e.Dynamic=20]="Dynamic",e[e.BonusCustomRegExp=10]="BonusCustomRegExp",e[e.BonusWildcard=-50]="BonusWildcard",e[e.BonusRepeatable=-20]="BonusRepeatable",e[e.BonusOptional=-8]="BonusOptional",e[e.BonusStrict=.7000000000000001]="BonusStrict",e[e.BonusCaseSensitive=.25]="BonusCaseSensitive",e})(vt||{});const _y=/[.+*?^${}()[\]/\\]/g;function yy(e,t){const l=Be({},gy,t),a=[];let n=l.start?"^":"";const s=[];for(const c of e){const u=c.length?[]:[vt.Root];l.strict&&!c.length&&(n+="/");for(let d=0;d<c.length;d++){const f=c[d];let v=vt.Segment+(l.sensitive?vt.BonusCaseSensitive:0);if(f.type===Cl.Static)d||(n+="/"),n+=f.value.replace(_y,"\\$&"),v+=vt.Static;else if(f.type===Cl.Param){const{value:T,repeatable:x,optional:S,regexp:V}=f;s.push({name:T,repeatable:x,optional:S});const R=V||Ei;if(R!==Ei){v+=vt.BonusCustomRegExp;try{`${R}`}catch(_){throw new Error(`Invalid custom RegExp for param "${T}" (${R}): `+_.message)}}let O=x?`((?:${R})(?:/(?:${R}))*)`:`(${R})`;d||(O=S&&c.length<2?`(?:/${O})`:"/"+O),S&&(O+="?"),n+=O,v+=vt.Dynamic,S&&(v+=vt.BonusOptional),x&&(v+=vt.BonusRepeatable),R===".*"&&(v+=vt.BonusWildcard)}u.push(v)}a.push(u)}if(l.strict&&l.end){const c=a.length-1;a[c][a[c].length-1]+=vt.BonusStrict}l.strict||(n+="/?"),l.end?n+="$":l.strict&&!n.endsWith("/")&&(n+="(?:/|$)");const i=new RegExp(n,l.sensitive?"":"i");function r(c){const u=c.match(i),d={};if(!u)return null;for(let f=1;f<u.length;f++){const v=u[f]||"",T=s[f-1];d[T.name]=v&&T.repeatable?v.split("/"):v}return d}function o(c){let u="",d=!1;for(const f of e){(!d||!u.endsWith("/"))&&(u+="/"),d=!1;for(const v of f)if(v.type===Cl.Static)u+=v.value;else if(v.type===Cl.Param){const{value:T,repeatable:x,optional:S}=v,V=T in c?c[T]:"";if(Pt(V)&&!x)throw new Error(`Provided param "${T}" is an array but it is not repeatable (* or + modifiers)`);const R=Pt(V)?V.join("/"):V;if(!R)if(S)f.length<2&&(u.endsWith("/")?u=u.slice(0,-1):d=!0);else throw new Error(`Missing required param "${T}"`);u+=R}}return u||"/"}return{re:i,score:a,keys:s,parse:r,stringify:o}}function ky(e,t){let l=0;for(;l<e.length&&l<t.length;){const a=t[l]-e[l];if(a)return a;l++}return e.length<t.length?e.length===1&&e[0]===vt.Static+vt.Segment?-1:1:e.length>t.length?t.length===1&&t[0]===vt.Static+vt.Segment?1:-1:0}function No(e,t){let l=0;const a=e.score,n=t.score;for(;l<a.length&&l<n.length;){const s=ky(a[l],n[l]);if(s)return s;l++}if(Math.abs(n.length-a.length)===1){if(Si(a))return 1;if(Si(n))return-1}return n.length-a.length}function Si(e){const t=e[e.length-1];return e.length>0&&t[t.length-1]<0}const $y={strict:!1,end:!0,sensitive:!1};function wy(e,t,l){const a=yy(by(e.path),l),n=Be(a,{record:e,parent:t,children:[],alias:[]});return t&&!n.record.aliasOf==!t.record.aliasOf&&t.children.push(n),n}function xy(e,t){const l=[],a=new Map;t=yi($y,t);function n(d){return a.get(d)}function s(d,f,v){const T=!v,x=Di(d);x.aliasOf=v&&v.record;const S=yi(t,d),V=[x];if("alias"in d){const _=typeof d.alias=="string"?[d.alias]:d.alias;for(const k of _)V.push(Di(Be({},x,{components:v?v.record.components:x.components,path:k,aliasOf:v?v.record:x})))}let R,O;for(const _ of V){const{path:k}=_;if(f&&k[0]!=="/"){const C=f.record.path,A=C[C.length-1]==="/"?"":"/";_.path=f.record.path+(k&&A+k)}if(R=wy(_,f,S),v?v.alias.push(R):(O=O||R,O!==R&&O.alias.push(R),T&&d.name&&!Oi(R)&&i(d.name)),Lo(R)&&o(R),x.children){const C=x.children;for(let A=0;A<C.length;A++)s(C[A],R,v&&v.children[A])}v=v||R}return O?()=>{i(O)}:fa}function i(d){if(Po(d)){const f=a.get(d);f&&(a.delete(d),l.splice(l.indexOf(f),1),f.children.forEach(i),f.alias.forEach(i))}else{const f=l.indexOf(d);f>-1&&(l.splice(f,1),d.record.name&&a.delete(d.record.name),d.children.forEach(i),d.alias.forEach(i))}}function r(){return l}function o(d){const f=Ey(d,l);l.splice(f,0,d),d.record.name&&!Oi(d)&&a.set(d.record.name,d)}function c(d,f){let v,T={},x,S;if("name"in d&&d.name){if(v=a.get(d.name),!v)throw Yl(Ge.MATCHER_NOT_FOUND,{location:d});S=v.record.name,T=Be(Ai(f.params,v.keys.filter(O=>!O.optional).concat(v.parent?v.parent.keys.filter(O=>O.optional):[]).map(O=>O.name)),d.params&&Ai(d.params,v.keys.map(O=>O.name))),x=v.stringify(T)}else if(d.path!=null)x=d.path,v=l.find(O=>O.re.test(x)),v&&(T=v.parse(x),S=v.record.name);else{if(v=f.name?a.get(f.name):l.find(O=>O.re.test(f.path)),!v)throw Yl(Ge.MATCHER_NOT_FOUND,{location:d,currentLocation:f});S=v.record.name,T=Be({},f.params,d.params),x=v.stringify(T)}const V=[];let R=v;for(;R;)V.unshift(R.record),R=R.parent;return{name:S,path:x,params:T,matched:V,meta:Cy(V)}}e.forEach(d=>s(d));function u(){l.length=0,a.clear()}return{addRoute:s,resolve:c,removeRoute:i,clearRoutes:u,getRoutes:r,getRecordMatcher:n}}function Ai(e,t){const l={};for(const a of t)a in e&&(l[a]=e[a]);return l}function Di(e){const t={path:e.path,redirect:e.redirect,name:e.name,meta:e.meta||{},aliasOf:e.aliasOf,beforeEnter:e.beforeEnter,props:Ty(e),children:e.children||[],instances:{},leaveGuards:new Set,updateGuards:new Set,enterCallbacks:{},components:"components"in e?e.components||null:e.component&&{default:e.component}};return Object.defineProperty(t,"mods",{value:{}}),t}function Ty(e){const t={},l=e.props||!1;if("component"in e)t.default=l;else for(const a in e.components)t[a]=typeof l=="object"?l[a]:l;return t}function Oi(e){for(;e;){if(e.record.aliasOf)return!0;e=e.parent}return!1}function Cy(e){return e.reduce((t,l)=>Be(t,l.meta),{})}function Ey(e,t){let l=0,a=t.length;for(;l!==a;){const s=l+a>>1;No(e,t[s])<0?a=s:l=s+1}const n=Sy(e);return n&&(a=t.lastIndexOf(n,a-1)),a}function Sy(e){let t=e;for(;t=t.parent;)if(Lo(t)&&No(e,t)===0)return t}function Lo({record:e}){return!!(e.name||e.components&&Object.keys(e.components).length||e.redirect)}function Ri(e){const t=tt(fn),l=tt(ms),a=h(()=>{const o=M(e.to);return t.resolve(o)}),n=h(()=>{const{matched:o}=a.value,{length:c}=o,u=o[c-1],d=l.matched;if(!u||!d.length)return-1;const f=d.findIndex(Jl.bind(null,u));if(f>-1)return f;const v=Ii(o[c-2]);return c>1&&Ii(u)===v&&d[d.length-1].path!==v?d.findIndex(Jl.bind(null,o[c-2])):f}),s=h(()=>n.value>-1&&Iy(l.params,a.value.params)),i=h(()=>n.value>-1&&n.value===l.matched.length-1&&Vo(l.params,a.value.params));function r(o={}){if(Ry(o)){const c=t[M(e.replace)?"replace":"push"](M(e.to)).catch(fa);return e.viewTransition&&typeof document<"u"&&"startViewTransition"in document&&document.startViewTransition(()=>c),c}return Promise.resolve()}return{route:a,href:h(()=>a.value.href),isActive:s,isExactActive:i,navigate:r}}function Ay(e){return e.length===1?e[0]:e}const Dy=ve({name:"RouterLink",compatConfig:{MODE:3},props:{to:{type:[String,Object],required:!0},replace:Boolean,activeClass:String,exactActiveClass:String,custom:Boolean,ariaCurrentValue:{type:String,default:"page"},viewTransition:Boolean},useLink:Ri,setup(e,{slots:t}){const l=Al(Ri(e)),{options:a}=tt(fn),n=h(()=>({[Vi(e.activeClass,a.linkActiveClass,"router-link-active")]:l.isActive,[Vi(e.exactActiveClass,a.linkExactActiveClass,"router-link-exact-active")]:l.isExactActive}));return()=>{const s=t.default&&Ay(t.default(l));return e.custom?s:ya("a",{"aria-current":l.isExactActive?e.ariaCurrentValue:null,href:l.href,onClick:l.navigate,class:n.value},s)}}}),Oy=Dy;function Ry(e){if(!(e.metaKey||e.altKey||e.ctrlKey||e.shiftKey)&&!e.defaultPrevented&&!(e.button!==void 0&&e.button!==0)){if(e.currentTarget&&e.currentTarget.getAttribute){const t=e.currentTarget.getAttribute("target");if(/\b_blank\b/i.test(t))return}return e.preventDefault&&e.preventDefault(),!0}}function Iy(e,t){for(const l in t){const a=t[l],n=e[l];if(typeof a=="string"){if(a!==n)return!1}else if(!Pt(n)||n.length!==a.length||a.some((s,i)=>s.valueOf()!==n[i].valueOf()))return!1}return!0}function Ii(e){return e?e.aliasOf?e.aliasOf.path:e.path:""}const Vi=(e,t,l)=>e??t??l,Vy=ve({name:"RouterView",inheritAttrs:!1,props:{name:{type:String,default:"default"},route:Object},compatConfig:{MODE:3},setup(e,{attrs:t,slots:l}){const a=tt(Yn),n=h(()=>e.route||a.value),s=tt(Ti,0),i=h(()=>{let c=M(s);const{matched:u}=n.value;let d;for(;(d=u[c])&&!d.components;)c++;return c}),r=h(()=>n.value.matched[i.value]);Zt(Ti,h(()=>i.value+1)),Zt(uy,r),Zt(Yn,n);const o=ne();return Ve(()=>[o.value,r.value,e.name],([c,u,d],[f,v,T])=>{u&&(u.instances[d]=c,v&&v!==u&&c&&c===f&&(u.leaveGuards.size||(u.leaveGuards=v.leaveGuards),u.updateGuards.size||(u.updateGuards=v.updateGuards))),c&&u&&(!v||!Jl(u,v)||!f)&&(u.enterCallbacks[d]||[]).forEach(x=>x(c))},{flush:"post"}),()=>{const c=n.value,u=e.name,d=r.value,f=d&&d.components[u];if(!f)return Pi(l.default,{Component:f,route:c});const v=d.props[u],T=v?v===!0?c.params:typeof v=="function"?v(c):v:null,S=ya(f,Be({},T,t,{onVnodeUnmounted:V=>{V.component.isUnmounted&&(d.instances[u]=null)},ref:o}));return Pi(l.default,{Component:S,route:c})||S}}});function Pi(e,t){if(!e)return null;const l=e(t);return l.length===1?l[0]:l}const Fo=Vy;function Py(e){const t=xy(e.routes,e),l=e.parseQuery||ry,a=e.stringifyQuery||xi,n=e.history,s=la(),i=la(),r=la(),o=Vu(rl);let c=rl;Ml&&e.scrollBehavior&&"scrollRestoration"in history&&(history.scrollRestoration="manual");const u=Sn.bind(null,B=>""+B),d=Sn.bind(null,j_),f=Sn.bind(null,xa);function v(B,L){let q,oe;return Po(B)?(q=t.getRecordMatcher(B),oe=L):oe=B,t.addRoute(oe,q)}function T(B){const L=t.getRecordMatcher(B);L&&t.removeRoute(L)}function x(){return t.getRoutes().map(B=>B.record)}function S(B){return!!t.getRecordMatcher(B)}function V(B,L){if(L=Be({},L||o.value),typeof B=="string"){const E=An(l,B,L.path),z=t.resolve({path:E.path},L),j=n.createHref(E.fullPath);return Be(E,z,{params:f(z.params),hash:xa(E.hash),redirectedFrom:void 0,href:j})}let q;if(B.path!=null)q=Be({},B,{path:An(l,B.path,L.path).path});else{const E=Be({},B.params);for(const z in E)E[z]==null&&delete E[z];q=Be({},B,{params:d(E)}),L.params=d(L.params)}const oe=t.resolve(q,L),U=B.hash||"";oe.params=u(f(oe.params));const p=G_(a,Be({},B,{hash:z_(U),path:oe.path})),b=n.createHref(p);return Be({fullPath:p,hash:U,query:a===xi?oy(B.query):B.query||{}},oe,{redirectedFrom:void 0,href:b})}function R(B){return typeof B=="string"?An(l,B,o.value.path):Be({},B)}function O(B,L){if(c!==B)return Yl(Ge.NAVIGATION_CANCELLED,{from:L,to:B})}function _(B){return A(B)}function k(B){return _(Be(R(B),{replace:!0}))}function C(B,L){const q=B.matched[B.matched.length-1];if(q&&q.redirect){const{redirect:oe}=q;let U=typeof oe=="function"?oe(B,L):oe;return typeof U=="string"&&(U=U.includes("?")||U.includes("#")?U=R(U):{path:U},U.params={}),Be({query:B.query,hash:B.hash,params:U.path!=null?{}:B.params},U)}}function A(B,L){const q=c=V(B),oe=o.value,U=B.state,p=B.force,b=B.replace===!0,E=C(q,oe);if(E)return A(Be(R(E),{state:typeof E=="object"?Be({},U,E.state):U,force:p,replace:b}),L||q);const z=q;z.redirectedFrom=L;let j;return!p&&q_(a,oe,q)&&(j=Yl(Ge.NAVIGATION_DUPLICATED,{to:z,from:oe}),J(oe,oe,!0,!1)),(j?Promise.resolve(j):I(z,oe)).catch(W=>Gt(W)?Gt(W,Ge.NAVIGATION_GUARD_REDIRECT)?W:ce(W):D(W,z,oe)).then(W=>{if(W){if(Gt(W,Ge.NAVIGATION_GUARD_REDIRECT))return A(Be({replace:b},R(W.to),{state:typeof W.to=="object"?Be({},U,W.to.state):U,force:p}),L||z)}else W=H(z,oe,!0,b,U);return Q(z,oe,W),W})}function P(B,L){const q=O(B,L);return q?Promise.reject(q):Promise.resolve()}function N(B){const L=ee.values().next().value;return L&&typeof L.runWithContext=="function"?L.runWithContext(B):B()}function I(B,L){let q;const[oe,U,p]=dy(B,L);q=On(oe.reverse(),"beforeRouteLeave",B,L);for(const E of oe)E.leaveGuards.forEach(z=>{q.push(cl(z,B,L))});const b=P.bind(null,B,L);return q.push(b),he(q).then(()=>{q=[];for(const E of s.list())q.push(cl(E,B,L));return q.push(b),he(q)}).then(()=>{q=On(U,"beforeRouteUpdate",B,L);for(const E of U)E.updateGuards.forEach(z=>{q.push(cl(z,B,L))});return q.push(b),he(q)}).then(()=>{q=[];for(const E of p)if(E.beforeEnter)if(Pt(E.beforeEnter))for(const z of E.beforeEnter)q.push(cl(z,B,L));else q.push(cl(E.beforeEnter,B,L));return q.push(b),he(q)}).then(()=>(B.matched.forEach(E=>E.enterCallbacks={}),q=On(p,"beforeRouteEnter",B,L,N),q.push(b),he(q))).then(()=>{q=[];for(const E of i.list())q.push(cl(E,B,L));return q.push(b),he(q)}).catch(E=>Gt(E,Ge.NAVIGATION_CANCELLED)?E:Promise.reject(E))}function Q(B,L,q){r.list().forEach(oe=>N(()=>oe(B,L,q)))}function H(B,L,q,oe,U){const p=O(B,L);if(p)return p;const b=L===rl,E=Ml?history.state:{};q&&(oe||b?n.replace(B.fullPath,Be({scroll:b&&E&&E.scroll},U)):n.push(B.fullPath,U)),o.value=B,J(B,L,q,b),ce()}let de;function ue(){de||(de=n.listen((B,L,q)=>{if(!$e.listening)return;const oe=V(B),U=C(oe,$e.currentRoute.value);if(U){A(Be(U,{replace:!0,force:!0}),oe).catch(fa);return}c=oe;const p=o.value;Ml&&ly(wi(p.fullPath,q.delta),cn()),I(oe,p).catch(b=>Gt(b,Ge.NAVIGATION_ABORTED|Ge.NAVIGATION_CANCELLED)?b:Gt(b,Ge.NAVIGATION_GUARD_REDIRECT)?(A(Be(R(b.to),{force:!0}),oe).then(E=>{Gt(E,Ge.NAVIGATION_ABORTED|Ge.NAVIGATION_DUPLICATED)&&!q.delta&&q.type===qn.pop&&n.go(-1,!1)}).catch(fa),Promise.reject()):(q.delta&&n.go(-q.delta,!1),D(b,oe,p))).then(b=>{b=b||H(oe,p,!1),b&&(q.delta&&!Gt(b,Ge.NAVIGATION_CANCELLED)?n.go(-q.delta,!1):q.type===qn.pop&&Gt(b,Ge.NAVIGATION_ABORTED|Ge.NAVIGATION_DUPLICATED)&&n.go(-1,!1)),Q(oe,p,b)}).catch(fa)}))}let De=la(),$=la(),y;function D(B,L,q){ce(B);const oe=$.list();return oe.length?oe.forEach(U=>U(B,L,q)):console.error(B),Promise.reject(B)}function le(){return y&&o.value!==rl?Promise.resolve():new Promise((B,L)=>{De.add([B,L])})}function ce(B){return y||(y=!B,ue(),De.list().forEach(([L,q])=>B?q(B):L()),De.reset()),B}function J(B,L,q,oe){const{scrollBehavior:U}=e;if(!Ml||!U)return Promise.resolve();const p=!q&&ay(wi(B.fullPath,0))||(oe||!q)&&history.state&&history.state.scroll||null;return Ke().then(()=>U(B,L,p)).then(b=>b&&ty(b)).catch(b=>D(b,B,L))}const pe=B=>n.go(B);let re;const ee=new Set,$e={currentRoute:o,listening:!0,addRoute:v,removeRoute:T,clearRoutes:t.clearRoutes,hasRoute:S,getRoutes:x,resolve:V,options:e,push:_,replace:k,go:pe,back:()=>pe(-1),forward:()=>pe(1),beforeEach:s.add,beforeResolve:i.add,afterEach:r.add,onError:$.add,isReady:le,install(B){B.component("RouterLink",Oy),B.component("RouterView",Fo),B.config.globalProperties.$router=$e,Object.defineProperty(B.config.globalProperties,"$route",{enumerable:!0,get:()=>M(o)}),Ml&&!re&&o.value===rl&&(re=!0,_(n.location).catch(oe=>{}));const L={};for(const oe in rl)Object.defineProperty(L,oe,{get:()=>o.value[oe],enumerable:!0});B.provide(fn,$e),B.provide(ms,dr(L)),B.provide(Yn,o);const q=B.unmount;ee.add(B),B.unmount=function(){ee.delete(B),ee.size<1&&(c=rl,de&&de(),de=null,o.value=rl,re=!1,y=!1),q()}}};function he(B){return B.reduce((L,q)=>L.then(()=>N(q)),Promise.resolve())}return $e}function My(){return tt(fn)}function By(e){return tt(ms)}const zo="lss-region",Mi="us-east-1";function Ny(){try{return localStorage.getItem(zo)||Mi}catch{return Mi}}const Ot=ne(Ny());Ve(Ot,e=>{try{localStorage.setItem(zo,e)}catch{}});const Ho=ne("");function Ly(e,t=!1){e&&(Ho.value=e,t||(Ot.value=e))}const Rn=[{value:"us-east-1",label:"us-east-1 — N. Virginia"},{value:"us-east-2",label:"us-east-2 — Ohio"},{value:"us-west-1",label:"us-west-1 — N. California"},{value:"us-west-2",label:"us-west-2 — Oregon"},{value:"eu-west-1",label:"eu-west-1 — Ireland"},{value:"eu-west-2",label:"eu-west-2 — London"},{value:"eu-west-3",label:"eu-west-3 — Paris"},{value:"eu-central-1",label:"eu-central-1 — Frankfurt"},{value:"eu-north-1",label:"eu-north-1 — Stockholm"},{value:"ap-southeast-1",label:"ap-southeast-1 — Singapore"},{value:"ap-southeast-2",label:"ap-southeast-2 — Sydney"},{value:"ap-northeast-1",label:"ap-northeast-1 — Tokyo"},{value:"ap-northeast-2",label:"ap-northeast-2 — Seoul"},{value:"ap-south-1",label:"ap-south-1 — Mumbai"},{value:"sa-east-1",label:"sa-east-1 — São Paulo"},{value:"ca-central-1",label:"ca-central-1 — Canada"}],Fy=h(()=>{const e=new Set(Rn.map(l=>l.value)),t=[Ho.value,Ot.value].filter((l,a,n)=>l&&!e.has(l)&&n.indexOf(l)===a).map(l=>({value:l,label:l}));return t.length?[...Rn,...t]:Rn}),hs="";function Bi(e){return/^(https?:|data:)/i.test(e)?e:`${hs}${e}`}function zy(e){const t=Ot.value;if(!t)return e;const l=e.includes("?")?"&":"?";return`${e}${l}region=${encodeURIComponent(t)}`}async function Te(e,t){const l=await fetch(`${hs}${zy(e)}`,{headers:{"Content-Type":"application/json",...t==null?void 0:t.headers},...t});if(!l.ok){const a=await l.json().catch(()=>({error:l.statusText}));throw new Error(a.error||"Request failed")}return l.json()}const Qn={checkHealth:()=>Te("/api/health"),getConfig:()=>Te("/api/config"),getBranding:()=>Te("/api/config/branding"),listServices:()=>Te("/api/services"),getService:e=>Te(`/api/services/${encodeURIComponent(e)}`),registerService:e=>Te("/api/services/register",{method:"POST",body:JSON.stringify({servicePath:e})}),deleteService:e=>Te(`/api/services/${e}`,{method:"DELETE"}),updateServiceStatus:(e,t,l)=>Te(`/api/services/${e}/status`,{method:"PATCH",body:JSON.stringify({status:t,pid:l})}),startService:(e,t)=>Te(`/api/services/${e}/start`,{method:"POST",body:JSON.stringify(t||{})}),stopService:e=>Te(`/api/services/${e}/stop`,{method:"POST"}),getServiceLogs:e=>Te(`/api/services/${e}/logs`),listLambdas:()=>Te("/api/lambdas"),getLambda:e=>Te(`/api/lambdas/${encodeURIComponent(e)}`),invokeLambda:(e,t)=>Te(`/api/lambdas/${encodeURIComponent(e)}/invoke`,{method:"POST",body:JSON.stringify(t)}),getLambdaLogs:e=>Te(`/api/lambdas/${encodeURIComponent(e)}/logs`),listApis:()=>Te("/api/apis"),clearAuthorizerCache:e=>{const t=new URLSearchParams;e!=null&&e.service&&t.set("service",e.service),e!=null&&e.authorizer&&t.set("authorizer",e.authorizer);const l=t.toString();return Te(`/api/apis/authorizer-cache/clear${l?`?${l}`:""}`,{method:"POST"})},listResources:()=>Te("/api/resources"),listResourceOwners:()=>Te("/api/resources/owners"),listBuckets:()=>Te("/api/buckets"),getBucket:e=>Te(`/api/buckets/${encodeURIComponent(e)}`),listBucketObjects:(e,t)=>{const l=new URLSearchParams;t!=null&&t.prefix&&l.set("prefix",t.prefix),t!=null&&t.continuationToken&&l.set("continuationToken",t.continuationToken),(t==null?void 0:t.maxKeys)!==void 0&&l.set("maxKeys",String(t.maxKeys)),t!=null&&t.delimiter&&l.set("delimiter",t.delimiter);const a=l.toString();return Te(`/api/buckets/${encodeURIComponent(e)}/objects${a?`?${a}`:""}`)},bucketObjectContentUrl:(e,t,l=!1)=>{const a=new URLSearchParams({key:t});l&&a.set("download","1");const n=Ot.value;return n&&a.set("region",n),`${hs}/api/buckets/${encodeURIComponent(e)}/objects/content?${a.toString()}`},putBucketObject:(e,t)=>Te(`/api/buckets/${encodeURIComponent(e)}/objects`,{method:"POST",body:JSON.stringify(t)}),deleteBucketObject:(e,t)=>Te(`/api/buckets/${encodeURIComponent(e)}/objects?key=${encodeURIComponent(t)}`,{method:"DELETE"}),listOpenSearchCollections:()=>Te("/api/opensearch/collections"),listOpenSearchIndices:e=>Te(`/api/opensearch/collections/${encodeURIComponent(e)}/indices`),searchOpenSearch:(e,t)=>Te(`/api/opensearch/collections/${encodeURIComponent(e)}/search`,{method:"POST",body:JSON.stringify(t)}),listQueues:()=>Te("/api/queues"),getQueue:e=>Te(`/api/queues/${encodeURIComponent(e)}`),resetQueueProcessed:e=>Te(`/api/queues/${encodeURIComponent(e)}/reset-processed`,{method:"POST"}),sendQueueMessage:(e,t)=>Te(`/api/queues/${encodeURIComponent(e)}/messages`,{method:"POST",body:JSON.stringify(t)}),receiveQueueMessages:(e,t)=>Te(`/api/queues/${encodeURIComponent(e)}/messages/receive`,{method:"POST",body:JSON.stringify(t)}),deleteQueueMessage:(e,t)=>Te(`/api/queues/${encodeURIComponent(e)}/messages/delete`,{method:"POST",body:JSON.stringify({receiptHandle:t})}),purgeQueue:e=>Te(`/api/queues/${encodeURIComponent(e)}/purge`,{method:"POST"}),listDynamoTables:()=>Te("/api/dynamo/tables"),describeDynamoTable:e=>Te(`/api/dynamo/tables/${encodeURIComponent(e)}`),setDynamoTtl:(e,t,l)=>Te(`/api/dynamo/tables/${encodeURIComponent(e)}/ttl`,{method:"PUT",body:JSON.stringify({enabled:t,attributeName:l})}),scanDynamoTable:(e,t)=>Te(`/api/dynamo/tables/${encodeURIComponent(e)}/scan`,{method:"POST",body:JSON.stringify(t)}),queryDynamoTable:(e,t)=>Te(`/api/dynamo/tables/${encodeURIComponent(e)}/query`,{method:"POST",body:JSON.stringify(t)}),getDynamoItem:(e,t)=>Te(`/api/dynamo/tables/${encodeURIComponent(e)}/items/get`,{method:"POST",body:JSON.stringify({key:t})}),putDynamoItem:(e,t)=>Te(`/api/dynamo/tables/${encodeURIComponent(e)}/items`,{method:"POST",body:JSON.stringify({item:t})}),deleteDynamoItem:(e,t)=>Te(`/api/dynamo/tables/${encodeURIComponent(e)}/items/delete`,{method:"POST",body:JSON.stringify({key:t})}),listSeeds:()=>Te("/api/seeds"),runSeed:e=>Te("/api/seeds/run",{method:"POST",body:JSON.stringify(e?{tableName:e}:{})}),clearSeed:e=>Te("/api/seeds/clear",{method:"POST",body:JSON.stringify(e?{tableName:e}:{})})},Uo="lss-theme",Ni="lss-branding-overrides",wl=ne({title:"Local Serverless Stack",subtitle:"Local development control plane",logoUrl:null,faviconUrl:null,defaultTheme:"dark",colors:{},themeColors:{dark:{},light:{}}});function jo(){const e=localStorage.getItem(Uo);return e==="dark"||e==="light"?e:null}function bs(e,t=!1){document.documentElement.setAttribute("data-tree-theme",e),t&&localStorage.setItem(Uo,e)}function Hy(e){return e.startsWith("--")?e:`--tree-color-${e}`}function Li(e){return Object.entries(e).map(([t,l])=>`${Hy(t)}:${l};`).join("")}function Uy(e){const t=Li({...e.colors,...e.themeColors.dark}),l=Li({...e.colors,...e.themeColors.light});if(!t&&!l)return;let a=document.getElementById(Ni);a||(a=document.createElement("style"),a.id=Ni,document.head.appendChild(a)),a.textContent=[t?`:root[data-tree-theme="dark"]{${t}}`:"",l?`:root[data-tree-theme="light"]{${l}}`:""].join(`
|
|
37
|
-
`)}function jy(e){let t=document.querySelector('link[rel="icon"]');t||(t=document.createElement("link"),t.rel="icon",document.head.appendChild(t)),t.href=e}async function Ky(){try{const e=await Qn.getBranding();e.logoUrl=e.logoUrl?Bi(e.logoUrl):null,e.faviconUrl=e.faviconUrl?Bi(e.faviconUrl):null,wl.value=e,document.title=e.title,e.faviconUrl&&jy(e.faviconUrl),Uy(e),jo()||bs(e.defaultTheme)}catch(e){console.error("Failed to load branding, using defaults:",e)}}const Wy={class:"app-shell"},Gy={class:"app-header"},qy=["src","alt"],Jy={key:0,class:"muted",style:{"font-size":"0.75rem"}},Yy={class:"app-header-controls"},Qy={class:"app-subnav","aria-label":"Primary"},Xy={class:"app-main"},Zy=ve({__name:"App",setup(e){const t=By(),l=My(),a=ne({status:"unknown",localstack:!1,dynamoProxy:{enabled:!1,running:!1,port:8e3}}),n=ne(document.documentElement.getAttribute("data-tree-theme")||"dark");let s=null;const i=h(()=>{const d=t.path.split("/").filter(Boolean);return d.length===0?"/":`/${d[0]}`}),r=h(()=>[{label:n.value==="dark"?"Switch to light":"Switch to dark",value:"theme"}]);function o(d){d&&d!==i.value&&l.push(d)}function c(d){d==="theme"&&(n.value=n.value==="dark"?"light":"dark",bs(n.value,!0))}async function u(){try{a.value=await Qn.checkHealth()}catch(d){console.error("Health check failed:",d)}}return Ql(async()=>{u(),s=window.setInterval(u,1e4);const d=Ot.value;Qn.getConfig().then(f=>Ly(f.region,Ot.value!==d)).catch(()=>{}),await Ky(),n.value=document.documentElement.getAttribute("data-tree-theme")||"dark"}),it(()=>{s&&window.clearInterval(s)}),(d,f)=>(m(),Ae(M(To),{position:"top-right"},{default:ye(()=>[w("div",Wy,[w("header",Gy,[me(M(Kn),{as:"div",bordered:""},{start:ye(()=>[me(M(Wn),{direction:"horizontal",gap:"0.625rem",align:"center"},{default:ye(()=>[M(wl).logoUrl?(m(),g("img",{key:0,src:M(wl).logoUrl,alt:`${M(wl).title} logo`,class:"brand-logo"},null,8,qy)):K("",!0),me(M(Wn),{direction:"vertical",gap:"0.125rem"},{default:ye(()=>[w("strong",null,Z(M(wl).title),1),M(wl).subtitle?(m(),g("span",Jy,Z(M(wl).subtitle),1)):K("",!0)]),_:1})]),_:1})]),end:ye(()=>{var v;return[w("div",Yy,[me(M(Wa),{tone:a.value.localstack?"success":"danger",variant:"soft"},{default:ye(()=>[Oe(" LocalStack: "+Z(a.value.localstack?"Running":"Offline"),1)]),_:1},8,["tone"]),(v=a.value.dynamoProxy)!=null&&v.enabled?(m(),Ae(M(Wa),{key:0,tone:a.value.dynamoProxy.running?"success":"warning",variant:"soft"},{default:ye(()=>[Oe(" Dynamo Proxy: "+Z(a.value.dynamoProxy.running?"On":"Off"),1)]),_:1},8,["tone"])):K("",!0),me(M(_o),{modelValue:M(Ot),"onUpdate:modelValue":f[0]||(f[0]=T=>Je(Ot)?Ot.value=T:null),options:M(Fy),size:"sm",style:{"min-width":"14rem"},"aria-label":"AWS Region"},null,8,["modelValue","options"]),me(M(bo),{items:r.value,size:"sm",label:"Open menu",onSelect:c},{trigger:ye(()=>[me(M($a),{size:"sm",variant:"ghost","aria-label":"Open menu"},{default:ye(()=>[...f[1]||(f[1]=[Oe(" ⋮ ",-1)])]),_:1})]),_:1},8,["items"])])]}),_:1}),w("nav",Qy,[me(M(ko),{"model-value":i.value,"onUpdate:modelValue":o},{default:ye(()=>[me(M($o),null,{default:ye(()=>[me(M(qt),{value:"/"},{default:ye(()=>[...f[2]||(f[2]=[Oe("Overview",-1)])]),_:1}),me(M(qt),{value:"/services"},{default:ye(()=>[...f[3]||(f[3]=[Oe("Services",-1)])]),_:1}),me(M(qt),{value:"/lambdas"},{default:ye(()=>[...f[4]||(f[4]=[Oe("Lambdas",-1)])]),_:1}),me(M(qt),{value:"/apis"},{default:ye(()=>[...f[5]||(f[5]=[Oe("APIs",-1)])]),_:1}),me(M(qt),{value:"/queues"},{default:ye(()=>[...f[6]||(f[6]=[Oe("Queues",-1)])]),_:1}),me(M(qt),{value:"/buckets"},{default:ye(()=>[...f[7]||(f[7]=[Oe("S3",-1)])]),_:1}),me(M(qt),{value:"/dynamo"},{default:ye(()=>[...f[8]||(f[8]=[Oe("DynamoDB",-1)])]),_:1}),me(M(qt),{value:"/opensearch"},{default:ye(()=>[...f[9]||(f[9]=[Oe("OpenSearch",-1)])]),_:1})]),_:1})]),_:1},8,["model-value"])])]),w("main",Xy,[(m(),g("div",{key:`${M(t).fullPath}-${M(Ot)}`},[me(M(Fo))]))])])]),_:1}))}}),e0="modulepreload",t0=function(e){return"/"+e},Fi={},yt=function(t,l,a){let n=Promise.resolve();if(l&&l.length>0){let i=function(c){return Promise.all(c.map(u=>Promise.resolve(u).then(d=>({status:"fulfilled",value:d}),d=>({status:"rejected",reason:d}))))};document.getElementsByTagName("link");const r=document.querySelector("meta[property=csp-nonce]"),o=(r==null?void 0:r.nonce)||(r==null?void 0:r.getAttribute("nonce"));n=i(l.map(c=>{if(c=t0(c),c in Fi)return;Fi[c]=!0;const u=c.endsWith(".css"),d=u?'[rel="stylesheet"]':"";if(document.querySelector(`link[href="${c}"]${d}`))return;const f=document.createElement("link");if(f.rel=u?"stylesheet":e0,u||(f.as="script"),f.crossOrigin="",f.href=c,o&&f.setAttribute("nonce",o),document.head.appendChild(f),u)return new Promise((v,T)=>{f.addEventListener("load",v),f.addEventListener("error",()=>T(new Error(`Unable to preload CSS for ${c}`)))})}))}function s(i){const r=new Event("vite:preloadError",{cancelable:!0});if(r.payload=i,window.dispatchEvent(r),!r.defaultPrevented)throw i}return n.then(i=>{for(const r of i||[])r.status==="rejected"&&s(r.reason);return t().catch(s)})},l0=[{path:"/",name:"overview",component:()=>yt(()=>import("./OverviewPage-
|
|
37
|
+
`)}function jy(e){let t=document.querySelector('link[rel="icon"]');t||(t=document.createElement("link"),t.rel="icon",document.head.appendChild(t)),t.href=e}async function Ky(){try{const e=await Qn.getBranding();e.logoUrl=e.logoUrl?Bi(e.logoUrl):null,e.faviconUrl=e.faviconUrl?Bi(e.faviconUrl):null,wl.value=e,document.title=e.title,e.faviconUrl&&jy(e.faviconUrl),Uy(e),jo()||bs(e.defaultTheme)}catch(e){console.error("Failed to load branding, using defaults:",e)}}const Wy={class:"app-shell"},Gy={class:"app-header"},qy=["src","alt"],Jy={key:0,class:"muted",style:{"font-size":"0.75rem"}},Yy={class:"app-header-controls"},Qy={class:"app-subnav","aria-label":"Primary"},Xy={class:"app-main"},Zy=ve({__name:"App",setup(e){const t=By(),l=My(),a=ne({status:"unknown",localstack:!1,dynamoProxy:{enabled:!1,running:!1,port:8e3}}),n=ne(document.documentElement.getAttribute("data-tree-theme")||"dark");let s=null;const i=h(()=>{const d=t.path.split("/").filter(Boolean);return d.length===0?"/":`/${d[0]}`}),r=h(()=>[{label:n.value==="dark"?"Switch to light":"Switch to dark",value:"theme"}]);function o(d){d&&d!==i.value&&l.push(d)}function c(d){d==="theme"&&(n.value=n.value==="dark"?"light":"dark",bs(n.value,!0))}async function u(){try{a.value=await Qn.checkHealth()}catch(d){console.error("Health check failed:",d)}}return Ql(async()=>{u(),s=window.setInterval(u,1e4);const d=Ot.value;Qn.getConfig().then(f=>Ly(f.region,Ot.value!==d)).catch(()=>{}),await Ky(),n.value=document.documentElement.getAttribute("data-tree-theme")||"dark"}),it(()=>{s&&window.clearInterval(s)}),(d,f)=>(m(),Ae(M(To),{position:"top-right"},{default:ye(()=>[w("div",Wy,[w("header",Gy,[me(M(Kn),{as:"div",bordered:""},{start:ye(()=>[me(M(Wn),{direction:"horizontal",gap:"0.625rem",align:"center"},{default:ye(()=>[M(wl).logoUrl?(m(),g("img",{key:0,src:M(wl).logoUrl,alt:`${M(wl).title} logo`,class:"brand-logo"},null,8,qy)):K("",!0),me(M(Wn),{direction:"vertical",gap:"0.125rem"},{default:ye(()=>[w("strong",null,Z(M(wl).title),1),M(wl).subtitle?(m(),g("span",Jy,Z(M(wl).subtitle),1)):K("",!0)]),_:1})]),_:1})]),end:ye(()=>{var v;return[w("div",Yy,[me(M(Wa),{tone:a.value.localstack?"success":"danger",variant:"soft"},{default:ye(()=>[Oe(" LocalStack: "+Z(a.value.localstack?"Running":"Offline"),1)]),_:1},8,["tone"]),(v=a.value.dynamoProxy)!=null&&v.enabled?(m(),Ae(M(Wa),{key:0,tone:a.value.dynamoProxy.running?"success":"warning",variant:"soft"},{default:ye(()=>[Oe(" Dynamo Proxy: "+Z(a.value.dynamoProxy.running?"On":"Off"),1)]),_:1},8,["tone"])):K("",!0),me(M(_o),{modelValue:M(Ot),"onUpdate:modelValue":f[0]||(f[0]=T=>Je(Ot)?Ot.value=T:null),options:M(Fy),size:"sm",style:{"min-width":"14rem"},"aria-label":"AWS Region"},null,8,["modelValue","options"]),me(M(bo),{items:r.value,size:"sm",label:"Open menu",onSelect:c},{trigger:ye(()=>[me(M($a),{size:"sm",variant:"ghost","aria-label":"Open menu"},{default:ye(()=>[...f[1]||(f[1]=[Oe(" ⋮ ",-1)])]),_:1})]),_:1},8,["items"])])]}),_:1}),w("nav",Qy,[me(M(ko),{"model-value":i.value,"onUpdate:modelValue":o},{default:ye(()=>[me(M($o),null,{default:ye(()=>[me(M(qt),{value:"/"},{default:ye(()=>[...f[2]||(f[2]=[Oe("Overview",-1)])]),_:1}),me(M(qt),{value:"/services"},{default:ye(()=>[...f[3]||(f[3]=[Oe("Services",-1)])]),_:1}),me(M(qt),{value:"/lambdas"},{default:ye(()=>[...f[4]||(f[4]=[Oe("Lambdas",-1)])]),_:1}),me(M(qt),{value:"/apis"},{default:ye(()=>[...f[5]||(f[5]=[Oe("APIs",-1)])]),_:1}),me(M(qt),{value:"/queues"},{default:ye(()=>[...f[6]||(f[6]=[Oe("Queues",-1)])]),_:1}),me(M(qt),{value:"/buckets"},{default:ye(()=>[...f[7]||(f[7]=[Oe("S3",-1)])]),_:1}),me(M(qt),{value:"/dynamo"},{default:ye(()=>[...f[8]||(f[8]=[Oe("DynamoDB",-1)])]),_:1}),me(M(qt),{value:"/opensearch"},{default:ye(()=>[...f[9]||(f[9]=[Oe("OpenSearch",-1)])]),_:1})]),_:1})]),_:1},8,["model-value"])])]),w("main",Xy,[(m(),g("div",{key:`${M(t).fullPath}-${M(Ot)}`},[me(M(Fo))]))])])]),_:1}))}}),e0="modulepreload",t0=function(e){return"/"+e},Fi={},yt=function(t,l,a){let n=Promise.resolve();if(l&&l.length>0){let i=function(c){return Promise.all(c.map(u=>Promise.resolve(u).then(d=>({status:"fulfilled",value:d}),d=>({status:"rejected",reason:d}))))};document.getElementsByTagName("link");const r=document.querySelector("meta[property=csp-nonce]"),o=(r==null?void 0:r.nonce)||(r==null?void 0:r.getAttribute("nonce"));n=i(l.map(c=>{if(c=t0(c),c in Fi)return;Fi[c]=!0;const u=c.endsWith(".css"),d=u?'[rel="stylesheet"]':"";if(document.querySelector(`link[href="${c}"]${d}`))return;const f=document.createElement("link");if(f.rel=u?"stylesheet":e0,u||(f.as="script"),f.crossOrigin="",f.href=c,o&&f.setAttribute("nonce",o),document.head.appendChild(f),u)return new Promise((v,T)=>{f.addEventListener("load",v),f.addEventListener("error",()=>T(new Error(`Unable to preload CSS for ${c}`)))})}))}function s(i){const r=new Event("vite:preloadError",{cancelable:!0});if(r.payload=i,window.dispatchEvent(r),!r.defaultPrevented)throw i}return n.then(i=>{for(const r of i||[])r.status==="rejected"&&s(r.reason);return t().catch(s)})},l0=[{path:"/",name:"overview",component:()=>yt(()=>import("./OverviewPage-B13l71G0.js"),__vite__mapDeps([0,1])),meta:{title:"Overview"}},{path:"/services",name:"services",component:()=>yt(()=>import("./ServicesPage-DsoZBBxo.js"),[]),meta:{title:"Services"}},{path:"/services/:name",name:"service-detail",component:()=>yt(()=>import("./ServiceDetailPage-ZGLPswmY.js"),[]),props:e=>({serviceName:String(e.params.name)}),meta:{title:"Service"}},{path:"/lambdas",name:"lambdas",component:()=>yt(()=>import("./LambdasPage-Dz4wxjVd.js"),[]),meta:{title:"Lambdas"}},{path:"/lambdas/:name",name:"lambda-detail",component:()=>yt(()=>import("./LambdaDetailPage-BPhEkF44.js"),[]),props:e=>({functionName:String(e.params.name)}),meta:{title:"Lambda"}},{path:"/apis",name:"apis",component:()=>yt(()=>import("./ApisPage-DyjG-weG.js"),[]),meta:{title:"APIs"}},{path:"/queues",name:"queues",component:()=>yt(()=>import("./QueuesPage-CF9yiBkq.js"),[]),meta:{title:"Queues"}},{path:"/queues/:name",name:"queue-detail",component:()=>yt(()=>import("./QueueDetailPage-peLph1_v.js"),[]),props:e=>({queueName:String(e.params.name)}),meta:{title:"Queue"}},{path:"/buckets",name:"buckets",component:()=>yt(()=>import("./BucketsPage-KgeLoK6e.js"),[]),meta:{title:"S3 Buckets"}},{path:"/buckets/:name",name:"bucket-detail",component:()=>yt(()=>import("./BucketDetailPage-Bvrk1L6q.js"),[]),props:e=>({bucketName:String(e.params.name)}),meta:{title:"S3 Bucket"}},{path:"/dynamo",name:"dynamo",component:()=>yt(()=>import("./DynamoPage-C8rwaEIi.js"),[]),meta:{title:"DynamoDB"}},{path:"/dynamo/:name",name:"dynamo-table",component:()=>yt(()=>import("./DynamoTablePage-CN5P5f7S.js"),[]),props:e=>({tableName:String(e.params.name)}),meta:{title:"DynamoDB Table"}},{path:"/opensearch",name:"opensearch",component:()=>yt(()=>import("./OpenSearchPage-0fTJJovd.js"),[]),meta:{title:"OpenSearch"}},{path:"/opensearch/:name",name:"opensearch-collection",component:()=>yt(()=>import("./OpenSearchCollectionPage-B3s964oC.js"),[]),props:e=>({name:String(e.params.name)}),meta:{title:"OpenSearch Collection"}},{path:"/:pathMatch(.*)*",redirect:"/"}],a0=Py({history:vy(),routes:l0});bs(jo()??"dark");Oc(Zy).use(Eo).use(a0).mount("#app");export{i0 as $,Tg as A,ho as B,fp as C,kb as D,eh as E,xe as F,Wc as G,$o as H,qt as I,qb as J,Wh as K,_o as L,ko as M,zb as N,Uh as O,Cf as P,hm as Q,Oy as R,ub as S,Z as T,M as U,By as V,My as W,s0 as X,Ve as Y,ye as Z,n0 as _,Qn as a,Va as a0,h as b,tg as c,w as d,Ae as e,K as f,g,cd as h,Oe as i,me as j,ve as k,Ql as l,m,Le as n,it as o,Wa as p,_f as q,ne as r,nl as s,Wn as t,Dg as u,cg as v,um as w,sb as x,$a as y,Av as z};
|
package/dist/ui/index.html
CHANGED
|
@@ -5,7 +5,7 @@
|
|
|
5
5
|
<meta charset="UTF-8" />
|
|
6
6
|
<meta name="viewport" content="width=device-width, initial-scale=1.0" />
|
|
7
7
|
<title>LSS Orchestrator</title>
|
|
8
|
-
<script type="module" crossorigin src="/assets/index-
|
|
8
|
+
<script type="module" crossorigin src="/assets/index-BP9zQ9L-.js"></script>
|
|
9
9
|
<link rel="stylesheet" crossorigin href="/assets/index-DH7RTkRh.css">
|
|
10
10
|
</head>
|
|
11
11
|
|