added labs recap, http stuff, oak routing and middleware

This commit is contained in:
khannurien
2026-01-28 21:12:03 +00:00
parent 210c044ed6
commit 9730dbe550
21 changed files with 1119 additions and 2570 deletions

View File

@@ -1,45 +0,0 @@
<mxfile host="Electron" agent="Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) draw.io/28.2.5 Chrome/138.0.7204.251 Electron/37.6.1 Safari/537.36" version="28.2.5" pages="2">
<diagram name="Page-1" id="WE2OBRBfjwrgRAvIH2Xi">
<mxGraphModel dx="1106" dy="963" grid="1" gridSize="10" guides="1" tooltips="1" connect="1" arrows="1" fold="1" page="1" pageScale="1" pageWidth="827" pageHeight="1169" math="0" shadow="0">
<root>
<mxCell id="0" />
<mxCell id="1" parent="0" />
<mxCell id="njQ_imjs8zr5ET9f7Rwc-4" value="réponse HTTP" style="edgeStyle=orthogonalEdgeStyle;rounded=0;orthogonalLoop=1;jettySize=auto;html=1;exitX=0.5;exitY=1;exitDx=0;exitDy=0;entryX=0.5;entryY=1;entryDx=0;entryDy=0;" edge="1" parent="1" source="njQ_imjs8zr5ET9f7Rwc-1" target="njQ_imjs8zr5ET9f7Rwc-2">
<mxGeometry relative="1" as="geometry" />
</mxCell>
<mxCell id="njQ_imjs8zr5ET9f7Rwc-5" value="WebSocket" style="edgeStyle=orthogonalEdgeStyle;rounded=0;orthogonalLoop=1;jettySize=auto;html=1;exitX=1;exitY=0.5;exitDx=0;exitDy=0;entryX=0;entryY=0.5;entryDx=0;entryDy=0;startArrow=classic;startFill=1;" edge="1" parent="1" source="njQ_imjs8zr5ET9f7Rwc-1" target="njQ_imjs8zr5ET9f7Rwc-2">
<mxGeometry relative="1" as="geometry" />
</mxCell>
<mxCell id="njQ_imjs8zr5ET9f7Rwc-1" value="Serveur web (Deno)" style="shape=process;whiteSpace=wrap;html=1;backgroundOutline=1;" vertex="1" parent="1">
<mxGeometry x="130" y="410" width="120" height="60" as="geometry" />
</mxCell>
<mxCell id="njQ_imjs8zr5ET9f7Rwc-3" value="requête HTTP" style="edgeStyle=orthogonalEdgeStyle;rounded=0;orthogonalLoop=1;jettySize=auto;html=1;exitX=0.5;exitY=0;exitDx=0;exitDy=0;entryX=0.5;entryY=0;entryDx=0;entryDy=0;" edge="1" parent="1" source="njQ_imjs8zr5ET9f7Rwc-2" target="njQ_imjs8zr5ET9f7Rwc-1">
<mxGeometry relative="1" as="geometry" />
</mxCell>
<mxCell id="njQ_imjs8zr5ET9f7Rwc-2" value="Client web (navigateur)" style="shape=process;whiteSpace=wrap;html=1;backgroundOutline=1;" vertex="1" parent="1">
<mxGeometry x="520" y="410" width="120" height="60" as="geometry" />
</mxCell>
<mxCell id="1ptE3tQJX40rlnvv1j5o-1" value="Application client&lt;div&gt;HTML, CSS, TypeScript&lt;/div&gt;" style="ellipse;whiteSpace=wrap;html=1;" vertex="1" parent="1">
<mxGeometry x="630" y="290" width="120" height="80" as="geometry" />
</mxCell>
<mxCell id="1ptE3tQJX40rlnvv1j5o-2" value="Application serveur&lt;div&gt;Deno, Oak&lt;/div&gt;" style="ellipse;whiteSpace=wrap;html=1;" vertex="1" parent="1">
<mxGeometry x="70" y="280" width="120" height="80" as="geometry" />
</mxCell>
<mxCell id="1ptE3tQJX40rlnvv1j5o-3" value="Base de données" style="shape=cylinder3;whiteSpace=wrap;html=1;boundedLbl=1;backgroundOutline=1;size=15;" vertex="1" parent="1">
<mxGeometry x="240" y="270" width="60" height="80" as="geometry" />
</mxCell>
<mxCell id="1ptE3tQJX40rlnvv1j5o-4" value="Cache" style="shape=cylinder3;whiteSpace=wrap;html=1;boundedLbl=1;backgroundOutline=1;size=15;" vertex="1" parent="1">
<mxGeometry x="384" y="270" width="60" height="80" as="geometry" />
</mxCell>
</root>
</mxGraphModel>
</diagram>
<diagram id="wkPXxGK0bhSZwc4x9mIX" name="Page-2">
<mxGraphModel grid="1" page="1" gridSize="10" guides="1" tooltips="1" connect="1" arrows="1" fold="1" pageScale="1" pageWidth="827" pageHeight="1169" math="0" shadow="0">
<root>
<mxCell id="0" />
<mxCell id="1" parent="0" />
</root>
</mxGraphModel>
</diagram>
</mxfile>

