local-serverless-stack 1.0.0 → 1.1.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.
Files changed (200) hide show
  1. package/CHANGELOG.md +125 -3
  2. package/README.md +92 -38
  3. package/bin/cli.js +218 -28
  4. package/bin/i18n.js +57 -3
  5. package/dist/client/index.d.ts +1 -1
  6. package/dist/client/index.d.ts.map +1 -1
  7. package/dist/client/namespaces/services.d.ts +46 -0
  8. package/dist/client/namespaces/services.d.ts.map +1 -1
  9. package/dist/client/namespaces/services.js +1 -0
  10. package/dist/client/namespaces/services.js.map +1 -1
  11. package/dist/mcp/tools.d.ts.map +1 -1
  12. package/dist/mcp/tools.js +17 -0
  13. package/dist/mcp/tools.js.map +1 -1
  14. package/dist/server/engine/backends/self-backend.d.ts +26 -1
  15. package/dist/server/engine/backends/self-backend.d.ts.map +1 -1
  16. package/dist/server/engine/backends/self-backend.js +104 -11
  17. package/dist/server/engine/backends/self-backend.js.map +1 -1
  18. package/dist/server/engine/emulators/dynamodb/expressions/parser.d.ts.map +1 -1
  19. package/dist/server/engine/emulators/dynamodb/expressions/parser.js +12 -1
  20. package/dist/server/engine/emulators/dynamodb/expressions/parser.js.map +1 -1
  21. package/dist/server/engine/emulators/dynamodb/expressions/reserved-words.d.ts +3 -0
  22. package/dist/server/engine/emulators/dynamodb/expressions/reserved-words.d.ts.map +1 -0
  23. package/dist/server/engine/emulators/dynamodb/expressions/reserved-words.js +78 -0
  24. package/dist/server/engine/emulators/dynamodb/expressions/reserved-words.js.map +1 -0
  25. package/dist/server/engine/emulators/dynamodb/index.d.ts +11 -0
  26. package/dist/server/engine/emulators/dynamodb/index.d.ts.map +1 -1
  27. package/dist/server/engine/emulators/dynamodb/index.js +101 -7
  28. package/dist/server/engine/emulators/dynamodb/index.js.map +1 -1
  29. package/dist/server/engine/emulators/dynamodb/query.d.ts +1 -0
  30. package/dist/server/engine/emulators/dynamodb/query.d.ts.map +1 -1
  31. package/dist/server/engine/emulators/dynamodb/query.js +34 -6
  32. package/dist/server/engine/emulators/dynamodb/query.js.map +1 -1
  33. package/dist/server/engine/emulators/s3/index.d.ts +10 -0
  34. package/dist/server/engine/emulators/s3/index.d.ts.map +1 -1
  35. package/dist/server/engine/emulators/s3/index.js +369 -25
  36. package/dist/server/engine/emulators/s3/index.js.map +1 -1
  37. package/dist/server/engine/emulators/sqs/index.d.ts +2 -0
  38. package/dist/server/engine/emulators/sqs/index.d.ts.map +1 -1
  39. package/dist/server/engine/emulators/sqs/index.js +70 -7
  40. package/dist/server/engine/emulators/sqs/index.js.map +1 -1
  41. package/dist/server/engine/emulators/sqs/queue.d.ts +2 -1
  42. package/dist/server/engine/emulators/sqs/queue.d.ts.map +1 -1
  43. package/dist/server/engine/emulators/sqs/queue.js +68 -35
  44. package/dist/server/engine/emulators/sqs/queue.js.map +1 -1
  45. package/dist/server/engine/emulators/ssm/index.d.ts +31 -0
  46. package/dist/server/engine/emulators/ssm/index.d.ts.map +1 -0
  47. package/dist/server/engine/emulators/ssm/index.js +670 -0
  48. package/dist/server/engine/emulators/ssm/index.js.map +1 -0
  49. package/dist/server/engine/http/errors.d.ts +1 -0
  50. package/dist/server/engine/http/errors.d.ts.map +1 -1
  51. package/dist/server/engine/http/errors.js +13 -5
  52. package/dist/server/engine/http/errors.js.map +1 -1
  53. package/dist/server/engine/http/is-aws-request.d.ts.map +1 -1
  54. package/dist/server/engine/http/is-aws-request.js +13 -3
  55. package/dist/server/engine/http/is-aws-request.js.map +1 -1
  56. package/dist/server/engine/http/protocols/aws-json.d.ts +1 -0
  57. package/dist/server/engine/http/protocols/aws-json.d.ts.map +1 -1
  58. package/dist/server/engine/http/protocols/aws-json.js +13 -0
  59. package/dist/server/engine/http/protocols/aws-json.js.map +1 -1
  60. package/dist/server/engine/http/reset.d.ts +4 -0
  61. package/dist/server/engine/http/reset.d.ts.map +1 -0
  62. package/dist/server/engine/http/reset.js +17 -0
  63. package/dist/server/engine/http/reset.js.map +1 -0
  64. package/dist/server/engine/http/router.d.ts +1 -0
  65. package/dist/server/engine/http/router.d.ts.map +1 -1
  66. package/dist/server/engine/http/router.js +185 -34
  67. package/dist/server/engine/http/router.js.map +1 -1
  68. package/dist/server/engine/types.d.ts +2 -1
  69. package/dist/server/engine/types.d.ts.map +1 -1
  70. package/dist/server/routes/apis.d.ts.map +1 -1
  71. package/dist/server/routes/apis.js +6 -0
  72. package/dist/server/routes/apis.js.map +1 -1
  73. package/dist/server/routes/config.d.ts.map +1 -1
  74. package/dist/server/routes/config.js +25 -1
  75. package/dist/server/routes/config.js.map +1 -1
  76. package/dist/server/routes/lambdas.d.ts.map +1 -1
  77. package/dist/server/routes/lambdas.js +12 -0
  78. package/dist/server/routes/lambdas.js.map +1 -1
  79. package/dist/server/routes/services.d.ts.map +1 -1
  80. package/dist/server/routes/services.js +66 -5
  81. package/dist/server/routes/services.js.map +1 -1
  82. package/dist/server/runtime/runtime-worker.js +40 -3
  83. package/dist/server/runtime/runtime-worker.js.map +1 -1
  84. package/dist/server/services/api-gateway-events.d.ts +14 -0
  85. package/dist/server/services/api-gateway-events.d.ts.map +1 -1
  86. package/dist/server/services/api-gateway-events.js +114 -8
  87. package/dist/server/services/api-gateway-events.js.map +1 -1
  88. package/dist/server/services/artifact-staleness.d.ts +20 -0
  89. package/dist/server/services/artifact-staleness.d.ts.map +1 -0
  90. package/dist/server/services/artifact-staleness.js +115 -0
  91. package/dist/server/services/artifact-staleness.js.map +1 -0
  92. package/dist/server/services/authorizer-service.d.ts +34 -5
  93. package/dist/server/services/authorizer-service.d.ts.map +1 -1
  94. package/dist/server/services/authorizer-service.js +0 -0
  95. package/dist/server/services/authorizer-service.js.map +1 -1
  96. package/dist/server/services/cache-manager.d.ts +5 -0
  97. package/dist/server/services/cache-manager.d.ts.map +1 -1
  98. package/dist/server/services/cache-manager.js.map +1 -1
  99. package/dist/server/services/cfn-intrinsics.d.ts +63 -0
  100. package/dist/server/services/cfn-intrinsics.d.ts.map +1 -0
  101. package/dist/server/services/cfn-intrinsics.js +403 -0
  102. package/dist/server/services/cfn-intrinsics.js.map +1 -0
  103. package/dist/server/services/cfn-physical-values.d.ts +51 -0
  104. package/dist/server/services/cfn-physical-values.d.ts.map +1 -0
  105. package/dist/server/services/cfn-physical-values.js +186 -0
  106. package/dist/server/services/cfn-physical-values.js.map +1 -0
  107. package/dist/server/services/cloudformation-parser.d.ts +26 -3
  108. package/dist/server/services/cloudformation-parser.d.ts.map +1 -1
  109. package/dist/server/services/cloudformation-parser.js +79 -7
  110. package/dist/server/services/cloudformation-parser.js.map +1 -1
  111. package/dist/server/services/config-manager.d.ts +49 -2
  112. package/dist/server/services/config-manager.d.ts.map +1 -1
  113. package/dist/server/services/config-manager.js +206 -24
  114. package/dist/server/services/config-manager.js.map +1 -1
  115. package/dist/server/services/gateway-manager.d.ts.map +1 -1
  116. package/dist/server/services/gateway-manager.js +52 -20
  117. package/dist/server/services/gateway-manager.js.map +1 -1
  118. package/dist/server/services/lambda-runtime-manager.d.ts +2 -0
  119. package/dist/server/services/lambda-runtime-manager.d.ts.map +1 -1
  120. package/dist/server/services/lambda-runtime-manager.js +49 -15
  121. package/dist/server/services/lambda-runtime-manager.js.map +1 -1
  122. package/dist/server/services/raw-api-assembler.d.ts +1 -1
  123. package/dist/server/services/raw-api-assembler.d.ts.map +1 -1
  124. package/dist/server/services/raw-api-assembler.js +18 -8
  125. package/dist/server/services/raw-api-assembler.js.map +1 -1
  126. package/dist/server/services/resource-provisioner.d.ts +31 -1
  127. package/dist/server/services/resource-provisioner.d.ts.map +1 -1
  128. package/dist/server/services/resource-provisioner.js +257 -25
  129. package/dist/server/services/resource-provisioner.js.map +1 -1
  130. package/dist/server/services/s3-explorer.js +1 -1
  131. package/dist/server/services/seed-manager.d.ts.map +1 -1
  132. package/dist/server/services/seed-manager.js +11 -6
  133. package/dist/server/services/seed-manager.js.map +1 -1
  134. package/dist/server/services/serverless-state-parser.d.ts +45 -2
  135. package/dist/server/services/serverless-state-parser.d.ts.map +1 -1
  136. package/dist/server/services/serverless-state-parser.js +217 -29
  137. package/dist/server/services/serverless-state-parser.js.map +1 -1
  138. package/dist/server/services/service-graph.d.ts +76 -0
  139. package/dist/server/services/service-graph.d.ts.map +1 -0
  140. package/dist/server/services/service-graph.js +914 -0
  141. package/dist/server/services/service-graph.js.map +1 -0
  142. package/dist/server/services/service-registrar.d.ts +17 -1
  143. package/dist/server/services/service-registrar.d.ts.map +1 -1
  144. package/dist/server/services/service-registrar.js +190 -66
  145. package/dist/server/services/service-registrar.js.map +1 -1
  146. package/dist/server/services/service-scanner.d.ts +7 -2
  147. package/dist/server/services/service-scanner.d.ts.map +1 -1
  148. package/dist/server/services/service-scanner.js +53 -7
  149. package/dist/server/services/service-scanner.js.map +1 -1
  150. package/dist/server/services/source-watcher.d.ts +1 -0
  151. package/dist/server/services/source-watcher.d.ts.map +1 -1
  152. package/dist/server/services/source-watcher.js +19 -1
  153. package/dist/server/services/source-watcher.js.map +1 -1
  154. package/dist/server/services/worker-runtime.d.ts +82 -0
  155. package/dist/server/services/worker-runtime.d.ts.map +1 -0
  156. package/dist/server/services/worker-runtime.js +303 -0
  157. package/dist/server/services/worker-runtime.js.map +1 -0
  158. package/dist/ui/assets/ApisPage-BkW-QZ0X.js +1 -0
  159. package/dist/ui/assets/BucketDetailPage-CJwTQJh7.js +1 -0
  160. package/dist/ui/assets/BucketsPage-B1xPVhZC.js +1 -0
  161. package/dist/ui/assets/DynamoPage-DvbpwZDc.js +1 -0
  162. package/dist/ui/assets/DynamoTablePage-xn3Lq3so.js +3 -0
  163. package/dist/ui/assets/LambdaDetailPage-BhUyO77H.js +4 -0
  164. package/dist/ui/assets/LambdasPage-CUF_4rOH.js +1 -0
  165. package/dist/ui/assets/OnboardingPage-U49THUzu.js +1 -0
  166. package/dist/ui/assets/OpenSearchCollectionPage-BJTVNCq4.js +1 -0
  167. package/dist/ui/assets/OpenSearchPage-4s-egkB9.js +1 -0
  168. package/dist/ui/assets/OverviewPage-DJeJQktG.js +1 -0
  169. package/dist/ui/assets/{OverviewPage-C1pBJ8aP.css → OverviewPage-DjQETmb_.css} +1 -1
  170. package/dist/ui/assets/QueueDetailPage-DWsy5Yt8.js +1 -0
  171. package/dist/ui/assets/QueuesPage-BZJSqman.js +1 -0
  172. package/dist/ui/assets/SecretsPage-YC9ua54G.js +1 -0
  173. package/dist/ui/assets/ServiceDetailPage-Cum5frP4.js +2 -0
  174. package/dist/ui/assets/ServicesPage-IpaPDuqx.js +2 -0
  175. package/dist/ui/assets/SettingsPage-BiCRU8O6.js +1 -0
  176. package/dist/ui/assets/index-BDlrAJhi.css +1 -0
  177. package/dist/ui/assets/index-BouKSS43.js +38 -0
  178. package/dist/ui/assets/resourceIcons-DZs28nbs.js +1 -0
  179. package/dist/ui/index.html +5 -2
  180. package/package.json +1 -1
  181. package/dist/ui/assets/ApisPage-BOuimwWz.js +0 -1
  182. package/dist/ui/assets/BucketDetailPage-vLYwhoQt.js +0 -1
  183. package/dist/ui/assets/BucketsPage-Cu5lU1Hp.js +0 -1
  184. package/dist/ui/assets/DynamoPage-y3TTEPUL.js +0 -1
  185. package/dist/ui/assets/DynamoTablePage-BnmSRZjc.js +0 -3
  186. package/dist/ui/assets/LambdaDetailPage-B5q_d27t.js +0 -4
  187. package/dist/ui/assets/LambdasPage-CJpRoEDx.js +0 -1
  188. package/dist/ui/assets/OnboardingPage-D02dymQi.js +0 -1
  189. package/dist/ui/assets/OpenSearchCollectionPage-B_wWTlfL.js +0 -1
  190. package/dist/ui/assets/OpenSearchPage-BLEgfF_g.js +0 -1
  191. package/dist/ui/assets/OverviewPage-EdJWiAt6.js +0 -1
  192. package/dist/ui/assets/QueueDetailPage-ByEYHvHe.js +0 -1
  193. package/dist/ui/assets/QueuesPage-CvwYHSll.js +0 -1
  194. package/dist/ui/assets/SecretsPage-DASw8Ntf.js +0 -1
  195. package/dist/ui/assets/ServiceDetailPage-BMsUDg6L.js +0 -2
  196. package/dist/ui/assets/ServicesPage-2JuiIiRr.js +0 -2
  197. package/dist/ui/assets/SettingsPage-DStO4bgN.js +0 -1
  198. package/dist/ui/assets/index-BIEznsi4.js +0 -37
  199. package/dist/ui/assets/index-BRMvNP3Y.css +0 -1
  200. package/dist/ui/assets/resourceIcons-baecADXA.js +0 -1
