@vunexa/lixa 0.1.0 → 0.1.2
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.
- package/README.md +3 -93
- package/README.template.md +360 -0
- package/docs/api/index.md +32 -0
- package/docs/api/lixa.iprovider.authorizationendpoint.md +13 -0
- package/docs/api/lixa.iprovider.md +100 -0
- package/docs/api/lixa.iprovider.tokenendpoint.md +13 -0
- package/docs/api/lixa.iprovider.userinfoendpoint.md +13 -0
- package/docs/api/lixa.lixa._constructor_.md +50 -0
- package/docs/api/lixa.lixa.generaterandomstate.md +23 -0
- package/docs/api/lixa.lixa.getauthurl.md +85 -0
- package/docs/api/lixa.lixa.handlecallback.md +73 -0
- package/docs/api/lixa.lixa.isproviderregistered.md +65 -0
- package/docs/api/lixa.lixa.md +164 -0
- package/docs/api/lixa.lixa.registerprovider.md +69 -0
- package/docs/api/lixa.lixaconfig.md +96 -0
- package/docs/api/lixa.lixaconfig.providers.md +13 -0
- package/docs/api/lixa.lixaconfig.sessionstrategy.md +13 -0
- package/docs/api/lixa.lixaconfig.statedao.md +13 -0
- package/docs/api/lixa.md +108 -0
- package/docs/api/lixa.providerconfig.clientid.md +13 -0
- package/docs/api/lixa.providerconfig.clientsecret.md +13 -0
- package/docs/api/lixa.providerconfig.extraconfig.md +13 -0
- package/docs/api/lixa.providerconfig.md +134 -0
- package/docs/api/lixa.providerconfig.redirecturi.md +13 -0
- package/docs/api/lixa.providerconfig.scopes.md +13 -0
- package/docs/api/lixa.session.md +77 -0
- package/docs/api/lixa.session.raw.md +13 -0
- package/docs/api/lixa.session.token.md +13 -0
- package/docs/api/lixa.sessionstrategy.createsession.md +56 -0
- package/docs/api/lixa.sessionstrategy.md +40 -0
- package/docs/images/account-linking.svg +1 -0
- package/docs/images/architecture.svg +1 -0
- package/docs/images/resource-connection.svg +1 -0
- package/package.json +13 -1
|
@@ -0,0 +1 @@
|
|
|
1
|
+
<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: 1213.31px; background-color: white;" viewBox="0 0 1213.3125 1109" role="graphics-document document" aria-roledescription="flowchart-v2"><style>#my-svg{font-family:"trebuchet ms",verdana,arial,sans-serif;font-size:16px;fill:#333;}@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:#333333;stroke:#333333;}#my-svg .marker.cross{stroke:#333333;}#my-svg svg{font-family:"trebuchet ms",verdana,arial,sans-serif;font-size:16px;}#my-svg p{margin:0;}#my-svg .label{font-family:"trebuchet ms",verdana,arial,sans-serif;color:#333;}#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:#333;color:#333;}#my-svg .node rect,#my-svg .node circle,#my-svg .node ellipse,#my-svg .node polygon,#my-svg .node path{fill:#ECECFF;stroke:#9370DB;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:#333333!important;stroke-width:0;stroke:#333333;}#my-svg .arrowheadPath{fill:#333333;}#my-svg .edgePath .path{stroke:#333333;stroke-width:1px;}#my-svg .flowchart-link{stroke:#333333;fill:none;}#my-svg .edgeLabel{background-color:rgba(232,232,232, 0.8);text-align:center;}#my-svg .edgeLabel p{background-color:rgba(232,232,232, 0.8);}#my-svg .edgeLabel rect{opacity:0.5;background-color:rgba(232,232,232, 0.8);fill:rgba(232,232,232, 0.8);}#my-svg .labelBkg{background-color:rgba(232, 232, 232, 0.5);}#my-svg .cluster rect{fill:#ffffde;stroke:#aaaa33;stroke-width:1px;}#my-svg .cluster text{fill:#333;}#my-svg .cluster span{color:#333;}#my-svg .node .collapsed-indicator{fill:#aaaa33;stroke:none;opacity:0.6;}#my-svg .node .collapsed-separator{stroke:#aaaa33;stroke-width:0.75px;}#my-svg div.mermaidTooltip{position:absolute;text-align:center;max-width:200px;padding:2px;font-family:"trebuchet ms",verdana,arial,sans-serif;font-size:12px;background:hsl(80, 100%, 96.2745098039%);border:1px solid #aaaa33;border-radius:2px;pointer-events:none;z-index:100;}#my-svg .flowchartTitleText{text-anchor:middle;font-size:18px;fill:#333;}#my-svg rect.text{fill:none;stroke-width:0;}#my-svg .icon-shape,#my-svg .image-shape{background-color:rgba(232,232,232, 0.8);text-align:center;}#my-svg .icon-shape p,#my-svg .image-shape p{background-color:rgba(232,232,232, 0.8);padding:2px;}#my-svg .icon-shape .label rect,#my-svg .image-shape .label rect{opacity:0.5;background-color:rgba(232,232,232, 0.8);fill:rgba(232,232,232, 0.8);}#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:#9370DB;}#my-svg [data-look="neo"].node rect,#my-svg [data-look="neo"].cluster rect,#my-svg [data-look="neo"].node polygon{stroke:#9370DB;filter:drop-shadow(1px 2px 2px rgba(185, 185, 185, 1));}#my-svg [data-look="neo"].swimlane.cluster rect{filter:none;}#my-svg [data-look="neo"].node path{stroke:#9370DB;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:#9370DB;filter:none;}#my-svg [data-look="neo"].node circle{stroke:#9370DB;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:#9370DB;filter:drop-shadow(1px 2px 2px rgba(185, 185, 185, 1));}#my-svg [data-look="neo"].icon-shape .icon-neo path{stroke:#9370DB;filter:drop-shadow(1px 2px 2px rgba(185, 185, 185, 1));}#my-svg :root{--mermaid-font-family:"trebuchet ms",verdana,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-Lixa" data-look="classic"><rect style="" x="280.125" y="145" width="583.078125" height="956"/><g class="cluster-label" transform="translate(512.0625, 145)"><foreignObject width="119.203125" 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>Lixa Core Engine</p></span></div></foreignObject></g></g></g><g class="edgePaths"><path d="M540.406,47.5L524.526,55.583C508.646,63.667,476.885,79.833,461.005,96.083C445.125,112.333,445.125,128.667,445.125,140.333C445.125,152,445.125,159,445.125,162.5L445.125,166" id="my-svg-L_User_AuthNGuard_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_User_AuthNGuard_0" data-points="W3sieCI6NTQwLjQwNjAyMTg5NzgxMDIsInkiOjQ3LjV9LHsieCI6NDQ1LjEyNSwieSI6OTZ9LHsieCI6NDQ1LjEyNSwieSI6MTQ1fSx7IngiOjQ0NS4xMjUsInkiOjE3MH1d" data-look="classic" marker-end="url(#my-svg_flowchart-v2-pointEnd)"/><path d="M496.109,825L496.109,845.667C496.109,866.333,496.109,907.667,505.057,936.064C514.004,964.462,531.899,979.923,540.846,987.654L549.793,995.385" id="my-svg-L_AccountLinker_SessionMgr_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_AccountLinker_SessionMgr_0" data-points="W3sieCI6NDk2LjEwOTM3NSwieSI6ODI1fSx7IngiOjQ5Ni4xMDkzNzUsInkiOjk0OX0seyJ4Ijo1NTIuODIwMDAxNzc1NTY4MSwieSI6OTk4fV0=" data-look="classic" marker-end="url(#my-svg_flowchart-v2-pointEnd)"/><path d="M615.844,47.5L631.557,55.583C647.271,63.667,678.698,79.833,694.411,96.083C710.125,112.333,710.125,128.667,710.125,149.5C710.125,170.333,710.125,195.667,710.125,223C710.125,250.333,710.125,279.667,710.125,312.333C710.125,345,710.125,381,710.125,399L710.125,417" id="my-svg-L_User_ResourceConn_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_User_ResourceConn_0" data-points="W3sieCI6NjE1Ljg0Mzk3ODEwMjE4OTgsInkiOjQ3LjV9LHsieCI6NzEwLjEyNSwieSI6OTZ9LHsieCI6NzEwLjEyNSwieSI6MTQ1fSx7IngiOjcxMC4xMjUsInkiOjIyMX0seyJ4Ijo3MTAuMTI1LCJ5IjozMDl9LHsieCI6NzEwLjEyNSwieSI6NDIxfV0=" data-look="classic" marker-end="url(#my-svg_flowchart-v2-pointEnd)"/><path d="M445.125,272L445.125,278.167C445.125,284.333,445.125,296.667,412.394,318.348C379.663,340.029,314.201,371.058,281.47,386.573L248.74,402.088" id="my-svg-L_AuthNGuard_IdentityProviders_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_AuthNGuard_IdentityProviders_0" data-points="W3sieCI6NDQ1LjEyNSwieSI6MjcyfSx7IngiOjQ0NS4xMjUsInkiOjMwOX0seyJ4IjoyNDUuMTI1LCJ5Ijo0MDMuODAwODYzMjUyODkzODZ9XQ==" data-look="classic" marker-end="url(#my-svg_flowchart-v2-pointEnd)"/><path d="M245.125,512.296L286.956,530.746C328.786,549.197,412.448,586.099,454.279,624.549C496.109,663,496.109,703,496.109,723L496.109,743" id="my-svg-L_IdentityProviders_AccountLinker_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_IdentityProviders_AccountLinker_0" data-points="W3sieCI6MjQ1LjEyNSwieSI6NTEyLjI5NTYzMjMxOTk4NjV9LHsieCI6NDk2LjEwOTM3NSwieSI6NjIzfSx7IngiOjQ5Ni4xMDkzNzUsInkiOjc0N31d" data-look="classic" marker-end="url(#my-svg_flowchart-v2-pointEnd)"/><path d="M710.125,499L710.125,519.667C710.125,540.333,710.125,581.667,740.87,617.002C771.614,652.338,833.104,681.676,863.848,696.345L894.593,711.013" id="my-svg-L_ResourceConn_ResourceProviders_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_ResourceConn_ResourceProviders_0" data-points="W3sieCI6NzEwLjEyNSwieSI6NDk5fSx7IngiOjcxMC4xMjUsInkiOjYyM30seyJ4Ijo4OTguMjAzMTI1LCJ5Ijo3MTIuNzM1OTE4OTU1Mzg0Mn1d" data-look="classic" marker-end="url(#my-svg_flowchart-v2-pointEnd)"/><path d="M898.203,860.105L867.503,874.921C836.803,889.737,775.404,919.368,734.465,941.948C693.527,964.528,673.051,980.055,662.812,987.819L652.574,995.583" id="my-svg-L_ResourceProviders_SessionMgr_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_ResourceProviders_SessionMgr_0" data-points="W3sieCI6ODk4LjIwMzEyNSwieSI6ODYwLjEwNTQ3NjIwNDI0NDV9LHsieCI6NzE0LjAwMzkwNjI1LCJ5Ijo5NDl9LHsieCI6NjQ5LjM4Njg5NjMwNjgxODEsInkiOjk5OH1d" data-look="classic" marker-end="url(#my-svg_flowchart-v2-pointEnd)"/></g><g class="edgeLabels"><g class="edgeLabel" transform="translate(445.125, 96)"><g class="label" data-id="L_User_AuthNGuard_0" transform="translate(-100, -24)"><foreignObject width="200" height="48"><div xmlns="http://www.w3.org/1999/xhtml" class="labelBkg" style="display: table; white-space: break-spaces; line-height: 1.5; max-width: 200px; text-align: center; width: 200px;"><span class="edgeLabel"><p>1. Primary Login / Link Account</p></span></div></foreignObject></g></g><g class="edgeLabel" transform="translate(496.109375, 949)"><g class="label" data-id="L_AccountLinker_SessionMgr_0" transform="translate(-100, -24)"><foreignObject width="200" height="48"><div xmlns="http://www.w3.org/1999/xhtml" class="labelBkg" style="display: table; white-space: break-spaces; line-height: 1.5; max-width: 200px; text-align: center; width: 200px;"><span class="edgeLabel"><p>Unified Session (session.accounts)</p></span></div></foreignObject></g></g><g class="edgeLabel" transform="translate(710.125, 221)"><g class="label" data-id="L_User_ResourceConn_0" transform="translate(-100, -24)"><foreignObject width="200" height="48"><div xmlns="http://www.w3.org/1999/xhtml" class="labelBkg" style="display: table; white-space: break-spaces; line-height: 1.5; max-width: 200px; text-align: center; width: 200px;"><span class="edgeLabel"><p>2. Connect Resource API (Post-Login)</p></span></div></foreignObject></g></g><g class="edgeLabel" transform="translate(445.125, 309)"><g class="label" data-id="L_AuthNGuard_IdentityProviders_0" transform="translate(-58.6953125, -12)"><foreignObject width="117.390625" height="24"><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"><p>Request Identity</p></span></div></foreignObject></g></g><g class="edgeLabel" transform="translate(496.109375, 623)"><g class="label" data-id="L_IdentityProviders_AccountLinker_0" transform="translate(-62.7109375, -12)"><foreignObject width="125.421875" height="24"><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"><p>Tokens + UserInfo</p></span></div></foreignObject></g></g><g class="edgeLabel" transform="translate(710.125, 623)"><g class="label" data-id="L_ResourceConn_ResourceProviders_0" transform="translate(-100, -24)"><foreignObject width="200" height="48"><div xmlns="http://www.w3.org/1999/xhtml" class="labelBkg" style="display: table; white-space: break-spaces; line-height: 1.5; max-width: 200px; text-align: center; width: 200px;"><span class="edgeLabel"><p>Request Permissions (repo, drive)</p></span></div></foreignObject></g></g><g class="edgeLabel" transform="translate(769.58624, 922.17597)"><g class="label" data-id="L_ResourceProviders_SessionMgr_0" transform="translate(-83.6953125, -12)"><foreignObject width="167.390625" height="24"><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"><p>Resource Access Tokens</p></span></div></foreignObject></g></g></g><g class="nodes"><g class="root" transform="translate(890.203125, 664)"><g class="clusters"><g class="cluster" id="my-svg-ResourceProviders" data-look="classic"><rect style="" x="8" y="8" width="307.109375" height="228"/><g class="cluster-label" transform="translate(83.5859375, 8)"><foreignObject width="155.9375" 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>Resource APIs (AuthZ)</p></span></div></foreignObject></g></g></g><g class="edgePaths"/><g class="edgeLabels"/><g class="nodes"><g class="node default" id="my-svg-flowchart-GitHubAPI-7" data-look="classic" transform="translate(161.5546875, 70)"><rect class="basic label-container" style="" x="-116.0546875" y="-27" width="232.109375" height="54"/><g class="label" style="" transform="translate(-86.0546875, -12)"><rect/><foreignObject width="172.109375" 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>GitHub API (repos, orgs)</p></span></div></foreignObject></g></g><g class="node default" id="my-svg-flowchart-GoogleDriveAPI-8" data-look="classic" transform="translate(161.5546875, 174)"><rect class="basic label-container" style="" x="-89.1015625" y="-27" width="178.203125" height="54"/><g class="label" style="" transform="translate(-59.1015625, -12)"><rect/><foreignObject width="118.203125" 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>Google Drive API</p></span></div></foreignObject></g></g></g></g><g class="root" transform="translate(0, 338)"><g class="clusters"><g class="cluster" id="my-svg-IdentityProviders" data-look="classic"><rect style="" x="8" y="8" width="237.125" height="228"/><g class="cluster-label" transform="translate(33.28125, 8)"><foreignObject width="186.5625" 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>Identity Providers (AuthN)</p></span></div></foreignObject></g></g></g><g class="edgePaths"/><g class="edgeLabels"/><g class="nodes"><g class="node default" id="my-svg-flowchart-GoogleAuth-5" data-look="classic" transform="translate(126.5625, 70)"><rect class="basic label-container" style="" x="-81.0625" y="-27" width="162.125" height="54"/><g class="label" style="" transform="translate(-51.0625, -12)"><rect/><foreignObject width="102.125" 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>Google / OIDC</p></span></div></foreignObject></g></g><g class="node default" id="my-svg-flowchart-GitHubAuth-6" data-look="classic" transform="translate(126.5625, 174)"><rect class="basic label-container" style="" x="-79.359375" y="-27" width="158.71875" height="54"/><g class="label" style="" transform="translate(-49.359375, -12)"><rect/><foreignObject width="98.71875" 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>GitHub OAuth</p></span></div></foreignObject></g></g></g></g><g class="node default" id="my-svg-flowchart-User-0" data-look="classic" transform="translate(577.625, 27.5)"><g class="basic label-container outer-path"><path d="M-70.125 -19.5 C-15.428710942390204 -19.5, 39.26757811521959 -19.5, 70.125 -19.5 C70.125 -19.5, 70.125 -19.5, 70.125 -19.5 C70.52895957494084 -19.48704580269126, 70.93291914988168 -19.474091605382522, 71.3743692896239 -19.45993515863156 C71.84514631917101 -19.414519864783365, 72.31592334871813 -19.369104570935168, 72.61860465284786 -19.3399052695533 C72.8827491724499 -19.297200432095384, 73.14689369205193 -19.254495594637472, 73.85259325967675 -19.140403561325776 C74.18050252267133 -19.065560411855177, 74.50841178566591 -18.99071726238458, 75.07126438623538 -18.862249829261074 C75.39770459778264 -18.765364087993486, 75.72414480932989 -18.6684783467259, 76.2696102514606 -18.50658706670804 C76.63744024034825 -18.37122223061424, 77.0052702292359 -18.23585739452044, 77.4427065951478 -18.074876768247425 C77.73768863504901 -17.944296969514472, 78.03267067495023 -17.81371717078152, 78.58573291279238 -17.568892924097174 C78.86830176114961 -17.42147693690319, 79.15087060950685 -17.27406094970921, 79.69399226407678 -16.990714730406097 C80.02074931241876 -16.79263268746363, 80.34750636076073 -16.594550644521167, 80.7629305736057 -16.342718045390892 C81.16704834192507 -16.060822984187542, 81.57116611024442 -15.778927922984195, 81.78815534457871 -15.627565626425154 C82.05426720355959 -15.415348500421878, 82.32037906254047 -15.203131374418604, 82.76545370850187 -14.848196188198123 C83.09724484730344 -14.546872254651008, 83.42903598610502 -14.245548321103893, 83.69080973676799 -14.007812326905688 C83.89791375317964 -13.793960426404688, 84.10501776959129 -13.580108525903688, 84.56042094296865 -13.10986736009568 C84.78502090596453 -12.846039463460775, 85.00962086896041 -12.582211566825869, 85.37071390812658 -12.158051136245305 C85.57208075022895 -11.888237912724824, 85.77344759233134 -11.618424689204343, 86.11835896464063 -11.156274872382312 C86.38111119326616 -10.752616890360933, 86.64386342189171 -10.348958908339553, 86.80028387860425 -10.108655082055241 C86.97413158452648 -9.799970876201202, 87.14797929044869 -9.491286670347163, 87.4136864742735 -9.019496659696287 C87.59139559903825 -8.65047985975615, 87.769104723803 -8.281463059816012, 87.95604614880834 -7.893275190886684 C88.09568358570883 -7.548368022036293, 88.23532102260933 -7.203460853185901, 88.42513422997033 -6.734618561215508 C88.54969931352605 -6.3594483762964895, 88.67426439708179 -5.98427819137747, 88.81902313421489 -5.548287939305138 C88.90376236356563 -5.225140531576425, 88.98850159291638 -4.901993123847713, 89.13609428754556 -4.339158212148133 C89.21464930766008 -3.9357947864694447, 89.2932043277746 -3.5324313607907563, 89.37504477658177 -3.1121979531509023 C89.40749465360099 -2.8605231149428745, 89.43994453062021 -2.6088482767348466, 89.53489270250937 -1.872449005199798 C89.55331850369662 -1.5854522786692895, 89.57174430488388 -1.2984555521387808, 89.61498121591342 -0.6250057626472757 C89.61498121591342 -0.3218521743020995, 89.61498121591342 -0.018698585956923308, 89.61498121591342 0.625005762647271 C89.58858900708864 1.036085718500696, 89.56219679826387 1.4471656743541208, 89.53489270250937 1.8724490051997846 C89.47215480354826 2.3590317605426807, 89.40941690458715 2.8456145158855763, 89.37504477658177 3.1121979531508885 C89.31915224958159 3.399194266407052, 89.26325972258141 3.6861905796632155, 89.13609428754556 4.339158212148129 C89.05603238465345 4.644468946923956, 88.97597048176134 4.949779681699783, 88.81902313421489 5.548287939305125 C88.70580505674482 5.889282749794016, 88.59258697927477 6.230277560282907, 88.42513422997033 6.734618561215495 C88.27574374106966 7.103615957068742, 88.12635325216901 7.472613352921989, 87.95604614880834 7.893275190886679 C87.76390264873415 8.292265280003058, 87.57175914865994 8.691255369119437, 87.4136864742735 9.019496659696284 C87.28062648928655 9.255758136825149, 87.14756650429959 9.492019613954012, 86.80028387860425 10.108655082055236 C86.54831665729344 10.495744396661236, 86.29634943598262 10.882833711267237, 86.11835896464065 11.156274872382301 C85.84334083224691 11.524774115122636, 85.56832269985316 11.893273357862968, 85.37071390812659 12.158051136245302 C85.13288509769198 12.437418389824465, 84.89505628725739 12.716785643403627, 84.56042094296866 13.10986736009567 C84.36872680977858 13.307807290995461, 84.1770326765885 13.505747221895252, 83.69080973676799 14.007812326905684 C83.46174142840549 14.215846103745195, 83.23267312004299 14.423879880584703, 82.7654537085019 14.848196188198111 C82.53592308179716 15.031240754928632, 82.30639245509244 15.214285321659151, 81.78815534457871 15.627565626425152 C81.38132364009743 15.91135381201065, 80.97449193561616 16.19514199759615, 80.7629305736057 16.34271804539089 C80.44374659313995 16.536209250082504, 80.12456261267418 16.729700454774118, 79.69399226407678 16.990714730406093 C79.35495060049729 17.167592549128965, 79.0159089369178 17.344470367851837, 78.58573291279238 17.56889292409717 C78.32585619918187 17.683932636243735, 78.06597948557136 17.798972348390297, 77.4427065951478 18.07487676824742 C77.13188930923032 18.189260402628552, 76.82107202331282 18.303644037009683, 76.26961025146062 18.506587066708033 C75.82642977391875 18.63812070614066, 75.38324929637689 18.769654345573294, 75.07126438623541 18.86224982926107 C74.60792823780106 18.968003281590278, 74.14459208936671 19.07375673391948, 73.85259325967677 19.140403561325773 C73.38577927176753 19.215874426694395, 72.9189652838583 19.291345292063014, 72.61860465284788 19.3399052695533 C72.17171783741803 19.38301590317779, 71.72483102198817 19.42612653680228, 71.3743692896239 19.45993515863156 C70.89004905713176 19.47546636581544, 70.40572882463962 19.490997572999316, 70.125 19.5 C70.125 19.5, 70.125 19.5, 70.125 19.5 C30.963367482462466 19.5, -8.198265035075067 19.5, -70.125 19.5 C-70.49730919534075 19.488060768761308, -70.86961839068151 19.47612153752262, -71.3743692896239 19.45993515863156 C-71.64737403730342 19.43359871895916, -71.92037878498294 19.407262279286766, -72.61860465284786 19.3399052695533 C-73.09387845702445 19.263066686697428, -73.56915226120104 19.186228103841554, -73.85259325967675 19.140403561325773 C-74.15841470473173 19.07060181216341, -74.46423614978669 19.000800063001048, -75.07126438623538 18.862249829261074 C-75.4560033121384 18.74806133558889, -75.84074223804143 18.633872841916705, -76.26961025146059 18.506587066708043 C-76.55221440929375 18.40258612426124, -76.83481856712692 18.298585181814442, -77.4427065951478 18.074876768247425 C-77.78000817847501 17.92556336300443, -78.11730976180225 17.776249957761433, -78.58573291279238 17.568892924097174 C-78.9994122259066 17.353076691419734, -79.41309153902083 17.13726045874229, -79.69399226407678 16.990714730406097 C-79.91035159709665 16.859556431260877, -80.12671093011653 16.728398132115657, -80.76293057360569 16.3427180453909 C-80.97212109346125 16.196795794451308, -81.18131161331682 16.050873543511713, -81.78815534457871 15.627565626425156 C-82.04695160732133 15.421182493745691, -82.30574787006397 15.214799361066227, -82.76545370850187 14.848196188198125 C-83.08104030681504 14.561588789573932, -83.3966269051282 14.274981390949737, -83.69080973676797 14.007812326905697 C-84.02849134870195 13.659128338407935, -84.36617296063591 13.310444349910174, -84.56042094296865 13.109867360095677 C-84.81709732910848 12.808360671635707, -85.07377371524832 12.506853983175738, -85.37071390812658 12.158051136245307 C-85.55080571071522 11.916744527477258, -85.73089751330386 11.675437918709207, -86.11835896464063 11.156274872382316 C-86.33436286147317 10.824434881679766, -86.55036675830569 10.492594890977214, -86.80028387860425 10.108655082055249 C-87.0291550260519 9.702271184045184, -87.25802617349954 9.29588728603512, -87.4136864742735 9.019496659696289 C-87.55988986408651 8.715902192498158, -87.70609325389952 8.412307725300028, -87.95604614880834 7.893275190886686 C-88.05128129726202 7.658042532959744, -88.14651644571572 7.422809875032802, -88.42513422997033 6.73461856121551 C-88.57398117050937 6.28631529185126, -88.72282811104841 5.83801202248701, -88.81902313421489 5.5482879393051325 C-88.92159358646869 5.157142350546148, -89.0241640387225 4.7659967617871635, -89.13609428754556 4.339158212148136 C-89.19501794105416 4.036597704900016, -89.25394159456278 3.734037197651896, -89.37504477658177 3.112197953150904 C-89.4150009006767 2.802306144899819, -89.45495702477163 2.4924143366487335, -89.53489270250937 1.872449005199809 C-89.56588593776631 1.389704348783718, -89.59687917302325 0.9069596923676267, -89.61498121591342 0.6250057626472781 C-89.61498121591342 0.2700681857231335, -89.61498121591342 -0.08486939120101111, -89.61498121591342 -0.6250057626472687 C-89.59814560329637 -0.8872340186196359, -89.58130999067933 -1.1494622745920031, -89.53489270250937 -1.8724490051997822 C-89.48548116998776 -2.2556750940266097, -89.43606963746616 -2.6389011828534374, -89.37504477658177 -3.112197953150895 C-89.32122789703257 -3.388536255434566, -89.26741101748335 -3.664874557718237, -89.13609428754556 -4.339158212148126 C-89.06589787122839 -4.606847570884809, -88.9957014549112 -4.874536929621492, -88.81902313421489 -5.548287939305123 C-88.73237052668986 -5.809271786952419, -88.64571791916482 -6.0702556345997145, -88.42513422997033 -6.734618561215485 C-88.31730673283731 -7.000954563836859, -88.20947923570431 -7.267290566458232, -87.95604614880834 -7.893275190886676 C-87.79450260121652 -8.228723823939283, -87.63295905362472 -8.564172456991892, -87.4136864742735 -9.019496659696282 C-87.26449859862527 -9.284394839820267, -87.11531072297704 -9.549293019944253, -86.80028387860425 -10.108655082055243 C-86.59669816746526 -10.42141740478274, -86.39311245632628 -10.734179727510238, -86.11835896464063 -11.156274872382308 C-85.83122420476212 -11.541009292104762, -85.54408944488361 -11.925743711827215, -85.37071390812659 -12.158051136245302 C-85.2047656429371 -12.352983411260661, -85.03881737774762 -12.547915686276022, -84.56042094296866 -13.10986736009567 C-84.2418890222256 -13.438777720219928, -83.92335710148255 -13.767688080344186, -83.69080973676799 -14.007812326905677 C-83.37915308439386 -14.290850652608702, -83.06749643201975 -14.573888978311725, -82.7654537085019 -14.848196188198107 C-82.43321904231152 -15.113144493349155, -82.10098437612115 -15.378092798500203, -81.78815534457871 -15.627565626425149 C-81.51223393979292 -15.820036453958615, -81.23631253500713 -16.012507281492084, -80.76293057360571 -16.342718045390885 C-80.43435405999077 -16.541903058874187, -80.10577754637582 -16.741088072357492, -79.69399226407678 -16.99071473040609 C-79.46165761745803 -17.11192356672965, -79.22932297083928 -17.23313240305321, -78.5857329127924 -17.56889292409717 C-78.18727204136218 -17.745279731957535, -77.78881116993198 -17.921666539817902, -77.44270659514781 -18.07487676824742 C-77.1495848659151 -18.18274827419262, -76.8564631366824 -18.290619780137817, -76.26961025146062 -18.506587066708033 C-75.85190434718288 -18.63055998651463, -75.43419844290516 -18.754532906321227, -75.07126438623541 -18.862249829261067 C-74.77188337237074 -18.930581592031988, -74.47250235850605 -18.99891335480291, -73.85259325967677 -19.140403561325773 C-73.42848912757344 -19.208969428427572, -73.00438499547012 -19.277535295529376, -72.61860465284788 -19.3399052695533 C-72.23318161097035 -19.377086566864197, -71.84775856909283 -19.4142678641751, -71.3743692896239 -19.45993515863156 C-71.02740046475543 -19.47106177351124, -70.68043163988696 -19.482188388390927, -70.125 -19.5 C-70.125 -19.5, -70.125 -19.5, -70.125 -19.5" stroke="none" stroke-width="0" fill="#ECECFF" style=""/><path d="M-70.125 -19.5 C-28.109478062818063 -19.5, 13.906043874363874 -19.5, 70.125 -19.5 M-70.125 -19.5 C-35.78986996934843 -19.5, -1.4547399386968607 -19.5, 70.125 -19.5 M70.125 -19.5 C70.125 -19.5, 70.125 -19.5, 70.125 -19.5 M70.125 -19.5 C70.125 -19.5, 70.125 -19.5, 70.125 -19.5 M70.125 -19.5 C70.61805927046144 -19.484188548877952, 71.1111185409229 -19.4683770977559, 71.3743692896239 -19.45993515863156 M70.125 -19.5 C70.49808972399371 -19.488035738726616, 70.87117944798743 -19.47607147745323, 71.3743692896239 -19.45993515863156 M71.3743692896239 -19.45993515863156 C71.6276592793126 -19.435500577952073, 71.88094926900129 -19.411065997272583, 72.61860465284786 -19.3399052695533 M71.3743692896239 -19.45993515863156 C71.79681462811766 -19.419182364891917, 72.21925996661142 -19.378429571152274, 72.61860465284786 -19.3399052695533 M72.61860465284786 -19.3399052695533 C72.97519380944695 -19.28225470010457, 73.33178296604603 -19.22460413065584, 73.85259325967675 -19.140403561325776 M72.61860465284786 -19.3399052695533 C73.0162321949252 -19.27561993219788, 73.41385973700251 -19.211334594842462, 73.85259325967675 -19.140403561325776 M73.85259325967675 -19.140403561325776 C74.10199877639828 -19.083478379657187, 74.3514042931198 -19.026553197988594, 75.07126438623538 -18.862249829261074 M73.85259325967675 -19.140403561325776 C74.19944814594336 -19.061236196975084, 74.54630303220996 -18.982068832624392, 75.07126438623538 -18.862249829261074 M75.07126438623538 -18.862249829261074 C75.41139038445516 -18.761302218347243, 75.75151638267494 -18.660354607433412, 76.2696102514606 -18.50658706670804 M75.07126438623538 -18.862249829261074 C75.51745049860416 -18.729824133188718, 75.96363661097294 -18.597398437116365, 76.2696102514606 -18.50658706670804 M76.2696102514606 -18.50658706670804 C76.60830176440649 -18.38194545911393, 76.94699327735238 -18.25730385151982, 77.4427065951478 -18.074876768247425 M76.2696102514606 -18.50658706670804 C76.68769200436981 -18.352729116932093, 77.10577375727902 -18.198871167156145, 77.4427065951478 -18.074876768247425 M77.4427065951478 -18.074876768247425 C77.6801391011771 -17.969772441013294, 77.91757160720643 -17.864668113779164, 78.58573291279238 -17.568892924097174 M77.4427065951478 -18.074876768247425 C77.85077862936745 -17.89423538372518, 78.25885066358713 -17.71359399920294, 78.58573291279238 -17.568892924097174 M78.58573291279238 -17.568892924097174 C78.96734222478639 -17.36980759046233, 79.3489515367804 -17.170722256827485, 79.69399226407678 -16.990714730406097 M78.58573291279238 -17.568892924097174 C78.95237511723487 -17.37761592088507, 79.31901732167735 -17.186338917672966, 79.69399226407678 -16.990714730406097 M79.69399226407678 -16.990714730406097 C80.01218899332554 -16.797822003203958, 80.3303857225743 -16.60492927600182, 80.7629305736057 -16.342718045390892 M79.69399226407678 -16.990714730406097 C79.90924919271112 -16.86022471527784, 80.12450612134545 -16.72973470014958, 80.7629305736057 -16.342718045390892 M80.7629305736057 -16.342718045390892 C81.01666333530159 -16.165725054746066, 81.27039609699747 -15.988732064101237, 81.78815534457871 -15.627565626425154 M80.7629305736057 -16.342718045390892 C81.07823600951528 -16.1227746226527, 81.39354144542486 -15.902831199914509, 81.78815534457871 -15.627565626425154 M81.78815534457871 -15.627565626425154 C82.09774806690871 -15.380673668975327, 82.40734078923869 -15.133781711525499, 82.76545370850187 -14.848196188198123 M81.78815534457871 -15.627565626425154 C82.00345840672236 -15.455867163820699, 82.218761468866 -15.284168701216245, 82.76545370850187 -14.848196188198123 M82.76545370850187 -14.848196188198123 C82.95582149581088 -14.675309200619715, 83.14618928311991 -14.502422213041305, 83.69080973676799 -14.007812326905688 M82.76545370850187 -14.848196188198123 C83.1204833628912 -14.525767649651632, 83.47551301728055 -14.203339111105139, 83.69080973676799 -14.007812326905688 M83.69080973676799 -14.007812326905688 C83.99171261933026 -13.697105396074036, 84.29261550189254 -13.386398465242387, 84.56042094296865 -13.10986736009568 M83.69080973676799 -14.007812326905688 C83.99289466245554 -13.695884839499648, 84.29497958814308 -13.383957352093606, 84.56042094296865 -13.10986736009568 M84.56042094296865 -13.10986736009568 C84.83178255232588 -12.791110572831693, 85.10314416168309 -12.472353785567705, 85.37071390812658 -12.158051136245305 M84.56042094296865 -13.10986736009568 C84.83167007742708 -12.79124269224782, 85.1029192118855 -12.472618024399962, 85.37071390812658 -12.158051136245305 M85.37071390812658 -12.158051136245305 C85.57197325315984 -11.888381949004259, 85.77323259819309 -11.618712761763213, 86.11835896464063 -11.156274872382312 M85.37071390812658 -12.158051136245305 C85.58795741085585 -11.866964633878327, 85.80520091358511 -11.57587813151135, 86.11835896464063 -11.156274872382312 M86.11835896464063 -11.156274872382312 C86.34012202037414 -10.81558726705716, 86.56188507610764 -10.474899661732007, 86.80028387860425 -10.108655082055241 M86.11835896464063 -11.156274872382312 C86.2930819496579 -10.887853447704941, 86.46780493467516 -10.61943202302757, 86.80028387860425 -10.108655082055241 M86.80028387860425 -10.108655082055241 C86.99663345153554 -9.760016532765464, 87.19298302446686 -9.411377983475688, 87.4136864742735 -9.019496659696287 M86.80028387860425 -10.108655082055241 C87.0361590329863 -9.689834860500529, 87.27203418736836 -9.271014638945816, 87.4136864742735 -9.019496659696287 M87.4136864742735 -9.019496659696287 C87.60101299921374 -8.63050912251235, 87.78833952415397 -8.241521585328412, 87.95604614880834 -7.893275190886684 M87.4136864742735 -9.019496659696287 C87.53764569241065 -8.76209269093213, 87.6616049105478 -8.504688722167971, 87.95604614880834 -7.893275190886684 M87.95604614880834 -7.893275190886684 C88.11434206610247 -7.50228121472685, 88.27263798339658 -7.111287238567016, 88.42513422997033 -6.734618561215508 M87.95604614880834 -7.893275190886684 C88.10903708367327 -7.515384623891796, 88.2620280185382 -7.137494056896907, 88.42513422997033 -6.734618561215508 M88.42513422997033 -6.734618561215508 C88.51451152913498 -6.465428376470318, 88.60388882829963 -6.196238191725128, 88.81902313421489 -5.548287939305138 M88.42513422997033 -6.734618561215508 C88.52627559066256 -6.429996897497913, 88.62741695135479 -6.125375233780318, 88.81902313421489 -5.548287939305138 M88.81902313421489 -5.548287939305138 C88.9158913481221 -5.178887456727443, 89.01275956202932 -4.809486974149749, 89.13609428754556 -4.339158212148133 M88.81902313421489 -5.548287939305138 C88.90308973449649 -5.2277055577363205, 88.9871563347781 -4.907123176167503, 89.13609428754556 -4.339158212148133 M89.13609428754556 -4.339158212148133 C89.20635907754243 -3.978363365982847, 89.27662386753929 -3.617568519817561, 89.37504477658177 -3.1121979531509023 M89.13609428754556 -4.339158212148133 C89.20460477207271 -3.98737135379726, 89.27311525659985 -3.6355844954463867, 89.37504477658177 -3.1121979531509023 M89.37504477658177 -3.1121979531509023 C89.43263611109717 -2.665530935344805, 89.49022744561258 -2.218863917538708, 89.53489270250937 -1.872449005199798 M89.37504477658177 -3.1121979531509023 C89.41483672650227 -2.8035794473767788, 89.45462867642279 -2.4949609416026552, 89.53489270250937 -1.872449005199798 M89.53489270250937 -1.872449005199798 C89.55781987027922 -1.5153398607076594, 89.58074703804907 -1.1582307162155205, 89.61498121591342 -0.6250057626472757 M89.53489270250937 -1.872449005199798 C89.56326219487951 -1.43057126209261, 89.59163168724967 -0.9886935189854223, 89.61498121591342 -0.6250057626472757 M89.61498121591342 -0.6250057626472757 C89.61498121591342 -0.31824254425218823, 89.61498121591342 -0.011479325857100764, 89.61498121591342 0.625005762647271 M89.61498121591342 -0.6250057626472757 C89.61498121591342 -0.3169718081768867, 89.61498121591342 -0.00893785370649769, 89.61498121591342 0.625005762647271 M89.61498121591342 0.625005762647271 C89.58644807162266 1.0694325165154996, 89.55791492733188 1.5138592703837284, 89.53489270250937 1.8724490051997846 M89.61498121591342 0.625005762647271 C89.59131398987194 0.9936419120844686, 89.56764676383044 1.362278061521666, 89.53489270250937 1.8724490051997846 M89.53489270250937 1.8724490051997846 C89.48649855960683 2.2477844210474807, 89.43810441670428 2.623119836895177, 89.37504477658177 3.1121979531508885 M89.53489270250937 1.8724490051997846 C89.49211344649092 2.2042364671592938, 89.44933419047246 2.536023929118803, 89.37504477658177 3.1121979531508885 M89.37504477658177 3.1121979531508885 C89.29628801321923 3.51659728776978, 89.21753124985666 3.920996622388671, 89.13609428754556 4.339158212148129 M89.37504477658177 3.1121979531508885 C89.29083019810462 3.544622014873641, 89.20661561962746 3.9770460765963933, 89.13609428754556 4.339158212148129 M89.13609428754556 4.339158212148129 C89.05194528913601 4.660054813490333, 88.96779629072647 4.9809514148325365, 88.81902313421489 5.548287939305125 M89.13609428754556 4.339158212148129 C89.04767102085482 4.676354450926143, 88.95924775416407 5.013550689704157, 88.81902313421489 5.548287939305125 M88.81902313421489 5.548287939305125 C88.66563963339708 6.010254605426304, 88.51225613257927 6.472221271547483, 88.42513422997033 6.734618561215495 M88.81902313421489 5.548287939305125 C88.7001068556895 5.906444823487649, 88.5811905771641 6.264601707670172, 88.42513422997033 6.734618561215495 M88.42513422997033 6.734618561215495 C88.2925994701169 7.061981980438715, 88.16006471026348 7.389345399661936, 87.95604614880834 7.893275190886679 M88.42513422997033 6.734618561215495 C88.26250574599842 7.1363140608339215, 88.09987726202652 7.538009560452348, 87.95604614880834 7.893275190886679 M87.95604614880834 7.893275190886679 C87.81160921128361 8.193201582112176, 87.66717227375887 8.493127973337671, 87.4136864742735 9.019496659696284 M87.95604614880834 7.893275190886679 C87.76891000725901 8.281867392885863, 87.58177386570968 8.670459594885047, 87.4136864742735 9.019496659696284 M87.4136864742735 9.019496659696284 C87.2009740353559 9.397189134464597, 86.98826159643828 9.774881609232912, 86.80028387860425 10.108655082055236 M87.4136864742735 9.019496659696284 C87.28270802510008 9.25206215920987, 87.15172957592665 9.484627658723458, 86.80028387860425 10.108655082055236 M86.80028387860425 10.108655082055236 C86.54645620524066 10.498602550615628, 86.29262853187707 10.888550019176021, 86.11835896464065 11.156274872382301 M86.80028387860425 10.108655082055236 C86.6275612148072 10.374003476176899, 86.45483855101016 10.639351870298563, 86.11835896464065 11.156274872382301 M86.11835896464065 11.156274872382301 C85.93815378448173 11.397733396765616, 85.7579486043228 11.639191921148933, 85.37071390812659 12.158051136245302 M86.11835896464065 11.156274872382301 C85.96668937835575 11.359498300620507, 85.81501979207086 11.56272172885871, 85.37071390812659 12.158051136245302 M85.37071390812659 12.158051136245302 C85.18354742308519 12.377907539649637, 84.99638093804379 12.597763943053973, 84.56042094296866 13.10986736009567 M85.37071390812659 12.158051136245302 C85.14603701823388 12.421969395590475, 84.92136012834118 12.685887654935646, 84.56042094296866 13.10986736009567 M84.56042094296866 13.10986736009567 C84.24032460447879 13.440393109984601, 83.92022826598892 13.77091885987353, 83.69080973676799 14.007812326905684 M84.56042094296866 13.10986736009567 C84.37126195722789 13.305189543114574, 84.18210297148711 13.500511726133478, 83.69080973676799 14.007812326905684 M83.69080973676799 14.007812326905684 C83.3413111338042 14.325217710891097, 82.9918125308404 14.642623094876512, 82.7654537085019 14.848196188198111 M83.69080973676799 14.007812326905684 C83.40567813649129 14.266761302108256, 83.12054653621458 14.525710277310825, 82.7654537085019 14.848196188198111 M82.7654537085019 14.848196188198111 C82.4159772143145 15.126894392352476, 82.0665007201271 15.405592596506843, 81.78815534457871 15.627565626425152 M82.7654537085019 14.848196188198111 C82.42775820753295 15.117499363766159, 82.090062706564 15.386802539334207, 81.78815534457871 15.627565626425152 M81.78815534457871 15.627565626425152 C81.47271321654291 15.847604399673285, 81.15727108850712 16.067643172921418, 80.7629305736057 16.34271804539089 M81.78815534457871 15.627565626425152 C81.45805424180374 15.857829865874548, 81.12795313902876 16.088094105323943, 80.7629305736057 16.34271804539089 M80.7629305736057 16.34271804539089 C80.43013536751207 16.544460455046565, 80.09734016141843 16.74620286470224, 79.69399226407678 16.990714730406093 M80.7629305736057 16.34271804539089 C80.53503290448204 16.48087095168902, 80.30713523535836 16.61902385798715, 79.69399226407678 16.990714730406093 M79.69399226407678 16.990714730406093 C79.42368726448494 17.131732675554538, 79.15338226489311 17.272750620702983, 78.58573291279238 17.56889292409717 M79.69399226407678 16.990714730406093 C79.30660428207247 17.192814792483897, 78.91921630006816 17.394914854561705, 78.58573291279238 17.56889292409717 M78.58573291279238 17.56889292409717 C78.17411608049993 17.751103485573537, 77.76249924820748 17.933314047049908, 77.4427065951478 18.07487676824742 M78.58573291279238 17.56889292409717 C78.30963829251857 17.691111822436472, 78.03354367224475 17.813330720775774, 77.4427065951478 18.07487676824742 M77.4427065951478 18.07487676824742 C76.97896622536642 18.245537511095957, 76.51522585558504 18.41619825394449, 76.26961025146062 18.506587066708033 M77.4427065951478 18.07487676824742 C77.01564812423358 18.232038233229087, 76.58858965331936 18.38919969821075, 76.26961025146062 18.506587066708033 M76.26961025146062 18.506587066708033 C75.91592112946009 18.611560141565704, 75.56223200745956 18.716533216423375, 75.07126438623541 18.86224982926107 M76.26961025146062 18.506587066708033 C75.99341422009259 18.58856059903551, 75.71721818872456 18.67053413136299, 75.07126438623541 18.86224982926107 M75.07126438623541 18.86224982926107 C74.80572187126751 18.922858175475643, 74.5401793562996 18.983466521690215, 73.85259325967677 19.140403561325773 M75.07126438623541 18.86224982926107 C74.81064398951024 18.92173473410656, 74.55002359278508 18.98121963895205, 73.85259325967677 19.140403561325773 M73.85259325967677 19.140403561325773 C73.47950989767509 19.20072078598952, 73.10642653567339 19.26103801065327, 72.61860465284788 19.3399052695533 M73.85259325967677 19.140403561325773 C73.56839687374678 19.186350229027045, 73.28420048781679 19.232296896728315, 72.61860465284788 19.3399052695533 M72.61860465284788 19.3399052695533 C72.33320611809215 19.36743732295923, 72.04780758333641 19.394969376365157, 71.3743692896239 19.45993515863156 M72.61860465284788 19.3399052695533 C72.35407819980328 19.365423818338904, 72.0895517467587 19.390942367124513, 71.3743692896239 19.45993515863156 M71.3743692896239 19.45993515863156 C70.90943090083213 19.474844827812436, 70.44449251204036 19.489754496993314, 70.125 19.5 M71.3743692896239 19.45993515863156 C70.9054167154535 19.474973554924393, 70.4364641412831 19.490011951217223, 70.125 19.5 M70.125 19.5 C70.125 19.5, 70.125 19.5, 70.125 19.5 M70.125 19.5 C70.125 19.5, 70.125 19.5, 70.125 19.5 M70.125 19.5 C28.018003353124094 19.5, -14.088993293751813 19.5, -70.125 19.5 M70.125 19.5 C36.62407384173321 19.5, 3.1231476834664136 19.5, -70.125 19.5 M-70.125 19.5 C-70.53658320287731 19.48680132778183, -70.94816640575462 19.47360265556366, -71.3743692896239 19.45993515863156 M-70.125 19.5 C-70.3776076338367 19.49189936485379, -70.6302152676734 19.483798729707576, -71.3743692896239 19.45993515863156 M-71.3743692896239 19.45993515863156 C-71.83902851898245 19.415110041609825, -72.30368774834098 19.370284924588088, -72.61860465284786 19.3399052695533 M-71.3743692896239 19.45993515863156 C-71.77485415636588 19.42130086519048, -72.17533902310787 19.3826665717494, -72.61860465284786 19.3399052695533 M-72.61860465284786 19.3399052695533 C-72.91236302515095 19.292412694049535, -73.20612139745404 19.244920118545775, -73.85259325967675 19.140403561325773 M-72.61860465284786 19.3399052695533 C-72.98336150003436 19.280934211231784, -73.34811834722085 19.221963152910266, -73.85259325967675 19.140403561325773 M-73.85259325967675 19.140403561325773 C-74.28429993412361 19.041869330032608, -74.71600660857045 18.94333509873944, -75.07126438623538 18.862249829261074 M-73.85259325967675 19.140403561325773 C-74.26512122788004 19.046246744579943, -74.67764919608335 18.952089927834113, -75.07126438623538 18.862249829261074 M-75.07126438623538 18.862249829261074 C-75.43951565492347 18.752954785704805, -75.80776692361155 18.64365974214854, -76.26961025146059 18.506587066708043 M-75.07126438623538 18.862249829261074 C-75.40932744894343 18.761914486778558, -75.74739051165146 18.66157914429604, -76.26961025146059 18.506587066708043 M-76.26961025146059 18.506587066708043 C-76.66590340785866 18.36074752185977, -77.06219656425674 18.214907977011503, -77.4427065951478 18.074876768247425 M-76.26961025146059 18.506587066708043 C-76.70975053886366 18.3446113723315, -77.14989082626673 18.182635677954952, -77.4427065951478 18.074876768247425 M-77.4427065951478 18.074876768247425 C-77.8025925089306 17.915565949852102, -78.1624784227134 17.75625513145678, -78.58573291279238 17.568892924097174 M-77.4427065951478 18.074876768247425 C-77.80649399490802 17.913838877743366, -78.17028139466825 17.752800987239308, -78.58573291279238 17.568892924097174 M-78.58573291279238 17.568892924097174 C-78.98853114227278 17.358753345781828, -79.39132937175319 17.148613767466482, -79.69399226407678 16.990714730406097 M-78.58573291279238 17.568892924097174 C-78.98076035924495 17.362807358310025, -79.37578780569751 17.156721792522877, -79.69399226407678 16.990714730406097 M-79.69399226407678 16.990714730406097 C-80.02131582257068 16.792289265680346, -80.3486393810646 16.593863800954598, -80.76293057360569 16.3427180453909 M-79.69399226407678 16.990714730406097 C-79.97118070623961 16.822681467826893, -80.24836914840245 16.65464820524769, -80.76293057360569 16.3427180453909 M-80.76293057360569 16.3427180453909 C-81.08631570547428 16.117138576516105, -81.40970083734287 15.891559107641308, -81.78815534457871 15.627565626425156 M-80.76293057360569 16.3427180453909 C-81.15858477231615 16.066726803964702, -81.5542389710266 15.7907355625385, -81.78815534457871 15.627565626425156 M-81.78815534457871 15.627565626425156 C-82.03171311599797 15.433334785062792, -82.27527088741724 15.239103943700428, -82.76545370850187 14.848196188198125 M-81.78815534457871 15.627565626425156 C-82.09535185283849 15.382584585930394, -82.40254836109825 15.13760354543563, -82.76545370850187 14.848196188198125 M-82.76545370850187 14.848196188198125 C-83.01715433250142 14.61960834111531, -83.26885495650096 14.391020494032494, -83.69080973676797 14.007812326905697 M-82.76545370850187 14.848196188198125 C-83.09813581296525 14.546063103210606, -83.43081791742866 14.243930018223086, -83.69080973676797 14.007812326905697 M-83.69080973676797 14.007812326905697 C-84.01152048320222 13.676652150370373, -84.33223122963646 13.345491973835049, -84.56042094296865 13.109867360095677 M-83.69080973676797 14.007812326905697 C-83.8993720919029 13.79245457194108, -84.10793444703782 13.577096816976466, -84.56042094296865 13.109867360095677 M-84.56042094296865 13.109867360095677 C-84.73651088665673 12.903022092438016, -84.9126008303448 12.696176824780357, -85.37071390812658 12.158051136245307 M-84.56042094296865 13.109867360095677 C-84.83532886601951 12.78694487097618, -85.11023678907036 12.464022381856683, -85.37071390812658 12.158051136245307 M-85.37071390812658 12.158051136245307 C-85.6046943003913 11.844538726662822, -85.83867469265603 11.531026317080338, -86.11835896464063 11.156274872382316 M-85.37071390812658 12.158051136245307 C-85.54230046384065 11.928140783445254, -85.71388701955472 11.698230430645202, -86.11835896464063 11.156274872382316 M-86.11835896464063 11.156274872382316 C-86.34065069104217 10.814775086943108, -86.56294241744372 10.4732753015039, -86.80028387860425 10.108655082055249 M-86.11835896464063 11.156274872382316 C-86.37598537928287 10.76049151711308, -86.63361179392508 10.364708161843845, -86.80028387860425 10.108655082055249 M-86.80028387860425 10.108655082055249 C-86.98176652958801 9.786414258122425, -87.16324918057177 9.4641734341896, -87.4136864742735 9.019496659696289 M-86.80028387860425 10.108655082055249 C-86.99661940121956 9.760041480524256, -87.19295492383488 9.411427878993264, -87.4136864742735 9.019496659696289 M-87.4136864742735 9.019496659696289 C-87.58248033552816 8.66899259519092, -87.75127419678283 8.318488530685553, -87.95604614880834 7.893275190886686 M-87.4136864742735 9.019496659696289 C-87.531618309892 8.77460867969745, -87.64955014551047 8.529720699698608, -87.95604614880834 7.893275190886686 M-87.95604614880834 7.893275190886686 C-88.10406305065513 7.527670581613007, -88.25207995250192 7.162065972339328, -88.42513422997033 6.73461856121551 M-87.95604614880834 7.893275190886686 C-88.06494603210838 7.624290373699571, -88.17384591540842 7.355305556512457, -88.42513422997033 6.73461856121551 M-88.42513422997033 6.73461856121551 C-88.54685542858994 6.368013704612557, -88.66857662720953 6.001408848009604, -88.81902313421489 5.5482879393051325 M-88.42513422997033 6.73461856121551 C-88.50650126294214 6.489554021980554, -88.58786829591395 6.2444894827456, -88.81902313421489 5.5482879393051325 M-88.81902313421489 5.5482879393051325 C-88.89149781849416 5.271910557421427, -88.96397250277342 4.995533175537723, -89.13609428754556 4.339158212148136 M-88.81902313421489 5.5482879393051325 C-88.88614060298599 5.292339941985953, -88.95325807175709 5.036391944666775, -89.13609428754556 4.339158212148136 M-89.13609428754556 4.339158212148136 C-89.18784493554386 4.073429572180157, -89.23959558354217 3.80770093221218, -89.37504477658177 3.112197953150904 M-89.13609428754556 4.339158212148136 C-89.21615009196015 3.9280885762795, -89.29620589637473 3.5170189404108645, -89.37504477658177 3.112197953150904 M-89.37504477658177 3.112197953150904 C-89.43049758539506 2.6821169183907507, -89.48595039420834 2.2520358836305974, -89.53489270250937 1.872449005199809 M-89.37504477658177 3.112197953150904 C-89.4122427309851 2.8236979643656235, -89.44944068538844 2.5351979755803424, -89.53489270250937 1.872449005199809 M-89.53489270250937 1.872449005199809 C-89.56181859947726 1.4530564257320535, -89.58874449644514 1.033663846264298, -89.61498121591342 0.6250057626472781 M-89.53489270250937 1.872449005199809 C-89.56050177703177 1.4735669982404263, -89.58611085155418 1.0746849912810434, -89.61498121591342 0.6250057626472781 M-89.61498121591342 0.6250057626472781 C-89.61498121591342 0.34471530841531584, -89.61498121591342 0.06442485418335353, -89.61498121591342 -0.6250057626472687 M-89.61498121591342 0.6250057626472781 C-89.61498121591342 0.1308687075139892, -89.61498121591342 -0.3632683476192997, -89.61498121591342 -0.6250057626472687 M-89.61498121591342 -0.6250057626472687 C-89.59179548917571 -0.9861421717688601, -89.568609762438 -1.3472785808904515, -89.53489270250937 -1.8724490051997822 M-89.61498121591342 -0.6250057626472687 C-89.58339229712487 -1.1170286708952093, -89.55180337833632 -1.60905157914315, -89.53489270250937 -1.8724490051997822 M-89.53489270250937 -1.8724490051997822 C-89.48915174676274 -2.2272068253971686, -89.44341079101613 -2.5819646455945553, -89.37504477658177 -3.112197953150895 M-89.53489270250937 -1.8724490051997822 C-89.47313163999279 -2.3514556099770636, -89.41137057747622 -2.830462214754345, -89.37504477658177 -3.112197953150895 M-89.37504477658177 -3.112197953150895 C-89.30639040411634 -3.4647236456541353, -89.23773603165091 -3.8172493381573753, -89.13609428754556 -4.339158212148126 M-89.37504477658177 -3.112197953150895 C-89.31656868749117 -3.412460311705345, -89.25809259840057 -3.7127226702597946, -89.13609428754556 -4.339158212148126 M-89.13609428754556 -4.339158212148126 C-89.04763236652333 -4.676501856645001, -88.9591704455011 -5.013845501141875, -88.81902313421489 -5.548287939305123 M-89.13609428754556 -4.339158212148126 C-89.0106739812964 -4.817440197380737, -88.88525367504725 -5.295722182613348, -88.81902313421489 -5.548287939305123 M-88.81902313421489 -5.548287939305123 C-88.66206706057118 -6.0210146255657255, -88.50511098692746 -6.493741311826328, -88.42513422997033 -6.734618561215485 M-88.81902313421489 -5.548287939305123 C-88.70010244602562 -5.906458104692629, -88.58118175783636 -6.264628270080136, -88.42513422997033 -6.734618561215485 M-88.42513422997033 -6.734618561215485 C-88.26409760700669 -7.132382133366983, -88.10306098404304 -7.530145705518481, -87.95604614880834 -7.893275190886676 M-88.42513422997033 -6.734618561215485 C-88.25387243969466 -7.157638494317855, -88.08261064941898 -7.580658427420223, -87.95604614880834 -7.893275190886676 M-87.95604614880834 -7.893275190886676 C-87.75009792239923 -8.320931089611323, -87.54414969599011 -8.748586988335969, -87.4136864742735 -9.019496659696282 M-87.95604614880834 -7.893275190886676 C-87.82042837048319 -8.17488840933446, -87.68481059215803 -8.456501627782247, -87.4136864742735 -9.019496659696282 M-87.4136864742735 -9.019496659696282 C-87.20164120850482 -9.39600450098006, -86.98959594273614 -9.772512342263841, -86.80028387860425 -10.108655082055243 M-87.4136864742735 -9.019496659696282 C-87.26679974349098 -9.280308924095024, -87.11991301270845 -9.541121188493767, -86.80028387860425 -10.108655082055243 M-86.80028387860425 -10.108655082055243 C-86.5461752090603 -10.499034236206704, -86.29206653951634 -10.889413390358165, -86.11835896464063 -11.156274872382308 M-86.80028387860425 -10.108655082055243 C-86.56548354466909 -10.469371447697513, -86.33068321073394 -10.830087813339784, -86.11835896464063 -11.156274872382308 M-86.11835896464063 -11.156274872382308 C-85.82473199338486 -11.54970826389768, -85.53110502212907 -11.943141655413049, -85.37071390812659 -12.158051136245302 M-86.11835896464063 -11.156274872382308 C-85.84467890775183 -11.522981215847214, -85.57099885086302 -11.889687559312117, -85.37071390812659 -12.158051136245302 M-85.37071390812659 -12.158051136245302 C-85.10223841797776 -12.473417723662267, -84.83376292782894 -12.788784311079235, -84.56042094296866 -13.10986736009567 M-85.37071390812659 -12.158051136245302 C-85.19709590871588 -12.361992717497152, -85.02347790930517 -12.565934298749005, -84.56042094296866 -13.10986736009567 M-84.56042094296866 -13.10986736009567 C-84.29923375869475 -13.37956457172511, -84.03804657442085 -13.649261783354552, -83.69080973676799 -14.007812326905677 M-84.56042094296866 -13.10986736009567 C-84.32312462047413 -13.354895295461663, -84.08582829797962 -13.599923230827654, -83.69080973676799 -14.007812326905677 M-83.69080973676799 -14.007812326905677 C-83.3925168255026 -14.278714056518972, -83.09422391423719 -14.549615786132268, -82.7654537085019 -14.848196188198107 M-83.69080973676799 -14.007812326905677 C-83.34909677877937 -14.31814699412152, -83.00738382079075 -14.628481661337364, -82.7654537085019 -14.848196188198107 M-82.7654537085019 -14.848196188198107 C-82.53412779826006 -15.032672445774967, -82.30280188801822 -15.217148703351826, -81.78815534457871 -15.627565626425149 M-82.7654537085019 -14.848196188198107 C-82.42146658703608 -15.122516763685354, -82.07747946557026 -15.396837339172599, -81.78815534457871 -15.627565626425149 M-81.78815534457871 -15.627565626425149 C-81.5193131170553 -15.815098326353016, -81.25047088953191 -16.002631026280884, -80.76293057360571 -16.342718045390885 M-81.78815534457871 -15.627565626425149 C-81.52205575033231 -15.813185184105665, -81.2559561560859 -15.998804741786179, -80.76293057360571 -16.342718045390885 M-80.76293057360571 -16.342718045390885 C-80.45261637367207 -16.530832336999318, -80.14230217373841 -16.71894662860775, -79.69399226407678 -16.99071473040609 M-80.76293057360571 -16.342718045390885 C-80.445605927627 -16.535082110589794, -80.12828128164827 -16.727446175788703, -79.69399226407678 -16.99071473040609 M-79.69399226407678 -16.99071473040609 C-79.29225932590734 -17.200298546926867, -78.89052638773788 -17.409882363447643, -78.5857329127924 -17.56889292409717 M-79.69399226407678 -16.99071473040609 C-79.45697762500538 -17.114365115794516, -79.21996298593399 -17.238015501182947, -78.5857329127924 -17.56889292409717 M-78.5857329127924 -17.56889292409717 C-78.30637973223398 -17.692554290412705, -78.02702655167558 -17.81621565672824, -77.44270659514781 -18.07487676824742 M-78.5857329127924 -17.56889292409717 C-78.29642805824238 -17.69695960128287, -78.00712320369236 -17.825026278468567, -77.44270659514781 -18.07487676824742 M-77.44270659514781 -18.07487676824742 C-77.10122544980295 -18.20054498635143, -76.7597443044581 -18.326213204455446, -76.26961025146062 -18.506587066708033 M-77.44270659514781 -18.07487676824742 C-77.14711747067614 -18.18365629844891, -76.85152834620446 -18.292435828650397, -76.26961025146062 -18.506587066708033 M-76.26961025146062 -18.506587066708033 C-75.93581081894915 -18.60565698612846, -75.6020113864377 -18.704726905548885, -75.07126438623541 -18.862249829261067 M-76.26961025146062 -18.506587066708033 C-75.98195264658618 -18.591962333889185, -75.69429504171174 -18.677337601070338, -75.07126438623541 -18.862249829261067 M-75.07126438623541 -18.862249829261067 C-74.81070713227744 -18.92172032218199, -74.55014987831949 -18.981190815102913, -73.85259325967677 -19.140403561325773 M-75.07126438623541 -18.862249829261067 C-74.81655054826376 -18.920386600614968, -74.5618367102921 -18.97852337196887, -73.85259325967677 -19.140403561325773 M-73.85259325967677 -19.140403561325773 C-73.49236665787267 -19.19864220470644, -73.13214005606856 -19.25688084808711, -72.61860465284788 -19.3399052695533 M-73.85259325967677 -19.140403561325773 C-73.44002727332271 -19.20710403050249, -73.02746128696865 -19.273804499679205, -72.61860465284788 -19.3399052695533 M-72.61860465284788 -19.3399052695533 C-72.3165008106562 -19.369048863876504, -72.0143969684645 -19.39819245819971, -71.3743692896239 -19.45993515863156 M-72.61860465284788 -19.3399052695533 C-72.22093880206353 -19.378267615915306, -71.8232729512792 -19.416629962277316, -71.3743692896239 -19.45993515863156 M-71.3743692896239 -19.45993515863156 C-70.90519848365591 -19.47498055319338, -70.43602767768792 -19.490025947755196, -70.125 -19.5 M-71.3743692896239 -19.45993515863156 C-71.11390303533567 -19.468287804439775, -70.85343678104745 -19.476640450247988, -70.125 -19.5 M-70.125 -19.5 C-70.125 -19.5, -70.125 -19.5, -70.125 -19.5 M-70.125 -19.5 C-70.125 -19.5, -70.125 -19.5, -70.125 -19.5" stroke="#9370DB" stroke-width="1.3" fill="none" stroke-dasharray="0 0" style=""/></g><g class="label" style="" transform="translate(-77.25, -12)"><rect/><foreignObject width="154.5" 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>User Client / Browser</p></span></div></foreignObject></g></g><g class="node default" id="my-svg-flowchart-AuthNGuard-1" data-look="classic" transform="translate(445.125, 221)"><rect class="basic label-container" style="" x="-130" y="-51" width="260" height="102"/><g class="label" style="" transform="translate(-100, -36)"><rect/><foreignObject width="200" height="72"><div xmlns="http://www.w3.org/1999/xhtml" style="display: table; white-space: break-spaces; line-height: 1.5; max-width: 200px; text-align: center; width: 200px;"><span class="nodeLabel"><p>Primary AuthN Guard<br />(Minimal Identity Scopes Only)</p></span></div></foreignObject></g></g><g class="node default" id="my-svg-flowchart-SessionMgr-2" data-look="classic" transform="translate(597.95703125, 1037)"><rect class="basic label-container" style="" x="-130" y="-39" width="260" height="78"/><g class="label" style="" transform="translate(-100, -24)"><rect/><foreignObject width="200" height="48"><div xmlns="http://www.w3.org/1999/xhtml" style="display: table; white-space: break-spaces; line-height: 1.5; max-width: 200px; text-align: center; width: 200px;"><span class="nodeLabel"><p>Session Handler & Unified Session</p></span></div></foreignObject></g></g><g class="node default" id="my-svg-flowchart-AccountLinker-3" data-look="classic" transform="translate(496.109375, 786)"><rect class="basic label-container" style="" x="-149.6796875" y="-39" width="299.359375" height="78"/><g class="label" style="" transform="translate(-119.6796875, -24)"><rect/><foreignObject width="239.359375" height="48"><div xmlns="http://www.w3.org/1999/xhtml" style="display: table; white-space: break-spaces; line-height: 1.5; max-width: 200px; text-align: center; width: 200px;"><span class="nodeLabel"><p>Account Linker<br />(AUTO_LINK_BY_VERIFIED_EMAIL)</p></span></div></foreignObject></g></g><g class="node default" id="my-svg-flowchart-ResourceConn-4" data-look="classic" transform="translate(710.125, 460)"><rect class="basic label-container" style="" x="-118.078125" y="-39" width="236.15625" height="78"/><g class="label" style="" transform="translate(-88.078125, -24)"><rect/><foreignObject width="176.15625" height="48"><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>Resource Connection API<br />(Post-Login AuthZ)</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></svg>
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
<svg id="my-svg" width="100%" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" style="max-width: 1914px; background-color: white;" viewBox="-50 -10 1914 748" role="graphics-document document" aria-roledescription="sequence"><g><rect x="1575" y="662" fill="#eaeaea" stroke="#666" width="239" height="65" name="ResourceAPI" rx="3" ry="3" class="actor actor-bottom"/><text x="1694.5" y="694.5" dominant-baseline="central" alignment-baseline="central" class="actor actor-box" style="text-anchor: middle; font-size: 16px; font-weight: 400;"><tspan x="1694.5" dy="0">GitHub OAuth (Resource Scopes)</tspan></text></g><g><rect x="1375" y="662" fill="#eaeaea" stroke="#666" width="150" height="65" name="SessionStore" rx="3" ry="3" class="actor actor-bottom"/><text x="1450" y="694.5" dominant-baseline="central" alignment-baseline="central" class="actor actor-box" style="text-anchor: middle; font-size: 16px; font-weight: 400;"><tspan x="1450" dy="0">SessionStorage</tspan></text></g><g><rect x="1059" y="662" fill="#eaeaea" stroke="#666" width="150" height="65" name="Lixa" rx="3" ry="3" class="actor actor-bottom"/><text x="1134" y="694.5" dominant-baseline="central" alignment-baseline="central" class="actor actor-box" style="text-anchor: middle; font-size: 16px; font-weight: 400;"><tspan x="1134" dy="0">Lixa Engine</tspan></text></g><g><rect x="409" y="662" fill="#eaeaea" stroke="#666" width="150" height="65" name="App" rx="3" ry="3" class="actor actor-bottom"/><text x="484" y="694.5" dominant-baseline="central" alignment-baseline="central" class="actor actor-box" style="text-anchor: middle; font-size: 16px; font-weight: 400;"><tspan x="484" dy="0">Express Backend</tspan></text></g><g/><g><line id="actor4" x1="1694.5" y1="65" x2="1694.5" y2="662" class="actor-line 200" stroke-width="0.5px" stroke="#999" name="ResourceAPI" data-et="life-line" data-id="ResourceAPI"/><g id="root-4" data-et="participant" data-type="participant" data-id="ResourceAPI"><rect x="1575" y="0" fill="#eaeaea" stroke="#666" width="239" height="65" name="ResourceAPI" rx="3" ry="3" class="actor actor-top"/><text x="1694.5" y="32.5" dominant-baseline="central" alignment-baseline="central" class="actor actor-box" style="text-anchor: middle; font-size: 16px; font-weight: 400;"><tspan x="1694.5" dy="0">GitHub OAuth (Resource Scopes)</tspan></text></g></g><g><line id="actor3" x1="1450" y1="65" x2="1450" y2="662" class="actor-line 200" stroke-width="0.5px" stroke="#999" name="SessionStore" data-et="life-line" data-id="SessionStore"/><g id="root-3" data-et="participant" data-type="participant" data-id="SessionStore"><rect x="1375" y="0" fill="#eaeaea" stroke="#666" width="150" height="65" name="SessionStore" rx="3" ry="3" class="actor actor-top"/><text x="1450" y="32.5" dominant-baseline="central" alignment-baseline="central" class="actor actor-box" style="text-anchor: middle; font-size: 16px; font-weight: 400;"><tspan x="1450" dy="0">SessionStorage</tspan></text></g></g><g><line id="actor2" x1="1134" y1="65" x2="1134" y2="662" class="actor-line 200" stroke-width="0.5px" stroke="#999" name="Lixa" data-et="life-line" data-id="Lixa"/><g id="root-2" data-et="participant" data-type="participant" data-id="Lixa"><rect x="1059" y="0" fill="#eaeaea" stroke="#666" width="150" height="65" name="Lixa" rx="3" ry="3" class="actor actor-top"/><text x="1134" y="32.5" dominant-baseline="central" alignment-baseline="central" class="actor actor-box" style="text-anchor: middle; font-size: 16px; font-weight: 400;"><tspan x="1134" dy="0">Lixa Engine</tspan></text></g></g><g><line id="actor1" x1="484" y1="65" x2="484" y2="662" class="actor-line 200" stroke-width="0.5px" stroke="#999" name="App" data-et="life-line" data-id="App"/><g id="root-1" data-et="participant" data-type="participant" data-id="App"><rect x="409" y="0" fill="#eaeaea" stroke="#666" width="150" height="65" name="App" rx="3" ry="3" class="actor actor-top"/><text x="484" y="32.5" dominant-baseline="central" alignment-baseline="central" class="actor actor-box" style="text-anchor: middle; font-size: 16px; font-weight: 400;"><tspan x="484" dy="0">Express Backend</tspan></text></g></g><g><line id="actor0" x1="75" y1="80" x2="75" y2="662" class="actor-line 200" stroke-width="0.5px" stroke="#999" name="User" data-et="life-line" data-id="User"/></g><style>#my-svg{font-family:"trebuchet ms",verdana,arial,sans-serif;font-size:16px;fill:#333;}@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:#333333;stroke:#333333;}#my-svg .marker.cross{stroke:#333333;}#my-svg svg{font-family:"trebuchet ms",verdana,arial,sans-serif;font-size:16px;}#my-svg p{margin:0;}#my-svg .actor{stroke:#9370DB;fill:#ECECFF;stroke-width:1;}#my-svg rect.actor.outer-path[data-look="neo"]{filter:drop-shadow(1px 2px 2px rgba(185, 185, 185, 1));}#my-svg rect.note[data-look="neo"]{stroke:#aaaa33;fill:#fff5ad;filter:drop-shadow(1px 2px 2px rgba(185, 185, 185, 1));}#my-svg text.actor>tspan{fill:black;stroke:none;}#my-svg .actor-line{stroke:#9370DB;}#my-svg .innerArc{stroke-width:1.5;stroke-dasharray:none;}#my-svg .messageLine0{stroke-width:1.5;stroke-dasharray:none;stroke:#333;}#my-svg .messageLine1{stroke-width:1.5;stroke-dasharray:2,2;stroke:#333;}#my-svg [id$="-arrowhead"] path{fill:#333;stroke:#333;}#my-svg .sequenceNumber{fill:white;}#my-svg [id$="-sequencenumber"]{fill:#333;}#my-svg [id$="-crosshead"] path{fill:#333;stroke:#333;}#my-svg .messageText{fill:#333;stroke:none;}#my-svg .labelBox{stroke:#9370DB;fill:#ECECFF;filter:none;}#my-svg .labelText,#my-svg .labelText>tspan{fill:black;stroke:none;}#my-svg .loopText,#my-svg .loopText>tspan{fill:black;stroke:none;}#my-svg .sectionTitle,#my-svg .sectionTitle>tspan{fill:black;stroke:none;}#my-svg .loopLine{stroke-width:2px;stroke-dasharray:2,2;stroke:#9370DB;fill:#9370DB;}#my-svg .note{stroke:#aaaa33;fill:#fff5ad;}#my-svg .noteText,#my-svg .noteText>tspan{fill:black;stroke:none;font-weight:normal;}#my-svg .activation0{fill:#f4f4f4;stroke:#666;}#my-svg .activation1{fill:#f4f4f4;stroke:#666;}#my-svg .activation2{fill:#f4f4f4;stroke:#666;}#my-svg .actorPopupMenu{position:absolute;}#my-svg .actorPopupMenuPanel{position:absolute;fill:#ECECFF;box-shadow:0px 8px 16px 0px rgba(0,0,0,0.2);filter:drop-shadow(3px 5px 2px rgb(0 0 0 / 0.4));}#my-svg .actor-man circle,#my-svg line{fill:#ECECFF;stroke-width:2px;}#my-svg g rect.rect{filter:drop-shadow(1px 2px 2px rgba(185, 185, 185, 1));stroke:#9370DB;}#my-svg .node .neo-node{stroke:#9370DB;}#my-svg [data-look="neo"].node rect,#my-svg [data-look="neo"].cluster rect,#my-svg [data-look="neo"].node polygon{stroke:#9370DB;filter:drop-shadow(1px 2px 2px rgba(185, 185, 185, 1));}#my-svg [data-look="neo"].swimlane.cluster rect{filter:none;}#my-svg [data-look="neo"].node path{stroke:#9370DB;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:#9370DB;filter:none;}#my-svg [data-look="neo"].node circle{stroke:#9370DB;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:#9370DB;filter:drop-shadow(1px 2px 2px rgba(185, 185, 185, 1));}#my-svg [data-look="neo"].icon-shape .icon-neo path{stroke:#9370DB;filter:drop-shadow(1px 2px 2px rgba(185, 185, 185, 1));}#my-svg :root{--mermaid-font-family:"trebuchet ms",verdana,arial,sans-serif;}</style><g/><defs><symbol id="my-svg-computer" width="24" height="24"><path transform="scale(.5)" d="M2 2v13h20v-13h-20zm18 11h-16v-9h16v9zm-10.228 6l.466-1h3.524l.467 1h-4.457zm14.228 3h-24l2-6h2.104l-1.33 4h18.45l-1.297-4h2.073l2 6zm-5-10h-14v-7h14v7z"/></symbol></defs><defs><symbol id="my-svg-database" fill-rule="evenodd" clip-rule="evenodd"><path transform="scale(.5)" d="M12.258.001l.256.004.255.005.253.008.251.01.249.012.247.015.246.016.242.019.241.02.239.023.236.024.233.027.231.028.229.031.225.032.223.034.22.036.217.038.214.04.211.041.208.043.205.045.201.046.198.048.194.05.191.051.187.053.183.054.18.056.175.057.172.059.168.06.163.061.16.063.155.064.15.066.074.033.073.033.071.034.07.034.069.035.068.035.067.035.066.035.064.036.064.036.062.036.06.036.06.037.058.037.058.037.055.038.055.038.053.038.052.038.051.039.05.039.048.039.047.039.045.04.044.04.043.04.041.04.04.041.039.041.037.041.036.041.034.041.033.042.032.042.03.042.029.042.027.042.026.043.024.043.023.043.021.043.02.043.018.044.017.043.015.044.013.044.012.044.011.045.009.044.007.045.006.045.004.045.002.045.001.045v17l-.001.045-.002.045-.004.045-.006.045-.007.045-.009.044-.011.045-.012.044-.013.044-.015.044-.017.043-.018.044-.02.043-.021.043-.023.043-.024.043-.026.043-.027.042-.029.042-.03.042-.032.042-.033.042-.034.041-.036.041-.037.041-.039.041-.04.041-.041.04-.043.04-.044.04-.045.04-.047.039-.048.039-.05.039-.051.039-.052.038-.053.038-.055.038-.055.038-.058.037-.058.037-.06.037-.06.036-.062.036-.064.036-.064.036-.066.035-.067.035-.068.035-.069.035-.07.034-.071.034-.073.033-.074.033-.15.066-.155.064-.16.063-.163.061-.168.06-.172.059-.175.057-.18.056-.183.054-.187.053-.191.051-.194.05-.198.048-.201.046-.205.045-.208.043-.211.041-.214.04-.217.038-.22.036-.223.034-.225.032-.229.031-.231.028-.233.027-.236.024-.239.023-.241.02-.242.019-.246.016-.247.015-.249.012-.251.01-.253.008-.255.005-.256.004-.258.001-.258-.001-.256-.004-.255-.005-.253-.008-.251-.01-.249-.012-.247-.015-.245-.016-.243-.019-.241-.02-.238-.023-.236-.024-.234-.027-.231-.028-.228-.031-.226-.032-.223-.034-.22-.036-.217-.038-.214-.04-.211-.041-.208-.043-.204-.045-.201-.046-.198-.048-.195-.05-.19-.051-.187-.053-.184-.054-.179-.056-.176-.057-.172-.059-.167-.06-.164-.061-.159-.063-.155-.064-.151-.066-.074-.033-.072-.033-.072-.034-.07-.034-.069-.035-.068-.035-.067-.035-.066-.035-.064-.036-.063-.036-.062-.036-.061-.036-.06-.037-.058-.037-.057-.037-.056-.038-.055-.038-.053-.038-.052-.038-.051-.039-.049-.039-.049-.039-.046-.039-.046-.04-.044-.04-.043-.04-.041-.04-.04-.041-.039-.041-.037-.041-.036-.041-.034-.041-.033-.042-.032-.042-.03-.042-.029-.042-.027-.042-.026-.043-.024-.043-.023-.043-.021-.043-.02-.043-.018-.044-.017-.043-.015-.044-.013-.044-.012-.044-.011-.045-.009-.044-.007-.045-.006-.045-.004-.045-.002-.045-.001-.045v-17l.001-.045.002-.045.004-.045.006-.045.007-.045.009-.044.011-.045.012-.044.013-.044.015-.044.017-.043.018-.044.02-.043.021-.043.023-.043.024-.043.026-.043.027-.042.029-.042.03-.042.032-.042.033-.042.034-.041.036-.041.037-.041.039-.041.04-.041.041-.04.043-.04.044-.04.046-.04.046-.039.049-.039.049-.039.051-.039.052-.038.053-.038.055-.038.056-.038.057-.037.058-.037.06-.037.061-.036.062-.036.063-.036.064-.036.066-.035.067-.035.068-.035.069-.035.07-.034.072-.034.072-.033.074-.033.151-.066.155-.064.159-.063.164-.061.167-.06.172-.059.176-.057.179-.056.184-.054.187-.053.19-.051.195-.05.198-.048.201-.046.204-.045.208-.043.211-.041.214-.04.217-.038.22-.036.223-.034.226-.032.228-.031.231-.028.234-.027.236-.024.238-.023.241-.02.243-.019.245-.016.247-.015.249-.012.251-.01.253-.008.255-.005.256-.004.258-.001.258.001zm-9.258 20.499v.01l.001.021.003.021.004.022.005.021.006.022.007.022.009.023.01.022.011.023.012.023.013.023.015.023.016.024.017.023.018.024.019.024.021.024.022.025.023.024.024.025.052.049.056.05.061.051.066.051.07.051.075.051.079.052.084.052.088.052.092.052.097.052.102.051.105.052.11.052.114.051.119.051.123.051.127.05.131.05.135.05.139.048.144.049.147.047.152.047.155.047.16.045.163.045.167.043.171.043.176.041.178.041.183.039.187.039.19.037.194.035.197.035.202.033.204.031.209.03.212.029.216.027.219.025.222.024.226.021.23.02.233.018.236.016.24.015.243.012.246.01.249.008.253.005.256.004.259.001.26-.001.257-.004.254-.005.25-.008.247-.011.244-.012.241-.014.237-.016.233-.018.231-.021.226-.021.224-.024.22-.026.216-.027.212-.028.21-.031.205-.031.202-.034.198-.034.194-.036.191-.037.187-.039.183-.04.179-.04.175-.042.172-.043.168-.044.163-.045.16-.046.155-.046.152-.047.148-.048.143-.049.139-.049.136-.05.131-.05.126-.05.123-.051.118-.052.114-.051.11-.052.106-.052.101-.052.096-.052.092-.052.088-.053.083-.051.079-.052.074-.052.07-.051.065-.051.06-.051.056-.05.051-.05.023-.024.023-.025.021-.024.02-.024.019-.024.018-.024.017-.024.015-.023.014-.024.013-.023.012-.023.01-.023.01-.022.008-.022.006-.022.006-.022.004-.022.004-.021.001-.021.001-.021v-4.127l-.077.055-.08.053-.083.054-.085.053-.087.052-.09.052-.093.051-.095.05-.097.05-.1.049-.102.049-.105.048-.106.047-.109.047-.111.046-.114.045-.115.045-.118.044-.12.043-.122.042-.124.042-.126.041-.128.04-.13.04-.132.038-.134.038-.135.037-.138.037-.139.035-.142.035-.143.034-.144.033-.147.032-.148.031-.15.03-.151.03-.153.029-.154.027-.156.027-.158.026-.159.025-.161.024-.162.023-.163.022-.165.021-.166.02-.167.019-.169.018-.169.017-.171.016-.173.015-.173.014-.175.013-.175.012-.177.011-.178.01-.179.008-.179.008-.181.006-.182.005-.182.004-.184.003-.184.002h-.37l-.184-.002-.184-.003-.182-.004-.182-.005-.181-.006-.179-.008-.179-.008-.178-.01-.176-.011-.176-.012-.175-.013-.173-.014-.172-.015-.171-.016-.17-.017-.169-.018-.167-.019-.166-.02-.165-.021-.163-.022-.162-.023-.161-.024-.159-.025-.157-.026-.156-.027-.155-.027-.153-.029-.151-.03-.15-.03-.148-.031-.146-.032-.145-.033-.143-.034-.141-.035-.14-.035-.137-.037-.136-.037-.134-.038-.132-.038-.13-.04-.128-.04-.126-.041-.124-.042-.122-.042-.12-.044-.117-.043-.116-.045-.113-.045-.112-.046-.109-.047-.106-.047-.105-.048-.102-.049-.1-.049-.097-.05-.095-.05-.093-.052-.09-.051-.087-.052-.085-.053-.083-.054-.08-.054-.077-.054v4.127zm0-5.654v.011l.001.021.003.021.004.021.005.022.006.022.007.022.009.022.01.022.011.023.012.023.013.023.015.024.016.023.017.024.018.024.019.024.021.024.022.024.023.025.024.024.052.05.056.05.061.05.066.051.07.051.075.052.079.051.084.052.088.052.092.052.097.052.102.052.105.052.11.051.114.051.119.052.123.05.127.051.131.05.135.049.139.049.144.048.147.048.152.047.155.046.16.045.163.045.167.044.171.042.176.042.178.04.183.04.187.038.19.037.194.036.197.034.202.033.204.032.209.03.212.028.216.027.219.025.222.024.226.022.23.02.233.018.236.016.24.014.243.012.246.01.249.008.253.006.256.003.259.001.26-.001.257-.003.254-.006.25-.008.247-.01.244-.012.241-.015.237-.016.233-.018.231-.02.226-.022.224-.024.22-.025.216-.027.212-.029.21-.03.205-.032.202-.033.198-.035.194-.036.191-.037.187-.039.183-.039.179-.041.175-.042.172-.043.168-.044.163-.045.16-.045.155-.047.152-.047.148-.048.143-.048.139-.05.136-.049.131-.05.126-.051.123-.051.118-.051.114-.052.11-.052.106-.052.101-.052.096-.052.092-.052.088-.052.083-.052.079-.052.074-.051.07-.052.065-.051.06-.05.056-.051.051-.049.023-.025.023-.024.021-.025.02-.024.019-.024.018-.024.017-.024.015-.023.014-.023.013-.024.012-.022.01-.023.01-.023.008-.022.006-.022.006-.022.004-.021.004-.022.001-.021.001-.021v-4.139l-.077.054-.08.054-.083.054-.085.052-.087.053-.09.051-.093.051-.095.051-.097.05-.1.049-.102.049-.105.048-.106.047-.109.047-.111.046-.114.045-.115.044-.118.044-.12.044-.122.042-.124.042-.126.041-.128.04-.13.039-.132.039-.134.038-.135.037-.138.036-.139.036-.142.035-.143.033-.144.033-.147.033-.148.031-.15.03-.151.03-.153.028-.154.028-.156.027-.158.026-.159.025-.161.024-.162.023-.163.022-.165.021-.166.02-.167.019-.169.018-.169.017-.171.016-.173.015-.173.014-.175.013-.175.012-.177.011-.178.009-.179.009-.179.007-.181.007-.182.005-.182.004-.184.003-.184.002h-.37l-.184-.002-.184-.003-.182-.004-.182-.005-.181-.007-.179-.007-.179-.009-.178-.009-.176-.011-.176-.012-.175-.013-.173-.014-.172-.015-.171-.016-.17-.017-.169-.018-.167-.019-.166-.02-.165-.021-.163-.022-.162-.023-.161-.024-.159-.025-.157-.026-.156-.027-.155-.028-.153-.028-.151-.03-.15-.03-.148-.031-.146-.033-.145-.033-.143-.033-.141-.035-.14-.036-.137-.036-.136-.037-.134-.038-.132-.039-.13-.039-.128-.04-.126-.041-.124-.042-.122-.043-.12-.043-.117-.044-.116-.044-.113-.046-.112-.046-.109-.046-.106-.047-.105-.048-.102-.049-.1-.049-.097-.05-.095-.051-.093-.051-.09-.051-.087-.053-.085-.052-.083-.054-.08-.054-.077-.054v4.139zm0-5.666v.011l.001.02.003.022.004.021.005.022.006.021.007.022.009.023.01.022.011.023.012.023.013.023.015.023.016.024.017.024.018.023.019.024.021.025.022.024.023.024.024.025.052.05.056.05.061.05.066.051.07.051.075.052.079.051.084.052.088.052.092.052.097.052.102.052.105.051.11.052.114.051.119.051.123.051.127.05.131.05.135.05.139.049.144.048.147.048.152.047.155.046.16.045.163.045.167.043.171.043.176.042.178.04.183.04.187.038.19.037.194.036.197.034.202.033.204.032.209.03.212.028.216.027.219.025.222.024.226.021.23.02.233.018.236.017.24.014.243.012.246.01.249.008.253.006.256.003.259.001.26-.001.257-.003.254-.006.25-.008.247-.01.244-.013.241-.014.237-.016.233-.018.231-.02.226-.022.224-.024.22-.025.216-.027.212-.029.21-.03.205-.032.202-.033.198-.035.194-.036.191-.037.187-.039.183-.039.179-.041.175-.042.172-.043.168-.044.163-.045.16-.045.155-.047.152-.047.148-.048.143-.049.139-.049.136-.049.131-.051.126-.05.123-.051.118-.052.114-.051.11-.052.106-.052.101-.052.096-.052.092-.052.088-.052.083-.052.079-.052.074-.052.07-.051.065-.051.06-.051.056-.05.051-.049.023-.025.023-.025.021-.024.02-.024.019-.024.018-.024.017-.024.015-.023.014-.024.013-.023.012-.023.01-.022.01-.023.008-.022.006-.022.006-.022.004-.022.004-.021.001-.021.001-.021v-4.153l-.077.054-.08.054-.083.053-.085.053-.087.053-.09.051-.093.051-.095.051-.097.05-.1.049-.102.048-.105.048-.106.048-.109.046-.111.046-.114.046-.115.044-.118.044-.12.043-.122.043-.124.042-.126.041-.128.04-.13.039-.132.039-.134.038-.135.037-.138.036-.139.036-.142.034-.143.034-.144.033-.147.032-.148.032-.15.03-.151.03-.153.028-.154.028-.156.027-.158.026-.159.024-.161.024-.162.023-.163.023-.165.021-.166.02-.167.019-.169.018-.169.017-.171.016-.173.015-.173.014-.175.013-.175.012-.177.01-.178.01-.179.009-.179.007-.181.006-.182.006-.182.004-.184.003-.184.001-.185.001-.185-.001-.184-.001-.184-.003-.182-.004-.182-.006-.181-.006-.179-.007-.179-.009-.178-.01-.176-.01-.176-.012-.175-.013-.173-.014-.172-.015-.171-.016-.17-.017-.169-.018-.167-.019-.166-.02-.165-.021-.163-.023-.162-.023-.161-.024-.159-.024-.157-.026-.156-.027-.155-.028-.153-.028-.151-.03-.15-.03-.148-.032-.146-.032-.145-.033-.143-.034-.141-.034-.14-.036-.137-.036-.136-.037-.134-.038-.132-.039-.13-.039-.128-.041-.126-.041-.124-.041-.122-.043-.12-.043-.117-.044-.116-.044-.113-.046-.112-.046-.109-.046-.106-.048-.105-.048-.102-.048-.1-.05-.097-.049-.095-.051-.093-.051-.09-.052-.087-.052-.085-.053-.083-.053-.08-.054-.077-.054v4.153zm8.74-8.179l-.257.004-.254.005-.25.008-.247.011-.244.012-.241.014-.237.016-.233.018-.231.021-.226.022-.224.023-.22.026-.216.027-.212.028-.21.031-.205.032-.202.033-.198.034-.194.036-.191.038-.187.038-.183.04-.179.041-.175.042-.172.043-.168.043-.163.045-.16.046-.155.046-.152.048-.148.048-.143.048-.139.049-.136.05-.131.05-.126.051-.123.051-.118.051-.114.052-.11.052-.106.052-.101.052-.096.052-.092.052-.088.052-.083.052-.079.052-.074.051-.07.052-.065.051-.06.05-.056.05-.051.05-.023.025-.023.024-.021.024-.02.025-.019.024-.018.024-.017.023-.015.024-.014.023-.013.023-.012.023-.01.023-.01.022-.008.022-.006.023-.006.021-.004.022-.004.021-.001.021-.001.021.001.021.001.021.004.021.004.022.006.021.006.023.008.022.01.022.01.023.012.023.013.023.014.023.015.024.017.023.018.024.019.024.02.025.021.024.023.024.023.025.051.05.056.05.06.05.065.051.07.052.074.051.079.052.083.052.088.052.092.052.096.052.101.052.106.052.11.052.114.052.118.051.123.051.126.051.131.05.136.05.139.049.143.048.148.048.152.048.155.046.16.046.163.045.168.043.172.043.175.042.179.041.183.04.187.038.191.038.194.036.198.034.202.033.205.032.21.031.212.028.216.027.22.026.224.023.226.022.231.021.233.018.237.016.241.014.244.012.247.011.25.008.254.005.257.004.26.001.26-.001.257-.004.254-.005.25-.008.247-.011.244-.012.241-.014.237-.016.233-.018.231-.021.226-.022.224-.023.22-.026.216-.027.212-.028.21-.031.205-.032.202-.033.198-.034.194-.036.191-.038.187-.038.183-.04.179-.041.175-.042.172-.043.168-.043.163-.045.16-.046.155-.046.152-.048.148-.048.143-.048.139-.049.136-.05.131-.05.126-.051.123-.051.118-.051.114-.052.11-.052.106-.052.101-.052.096-.052.092-.052.088-.052.083-.052.079-.052.074-.051.07-.052.065-.051.06-.05.056-.05.051-.05.023-.025.023-.024.021-.024.02-.025.019-.024.018-.024.017-.023.015-.024.014-.023.013-.023.012-.023.01-.023.01-.022.008-.022.006-.023.006-.021.004-.022.004-.021.001-.021.001-.021-.001-.021-.001-.021-.004-.021-.004-.022-.006-.021-.006-.023-.008-.022-.01-.022-.01-.023-.012-.023-.013-.023-.014-.023-.015-.024-.017-.023-.018-.024-.019-.024-.02-.025-.021-.024-.023-.024-.023-.025-.051-.05-.056-.05-.06-.05-.065-.051-.07-.052-.074-.051-.079-.052-.083-.052-.088-.052-.092-.052-.096-.052-.101-.052-.106-.052-.11-.052-.114-.052-.118-.051-.123-.051-.126-.051-.131-.05-.136-.05-.139-.049-.143-.048-.148-.048-.152-.048-.155-.046-.16-.046-.163-.045-.168-.043-.172-.043-.175-.042-.179-.041-.183-.04-.187-.038-.191-.038-.194-.036-.198-.034-.202-.033-.205-.032-.21-.031-.212-.028-.216-.027-.22-.026-.224-.023-.226-.022-.231-.021-.233-.018-.237-.016-.241-.014-.244-.012-.247-.011-.25-.008-.254-.005-.257-.004-.26-.001-.26.001z"/></symbol></defs><defs><symbol id="my-svg-clock" width="24" height="24"><path transform="scale(.5)" d="M12 2c5.514 0 10 4.486 10 10s-4.486 10-10 10-10-4.486-10-10 4.486-10 10-10zm0-2c-6.627 0-12 5.373-12 12s5.373 12 12 12 12-5.373 12-12-5.373-12-12-12zm5.848 12.459c.202.038.202.333.001.372-1.907.361-6.045 1.111-6.547 1.111-.719 0-1.301-.582-1.301-1.301 0-.512.77-5.447 1.125-7.445.034-.192.312-.181.343.014l.985 6.238 5.394 1.011z"/></symbol></defs><defs><marker id="my-svg-arrowhead" refX="7.9" refY="5" markerUnits="userSpaceOnUse" markerWidth="12" markerHeight="12" orient="auto-start-reverse"><path d="M -1 0 L 10 5 L 0 10 z"/></marker></defs><defs><marker id="my-svg-crosshead" markerWidth="15" markerHeight="8" orient="auto" refX="4" refY="4.5"><path fill="none" stroke="#000000" stroke-width="1pt" d="M 1,2 L 6,7 M 6,2 L 1,7" style="stroke-dasharray: 0, 0;"/></marker></defs><defs><marker id="my-svg-filled-head" refX="15.5" refY="7" markerWidth="20" markerHeight="28" orient="auto"><path d="M 18,7 L9,13 L14,7 L9,1 Z"/></marker></defs><defs><marker id="my-svg-sequencenumber" refX="15" refY="15" markerWidth="60" markerHeight="40" orient="auto"><circle cx="15" cy="15" r="6"/></marker></defs><defs><marker id="my-svg-solidTopArrowHead" refX="7.9" refY="7.25" markerUnits="userSpaceOnUse" markerWidth="12" markerHeight="12" orient="auto-start-reverse"><path d="M 0 0 L 10 8 L 0 8 z"/></marker></defs><defs><marker id="my-svg-solidBottomArrowHead" refX="7.9" refY="0.75" markerUnits="userSpaceOnUse" markerWidth="12" markerHeight="12" orient="auto-start-reverse"><path d="M 0 0 L 10 0 L 0 8 z"/></marker></defs><defs><marker id="my-svg-stickTopArrowHead" refX="7.5" refY="7" markerUnits="userSpaceOnUse" markerWidth="12" markerHeight="12" orient="auto-start-reverse"><path d="M 0 0 L 7 7" stroke="black" stroke-width="1.5" fill="none"/></marker></defs><defs><marker id="my-svg-stickBottomArrowHead" refX="7.5" refY="0" markerUnits="userSpaceOnUse" markerWidth="12" markerHeight="12" orient="auto-start-reverse"><path d="M 0 7 L 7 0" stroke="black" stroke-width="1.5" fill="none"/></marker></defs><g data-et="note" data-id="i1"><rect x="50" y="75" fill="#EDF2AE" stroke="#666" width="1669.5" height="39" class="note"/><text x="885" y="80" text-anchor="middle" dominant-baseline="middle" alignment-baseline="middle" class="noteText" dy="1em" style="font-size: 16px; font-weight: 400;"><tspan x="885">Connect Resource API Post-Login</tspan></text></g><g class="actor-man actor-top" name="User" data-et="participant" data-type="actor" data-id="User" style="stroke: rgb(147, 112, 219);"><line id="actor-man-torso0" x1="75" y1="25" x2="75" y2="45"/><line id="actor-man-arms0" x1="57" y1="33" x2="93" y2="33"/><line x1="57" y1="60" x2="75" y2="45"/><line x1="75" y1="45" x2="91" y2="60"/><circle cx="75" cy="10" r="15" width="150" height="65"/><text x="75" y="67.5" dominant-baseline="central" alignment-baseline="central" class="actor actor-man" style="text-anchor: middle; font-size: 16px; font-weight: 400;"><tspan x="75" dy="0">User</tspan></text></g><text x="278" y="129" text-anchor="middle" dominant-baseline="middle" alignment-baseline="middle" class="messageText" dy="1em" style="font-size: 16px; font-weight: 400;">POST /connect/github (Cookie: session_id=0x123...)</text><line x1="82" y1="158" x2="480" y2="158" class="messageLine0" data-et="message" data-id="i2" data-from="User" data-to="App" stroke-width="2" stroke="none" marker-end="url(#my-svg-arrowhead)" style="fill: none;"/><line x1="75" y1="158" x2="75" y2="158" stroke-width="0" marker-start="url(#my-svg-sequencenumber)"/><text x="75" y="162" font-family="sans-serif" font-size="12px" text-anchor="middle" class="sequenceNumber">1</text><text x="808" y="173" text-anchor="middle" dominant-baseline="middle" alignment-baseline="middle" class="messageText" dy="1em" style="font-size: 16px; font-weight: 400;">getResourceAuthUrl({ sessionId: '0x123...', provider: 'github', scopes: ['repo', 'read:org'] })</text><line x1="491" y1="202" x2="1130" y2="202" class="messageLine0" data-et="message" data-id="i3" data-from="App" data-to="Lixa" stroke-width="2" stroke="none" marker-end="url(#my-svg-arrowhead)" style="fill: none;"/><line x1="484" y1="202" x2="484" y2="202" stroke-width="0" marker-start="url(#my-svg-sequencenumber)"/><text x="484" y="206" font-family="sans-serif" font-size="12px" text-anchor="middle" class="sequenceNumber">2</text><text x="1291" y="217" text-anchor="middle" dominant-baseline="middle" alignment-baseline="middle" class="messageText" dy="1em" style="font-size: 16px; font-weight: 400;">Validate active session</text><line x1="1141" y1="246" x2="1446" y2="246" class="messageLine0" data-et="message" data-id="i4" data-from="Lixa" data-to="SessionStore" stroke-width="2" stroke="none" marker-end="url(#my-svg-arrowhead)" style="fill: none;"/><line x1="1134" y1="246" x2="1134" y2="246" stroke-width="0" marker-start="url(#my-svg-sequencenumber)"/><text x="1134" y="250" font-family="sans-serif" font-size="12px" text-anchor="middle" class="sequenceNumber">3</text><text x="811" y="261" text-anchor="middle" dominant-baseline="middle" alignment-baseline="middle" class="messageText" dy="1em" style="font-size: 16px; font-weight: 400;">Resource Authorization URL (scopes: repo read:org)</text><line x1="1139" y1="290" x2="488" y2="290" class="messageLine1" data-et="message" data-id="i5" data-from="Lixa" data-to="App" stroke-width="2" stroke="none" marker-end="url(#my-svg-arrowhead)" style="stroke-dasharray: 3, 3; fill: none;"/><line x1="1134" y1="290" x2="1134" y2="290" stroke-width="0" marker-start="url(#my-svg-sequencenumber)"/><text x="1134" y="294" font-family="sans-serif" font-size="12px" text-anchor="middle" class="sequenceNumber">4</text><text x="281" y="305" text-anchor="middle" dominant-baseline="middle" alignment-baseline="middle" class="messageText" dy="1em" style="font-size: 16px; font-weight: 400;">302 Redirect to Resource Consent</text><line x1="489" y1="334" x2="79" y2="334" class="messageLine1" data-et="message" data-id="i6" data-from="App" data-to="User" stroke-width="2" stroke="none" marker-end="url(#my-svg-arrowhead)" style="stroke-dasharray: 3, 3; fill: none;"/><line x1="484" y1="334" x2="484" y2="334" stroke-width="0" marker-start="url(#my-svg-sequencenumber)"/><text x="484" y="338" font-family="sans-serif" font-size="12px" text-anchor="middle" class="sequenceNumber">5</text><text x="883" y="349" text-anchor="middle" dominant-baseline="middle" alignment-baseline="middle" class="messageText" dy="1em" style="font-size: 16px; font-weight: 400;">Grant Resource Consent (Repo Access)</text><line x1="82" y1="378" x2="1690.5" y2="378" class="messageLine0" data-et="message" data-id="i7" data-from="User" data-to="ResourceAPI" stroke-width="2" stroke="none" marker-end="url(#my-svg-arrowhead)" style="fill: none;"/><line x1="75" y1="378" x2="75" y2="378" stroke-width="0" marker-start="url(#my-svg-sequencenumber)"/><text x="75" y="382" font-family="sans-serif" font-size="12px" text-anchor="middle" class="sequenceNumber">6</text><text x="1091" y="393" text-anchor="middle" dominant-baseline="middle" alignment-baseline="middle" class="messageText" dy="1em" style="font-size: 16px; font-weight: 400;">GET /connect/github/callback?code=zzz&state=...</text><line x1="1699.5" y1="422" x2="488" y2="422" class="messageLine1" data-et="message" data-id="i8" data-from="ResourceAPI" data-to="App" stroke-width="2" stroke="none" marker-end="url(#my-svg-arrowhead)" style="stroke-dasharray: 3, 3; fill: none;"/><line x1="1694.5" y1="422" x2="1694.5" y2="422" stroke-width="0" marker-start="url(#my-svg-sequencenumber)"/><text x="1694.5" y="426" font-family="sans-serif" font-size="12px" text-anchor="middle" class="sequenceNumber">7</text><text x="808" y="437" text-anchor="middle" dominant-baseline="middle" alignment-baseline="middle" class="messageText" dy="1em" style="font-size: 16px; font-weight: 400;">handleResourceCallback({ sessionId: '0x123...', provider: 'github', code })</text><line x1="491" y1="466" x2="1130" y2="466" class="messageLine0" data-et="message" data-id="i9" data-from="App" data-to="Lixa" stroke-width="2" stroke="none" marker-end="url(#my-svg-arrowhead)" style="fill: none;"/><line x1="484" y1="466" x2="484" y2="466" stroke-width="0" marker-start="url(#my-svg-sequencenumber)"/><text x="484" y="470" font-family="sans-serif" font-size="12px" text-anchor="middle" class="sequenceNumber">8</text><text x="1413" y="481" text-anchor="middle" dominant-baseline="middle" alignment-baseline="middle" class="messageText" dy="1em" style="font-size: 16px; font-weight: 400;">Exchange code for Resource Access Token</text><line x1="1141" y1="510" x2="1690.5" y2="510" class="messageLine0" data-et="message" data-id="i10" data-from="Lixa" data-to="ResourceAPI" stroke-width="2" stroke="none" marker-end="url(#my-svg-arrowhead)" style="fill: none;"/><line x1="1134" y1="510" x2="1134" y2="510" stroke-width="0" marker-start="url(#my-svg-sequencenumber)"/><text x="1134" y="514" font-family="sans-serif" font-size="12px" text-anchor="middle" class="sequenceNumber">9</text><text x="1291" y="525" text-anchor="middle" dominant-baseline="middle" alignment-baseline="middle" class="messageText" dy="1em" style="font-size: 16px; font-weight: 400;">Store under session.resources['github']</text><line x1="1141" y1="554" x2="1446" y2="554" class="messageLine0" data-et="message" data-id="i11" data-from="Lixa" data-to="SessionStore" stroke-width="2" stroke="none" marker-end="url(#my-svg-arrowhead)" style="fill: none;"/><line x1="1134" y1="554" x2="1134" y2="554" stroke-width="0" marker-start="url(#my-svg-sequencenumber)"/><text x="1134" y="558" font-family="sans-serif" font-size="12px" text-anchor="middle" class="sequenceNumber">10</text><text x="811" y="569" text-anchor="middle" dominant-baseline="middle" alignment-baseline="middle" class="messageText" dy="1em" style="font-size: 16px; font-weight: 400;">Updated Session</text><line x1="1139" y1="598" x2="488" y2="598" class="messageLine1" data-et="message" data-id="i12" data-from="Lixa" data-to="App" stroke-width="2" stroke="none" marker-end="url(#my-svg-arrowhead)" style="stroke-dasharray: 3, 3; fill: none;"/><line x1="1134" y1="598" x2="1134" y2="598" stroke-width="0" marker-start="url(#my-svg-sequencenumber)"/><text x="1134" y="602" font-family="sans-serif" font-size="12px" text-anchor="middle" class="sequenceNumber">11</text><text x="281" y="613" text-anchor="middle" dominant-baseline="middle" alignment-baseline="middle" class="messageText" dy="1em" style="font-size: 16px; font-weight: 400;">Render Dashboard (Repo Access Granted)</text><line x1="489" y1="642" x2="79" y2="642" class="messageLine1" data-et="message" data-id="i13" data-from="App" data-to="User" stroke-width="2" stroke="none" marker-end="url(#my-svg-arrowhead)" style="stroke-dasharray: 3, 3; fill: none;"/><line x1="484" y1="642" x2="484" y2="642" stroke-width="0" marker-start="url(#my-svg-sequencenumber)"/><text x="484" y="646" font-family="sans-serif" font-size="12px" text-anchor="middle" class="sequenceNumber">12</text><g class="actor-man actor-bottom" name="User" style="stroke: rgb(147, 112, 219);"><line id="actor-man-torso4" x1="75" y1="687" x2="75" y2="707"/><line id="actor-man-arms4" x1="57" y1="695" x2="93" y2="695"/><line x1="57" y1="722" x2="75" y2="707"/><line x1="75" y1="707" x2="91" y2="722"/><circle cx="75" cy="672" r="15" width="150" height="65"/><text x="75" y="729.5" dominant-baseline="central" alignment-baseline="central" class="actor actor-man" style="text-anchor: middle; font-size: 16px; font-weight: 400;"><tspan x="75" dy="0">User</tspan></text></g></svg>
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@vunexa/lixa",
|
|
3
|
-
"version": "0.1.
|
|
3
|
+
"version": "0.1.2",
|
|
4
4
|
"description": "Lixa is a flexible, provider-agnostic OAuth and OpenID Connect (OIDC) client library that simplifies multi-provider authentication flows. It supports seamless integration with providers like Google and GitHub, offers extensible session management, and enables dynamic provider resolution based on callback URLs.",
|
|
5
5
|
"keywords": [
|
|
6
6
|
"oauth",
|
|
@@ -8,6 +8,15 @@
|
|
|
8
8
|
],
|
|
9
9
|
"license": "MIT",
|
|
10
10
|
"author": "vamsi",
|
|
11
|
+
"repository": {
|
|
12
|
+
"type": "git",
|
|
13
|
+
"url": "git+https://github.com/vunexa/lixa.git",
|
|
14
|
+
"directory": "lixa"
|
|
15
|
+
},
|
|
16
|
+
"homepage": "https://github.com/vunexa/lixa/tree/master/lixa#readme",
|
|
17
|
+
"bugs": {
|
|
18
|
+
"url": "https://github.com/vunexa/lixa/issues"
|
|
19
|
+
},
|
|
11
20
|
"type": "module",
|
|
12
21
|
"main": "./dist/index.cjs",
|
|
13
22
|
"module": "./dist/index.js",
|
|
@@ -31,6 +40,7 @@
|
|
|
31
40
|
"test:coverage": "jest --coverage",
|
|
32
41
|
"api-extractor": "api-extractor run --local --verbose",
|
|
33
42
|
"docs:api": "npm run build && api-documenter markdown --input temp --output ./docs/api",
|
|
43
|
+
"build:readme": "npx -y @mermaid-js/mermaid-cli -i README.template.md -o README.md",
|
|
34
44
|
"pub:alpha": "npm version prerelease --preid=alpha && npm publish --tag alpha",
|
|
35
45
|
"pub:beta": "npm version prerelease --preid=beta && npm publish --tag beta",
|
|
36
46
|
"pub:patch": "npm version patch && npm publish --tag latest",
|
|
@@ -39,7 +49,9 @@
|
|
|
39
49
|
},
|
|
40
50
|
"files": [
|
|
41
51
|
"dist",
|
|
52
|
+
"docs",
|
|
42
53
|
"README.md",
|
|
54
|
+
"README.template.md",
|
|
43
55
|
"LICENSE"
|
|
44
56
|
],
|
|
45
57
|
"devDependencies": {
|