View File

@@ -1,82 +0,0 @@
<mxfile host="Electron" agent="Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) draw.io/28.2.5 Chrome/138.0.7204.251 Electron/37.6.1 Safari/537.36" version="28.2.5">
<diagram name="Page-1" id="o2Z0k-pMrQSQu8LE0CHS">
<mxGraphModel dx="2066" dy="1235" grid="1" gridSize="10" guides="1" tooltips="1" connect="1" arrows="1" fold="1" page="1" pageScale="1" pageWidth="827" pageHeight="1169" math="0" shadow="0">
<root>
<mxCell id="0" />
<mxCell id="1" parent="0" />
<mxCell id="I0g5zxyyZJP6Qi3c9r4H-2" value="" style="html=1;shadow=0;dashed=0;align=center;verticalAlign=middle;shape=mxgraph.arrows2.uTurnArrow;dy=11;arrowHead=43;dx2=25;fontFamily=Lucida Console;" vertex="1" parent="1">
<mxGeometry x="380" y="360" width="310" height="300" as="geometry" />
</mxCell>
<mxCell id="I0g5zxyyZJP6Qi3c9r4H-10" value="Register callback" style="edgeStyle=orthogonalEdgeStyle;rounded=0;orthogonalLoop=1;jettySize=auto;html=1;exitX=0;exitY=0;exitDx=144.75;exitDy=300;exitPerimeter=0;entryX=0.25;entryY=0;entryDx=0;entryDy=0;fontFamily=Lucida Console;" edge="1" parent="1" source="I0g5zxyyZJP6Qi3c9r4H-3" target="I0g5zxyyZJP6Qi3c9r4H-6">
<mxGeometry relative="1" as="geometry" />
</mxCell>
<mxCell id="I0g5zxyyZJP6Qi3c9r4H-3" value="" style="html=1;shadow=0;dashed=0;align=center;verticalAlign=middle;shape=mxgraph.arrows2.uTurnArrow;dy=11;arrowHead=43;dx2=25;flipV=1;flipH=1;fontFamily=Lucida Console;" vertex="1" parent="1">
<mxGeometry x="570" y="370" width="310" height="300" as="geometry" />
</mxCell>
<mxCell id="I0g5zxyyZJP6Qi3c9r4H-4" value="Event Loop" style="text;html=1;align=center;verticalAlign=middle;whiteSpace=wrap;rounded=0;fontFamily=Lucida Console;fontSize=48;" vertex="1" parent="1">
<mxGeometry x="480" y="450" width="300" height="70" as="geometry" />
</mxCell>
<mxCell id="I0g5zxyyZJP6Qi3c9r4H-5" value="&lt;span style=&quot;&quot;&gt;&lt;font style=&quot;font-size: 24px;&quot;&gt;(1 thread)&lt;/font&gt;&lt;/span&gt;" style="text;html=1;align=center;verticalAlign=middle;whiteSpace=wrap;rounded=0;fontFamily=Lucida Console;" vertex="1" parent="1">
<mxGeometry x="530" y="540" width="200" height="30" as="geometry" />
</mxCell>
<mxCell id="I0g5zxyyZJP6Qi3c9r4H-18" style="edgeStyle=orthogonalEdgeStyle;rounded=0;orthogonalLoop=1;jettySize=auto;html=1;exitX=1;exitY=0.5;exitDx=0;exitDy=0;entryX=0;entryY=0.5;entryDx=0;entryDy=0;startArrow=classic;startFill=1;fontFamily=Lucida Console;" edge="1" parent="1" source="I0g5zxyyZJP6Qi3c9r4H-6" target="I0g5zxyyZJP6Qi3c9r4H-12">
<mxGeometry relative="1" as="geometry" />
</mxCell>
<mxCell id="I0g5zxyyZJP6Qi3c9r4H-36" style="edgeStyle=orthogonalEdgeStyle;rounded=0;orthogonalLoop=1;jettySize=auto;html=1;exitX=1;exitY=0.5;exitDx=0;exitDy=0;entryX=0;entryY=0.5;entryDx=0;entryDy=0;" edge="1" parent="1" source="I0g5zxyyZJP6Qi3c9r4H-6" target="I0g5zxyyZJP6Qi3c9r4H-35">
<mxGeometry relative="1" as="geometry" />
</mxCell>
<mxCell id="I0g5zxyyZJP6Qi3c9r4H-6" value="I/O&lt;div&gt;Operations&lt;/div&gt;" style="shape=process;whiteSpace=wrap;html=1;backgroundOutline=1;fontFamily=Lucida Console;verticalAlign=top;fontSize=24;" vertex="1" parent="1">
<mxGeometry x="960" y="382.5" width="210" height="275" as="geometry" />
</mxCell>
<mxCell id="I0g5zxyyZJP6Qi3c9r4H-7" value="FS" style="shape=cylinder3;whiteSpace=wrap;html=1;boundedLbl=1;backgroundOutline=1;size=15;fontFamily=Lucida Console;" vertex="1" parent="1">
<mxGeometry x="990" y="470" width="60" height="80" as="geometry" />
</mxCell>
<mxCell id="I0g5zxyyZJP6Qi3c9r4H-8" value="DB" style="shape=cylinder3;whiteSpace=wrap;html=1;boundedLbl=1;backgroundOutline=1;size=15;fontFamily=Lucida Console;" vertex="1" parent="1">
<mxGeometry x="1080" y="470" width="60" height="80" as="geometry" />
</mxCell>
<mxCell id="I0g5zxyyZJP6Qi3c9r4H-9" value="NET" style="shape=cylinder3;whiteSpace=wrap;html=1;boundedLbl=1;backgroundOutline=1;size=15;fontFamily=Lucida Console;" vertex="1" parent="1">
<mxGeometry x="1035" y="560" width="60" height="80" as="geometry" />
</mxCell>
<mxCell id="I0g5zxyyZJP6Qi3c9r4H-11" value="Operation complete" style="edgeStyle=orthogonalEdgeStyle;rounded=0;orthogonalLoop=1;jettySize=auto;html=1;exitX=0.25;exitY=1;exitDx=0;exitDy=0;entryX=0;entryY=0;entryDx=227.375;entryDy=300;entryPerimeter=0;fontFamily=Lucida Console;" edge="1" parent="1" source="I0g5zxyyZJP6Qi3c9r4H-6" target="I0g5zxyyZJP6Qi3c9r4H-2">
<mxGeometry relative="1" as="geometry" />
</mxCell>
<mxCell id="I0g5zxyyZJP6Qi3c9r4H-12" value="Internal Thread Pool" style="shape=process;whiteSpace=wrap;html=1;backgroundOutline=1;verticalAlign=bottom;labelPosition=center;verticalLabelPosition=top;align=center;fontFamily=Lucida Console;" vertex="1" parent="1">
<mxGeometry x="1210" y="410" width="120" height="178.75" as="geometry" />
</mxCell>
<mxCell id="I0g5zxyyZJP6Qi3c9r4H-13" value="Call Stack" style="shape=process;whiteSpace=wrap;html=1;backgroundOutline=1;fontFamily=Lucida Console;verticalAlign=bottom;labelPosition=center;verticalLabelPosition=top;align=center;" vertex="1" parent="1">
<mxGeometry x="200" y="382.5" width="120" height="277.5" as="geometry" />
</mxCell>
<mxCell id="I0g5zxyyZJP6Qi3c9r4H-19" value="Thread 1" style="rounded=0;whiteSpace=wrap;html=1;fontFamily=Lucida Console;" vertex="1" parent="1">
<mxGeometry x="1222.5" y="428.75" width="95" height="40" as="geometry" />
</mxCell>
<mxCell id="I0g5zxyyZJP6Qi3c9r4H-22" value="Thread n" style="rounded=0;whiteSpace=wrap;html=1;fontFamily=Lucida Console;" vertex="1" parent="1">
<mxGeometry x="1223.5" y="528.75" width="95" height="40" as="geometry" />
</mxCell>
<mxCell id="I0g5zxyyZJP6Qi3c9r4H-23" value="..." style="text;html=1;align=center;verticalAlign=middle;whiteSpace=wrap;rounded=0;fontFamily=Lucida Console;" vertex="1" parent="1">
<mxGeometry x="1241" y="490" width="60" height="30" as="geometry" />
</mxCell>
<mxCell id="I0g5zxyyZJP6Qi3c9r4H-28" value="fn1&lt;span style=&quot;background-color: transparent; color: light-dark(rgb(0, 0, 0), rgb(255, 255, 255));&quot;&gt;(...)&lt;/span&gt;" style="rounded=0;whiteSpace=wrap;html=1;fontFamily=Lucida Console;" vertex="1" parent="1">
<mxGeometry x="212.5" y="401.25" width="95" height="60" as="geometry" />
</mxCell>
<mxCell id="I0g5zxyyZJP6Qi3c9r4H-29" value="fn2(...)" style="rounded=0;whiteSpace=wrap;html=1;fontFamily=Lucida Console;" vertex="1" parent="1">
<mxGeometry x="212.5" y="461.25" width="95" height="60" as="geometry" />
</mxCell>
<mxCell id="I0g5zxyyZJP6Qi3c9r4H-30" value="callback(...)" style="rounded=0;whiteSpace=wrap;html=1;fontFamily=Lucida Console;" vertex="1" parent="1">
<mxGeometry x="212.5" y="581.25" width="95" height="60" as="geometry" />
</mxCell>
<mxCell id="I0g5zxyyZJP6Qi3c9r4H-31" value="..." style="text;html=1;align=center;verticalAlign=middle;whiteSpace=wrap;rounded=0;fontFamily=Lucida Console;" vertex="1" parent="1">
<mxGeometry x="230" y="541.25" width="60" height="30" as="geometry" />
</mxCell>
<mxCell id="I0g5zxyyZJP6Qi3c9r4H-33" style="edgeStyle=orthogonalEdgeStyle;rounded=0;orthogonalLoop=1;jettySize=auto;html=1;exitX=1;exitY=0.5;exitDx=0;exitDy=0;entryX=0.081;entryY=0.24;entryDx=0;entryDy=0;entryPerimeter=0;" edge="1" parent="1" source="I0g5zxyyZJP6Qi3c9r4H-28" target="I0g5zxyyZJP6Qi3c9r4H-2">
<mxGeometry relative="1" as="geometry" />
</mxCell>
<mxCell id="I0g5zxyyZJP6Qi3c9r4H-34" style="edgeStyle=orthogonalEdgeStyle;rounded=0;orthogonalLoop=1;jettySize=auto;html=1;exitX=1;exitY=0.5;exitDx=0;exitDy=0;entryX=0.113;entryY=0.84;entryDx=0;entryDy=0;entryPerimeter=0;startArrow=classic;startFill=1;endArrow=none;endFill=0;" edge="1" parent="1" source="I0g5zxyyZJP6Qi3c9r4H-30" target="I0g5zxyyZJP6Qi3c9r4H-2">
<mxGeometry relative="1" as="geometry" />
</mxCell>
<mxCell id="I0g5zxyyZJP6Qi3c9r4H-35" value="OS async syscalls" style="shape=process;whiteSpace=wrap;html=1;backgroundOutline=1;verticalAlign=middle;labelPosition=center;verticalLabelPosition=middle;align=center;fontFamily=Lucida Console;" vertex="1" parent="1">
<mxGeometry x="1210" y="610" width="120" height="50" as="geometry" />
</mxCell>
</root>
</mxGraphModel>
</diagram>
</mxfile>