@@ -1,2 +0,0 @@
1
- import{k as de,m as ve,o as me,a6 as fe,e as v,a7 as a,a1 as e,v as r,a as B,a2 as ge,p as z,n as i,j as t,R as A,H as D,C as g,i as s,a0 as l,u as f,A as h,f as b,J as pe,w as _e,g as y,y as E,x as be,D as he,E as F,d as ye,t as te,N as we,F as w,s as $,z as N,S as ke,Q as ze,T as $e,b as Ne,c as Te,a4 as Se}from"./index-BIEznsi4.js";import{E as Ce}from"./engine-D0mFFNbL.js";import{r as p}from"./resourceIcons-baecADXA.js";const Re=de({__name:"ServiceDetailPage",props:{serviceName:{}},setup(U){const k=U,ne=Se(),C=Te(),{t:n}=ge(),m=z(null),j=z(!0),R=z(null),P=z(!1),V=z(!1),O=z(!1),J=z([]),M=z("stopped");let T=null,G=null;const Q=z(!1),o=Ne(()=>{var _;const c={lambda:[],dynamodb:[],sqs:[],sns:[],s3:[],eventbus:[],"event-rule":[],opensearch:[],"event-source":[]};for(const d of((_=m.value)==null?void 0:_.resources)||[])c[d.type]||(c[d.type]=[]),c[d.type].push(d);return c});async function L(){j.value=!0;try{m.value=await B.getService(k.serviceName),R.value=null}catch(c){R.value=c.message||n("services.notFound"),m.value=null}finally{j.value=!1}}async function le(){if(!P.value){P.value=!0;try{await B.startService(k.serviceName),C.add({title:n("services.startedToast"),description:k.serviceName,variant:"success"}),await L()}catch(c){C.add({title:n("services.startFailedToast"),description:c.message,variant:"danger"})}finally{P.value=!1}}}async function se(){if(!V.value){V.value=!0;try{await B.stopService(k.serviceName),C.add({title:n("services.stoppedToast"),description:k.serviceName,variant:"info"}),await L()}catch(c){C.add({title:n("services.stopFailedToast"),description:c.message,variant:"danger"})}finally{V.value=!1}}}async function K(){try{const c=await B.getServiceLogs(k.serviceName);J.value=c.logs||[],M.value=c.status||"stopped"}catch(c){console.error("Failed to fetch logs:",c)}}function re(){O.value=!0,K(),T&&window.clearInterval(T),T=window.setInterval(K,2e3)}function ie(){O.value=!1,T&&window.clearInterval(T),T=null}async function oe(){try{await B.deleteService(k.serviceName),C.add({title:n("services.deletedToast"),description:k.serviceName,variant:"info"}),ne.push("/services")}catch(c){C.add({title:n("services.deleteFailedToast"),description:c.message,variant:"danger"})}finally{Q.value=!1}}function ue(c){switch(c){case"running":return"success";case"registered":return"warning";case"stopped":return"neutral";default:return"danger"}}function W(c){switch(c){case"running":return n("services.statusRunning");case"registered":return n("services.statusRegistered");case"stopped":return n("common.stopped");case"failed":return n("services.statusFailed");case"error":return n("services.statusError");default:return c}}function ce(c){return c?new Date(c).toLocaleString():"—"}return ve(()=>{L(),G=window.setInterval(L,1e4)}),me(()=>{G&&window.clearInterval(G),T&&window.clearInterval(T)}),fe(()=>k.serviceName,L),(c,_)=>(i(),v(e(r),{direction:"vertical",gap:"1.25rem"},{default:a(()=>[t(e(r),{direction:"horizontal",gap:"0.5rem",align:"center",justify:"space-between"},{default:a(()=>[t(e(r),{direction:"horizontal",gap:"0.5rem",align:"center"},{default:a(()=>{var d;return[t(e(A),{to:"/services",style:{"text-decoration":"none"}},{default:a(()=>[t(e(D),{size:"sm",variant:"ghost"},{default:a(()=>[t(e(g),{name:"arrow-left"}),s(" "+l(e(n)("nav.services")),1)]),_:1})]),_:1}),t(e(f),{weight:"semibold",size:"lg"},{default:a(()=>[s(l(U.serviceName),1)]),_:1}),(d=m.value)!=null&&d.status?(i(),v(e(h),{key:0,tone:ue(m.value.status),variant:"soft"},{default:a(()=>[s(l(W(m.value.status)),1)]),_:1},8,["tone"])):b("",!0)]}),_:1}),t(e(r),{direction:"horizontal",gap:"0.375rem"},{default:a(()=>{var d,S;return[t(e(D),{size:"sm",variant:"soft",disabled:((d=m.value)==null?void 0:d.status)==="running",loading:P.value,onClick:le},{default:a(()=>[s(l(e(n)("services.start")),1)]),_:1},8,["disabled","loading"]),t(e(D),{size:"sm",variant:"soft",disabled:((S=m.value)==null?void 0:S.status)!=="running",loading:V.value,onClick:se},{default:a(()=>[s(l(e(n)("services.stop")),1)]),_:1},8,["disabled","loading"]),t(e(D),{size:"sm",variant:"ghost",onClick:re},{default:a(()=>[s(l(e(n)("services.logs")),1)]),_:1}),t(e(D),{size:"sm",variant:"ghost",loading:j.value,onClick:L},{default:a(()=>[s(l(e(n)("common.refresh")),1)]),_:1},8,["loading"]),t(e(D),{size:"sm",variant:"danger",onClick:_[0]||(_[0]=I=>Q.value=!0)},{default:a(()=>[s(l(e(n)("common.delete")),1)]),_:1})]}),_:1})]),_:1}),R.value?(i(),v(e(pe),{key:0,variant:"danger",dismissible:"",onDismiss:_[1]||(_[1]=d=>R.value=null)},{default:a(()=>[s(l(R.value),1)]),_:1})):b("",!0),j.value&&!m.value?(i(),v(e(r),{key:1,direction:"horizontal",justify:"center",align:"center"},{default:a(()=>[t(e(_e),{label:e(n)("services.loadingOne")},null,8,["label"])]),_:1})):m.value?(i(),y(w,{key:2},[t(e(be),{columns:5,gap:"1rem"},{default:a(()=>{var d,S,I,x,q;return[t(e(E),{label:e(n)("services.statLambdas"),value:((d=o.value.lambda)==null?void 0:d.length)||0,tone:"info"},{icon:a(()=>[t(e(g),{name:e(p).lambda},null,8,["name"])]),_:1},8,["label","value"]),t(e(E),{label:e(n)("services.statTables"),value:((S=o.value.dynamodb)==null?void 0:S.length)||0,tone:"info"},{icon:a(()=>[t(e(g),{name:e(p).dynamodb},null,8,["name"])]),_:1},8,["label","value"]),t(e(E),{label:e(n)("services.statQueues"),value:((I=o.value.sqs)==null?void 0:I.length)||0,tone:"warning"},{icon:a(()=>[t(e(g),{name:e(p).sqs},null,8,["name"])]),_:1},8,["label","value"]),t(e(E),{label:e(n)("services.statTopics"),value:((x=o.value.sns)==null?void 0:x.length)||0,tone:"info"},{icon:a(()=>[t(e(g),{name:e(p).sns},null,8,["name"])]),_:1},8,["label","value"]),t(e(E),{label:e(n)("services.statBuckets"),value:((q=o.value.s3)==null?void 0:q.length)||0,tone:"neutral"},{icon:a(()=>[t(e(g),{name:e(p).s3},null,8,["name"])]),_:1},8,["label","value"])]}),_:1}),t(e(te),{variant:"outline"},{header:a(()=>[t(e(f),{weight:"semibold"},{default:a(()=>[s(l(e(n)("services.metadata")),1)]),_:1})]),default:a(()=>[t(e(he),null,{default:a(()=>[t(e(F),{label:e(n)("services.path")},{default:a(()=>[t(e(f),{family:"mono"},{default:a(()=>[s(l(m.value.root),1)]),_:1})]),_:1},8,["label"]),t(e(F),{label:e(n)("common.region")},{default:a(()=>[t(e(f),{family:"mono"},{default:a(()=>[s(l(m.value.region||"—"),1)]),_:1})]),_:1},8,["label"]),t(e(F),{label:e(n)("services.invokePort")},{default:a(()=>[t(e(f),{family:"mono"},{default:a(()=>[s(l(m.value.invokePort??"—"),1)]),_:1})]),_:1},8,["label"]),t(e(F),{label:"PID"},{default:a(()=>[t(e(f),{family:"mono"},{default:a(()=>[s(l(m.value.pid??"—"),1)]),_:1})]),_:1}),t(e(F),{label:e(n)("services.lastUpdated")},{default:a(()=>[ye("span",null,l(ce(m.value.lastUpdated)),1)]),_:1},8,["label"])]),_:1})]),_:1}),t(e(te),{variant:"outline"},{header:a(()=>[t(e(r),{direction:"horizontal",gap:"0.5rem",align:"center",justify:"space-between"},{default:a(()=>[t(e(f),{weight:"semibold"},{default:a(()=>[s(l(e(n)("services.declaredResources")),1)]),_:1}),t(e(h),{tone:"neutral",variant:"soft"},{default:a(()=>{var d;return[s(l(e(n)("services.resourcesTotal",{count:((d=m.value.resources)==null?void 0:d.length)||0})),1)]}),_:1})]),_:1})]),default:a(()=>{var d;return[(d=m.value.resources)!=null&&d.length?(i(),v(e(r),{key:1,direction:"vertical",gap:"1rem"},{default:a(()=>{var S,I,x,q,X,Y,Z,ee,ae;return[(S=o.value.dynamodb)!=null&&S.length?(i(),v(e(r),{key:0,direction:"vertical",gap:"0.5rem"},{default:a(()=>[t(e(r),{direction:"horizontal",gap:"0.5rem",align:"center"},{default:a(()=>[t(e(h),{tone:"info",variant:"soft"},{default:a(()=>[s(l(e(n)("services.groupTables")),1)]),_:1}),t(e(f),{tone:"muted"},{default:a(()=>[s(l(o.value.dynamodb.length),1)]),_:1})]),_:1}),t(e(r),{direction:"horizontal",gap:"0.375rem",wrap:""},{default:a(()=>[(i(!0),y(w,null,$(o.value.dynamodb,u=>(i(),v(e(A),{key:`db-${u.name}`,to:`/dynamo/${encodeURIComponent(u.name)}`,style:{"text-decoration":"none"}},{default:a(()=>[t(e(N),{size:"sm",variant:"soft",clickable:""},{icon:a(()=>[t(e(g),{name:e(p).dynamodb},null,8,["name"])]),default:a(()=>[s(" "+l(u.name),1)]),_:2},1024)]),_:2},1032,["to"]))),128))]),_:1})]),_:1})):b("",!0),(I=o.value.sqs)!=null&&I.length?(i(),v(e(r),{key:1,direction:"vertical",gap:"0.5rem"},{default:a(()=>[t(e(r),{direction:"horizontal",gap:"0.5rem",align:"center"},{default:a(()=>[t(e(h),{tone:"warning",variant:"soft"},{default:a(()=>[s(l(e(n)("services.groupQueues")),1)]),_:1}),t(e(f),{tone:"muted"},{default:a(()=>[s(l(o.value.sqs.length),1)]),_:1})]),_:1}),t(e(r),{direction:"horizontal",gap:"0.375rem",wrap:""},{default:a(()=>[(i(!0),y(w,null,$(o.value.sqs,u=>(i(),v(e(A),{key:`q-${u.name}`,to:"/queues",style:{"text-decoration":"none"}},{default:a(()=>[t(e(N),{size:"sm",variant:"soft",clickable:""},{icon:a(()=>[t(e(g),{name:e(p).sqs},null,8,["name"])]),default:a(()=>[s(" "+l(u.name),1)]),_:2},1024)]),_:2},1024))),128))]),_:1})]),_:1})):b("",!0),(x=o.value.sns)!=null&&x.length?(i(),v(e(r),{key:2,direction:"vertical",gap:"0.5rem"},{default:a(()=>[t(e(r),{direction:"horizontal",gap:"0.5rem",align:"center"},{default:a(()=>[t(e(h),{tone:"info",variant:"soft"},{default:a(()=>[s(l(e(n)("services.groupTopics")),1)]),_:1}),t(e(f),{tone:"muted"},{default:a(()=>[s(l(o.value.sns.length),1)]),_:1})]),_:1}),t(e(r),{direction:"horizontal",gap:"0.375rem",wrap:""},{default:a(()=>[(i(!0),y(w,null,$(o.value.sns,u=>(i(),v(e(N),{key:`t-${u.name}`,size:"sm",variant:"soft"},{icon:a(()=>[t(e(g),{name:e(p).sns},null,8,["name"])]),default:a(()=>[s(" "+l(u.name),1)]),_:2},1024))),128))]),_:1})]),_:1})):b("",!0),(q=o.value.s3)!=null&&q.length?(i(),v(e(r),{key:3,direction:"vertical",gap:"0.5rem"},{default:a(()=>[t(e(r),{direction:"horizontal",gap:"0.5rem",align:"center"},{default:a(()=>[t(e(h),{tone:"neutral",variant:"soft"},{default:a(()=>[s(l(e(n)("services.groupBuckets")),1)]),_:1}),t(e(f),{tone:"muted"},{default:a(()=>[s(l(o.value.s3.length),1)]),_:1})]),_:1}),t(e(r),{direction:"horizontal",gap:"0.375rem",wrap:""},{default:a(()=>[(i(!0),y(w,null,$(o.value.s3,u=>(i(),v(e(A),{key:`b-${u.name}`,to:`/buckets/${encodeURIComponent(u.name)}`,style:{"text-decoration":"none"}},{default:a(()=>[t(e(N),{size:"sm",variant:"soft",clickable:""},{icon:a(()=>[t(e(g),{name:e(p).s3},null,8,["name"])]),default:a(()=>[s(" "+l(u.name),1)]),_:2},1024)]),_:2},1032,["to"]))),128))]),_:1})]),_:1})):b("",!0),(X=o.value.lambda)!=null&&X.length?(i(),v(e(r),{key:4,direction:"vertical",gap:"0.5rem"},{default:a(()=>[t(e(r),{direction:"horizontal",gap:"0.5rem",align:"center"},{default:a(()=>[t(e(h),{tone:"neutral",variant:"soft"},{default:a(()=>[s(l(e(n)("services.groupLambdas")),1)]),_:1}),t(e(f),{tone:"muted"},{default:a(()=>[s(l(o.value.lambda.length),1)]),_:1})]),_:1}),t(e(r),{direction:"horizontal",gap:"0.375rem",wrap:""},{default:a(()=>[(i(!0),y(w,null,$(o.value.lambda,u=>(i(),v(e(N),{key:`l-${u.name}`,size:"sm",variant:"soft"},{icon:a(()=>[t(e(g),{name:e(p).lambda},null,8,["name"])]),default:a(()=>[s(" "+l(u.name),1)]),_:2},1024))),128))]),_:1})]),_:1})):b("",!0),(Y=o.value.eventbus)!=null&&Y.length?(i(),v(e(r),{key:5,direction:"vertical",gap:"0.5rem"},{default:a(()=>[t(e(r),{direction:"horizontal",gap:"0.5rem",align:"center"},{default:a(()=>[t(e(h),{tone:"info",variant:"soft"},{default:a(()=>[s(l(e(n)("services.groupBuses")),1)]),_:1}),t(e(f),{tone:"muted"},{default:a(()=>[s(l(o.value.eventbus.length),1)]),_:1})]),_:1}),t(e(r),{direction:"horizontal",gap:"0.375rem",wrap:""},{default:a(()=>[(i(!0),y(w,null,$(o.value.eventbus,u=>(i(),v(e(N),{key:`eb-${u.name}`,size:"sm",variant:"soft"},{icon:a(()=>[t(e(g),{name:e(p).eventbus},null,8,["name"])]),default:a(()=>[s(" "+l(u.name),1)]),_:2},1024))),128))]),_:1})]),_:1})):b("",!0),(Z=o.value["event-rule"])!=null&&Z.length?(i(),v(e(r),{key:6,direction:"vertical",gap:"0.5rem"},{default:a(()=>[t(e(r),{direction:"horizontal",gap:"0.5rem",align:"center"},{default:a(()=>[t(e(h),{tone:"info",variant:"soft"},{default:a(()=>[s(l(e(n)("services.groupRules")),1)]),_:1}),t(e(f),{tone:"muted"},{default:a(()=>[s(l(o.value["event-rule"].length),1)]),_:1})]),_:1}),t(e(r),{direction:"horizontal",gap:"0.375rem",wrap:""},{default:a(()=>[(i(!0),y(w,null,$(o.value["event-rule"],(u,H)=>(i(),v(e(N),{key:`er-${H}-${u.name}`,size:"sm",variant:"outline"},{icon:a(()=>[t(e(g),{name:e(p)["event-rule"]},null,8,["name"])]),default:a(()=>[s(" "+l(u.name),1)]),_:2},1024))),128))]),_:1})]),_:1})):b("",!0),(ee=o.value.opensearch)!=null&&ee.length?(i(),v(e(r),{key:7,direction:"vertical",gap:"0.5rem"},{default:a(()=>[t(e(r),{direction:"horizontal",gap:"0.5rem",align:"center"},{default:a(()=>[t(e(h),{tone:"info",variant:"soft"},{default:a(()=>[s(l(e(n)("services.groupCollections")),1)]),_:1}),t(e(f),{tone:"muted"},{default:a(()=>[s(l(o.value.opensearch.length),1)]),_:1})]),_:1}),t(e(r),{direction:"horizontal",gap:"0.375rem",wrap:""},{default:a(()=>[(i(!0),y(w,null,$(o.value.opensearch,u=>(i(),v(e(N),{key:`os-${u.name}`,size:"sm",variant:"soft"},{icon:a(()=>[t(e(g),{name:e(p).opensearch},null,8,["name"])]),default:a(()=>[s(" "+l(u.name),1)]),_:2},1024))),128))]),_:1})]),_:1})):b("",!0),(ae=o.value["event-source"])!=null&&ae.length?(i(),v(e(r),{key:8,direction:"vertical",gap:"0.5rem"},{default:a(()=>[t(e(r),{direction:"horizontal",gap:"0.5rem",align:"center"},{default:a(()=>[t(e(h),{tone:"neutral",variant:"soft"},{default:a(()=>[s(l(e(n)("services.groupEventSources")),1)]),_:1}),t(e(f),{tone:"muted"},{default:a(()=>[s(l(o.value["event-source"].length),1)]),_:1})]),_:1}),t(e(r),{direction:"horizontal",gap:"0.375rem",wrap:""},{default:a(()=>[(i(!0),y(w,null,$(o.value["event-source"],(u,H)=>(i(),v(e(N),{key:`es-${H}-${u.name}`,size:"sm",variant:"outline"},{icon:a(()=>[t(e(g),{name:e(p)["event-source"]},null,8,["name"])]),default:a(()=>[s(" "+l(u.name),1)]),_:2},1024))),128))]),_:1})]),_:1})):b("",!0)]}),_:1})):(i(),v(e(we),{key:0,title:e(n)("services.noResourcesTitle"),description:e(n)("services.noResourcesDescription")},null,8,["title","description"]))]}),_:1})],64)):b("",!0),t(e(ze),{open:O.value,"onUpdate:open":[_[2]||(_[2]=d=>O.value=d),_[3]||(_[3]=d=>{d||ie()})],title:e(n)("services.logsTitleFor",{name:U.serviceName}),description:e(n)("services.logsStatus",{status:W(M.value)}),size:"lg"},{default:a(()=>[t(e(ke),{code:J.value.join(`
2
- `)||e(n)("services.logsEmpty"),label:e(n)("services.logsLabel"),"max-block-size":"60vh",wrap:"",copyable:""},null,8,["code","label"])]),_:1},8,["open","title","description"]),t(e($e),{open:Q.value,"onUpdate:open":_[4]||(_[4]=d=>Q.value=d),title:e(n)("services.deleteTitleNamed",{name:U.serviceName}),description:e(n)("services.deleteDescription",{engine:e(Ce)}),"confirm-label":e(n)("common.delete"),"cancel-label":e(n)("common.cancel"),"confirm-variant":"danger",onConfirm:oe},null,8,["open","title","description","confirm-label","cancel-label"])]),_:1}))}});export{Re as default};
@@ -1,2 +0,0 @@
1
- import{k as V,m as W,o as X,n as g,e as b,a1 as e,t as Y,a7 as l,v as h,j as n,w as Z,N as ee,O as te,H as S,i,a0 as o,g as ae,F as se,s as le,z as ne,C as re,u as C,f as ie,A as oe,P as ce,Q as ue,S as de,T as ve,K as ge,L as fe,a9 as me,a2 as pe,p as c,b as I,a as k,c as be}from"./index-BIEznsi4.js";import{E as ye}from"./engine-D0mFFNbL.js";import{a as we,b as _e}from"./resourceIcons-baecADXA.js";const ke=V({__name:"ServicesList",setup(j){const{t}=pe(),u=be(),z=c([]),U=c(!0),$=c(!1),f=c(""),y=c(null),L=c([]),x=c("stopped"),d=c(null),m=c({}),p=c({}),w=c(null),T=c(!1);let F=null;const K=I(()=>[{key:"name",label:t("common.name")},{key:"status",label:t("common.status")},{key:"root",label:t("services.path")},{key:"resourceBreakdown",label:t("services.resources")},{key:"lastUpdated",label:t("services.lastUpdated")},{key:"actions",label:t("common.actions"),align:"right"}]),O=I(()=>z.value.map(a=>({...a}))),B=I({get:()=>y.value!==null,set:a=>{a||H()}});async function _(){try{z.value=await k.listServices()}catch(a){console.error("Failed to load services:",a)}finally{U.value=!1}}async function P(a){if(!m.value[a]){m.value={...m.value,[a]:!0};try{await k.startService(a),u.add({title:t("services.startedToast"),description:a,variant:"success"}),await _()}catch(r){u.add({title:t("services.startFailedToast"),description:r.message,variant:"danger"})}finally{m.value={...m.value,[a]:!1}}}}async function R(a){if(!p.value[a]){p.value={...p.value,[a]:!0};try{await k.stopService(a),u.add({title:t("services.stoppedToast"),description:a,variant:"info"}),await _()}catch(r){u.add({title:t("services.stopFailedToast"),description:r.message,variant:"danger"})}finally{p.value={...p.value,[a]:!1}}}}async function D(a){try{const r=await k.getServiceLogs(a);L.value=r.logs||[],x.value=r.status||"stopped"}catch(r){console.error("Failed to fetch logs:",r)}}function A(a){y.value=a,D(a),d.value&&window.clearInterval(d.value),d.value=window.setInterval(()=>D(a),2e3)}function H(){y.value=null,L.value=[],d.value&&window.clearInterval(d.value),d.value=null}async function E(){if(f.value.trim()){$.value=!0;try{await k.registerService(f.value),u.add({title:t("services.registeredToast"),description:f.value,variant:"success"}),f.value="",await _()}catch(a){u.add({title:t("services.registerFailedToast"),description:a.message,variant:"danger"})}finally{$.value=!1}}}function M(a){w.value=a,T.value=!0}async function q(){if(!w.value)return;const a=w.value;try{await k.deleteService(a),u.add({title:t("services.deletedToast"),description:a,variant:"info"}),await _()}catch(r){u.add({title:t("services.deleteFailedToast"),description:r.message,variant:"danger"})}finally{w.value=null,T.value=!1}}function G(a){return new Date(a).toLocaleString()}function Q(a){const r=a.resourceBreakdown;return r?we.map(s=>({key:s,count:r[s]??0,..._e[s]})).filter(s=>s.count>0):[]}function J(a){switch(a){case"running":return"success";case"registered":return"warning";case"stopped":return"neutral";default:return"danger"}}function N(a){switch(a){case"running":return t("services.statusRunning");case"registered":return t("services.statusRegistered");case"stopped":return t("common.stopped");case"failed":return t("services.statusFailed");case"error":return t("services.statusError");default:return a}}return W(()=>{_(),F=window.setInterval(_,1e4)}),X(()=>{F&&window.clearInterval(F),d.value&&window.clearInterval(d.value)}),(a,r)=>(g(),b(e(Y),{variant:"outline"},{header:l(()=>[n(e(h),{direction:"horizontal",gap:"0.75rem",align:"center",justify:"space-between"},{default:l(()=>[n(e(C),{weight:"semibold"},{default:l(()=>[i(o(e(t)("services.title")),1)]),_:1}),n(e(h),{direction:"horizontal",gap:"0.5rem",align:"center"},{default:l(()=>[n(e(ge),{hint:e(t)("services.registerHint"),htmlFor:"register-path"},{default:l(()=>[n(e(fe),{modelValue:f.value,"onUpdate:modelValue":r[0]||(r[0]=s=>f.value=s),placeholder:e(t)("services.registerPlaceholder"),disabled:$.value,onKeyup:me(E,["enter"])},null,8,["modelValue","placeholder","disabled"])]),_:1},8,["hint"]),n(e(S),{variant:"solid",loading:$.value,disabled:!f.value.trim(),onClick:E},{default:l(()=>[i(o(e(t)("services.register")),1)]),_:1},8,["loading","disabled"])]),_:1})]),_:1})]),default:l(()=>[U.value?(g(),b(e(h),{key:0,direction:"horizontal",justify:"center",align:"center"},{default:l(()=>[n(e(Z),{label:e(t)("services.loadingList")},null,8,["label"])]),_:1})):z.value.length?(g(),b(e(te),{key:2,columns:K.value,rows:O.value,"aria-label":e(t)("services.tableLabel")},{"cell-name":l(({row:s})=>[n(e(ce),{to:`/services/${encodeURIComponent(String(s.name))}`},{default:l(()=>[n(e(C),{weight:"semibold"},{default:l(()=>[i(o(s.name),1)]),_:2},1024)]),_:2},1032,["to"])]),"cell-status":l(({row:s})=>[n(e(oe),{tone:J(String(s.status)),variant:"soft"},{default:l(()=>[i(o(N(String(s.status))),1)]),_:2},1032,["tone"])]),"cell-root":l(({row:s})=>[n(e(C),{family:"mono"},{default:l(()=>[i(o(s.root),1)]),_:2},1024)]),"cell-resourceBreakdown":l(({row:s})=>[n(e(h),{direction:"horizontal",gap:"0.25rem",wrap:""},{default:l(()=>[(g(!0),ae(se,null,le(Q(s),v=>(g(),b(e(ne),{key:v.key,size:"sm",variant:"soft"},{default:l(()=>[n(e(re),{name:v.icon,label:e(t)(v.labelKey)},null,8,["name","label"]),i(" "+o(v.count),1)]),_:2},1024))),128)),s.resourcesCount?ie("",!0):(g(),b(e(C),{key:0,tone:"muted",size:"xs"},{default:l(()=>[i(o(e(t)("common.none")),1)]),_:1}))]),_:2},1024)]),"cell-lastUpdated":l(({row:s})=>[i(o(G(Number(s.lastUpdated))),1)]),"cell-actions":l(({row:s})=>[n(e(h),{direction:"horizontal",gap:"0.375rem",justify:"flex-end",wrap:""},{default:l(()=>[n(e(S),{size:"sm",variant:"soft",disabled:s.status==="running"||m.value[String(s.name)],loading:m.value[String(s.name)],onClick:v=>P(String(s.name))},{default:l(()=>[i(o(e(t)("services.start")),1)]),_:1},8,["disabled","loading","onClick"]),n(e(S),{size:"sm",variant:"soft",disabled:s.status!=="running"||p.value[String(s.name)],loading:p.value[String(s.name)],onClick:v=>R(String(s.name))},{default:l(()=>[i(o(e(t)("services.stop")),1)]),_:1},8,["disabled","loading","onClick"]),n(e(S),{size:"sm",variant:"ghost",onClick:v=>A(String(s.name))},{default:l(()=>[i(o(e(t)("services.logs")),1)]),_:1},8,["onClick"]),n(e(S),{size:"sm",variant:"danger",onClick:v=>M(String(s.name))},{default:l(()=>[i(o(e(t)("common.delete")),1)]),_:1},8,["onClick"])]),_:2},1024)]),_:1},8,["columns","rows","aria-label"])):(g(),b(e(ee),{key:1,title:e(t)("services.emptyTitle"),description:e(t)("services.emptyDescription")},null,8,["title","description"])),n(e(ue),{open:B.value,"onUpdate:open":r[1]||(r[1]=s=>B.value=s),title:y.value?e(t)("services.logsTitleFor",{name:y.value}):e(t)("services.logsTitle"),description:y.value?e(t)("services.logsStatus",{status:N(x.value)}):"",size:"lg"},{default:l(()=>[n(e(de),{code:L.value.join(`
2
- `)||e(t)("services.logsEmpty"),label:e(t)("services.logsLabel"),"max-block-size":"60vh",wrap:"",copyable:""},null,8,["code","label"])]),_:1},8,["open","title","description"]),n(e(ve),{open:T.value,"onUpdate:open":r[2]||(r[2]=s=>T.value=s),title:w.value?e(t)("services.deleteTitleNamed",{name:w.value}):e(t)("services.deleteTitle"),description:e(t)("services.deleteDescription",{engine:e(ye)}),"confirm-label":e(t)("common.delete"),"cancel-label":e(t)("common.cancel"),"confirm-variant":"danger",onConfirm:q},null,8,["open","title","description","confirm-label","cancel-label"])]),_:1}))}}),Te=V({__name:"ServicesPage",setup(j){return(t,u)=>(g(),b(ke))}});export{Te as default};
@@ -1 +0,0 @@
1
- import{k as oe,m as re,e as P,a7 as i,a1 as e,v as m,a as A,a2 as ue,p as M,n as x,j as n,C as J,u as b,i as u,a0 as d,A as Y,f as C,H as j,t as H,J as N,w as de,x as W,K as r,L as f,Y as G,q as ge,$ as T,B as Q,b as F,r as me,c as fe}from"./index-BIEznsi4.js";const pe=oe({__name:"SettingsPage",setup(be){const{t:l}=ue(),q=fe(),v=M(null),L=M(!0),R=M(!1),z=M(!1),h=M(null),w=M([]),O=M([]),X=F(()=>[{value:"auto",label:l("settings.executionAuto")},{value:"artifact",label:l("settings.executionArtifact")},{value:"source",label:l("settings.executionSource")}]),Z=F(()=>[{value:"default",label:l("settings.watchDefault")},{value:"on",label:l("settings.watchOn")},{value:"off",label:l("settings.watchOff")}]),ee=F(()=>[{value:"dark",label:l("settings.themeDark")},{value:"light",label:l("settings.themeLight")}]),t=me({serverPort:3100,region:"us-east-1",persistence:!0,debug:!1,sePort:14566,seAccount:"000000000000",seMemoryBudgetMb:128,seIdleUnloadMs:3e5,seFsync:!1,seFallback:"",proxyEnabled:!1,proxyPort:8e3,lrEnabled:!0,lrExecution:"auto",lrWatch:"default",lrInvokePortOffset:1e4,lrInvokeHost:"",autoPackage:!1,packageCommand:"",packageTimeoutMs:3e5,seedsDir:"",brTitle:"",brSubtitle:"",brTheme:"dark"});let B=null;function $(){return{...t}}function _(o){v.value=o,t.serverPort=o.serverPort,t.region=o.region,t.persistence=o.persistence,t.debug=o.debug,t.sePort=o.selfEngine.port,t.seAccount=o.selfEngine.account,t.seMemoryBudgetMb=o.selfEngine.memoryBudgetMb,t.seIdleUnloadMs=o.selfEngine.idleUnloadMs,t.seFsync=o.selfEngine.fsync,t.seFallback=o.selfEngine.fallbackEndpoint||"",t.proxyEnabled=o.dynamoProxy.enabled,t.proxyPort=o.dynamoProxy.port,t.lrEnabled=o.lambdaRuntime.enabled,t.lrExecution=o.lambdaRuntime.execution,t.lrWatch=o.lambdaRuntime.watch===null?"default":o.lambdaRuntime.watch?"on":"off",t.lrInvokePortOffset=o.lambdaRuntime.invokePortOffset,t.lrInvokeHost=o.lambdaRuntime.invokeHost,t.autoPackage=o.autoPackage,t.packageCommand=o.packageCommand,t.packageTimeoutMs=o.packageTimeoutMs,t.seedsDir=o.seedsDir,t.brTitle=o.branding.title,t.brSubtitle=o.branding.subtitle,t.brTheme=o.branding.defaultTheme,B=$()}const K=F(()=>{if(!B)return[];const o=$();return Object.keys(o).filter(a=>o[a]!==B[a])}),U=F(()=>K.value.length);function te(o){var a;return!!((a=v.value)!=null&&a.envOverrides.includes(o))}function c(o,a){return te(o)?l("settings.maskedByEnv"):a}function le(){const o=[],a=new Set(K.value),s={},g=(I,S)=>{const V=Number(I);return(!Number.isInteger(V)||V<1||V>65535)&&o.push(l("settings.errorPort",{label:S})),V},k=(I,S)=>{const V=Number(I);return(!Number.isInteger(V)||V<=0)&&o.push(l("settings.errorPositive",{label:S})),V},p=I=>I.trim()||null;a.has("serverPort")&&(s.serverPort=g(t.serverPort,l("settings.serverPort"))),a.has("region")&&(s.region=t.region),a.has("persistence")&&(s.persistence=t.persistence),a.has("debug")&&(s.debug=t.debug),a.has("proxyEnabled")&&(s.enableDynamoProxy=t.proxyEnabled),a.has("proxyPort")&&(s.dynamoProxyPort=g(t.proxyPort,l("settings.proxyPort"))),a.has("autoPackage")&&(s.autoPackage=t.autoPackage),a.has("packageCommand")&&(s.packageCommand=p(t.packageCommand)),a.has("packageTimeoutMs")&&(s.packageTimeoutMs=k(t.packageTimeoutMs,l("settings.packageTimeout"))),a.has("seedsDir")&&(s.seedsDir=p(t.seedsDir));const y={};a.has("sePort")&&(y.port=g(t.sePort,l("settings.selfEnginePort"))),a.has("seAccount")&&(t.seAccount.trim()||o.push(l("settings.errorAccountEmpty")),y.account=t.seAccount.trim()),a.has("seMemoryBudgetMb")&&(y.memoryBudgetMb=k(t.seMemoryBudgetMb,l("settings.memoryBudget"))),a.has("seIdleUnloadMs")&&(y.idleUnloadMs=k(t.seIdleUnloadMs,l("settings.idleUnload"))),a.has("seFsync")&&(y.fsync=t.seFsync),a.has("seFallback")&&(y.fallbackEndpoint=p(t.seFallback)),Object.keys(y).length&&(s.selfEngine=y);const E={};a.has("lrEnabled")&&(E.enabled=t.lrEnabled),a.has("lrExecution")&&(E.execution=t.lrExecution),a.has("lrWatch")&&(E.watch=t.lrWatch==="default"?null:t.lrWatch==="on"),a.has("lrInvokePortOffset")&&(E.invokePortOffset=k(t.lrInvokePortOffset,l("settings.invokePortOffset"))),a.has("lrInvokeHost")&&(E.invokeHost=p(t.lrInvokeHost)),Object.keys(E).length&&(s.lambdaRuntime=E);const D={};return a.has("brTitle")&&(D.title=p(t.brTitle)),a.has("brSubtitle")&&(D.subtitle=p(t.brSubtitle)),a.has("brTheme")&&(D.defaultTheme=t.brTheme),Object.keys(D).length&&(s.branding=D),{patch:s,errors:o}}async function ae(){try{_(await A.getConfig())}catch(o){h.value=o instanceof Error?o.message:l("settings.loadFailed")}finally{L.value=!1}}async function ne(){const{patch:o,errors:a}=le();if(a.length){h.value=a.join("; ");return}R.value=!0,h.value=null;const s=$();try{const g=await A.updateConfig(o),k=$();_(g.config),Object.keys(k).forEach(p=>{k[p]!==s[p]&&(t[p]=k[p])}),w.value=g.restartRequired,O.value=g.envOverridden,q.add({title:l("settings.savedTitle"),description:l("settings.savedDescription",{path:g.configPath}),variant:"success"})}catch(g){h.value=g instanceof Error?g.message:l("settings.saveFailed")}finally{R.value=!1}}async function ie(){z.value=!0,h.value=null;try{const o=await A.reloadConfig();_(o.config),w.value=o.restartRequired,O.value=[],q.add({title:l("settings.reloadedTitle"),description:o.configPath||l("settings.reloadedNoFile"),variant:"success"})}catch(o){h.value=o instanceof Error?o.message:l("settings.reloadFailed")}finally{z.value=!1}}function se(){v.value&&_(v.value)}return re(ae),(o,a)=>(x(),P(e(m),{direction:"vertical",gap:"1.5rem"},{default:i(()=>[n(e(H),{variant:"outline"},{default:i(()=>[n(e(m),{direction:"vertical",gap:"0.75rem"},{default:i(()=>[n(e(m),{direction:"horizontal",justify:"space-between",align:"center",wrap:"",gap:"0.75rem"},{default:i(()=>[n(e(m),{direction:"horizontal",gap:"0.75rem",align:"center"},{default:i(()=>[n(e(J),{name:"settings"}),n(e(m),{direction:"vertical",gap:"0.125rem"},{default:i(()=>[n(e(b),{size:"xl",weight:"semibold"},{default:i(()=>[u(d(e(l)("settings.title")),1)]),_:1}),n(e(b),{tone:"muted",size:"sm"},{default:i(()=>[u(d(e(l)("settings.subtitle")),1)]),_:1})]),_:1})]),_:1}),n(e(m),{direction:"horizontal",gap:"0.5rem",align:"center",wrap:""},{default:i(()=>[U.value?(x(),P(e(Y),{key:0,tone:"warning",variant:"soft"},{default:i(()=>[u(d(U.value>1?e(l)("settings.unsavedChanges",{count:U.value}):e(l)("settings.unsavedChange",{count:U.value})),1)]),_:1})):C("",!0),n(e(j),{size:"sm",variant:"ghost",onClick:a[0]||(a[0]=s=>o.$router.push("/onboarding"))},{default:i(()=>[u(d(e(l)("settings.reopenOnboarding")),1)]),_:1}),n(e(j),{size:"sm",variant:"outline",loading:z.value,onClick:ie},{icon:i(()=>[n(e(J),{name:"refresh-cw"})]),default:i(()=>[u(" "+d(e(l)("settings.reloadFromDisk")),1)]),_:1},8,["loading"]),n(e(j),{size:"sm",variant:"ghost",disabled:!U.value||R.value,onClick:se},{default:i(()=>[u(d(e(l)("settings.discard")),1)]),_:1},8,["disabled"]),n(e(j),{size:"sm",variant:"solid",loading:R.value,disabled:!U.value,onClick:ne},{default:i(()=>[u(d(e(l)("settings.saveChanges")),1)]),_:1},8,["loading","disabled"])]),_:1})]),_:1}),n(e(b),{tone:"muted",size:"xs",family:"mono"},{default:i(()=>{var s,g;return[u(d(((s=v.value)==null?void 0:s.configPath)||e(l)("settings.noConfigFile",{root:((g=v.value)==null?void 0:g.projectRoot)||e(l)("settings.projectRoot")})),1)]}),_:1})]),_:1})]),_:1}),h.value?(x(),P(e(N),{key:0,variant:"danger",dismissible:"",onDismiss:a[1]||(a[1]=s=>h.value=null)},{default:i(()=>[u(d(h.value),1)]),_:1})):C("",!0),w.value.length?(x(),P(e(N),{key:1,variant:"warning",dismissible:"",onDismiss:a[2]||(a[2]=s=>w.value=[])},{default:i(()=>[u(d(e(l)("settings.restartRequired",{keys:w.value.join(", ")}))+" "+d(e(l)("settings.restartRun"))+" ",1),n(e(b),{family:"mono"},{default:i(()=>[...a[28]||(a[28]=[u("lss stop && lss start",-1)])]),_:1}),u(" "+d(e(l)("settings.restartTask")),1)]),_:1})):C("",!0),O.value.length?(x(),P(e(N),{key:2,variant:"info",dismissible:"",onDismiss:a[3]||(a[3]=s=>O.value=[])},{default:i(()=>[u(d(e(l)("settings.envMaskedAlert",{keys:O.value.join(", ")})),1)]),_:1})):C("",!0),L.value?(x(),P(e(m),{key:3,direction:"horizontal",justify:"center",align:"center"},{default:i(()=>[n(e(de),{label:e(l)("settings.loadingConfig")},null,8,["label"])]),_:1})):v.value?(x(),P(e(W),{key:4,columns:2,gap:"1rem"},{default:i(()=>[n(e(H),{variant:"outline"},{header:i(()=>[n(e(b),{weight:"semibold"},{default:i(()=>[u(d(e(l)("settings.serverCard")),1)]),_:1})]),default:i(()=>[n(e(m),{direction:"vertical",gap:"0.75rem"},{default:i(()=>[n(e(r),{label:e(l)("settings.serverPort"),hint:c("serverPort",e(l)("settings.serverPortHint"))},{default:i(()=>[n(e(f),{modelValue:t.serverPort,"onUpdate:modelValue":a[4]||(a[4]=s=>t.serverPort=s),modelModifiers:{number:!0},type:"number",min:"1",max:"65535"},null,8,["modelValue"])]),_:1},8,["label","hint"]),n(e(r),{label:e(l)("settings.defaultRegion"),hint:c("region",e(l)("settings.defaultRegionHint"))},{default:i(()=>[n(e(G),{modelValue:t.region,"onUpdate:modelValue":a[5]||(a[5]=s=>t.region=s),options:e(ge)},null,8,["modelValue","options"])]),_:1},8,["label","hint"]),n(e(r),{label:e(l)("settings.persistence"),hint:c("persistence",e(l)("settings.persistenceHint"))},{default:i(()=>[n(e(T),{modelValue:t.persistence,"onUpdate:modelValue":a[6]||(a[6]=s=>t.persistence=s)},null,8,["modelValue"])]),_:1},8,["label","hint"]),n(e(r),{label:e(l)("settings.debug"),hint:c("debug",e(l)("settings.debugHint"))},{default:i(()=>[n(e(T),{modelValue:t.debug,"onUpdate:modelValue":a[7]||(a[7]=s=>t.debug=s)},null,8,["modelValue"])]),_:1},8,["label","hint"]),n(e(r),{label:e(l)("settings.seedsDir"),hint:c("seedsDir",e(l)("settings.seedsDirHint"))},{default:i(()=>[n(e(f),{modelValue:t.seedsDir,"onUpdate:modelValue":a[8]||(a[8]=s=>t.seedsDir=s),placeholder:"./seeds"},null,8,["modelValue"])]),_:1},8,["label","hint"])]),_:1})]),_:1}),n(e(H),{variant:"outline"},{header:i(()=>[n(e(m),{direction:"horizontal",justify:"space-between",align:"center"},{default:i(()=>[n(e(b),{weight:"semibold"},{default:i(()=>[u(d(e(l)("settings.engineCard")),1)]),_:1}),n(e(Y),{tone:"info",variant:"soft"},{default:i(()=>[u(d(e(l)("settings.engineBadge")),1)]),_:1})]),_:1})]),default:i(()=>[n(e(m),{direction:"vertical",gap:"0.75rem"},{default:i(()=>[n(e(W),{columns:2,gap:"0.75rem"},{default:i(()=>[n(e(r),{label:e(l)("common.port"),hint:c("selfEngine",e(l)("settings.enginePortHint"))},{default:i(()=>[n(e(f),{modelValue:t.sePort,"onUpdate:modelValue":a[9]||(a[9]=s=>t.sePort=s),modelModifiers:{number:!0},type:"number",min:"1",max:"65535"},null,8,["modelValue"])]),_:1},8,["label","hint"]),n(e(r),{label:e(l)("settings.accountId"),hint:e(l)("settings.accountIdHint")},{default:i(()=>[n(e(f),{modelValue:t.seAccount,"onUpdate:modelValue":a[10]||(a[10]=s=>t.seAccount=s),placeholder:"000000000000"},null,8,["modelValue"])]),_:1},8,["label","hint"]),n(e(r),{label:e(l)("settings.memoryBudget"),hint:e(l)("settings.memoryBudgetHint")},{default:i(()=>[n(e(f),{modelValue:t.seMemoryBudgetMb,"onUpdate:modelValue":a[11]||(a[11]=s=>t.seMemoryBudgetMb=s),modelModifiers:{number:!0},type:"number",min:"1"},null,8,["modelValue"])]),_:1},8,["label","hint"]),n(e(r),{label:e(l)("settings.idleUnload"),hint:e(l)("settings.idleUnloadHint")},{default:i(()=>[n(e(f),{modelValue:t.seIdleUnloadMs,"onUpdate:modelValue":a[12]||(a[12]=s=>t.seIdleUnloadMs=s),modelModifiers:{number:!0},type:"number",min:"1"},null,8,["modelValue"])]),_:1},8,["label","hint"])]),_:1}),n(e(r),{label:e(l)("settings.fsync"),hint:e(l)("settings.fsyncHint")},{default:i(()=>[n(e(T),{modelValue:t.seFsync,"onUpdate:modelValue":a[13]||(a[13]=s=>t.seFsync=s)},null,8,["modelValue"])]),_:1},8,["label","hint"]),n(e(r),{label:e(l)("settings.fallbackEndpoint"),hint:e(l)("settings.fallbackEndpointHint")},{default:i(()=>[n(e(f),{modelValue:t.seFallback,"onUpdate:modelValue":a[14]||(a[14]=s=>t.seFallback=s),placeholder:""},null,8,["modelValue"])]),_:1},8,["label","hint"]),n(e(b),{tone:"muted",size:"xs",family:"mono"},{default:i(()=>[u(d(e(l)("settings.dataDir",{path:v.value.selfEngine.dataDir})),1)]),_:1})]),_:1})]),_:1}),n(e(H),{variant:"outline"},{header:i(()=>[n(e(b),{weight:"semibold"},{default:i(()=>[u(d(e(l)("settings.lambdaRuntimeCard")),1)]),_:1})]),default:i(()=>[n(e(m),{direction:"vertical",gap:"0.75rem"},{default:i(()=>[n(e(r),{label:e(l)("settings.lambdaRuntimeEnabled"),hint:c("lambdaRuntime",e(l)("settings.lambdaRuntimeEnabledHint"))},{default:i(()=>[n(e(T),{modelValue:t.lrEnabled,"onUpdate:modelValue":a[15]||(a[15]=s=>t.lrEnabled=s)},null,8,["modelValue"])]),_:1},8,["label","hint"]),n(e(r),{label:e(l)("settings.execution"),hint:e(l)("settings.executionHint")},{default:i(()=>[n(e(Q),{modelValue:t.lrExecution,"onUpdate:modelValue":a[16]||(a[16]=s=>t.lrExecution=s),options:X.value,size:"md"},null,8,["modelValue","options"])]),_:1},8,["label","hint"]),n(e(r),{label:e(l)("settings.watch"),hint:e(l)("settings.watchHint")},{default:i(()=>[n(e(G),{modelValue:t.lrWatch,"onUpdate:modelValue":a[17]||(a[17]=s=>t.lrWatch=s),options:Z.value},null,8,["modelValue","options"])]),_:1},8,["label","hint"]),n(e(W),{columns:2,gap:"0.75rem"},{default:i(()=>[n(e(r),{label:e(l)("settings.invokePortOffset"),hint:e(l)("settings.invokePortOffsetHint")},{default:i(()=>[n(e(f),{modelValue:t.lrInvokePortOffset,"onUpdate:modelValue":a[18]||(a[18]=s=>t.lrInvokePortOffset=s),modelModifiers:{number:!0},type:"number",min:"1"},null,8,["modelValue"])]),_:1},8,["label","hint"]),n(e(r),{label:e(l)("settings.invokeHost"),hint:e(l)("settings.invokeHostHint")},{default:i(()=>[n(e(f),{modelValue:t.lrInvokeHost,"onUpdate:modelValue":a[19]||(a[19]=s=>t.lrInvokeHost=s),placeholder:"host.docker.internal"},null,8,["modelValue"])]),_:1},8,["label","hint"])]),_:1})]),_:1})]),_:1}),n(e(H),{variant:"outline"},{header:i(()=>[n(e(b),{weight:"semibold"},{default:i(()=>[u(d(e(l)("settings.dynamoProxy")),1)]),_:1})]),default:i(()=>[n(e(m),{direction:"vertical",gap:"0.75rem"},{default:i(()=>[n(e(r),{label:e(l)("settings.dynamoProxy"),hint:c("enableDynamoProxy",e(l)("settings.dynamoProxyHint"))},{default:i(()=>[n(e(T),{modelValue:t.proxyEnabled,"onUpdate:modelValue":a[20]||(a[20]=s=>t.proxyEnabled=s)},null,8,["modelValue"])]),_:1},8,["label","hint"]),n(e(r),{label:e(l)("settings.proxyPort"),hint:c("dynamoProxyPort",e(l)("settings.proxyPortHint"))},{default:i(()=>[n(e(f),{modelValue:t.proxyPort,"onUpdate:modelValue":a[21]||(a[21]=s=>t.proxyPort=s),modelModifiers:{number:!0},type:"number",min:"1",max:"65535",disabled:!t.proxyEnabled},null,8,["modelValue","disabled"])]),_:1},8,["label","hint"])]),_:1})]),_:1}),n(e(H),{variant:"outline"},{header:i(()=>[n(e(b),{weight:"semibold"},{default:i(()=>[u(d(e(l)("settings.packagingCard")),1)]),_:1})]),default:i(()=>[n(e(m),{direction:"vertical",gap:"0.75rem"},{default:i(()=>[n(e(r),{label:e(l)("settings.autoPackage"),hint:c("autoPackage",e(l)("settings.autoPackageHint"))},{default:i(()=>[n(e(T),{modelValue:t.autoPackage,"onUpdate:modelValue":a[22]||(a[22]=s=>t.autoPackage=s)},null,8,["modelValue"])]),_:1},8,["label","hint"]),n(e(r),{label:e(l)("settings.packageCommand"),hint:c("packageCommand",e(l)("settings.packageCommandHint"))},{default:i(()=>[n(e(f),{modelValue:t.packageCommand,"onUpdate:modelValue":a[23]||(a[23]=s=>t.packageCommand=s),placeholder:"npx serverless package"},null,8,["modelValue"])]),_:1},8,["label","hint"]),n(e(r),{label:e(l)("settings.packageTimeout"),hint:c("packageTimeoutMs",e(l)("settings.packageTimeoutHint"))},{default:i(()=>[n(e(f),{modelValue:t.packageTimeoutMs,"onUpdate:modelValue":a[24]||(a[24]=s=>t.packageTimeoutMs=s),modelModifiers:{number:!0},type:"number",min:"1"},null,8,["modelValue"])]),_:1},8,["label","hint"]),Object.keys(v.value.servicePackaging).length?(x(),P(e(b),{key:0,tone:"muted",size:"xs"},{default:i(()=>[u(d(e(l)("settings.packagingOverrides",{services:Object.keys(v.value.servicePackaging).join(", ")})),1)]),_:1})):C("",!0)]),_:1})]),_:1}),n(e(H),{variant:"outline"},{header:i(()=>[n(e(b),{weight:"semibold"},{default:i(()=>[u(d(e(l)("settings.brandingCard")),1)]),_:1})]),default:i(()=>[n(e(m),{direction:"vertical",gap:"0.75rem"},{default:i(()=>[n(e(r),{label:e(l)("settings.brandingTitle"),hint:e(l)("settings.brandingTitleHint")},{default:i(()=>[n(e(f),{modelValue:t.brTitle,"onUpdate:modelValue":a[25]||(a[25]=s=>t.brTitle=s),placeholder:"Local Serverless Stack"},null,8,["modelValue"])]),_:1},8,["label","hint"]),n(e(r),{label:e(l)("settings.brandingSubtitle"),hint:e(l)("settings.brandingSubtitleHint")},{default:i(()=>[n(e(f),{modelValue:t.brSubtitle,"onUpdate:modelValue":a[26]||(a[26]=s=>t.brSubtitle=s),placeholder:"Local development control plane"},null,8,["modelValue"])]),_:1},8,["label","hint"]),n(e(r),{label:e(l)("settings.defaultTheme"),hint:e(l)("settings.defaultThemeHint")},{default:i(()=>[n(e(Q),{modelValue:t.brTheme,"onUpdate:modelValue":a[27]||(a[27]=s=>t.brTheme=s),options:ee.value,size:"md"},null,8,["modelValue","options"])]),_:1},8,["label","hint"]),n(e(b),{tone:"muted",size:"xs"},{default:i(()=>[u(d(e(l)("settings.brandingFileOnly")),1)]),_:1})]),_:1})]),_:1})]),_:1})):C("",!0)]),_:1}))}});export{pe as default};