PageSourceSearch

https://www.lighthouseacademy.ai/_next/static/chunks/3912.77cfb317f0233052.js

js lighthouseacademy.ai collected 2026-10-04 23:39:09 UTC 11,680 bytes, 1 lines download raw bytes

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

Line numbers count LF bytes from the start of the resource, as the search results do. Vendor segments are library code the classifier recognised; they are stored but not indexed. Bytes are shown as Latin1 characters, one per byte.