View File

@@ -1,35 +1,41 @@
<mxfile host="Electron" agent="Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) draw.io/28.2.5 Chrome/138.0.7204.251 Electron/37.6.1 Safari/537.36" version="28.2.5" pages="2">
<diagram name="Architecture (locale)" id="WE2OBRBfjwrgRAvIH2Xi">
<mxGraphModel dx="1106" dy="963" grid="1" gridSize="10" guides="1" tooltips="1" connect="1" arrows="1" fold="1" page="1" pageScale="1" pageWidth="827" pageHeight="1169" math="0" shadow="0">
<mxGraphModel dx="826" dy="494" grid="1" gridSize="10" guides="1" tooltips="1" connect="1" arrows="1" fold="1" page="1" pageScale="1" pageWidth="827" pageHeight="1169" math="0" shadow="0">
<root>
<mxCell id="0" />
<mxCell id="1" parent="0" />
<mxCell id="njQ_imjs8zr5ET9f7Rwc-4" value="réponse HTTP" style="edgeStyle=orthogonalEdgeStyle;rounded=0;orthogonalLoop=1;jettySize=auto;html=1;exitX=0.5;exitY=1;exitDx=0;exitDy=0;entryX=0.5;entryY=1;entryDx=0;entryDy=0;" edge="1" parent="1" source="njQ_imjs8zr5ET9f7Rwc-1" target="njQ_imjs8zr5ET9f7Rwc-2">
<mxCell id="njQ_imjs8zr5ET9f7Rwc-4" value="réponse HTTP" style="edgeStyle=orthogonalEdgeStyle;rounded=0;orthogonalLoop=1;jettySize=auto;html=1;exitX=0.5;exitY=1;exitDx=0;exitDy=0;entryX=0.5;entryY=1;entryDx=0;entryDy=0;fontFamily=Lucida Console;" edge="1" parent="1" source="njQ_imjs8zr5ET9f7Rwc-1" target="njQ_imjs8zr5ET9f7Rwc-2">
<mxGeometry relative="1" as="geometry" />
</mxCell>
<mxCell id="njQ_imjs8zr5ET9f7Rwc-5" value="WebSocket" style="edgeStyle=orthogonalEdgeStyle;rounded=0;orthogonalLoop=1;jettySize=auto;html=1;exitX=1;exitY=0.5;exitDx=0;exitDy=0;entryX=0;entryY=0.5;entryDx=0;entryDy=0;startArrow=classic;startFill=1;" edge="1" parent="1" source="njQ_imjs8zr5ET9f7Rwc-1" target="njQ_imjs8zr5ET9f7Rwc-2">
<mxCell id="njQ_imjs8zr5ET9f7Rwc-5" value="WebSocket" style="edgeStyle=orthogonalEdgeStyle;rounded=0;orthogonalLoop=1;jettySize=auto;html=1;exitX=1;exitY=0.5;exitDx=0;exitDy=0;entryX=0;entryY=0.5;entryDx=0;entryDy=0;startArrow=classic;startFill=1;fontFamily=Lucida Console;" edge="1" parent="1" source="njQ_imjs8zr5ET9f7Rwc-1" target="njQ_imjs8zr5ET9f7Rwc-2">
<mxGeometry relative="1" as="geometry" />
</mxCell>
<mxCell id="njQ_imjs8zr5ET9f7Rwc-1" value="Serveur web (Deno)" style="shape=process;whiteSpace=wrap;html=1;backgroundOutline=1;" vertex="1" parent="1">
<mxCell id="njQ_imjs8zr5ET9f7Rwc-1" value="Serveur web (Deno)" style="shape=process;whiteSpace=wrap;html=1;backgroundOutline=1;fontFamily=Lucida Console;" vertex="1" parent="1">
<mxGeometry x="130" y="410" width="120" height="60" as="geometry" />
</mxCell>
<mxCell id="njQ_imjs8zr5ET9f7Rwc-3" value="requête HTTP" style="edgeStyle=orthogonalEdgeStyle;rounded=0;orthogonalLoop=1;jettySize=auto;html=1;exitX=0.5;exitY=0;exitDx=0;exitDy=0;entryX=0.5;entryY=0;entryDx=0;entryDy=0;" edge="1" parent="1" source="njQ_imjs8zr5ET9f7Rwc-2" target="njQ_imjs8zr5ET9f7Rwc-1">
<mxCell id="njQ_imjs8zr5ET9f7Rwc-3" value="requête HTTP" style="edgeStyle=orthogonalEdgeStyle;rounded=0;orthogonalLoop=1;jettySize=auto;html=1;exitX=0.5;exitY=0;exitDx=0;exitDy=0;entryX=0.5;entryY=0;entryDx=0;entryDy=0;fontFamily=Lucida Console;" edge="1" parent="1" source="njQ_imjs8zr5ET9f7Rwc-2" target="njQ_imjs8zr5ET9f7Rwc-1">
<mxGeometry relative="1" as="geometry" />
</mxCell>
<mxCell id="njQ_imjs8zr5ET9f7Rwc-2" value="Client web (navigateur)" style="shape=process;whiteSpace=wrap;html=1;backgroundOutline=1;" vertex="1" parent="1">
<mxGeometry x="520" y="410" width="120" height="60" as="geometry" />
<mxCell id="-peOsC0kaZLfhGvFLIQP-3" style="edgeStyle=orthogonalEdgeStyle;rounded=0;orthogonalLoop=1;jettySize=auto;html=1;exitX=1;exitY=0.5;exitDx=0;exitDy=0;entryX=0.5;entryY=1;entryDx=0;entryDy=0;startArrow=classic;startFill=1;fontFamily=Lucida Console;" edge="1" parent="1" source="njQ_imjs8zr5ET9f7Rwc-2" target="1ptE3tQJX40rlnvv1j5o-1">
<mxGeometry relative="1" as="geometry" />
</mxCell>
<mxCell id="1ptE3tQJX40rlnvv1j5o-1" value="Application client&lt;div&gt;HTML, CSS, TypeScript&lt;/div&gt;" style="ellipse;whiteSpace=wrap;html=1;" vertex="1" parent="1">
<mxGeometry x="630" y="290" width="120" height="80" as="geometry" />
<mxCell id="njQ_imjs8zr5ET9f7Rwc-2" value="Client web (navigateur)" style="shape=process;whiteSpace=wrap;html=1;backgroundOutline=1;fontFamily=Lucida Console;" vertex="1" parent="1">
<mxGeometry x="414" y="410" width="120" height="60" as="geometry" />
</mxCell>
<mxCell id="1ptE3tQJX40rlnvv1j5o-2" value="Application serveur&lt;div&gt;Deno, Oak&lt;/div&gt;" style="ellipse;whiteSpace=wrap;html=1;" vertex="1" parent="1">
<mxGeometry x="70" y="280" width="120" height="80" as="geometry" />
<mxCell id="1ptE3tQJX40rlnvv1j5o-1" value="Application client&lt;div&gt;HTML, CSS, TypeScript&lt;/div&gt;" style="ellipse;whiteSpace=wrap;html=1;fontFamily=Lucida Console;" vertex="1" parent="1">
<mxGeometry x="504" y="280" width="120" height="80" as="geometry" />
</mxCell>
<mxCell id="1ptE3tQJX40rlnvv1j5o-3" value="Base de données" style="shape=cylinder3;whiteSpace=wrap;html=1;boundedLbl=1;backgroundOutline=1;size=15;" vertex="1" parent="1">
<mxGeometry x="240" y="270" width="60" height="80" as="geometry" />
<mxCell id="-peOsC0kaZLfhGvFLIQP-1" style="edgeStyle=orthogonalEdgeStyle;rounded=0;orthogonalLoop=1;jettySize=auto;html=1;exitX=0.5;exitY=1;exitDx=0;exitDy=0;entryX=0;entryY=0.5;entryDx=0;entryDy=0;startArrow=classic;startFill=1;fontFamily=Lucida Console;" edge="1" parent="1" source="1ptE3tQJX40rlnvv1j5o-2" target="njQ_imjs8zr5ET9f7Rwc-1">
<mxGeometry relative="1" as="geometry" />
</mxCell>
<mxCell id="1ptE3tQJX40rlnvv1j5o-4" value="Cache" style="shape=cylinder3;whiteSpace=wrap;html=1;boundedLbl=1;backgroundOutline=1;size=15;" vertex="1" parent="1">
<mxGeometry x="384" y="270" width="60" height="80" as="geometry" />
<mxCell id="1ptE3tQJX40rlnvv1j5o-2" value="Application serveur&lt;div&gt;Deno, Oak&lt;/div&gt;" style="ellipse;whiteSpace=wrap;html=1;fontFamily=Lucida Console;" vertex="1" parent="1">
<mxGeometry x="40" y="280" width="120" height="80" as="geometry" />
</mxCell>
<mxCell id="1ptE3tQJX40rlnvv1j5o-3" value="Base de données" style="shape=cylinder3;whiteSpace=wrap;html=1;boundedLbl=1;backgroundOutline=1;size=15;fontFamily=Lucida Console;" vertex="1" parent="1">
<mxGeometry x="180" y="270" width="60" height="80" as="geometry" />
</mxCell>
<mxCell id="-peOsC0kaZLfhGvFLIQP-2" style="edgeStyle=orthogonalEdgeStyle;rounded=0;orthogonalLoop=1;jettySize=auto;html=1;exitX=0.5;exitY=0;exitDx=0;exitDy=0;entryX=0.5;entryY=0;entryDx=0;entryDy=0;entryPerimeter=0;startArrow=classic;startFill=1;fontFamily=Lucida Console;" edge="1" parent="1" source="1ptE3tQJX40rlnvv1j5o-2" target="1ptE3tQJX40rlnvv1j5o-3">
<mxGeometry relative="1" as="geometry" />
</mxCell>
</root>
</mxGraphModel>

