@highstate/designer 0.9.19 → 0.9.21

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 (79) hide show
  1. package/.output/nitro.json +1 -1
  2. package/.output/public/_nuxt/{BODfYi5x.js → 0vdwhauO.js} +1 -1
  3. package/.output/public/_nuxt/{i3Pf1NPu.js → 16S73JW8.js} +1 -1
  4. package/.output/public/_nuxt/{CasefD2V.js → 30BaVrUW.js} +1 -1
  5. package/.output/public/_nuxt/{O074qcLn.js → 4xMt1p0i.js} +1 -1
  6. package/.output/public/_nuxt/{DuztTtWK.js → 99ZxcQMo.js} +1 -1
  7. package/.output/public/_nuxt/{DarxiN41.js → B0nz2Zze.js} +1 -1
  8. package/.output/public/_nuxt/{T7hNoCXG.js → B3nLPexT.js} +1 -1
  9. package/.output/public/_nuxt/{BkhU0P2a.js → B5zoSt72.js} +1 -1
  10. package/.output/public/_nuxt/{koatKMQr.js → B9WOzG0F.js} +1 -1
  11. package/.output/public/_nuxt/{DFPGdAue.js → BElWqKFK.js} +1 -1
  12. package/.output/public/_nuxt/{DEKgA0CD.js → BG77JRvd.js} +1 -1
  13. package/.output/public/_nuxt/{Ck1nftBx.js → BJKzranL.js} +1 -1
  14. package/.output/public/_nuxt/{00PavPNr.js → BVAgVeex.js} +1 -1
  15. package/.output/public/_nuxt/{D9qQxcz2.js → BZHZ48I0.js} +1 -1
  16. package/.output/public/_nuxt/{C39wRh4i.js → BhSkG2vO.js} +1 -1
  17. package/.output/public/_nuxt/{BSVaCi82.js → BwzWClQo.js} +1 -1
  18. package/.output/public/_nuxt/{CAEVHbCq.js → C6uyQOiX.js} +1 -1
  19. package/.output/public/_nuxt/{DO3LUuFM.js → CEFQZJTy.js} +1 -1
  20. package/.output/public/_nuxt/{Bj2v5zwu.js → CFUixvV0.js} +1 -1
  21. package/.output/public/_nuxt/{C28Ky4mM.js → CIUVrxWu.js} +1 -1
  22. package/.output/public/_nuxt/{CBdGpnmw.js → CKzYRRNc.js} +1 -1
  23. package/.output/public/_nuxt/{mwDqsUrW.js → CRUo-mN3.js} +1 -1
  24. package/.output/public/_nuxt/{DLQCiJf0.js → CTv1udg1.js} +1 -1
  25. package/.output/public/_nuxt/{BLPLmiCg.js → CYlq2lca.js} +1 -1
  26. package/.output/public/_nuxt/{Dy4MTz6g.js → Ca9HO25U.js} +1 -1
  27. package/.output/public/_nuxt/{CzVLS6f1.js → Ccxf70XJ.js} +1 -1
  28. package/.output/public/_nuxt/{DP4clH6m.js → Cl-6nwYp.js} +1 -1
  29. package/.output/public/_nuxt/{_d0M4KuU.js → CmFtdvwG.js} +1 -1
  30. package/.output/public/_nuxt/{DxOL29Up.js → CmuRgu4O.js} +1 -1
  31. package/.output/public/_nuxt/{DcrT2YVS.js → CoKQIzln.js} +1 -1
  32. package/.output/public/_nuxt/{ttev5MDP.js → CqQ7SoEc.js} +1 -1
  33. package/.output/public/_nuxt/{24pzIZRr.js → Ct0zHWLj.js} +1 -1
  34. package/.output/public/_nuxt/{CND6o3oI.js → CwG_vXR4.js} +1 -1
  35. package/.output/public/_nuxt/{kFPB2rqp.js → D2m36GEB.js} +1 -1
  36. package/.output/public/_nuxt/{fqUPtzRv.js → D5PsJ332.js} +1 -1
  37. package/.output/public/_nuxt/{CHdpI9cE.js → D84_luhw.js} +1 -1
  38. package/.output/public/_nuxt/{D9rAj-Tm.js → DCUYnw8H.js} +1 -1
  39. package/.output/public/_nuxt/{DYtuF1mO.js → DEkEne1_.js} +1 -1
  40. package/.output/public/_nuxt/{B8z64P5r.js → DIndX_i2.js} +1 -1
  41. package/.output/public/_nuxt/{HgwTqqUo.js → DJF4kszA.js} +1 -1
  42. package/.output/public/_nuxt/{JokPmHXv.js → DKH4orv1.js} +1 -1
  43. package/.output/public/_nuxt/{BH2j9ZdL.js → DLPcFaxm.js} +1 -1
  44. package/.output/public/_nuxt/{CIv7p5Hd.js → DMGzSUEV.js} +3 -3
  45. package/.output/public/_nuxt/{BjQbGaFu.js → DRbOBnYP.js} +1 -1
  46. package/.output/public/_nuxt/{UczlX-c9.js → DRzHUuts.js} +1 -1
  47. package/.output/public/_nuxt/{CF5B4EM_.js → DSvoz_Rr.js} +1 -1
  48. package/.output/public/_nuxt/DUPtXNCV.js +1 -0
  49. package/.output/public/_nuxt/{DjVGtenp.js → DUcPQWXO.js} +1 -1
  50. package/.output/public/_nuxt/{BLIjXRbp.js → DdEkqLVb.js} +1 -1
  51. package/.output/public/_nuxt/{DLaRxjQz.js → DlUEcgLY.js} +1 -1
  52. package/.output/public/_nuxt/{BhWccYlK.js → DlgqOs51.js} +21 -21
  53. package/.output/public/_nuxt/{DoLmvh98.js → DljtJUzO.js} +1 -1
  54. package/.output/public/_nuxt/{DbnWrFmt.js → Dp61CxCP.js} +1 -1
  55. package/.output/public/_nuxt/{DDCXd-ua.js → DqHZqf4r.js} +1 -1
  56. package/.output/public/_nuxt/{DTnN7l_n.js → Dvr3wuZa.js} +1 -1
  57. package/.output/public/_nuxt/{v9bSWb7m.js → DwnIsmZ-.js} +1 -1
  58. package/.output/public/_nuxt/{BeBKEPaV.js → K7mdFSQD.js} +1 -1
  59. package/.output/public/_nuxt/{DInZfUJa.js → KGX_yR9z.js} +1 -1
  60. package/.output/public/_nuxt/{D2AD0cA7.js → PcM58xPJ.js} +1 -1
  61. package/.output/public/_nuxt/{D1TquUAQ.js → SAlV5_cT.js} +1 -1
  62. package/.output/public/_nuxt/{Bwy6lXZI.js → _4xG4Sg4.js} +1 -1
  63. package/.output/public/_nuxt/{B2umP1rN.js → asZV6334.js} +1 -1
  64. package/.output/public/_nuxt/builds/latest.json +1 -1
  65. package/.output/public/_nuxt/builds/meta/c2b04ef2-f7ef-48dc-aa48-5d4dfa26c410.json +1 -0
  66. package/.output/public/_nuxt/{DwmUhPpj.js → cf-ossUw.js} +1 -1
  67. package/.output/public/_nuxt/{graph-resolver-DwBTX8MB.js → graph-resolver-r_0JlXH_.js} +5 -5
  68. package/.output/public/_nuxt/{DIpLW5D5.js → ngiZ_K3q.js} +1 -1
  69. package/.output/public/_nuxt/{N0qQ3IYs.js → pD_CwtY4.js} +1 -1
  70. package/.output/public/_nuxt/{Bq9zGKGH.js → pGIbX2RQ.js} +1 -1
  71. package/.output/public/_nuxt/{JJ2MHRK2.js → rmtV6Y0T.js} +1 -1
  72. package/.output/public/_nuxt/{COCm9MC_.js → un-_PcAo.js} +1 -1
  73. package/.output/public/_nuxt/{DPWtH2b9.js → uwIuMFjJ.js} +1 -1
  74. package/.output/public/_nuxt/{vuetify.uXRHzFBB.css → vuetify.B9hb7bXd.css} +1 -1
  75. package/.output/server/index.mjs +1340 -1340
  76. package/.output/server/package.json +1 -1
  77. package/package.json +7 -9
  78. package/.output/public/_nuxt/BEFlL3Zb.js +0 -1
  79. package/.output/public/_nuxt/builds/meta/c89eb61d-80e1-4ca1-b13e-521c420f664e.json +0 -1
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@highstate/designer-prod",
3
- "version": "0.9.18",
3
+ "version": "0.9.19",
4
4
  "type": "module",
