Files
web-frontend/docs/public/diagrams/component-map.svg
2026-05-01 15:09:02 +07:00

1 line
36 KiB
XML

<svg id="my-svg" width="100%" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" class="flowchart" style="max-width: 2460.45px; background-color: transparent;" viewBox="0 0 2460.453125 614.7288818359375" role="graphics-document document" aria-roledescription="flowchart-v2"><style>#my-svg{font-family:Inter,Arial,sans-serif;font-size:16px;fill:#000000;}@keyframes edge-animation-frame{from{stroke-dashoffset:0;}}@keyframes dash{to{stroke-dashoffset:0;}}#my-svg .edge-animation-slow{stroke-dasharray:9,5!important;stroke-dashoffset:900;animation:dash 50s linear infinite;stroke-linecap:round;}#my-svg .edge-animation-fast{stroke-dasharray:9,5!important;stroke-dashoffset:900;animation:dash 20s linear infinite;stroke-linecap:round;}#my-svg .error-icon{fill:#552222;}#my-svg .error-text{fill:#552222;stroke:#552222;}#my-svg .edge-thickness-normal{stroke-width:1px;}#my-svg .edge-thickness-thick{stroke-width:3.5px;}#my-svg .edge-pattern-solid{stroke-dasharray:0;}#my-svg .edge-thickness-invisible{stroke-width:0;fill:none;}#my-svg .edge-pattern-dashed{stroke-dasharray:3;}#my-svg .edge-pattern-dotted{stroke-dasharray:2;}#my-svg .marker{fill:#666;stroke:#666;}#my-svg .marker.cross{stroke:#666;}#my-svg svg{font-family:Inter,Arial,sans-serif;font-size:16px;}#my-svg p{margin:0;}#my-svg .label{font-family:Inter,Arial,sans-serif;color:#000000;}#my-svg .cluster-label text{fill:#333;}#my-svg .cluster-label span{color:#333;}#my-svg .cluster-label span p{background-color:transparent;}#my-svg .label text,#my-svg span{fill:#000000;color:#000000;}#my-svg .node rect,#my-svg .node circle,#my-svg .node ellipse,#my-svg .node polygon,#my-svg .node path{fill:#eee;stroke:#999;stroke-width:1px;}#my-svg .rough-node .label text,#my-svg .node .label text,#my-svg .image-shape .label,#my-svg .icon-shape .label{text-anchor:middle;}#my-svg .node .katex path{fill:#000;stroke:#000;stroke-width:1px;}#my-svg .rough-node .label,#my-svg .node .label,#my-svg .image-shape .label,#my-svg .icon-shape .label{text-align:center;}#my-svg .node.clickable{cursor:pointer;}#my-svg .root .anchor path{fill:#666!important;stroke-width:0;stroke:#666;}#my-svg .arrowheadPath{fill:#333333;}#my-svg .edgePath .path{stroke:#666;stroke-width:1px;}#my-svg .flowchart-link{stroke:#666;fill:none;}#my-svg .edgeLabel{background-color:white;text-align:center;}#my-svg .edgeLabel p{background-color:white;}#my-svg .edgeLabel rect{opacity:0.5;background-color:white;fill:white;}#my-svg .labelBkg{background-color:rgba(255, 255, 255, 0.5);}#my-svg .cluster rect{fill:hsl(0, 0%, 98.9215686275%);stroke:#707070;stroke-width:1px;}#my-svg .cluster text{fill:#333;}#my-svg .cluster span{color:#333;}#my-svg div.mermaidTooltip{position:absolute;text-align:center;max-width:200px;padding:2px;font-family:Inter,Arial,sans-serif;font-size:12px;background:hsl(-160, 0%, 93.3333333333%);border:1px solid #707070;border-radius:2px;pointer-events:none;z-index:100;}#my-svg .flowchartTitleText{text-anchor:middle;font-size:18px;fill:#000000;}#my-svg rect.text{fill:none;stroke-width:0;}#my-svg .icon-shape,#my-svg .image-shape{background-color:white;text-align:center;}#my-svg .icon-shape p,#my-svg .image-shape p{background-color:white;padding:2px;}#my-svg .icon-shape .label rect,#my-svg .image-shape .label rect{opacity:0.5;background-color:white;fill:white;}#my-svg .label-icon{display:inline-block;height:1em;overflow:visible;vertical-align:-0.125em;}#my-svg .node .label-icon path{fill:currentColor;stroke:revert;stroke-width:revert;}#my-svg .node .neo-node{stroke:#999;}#my-svg [data-look="neo"].node rect,#my-svg [data-look="neo"].cluster rect,#my-svg [data-look="neo"].node polygon{stroke:url(#my-svg-gradient);filter:drop-shadow( 1px 2px 2px rgba(185,185,185,1));}#my-svg [data-look="neo"].node path{stroke:url(#my-svg-gradient);stroke-width:1px;}#my-svg [data-look="neo"].node .outer-path{filter:drop-shadow( 1px 2px 2px rgba(185,185,185,1));}#my-svg [data-look="neo"].node .neo-line path{stroke:#999;filter:none;}#my-svg [data-look="neo"].node circle{stroke:url(#my-svg-gradient);filter:drop-shadow( 1px 2px 2px rgba(185,185,185,1));}#my-svg [data-look="neo"].node circle .state-start{fill:#000000;}#my-svg [data-look="neo"].icon-shape .icon{fill:url(#my-svg-gradient);filter:drop-shadow( 1px 2px 2px rgba(185,185,185,1));}#my-svg [data-look="neo"].icon-shape .icon-neo path{stroke:url(#my-svg-gradient);filter:drop-shadow( 1px 2px 2px rgba(185,185,185,1));}#my-svg :root{--mermaid-font-family:Inter,Arial,sans-serif;}</style><g><marker id="my-svg_flowchart-v2-pointEnd" class="marker flowchart-v2" viewBox="0 0 10 10" refX="5" refY="5" markerUnits="userSpaceOnUse" markerWidth="8" markerHeight="8" orient="auto"><path d="M 0 0 L 10 5 L 0 10 z" class="arrowMarkerPath" style="stroke-width: 1; stroke-dasharray: 1, 0;"/></marker><marker id="my-svg_flowchart-v2-pointStart" class="marker flowchart-v2" viewBox="0 0 10 10" refX="4.5" refY="5" markerUnits="userSpaceOnUse" markerWidth="8" markerHeight="8" orient="auto"><path d="M 0 5 L 10 10 L 10 0 z" class="arrowMarkerPath" style="stroke-width: 1; stroke-dasharray: 1, 0;"/></marker><marker id="my-svg_flowchart-v2-pointEnd-margin" class="marker flowchart-v2" viewBox="0 0 11.5 14" refX="11.5" refY="7" markerUnits="userSpaceOnUse" markerWidth="10.5" markerHeight="14" orient="auto"><path d="M 0 0 L 11.5 7 L 0 14 z" class="arrowMarkerPath" style="stroke-width: 0; stroke-dasharray: 1, 0;"/></marker><marker id="my-svg_flowchart-v2-pointStart-margin" class="marker flowchart-v2" viewBox="0 0 11.5 14" refX="1" refY="7" markerUnits="userSpaceOnUse" markerWidth="11.5" markerHeight="14" orient="auto"><polygon points="0,7 11.5,14 11.5,0" class="arrowMarkerPath" style="stroke-width: 0; stroke-dasharray: 1, 0;"/></marker><marker id="my-svg_flowchart-v2-circleEnd" class="marker flowchart-v2" viewBox="0 0 10 10" refX="11" refY="5" markerUnits="userSpaceOnUse" markerWidth="11" markerHeight="11" orient="auto"><circle cx="5" cy="5" r="5" class="arrowMarkerPath" style="stroke-width: 1; stroke-dasharray: 1, 0;"/></marker><marker id="my-svg_flowchart-v2-circleStart" class="marker flowchart-v2" viewBox="0 0 10 10" refX="-1" refY="5" markerUnits="userSpaceOnUse" markerWidth="11" markerHeight="11" orient="auto"><circle cx="5" cy="5" r="5" class="arrowMarkerPath" style="stroke-width: 1; stroke-dasharray: 1, 0;"/></marker><marker id="my-svg_flowchart-v2-circleEnd-margin" class="marker flowchart-v2" viewBox="0 0 10 10" refY="5" refX="12.25" markerUnits="userSpaceOnUse" markerWidth="14" markerHeight="14" orient="auto"><circle cx="5" cy="5" r="5" class="arrowMarkerPath" style="stroke-width: 0; stroke-dasharray: 1, 0;"/></marker><marker id="my-svg_flowchart-v2-circleStart-margin" class="marker flowchart-v2" viewBox="0 0 10 10" refX="-2" refY="5" markerUnits="userSpaceOnUse" markerWidth="14" markerHeight="14" orient="auto"><circle cx="5" cy="5" r="5" class="arrowMarkerPath" style="stroke-width: 0; stroke-dasharray: 1, 0;"/></marker><marker id="my-svg_flowchart-v2-crossEnd" class="marker cross flowchart-v2" viewBox="0 0 11 11" refX="12" refY="5.2" markerUnits="userSpaceOnUse" markerWidth="11" markerHeight="11" orient="auto"><path d="M 1,1 l 9,9 M 10,1 l -9,9" class="arrowMarkerPath" style="stroke-width: 2; stroke-dasharray: 1, 0;"/></marker><marker id="my-svg_flowchart-v2-crossStart" class="marker cross flowchart-v2" viewBox="0 0 11 11" refX="-1" refY="5.2" markerUnits="userSpaceOnUse" markerWidth="11" markerHeight="11" orient="auto"><path d="M 1,1 l 9,9 M 10,1 l -9,9" class="arrowMarkerPath" style="stroke-width: 2; stroke-dasharray: 1, 0;"/></marker><marker id="my-svg_flowchart-v2-crossEnd-margin" class="marker cross flowchart-v2" viewBox="0 0 15 15" refX="17.7" refY="7.5" markerUnits="userSpaceOnUse" markerWidth="12" markerHeight="12" orient="auto"><path d="M 1,1 L 14,14 M 1,14 L 14,1" class="arrowMarkerPath" style="stroke-width: 2.5;"/></marker><marker id="my-svg_flowchart-v2-crossStart-margin" class="marker cross flowchart-v2" viewBox="0 0 15 15" refX="-3.5" refY="7.5" markerUnits="userSpaceOnUse" markerWidth="12" markerHeight="12" orient="auto"><path d="M 1,1 L 14,14 M 1,14 L 14,1" class="arrowMarkerPath" style="stroke-width: 2.5; stroke-dasharray: 1, 0;"/></marker><g class="root"><g class="clusters"><g class="cluster " id="my-svg-Data" data-look="classic"><rect style="" x="1900.671875" y="8" width="551.78125" height="246.72885131835938"/><g class="cluster-label " transform="translate(2140.1015625, 8)"><foreignObject width="72.921875" height="24"><div xmlns="http://www.w3.org/1999/xhtml" style="display: table-cell; white-space: nowrap; line-height: 1.5;"><span class="nodeLabel "><p>Data layer</p></span></div></foreignObject></g></g><g class="cluster " id="my-svg-Server" data-look="classic"><rect style="" x="1460.921875" y="274.7288513183594" width="748.046875" height="332"/><g class="cluster-label " transform="translate(1785.1328125, 274.7288513183594)"><foreignObject width="99.625" height="24"><div xmlns="http://www.w3.org/1999/xhtml" style="display: table-cell; white-space: nowrap; line-height: 1.5;"><span class="nodeLabel "><p>Backend logic</p></span></div></foreignObject></g></g><g class="cluster " id="my-svg-Transport" data-look="classic"><rect style="" x="473.59375" y="326.7288513183594" width="937.328125" height="134"/><g class="cluster-label " transform="translate(868.4296875, 326.7288513183594)"><foreignObject width="147.65625" height="24"><div xmlns="http://www.w3.org/1999/xhtml" style="display: table-cell; white-space: nowrap; line-height: 1.5;"><span class="nodeLabel "><p>Контракт и transport</p></span></div></foreignObject></g></g><g class="cluster " id="my-svg-UI" data-look="classic"><rect style="" x="8" y="111.36442565917969" width="943.5625" height="165"/><g class="cluster-label " transform="translate(424.2734375, 111.36442565917969)"><foreignObject width="111.015625" height="24"><div xmlns="http://www.w3.org/1999/xhtml" style="display: table-cell; white-space: nowrap; line-height: 1.5;"><span class="nodeLabel "><p>UI и маршруты</p></span></div></foreignObject></g></g></g><g class="edgePaths"><path d="M423.594,205.974L427.76,207.372C431.927,208.771,440.26,211.568,448.594,212.966C456.927,214.364,465.26,214.364,474.113,214.364C482.966,214.364,492.339,214.364,497.025,214.364L501.711,214.364" id="my-svg-L_Pages_Components_0" class=" edge-thickness-normal edge-pattern-solid edge-thickness-normal edge-pattern-solid flowchart-link" style=";" data-edge="true" data-et="edge" data-id="L_Pages_Components_0" data-points="W3sieCI6NDIzLjU5Mzc1LCJ5IjoyMDUuOTc0MDAwMjE3MjQ0NDh9LHsieCI6NDQ4LjU5Mzc1LCJ5IjoyMTQuMzY0NDI1NjU5MTc5N30seyJ4Ijo0NzMuNTkzNzUsInkiOjIxNC4zNjQ0MjU2NTkxNzk3fSx7IngiOjUwNS43MTA5Mzc1LCJ5IjoyMTQuMzY0NDI1NjU5MTc5N31d" data-look="classic" marker-end="url(#my-svg_flowchart-v2-pointEnd)"/><path d="M423.594,160.755L427.76,159.356C431.927,157.958,440.26,155.161,448.594,153.763C456.927,152.364,465.26,152.364,489.639,152.364C514.018,152.364,554.443,152.364,594.867,152.364C635.292,152.364,675.716,152.364,699.45,153.292C723.185,154.22,730.229,156.075,733.751,157.002L737.273,157.93" id="my-svg-L_Pages_Composables_0" class=" edge-thickness-normal edge-pattern-solid edge-thickness-normal edge-pattern-solid flowchart-link" style=";" data-edge="true" data-et="edge" data-id="L_Pages_Composables_0" data-points="W3sieCI6NDIzLjU5Mzc1LCJ5IjoxNjAuNzU0ODUxMTAxMTE0OX0seyJ4Ijo0NDguNTkzNzUsInkiOjE1Mi4zNjQ0MjU2NTkxNzk3fSx7IngiOjQ3My41OTM3NSwieSI6MTUyLjM2NDQyNTY1OTE3OTd9LHsieCI6NTk0Ljg2NzE4NzUsInkiOjE1Mi4zNjQ0MjU2NTkxNzk3fSx7IngiOjcxNi4xNDA2MjUsInkiOjE1Mi4zNjQ0MjU2NTkxNzk3fSx7IngiOjc0MS4xNDA2MjUsInkiOjE1OC45NDgzNTA3OTM1NzkzOH1d" data-look="classic" marker-end="url(#my-svg_flowchart-v2-pointEnd)"/><path d="M684.023,214.364L689.376,214.364C694.729,214.364,705.435,214.364,714.31,213.437C723.185,212.509,730.229,210.654,733.751,209.727L737.273,208.799" id="my-svg-L_Components_Composables_0" class=" edge-thickness-normal edge-pattern-solid edge-thickness-normal edge-pattern-solid flowchart-link" style=";" data-edge="true" data-et="edge" data-id="L_Components_Composables_0" data-points="W3sieCI6Njg0LjAyMzQzNzUsInkiOjIxNC4zNjQ0MjU2NTkxNzk3fSx7IngiOjcxNi4xNDA2MjUsInkiOjIxNC4zNjQ0MjU2NTkxNzk3fSx7IngiOjc0MS4xNDA2MjUsInkiOjIwNy43ODA1MDA1MjQ3OH1d" data-look="classic" marker-end="url(#my-svg_flowchart-v2-pointEnd)"/><path d="M926.563,183.364L930.729,183.364C934.896,183.364,943.229,183.364,951.563,214.092C959.896,244.819,968.229,306.274,975.911,337.754C983.592,369.233,990.622,370.737,994.136,371.489L997.651,372.241" id="my-svg-L_Composables_Apollo_0" class=" edge-thickness-normal edge-pattern-solid edge-thickness-normal edge-pattern-solid flowchart-link" style=";" data-edge="true" data-et="edge" data-id="L_Composables_Apollo_0" data-points="W3sieCI6OTI2LjU2MjUsInkiOjE4My4zNjQ0MjU2NTkxNzk3fSx7IngiOjk1MS41NjI1LCJ5IjoxODMuMzY0NDI1NjU5MTc5N30seyJ4Ijo5NzYuNTYyNSwieSI6MzY3LjcyODg1MTMxODM1OTR9LHsieCI6MTAwMS41NjI1LCJ5IjozNzMuMDc4MzE3OTYzNzk4fV0=" data-look="classic" marker-end="url(#my-svg_flowchart-v2-pointEnd)"/><path d="M238.859,183.364L243.026,183.364C247.193,183.364,255.526,183.364,263.193,183.364C270.859,183.364,277.859,183.364,281.359,183.364L284.859,183.364" id="my-svg-L_Middleware_Pages_0" class=" edge-thickness-normal edge-pattern-solid edge-thickness-normal edge-pattern-solid flowchart-link" style=";" data-edge="true" data-et="edge" data-id="L_Middleware_Pages_0" data-points="W3sieCI6MjM4Ljg1OTM3NSwieSI6MTgzLjM2NDQyNTY1OTE3OTd9LHsieCI6MjYzLjg1OTM3NSwieSI6MTgzLjM2NDQyNTY1OTE3OTd9LHsieCI6Mjg4Ljg1OTM3NSwieSI6MTgzLjM2NDQyNTY1OTE3OTd9XQ==" data-look="classic" marker-end="url(#my-svg_flowchart-v2-pointEnd)"/><path d="M691.141,398.729L695.307,398.729C699.474,398.729,707.807,398.729,718.513,398.729C729.219,398.729,742.297,398.729,748.836,398.729L755.375,398.729" id="my-svg-L_Ops_Generated_0" class=" edge-thickness-normal edge-pattern-solid edge-thickness-normal edge-pattern-solid flowchart-link" style=";" data-edge="true" data-et="edge" data-id="L_Ops_Generated_0" data-points="W3sieCI6NjkxLjE0MDYyNSwieSI6Mzk4LjcyODg1MTMxODM1OTR9LHsieCI6NzE2LjE0MDYyNSwieSI6Mzk4LjcyODg1MTMxODM1OTR9LHsieCI6NzU5LjM3NSwieSI6Mzk4LjcyODg1MTMxODM1OTR9XQ==" data-look="classic" marker-end="url(#my-svg_flowchart-v2-pointEnd)"/><path d="M908.328,398.729L915.534,398.729C922.74,398.729,937.151,398.729,948.523,398.729C959.896,398.729,968.229,398.729,975.899,398.372C983.569,398.015,990.576,397.301,994.08,396.944L997.583,396.587" id="my-svg-L_Generated_Apollo_0" class=" edge-thickness-normal edge-pattern-solid edge-thickness-normal edge-pattern-solid flowchart-link" style=";" data-edge="true" data-et="edge" data-id="L_Generated_Apollo_0" data-points="W3sieCI6OTA4LjMyODEyNSwieSI6Mzk4LjcyODg1MTMxODM1OTR9LHsieCI6OTUxLjU2MjUsInkiOjM5OC43Mjg4NTEzMTgzNTk0fSx7IngiOjk3Ni41NjI1LCJ5IjozOTguNzI4ODUxMzE4MzU5NH0seyJ4IjoxMDAxLjU2MjUsInkiOjM5Ni4xODE0ODYyNDkxMDI5fV0=" data-look="classic" marker-end="url(#my-svg_flowchart-v2-pointEnd)"/><path d="M1147.844,388.729L1152.01,388.729C1156.177,388.729,1164.51,388.729,1172.177,388.729C1179.844,388.729,1186.844,388.729,1190.344,388.729L1193.844,388.729" id="my-svg-L_Apollo_Api_0" class=" edge-thickness-normal edge-pattern-solid edge-thickness-normal edge-pattern-solid flowchart-link" style=";" data-edge="true" data-et="edge" data-id="L_Apollo_Api_0" data-points="W3sieCI6MTE0Ny44NDM3NSwieSI6Mzg4LjcyODg1MTMxODM1OTR9LHsieCI6MTE3Mi44NDM3NSwieSI6Mzg4LjcyODg1MTMxODM1OTR9LHsieCI6MTE5Ny44NDM3NSwieSI6Mzg4LjcyODg1MTMxODM1OTR9XQ==" data-look="classic" marker-end="url(#my-svg_flowchart-v2-pointEnd)"/><path d="M1385.922,388.729L1390.089,388.729C1394.255,388.729,1402.589,388.729,1410.922,388.729C1419.255,388.729,1427.589,388.729,1435.922,388.729C1444.255,388.729,1452.589,388.729,1460.255,388.729C1467.922,388.729,1474.922,388.729,1478.422,388.729L1481.922,388.729" id="my-svg-L_Api_Schema_0" class=" edge-thickness-normal edge-pattern-solid edge-thickness-normal edge-pattern-solid flowchart-link" style=";" data-edge="true" data-et="edge" data-id="L_Api_Schema_0" data-points="W3sieCI6MTM4NS45MjE4NzUsInkiOjM4OC43Mjg4NTEzMTgzNTk0fSx7IngiOjE0MTAuOTIxODc1LCJ5IjozODguNzI4ODUxMzE4MzU5NH0seyJ4IjoxNDM1LjkyMTg3NSwieSI6Mzg4LjcyODg1MTMxODM1OTR9LHsieCI6MTQ2MC45MjE4NzUsInkiOjM4OC43Mjg4NTEzMTgzNTk0fSx7IngiOjE0ODUuOTIxODc1LCJ5IjozODguNzI4ODUxMzE4MzU5NH1d" data-look="classic" marker-end="url(#my-svg_flowchart-v2-pointEnd)"/><path d="M1659.766,388.729L1663.932,388.729C1668.099,388.729,1676.432,388.729,1684.099,388.729C1691.766,388.729,1698.766,388.729,1702.266,388.729L1705.766,388.729" id="my-svg-L_Schema_Resolvers_0" class=" edge-thickness-normal edge-pattern-solid edge-thickness-normal edge-pattern-solid flowchart-link" style=";" data-edge="true" data-et="edge" data-id="L_Schema_Resolvers_0" data-points="W3sieCI6MTY1OS43NjU2MjUsInkiOjM4OC43Mjg4NTEzMTgzNTk0fSx7IngiOjE2ODQuNzY1NjI1LCJ5IjozODguNzI4ODUxMzE4MzU5NH0seyJ4IjoxNzA5Ljc2NTYyNSwieSI6Mzg4LjcyODg1MTMxODM1OTR9XQ==" data-look="classic" marker-end="url(#my-svg_flowchart-v2-pointEnd)"/><path d="M1829.781,361.729L1837.429,357.562C1845.078,353.396,1860.375,345.062,1872.19,340.896C1884.005,336.729,1892.339,336.729,1906.007,336.729C1919.674,336.729,1938.677,336.729,1948.178,336.729L1957.68,336.729" id="my-svg-L_Resolvers_Auth_0" class=" edge-thickness-normal edge-pattern-solid edge-thickness-normal edge-pattern-solid flowchart-link" style=";" data-edge="true" data-et="edge" data-id="L_Resolvers_Auth_0" data-points="W3sieCI6MTgyOS43ODA5NDk1MTkyMzA3LCJ5IjozNjEuNzI4ODUxMzE4MzU5NH0seyJ4IjoxODc1LjY3MTg3NSwieSI6MzM2LjcyODg1MTMxODM1OTR9LHsieCI6MTkwMC42NzE4NzUsInkiOjMzNi43Mjg4NTEzMTgzNTk0fSx7IngiOjE5NjEuNjc5Njg3NSwieSI6MzM2LjcyODg1MTMxODM1OTR9XQ==" data-look="classic" marker-end="url(#my-svg_flowchart-v2-pointEnd)"/><path d="M1829.781,415.729L1837.429,419.896C1845.078,424.062,1860.375,432.396,1872.19,436.562C1884.005,440.729,1892.339,440.729,1910.897,440.729C1929.456,440.729,1958.24,440.729,1972.632,440.729L1987.023,440.729" id="my-svg-L_Resolvers_Context_0" class=" edge-thickness-normal edge-pattern-solid edge-thickness-normal edge-pattern-solid flowchart-link" style=";" data-edge="true" data-et="edge" data-id="L_Resolvers_Context_0" data-points="W3sieCI6MTgyOS43ODA5NDk1MTkyMzA3LCJ5Ijo0MTUuNzI4ODUxMzE4MzU5NH0seyJ4IjoxODc1LjY3MTg3NSwieSI6NDQwLjcyODg1MTMxODM1OTR9LHsieCI6MTkwMC42NzE4NzUsInkiOjQ0MC43Mjg4NTEzMTgzNTk0fSx7IngiOjE5OTEuMDIzNDM3NSwieSI6NDQwLjcyODg1MTMxODM1OTR9XQ==" data-look="classic" marker-end="url(#my-svg_flowchart-v2-pointEnd)"/><path d="M1796.739,415.729L1809.895,437.229C1823.05,458.729,1849.361,501.729,1866.683,523.229C1884.005,544.729,1892.339,544.729,1900.005,544.729C1907.672,544.729,1914.672,544.729,1918.172,544.729L1921.672,544.729" id="my-svg-L_Resolvers_Messenger_0" class=" edge-thickness-normal edge-pattern-solid edge-thickness-normal edge-pattern-solid flowchart-link" style=";" data-edge="true" data-et="edge" data-id="L_Resolvers_Messenger_0" data-points="W3sieCI6MTc5Ni43Mzk0ODMxNzMwNzcsInkiOjQxNS43Mjg4NTEzMTgzNTk0fSx7IngiOjE4NzUuNjcxODc1LCJ5Ijo1NDQuNzI4ODUxMzE4MzU5NH0seyJ4IjoxOTAwLjY3MTg3NSwieSI6NTQ0LjcyODg1MTMxODM1OTR9LHsieCI6MTkyNS42NzE4NzUsInkiOjU0NC43Mjg4NTEzMTgzNTk0fV0=" data-look="classic" marker-end="url(#my-svg_flowchart-v2-pointEnd)"/><path d="M1811.27,361.729L1822.003,352.396C1832.737,343.062,1854.205,324.396,1869.105,315.062C1884.005,305.729,1892.339,305.729,1917.887,280.893C1943.436,256.057,1986.201,206.385,2007.583,181.549L2028.965,156.714" id="my-svg-L_Resolvers_Prisma_0" class=" edge-thickness-normal edge-pattern-solid edge-thickness-normal edge-pattern-solid flowchart-link" style=";" data-edge="true" data-et="edge" data-id="L_Resolvers_Prisma_0" data-points="W3sieCI6MTgxMS4yNjk3NjY1NjYyNjUyLCJ5IjozNjEuNzI4ODUxMzE4MzU5NH0seyJ4IjoxODc1LjY3MTg3NSwieSI6MzA1LjcyODg1MTMxODM1OTR9LHsieCI6MTkwMC42NzE4NzUsInkiOjMwNS43Mjg4NTEzMTgzNTk0fSx7IngiOjIwMzEuNTc0OTI4Nzk2NDYyNSwieSI6MTUzLjY4MjIxMjgyOTU4OTg0fV0=" data-look="classic" marker-end="url(#my-svg_flowchart-v2-pointEnd)"/><path d="M2128.247,99.682L2141.701,94.735C2155.154,89.788,2182.062,79.894,2199.682,74.947C2217.302,70,2225.635,70,2233.302,70C2240.969,70,2247.969,70,2251.469,70L2254.969,70" id="my-svg-L_Prisma_PrismaSchema_0" class=" edge-thickness-normal edge-pattern-solid edge-thickness-normal edge-pattern-solid flowchart-link" style=";" data-edge="true" data-et="edge" data-id="L_Prisma_PrismaSchema_0" data-points="W3sieCI6MjEyOC4yNDczNjQ5MTYxMjA3LCJ5Ijo5OS42ODIyMTI4Mjk1ODk4NH0seyJ4IjoyMjA4Ljk2ODc1LCJ5Ijo3MH0seyJ4IjoyMjMzLjk2ODc1LCJ5Ijo3MH0seyJ4IjoyMjU4Ljk2ODc1LCJ5Ijo3MH1d" data-look="classic" marker-end="url(#my-svg_flowchart-v2-pointEnd)"/><path d="M2128.247,153.682L2141.701,158.629C2155.154,163.576,2182.062,173.47,2199.682,178.417C2217.302,183.364,2225.635,183.364,2238.829,183.364C2252.023,183.364,2270.078,183.364,2279.105,183.364L2288.133,183.364" id="my-svg-L_Prisma_Db_0" class=" edge-thickness-normal edge-pattern-solid edge-thickness-normal edge-pattern-solid flowchart-link" style=";" data-edge="true" data-et="edge" data-id="L_Prisma_Db_0" data-points="W3sieCI6MjEyOC4yNDczNjQ5MTYxMjA3LCJ5IjoxNTMuNjgyMjEyODI5NTg5ODR9LHsieCI6MjIwOC45Njg3NSwieSI6MTgzLjM2NDQyNTY1OTE3OTd9LHsieCI6MjIzMy45Njg3NSwieSI6MTgzLjM2NDQyNTY1OTE3OTd9LHsieCI6MjI5Mi4xMzI4MTI1LCJ5IjoxODMuMzY0NDI1NjU5MTc5N31d" data-look="classic" marker-end="url(#my-svg_flowchart-v2-pointEnd)"/></g><g class="edgeLabels"><g class="edgeLabel"><g class="label" data-id="L_Pages_Components_0" transform="translate(0, 0)"><foreignObject width="0" height="0"><div xmlns="http://www.w3.org/1999/xhtml" class="labelBkg" style="display: table-cell; white-space: nowrap; line-height: 1.5; max-width: 200px; text-align: center;"><span class="edgeLabel "></span></div></foreignObject></g></g><g class="edgeLabel"><g class="label" data-id="L_Pages_Composables_0" transform="translate(0, 0)"><foreignObject width="0" height="0"><div xmlns="http://www.w3.org/1999/xhtml" class="labelBkg" style="display: table-cell; white-space: nowrap; line-height: 1.5; max-width: 200px; text-align: center;"><span class="edgeLabel "></span></div></foreignObject></g></g><g class="edgeLabel"><g class="label" data-id="L_Components_Composables_0" transform="translate(0, 0)"><foreignObject width="0" height="0"><div xmlns="http://www.w3.org/1999/xhtml" class="labelBkg" style="display: table-cell; white-space: nowrap; line-height: 1.5; max-width: 200px; text-align: center;"><span class="edgeLabel "></span></div></foreignObject></g></g><g class="edgeLabel"><g class="label" data-id="L_Composables_Apollo_0" transform="translate(0, 0)"><foreignObject width="0" height="0"><div xmlns="http://www.w3.org/1999/xhtml" class="labelBkg" style="display: table-cell; white-space: nowrap; line-height: 1.5; max-width: 200px; text-align: center;"><span class="edgeLabel "></span></div></foreignObject></g></g><g class="edgeLabel"><g class="label" data-id="L_Middleware_Pages_0" transform="translate(0, 0)"><foreignObject width="0" height="0"><div xmlns="http://www.w3.org/1999/xhtml" class="labelBkg" style="display: table-cell; white-space: nowrap; line-height: 1.5; max-width: 200px; text-align: center;"><span class="edgeLabel "></span></div></foreignObject></g></g><g class="edgeLabel"><g class="label" data-id="L_Ops_Generated_0" transform="translate(0, 0)"><foreignObject width="0" height="0"><div xmlns="http://www.w3.org/1999/xhtml" class="labelBkg" style="display: table-cell; white-space: nowrap; line-height: 1.5; max-width: 200px; text-align: center;"><span class="edgeLabel "></span></div></foreignObject></g></g><g class="edgeLabel"><g class="label" data-id="L_Generated_Apollo_0" transform="translate(0, 0)"><foreignObject width="0" height="0"><div xmlns="http://www.w3.org/1999/xhtml" class="labelBkg" style="display: table-cell; white-space: nowrap; line-height: 1.5; max-width: 200px; text-align: center;"><span class="edgeLabel "></span></div></foreignObject></g></g><g class="edgeLabel"><g class="label" data-id="L_Apollo_Api_0" transform="translate(0, 0)"><foreignObject width="0" height="0"><div xmlns="http://www.w3.org/1999/xhtml" class="labelBkg" style="display: table-cell; white-space: nowrap; line-height: 1.5; max-width: 200px; text-align: center;"><span class="edgeLabel "></span></div></foreignObject></g></g><g class="edgeLabel"><g class="label" data-id="L_Api_Schema_0" transform="translate(0, 0)"><foreignObject width="0" height="0"><div xmlns="http://www.w3.org/1999/xhtml" class="labelBkg" style="display: table-cell; white-space: nowrap; line-height: 1.5; max-width: 200px; text-align: center;"><span class="edgeLabel "></span></div></foreignObject></g></g><g class="edgeLabel"><g class="label" data-id="L_Schema_Resolvers_0" transform="translate(0, 0)"><foreignObject width="0" height="0"><div xmlns="http://www.w3.org/1999/xhtml" class="labelBkg" style="display: table-cell; white-space: nowrap; line-height: 1.5; max-width: 200px; text-align: center;"><span class="edgeLabel "></span></div></foreignObject></g></g><g class="edgeLabel"><g class="label" data-id="L_Resolvers_Auth_0" transform="translate(0, 0)"><foreignObject width="0" height="0"><div xmlns="http://www.w3.org/1999/xhtml" class="labelBkg" style="display: table-cell; white-space: nowrap; line-height: 1.5; max-width: 200px; text-align: center;"><span class="edgeLabel "></span></div></foreignObject></g></g><g class="edgeLabel"><g class="label" data-id="L_Resolvers_Context_0" transform="translate(0, 0)"><foreignObject width="0" height="0"><div xmlns="http://www.w3.org/1999/xhtml" class="labelBkg" style="display: table-cell; white-space: nowrap; line-height: 1.5; max-width: 200px; text-align: center;"><span class="edgeLabel "></span></div></foreignObject></g></g><g class="edgeLabel"><g class="label" data-id="L_Resolvers_Messenger_0" transform="translate(0, 0)"><foreignObject width="0" height="0"><div xmlns="http://www.w3.org/1999/xhtml" class="labelBkg" style="display: table-cell; white-space: nowrap; line-height: 1.5; max-width: 200px; text-align: center;"><span class="edgeLabel "></span></div></foreignObject></g></g><g class="edgeLabel"><g class="label" data-id="L_Resolvers_Prisma_0" transform="translate(0, 0)"><foreignObject width="0" height="0"><div xmlns="http://www.w3.org/1999/xhtml" class="labelBkg" style="display: table-cell; white-space: nowrap; line-height: 1.5; max-width: 200px; text-align: center;"><span class="edgeLabel "></span></div></foreignObject></g></g><g class="edgeLabel"><g class="label" data-id="L_Prisma_PrismaSchema_0" transform="translate(0, 0)"><foreignObject width="0" height="0"><div xmlns="http://www.w3.org/1999/xhtml" class="labelBkg" style="display: table-cell; white-space: nowrap; line-height: 1.5; max-width: 200px; text-align: center;"><span class="edgeLabel "></span></div></foreignObject></g></g><g class="edgeLabel"><g class="label" data-id="L_Prisma_Db_0" transform="translate(0, 0)"><foreignObject width="0" height="0"><div xmlns="http://www.w3.org/1999/xhtml" class="labelBkg" style="display: table-cell; white-space: nowrap; line-height: 1.5; max-width: 200px; text-align: center;"><span class="edgeLabel "></span></div></foreignObject></g></g></g><g class="nodes"><g class="node default " id="my-svg-flowchart-Pages-0" data-look="classic" transform="translate(356.2265625, 183.3644256591797)"><rect class="basic label-container" style="" x="-67.3671875" y="-27" width="134.734375" height="54"/><g class="label" style="" transform="translate(-37.3671875, -12)"><rect/><foreignObject width="74.734375" height="24"><div xmlns="http://www.w3.org/1999/xhtml" style="display: table-cell; white-space: nowrap; line-height: 1.5; max-width: 200px; text-align: center;"><span class="nodeLabel "><p>app/pages</p></span></div></foreignObject></g></g><g class="node default " id="my-svg-flowchart-Components-1" data-look="classic" transform="translate(594.8671875, 214.3644256591797)"><rect class="basic label-container" style="" x="-89.15625" y="-27" width="178.3125" height="54"/><g class="label" style="" transform="translate(-59.15625, -12)"><rect/><foreignObject width="118.3125" height="24"><div xmlns="http://www.w3.org/1999/xhtml" style="display: table-cell; white-space: nowrap; line-height: 1.5; max-width: 200px; text-align: center;"><span class="nodeLabel "><p>app/components</p></span></div></foreignObject></g></g><g class="node default " id="my-svg-flowchart-Composables-2" data-look="classic" transform="translate(833.8515625, 183.3644256591797)"><rect class="basic label-container" style="" x="-92.7109375" y="-27" width="185.421875" height="54"/><g class="label" style="" transform="translate(-62.7109375, -12)"><rect/><foreignObject width="125.421875" height="24"><div xmlns="http://www.w3.org/1999/xhtml" style="display: table-cell; white-space: nowrap; line-height: 1.5; max-width: 200px; text-align: center;"><span class="nodeLabel "><p>app/composables</p></span></div></foreignObject></g></g><g class="node default " id="my-svg-flowchart-Middleware-3" data-look="classic" transform="translate(135.9296875, 183.3644256591797)"><rect class="basic label-container" style="" x="-102.9296875" y="-27" width="205.859375" height="54"/><g class="label" style="" transform="translate(-72.9296875, -12)"><rect/><foreignObject width="145.859375" height="24"><div xmlns="http://www.w3.org/1999/xhtml" style="display: table-cell; white-space: nowrap; line-height: 1.5; max-width: 200px; text-align: center;"><span class="nodeLabel "><p>middleware / plugins</p></span></div></foreignObject></g></g><g class="node default " id="my-svg-flowchart-Ops-4" data-look="classic" transform="translate(594.8671875, 398.7288513183594)"><rect class="basic label-container" style="" x="-96.2734375" y="-27" width="192.546875" height="54"/><g class="label" style="" transform="translate(-66.2734375, -12)"><rect/><foreignObject width="132.546875" height="24"><div xmlns="http://www.w3.org/1999/xhtml" style="display: table-cell; white-space: nowrap; line-height: 1.5; max-width: 200px; text-align: center;"><span class="nodeLabel "><p>graphql/operations</p></span></div></foreignObject></g></g><g class="node default " id="my-svg-flowchart-Generated-5" data-look="classic" transform="translate(833.8515625, 398.7288513183594)"><rect class="basic label-container" style="" x="-74.4765625" y="-27" width="148.953125" height="54"/><g class="label" style="" transform="translate(-44.4765625, -12)"><rect/><foreignObject width="88.953125" height="24"><div xmlns="http://www.w3.org/1999/xhtml" style="display: table-cell; white-space: nowrap; line-height: 1.5; max-width: 200px; text-align: center;"><span class="nodeLabel "><p>generated.ts</p></span></div></foreignObject></g></g><g class="node default " id="my-svg-flowchart-Apollo-6" data-look="classic" transform="translate(1074.703125, 388.7288513183594)"><rect class="basic label-container" style="" x="-73.140625" y="-27" width="146.28125" height="54"/><g class="label" style="" transform="translate(-43.140625, -12)"><rect/><foreignObject width="86.28125" height="24"><div xmlns="http://www.w3.org/1999/xhtml" style="display: table-cell; white-space: nowrap; line-height: 1.5; max-width: 200px; text-align: center;"><span class="nodeLabel "><p>Apollo client</p></span></div></foreignObject></g></g><g class="node default " id="my-svg-flowchart-Api-7" data-look="classic" transform="translate(1291.8828125, 388.7288513183594)"><rect class="basic label-container" style="" x="-94.0390625" y="-27" width="188.078125" height="54"/><g class="label" style="" transform="translate(-64.0390625, -12)"><rect/><foreignObject width="128.078125" height="24"><div xmlns="http://www.w3.org/1999/xhtml" style="display: table-cell; white-space: nowrap; line-height: 1.5; max-width: 200px; text-align: center;"><span class="nodeLabel "><p>server/api/graphql</p></span></div></foreignObject></g></g><g class="node default " id="my-svg-flowchart-Schema-8" data-look="classic" transform="translate(1572.84375, 388.7288513183594)"><rect class="basic label-container" style="" x="-86.921875" y="-27" width="173.84375" height="54"/><g class="label" style="" transform="translate(-56.921875, -12)"><rect/><foreignObject width="113.84375" height="24"><div xmlns="http://www.w3.org/1999/xhtml" style="display: table-cell; white-space: nowrap; line-height: 1.5; max-width: 200px; text-align: center;"><span class="nodeLabel "><p>schema.graphql</p></span></div></foreignObject></g></g><g class="node default " id="my-svg-flowchart-Resolvers-9" data-look="classic" transform="translate(1780.21875, 388.7288513183594)"><rect class="basic label-container" style="" x="-70.453125" y="-27" width="140.90625" height="54"/><g class="label" style="" transform="translate(-40.453125, -12)"><rect/><foreignObject width="80.90625" height="24"><div xmlns="http://www.w3.org/1999/xhtml" style="display: table-cell; white-space: nowrap; line-height: 1.5; max-width: 200px; text-align: center;"><span class="nodeLabel "><p>resolvers.js</p></span></div></foreignObject></g></g><g class="node default " id="my-svg-flowchart-Auth-10" data-look="classic" transform="translate(2054.8203125, 336.7288513183594)"><rect class="basic label-container" style="" x="-93.140625" y="-27" width="186.28125" height="54"/><g class="label" style="" transform="translate(-63.140625, -12)"><rect/><foreignObject width="126.28125" height="24"><div xmlns="http://www.w3.org/1999/xhtml" style="display: table-cell; white-space: nowrap; line-height: 1.5; max-width: 200px; text-align: center;"><span class="nodeLabel "><p>auth.js / access.js</p></span></div></foreignObject></g></g><g class="node default " id="my-svg-flowchart-Context-11" data-look="classic" transform="translate(2054.8203125, 440.7288513183594)"><rect class="basic label-container" style="" x="-63.796875" y="-27" width="127.59375" height="54"/><g class="label" style="" transform="translate(-33.796875, -12)"><rect/><foreignObject width="67.59375" height="24"><div xmlns="http://www.w3.org/1999/xhtml" style="display: table-cell; white-space: nowrap; line-height: 1.5; max-width: 200px; text-align: center;"><span class="nodeLabel "><p>context.js</p></span></div></foreignObject></g></g><g class="node default " id="my-svg-flowchart-Messenger-12" data-look="classic" transform="translate(2054.8203125, 544.7288513183594)"><rect class="basic label-container" style="" x="-129.1484375" y="-27" width="258.296875" height="54"/><g class="label" style="" transform="translate(-99.1484375, -12)"><rect/><foreignObject width="198.296875" height="24"><div xmlns="http://www.w3.org/1999/xhtml" style="display: table-cell; white-space: nowrap; line-height: 1.5; max-width: 200px; text-align: center;"><span class="nodeLabel "><p>messenger / telegram / max</p></span></div></foreignObject></g></g><g class="node default " id="my-svg-flowchart-Prisma-13" data-look="classic" transform="translate(2054.8203125, 126.68221282958984)"><rect class="basic label-container" style="" x="-83.34375" y="-27" width="166.6875" height="54"/><g class="label" style="" transform="translate(-53.34375, -12)"><rect/><foreignObject width="106.6875" height="24"><div xmlns="http://www.w3.org/1999/xhtml" style="display: table-cell; white-space: nowrap; line-height: 1.5; max-width: 200px; text-align: center;"><span class="nodeLabel "><p>prisma-client.js</p></span></div></foreignObject></g></g><g class="node default " id="my-svg-flowchart-PrismaSchema-14" data-look="classic" transform="translate(2343.2109375, 70)"><rect class="basic label-container" style="" x="-84.2421875" y="-27" width="168.484375" height="54"/><g class="label" style="" transform="translate(-54.2421875, -12)"><rect/><foreignObject width="108.484375" height="24"><div xmlns="http://www.w3.org/1999/xhtml" style="display: table-cell; white-space: nowrap; line-height: 1.5; max-width: 200px; text-align: center;"><span class="nodeLabel "><p>schema.prisma</p></span></div></foreignObject></g></g><g class="node default " id="my-svg-flowchart-Db-15" data-look="classic" transform="translate(2343.2109375, 183.3644256591797)"><path d="M0,11.242949511624708 a51.078125,11.242949511624708 0,0,0 102.15625,0 a51.078125,11.242949511624708 0,0,0 -102.15625,0 l0,50.24294951162471 a51.078125,11.242949511624708 0,0,0 102.15625,0 l0,-50.24294951162471" class="basic label-container outer-path" style="" label-offset-y="11.242949511624708" transform="translate(-51.078125, -36.36442426743706)"/><g class="label" style="" transform="translate(-43.578125, -2)"><rect/><foreignObject width="87.15625" height="24"><div xmlns="http://www.w3.org/1999/xhtml" style="display: table-cell; white-space: nowrap; line-height: 1.5; max-width: 200px; text-align: center;"><span class="nodeLabel "><p>PostgreSQL</p></span></div></foreignObject></g></g></g></g></g><defs><filter id="my-svg-drop-shadow" height="130%" width="130%"><feDropShadow dx="4" dy="4" stdDeviation="0" flood-opacity="0.06" flood-color="#000000"/></filter></defs><defs><filter id="my-svg-drop-shadow-small" height="150%" width="150%"><feDropShadow dx="2" dy="2" stdDeviation="0" flood-opacity="0.06" flood-color="#000000"/></filter></defs><linearGradient id="my-svg-gradient" gradientUnits="objectBoundingBox" x1="0%" y1="0%" x2="100%" y2="0%"><stop offset="0%" stop-color="hsl(0, 0%, 83.3333333333%)" stop-opacity="1"/><stop offset="100%" stop-color="hsl(0, 0%, 88.9215686275%)" stop-opacity="1"/></linearGradient></svg>