85
res/async.drawio Normal file
View File

@@ -0,0 +1,85 @@
<mxfile host="65bd71144e" scale="3" border="0">
<diagram id="AZTYWFn2qbMvXExw4gZ1" name="Page-1">
<mxGraphModel dx="919" dy="988" grid="1" gridSize="10" guides="1" tooltips="1" connect="1" arrows="1" fold="1" page="1" pageScale="1" pageWidth="827" pageHeight="1169" math="0" shadow="0">
<root>
<mxCell id="0"/>
<mxCell id="1" parent="0"/>
<mxCell id="5" style="edgeStyle=none;html=1;exitX=0.5;exitY=1;exitDx=0;exitDy=0;fontFamily=Lucida Console;fontSize=14;" edge="1" parent="1" source="2">
<mxGeometry relative="1" as="geometry">
<mxPoint x="180" y="640" as="targetPoint"/>
</mxGeometry>
</mxCell>
<mxCell id="2" value="main()" style="shape=process;whiteSpace=wrap;html=1;backgroundOutline=1;fontFamily=Lucida Console;fontSize=14;fontStyle=1" vertex="1" parent="1">
<mxGeometry x="120" y="360" width="120" height="60" as="geometry"/>
</mxCell>
<mxCell id="6" style="edgeStyle=none;html=1;exitX=0.5;exitY=1;exitDx=0;exitDy=0;fontFamily=Lucida Console;fontSize=14;" edge="1" parent="1" source="3">
<mxGeometry relative="1" as="geometry">
<mxPoint x="350" y="630" as="targetPoint"/>
</mxGeometry>
</mxCell>
<mxCell id="3" value="taskA()" style="shape=process;whiteSpace=wrap;html=1;backgroundOutline=1;fontFamily=Lucida Console;fontSize=14;fontStyle=1" vertex="1" parent="1">
<mxGeometry x="290" y="360" width="120" height="60" as="geometry"/>
</mxCell>
<mxCell id="14" value="attente" style="edgeStyle=orthogonalEdgeStyle;html=1;exitX=1;exitY=0.5;exitDx=0;exitDy=0;entryX=0;entryY=0.5;entryDx=0;entryDy=0;fontFamily=Lucida Console;fontSize=14;fillColor=#ffe6cc;strokeColor=#d79b00;" edge="1" parent="1" source="7" target="10">
<mxGeometry relative="1" as="geometry"/>
</mxCell>
<mxCell id="7" value="" style="rounded=0;whiteSpace=wrap;html=1;rotation=90;fillColor=#ffe6cc;strokeColor=#d79b00;fontFamily=Lucida Console;fontSize=14;" vertex="1" parent="1">
<mxGeometry x="167.5" y="440" width="50" height="10" as="geometry"/>
</mxCell>
<mxCell id="15" value="retour" style="edgeStyle=orthogonalEdgeStyle;html=1;exitX=1;exitY=0.5;exitDx=0;exitDy=0;entryX=0;entryY=0.5;entryDx=0;entryDy=0;fontFamily=Lucida Console;fontSize=14;fillColor=#dae8fc;strokeColor=#6c8ebf;" edge="1" parent="1" source="10" target="12">
<mxGeometry relative="1" as="geometry"/>
</mxCell>
<mxCell id="10" value="" style="rounded=0;whiteSpace=wrap;html=1;rotation=90;fillColor=#dae8fc;strokeColor=#6c8ebf;fontFamily=Lucida Console;fontSize=14;" vertex="1" parent="1">
<mxGeometry x="310" y="520" width="50" height="10" as="geometry"/>
</mxCell>
<mxCell id="12" value="" style="rounded=0;whiteSpace=wrap;html=1;rotation=90;fillColor=#ffe6cc;strokeColor=#d79b00;fontFamily=Lucida Console;fontSize=14;" vertex="1" parent="1">
<mxGeometry x="167.5" y="600" width="50" height="10" as="geometry"/>
</mxCell>
<mxCell id="16" style="edgeStyle=none;html=1;exitX=0.5;exitY=1;exitDx=0;exitDy=0;fontFamily=Lucida Console;fontSize=14;" edge="1" parent="1" source="17">
<mxGeometry relative="1" as="geometry">
<mxPoint x="540" y="640" as="targetPoint"/>
</mxGeometry>
</mxCell>
<mxCell id="17" value="main()" style="shape=process;whiteSpace=wrap;html=1;backgroundOutline=1;fontFamily=Lucida Console;fontSize=14;fontStyle=1" vertex="1" parent="1">
<mxGeometry x="480" y="360" width="120" height="60" as="geometry"/>
</mxCell>
<mxCell id="18" style="edgeStyle=none;html=1;exitX=0.5;exitY=1;exitDx=0;exitDy=0;fontFamily=Lucida Console;fontSize=14;" edge="1" parent="1" source="19">
<mxGeometry relative="1" as="geometry">
<mxPoint x="710" y="630" as="targetPoint"/>
</mxGeometry>
</mxCell>
<mxCell id="19" value="taskA()" style="shape=process;whiteSpace=wrap;html=1;backgroundOutline=1;fontFamily=Lucida Console;fontSize=14;fontStyle=1" vertex="1" parent="1">
<mxGeometry x="650" y="360" width="120" height="60" as="geometry"/>
</mxCell>
<mxCell id="25" value="callback" style="edgeStyle=orthogonalEdgeStyle;html=1;exitX=0.25;exitY=0;exitDx=0;exitDy=0;entryX=0;entryY=0.5;entryDx=0;entryDy=0;fillColor=#ffe6cc;strokeColor=#d79b00;fontFamily=Lucida Console;fontSize=14;" edge="1" parent="1" source="21" target="23">
<mxGeometry relative="1" as="geometry">
<Array as="points">
<mxPoint x="695" y="473"/>
</Array>
</mxGeometry>
</mxCell>
<mxCell id="21" value="" style="rounded=0;whiteSpace=wrap;html=1;rotation=90;fillColor=#ffe6cc;strokeColor=#d79b00;fontFamily=Lucida Console;fontSize=14;" vertex="1" parent="1">
<mxGeometry x="446.25" y="521.25" width="212.5" height="10" as="geometry"/>
</mxCell>
<mxCell id="26" value="événement" style="edgeStyle=orthogonalEdgeStyle;html=1;exitX=1;exitY=0.5;exitDx=0;exitDy=0;entryX=0.75;entryY=0;entryDx=0;entryDy=0;fillColor=#dae8fc;strokeColor=#6c8ebf;fontFamily=Lucida Console;fontSize=14;" edge="1" parent="1" source="23" target="21">
<mxGeometry relative="1" as="geometry"/>
</mxCell>
<mxCell id="23" value="" style="rounded=0;whiteSpace=wrap;html=1;rotation=90;fillColor=#dae8fc;strokeColor=#6c8ebf;fontFamily=Lucida Console;fontSize=14;" vertex="1" parent="1">
<mxGeometry x="670" y="520" width="50" height="10" as="geometry"/>
</mxCell>
<mxCell id="27" value="" style="endArrow=none;dashed=1;html=1;dashPattern=1 3;strokeWidth=2;" edge="1" parent="1">
<mxGeometry width="50" height="50" relative="1" as="geometry">
<mxPoint x="450" y="640" as="sourcePoint"/>
<mxPoint x="450" y="280" as="targetPoint"/>
</mxGeometry>
</mxCell>
<mxCell id="28" value="Synchrone" style="text;html=1;align=center;verticalAlign=middle;whiteSpace=wrap;rounded=0;fontFamily=Lucida Console;fontStyle=0;fontSize=16;fillColor=#e1d5e7;strokeColor=#9673a6;" vertex="1" parent="1">
<mxGeometry x="217.5" y="290" width="110" height="30" as="geometry"/>
</mxCell>
<mxCell id="29" value="Asynchrone" style="text;html=1;align=center;verticalAlign=middle;whiteSpace=wrap;rounded=0;fontFamily=Lucida Console;fontStyle=0;fontSize=16;fillColor=#e1d5e7;strokeColor=#9673a6;" vertex="1" parent="1">
<mxGeometry x="570" y="290" width="110" height="30" as="geometry"/>
</mxCell>
</root>
</mxGraphModel>
</diagram>
</mxfile>

262
res/type-guard.drawio Normal file

File diff suppressed because one or more lines are too long