5
5
  "private": true,
6
6
  "dependencies": {
package/package.json CHANGED
@@ -1,13 +1,11 @@
1
1
  {
2
2
  "name": "@highstate/designer",
3
- "version": "0.9.19",
3
+ "version": "0.9.21",
4
4
  "type": "module",
5
5
  "scripts": {
6
- "build": "nuxt build",
7
6
  "dev": "FORCE_COLOR=true NODE_OPTIONS=--trace-warnings nuxt dev --host | pino-pretty",
8
- "generate": "nuxt generate",
9
- "preview": "nuxt preview",
10
- "prepare": "nuxt prepare"
7
+ "build": "nuxt build",
8
+ "typecheck": "nuxt typecheck"
11
9
  },
12
10
  "files": [
13
11
  ".output"
@@ -81,11 +79,11 @@
81
79
  "zxcvbn-typescript": "^5.0.1"
82
80
  },
83
81
  "dependencies": {
84
- "@highstate/backend": "^0.9.19",
85
- "@highstate/backend-api": "^0.9.19",
86
- "@highstate/contract": "^0.9.19",
82
+ "@highstate/backend": "^0.9.21",
83
+ "@highstate/backend-api": "^0.9.21",
84
+ "@highstate/contract": "^0.9.21",
87
85
  "@paralleldrive/cuid2": "^2.2.2",
88
86
  "@prisma/internals": "^6.14.0"
89
87
  },
90
- "gitHead": "e77d292335556c6e5b6275acda1a3d1609d786a1"
88
+ "gitHead": "390ff15c0e0076822a682f9d4e19260942a8d6c2"
91
89
  }
@@ -1 +0,0 @@
1
- import{I as ve,q,_ as fe,g as ye,aB as be,aQ as se,n as $e,ao as Te,at as Oe,aZ as xe,aC as De,aR as Pe}from"./BhWccYlK.js";import{F as R,Z as C,W as u,aI as ge,aV as Me,a1 as a,X as t,aW as Ue,G as e,a0 as K,a2 as D,a3 as E,_ as x,ab as le,b8 as he,b9 as we,aO as Y,av as J,aw as re,aE as G,ay as ee,aC as ue,aD as de,ai as Z,j as T,aS as Fe,aX as te,L as B,aN as Be,$ as M,ac as ke,a9 as j,af as _,b7 as ie,aB as ce,r as V,w as Q,ba as Le,bb as Ne,bc as pe,az as Ae,b as W,aR as Ee,aA as X,a_ as Ie,aH as Ce,aJ as oe,bd as Re,m as ze,J as je,O as He,n as We}from"./koatKMQr.js";import{H as Xe,_ as qe,I as Ye}from"./CIv7p5Hd.js";import{I as Je}from"./N0qQ3IYs.js";import"./SQImb3Xm.js";import{a as Ze}from"./BSVaCi82.js";import{P as Ge}from"./DO3LUuFM.js";const z=R({__name:"ContextMenuItem",props:{title:{},subtitle:{},color:{},icon:{},customIcon:{},disabled:{type:Boolean},loading:{type:Boolean}},emits:["click"],setup(o,{emit:r}){const g=r;return(s,b)=>(u(),C(ge,{disabled:s.disabled,onClick:b[0]||(b[0]=d=>g("click"))},Me({append:a(()=>[le(s.$slots,"append")]),default:a(()=>[t(he,{color:s.color},{default:a(()=>[D(E(s.title),1)]),_:1},8,["color"]),s.subtitle?(u(),C(we,{key:0,color:s.color},{default:a(()=>[D(E(s.subtitle),1)]),_:1},8,["color"])):x("",!0),le(s.$slots,"default")]),_:2},[s.loading?{name:"prepend",fn:a(()=>[t(Ue,{indeterminate:"",color:"primary"})]),key:"0"}:s.customIcon?{name:"prepend",fn:a(()=>[t(e(ve),{icon:s.customIcon,color:s.color,style:{"margin-right":"12px",width:"24px",height:"24px"}},null,8,["icon","color"])]),key:"1"}:s.icon?{name:"prepend",fn:a(()=>[t(K,{color:s.color,style:{"margin-right":"-20px"}},{default:a(()=>[D(E(s.icon),1)]),_:1},8,["color"])]),key:"2"}:void 0]),1032,["disabled"]))}}),Qe=R({__name:"PageDialog",props:Y({meta:{},content:{}},{visible:{type:Boolean},visibleModifiers:{}}),emits:["update:visible"],setup(o){const r=J(o,"visible");return(g,s)=>(u(),C(re,{modelValue:r.value,"onUpdate:modelValue":s[1]||(s[1]=b=>r.value=b),"max-width":"80vh","max-height":"60vh"},{default:a(()=>[t(G,{title:g.meta.title,color:"#2d2d2d"},{default:a(()=>[t(ee,{style:{"overflow-y":"scroll"}},{default:a(()=>[t(Ge,{content:g.content},null,8,["content"])]),_:1}),t(ue,null,{default:a(()=>[t(de),t(Z,{onClick:s[0]||(s[0]=b=>r.value=!1)},{default:a(()=>s[2]||(s[2]=[D("Close")])),_:1,__:[2]})]),_:1})]),_:1},8,["title"])]),_:1},8,["modelValue"]))}}),me=R({__name:"EditorLoader",props:{text:{},value:{}},setup(o){const{instancesStore:r}=q(),g=T(()=>o.value===-1?o.text:`${o.text} ${o.value}/${r.totalInstanceCount}...`);return(s,b)=>s.text?(u(),C(G,{key:0,variant:"tonal"},{default:a(()=>[t(ee,{class:"text-overline"},{default:a(()=>[D(E(e(g)),1)]),_:1}),t(Fe,{indeterminate:s.value===-1,"model-value":s.value,max:e(r).totalInstanceCount,height:4,color:"primary",class:"w-full"},null,8,["indeterminate","model-value","max"])]),_:1})):x("",!0)}}),$t=R({__name:"EditorLoaderPopup",setup(o){const{instancesStore:r,stateStore:g}=q(),s=T(()=>r.initializationPhase==="resolving"||g.initializationPhase==="calculating");return(b,d)=>e(s)?(u(),C(G,{key:0,variant:"tonal"},{default:a(()=>[e(r).initializationPhase==="resolving"?(u(),C(me,{key:0,text:"Resolving instance inputs",value:e(r).resolvedInstanceCount},null,8,["value"])):x("",!0),e(g).initializationPhase==="calculating"?(u(),C(me,{key:1,text:"Detecting instance changes",value:e(g).calculatedInputHashCount},null,8,["value"])):x("",!0)]),_:1})):x("",!0)}}),Tt=R({__name:"HubNodeWrapper",props:{id:{},type:{},selected:{type:Boolean},connectable:{type:[Boolean,Number,String,Function]},position:{},dimensions:{},label:{},isValidTargetPos:{type:Function},isValidSourcePos:{type:Function},parent:{},parentNodeId:{},dragging:{type:Boolean},resizing:{type:Boolean},zIndex:{},targetPosition:{},sourcePosition:{},dragHandle:{},data:{},events:{}},setup(o){const{stateStore:r}=q(),g=te("contextMenu");return(s,b)=>(u(),C(Xe,{hub:s.data.hub,onContextmenu:b[0]||(b[0]=d=>e(g)?.showContextMenu(d))},{default:a(()=>[t(e(Se),{ref_key:"contextMenu",ref:g,title:"Hub",subtitle:s.data.hub.id,"is-deletable":d=>e(r).isNodeDeletable(d)},null,8,["subtitle","is-deletable"])]),_:1},8,["hub"]))}}),Ke={key:0},_e={class:"d-flex flex-column"},et={key:0,class:"text-caption text-medium-emphasis"},tt={key:1,class:"text-body-2 text-medium-emphasis pa-4"},nt=R({__name:"OperationPlanTree",props:{phases:{}},setup(o){const{instancesStore:r,libraryStore:g}=q(),s=T(()=>{const p=[];for(const n of o.phases){const c={id:`phase-${n.type}`,title:`${n.type.charAt(0).toUpperCase()+n.type.slice(1)} Phase`,subtitle:`${n.instances.length} instance${n.instances.length===1?"":"s"}`,icon:w(n.type),iconColor:f(n.type),phaseType:n.type,children:[]},l=b(n.instances);c.children=l,p.push(c)}return p}),b=p=>{const n=new Map;for(const l of p)n.has(l.id)||n.set(l.id,{...l,children:[]});for(const l of p)l.parentId&&n.has(l.parentId)&&n.get(l.parentId).children.push(l);return p.filter(l=>!l.parentId||!n.has(l.parentId)).map(l=>d(l,n))},d=(p,n)=>{const c=r.instances.get(p.id),l=c?g.library.components[c.type]:null,$={id:p.id,title:l&&c?`${l.meta.title} "${c.name}"`:p.id,subtitle:p.message,icon:l?.meta.icon??"iconamoon:component",iconColor:l?.meta.iconColor,phaseType:"instance"},U=n.get(p.id);return U&&U.children.length>0&&($.children=U.children.map(h=>d(h,n))),$},w=p=>{switch(p){case"destroy":return"mdi-delete";case"update":return"mdi-update";case"refresh":return"mdi-refresh";default:return"mdi-cog"}},f=p=>{switch(p){case"destroy":return"error";case"update":return"primary";case"refresh":return"info";default:return"secondary"}};return(p,n)=>p.phases.length>0?(u(),B("div",Ke,[t(Be,{items:e(s),"item-title":"title","item-value":"id",density:"compact","open-all":"","indent-lines":"","bg-color":"#2d2d2d"},{prepend:a(({item:c})=>[t(e(ve),{icon:c.icon,color:c.iconColor,width:"20",class:"mr-2"},null,8,["icon","color"])]),title:a(({item:c})=>[M("div",_e,[M("div",{class:ke(["text-body-2",c.phaseType==="instance"?"font-weight-regular":"font-weight-medium"])},E(c.title),3),c.subtitle?(u(),B("div",et,E(c.subtitle),1)):x("",!0)])]),_:1},8,["items"])])):(u(),B("div",tt," No changes planned for this operation. "))}}),at={key:0},st={class:"text-caption"},ot=R({__name:"OperationOptions",props:Y({operation:{}},{options:{default:{}},optionsModifiers:{}}),emits:["update:options"],setup(o){const r=J(o,"options"),g=[{key:"forceUpdateDependencies",label:"Force update dependencies",description:"Force update all dependencies regardless of their current state. Bypasses hash-based change detection for dependency chains.",showForOperations:["update"]},{key:"forceUpdateChildren",label:"Force update children instances",description:"Force update all children of composite instances regardless of their state. Overrides selective child inclusion logic.",showForOperations:["update"]},{key:"destroyDependentInstances",label:"Destroy dependent instances",description:"Include dependent instances when destroying instances. Traverses the dependency graph in reverse to prevent orphaned instances.",defaultValue:!0,showForOperations:["destroy","recreate"]},{key:"invokeDestroyTriggers",label:"Invoke destroy triggers",description:"Execute destroy triggers when destroying instances. Controls trigger execution during the destruction phase.",defaultValue:!0},{key:"deleteUnreachableResources",label:"Delete unreachable resources",description:"Delete Pulumi resources that are no longer referenced in the state. Deletes orphaned resources within individual instances.",warning:"All resources that will not be reachable at the moment of the destroy operation will be removed from the state. Only use when you are sure that these resources do not actually exist!"},{key:"forceDeleteState",label:"Force delete state",description:"Force deletion of instance state even if the destroy operation fails. Bypasses normal destroy procedures as emergency fallback.",warning:"This will delete the stack state and all resources in it even if the destroy operation failed. Use only when the stack is unrecoverable and you want to start from scratch.",showForOperations:["destroy"]},{key:"allowPartialCompositeInstanceUpdate",label:"Allow partial update of composite instances",description:"Allow update of individual composite children without requiring all siblings. When enabled, only necessary children are included.",showForOperations:["update","recreate"]},{key:"allowPartialCompositeInstanceDestruction",label:"Allow partial destruction of composite instances",description:"Allow partial destruction of composite instances during cascade operations. When enabled, cascade destruction includes only directly dependent children.",showForOperations:["destroy","recreate"]},{key:"refresh",label:"Refresh state before operation",description:"Also refresh the state of instances during the operation. Synchronizes state with actual infrastructure."}],s=T(()=>g.filter(d=>d.showForOperations?d.showForOperations.includes(o.operation):!0)),b=(d,w)=>{r.value[d]=w??!1};return(d,w)=>r.value?(u(),B("div",at,[(u(!0),B(j,null,_(e(s),f=>(u(),B(j,{key:f.key},[t(ie,{"model-value":r.value[f.key],"onUpdate:modelValue":p=>b(f.key,p),class:ke(f===e(s)[0]?"mt-2":""),label:f.label,density:"compact","hide-details":""},null,8,["model-value","onUpdate:modelValue","class","label"]),M("div",st,E(f.description),1)],64))),128)),(u(!0),B(j,null,_(e(s),f=>(u(),B(j,{key:`warning-${f.key}`},[f.warning&&r.value[f.key]?(u(),C(ce,{key:0,density:"compact",type:"warning",variant:"outlined",class:"mt-4"},{default:a(()=>[D(E(f.warning),1)]),_:2},1024)):x("",!0)],64))),128))])):x("",!0)}}),lt={class:"metadata-section"},it={class:"options-header"},rt={class:"text-body-2 text-medium-emphasis mb-4"},ut={class:"options-scrollable"},dt={class:"plan-header"},ct={class:"plan-scrollable"},pt=R({__name:"InstanceOperationDialog",props:Y({instances:{},component:{},operation:{}},{visible:{type:Boolean},visibleModifiers:{}}),emits:["update:visible"],setup(o){const r=J(o,"visible"),{operationsStore:g,projectStore:s}=q(),b=T(()=>o.instances.length>1),d=T(()=>o.instances[0]),w=V({forceUpdateDependencies:!1,forceUpdateChildren:!1,destroyDependentInstances:!1,invokeDestroyTriggers:!0,deleteUnreachableResources:!1,forceDeleteState:!1,allowPartialCompositeInstanceUpdate:!1,allowPartialCompositeInstanceDestruction:!1,refresh:!1}),f=V([]),p=V(!1),n=V(null),c=V(""),l=V("");Q(()=>o.operation,()=>{$()}),Q(()=>w.value,()=>{$()},{deep:!0}),Q(()=>r.value,k=>{k&&$()});const $=async()=>{if(r.value){p.value=!0,n.value=null;try{if(o.instances.length===1){const k=await g.planInstanceOperation(o.operation,d.value,w.value);f.value=k}else{const k=await g.planMultipleInstancesOperation(o.operation,o.instances,w.value);f.value=k}}catch(k){console.error("Failed to load operation plan:",k),n.value=k instanceof Error?k.message:"Unknown error"}finally{p.value=!1}}},U=T(()=>f.value.reduce((k,y)=>k+y.instances.length,0)),h=T(()=>{switch(o.operation){case"update":return"Update";case"preview":return"Preview";case"refresh":return"Refresh";case"destroy":return"Destroy";case"recreate":return"Recreate";default:return"Unknown operation"}}),S=T(()=>U.value===0?h.value:`${h.value} ${U.value} instance${U.value===1?"":"s"}`),m=T(()=>{switch(o.operation){case"update":return"primary";case"preview":return"secondary";case"refresh":return"info";case"destroy":return"error";case"recreate":return"warning";default:return"primary"}}),P=V(!1),L=async()=>{P.value=!0;try{await g.launchOperation({projectId:s.projectId,type:o.operation,instanceIds:o.instances.map(k=>k.id),options:w.value,meta:{title:c.value||void 0,description:l.value||void 0}}),r.value=!1}finally{P.value=!1}},H=T(()=>b.value?`${h.value} ${o.instances.length} instances`:o.component?`${h.value} ${o.component.meta.title} "${d.value.name}"`:`${h.value} "${d.value.name}"`);return(k,y)=>(u(),C(re,{modelValue:r.value,"onUpdate:modelValue":y[4]||(y[4]=A=>r.value=A),"max-width":"1200px",class:"operation-dialog"},{default:a(()=>[t(G,{title:e(H),color:k.component?.meta.color??"#2d2d2d",class:"operation-card"},{prepend:a(()=>[k.component&&!e(b)?(u(),C(e(Ze),{key:0,meta:k.component.meta},null,8,["meta"])):e(b)?(u(),C(K,{key:1},{default:a(()=>y[5]||(y[5]=[D("mdi-format-list-bulleted")])),_:1,__:[5]})):(u(),C(K,{key:2},{default:a(()=>y[6]||(y[6]=[D("mdi-cube-outline")])),_:1,__:[6]}))]),default:a(()=>[t(ee,{class:"operation-card-content"},{default:a(()=>[t(Le,{fluid:"",class:"pa-0 fill-height"},{default:a(()=>[t(Ne,{"no-gutters":"",class:"fill-height"},{default:a(()=>[t(pe,{cols:"12",md:"5",class:"pr-md-4 column-container"},{default:a(()=>[M("div",lt,[y[7]||(y[7]=M("div",{class:"text-overline mb-2"},"Metadata",-1)),t(Ae,{modelValue:e(c),"onUpdate:modelValue":y[0]||(y[0]=A=>W(c)?c.value=A:null),label:"Title",variant:"outlined",density:"compact",class:"mb-3",hint:"A descriptive title for this operation (optional)","persistent-hint":""},null,8,["modelValue"]),t(Ee,{modelValue:e(l),"onUpdate:modelValue":y[1]||(y[1]=A=>W(l)?l.value=A:null),label:"Description",variant:"outlined",density:"compact",rows:"2",hint:"Describe the purpose of this operation (optional)","persistent-hint":""},null,8,["modelValue"])]),t(X,{class:"my-4"}),M("div",it,[y[10]||(y[10]=M("div",{class:"text-overline mb-2"},"Options",-1)),M("p",rt,[y[8]||(y[8]=D(" Configure how the ")),M("b",null,E(k.operation),1),y[9]||(y[9]=D(" operation should be executed. These options control the behavior and scope of the operation. "))])]),M("div",ut,[t(ot,{options:e(w),"onUpdate:options":y[2]||(y[2]=A=>W(w)?w.value=A:null),operation:k.operation},null,8,["options","operation"])])]),_:1}),t(X,{vertical:"",class:"d-none d-md-flex"}),t(pe,{cols:"12",md:"7",class:"pl-md-4 column-container"},{default:a(()=>[M("div",dt,[y[11]||(y[11]=M("div",{class:"text-overline mb-2"},"Execution Plan",-1)),y[12]||(y[12]=M("p",{class:"text-body-2 text-medium-emphasis mb-4"}," Preview of instances that will be affected by this operation. The plan shows the execution phases and which instances will be processed. ",-1)),e(n)?(u(),C(ce,{key:0,type:"error",variant:"outlined",density:"compact",class:"mb-3"},{default:a(()=>[D(" Failed to load operation plan: "+E(e(n)),1)]),_:1})):x("",!0)]),M("div",ct,[t(nt,{phases:e(f)},null,8,["phases"])])]),_:1})]),_:1})]),_:1})]),_:1}),t(ue,null,{default:a(()=>[t(de),t(Z,{onClick:y[3]||(y[3]=A=>r.value=!1)},{default:a(()=>y[13]||(y[13]=[D("Cancel")])),_:1,__:[13]}),t(Z,{color:e(m),loading:e(P),disabled:e(p),onClick:L},{default:a(()=>[D(E(e(S)),1)]),_:1},8,["color","loading","disabled"])]),_:1})]),_:1},8,["title","color"])]),_:1},8,["modelValue"]))}}),mt=fe(pt,[["__scopeId","data-v-a62561c9"]]),vt=R({__name:"ForgetInstanceStateDialog",props:Y({instance:{},component:{}},{visible:{type:Boolean},visibleModifiers:{}}),emits:["update:visible"],setup(o){const r=J(o,"visible"),{stateStore:g}=q(),s=V(!1),b=V(!1),d=V(!1),w=async()=>{s.value=!0;try{await g.forgetInstanceState(o.instance.id,b.value,d.value),r.value=!1}finally{s.value=!1}},f=T(()=>`Forget state of ${o.component.meta.title} "${o.instance.name}"`);return(p,n)=>(u(),C(re,{modelValue:r.value,"onUpdate:modelValue":n[3]||(n[3]=c=>r.value=c),"max-width":"600px"},{default:a(()=>[t(G,{title:e(f),color:"#2d2d2d"},{default:a(()=>[t(ee,null,{default:a(()=>[n[5]||(n[5]=M("div",null," Are you sure you want to forget the state of this instance including Pulumi state? ",-1)),t(ie,{modelValue:e(b),"onUpdate:modelValue":n[0]||(n[0]=c=>W(b)?b.value=c:null),label:"Delete all secrets associated with this instance",density:"compact","hide-details":""},null,8,["modelValue"]),t(ie,{modelValue:e(d),"onUpdate:modelValue":n[1]||(n[1]=c=>W(d)?d.value=c:null),label:"Clear all terminal data associated with this instance",density:"compact","hide-details":""},null,8,["modelValue"]),t(ce,{density:"compact",type:"warning",variant:"outlined",class:"mt-4"},{default:a(()=>n[4]||(n[4]=[M("div",null," No destroy operation will be performed, so all resources will be left in place and unreachable by HighState. ",-1),M("div",null," You should only use this operation when the instance is unreachable/unrecoverable and you want to start from scratch. ",-1)])),_:1,__:[4]})]),_:1,__:[5]}),t(ue,null,{default:a(()=>[t(de),t(Z,{onClick:n[2]||(n[2]=c=>r.value=!1)},{default:a(()=>n[6]||(n[6]=[D("Cancel")])),_:1,__:[6]}),t(Z,{loading:e(s),onClick:w},{default:a(()=>n[7]||(n[7]=[D("Forget State")])),_:1,__:[7]},8,["loading"])]),_:1})]),_:1},8,["title"])]),_:1},8,["modelValue"]))}}),ft={class:"session-list-cointainer"},yt=R({__name:"TerminalListSubmenu",props:Y({instanceId:{},terminalIds:{}},{visible:{type:Boolean},visibleModifiers:{}}),emits:["update:visible"],setup(o){const{instancesStore:r,stateStore:g}=q(),{state:s,execute:b,isLoading:d}=g.getTerminalsState(T(()=>o.terminalIds)),{state:w,execute:f,isLoading:p}=r.getTerminalSessionsState(T(()=>o.instanceId)),n=J(o,"visible");Q(n,h=>{h&&(f(),b())});const c=h=>h.finishedAt?`Finished at ${new Date(h.finishedAt).toLocaleString()}`:`Started at ${new Date(h.startedAt).toLocaleString()}`,l=h=>{const S=Re();return h.finishedAt?"#9E9E9E":S.current.value.colors.success},$=V(null),U=async h=>{$.value=h;try{await r.openTerminal(h,!0)}finally{$.value=null}};return(h,S)=>(u(),C(e(z),{icon:"mdi-console",title:"Terminals"},{append:a(()=>[t(K,{icon:"mdi-menu-right",size:"x-small"})]),default:a(()=>[t(Ie,{modelValue:n.value,"onUpdate:modelValue":S[0]||(S[0]=m=>n.value=m),"open-on-focus":!1,"open-on-hover":"","close-on-content-click":!1,submenu:"",activator:"parent"},{default:a(()=>[t(Ce,{density:"compact",variant:"text"},{default:a(()=>[t(oe,{class:"text-overline"},{default:a(()=>S[1]||(S[1]=[D("Available Terminals")])),_:1,__:[1]}),(u(!0),B(j,null,_(e(s),m=>(u(),C(e(z),{key:m.id,disabled:!!e($),title:m.meta.title,subtitle:m.meta.description,"custom-icon":m.meta.icon,loading:e($)===m.id,icon:"mdi-console",onClick:P=>U(m.id)},null,8,["disabled","title","subtitle","custom-icon","loading","onClick"]))),128)),t(X,{class:"mt-2 mb-2"}),t(oe,{class:"text-overline"},{default:a(()=>S[2]||(S[2]=[D("Sessions")])),_:1,__:[2]}),M("div",ft,[(u(!0),B(j,null,_(e(w),m=>(u(),C(e(z),{key:m.id,title:m.meta.title,subtitle:c(m),"custom-icon":m.meta.icon,icon:"mdi-console",color:l(m),onClick:P=>e(r).openTerminalSession(m)},null,8,["title","subtitle","custom-icon","color","onClick"]))),128))]),e(w).length===0?(u(),C(oe,{key:0,class:"text-disabled"},{default:a(()=>S[3]||(S[3]=[D(" No sessions found ")])),_:1,__:[3]})):x("",!0)]),_:1})]),_:1},8,["modelValue"])]),_:1}))}}),bt=fe(yt,[["__scopeId","data-v-04b76a7d"]]),gt=R({__name:"InstanceContextMenu",props:{instance:{},component:{},state:{},stores:{},operation:{},locked:{type:Boolean},editable:{type:Boolean}},setup(o,{expose:r}){const{projectStore:g,stateStore:s,operationsStore:b}=o.stores,d=ye(),{selection:w}=be(),f=V(!1),p=V(!1),n=V("update"),c=V([]),l=V(!1),$=T(()=>w.selectedInstances.length>1&&w.selectedInstances.some(v=>v.id===o.instance.id)?w.selectedInstances:[o.instance]),U=T(()=>$.value.length>1),h=(i,v)=>{const I=Te(i?.lastOperationState?.status);switch(v){case"update":return!I;case"refresh":return se(i)&&!I;case"preview":return!I;case"recreate":case"destroy":return se(i)&&!I;default:return!1}},S=i=>$.value.some(v=>{const I=s.instanceStates.get(v.id);return h(I,i)}),m=i=>$.value.every(v=>{const I=s.instanceStates.get(v.id);return h(I,i)}),P=T(()=>$.value.some(i=>{const v=s.instanceStates.get(i.id);return se(v)})),L=i=>{const v=$.value.length;return v===1?i==="update"?P.value?"Update":"Create":i.charAt(0).toUpperCase()+i.slice(1):i==="update"?`${P.value?"Update":"Create"} selected (${v})`:`${i.charAt(0).toUpperCase()+i.slice(1)} selected (${v})`},H=i=>{if(U.value)return"mdi-format-list-bulleted";switch(i){case"update":return P.value?"mdi-play":"mdi-rocket-launch";case"refresh":return"mdi-reload";case"preview":return"mdi-eye";case"recreate":return"mdi-restart";case"destroy":return"mdi-stop";default:return"mdi-play"}},k=i=>{n.value=i,c.value=$.value,p.value=!0,f.value=!1},y=te("contextMenu"),A=async i=>{y.value&&await y.value.showContextMenu(i)},ne=async()=>{if($.value.length===1){const i=await b.launchInstanceOperation("preview",o.instance);f.value=!1,await d.openLogsPanel(g.projectId,i.id,o.instance.id)}else k("preview")};return r({showContextMenu:A}),(i,v)=>(u(),B(j,null,[t(e(Se),{ref_key:"contextMenu",ref:y,visible:e(f),"onUpdate:visible":v[7]||(v[7]=I=>W(f)?f.value=I:null),title:"Instance",subtitle:i.instance.id,"is-deletable":I=>i.stores.stateStore.isNodeDeletable(I)},{default:a(()=>[S("update")?(u(),C(e(z),{key:0,title:L("update"),icon:H("update"),color:"primary",disabled:i.locked||!m("update"),onClick:v[0]||(v[0]=I=>k("update"))},null,8,["title","icon","disabled"])):x("",!0),S("refresh")?(u(),C(e(z),{key:1,title:L("refresh"),icon:H("refresh"),color:"primary",disabled:i.locked||!m("refresh"),onClick:v[1]||(v[1]=I=>k("refresh"))},null,8,["title","icon","disabled"])):x("",!0),S("preview")?(u(),C(e(z),{key:2,title:L("preview"),icon:H("preview"),color:"secondary",disabled:i.locked||!m("preview"),onClick:ne},null,8,["title","icon","disabled"])):x("",!0),i.state?.lastOperationState?(u(),B(j,{key:3},[t(X),t(e(z),{title:"Open Logs",icon:"mdi-text",color:"primary",onClick:v[2]||(v[2]=I=>e(s).openInstanceLogs(i.instance))})],64)):x("",!0),t(X),t(e(z),{title:"View in Settings",icon:"mdi-cog",color:"primary",onClick:v[3]||(v[3]=()=>{const I=e(s).getInstanceState(i.instance.id);I&&("navigateTo"in i?i.navigateTo:e($e))({name:"settings.instance-details",params:{projectId:e(g).projectId,stateId:I.id}}),f.value=!1})}),i.state?.terminalIds?.length?(u(),B(j,{key:4},[t(X),t(bt,{"instance-id":i.instance.id,"terminal-ids":i.state.terminalIds},null,8,["instance-id","terminal-ids"])],64)):x("",!0),e(P)?(u(),B(j,{key:5},[t(X),S("recreate")?(u(),C(e(z),{key:0,title:L("recreate"),icon:H("recreate"),color:"warning",disabled:i.locked||!m("recreate"),onClick:v[4]||(v[4]=I=>k("recreate"))},null,8,["title","icon","disabled"])):x("",!0),S("destroy")?(u(),C(e(z),{key:1,title:L("destroy"),icon:H("destroy"),color:"error",disabled:i.locked||!m("destroy"),onClick:v[5]||(v[5]=I=>k("destroy"))},null,8,["title","icon","disabled"])):x("",!0),e(U)?x("",!0):(u(),C(e(z),{key:2,title:"Forget State",icon:"mdi-delete-forever",color:"error",disabled:i.locked,onClick:v[6]||(v[6]=I=>l.value=!0)},null,8,["disabled"]))],64)):x("",!0)]),_:1},8,["visible","subtitle","is-deletable"]),t(mt,{visible:e(p),"onUpdate:visible":v[8]||(v[8]=I=>W(p)?p.value=I:null),operation:e(n),instances:e(c),component:i.component},null,8,["visible","operation","instances","component"]),t(vt,{visible:e(l),"onUpdate:visible":v[9]||(v[9]=I=>W(l)?l.value=I:null),instance:i.instance,component:i.component},null,8,["visible","instance","component"])],64))}}),Ot=R({__name:"InstanceNodeWrapper",props:{id:{},type:{},selected:{type:Boolean},connectable:{type:[Boolean,Number,String,Function]},position:{},dimensions:{},label:{},isValidTargetPos:{type:Function},isValidSourcePos:{type:Function},parent:{},parentNodeId:{},dragging:{type:Boolean},resizing:{type:Boolean},zIndex:{},targetPosition:{},sourcePosition:{},dragHandle:{},data:{},events:{}},setup(o){const r=q(),g=ye(),{projectStore:s,stateStore:b,instancesStore:d,libraryStore:w,operationsStore:f,validationStore:p}=r,n=T(()=>o.data.instance),c=T(()=>w.library.components[n.value.type]),l=T(()=>b.instanceStates.get(n.value.id)),$=T(()=>l.value&&b.instanceLocks.get(l.value.id)),U=T(()=>f.getLastInstanceOperation(n.value.id)),h=V(!1),S=V(!1),m=V(),P=V([]),L=V(!1),H=V(!1),k=V({}),y=async()=>{h.value=!0;try{if(!l.value?.pageIds)return;const N=l.value.pageIds;if(!N.length)return;const O=await b.getPage(N[0]);if(!O)return;P.value=O.content,m.value=O.meta,S.value=!0}finally{h.value=!1}},A=V(!1),ne=async()=>{A.value=!0;try{if(!l.value?.terminalIds||l.value.terminalIds.length===0)return;await d.openTerminal(l.value.terminalIds[0])}finally{A.value=!1}},i=async()=>{H.value=!0;try{if(!l.value)return;const N=await r.stateStore.getInstanceSecrets(l.value.id);k.value={...N},L.value=!0}finally{H.value=!1}},v=te("contextMenu"),I=Oe();return(N,O)=>(u(),C(qe,{"editing-secrets":e(L),"onUpdate:editingSecrets":O[2]||(O[2]=F=>W(L)?L.value=F:null),"loading-secrets":e(H),"initial-secrets":e(k),"loading-page":e(h),instance:N.data.instance,component:e(c),entities:e(w).library.entities,"input-resolver-outputs":e(d).inputResolverOutputs,"input-resolver-dependent-map":e(d).inputResolverDependentMap,"is-valid-connection":F=>("validateConnection"in N?N.validateConnection:e(xe))(e(I),e(w).library,F),"instance-lock":e($),state:e(l),editable:N.data.editable,stores:("markRaw"in N?N.markRaw:e(ze))(e(r)),"workspace-store":e(g),"all-instances":e(d).instances,"onSave:args":O[3]||(O[3]=(F,ae,Ve)=>e(d).updateInstance(F,ae,Ve)),"onSave:secrets":O[4]||(O[4]=(F,ae)=>e(b).updateInstanceSecrets(F,ae)),"onOpen:secrets":i,"onOpen:terminal":ne,"onOperation:launch":O[5]||(O[5]=F=>e(f).launchInstanceOperation(F,N.data.instance)),"onOperation:cancel":O[6]||(O[6]=F=>e(f).cancelInstanceOperation(e(l).lastOperationState.operationId,N.data.instance.id)),onContextmenu:O[7]||(O[7]=F=>e(v)?.showContextMenu(F)),"onOpen:composite":O[8]||(O[8]=F=>e(g).openCompositeInstancePanel(e(s).projectId,e(l).id)),"onOpen:page":y},{status:a(()=>[t(e(Je),{state:e(l),operation:e(U),"expected-input-hash":e(b).inputHashOutputs.get(e(n).id)?.inputHash,"validation-output":e(p).validationOutputs.get(e(n).id)},null,8,["state","operation","expected-input-hash","validation-output"])]),default:a(()=>[t(e(gt),{ref_key:"contextMenu",ref:v,stores:e(r),instance:e(n),component:e(c),state:e(l),editable:N.data.editable,locked:!!e($)},null,8,["stores","instance","component","state","editable","locked"]),e(m)?(u(),C(e(Qe),{key:0,visible:e(S),"onUpdate:visible":O[0]||(O[0]=F=>W(S)?S.value=F:null),meta:e(m),content:e(P),onClose:O[1]||(O[1]=F=>S.value=!1)},null,8,["visible","meta","content"])):x("",!0)]),_:1},8,["editing-secrets","loading-secrets","initial-secrets","loading-page","instance","component","entities","input-resolver-outputs","input-resolver-dependent-map","is-valid-connection","instance-lock","state","editable","stores","workspace-store","all-instances"]))}}),Se=R({__name:"NodeContextMenu",props:Y({title:{},subtitle:{},isDeletable:{type:Function}},{visible:{type:Boolean,default:!1},visibleModifiers:{}}),emits:["update:visible"],setup(o,{expose:r}){const{selection:g,vueFlowStore:s,deleteNodes:b}=be(),d=J(o,"visible"),w=V(0),f=V(0),p=De(),n=te("contextMenu"),{isOutside:c}=Pe(n),l=async m=>{m.preventDefault(),d.value=!1,w.value=m.clientX,f.value=m.clientY,await We(),d.value=!0},$=()=>{c.value&&(d.value=!1)};je(()=>{window.addEventListener("mousedown",$)});const{off:U}=s.onViewportChange(()=>{d.value=!1});He(()=>{window.removeEventListener("mousedown",$),U(),d.value=!1}),r({showContextMenu:l});const h=T(()=>o.isDeletable(p.node)?g.selectedNodeIds.has(p.id)?Array.from(g.selectedNodes).filter(o.isDeletable):[p.node]:[]),S=T(()=>h.value.length===1?"Delete":`Delete selected (${h.value.length})`);return(m,P)=>(u(),C(Ie,{modelValue:d.value,"onUpdate:modelValue":P[1]||(P[1]=L=>d.value=L),target:[e(w),e(f)],location:"end","close-on-content-click":!1},{default:a(()=>[t(Ce,{ref_key:"contextMenu",ref:n,density:"compact",variant:"text",style:{"padding-bottom":"0"}},{default:a(()=>[t(ge,{class:"mb-2"},{default:a(()=>[t(he,null,{default:a(()=>[D(E(m.title),1)]),_:1}),t(we,{class:"d-flex align-center",style:{"font-family":"monospace"}},{default:a(()=>[D(E(m.subtitle)+" ",1),t(Ye,{content:m.subtitle},null,8,["content"])]),_:1})]),_:1}),m.$slots.default?(u(),B(j,{key:0},[t(X),le(m.$slots,"default")],64)):x("",!0),e(h).length>0?(u(),B(j,{key:1},[t(X),t(z,{title:e(S),icon:"mdi-delete",color:"error",onClick:P[0]||(P[0]=L=>e(b)(e(h)))},null,8,["title"])],64)):x("",!0)]),_:3},512)]),_:3},8,["modelValue","target"]))}});export{$t as _,Tt as a,Ot as b,gt as c};
@@ -1 +0,0 @@
1
- {"id":"c89eb61d-80e1-4ca1-b13e-521c420f664e","timestamp":1757650609788,"matcher":{"static":{},"wildcard":{},"dynamic":{}},"prerendered":[]}