local-serverless-stack 0.11.0 → 0.12.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 +4 -3
- package/README.md +107 -11
- package/dist/server/index.js +2 -0
- package/dist/server/index.js.map +1 -1
- package/dist/server/routes/secrets.d.ts +3 -0
- package/dist/server/routes/secrets.d.ts.map +1 -0
- package/dist/server/routes/secrets.js +0 -0
- package/dist/server/routes/secrets.js.map +1 -0
- package/dist/server/services/secrets-explorer.d.ts +39 -0
- package/dist/server/services/secrets-explorer.d.ts.map +1 -0
- package/dist/server/services/secrets-explorer.js +105 -0
- package/dist/server/services/secrets-explorer.js.map +1 -0
- package/dist/ui/assets/{ApisPage-DyjG-weG.js → ApisPage-Dg-fuYQY.js} +1 -1
- package/dist/ui/assets/{BucketDetailPage-Bvrk1L6q.js → BucketDetailPage-By9deUkc.js} +1 -1
- package/dist/ui/assets/{BucketsPage-KgeLoK6e.js → BucketsPage-idHR6yXh.js} +1 -1
- package/dist/ui/assets/{DynamoPage-C8rwaEIi.js → DynamoPage-k8NQGeJ_.js} +1 -1
- package/dist/ui/assets/{DynamoTablePage-CN5P5f7S.js → DynamoTablePage-C-LPU3I7.js} +1 -1
- package/dist/ui/assets/{LambdaDetailPage-BPhEkF44.js → LambdaDetailPage-D8HVidB_.js} +1 -1
- package/dist/ui/assets/{LambdasPage-Dz4wxjVd.js → LambdasPage-B19rwgUM.js} +1 -1
- package/dist/ui/assets/{OpenSearchCollectionPage-B3s964oC.js → OpenSearchCollectionPage-Bmc8gI8s.js} +1 -1
- package/dist/ui/assets/{OpenSearchPage-0fTJJovd.js → OpenSearchPage-CDFY7dS9.js} +1 -1
- package/dist/ui/assets/OverviewPage-CWrXkA8s.js +1 -0
- package/dist/ui/assets/{QueueDetailPage-peLph1_v.js → QueueDetailPage-CGcXlOrN.js} +1 -1
- package/dist/ui/assets/{QueuesPage-CF9yiBkq.js → QueuesPage-BMU0DBMz.js} +1 -1
- package/dist/ui/assets/SecretsPage-Dnkt3P3P.css +1 -0
- package/dist/ui/assets/SecretsPage-RgJc26ab.js +1 -0
- package/dist/ui/assets/{ServiceDetailPage-ZGLPswmY.js → ServiceDetailPage-BZnTIbac.js} +1 -1
- package/dist/ui/assets/{ServicesPage-DsoZBBxo.js → ServicesPage-BJCWxYkd.js} +1 -1
- package/dist/ui/assets/_plugin-vue_export-helper-DlAUqK2U.js +1 -0
- package/dist/ui/assets/{index-BP9zQ9L-.js → index-DGkmrq2b.js} +9 -9
- package/dist/ui/index.html +1 -1
- package/package.json +2 -1
- package/dist/ui/assets/OverviewPage-B13l71G0.js +0 -1
|
@@ -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-DGkmrq2b.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};
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
const s=(t,r)=>{const o=t.__vccOpts||t;for(const[c,e]of r)o[c]=e;return o};export{s as _};
|