UNPKG

@asyncapi/studio

Version:

One place that allows you to develop an AsyncAPI document, validate it, convert it to the latest version, preview the documentation and visualize the events flow.

1 lines 11.3 kB
"use strict";exports.id=3772,exports.ids=[3772],exports.modules={84007:(e,t,n)=>{n.d(t,{Z:()=>a});var r=n(64268);let a=function(e){return(0,r.Z)(e,4)}},83772:(e,t,n)=>{n.r(t),n.d(t,{render:()=>O});var r=n(19669);n(88441);var a=n(70116),i=n(73943);n(65732),n(64890),n(63951);var d=n(51635),o=n(17605),c=n(2658),s=n(14408),l=n(84007),g=n(68858);function f(e){var t={options:{directed:e.isDirected(),multigraph:e.isMultigraph(),compound:e.isCompound()},nodes:g.Z(e.nodes(),function(t){var n=e.node(t),r=e.parent(t),a={v:t};return s.Z(n)||(a.value=n),s.Z(r)||(a.parent=r),a}),edges:g.Z(e.edges(),function(t){var n=e.edge(t),r={v:t.v,w:t.w};return s.Z(t.name)||(r.name=t.name),s.Z(n)||(r.value=n),r})};return s.Z(e.graph())||(t.value=l.Z(e.graph())),t}n(42318);var h=n(19386),p=new Map,u=new Map,w=new Map,M=(0,o.eW)(()=>{u.clear(),w.clear(),p.clear()},"clear"),v=(0,o.eW)((e,t)=>{let n=u.get(t)||[];return o.cM.trace("In isDescendant",t," ",e," = ",n.includes(e)),n.includes(e)},"isDescendant"),y=(0,o.eW)((e,t)=>{let n=u.get(t)||[];return o.cM.info("Descendants of ",t," is ",n),o.cM.info("Edge is ",e),e.v!==t&&e.w!==t&&(n?n.includes(e.v)||v(e.v,t)||v(e.w,t)||n.includes(e.w):(o.cM.debug("Tilt, ",t,",not in descendants"),!1))},"edgeInCluster"),X=(0,o.eW)((e,t,n,r)=>{o.cM.warn("Copying children of ",e,"root",r,"data",t.node(e),r);let a=t.children(e)||[];e!==r&&a.push(e),o.cM.warn("Copying (nodes) clusterId",e,"nodes",a),a.forEach(a=>{if(t.children(a).length>0)X(a,t,n,r);else{let i=t.node(a);o.cM.info("cp ",a," to ",r," with parent ",e),n.setNode(a,i),r!==t.parent(a)&&(o.cM.warn("Setting parent",a,t.parent(a)),n.setParent(a,t.parent(a))),e!==r&&a!==e?(o.cM.debug("Setting parent",a,e),n.setParent(a,e)):(o.cM.info("In copy ",e,"root",r,"data",t.node(e),r),o.cM.debug("Not Setting parent for node=",a,"cluster!==rootId",e!==r,"node!==clusterId",a!==e));let d=t.edges(a);o.cM.debug("Copying Edges",d),d.forEach(a=>{o.cM.info("Edge",a);let i=t.edge(a.v,a.w,a.name);o.cM.info("Edge data",i,r);try{y(a,r)?(o.cM.info("Copying as ",a.v,a.w,i,a.name),n.setEdge(a.v,a.w,i,a.name),o.cM.info("newGraph edges ",n.edges(),n.edge(n.edges()[0]))):o.cM.info("Skipping copy of edge ",a.v,"-->",a.w," rootId: ",r," clusterId:",e)}catch(e){o.cM.error(e)}})}o.cM.debug("Removing node",a),t.removeNode(a)})},"copy"),m=(0,o.eW)((e,t)=>{let n=t.children(e),r=[...n];for(let a of n)w.set(a,e),r=[...r,...m(a,t)];return r},"extractDescendants"),E=(0,o.eW)((e,t,n)=>{let r=e.edges().filter(e=>e.v===t||e.w===t),a=e.edges().filter(e=>e.v===n||e.w===n),i=r.map(e=>({v:e.v===t?n:e.v,w:e.w===t?t:e.w})),d=a.map(e=>({v:e.v,w:e.w}));return i.filter(e=>d.some(t=>e.v===t.v&&e.w===t.w))},"findCommonEdges"),N=(0,o.eW)((e,t,n)=>{let r;let a=t.children(e);if(o.cM.trace("Searching children of id ",e,a),a.length<1)return e;for(let e of a){let a=N(e,t,n),i=E(t,n,a);if(a){if(!(i.length>0))return a;r=a}}return r},"findNonClusterChild"),b=(0,o.eW)(e=>p.has(e)&&p.get(e).externalConnections&&p.has(e)?p.get(e).id:e,"getAnchorId"),C=(0,o.eW)((e,t)=>{if(!e||t>10){o.cM.debug("Opting out, no graph ");return}for(let t of(o.cM.debug("Opting in, graph "),e.nodes().forEach(function(t){e.children(t).length>0&&(o.cM.warn("Cluster identified",t," Replacement id in edges: ",N(t,e,t)),u.set(t,m(t,e)),p.set(t,{id:N(t,e,t),clusterData:e.node(t)}))}),e.nodes().forEach(function(t){let n=e.children(t),r=e.edges();n.length>0?(o.cM.debug("Cluster identified",t,u),r.forEach(e=>{v(e.v,t)^v(e.w,t)&&(o.cM.warn("Edge: ",e," leaves cluster ",t),o.cM.warn("Descendants of XXX ",t,": ",u.get(t)),p.get(t).externalConnections=!0)})):o.cM.debug("Not a cluster ",t,u)}),p.keys())){let n=p.get(t).id,r=e.parent(n);r!==t&&p.has(r)&&!p.get(r).externalConnections&&(p.get(t).id=r)}e.edges().forEach(function(t){let n=e.edge(t);o.cM.warn("Edge "+t.v+" -> "+t.w+": "+JSON.stringify(t)),o.cM.warn("Edge "+t.v+" -> "+t.w+": "+JSON.stringify(e.edge(t)));let r=t.v,a=t.w;if(o.cM.warn("Fix XXX",p,"ids:",t.v,t.w,"Translating: ",p.get(t.v)," --- ",p.get(t.w)),p.get(t.v)||p.get(t.w)){if(o.cM.warn("Fixing and trying - removing XXX",t.v,t.w,t.name),r=b(t.v),a=b(t.w),e.removeEdge(t.v,t.w,t.name),r!==t.v){let a=e.parent(r);p.get(a).externalConnections=!0,n.fromCluster=t.v}if(a!==t.w){let r=e.parent(a);p.get(r).externalConnections=!0,n.toCluster=t.w}o.cM.warn("Fix Replacing with XXX",r,a,t.name),e.setEdge(r,a,n,t.name)}}),o.cM.warn("Adjusted Graph",f(e)),x(e,0),o.cM.trace(p)},"adjustClustersAndEdges"),x=(0,o.eW)((e,t)=>{if(o.cM.warn("extractor - ",t,f(e),e.children("D")),t>10){o.cM.error("Bailing out");return}let n=e.nodes(),r=!1;for(let t of n){let n=e.children(t);r=r||n.length>0}if(!r){o.cM.debug("Done, no node has children",e.nodes());return}for(let r of(o.cM.debug("Nodes = ",n,t),n))if(o.cM.debug("Extracting node",r,p,p.has(r)&&!p.get(r).externalConnections,!e.parent(r),e.node(r),e.children("D")," Depth ",t),p.has(r)){if(!p.get(r).externalConnections&&e.children(r)&&e.children(r).length>0){o.cM.warn("Cluster without external connections, without a parent and with children",r,t);let n="TB"===e.graph().rankdir?"LR":"TB";p.get(r)?.clusterData?.dir&&(n=p.get(r).clusterData.dir,o.cM.warn("Fixing dir",p.get(r).clusterData.dir,n));let a=new h.k({multigraph:!0,compound:!0}).setGraph({rankdir:n,nodesep:50,ranksep:50,marginx:8,marginy:8}).setDefaultEdgeLabel(function(){return{}});o.cM.warn("Old graph before copy",f(e)),X(r,e,a,r),e.setNode(r,{clusterNode:!0,id:r,clusterData:p.get(r).clusterData,label:p.get(r).label,graph:a}),o.cM.warn("New graph after copy node: (",r,")",f(a)),o.cM.debug("Old graph after copy",f(e))}else o.cM.warn("Cluster ** ",r," **not meeting the criteria !externalConnections:",!p.get(r).externalConnections," no parent: ",!e.parent(r)," children ",e.children(r)&&e.children(r).length>0,e.children("D"),t),o.cM.debug(p)}else o.cM.debug("Not a cluster",r,t);for(let r of(n=e.nodes(),o.cM.warn("New list of nodes",n),n)){let n=e.node(r);o.cM.warn(" Now next level",r,n),n?.clusterNode&&x(n.graph,t+1)}},"extractor"),S=(0,o.eW)((e,t)=>{if(0===t.length)return[];let n=Object.assign([],t);return t.forEach(t=>{let r=e.children(t),a=S(e,r);n=[...n,...a]}),n},"sorter"),I=(0,o.eW)(e=>S(e,e.children()),"sortNodesByHierarchy"),D=(0,o.eW)(async(e,t,n,d,s,l)=>{o.cM.warn("Graph in recursive render:XAX",f(t),s);let g=t.graph().rankdir;o.cM.trace("Dir in recursive render - dir:",g);let h=e.insert("g").attr("class","root");t.nodes()?o.cM.info("Recursive render XXX",t.nodes()):o.cM.info("No nodes found for",t),t.edges().length>0&&o.cM.info("Recursive edges",t.edge(t.edges()[0]));let u=h.insert("g").attr("class","clusters"),w=h.insert("g").attr("class","edgePaths"),M=h.insert("g").attr("class","edgeLabels"),v=h.insert("g").attr("class","nodes");await Promise.all(t.nodes().map(async function(e){let r=t.node(e);if(void 0!==s){let n=JSON.parse(JSON.stringify(s.clusterData));o.cM.trace("Setting data for parent cluster XXX\n Node.id = ",e,"\n data=",n.height,"\nParent cluster",s.height),t.setNode(s.id,n),t.parent(e)||(o.cM.trace("Setting parent",e,s.id),t.setParent(e,s.id,n))}if(o.cM.info("(Insert) Node XXX"+e+": "+JSON.stringify(t.node(e))),r?.clusterNode){o.cM.info("Cluster identified XBX",e,r.width,t.node(e));let{ranksep:i,nodesep:c}=t.graph();r.graph.setGraph({...r.graph.graph(),ranksep:i+25,nodesep:c});let s=await D(v,r.graph,n,d,t.node(e),l),g=s.elem;(0,a.jr)(r,g),r.diff=s.diff||0,o.cM.info("New compound node after recursive render XAX",e,"width",r.width,"height",r.height),(0,a.Yn)(g,r)}else t.children(e).length>0?(o.cM.trace("Cluster - the non recursive path XBX",e,r.id,r,r.width,"Graph:",t),o.cM.trace(N(r.id,t)),p.set(r.id,{id:N(r.id,t),node:r})):(o.cM.trace("Node - the non recursive path XAX",e,v,t.node(e),g),await (0,a.Lf)(v,t.node(e),{config:l,dir:g}))}));let y=(0,o.eW)(async()=>{let e=t.edges().map(async function(e){let n=t.edge(e.v,e.w,e.name);o.cM.info("Edge "+e.v+" -> "+e.w+": "+JSON.stringify(e)),o.cM.info("Edge "+e.v+" -> "+e.w+": ",e," ",JSON.stringify(t.edge(e))),o.cM.info("Fix",p,"ids:",e.v,e.w,"Translating: ",p.get(e.v),p.get(e.w)),await (0,r.I_)(M,n)});await Promise.all(e)},"processEdges");await y(),o.cM.info("Graph before layout:",JSON.stringify(f(t))),o.cM.info("############################################# XXX"),o.cM.info("### Layout ### XXX"),o.cM.info("############################################# XXX"),(0,c.bK)(t),o.cM.info("Graph after layout:",JSON.stringify(f(t)));let X=0,{subGraphTitleTotalMargin:m}=(0,i.L)(l);return await Promise.all(I(t).map(async function(e){let n=t.node(e);if(o.cM.info("Position XBX => "+e+": ("+n.x,","+n.y,") width: ",n.width," height: ",n.height),n?.clusterNode)n.y+=m,o.cM.info("A tainted cluster node XBX1",e,n.id,n.width,n.height,n.x,n.y,t.parent(e)),p.get(n.id).node=n,(0,a.aH)(n);else if(t.children(e).length>0){o.cM.info("A pure cluster node XBX1",e,n.id,n.x,n.y,n.width,n.height,t.parent(e)),n.height+=m,t.node(n.parentId);let r=n?.padding/2||0,i=n?.labelBBox?.height||0;o.cM.debug("OffsetY",i-r||0,"labelHeight",i,"halfPadding",r),await (0,a.us)(u,n),p.get(n.id).node=n}else{let e=t.node(n.parentId);n.y+=m/2,o.cM.info("A regular node XBX1 - using the padding",n.id,"parent",n.parentId,n.width,n.height,n.x,n.y,"offsetY",n.offsetY,"parent",e,e?.offsetY,n),(0,a.aH)(n)}})),t.edges().forEach(function(e){let a=t.edge(e);o.cM.info("Edge "+e.v+" -> "+e.w+": "+JSON.stringify(a),a),a.points.forEach(e=>e.y+=m/2);let i=t.node(e.v);var c=t.node(e.w);let s=(0,r.QP)(w,a,p,n,i,c,d);(0,r.Jj)(a,s)}),t.nodes().forEach(function(e){let n=t.node(e);o.cM.info(e,n.type,n.diff),n.isGroup&&(X=n.diff)}),o.cM.warn("Returning from recursive render XAX",h,X),{elem:h,diff:X}},"recursiveRender"),O=(0,o.eW)(async(e,t)=>{let n=new h.k({multigraph:!0,compound:!0}).setGraph({rankdir:e.direction,nodesep:e.config?.nodeSpacing||e.config?.flowchart?.nodeSpacing||e.nodeSpacing,ranksep:e.config?.rankSpacing||e.config?.flowchart?.rankSpacing||e.rankSpacing,marginx:8,marginy:8}).setDefaultEdgeLabel(function(){return{}}),i=t.select("g");(0,r.DQ)(i,e.markers,e.type,e.diagramId),(0,a.gU)(),(0,r.ZH)(),(0,a.ZH)(),M(),e.nodes.forEach(e=>{n.setNode(e.id,{...e}),e.parentId&&n.setParent(e.id,e.parentId)}),o.cM.debug("Edges:",e.edges),e.edges.forEach(e=>{if(e.start===e.end){let t=e.start,r=t+"---"+t+"---1",a=t+"---"+t+"---2",i=n.node(t);n.setNode(r,{domId:r,id:r,parentId:i.parentId,labelStyle:"",label:"",padding:0,shape:"labelRect",style:"",width:10,height:10}),n.setParent(r,i.parentId),n.setNode(a,{domId:a,id:a,parentId:i.parentId,labelStyle:"",padding:0,shape:"labelRect",label:"",style:"",width:10,height:10}),n.setParent(a,i.parentId);let d=structuredClone(e),o=structuredClone(e),c=structuredClone(e);d.label="",d.arrowTypeEnd="none",d.id=t+"-cyclic-special-1",o.arrowTypeStart="none",o.arrowTypeEnd="none",o.id=t+"-cyclic-special-mid",c.label="",i.isGroup&&(d.fromCluster=t,c.toCluster=t),c.id=t+"-cyclic-special-2",c.arrowTypeStart="none",n.setEdge(t,r,d,t+"-cyclic-special-0"),n.setEdge(r,a,o,t+"-cyclic-special-1"),n.setEdge(a,t,c,t+"-cyc<lic-special-2")}else n.setEdge(e.start,e.end,{...e},e.id)}),o.cM.warn("Graph at first:",JSON.stringify(f(n))),C(n),o.cM.warn("Graph after XAX:",JSON.stringify(f(n)));let c=(0,d.nV)();await D(i,n,e.type,e.diagramId,void 0,c)},"render")}};